diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b9099005..80c01bce 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -44,14 +44,12 @@ We encourage contributors to leave comments or open Discussions when proposing s ## 🧾 Issue & PR Best Practices **For Issues:** - - Use clear, descriptive titles - Provide a concise explanation of the problem or idea - Include reproduction steps or example scenarios if it's a bug - Add screenshots or logs if helpful **For Pull Requests:** - - Use a clear title summarizing the change - Provide a brief description of what your code does and why - Link to any related Issues @@ -73,6 +71,6 @@ Discussions are currently happening on GitHub β€” in Issues, PRs, and [GitHub Di ## πŸ€— Thank You! -Whether you're fixing a typo or designing entire mechanics β€” every contribution matters. Thank you for helping bring _Daggerheart_ to life in FoundryVTT through **Foundryborne**! +Whether you're fixing a typo or designing entire mechanics β€” every contribution matters. Thank you for helping bring *Daggerheart* to life in FoundryVTT through **Foundryborne**! πŸΈπŸ› οΈ diff --git a/assets/icons/arrow-dunk.png b/assets/icons/arrow-dunk.png deleted file mode 100644 index 1958713e..00000000 Binary files a/assets/icons/arrow-dunk.png and /dev/null differ diff --git a/assets/icons/dice/duality/DualityBW.png b/assets/icons/dice/duality/DualityBW.png deleted file mode 100644 index 5f94e99f..00000000 Binary files a/assets/icons/dice/duality/DualityBW.png and /dev/null differ diff --git a/assets/icons/dice/duality/DualityBW.svg b/assets/icons/dice/duality/DualityBW.svg deleted file mode 100644 index 9e716fd6..00000000 --- a/assets/icons/dice/duality/DualityBW.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - diff --git a/assets/icons/documents/actors/dark-squad.svg b/assets/icons/documents/actors/dark-squad.svg deleted file mode 100644 index f21b4c5b..00000000 --- a/assets/icons/documents/actors/dark-squad.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/daggerheart.mjs b/daggerheart.mjs index 48f4a615..96a6783b 100644 --- a/daggerheart.mjs +++ b/daggerheart.mjs @@ -1,6 +1,5 @@ import { SYSTEM } from './module/config/system.mjs'; import * as applications from './module/applications/_module.mjs'; -import * as data from './module/data/_module.mjs'; import * as models from './module/data/_module.mjs'; import * as documents from './module/documents/_module.mjs'; import * as dice from './module/dice/_module.mjs'; @@ -8,8 +7,10 @@ import * as fields from './module/data/fields/_module.mjs'; import RegisterHandlebarsHelpers from './module/helpers/handlebarsHelper.mjs'; import { enricherConfig, enricherRenderSetup } from './module/enrichers/_module.mjs'; import { getCommandTarget, rollCommandToJSON } from './module/helpers/utils.mjs'; +import { NarrativeCountdowns } from './module/applications/ui/countdowns.mjs'; import { BaseRoll, DHRoll, DualityRoll, D20Roll, DamageRoll } from './module/dice/_module.mjs'; import { enrichedDualityRoll } from './module/enrichers/DualityRollEnricher.mjs'; +import { registerCountdownHooks } from './module/data/countdowns.mjs'; import { handlebarsRegistration, runMigrations, @@ -17,169 +18,86 @@ import { socketRegistration } from './module/systemRegistration/_module.mjs'; import { placeables } from './module/canvas/_module.mjs'; +import { registerRollDiceHooks } from './module/dice/dhRoll.mjs'; import './node_modules/@yaireo/tagify/dist/tagify.css'; import TemplateManager from './module/documents/templateManager.mjs'; -CONFIG.DH = SYSTEM; -CONFIG.TextEditor.enrichers.push(...enricherConfig); - -CONFIG.Dice.rolls = [BaseRoll, DHRoll, DualityRoll, D20Roll, DamageRoll]; -CONFIG.Dice.daggerheart = { - DHRoll: DHRoll, - DualityRoll: DualityRoll, - D20Roll: D20Roll, - DamageRoll: DamageRoll -}; - -CONFIG.Actor.documentClass = documents.DhpActor; -CONFIG.Actor.dataModels = models.actors.config; - -CONFIG.Item.documentClass = documents.DHItem; -CONFIG.Item.dataModels = models.items.config; - -CONFIG.ActiveEffect.documentClass = documents.DhActiveEffect; -CONFIG.ActiveEffect.dataModels = models.activeEffects.config; - -CONFIG.Combat.documentClass = documents.DhpCombat; -CONFIG.Combat.dataModels = { base: models.DhCombat }; -CONFIG.Combatant.documentClass = documents.DHCombatant; -CONFIG.Combatant.dataModels = { base: models.DhCombatant }; - -CONFIG.ChatMessage.dataModels = models.chatMessages.config; -CONFIG.ChatMessage.documentClass = documents.DhChatMessage; -CONFIG.ChatMessage.template = 'systems/daggerheart/templates/ui/chat/chat-message.hbs'; - -CONFIG.Canvas.rulerClass = placeables.DhRuler; -CONFIG.Canvas.layers.templates.layerClass = placeables.DhTemplateLayer; -CONFIG.MeasuredTemplate.objectClass = placeables.DhMeasuredTemplate; - -CONFIG.Scene.documentClass = documents.DhScene; - -CONFIG.Token.documentClass = documents.DhToken; -CONFIG.Token.prototypeSheetClass = applications.sheetConfigs.DhPrototypeTokenConfig; -CONFIG.Token.objectClass = placeables.DhTokenPlaceable; -CONFIG.Token.rulerClass = placeables.DhTokenRuler; -CONFIG.Token.hudClass = applications.hud.DHTokenHUD; - -CONFIG.ui.combat = applications.ui.DhCombatTracker; -CONFIG.ui.chat = applications.ui.DhChatLog; -CONFIG.ui.effectsDisplay = applications.ui.DhEffectsDisplay; -CONFIG.ui.hotbar = applications.ui.DhHotbar; -CONFIG.ui.sidebar = applications.sidebar.DhSidebar; -CONFIG.ui.actors = applications.sidebar.DhActorDirectory; -CONFIG.ui.daggerheartMenu = applications.sidebar.DaggerheartMenu; -CONFIG.ui.resources = applications.ui.DhFearTracker; -CONFIG.ui.countdowns = applications.ui.DhCountdowns; -CONFIG.ux.ContextMenu = applications.ux.DHContextMenu; -CONFIG.ux.TooltipManager = documents.DhTooltipManager; -CONFIG.ux.TemplateManager = new TemplateManager(); - Hooks.once('init', () => { + CONFIG.DH = SYSTEM; game.system.api = { applications, - data, models, documents, dice, fields }; + CONFIG.TextEditor.enrichers.push(...enricherConfig); + + CONFIG.statusEffects = [ + ...CONFIG.statusEffects.filter(x => !['dead', 'unconscious'].includes(x.id)), + ...Object.values(SYSTEM.GENERAL.conditions).map(x => ({ + ...x, + name: game.i18n.localize(x.name), + systemEffect: true + })) + ]; + + CONFIG.Dice.daggerheart = { + DHRoll: DHRoll, + DualityRoll: DualityRoll, + D20Roll: D20Roll, + DamageRoll: DamageRoll + }; + + CONFIG.Dice.rolls = [BaseRoll, DHRoll, DualityRoll, D20Roll, DamageRoll]; + CONFIG.MeasuredTemplate.objectClass = placeables.DhMeasuredTemplate; + const { DocumentSheetConfig } = foundry.applications.apps; + CONFIG.Token.documentClass = documents.DhToken; + CONFIG.Token.prototypeSheetClass = applications.sheetConfigs.DhPrototypeTokenConfig; DocumentSheetConfig.unregisterSheet(TokenDocument, 'core', foundry.applications.sheets.TokenConfig); DocumentSheetConfig.registerSheet(TokenDocument, SYSTEM.id, applications.sheetConfigs.DhTokenConfig, { makeDefault: true }); - const sheetLabel = typePath => () => - game.i18n.format('DAGGERHEART.GENERAL.typeSheet', { - type: game.i18n.localize(typePath) - }); + CONFIG.Item.documentClass = documents.DHItem; + + //Registering the Item DataModel + CONFIG.Item.dataModels = models.items.config; const { Items, Actors } = foundry.documents.collections; Items.unregisterSheet('core', foundry.applications.sheets.ItemSheetV2); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Ancestry, { - types: ['ancestry'], - makeDefault: true, - label: sheetLabel('TYPES.Item.ancestry') - }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Community, { - types: ['community'], - makeDefault: true, - label: sheetLabel('TYPES.Item.community') - }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Class, { - types: ['class'], - makeDefault: true, - label: sheetLabel('TYPES.Item.class') - }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Subclass, { - types: ['subclass'], - makeDefault: true, - label: sheetLabel('TYPES.Item.subclass') - }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Feature, { - types: ['feature'], - makeDefault: true, - label: sheetLabel('TYPES.Item.feature') - }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.DomainCard, { - types: ['domainCard'], - makeDefault: true, - label: sheetLabel('TYPES.Item.domainCard') - }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Ancestry, { types: ['ancestry'], makeDefault: true }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Community, { types: ['community'], makeDefault: true }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Class, { types: ['class'], makeDefault: true }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Subclass, { types: ['subclass'], makeDefault: true }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Feature, { types: ['feature'], makeDefault: true }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.DomainCard, { types: ['domainCard'], makeDefault: true }); Items.registerSheet(SYSTEM.id, applications.sheets.items.Loot, { types: ['loot'], - makeDefault: true, - label: sheetLabel('TYPES.Item.loot') - }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Consumable, { - types: ['consumable'], - makeDefault: true, - label: sheetLabel('TYPES.Item.consumable') - }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Weapon, { - types: ['weapon'], - makeDefault: true, - label: sheetLabel('TYPES.Item.weapon') - }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Armor, { - types: ['armor'], - makeDefault: true, - label: sheetLabel('TYPES.Item.armor') - }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Beastform, { - types: ['beastform'], - makeDefault: true, - label: sheetLabel('TYPES.Item.beastform') + makeDefault: true }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Consumable, { types: ['consumable'], makeDefault: true }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Weapon, { types: ['weapon'], makeDefault: true }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Armor, { types: ['armor'], makeDefault: true }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Beastform, { types: ['beastform'], makeDefault: true }); + + CONFIG.Actor.documentClass = documents.DhpActor; + CONFIG.Actor.dataModels = models.actors.config; Actors.unregisterSheet('core', foundry.applications.sheets.ActorSheetV2); - Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Character, { - types: ['character'], - makeDefault: true, - label: sheetLabel('TYPES.Actor.character') - }); - Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Companion, { - types: ['companion'], - makeDefault: true, - label: sheetLabel('TYPES.Actor.companion') - }); - Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Adversary, { - types: ['adversary'], - makeDefault: true, - label: sheetLabel('TYPES.Actor.adversary') - }); + Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Character, { types: ['character'], makeDefault: true }); + Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Companion, { types: ['companion'], makeDefault: true }); + Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Adversary, { types: ['adversary'], makeDefault: true }); Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Environment, { types: ['environment'], - makeDefault: true, - label: sheetLabel('TYPES.Actor.environment') - }); - Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Party, { - types: ['party'], - makeDefault: true, - label: sheetLabel('TYPES.Actor.party') + makeDefault: true }); + CONFIG.ActiveEffect.documentClass = documents.DhActiveEffect; + CONFIG.ActiveEffect.dataModels = models.activeEffects.config; + DocumentSheetConfig.unregisterSheet( CONFIG.ActiveEffect.documentClass, 'core', @@ -190,56 +108,58 @@ Hooks.once('init', () => { SYSTEM.id, applications.sheetConfigs.ActiveEffectConfig, { - makeDefault: true, - label: sheetLabel('DOCUMENT.ActiveEffect') + makeDefault: true } ); + CONFIG.Token.hudClass = applications.hud.DHTokenHUD; + + CONFIG.Combat.dataModels = { + base: models.DhCombat + }; + + CONFIG.Combatant.dataModels = { + base: models.DhCombatant + }; + + CONFIG.ChatMessage.dataModels = models.chatMessages.config; + CONFIG.ChatMessage.documentClass = documents.DhChatMessage; + CONFIG.ChatMessage.template = 'systems/daggerheart/templates/ui/chat/chat-message.hbs'; + + CONFIG.Canvas.rulerClass = placeables.DhRuler; + CONFIG.Canvas.layers.templates.layerClass = placeables.DhTemplateLayer; + CONFIG.Token.objectClass = placeables.DhTokenPlaceable; + CONFIG.Combat.documentClass = documents.DhpCombat; + CONFIG.ui.combat = applications.ui.DhCombatTracker; + CONFIG.ui.chat = applications.ui.DhChatLog; + CONFIG.ui.hotbar = applications.ui.DhHotbar; + CONFIG.Token.rulerClass = placeables.DhTokenRuler; + + CONFIG.ui.resources = applications.ui.DhFearTracker; + CONFIG.ux.ContextMenu = applications.ux.DHContextMenu; + CONFIG.ux.TooltipManager = documents.DhTooltipManager; + + CONFIG.ux.TemplateManager = new TemplateManager(); + game.socket.on(`system.${SYSTEM.id}`, socketRegistration.handleSocketEvent); // Make Compendium Dialog resizable foundry.applications.sidebar.apps.Compendium.DEFAULT_OPTIONS.window.resizable = true; - DocumentSheetConfig.unregisterSheet(foundry.documents.Scene, 'core', foundry.applications.sheets.SceneConfig); - DocumentSheetConfig.registerSheet(foundry.documents.Scene, SYSTEM.id, applications.scene.DhSceneConfigSettings, { - makeDefault: true, - label: sheetLabel('DOCUMENT.Scene') - }); - settingsRegistration.registerDHSettings(); RegisterHandlebarsHelpers.registerHelpers(); return handlebarsRegistration(); }); -Hooks.on('setup', () => { - CONFIG.statusEffects = [ - ...CONFIG.statusEffects.filter(x => !['dead', 'unconscious'].includes(x.id)), - ...Object.values(SYSTEM.GENERAL.conditions()).map(x => ({ - ...x, - name: game.i18n.localize(x.name), - systemEffect: true - })) - ]; -}); - Hooks.on('ready', async () => { - const appearanceSettings = game.settings.get(SYSTEM.id, SYSTEM.SETTINGS.gameSettings.appearance); ui.resources = new CONFIG.ui.resources(); - if (appearanceSettings.displayFear !== 'hide') ui.resources.render({ force: true }); - - if (appearanceSettings.displayCountdownUI) { - ui.countdowns = new CONFIG.ui.countdowns(); - ui.countdowns.render({ force: true }); - } - - ui.effectsDisplay = new CONFIG.ui.effectsDisplay(); - ui.effectsDisplay.render({ force: true }); - - if (!(ui.compendiumBrowser instanceof applications.ui.ItemBrowser)) - ui.compendiumBrowser = new applications.ui.ItemBrowser(); + if (game.settings.get(SYSTEM.id, SYSTEM.SETTINGS.gameSettings.appearance).displayFear !== 'hide') + ui.resources.render({ force: true }); + registerCountdownHooks(); socketRegistration.registerSocketHooks(); + registerRollDiceHooks(); socketRegistration.registerUserQueries(); if (!game.user.getFlag(CONFIG.DH.id, CONFIG.DH.FLAGS.userFlags.welcomeMessage)) { @@ -255,9 +175,9 @@ Hooks.on('ready', async () => { Hooks.once('dicesoniceready', () => {}); -Hooks.on('renderChatMessageHTML', (document, element) => { +Hooks.on('renderChatMessageHTML', (_, element, message) => { enricherRenderSetup(element); - const cssClass = document.flags?.daggerheart?.cssClass; + const cssClass = message.message.flags?.daggerheart?.cssClass; if (cssClass) cssClass.split(' ').forEach(cls => element.classList.add(cls)); }); @@ -310,72 +230,73 @@ Hooks.on('chatMessage', (_, message) => { } }); -const updateActorsRangeDependentEffects = async token => { - const rangeMeasurement = game.settings.get( - CONFIG.DH.id, - CONFIG.DH.SETTINGS.gameSettings.variantRules - ).rangeMeasurement; +Hooks.on('renderJournalDirectory', async (tab, html, _, options) => { + if (tab.id === 'journal') { + if (options.parts && !options.parts.includes('footer')) return; - for (let effect of token.actor?.allApplicableEffects() ?? []) { - if (!effect.system.rangeDependence?.enabled) continue; - const { target, range, type } = effect.system.rangeDependence; + const buttons = tab.element.querySelector('.directory-footer.action-buttons'); + const title = game.i18n.format('DAGGERHEART.APPLICATIONS.Countdown.title', { + type: game.i18n.localize('DAGGERHEART.APPLICATIONS.Countdown.types.narrative') + }); + buttons.insertAdjacentHTML( + 'afterbegin', + ` + ` + ); - // If there are no targets, assume false. Otherwise, start with the effect enabled. - let enabledEffect = game.user.targets.size !== 0; - // Expect all targets to meet the rangeDependence requirements - for (let userTarget of game.user.targets) { - const disposition = userTarget.document.disposition; - if ((target === 'friendly' && disposition !== 1) || (target === 'hostile' && disposition !== -1)) { - enabledEffect = false; - break; - } - - // Get required distance and special case 5 feet to test adjacency - const required = rangeMeasurement[range]; - const reverse = type === CONFIG.DH.GENERAL.rangeInclusion.outsideRange.id; - const inRange = - required === 5 - ? userTarget.isAdjacentWith(token.object) - : userTarget.distanceTo(token.object) <= required; - if (reverse ? inRange : !inRange) { - enabledEffect = false; - break; - } - } - - await effect.update({ disabled: !enabledEffect }); + buttons.querySelector('#narrative-countdown-button').onclick = async () => { + new NarrativeCountdowns().open(); + }; } -}; +}); -const updateAllRangeDependentEffects = async () => { +Hooks.on('moveToken', async (movedToken, data) => { const effectsAutomation = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).effects; if (!effectsAutomation.rangeDependent) return; - const tokens = canvas.scene.tokens; - if (game.user.character) { - // The character updates their character's token. There can be only one token. - const characterToken = tokens.find(x => x.actor === game.user.character); - updateActorsRangeDependentEffects(characterToken); - } else if (game.user.isActiveGM) { - // The GM is responsible for all other tokens. - const playerCharacters = game.users.players.filter(x => x.active).map(x => x.character); - for (const token of tokens.filter(x => !playerCharacters.includes(x.actor))) { - updateActorsRangeDependentEffects(token); + const rangeDependantEffects = movedToken.actor.effects.filter(effect => effect.system.rangeDependence?.enabled); + + const updateEffects = async (disposition, token, effects, effectUpdates) => { + const rangeMeasurement = game.settings.get( + CONFIG.DH.id, + CONFIG.DH.SETTINGS.gameSettings.variantRules + ).rangeMeasurement; + + for (let effect of effects.filter(x => x.system.rangeDependence?.enabled)) { + const { target, range, type } = effect.system.rangeDependence; + if ((target === 'friendly' && disposition !== 1) || (target === 'hostile' && disposition !== -1)) + return false; + + const distanceBetween = canvas.grid.measurePath([ + { ...movedToken.toObject(), x: data.destination.x, y: data.destination.y }, + token + ]).distance; + const distance = rangeMeasurement[range]; + + const reverse = type === CONFIG.DH.GENERAL.rangeInclusion.outsideRange.id; + const newDisabled = reverse ? distanceBetween <= distance : distanceBetween > distance; + const oldDisabled = effectUpdates[effect.uuid] ? effectUpdates[effect.uuid].disabled : newDisabled; + effectUpdates[effect.uuid] = { + disabled: oldDisabled || newDisabled, + value: effect + }; } + }; + + const effectUpdates = {}; + for (let token of game.scenes.find(x => x.active).tokens) { + if (token.id !== movedToken.id) { + await updateEffects(token.disposition, token, rangeDependantEffects, effectUpdates); + } + + if (token.actor) await updateEffects(movedToken.disposition, token, token.actor.effects, effectUpdates); } -}; -const debouncedRangeEffectCall = foundry.utils.debounce(updateAllRangeDependentEffects, 50); - -Hooks.on('targetToken', () => { - debouncedRangeEffectCall(); -}); - -Hooks.on('refreshToken', (_, options) => { - if (options.refreshPosition) { - debouncedRangeEffectCall(); + for (let key in effectUpdates) { + const effect = effectUpdates[key]; + await effect.value.update({ disabled: effect.disabled }); } }); - -Hooks.on('renderCompendiumDirectory', (app, html) => applications.ui.ItemBrowser.injectSidebarButton(html)); -Hooks.on('renderDocumentDirectory', (app, html) => applications.ui.ItemBrowser.injectSidebarButton(html)); diff --git a/lang/en.json b/lang/en.json index a78ed588..7efca151 100755 --- a/lang/en.json +++ b/lang/en.json @@ -20,23 +20,13 @@ "character": "Character", "companion": "Companion", "adversary": "Adversary", - "environment": "Environment", - "party": "Party" + "environment": "Environment" } }, "CONTROLS": { "inFront": "In Front" }, - "SCENE": { - "TABS": { - "SHEET": { - "dh": "Daggerheart" - } - } - }, - "DAGGERHEART": { - "CharacterSheet": "Character Sheet", "ACTIONS": { "TYPES": { "attack": { @@ -47,10 +37,6 @@ "name": "Beastform", "tooltip": "Shapeshift the user into another form." }, - "countdown": { - "name": "Countdown", - "tooltip": "Start a countdown" - }, "damage": { "name": "Damage", "tooltip": "Direct damage without a roll." @@ -78,18 +64,6 @@ "exactHint": "The Character's Tier is used if empty", "label": "Beastform" }, - "countdown": { - "defaultOwnership": "Default Ownership", - "startCountdown": "Start Countdown" - }, - "damage": { - "multiplier": "Multiplier", - "flatMultiplier": "Flat Multiplier" - }, - "general": { - "customFormula": "Custom Formula", - "formula": "Formula" - }, "displayInChat": "Display in chat" }, "RollField": { @@ -104,10 +78,8 @@ "Settings": { "attackBonus": "Attack Bonus", "attackName": "Attack Name", - "criticalThreshold": "Critical Threshold", "includeBase": { "label": "Include Item Damage" }, "multiplier": "Multiplier", - "saveHint": "Set a default Trait to enable Reaction Roll. It can be changed later in Reaction Roll Dialog.", "resultBased": { "label": "Formula based on Hope/Fear result." }, @@ -132,8 +104,7 @@ "RangeDependance": { "hint": "Settings for an optional distance at which this effect should activate", "title": "Range Dependant" - }, - "immuneStatusText": "Immunity: {status}" + } }, "ACTORS": { "Adversary": { @@ -182,9 +153,7 @@ "hint": "Add single words or short text as reminders and hints of what a character has advantage on." }, "age": "Age", - "backgroundQuestions": "Backgrounds", "companionFeatures": "Companion Features", - "connections": "Connections", "contextMenu": { "consume": "Consume Item", "equip": "Equip", @@ -225,11 +194,8 @@ "confirmTitle": "Companion Levelup", "confirmText": "Would you like to level up your companion {name} by {levelChange} levels at this time? (You can do it manually later)" }, - "viewLevelups": "View Levelups", - "viewParty": "View Party", "InvalidOldCharacterImportTitle": "Old Character Import", - "InvalidOldCharacterImportText": "Character data exported prior to system version 1.1 will not generate a complete character. Do you wish to continue?", - "cancelBeastform": "Cancel Beastform" + "InvalidOldCharacterImportText": "Character data exported prior to system version 1.1 will not generate a complete character. Do you wish to continue?" }, "Companion": { "FIELDS": { @@ -272,9 +238,6 @@ } }, "APPLICATIONS": { - "Attribution": { - "title": "Attribution" - }, "CharacterCreation": { "tabs": { "ancestry": "Ancestry", @@ -283,8 +246,7 @@ "experience": "Experience", "traits": "Traits", "domainCards": "Domain Cards", - "equipment": "Equipment", - "story": "Story" + "equipment": "Equipment" }, "ancestryNamePlaceholder": "Your ancestry's name", "buttonTitle": "Character Setup", @@ -305,7 +267,6 @@ "selectSubclass": "Select Subclass", "startingItems": "Starting Items", "story": "Story", - "storyExplanation": "Select which background and connection prompts you want to copy into your character's background.", "suggestedArmor": "Suggested Armor", "suggestedPrimaryWeapon": "Suggested Primary Weapon", "suggestedSecondaryWeapon": "Suggested Secondary Weapon", @@ -327,34 +288,24 @@ "equip": "Equip", "sendToChat": "Send To Chat", "toLoadout": "Send to Loadout", - "recall": "Recall", "toVault": "Send to Vault", "unequip": "Unequip", "useItem": "Use Item" }, "Countdown": { "addCountdown": "Add Countdown", - "loopingTypes": { - "noLooping": "No Looping", - "looping": "Looping", - "increasing": "Increasing", - "decreasing": "Decreasing" - }, "FIELDS": { "countdowns": { "element": { "name": { "label": "Name" }, "progress": { "current": { "label": "Current" }, - "looping": { "label": "Looping" }, - "start": { "label": "Start" }, - "startFormula": { "label": "Start Formula" }, + "max": { "label": "Max" }, "type": { "label": { "label": "Label", "hint": "Used for custom" }, "value": { "label": "Value" } } - }, - "type": { "label": "Progression Type" } + } } } }, @@ -369,29 +320,6 @@ "encounter": "Encounter" } }, - "CountdownEdit": { - "title": "Countdown Edit", - "viewTitle": "Countdowns", - "editTitle": "Edit Countdowns", - "newCountdown": "New Countdown", - "removeCountdownTitle": "Remove Countdown", - "removeCountdownText": "Are you sure you want to remove the countdown: {name}?", - "current": "Current Value", - "start": "Start Value", - "startFormula": "Randomized Start Value Formula", - "currentCountdownCurrent": "Current: {value}", - "currentCountdownStart": "Start: {value}", - "category": "Category", - "progressionType": "Progression", - "decreasing": "Decreasing", - "looping": "Looping", - "defaultOwnershipTooltip": "The default player ownership of countdowns", - "hideNewCountdowns": "Hide New Countdowns" - }, - "DaggerheartMenu": { - "title": "GM Tools", - "refreshFeatures": "Refresh Features" - }, "DeleteConfirmation": { "title": "Delete {type} - {name}", "text": "Are you sure you want to delete {name}?" @@ -404,8 +332,7 @@ "stressReduction": "Reduce By Stress", "title": "Damage Reduction", "unncessaryStress": "You don't need to expend stress", - "usedMarks": "Used Marks", - "reduceSeverity": "Severity Reduced By {nr}" + "usedMarks": "Used Marks" }, "DeathMove": { "selectMove": "Select Move", @@ -464,18 +391,9 @@ }, "HUD": { "tokenHUD": { - "genericEffects": "Foundry Effects", - "depositPartyTokens": "Deposit Party Tokens", - "retrievePartyTokens": "Retrieve Party Tokens" + "genericEffects": "Foundry Effects" } }, - "ImageSelect": { - "title": "Select Image", - "selectImage": "Select Image" - }, - "ItemTransfer": { - "transfer": "Transfer" - }, "Levelup": { "actions": { "creatureComfort": { @@ -508,7 +426,6 @@ }, "navigateLevel": "To Level {level}", "navigateToLevelup": "Return To Levelup", - "finishLevelup": "Finish Levelup", "navigateToSummary": "To Summary", "options": { "trait": "Gain a +1 bonus to two unmarked character traits and mark them.", @@ -558,28 +475,24 @@ }, "takeLevelUp": "Finish Level Up", "tier2": { - "name": "Tier 2", "label": "Levels 2-4", "infoLabel": "At Level 2, gain an additional Experience at +2 and gain a +1 bonus to your Proficiency.", "pretext": "Choose two options from the list below", "posttext": "Take an additional domain card of your level or lower from a domain you have access to." }, "tier3": { - "name": "Tier 3", "label": "Levels 5-7", "infoLabel": "At Level 5, take an additional Experience and clear all marks on Character Traits.", "pretext": "When you level up, record it on your character sheet, then choose two from the list below or any unmarked from the previous tier.", "posttext": "Take an additional domain card of your level or lower from a domain you have access to." }, "tier4": { - "name": "Tier 4", "label": "Levels 8-10", "infoLabel": "At Level 8, take an additional Experience and clear all marks on Character Traits.", "pretext": "When you level up, record it on your character sheet, then choose two from the list below or any unmarked from the previous tier.", "posttext": "Take an additional domain card of your level or lower from a domain you have access to." }, - "title": "{actor} Level Up", - "viewModeTitle": "{actor} Level Up (View Mode)" + "title": "{actor} Level Up" }, "MulticlassChoice": { "title": "Multiclassing - {actor}", @@ -588,7 +501,6 @@ }, "OwnershipSelection": { "title": "Ownership Selection - {name}", - "noPlayers": "No players to assign ownership to", "default": "Default Ownership" }, "ReactionRoll": { @@ -602,22 +514,6 @@ "ResourceDice": { "title": "{name} Resource", "rerollDice": "Reroll Dice" - }, - "TagTeamSelect": { - "title": "Tag Team Roll", - "leaderTitle": "Initiating Character", - "membersTitle": "Participants", - "partyTeam": "Party Team", - "hopeCost": "Hope Cost", - "initiatingCharacter": "Initiating Character", - "linkMessageHint": "Make a roll from your character sheet to link it to the Tag Team Roll", - "damageNotRolled": "Damage not rolled in chat message yet", - "insufficientHope": "The initiating character doesn't have enough hope", - "createTagTeam": "Create TagTeam Roll", - "chatMessageRollTitle": "Roll" - }, - "TokenConfig": { - "actorSizeUsed": "Actor size is set, determining the dimensions" } }, "CLASS": { @@ -627,6 +523,11 @@ } }, "CONFIG": { + "ActionType": { + "passive": "Passive", + "action": "Action", + "reaction": "Reaction" + }, "AdversaryTrait": { "relentless": { "name": "Relentless", @@ -686,14 +587,6 @@ "description": "Enemies that enhance their allies and/or disrupt their opponents." } }, - "AdversaryTypeCost": { - "minion": "for each group of Minions equal to the size of the party.", - "support": "for each Social or Support adversary.", - "standard": "for each Horde, Ranged, Skulk, or Standard adversary.", - "leader": "for each Leader adversary.", - "bruiser": "for each Bruiser adversary.", - "solo": "for each Solo adversary." - }, "ArmorFeature": { "burning": { "name": "Burning", @@ -917,30 +810,6 @@ "evolved": "Evolved", "hybrid": "Hybrid" }, - "BPModifiers": { - "increaseDamage": { - "description": "if you add +1d4 (or a static +2) to all adversaries' damage rolls (to increase the challenge without lengthening the battle)", - "effect": { - "name": "Increase Damage", - "description": "Add 1d4 to damage" - } - }, - "lessDifficult": { - "description": "if the fight should be less difficult or shorter." - }, - "lowerTier": { - "description": "if you choose an adversary from a lower tier." - }, - "manySolos": { - "description": "if you're using 2 or more Solo adversaries." - }, - "moreDangerous": { - "description": "if the fight should be more dangerous or last longer" - }, - "noToughies": { - "description": "if you don't include any Bruisers, Hordes, Leaders, or Solos" - } - }, "Burden": { "oneHanded": "One-Handed", "twoHanded": "Two-Handed" @@ -976,12 +845,9 @@ } }, "CountdownType": { - "actionRoll": "Action Roll", - "characterAttack": "Character Attack", - "characterSpotlight": "Character Spotlight", + "spotlight": "Spotlight", "custom": "Custom", - "fear": "Fear", - "spotlight": "Spotlight" + "characterAttack": "Character Attack" }, "DamageType": { "physical": { @@ -991,11 +857,6 @@ "magical": { "name": "Magical", "abbreviation": "Mag" - }, - "direct": { - "name": "Direct Damage", - "short": "Direct", - "abbreviation": "Dir" } }, "DeathMoves": { @@ -1035,12 +896,6 @@ "description": "" } }, - "FeatureForm": { - "label": "Feature Form", - "passive": "Passive", - "action": "Action", - "reaction": "Reaction" - }, "Gold": { "title": "Gold", "coins": "Coins", @@ -1051,28 +906,23 @@ "HealingType": { "hitPoints": { "name": "Hit Points", - "abbreviation": "HP", - "inChatRoll": "Damage" + "abbreviation": "HP" }, "stress": { "name": "Stress", - "abbreviation": "STR", - "inChatRoll": "Stress" + "abbreviation": "STR" }, "hope": { "name": "Hope", - "abbreviation": "HO", - "inChatRoll": "Hope" + "abbreviation": "HO" }, "armor": { "name": "Armor Slot", - "abbreviation": "AS", - "inChatRoll": "Armor Slot" + "abbreviation": "AS" }, "fear": { "name": "Fear", - "abbreviation": "FR", - "inChatRoll": "Fear" + "abbreviation": "FR" } }, "ItemResourceProgression": { @@ -1081,8 +931,7 @@ }, "ItemResourceType": { "simple": "Simple", - "diceValue": "Dice Value", - "die": "Die" + "diceValue": "Dice Value" }, "Range": { "self": { @@ -1140,12 +989,6 @@ "selectType": "Select Action Type", "selectAction": "Action Selection" }, - "TargetTypes": { - "any": "Any", - "friendly": "Friendly", - "hostile": "Hostile", - "self": "Self" - }, "TemplateTypes": { "circle": "Circle", "cone": "Cone", @@ -1154,14 +997,6 @@ "rect": "Rectangle", "ray": "Ray" }, - "TokenSize": { - "tiny": "Tiny", - "small": "Small", - "medium": "Medium", - "large": "Large", - "huge": "Huge", - "gargantuan": "Gargantuan" - }, "Traits": { "agility": { "name": "Agility", @@ -1271,7 +1106,7 @@ }, "burning": { "name": "Burning", - "description": "When you roll a 6 on a damage die, the target must mark a Stress.", + "description": "When you roll the maximum value on a damage die, roll an additional damage die.", "actions": { "burn": { "name": "Burn", @@ -1802,9 +1637,7 @@ "label": "Long Rest: Bonus Long Rest Moves", "hint": "The number of extra Long Rest Moves the character can take during a Long Rest." } - }, - "target": "Target", - "targetSelf": "Self" + } }, "maxLoadout": { "label": "Max Loadout Cards Bonus" @@ -1819,7 +1652,6 @@ "plural": "Costs" }, "Damage": { - "massive": "Massive", "severe": "Severe", "major": "Major", "minor": "Minor", @@ -2006,10 +1838,6 @@ } } }, - "SpotlightRequests": { - "singular": "Spotlight Request", - "plural": "Spotlight Requests" - }, "Tabs": { "details": "Details", "attack": "Attack", @@ -2034,7 +1862,6 @@ "story": "Story", "biography": "Biography", "general": "General", - "resources": "Resources", "foundation": "Foundation", "specialization": "Specialization", "mastery": "Mastery", @@ -2050,15 +1877,7 @@ "tier4": "tier 4", "domains": "Domains", "downtime": "Downtime", - "roll": "Roll", - "rules": "Rules", - "partyMembers": "Party Members", - "projects": "Projects", - "types": "Types", - "itemFeatures": "Item Features", - "questions": "Questions", - "configuration": "Configuration", - "base": "Base" + "rules": "Rules" }, "Tiers": { "singular": "Tier", @@ -2075,21 +1894,17 @@ "amount": "Amount", "any": "Any", "armor": "Armor", - "armorFeatures": "Armor Features", "armors": "Armors", "armorScore": "Armor Score", "activeEffects": "Active Effects", "armorSlots": "Armor Slots", - "artistAttribution": "Artwork By: {artist}", "attack": "Attack", "basics": "Basics", "bonus": "Bonus", "burden": "Burden", - "condition": "Condition", "continue": "Continue", "criticalSuccess": "Critical Success", "criticalShort": "Critical", - "custom": "Custom", "d20Roll": "D20 Roll", "damage": "Damage", "damageRoll": "Damage Roll", @@ -2112,8 +1927,6 @@ "fear": "Fear", "features": "Features", "formula": "Formula", - "general": "General", - "gm": "GM", "healing": "Healing", "healingRoll": "Healing Roll", "hit": { @@ -2127,13 +1940,11 @@ }, "hope": "Hope", "hordeHp": "Horde HP", - "icon": "Icon", "identify": "Identity", "imagePath": "Image Path", "inactiveEffects": "Inactive Effects", "inventory": "Inventory", "itemResource": "Item Resource", - "itemQuantity": "Item Quantity", "items": "Items", "label": "Label", "level": "Level", @@ -2149,22 +1960,15 @@ "missingDragDropThing": "Drop {thing} here", "multiclass": "Multiclass", "newCategory": "New Category", - "newThing": "New {thing}", "none": "None", "noTarget": "No current target", "partner": "Partner", - "player": { - "single": "Player", - "plurial": "Players" - }, "proficiency": "Proficiency", "quantity": "Quantity", "range": "Range", "reactionRoll": "Reaction Roll", "recovery": "Recovery", - "refresh": "Refresh", "reroll": "Reroll", - "rerolled": "Rerolled", "rerollThing": "Reroll {thing}", "resource": "Resource", "roll": "Roll", @@ -2174,8 +1978,6 @@ "save": "Save", "scalable": "Scalable", "situationalBonus": "Situational Bonus", - "spent": "Spent", - "step": "Step", "stress": "Stress", "subclasses": "Subclasses", "success": "Success", @@ -2185,12 +1987,9 @@ "plural": "Targets" }, "title": "Title", - "tokenSize": "Token Size", "total": "Total", - "traitModifier": "Trait Modifier", "true": "True", "type": "Type", - "typeSheet": "System {type} Sheet", "unarmed": "Unarmed", "unarmedAttack": "Unarmed Attack", "unarmored": "Unarmored", @@ -2198,17 +1997,11 @@ "used": "Used", "uses": "Uses", "value": "Value", - "weaponFeatures": "Weapon Features", "weapons": "Weapons", "withThing": "With {thing}" }, "ITEMS": { "FIELDS": { - "attribution": { - "source": { "label": "Source" }, - "page": { "label": "Page" }, - "artist": { "label": "Artist" } - }, "resource": { "amount": { "label": "Amount" }, "dieFaces": { "label": "Die Faces" }, @@ -2243,7 +2036,6 @@ "tokenRingImg": { "label": "Subject Texture" }, "tokenSize": { "placeholder": "Using character dimensions", - "disabledPlaceholder": "Set by character size", "height": { "label": "Height" }, "width": { "label": "Width" } }, @@ -2267,11 +2059,7 @@ "evolvedDrag": "Drag a form here to evolve it.", "hybridize": "Hybridize", "hybridizeFeatureTitle": "Hybrid Features", - "hybridizeDrag": "Drag a form here to hybridize it.", - "mainTrait": "Main Trait", - "traitBonus": "Trait Bonus", - "evolvedTokenHint": "An evolved beastform's token is based on that of the form you evolve", - "evolvedImagePlaceholder": "The image for the form selected for evolution will be used" + "hybridizeDrag": "Drag a form here to hybridize it." }, "Class": { "hopeFeatures": "Hope Features", @@ -2288,8 +2076,7 @@ } }, "Consumable": { - "consumeOnUse": "Consume On Use", - "destroyOnEmpty": "Destroy On Empty" + "consumeOnUse": "Consume On Use" }, "DomainCard": { "type": "Type", @@ -2310,47 +2097,14 @@ "SETTINGS": { "Appearance": { "FIELDS": { - "displayFear": { - "label": "Display Fear" - }, - "displayCountdownUI": { - "label": "Display Countdown UI" - }, - "showGenericStatusEffects": { - "label": "Show Foundry Status Effects" - }, - "hideAttribution": { - "label": "Hide Attribution" - }, + "displayFear": { "label": "Fear Display" }, + "dualityColorScheme": { "label": "Chat Style" }, + "showGenericStatusEffects": { "label": "Show Foundry Status Effects" }, "expandedTitle": "Auto-expand Descriptions", - "extendCharacterDescriptions": { - "label": "Characters" - }, - "extendAdversaryDescriptions": { - "label": "Adversaries" - }, - "extendEnvironmentDescriptions": { - "label": "Environments" - }, - "extendItemDescriptions": { - "label": "Items" - }, - "expandRollMessage": { - "title": "Auto-expand Message Sections", - "desc": { - "label": "Description" - }, - "roll": { - "label": "Formula" - }, - "damage": { - "label": "Damage/Healing" - }, - "target": { - "label": "Target" - } - }, - "useResourcePips": { "label": "Pip Display For Resources" } + "extendCharacterDescriptions": { "label": "Characters" }, + "extendAdversaryDescriptions": { "label": "Adversaries" }, + "extendEnvironmentDescriptions": { "label": "Environments" }, + "extendItemDescriptions": { "label": "Items" } }, "fearDisplay": { "token": "Tokens", @@ -2380,10 +2134,6 @@ "gm": { "label": "GM" }, "players": { "label": "Players" } }, - "countdownAutomation": { - "label": "Countdown Automation", - "hint": "Automatically progress countdowns based on their progression settings" - }, "levelupAuto": { "label": "Levelup Automation", "hint": "When you've made your choices and finish levelup, the numerical changes are automatically applied to your character." @@ -2409,48 +2159,15 @@ "playerCanEditSheet": { "label": "Players Can Manually Edit Character Settings", "hint": "Players are allowed to access the manual Character Settings and change their statistics beyond the rules." - }, - "roll": { - "roll": { - "label": "Roll", - "hint": "Auto behavior for rolls like Attack, Spellcast, etc." - }, - "damage": { - "label": "Damage/Healing Roll", - "hint": "Auto behavior for Damage & Healing rolls after the Attack/Spellcast." - }, - "save": { - "label": "Reaction Roll", - "hint": "Auto behavior if a Reaction Roll is needed. Targets must be selected before the action is made" - }, - "damageApply": { - "label": "Apply Damage/Healing", - "hint": "Automatically apply damages & healings. Targets must be selected before the action is made and Reaction Roll Automation must be different than Never. Bypass users permissions." - }, - "effect": { - "label": "Apply Effects", - "hint": "Automatically apply effects. Targets must be selected before the action is made and Reaction Roll Automation must be different than Never. Bypass users permissions." - } - }, - "summaryMessages": { - "label": "Summary Messages" } }, "defeated": { "title": "Defeated Handling" - }, - "roll": { - "title": "Actions" } }, "Homebrew": { "newDowntimeMove": "Downtime Move", - "downtimeMove": "Downtime Move", - "armorFeature": "Armor Feature", - "weaponFeature": "Weapon Feature", - "newFeature": "New Item Feature", "downtimeMoves": "Downtime Moves", - "itemFeatures": "Item Features", "nrChoices": "# Moves Per Rest", "resetMovesTitle": "Reset {type} Downtime Moves", "resetMovesText": "Are you sure you want to reset?", @@ -2464,13 +2181,11 @@ "maxDomains": { "label": "Max Class Domains", "hint": "Max domains you can set on a class" } }, "currency": { + "enabled": "Enable Overrides", "title": "Currency Overrides", - "changeIcon": "Change Currency Icon", "currencyName": "Currency Name", "coinName": "Coin Name", "handfulName": "Handful Name", - "iconName": "Icon Name", - "iconNameHint": "Icons are from fontawesome", "bagName": "Bag Name", "chestName": "Chest Name" }, @@ -2485,10 +2200,6 @@ "deleteDomain": "Delete Domain", "deleteDomainText": "Are you sure you want to delete the {name} domain? It will be immediately removed from all Actors in this world where it's currently used. Compendiums are not cleared.", "duplicateDomain": "There is already a domain with this identification." - }, - "adversaryType": { - "title": "Custom Adversary Types", - "newType": "Adversary Type" } }, "Menu": { @@ -2509,8 +2220,10 @@ "hint": "System ruler setup for displaying ranges in Daggerheart" }, "appearance": { + "title": "Appearance Settings", "label": "Appearance Settings", "hint": "Modify the look of various parts of the system", + "name": "Appearance Settings", "duality": "Duality Rolls", "diceSoNice": { "title": "Dice So Nice", @@ -2522,8 +2235,7 @@ "texture": "Texture", "colorset": "Theme", "material": "Material", - "system": "Dice Preset", - "font": "Font" + "system": "Dice Preset" } }, "variantRules": { @@ -2532,11 +2244,6 @@ "hint": "Apply variant rules from the Daggerheart system", "name": "Variant Rules", "actionTokens": "Action Tokens" - }, - "SpotlightRequestQueue": { - "name": "Spotlight Request Queue", - "label": "Spotlight Request Queue", - "hint": "Adds more structure to spotlight requests by ordering them from oldest to newest" } }, "Resources": { @@ -2550,25 +2257,12 @@ "actionTokens": { "enabled": { "label": "Enabled" }, "tokens": { "label": "Tokens" } - }, - "massiveDamage": { - "title": "Massive Damage", - "enabled": { "label": "Enabled" } } } }, "ResetSettings": { "resetConfirmationTitle": "Reset Settings", "resetConfirmationText": "Are you sure you want to reset the {settings}?" - }, - "Scene": { - "FIELDS": { - "rangeMeasurement": { - "setting": { "label": "Setting" } - } - }, - "disabledText": "Daggerheart Measurements are disabled in System Settings - Variant Rules", - "rangeMeasurement": "Range Measurement" } }, "UI": { @@ -2576,7 +2270,6 @@ "action": { "title": "Action" }, - "appliedTo": "Applied To", "applyEffect": { "title": "Apply Effects - {name}" }, @@ -2586,11 +2279,6 @@ "rollHealing": "Roll Healing", "applyEffect": "Apply Effects" }, - "clearResource": "Clear {quantity} {resource}", - "damageSummary": { - "title": "Damage Applied", - "healingTitle": "Healing Applied" - }, "damageRoll": { "title": "Damage - {damage}", "dealDamageToTargets": "Damage Hit Targets", @@ -2612,101 +2300,18 @@ "dualityRoll": { "abilityCheckTitle": "{ability} Check" }, - "effectSummary": { - "title": "Effects Applied", - "immunityTo": "Immunity: {immunities}" - }, "featureTitle": "Class Feature", - "groupRoll": { - "title": "Group Roll", - "leader": "Leader", - "partyTeam": "Party Team", - "team": "Team", - "selectLeader": "Select a Leader", - "selectMember": "Select a Member", - "rerollTitle": "Reroll Group Roll", - "rerollContent": "Are you sure you want to reroll your {trait} check?", - "rerollTooltip": "Reroll", - "wholePartySelected": "The whole party is selected" - }, "healingRoll": { "title": "Heal - {damage}", "heal": "Heal", "applyHealing": "Apply Healing" }, - "markResource": "Mark {quantity} {resource}", - "refreshMessage": { - "title": "Feature Refresh", - "header": "Refreshed" - }, "reroll": { "confirmTitle": "Reroll Dice", "confirmText": "Are you sure you want to reroll?" }, "resourceRoll": { "playerMessage": "{user} rerolled their {name}" - }, - "tagTeam": { - "title": "Tag Team", - "membersTitle": "Members" - } - }, - "ChatLog": { - "rerollDamage": "Reroll Damage", - "assignTagRoll": "Assign as Tag Roll" - }, - "Countdowns": { - "title": "Countdowns", - "toggleIconMode": "Toggle Icon Only", - "noPlayerAccess": "This countdown isn't visible to any players", - "loop": "Looping", - "decreasingLoop": "Decreasing Looping", - "increasingLoop": "Increasing Looping" - }, - "EffectsDisplay": { - "removeThing": "[Right Click] Remove {thing}", - "appliedBy": "Applied By: {by}" - }, - "ItemBrowser": { - "title": "Daggerheart Compendium Browser", - "hint": "Select a Folder in sidebar to start browsing through the compendium", - "searchPlaceholder": "Search...", - "columnName": "Name", - "tooltipFilters": "Filters", - "tooltipErase": "Erase", - "difficultyMin": "Difficulty (Min)", - "difficultyMax": "Difficulty (Max)", - "hitPointsMin": "Hit Points (Min)", - "hitPointsMax": "Hit Points (Max)", - "stressMin": "Stress (Min)", - "stressMax": "Stress (Max)", - "armorScoreMin": "Armor Score (Min)", - "armorScoreMax": "Armor Score (Max)", - "levelMin": "Level (Min)", - "levelMax": "Level (Max)", - "recallCostMin": "Recall Cost (Min)", - "recallCostMax": "Recall Cost (Max)", - "evasionMin": "Evasion (Min)", - "evasionMax": "Evasion (Max)", - "subtype": "Subtype", - "missing": "Missing", - "folders": { - "characters": "Characters", - "adversaries": "Adversaries", - "ancestries": "Ancestries", - "equipment": "Equipment", - "classes": "Classes", - "subclasses": "Subclasses", - "domainCards": "Domain Cards", - "communities": "Communities", - "environments": "Environments", - "beastforms": "Beastforms", - "features": "Features", - "items": "Items", - "weapons": "Weapons", - "armors": "Armors", - "consumables": "Consumables", - "loots": "Loots" } }, "Notifications": { @@ -2714,7 +2319,6 @@ "beastformInapplicable": "A beastform can only be applied to a Character.", "beastformAlreadyApplied": "The character already has a beastform applied!", "noTargetsSelected": "No targets are selected.", - "noTargetsSelectedOrPerm": "No targets are selected or with the update permission.", "attackTargetDoesNotExist": "The target token no longer exists", "insufficentAdvancements": "You don't have enough advancements left.", "noAssignedPlayerCharacter": "You have no assigned character.", @@ -2742,8 +2346,6 @@ "wrongDomain": "The card isn't from one of your class domains.", "cardTooHighLevel": "The card is too high level!", "duplicateCard": "You cannot select the same card more than once.", - "duplicateCharacter": "This actor is already registered in the party members list.", - "onlyCharactersInPartySheet": "You can only drag characters, companions and adversaries to the party sheet.", "notPrimary": "The weapon is not a primary weapon!", "notSecondary": "The weapon is not a secondary weapon!", "itemTooHighTier": "The item must be from Tier1", @@ -2771,32 +2373,11 @@ "beastformEquipWeapon": "You cannot use weapons while in a Beastform.", "loadoutMaxReached": "You've reached maximum loadout. Move atleast one domain card to the vault, or increase the limit in homebrew settings if desired.", "domainMaxReached": "You've reached the maximum domains for the class. Increase the limit in homebrew settings if desired.", - "insufficientResources": "You don't have enough resources to use that action.", - "actionNoUsesRemaining": "That action doesn't have remaining uses.", + "insufficientResources": "You have insufficient resources", "multiclassAlreadyPresent": "You already have a class and multiclass", "subclassesAlreadyPresent": "You already have a class and multiclass subclass", "noDiceSystem": "Your selected dice {system} does not have a {faces} dice", - "gmMenuRefresh": "You refreshed all actions and resources {types}", - "subclassAlreadyLinked": "{name} is already a subclass in the class {class}. Remove it from there if you want it to be a subclass to this class.", - "gmRequired": "This action requires an online GM", - "gmOnly": "This can only be accessed by the GM", - "noActorOwnership": "You do not have permissions for this character", - "documentIsMissing": "The {documentType} is missing from the world.", - "tokenActorMissing": "{name} is missing an Actor", - "tokenActorsMissing": "[{names}] missing Actors" - }, - "Sidebar": { - "actorDirectory": { - "tier": "Tier {tier} {type}", - "character": "Level {level} Character", - "companion": "Level {level} - {partner}", - "companionNoPartner": "No Partner" - }, - "daggerheartMenu": { - "title": "Daggerheart Menu", - "startSession": "Start Session", - "startScene": "Start Scene" - } + "subclassAlreadyLinked": "{name} is already a subclass in the class {class}. Remove it from there if you want it to be a subclass to this class." }, "Tooltip": { "disableEffect": "Disable Effect", @@ -2823,12 +2404,7 @@ "rulesOff": "Rules Off", "remainingUses": "Uses refresh on {type}", "rightClickExtand": "Right-Click to extand", - "companionPartnerLevelBlock": "The companion needs an assigned partner to level up.", - "configureAttribution": "Configure Attribution", - "deleteItem": "Delete Item", - "immune": "Immune", - "middleClick": "[Middle Click] Keep tooltip view", - "tokenSize": "The token size used on the canvas" + "companionPartnerLevelBlock": "The companion needs an assigned partner to level up." } } } diff --git a/module/applications/_module.mjs b/module/applications/_module.mjs index b2d3001a..d4ceb229 100644 --- a/module/applications/_module.mjs +++ b/module/applications/_module.mjs @@ -2,10 +2,8 @@ export * as characterCreation from './characterCreation/_module.mjs'; export * as dialogs from './dialogs/_module.mjs'; export * as hud from './hud/_module.mjs'; export * as levelup from './levelup/_module.mjs'; -export * as scene from './scene/_module.mjs'; export * as settings from './settings/_module.mjs'; export * as sheets from './sheets/_module.mjs'; export * as sheetConfigs from './sheets-configs/_module.mjs'; -export * as sidebar from './sidebar/_module.mjs'; export * as ui from './ui/_module.mjs'; export * as ux from './ux/_module.mjs'; diff --git a/module/applications/characterCreation/characterCreation.mjs b/module/applications/characterCreation/characterCreation.mjs index aa764c56..ccb6f7c0 100644 --- a/module/applications/characterCreation/characterCreation.mjs +++ b/module/applications/characterCreation/characterCreation.mjs @@ -1,5 +1,6 @@ import { abilities } from '../../config/actorConfig.mjs'; import { burden } from '../../config/generalConfig.mjs'; +import { ItemBrowser } from '../ui/itemBrowser.mjs'; import { createEmbeddedItemsWithEffects, createEmbeddedItemWithEffects } from '../../helpers/utils.mjs'; const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; @@ -45,6 +46,8 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl }; this._dragDrop = this._createDragDropHandlers(); + + this.itemBrowser = null; } get title() { @@ -83,9 +86,9 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl static PARTS = { tabs: { template: 'systems/daggerheart/templates/characterCreation/tabs.hbs' }, - class: { template: 'systems/daggerheart/templates/characterCreation/tabs/class.hbs' }, ancestry: { template: 'systems/daggerheart/templates/characterCreation/tabs/ancestry.hbs' }, community: { template: 'systems/daggerheart/templates/characterCreation/tabs/community.hbs' }, + class: { template: 'systems/daggerheart/templates/characterCreation/tabs/class.hbs' }, traits: { template: 'systems/daggerheart/templates/characterCreation/tabs/traits.hbs' }, experience: { template: 'systems/daggerheart/templates/characterCreation/tabs/experience.hbs' }, domainCards: { template: 'systems/daggerheart/templates/characterCreation/tabs/domainCards.hbs' }, @@ -95,13 +98,6 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl }; static TABS = { - class: { - active: false, - cssClass: '', - group: 'setup', - id: 'class', - label: 'DAGGERHEART.APPLICATIONS.CharacterCreation.tabs.class' - }, ancestry: { active: true, cssClass: '', @@ -116,6 +112,13 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl id: 'community', label: 'DAGGERHEART.APPLICATIONS.CharacterCreation.tabs.community' }, + class: { + active: false, + cssClass: '', + group: 'setup', + id: 'class', + label: 'DAGGERHEART.APPLICATIONS.CharacterCreation.tabs.class' + }, traits: { active: false, cssClass: '', @@ -156,10 +159,10 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl v.cssClass = v.active ? 'active' : ''; switch (v.id) { - case 'ancestry': + case 'community': v.disabled = this.setup.visibility < 2; break; - case 'community': + case 'class': v.disabled = this.setup.visibility < 3; break; case 'traits': @@ -192,7 +195,7 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl } async _prepareContext(_options) { - this.tabGroups.setup = this.tabGroups.setup ?? 'class'; + this.tabGroups.setup = this.tabGroups.setup ?? 'ancestry'; const context = await super._prepareContext(_options); context.tabs = this._getTabs(this.constructor.TABS); @@ -266,13 +269,13 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl context.isLastTab = this.tabGroups.setup === 'equipment'; switch (this.tabGroups.setup) { case null: - case 'class': + case 'ancestry': context.nextDisabled = this.setup.visibility === 1; break; - case 'ancestry': + case 'community': context.nextDisabled = this.setup.visibility === 2; break; - case 'community': + case 'class': context.nextDisabled = this.setup.visibility === 3; break; case 'traits': @@ -363,11 +366,11 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl case 4: return this.getNrSelectedTrait() === 6 ? 5 : 4; case 3: - return this.setup.community.uuid ? 4 : 3; + return this.setup.class.uuid && this.setup.subclass.uuid ? 4 : 3; case 2: - return this.setup.primaryAncestry.uuid ? 3 : 2; + return this.setup.community.uuid ? 3 : 2; case 1: - return this.setup.class.uuid && this.setup.subclass.uuid ? 2 : 1; + return this.setup.primaryAncestry.uuid ? 2 : 1; } } @@ -422,7 +425,8 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl equipment = ['armor', 'weapon']; const presets = { - folder: equipment.includes(type) ? `equipments.folders.${type}s` : type, + compendium: 'daggerheart', + folder: equipment.includes(type) ? 'equipments' : type, render: { noFolder: true } @@ -438,14 +442,14 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl presets.filter = { 'system.linkedClass.uuid': { key: 'system.linkedClass.uuid', value: this.setup.class?.uuid } }; - + if (equipment.includes(type)) presets.filter = { 'system.tier': { key: 'system.tier', value: 1 }, 'type': { key: 'type', value: type } }; - ui.compendiumBrowser.open(presets); + return (this.itemBrowser = await new ItemBrowser({ presets }).render({ force: true })); } static async viewItem(_, target) { @@ -473,10 +477,10 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl static setupGoNext() { switch (this.setup.visibility) { case 2: - this.tabGroups.setup = 'ancestry'; + this.tabGroups.setup = 'community'; break; case 3: - this.tabGroups.setup = 'community'; + this.tabGroups.setup = 'class'; break; case 4: this.tabGroups.setup = 'traits'; @@ -563,7 +567,7 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl { overwrite: true } ); - if (ui.compendiumBrowser) ui.compendiumBrowser.close(); + if (this.itemBrowser) this.itemBrowser.close(); this.close(); } diff --git a/module/applications/dialogs/_module.mjs b/module/applications/dialogs/_module.mjs index 92038c41..8908ae2b 100644 --- a/module/applications/dialogs/_module.mjs +++ b/module/applications/dialogs/_module.mjs @@ -1,16 +1,11 @@ -export { default as AttributionDialog } from './attributionDialog.mjs'; export { default as BeastformDialog } from './beastformDialog.mjs'; export { default as d20RollDialog } from './d20RollDialog.mjs'; export { default as DamageDialog } from './damageDialog.mjs'; export { default as DamageReductionDialog } from './damageReductionDialog.mjs'; export { default as DeathMove } from './deathMove.mjs'; export { default as Downtime } from './downtime.mjs'; -export { default as ImageSelectDialog } from './imageSelectDialog.mjs'; -export { default as ItemTransferDialog } from './itemTransfer.mjs'; export { default as MulticlassChoiceDialog } from './multiclassChoiceDialog.mjs'; export { default as OwnershipSelection } from './ownershipSelection.mjs'; export { default as RerollDamageDialog } from './rerollDamageDialog.mjs'; export { default as ResourceDiceDialog } from './resourceDiceDialog.mjs'; export { default as ActionSelectionDialog } from './actionSelectionDialog.mjs'; -export { default as GroupRollDialog } from './group-roll-dialog.mjs'; -export { default as TagTeamDialog } from './tagTeamDialog.mjs'; diff --git a/module/applications/dialogs/actionSelectionDialog.mjs b/module/applications/dialogs/actionSelectionDialog.mjs index c421a577..786b5329 100644 --- a/module/applications/dialogs/actionSelectionDialog.mjs +++ b/module/applications/dialogs/actionSelectionDialog.mjs @@ -57,11 +57,7 @@ export default class ActionSelectionDialog extends HandlebarsApplicationMixin(Ap /** @inheritDoc */ async _prepareContext(options) { - const actions = this.#item.system.actionsList.map(action => ({ - ...action.toObject(), - id: action.id, - img: action.baseAction ? action.parent.parent.img : action.img - })), + const actions = this.#item.system.actionsList, itemName = this.#item.name; return { ...(await super._prepareContext(options)), diff --git a/module/applications/dialogs/attributionDialog.mjs b/module/applications/dialogs/attributionDialog.mjs deleted file mode 100644 index 99ff261a..00000000 --- a/module/applications/dialogs/attributionDialog.mjs +++ /dev/null @@ -1,93 +0,0 @@ -import autocomplete from 'autocompleter'; - -const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; - -export default class AttributionDialog extends HandlebarsApplicationMixin(ApplicationV2) { - constructor(item) { - super({}); - - this.item = item; - this.sources = Object.keys(CONFIG.DH.GENERAL.attributionSources).flatMap(groupKey => { - const group = CONFIG.DH.GENERAL.attributionSources[groupKey]; - return group.values.map(x => ({ group: group.label, ...x })); - }); - } - - get title() { - return game.i18n.localize('DAGGERHEART.APPLICATIONS.Attribution.title'); - } - - static DEFAULT_OPTIONS = { - tag: 'form', - classes: ['daggerheart', 'dh-style', 'dialog', 'views', 'attribution'], - position: { width: 'auto', height: 'auto' }, - window: { icon: 'fa-solid fa-signature' }, - form: { handler: this.updateData, submitOnChange: false, closeOnSubmit: true } - }; - - static PARTS = { - main: { template: 'systems/daggerheart/templates/dialogs/attribution.hbs' } - }; - - _attachPartListeners(partId, htmlElement, options) { - super._attachPartListeners(partId, htmlElement, options); - const sources = this.sources; - - htmlElement.querySelectorAll('.attribution-input').forEach(element => { - autocomplete({ - input: element, - fetch: function (text, update) { - if (!text) { - update(sources); - } else { - text = text.toLowerCase(); - var suggestions = sources.filter(n => n.label.toLowerCase().includes(text)); - update(suggestions); - } - }, - render: function (item, search) { - const label = game.i18n.localize(item.label); - const matchIndex = label.toLowerCase().indexOf(search); - - const beforeText = label.slice(0, matchIndex); - const matchText = label.slice(matchIndex, matchIndex + search.length); - const after = label.slice(matchIndex + search.length, label.length); - - const element = document.createElement('li'); - element.innerHTML = `${beforeText}${matchText ? `${matchText}` : ''}${after}`; - if (item.hint) { - element.dataset.tooltip = game.i18n.localize(item.hint); - } - - return element; - }, - renderGroup: function (label) { - const itemElement = document.createElement('div'); - itemElement.textContent = game.i18n.localize(label); - return itemElement; - }, - onSelect: function (item) { - element.value = item.label; - }, - click: e => e.fetch(), - customize: function (_input, _inputRect, container) { - container.style.zIndex = foundry.applications.api.ApplicationV2._maxZ; - }, - minLength: 0 - }); - }); - } - - async _prepareContext(_options) { - const context = await super._prepareContext(_options); - context.item = this.item; - context.data = this.item.system.attribution; - - return context; - } - - static async updateData(_event, _element, formData) { - await this.item.update({ 'system.attribution': formData.object }); - this.item.sheet.refreshFrame(); - } -} diff --git a/module/applications/dialogs/beastformDialog.mjs b/module/applications/dialogs/beastformDialog.mjs index 09a9222b..35bac11c 100644 --- a/module/applications/dialogs/beastformDialog.mjs +++ b/module/applications/dialogs/beastformDialog.mjs @@ -276,29 +276,7 @@ export default class BeastformDialog extends HandlebarsApplicationMixin(Applicat const featureItem = item; app.addEventListener( 'close', - async () => { - const selected = app.selected.toObject(); - const evolved = app.evolved.form ? app.evolved.form.toObject() : null; - const data = await game.system.api.data.items.DHBeastform.getWildcardImage( - app.configData.data.parent, - evolved ?? app.selected - ); - if (data) { - if (!data.selectedImage) selected = null; - else { - const imageSource = evolved ?? selected; - if (imageSource.usesDynamicToken) imageSource.system.tokenRingImg = data.selectedImage; - else imageSource.system.tokenImg = data.selectedImage; - } - } - - resolve({ - selected: selected, - evolved: { ...app.evolved, form: evolved }, - hybrid: app.hybrid, - item: featureItem - }); - }, + () => resolve({ selected: app.selected, evolved: app.evolved, hybrid: app.hybrid, item: featureItem }), { once: true } ); app.render({ force: true }); diff --git a/module/applications/dialogs/d20RollDialog.mjs b/module/applications/dialogs/d20RollDialog.mjs index 34ca02cd..0f1cd946 100644 --- a/module/applications/dialogs/d20RollDialog.mjs +++ b/module/applications/dialogs/d20RollDialog.mjs @@ -1,5 +1,3 @@ -import { abilities } from '../../config/actorConfig.mjs'; - const { ApplicationV2, HandlebarsApplicationMixin } = foundry.applications.api; export default class D20RollDialog extends HandlebarsApplicationMixin(ApplicationV2) { @@ -9,20 +7,20 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio this.roll = roll; this.config = config; this.config.experiences = []; - this.reactionOverride = config.actionType === 'reaction'; + this.reactionOverride = config.roll?.type === 'reaction'; if (config.source?.action) { this.item = config.data.parent.items.get(config.source.item) ?? config.data.parent; this.action = config.data.attack?._id == config.source.action ? config.data.attack - : this.item.system.actionsList?.find(a => a.id === config.source.action); + : this.item.system.actions.get(config.source.action); } } static DEFAULT_OPTIONS = { tag: 'form', - // id: 'roll-selection', + id: 'roll-selection', classes: ['daggerheart', 'dialog', 'dh-style', 'views', 'roll-selection'], position: { width: 'auto' @@ -34,7 +32,6 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio updateIsAdvantage: this.updateIsAdvantage, selectExperience: this.selectExperience, toggleReaction: this.toggleReaction, - toggleTagTeamRoll: this.toggleTagTeamRoll, submitRoll: this.submitRoll }, form: { @@ -45,7 +42,7 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio }; get title() { - return `${this.config.title}${this.actor ? `: ${this.actor.name}` : ''}`; + return this.config.title; } get actor() { @@ -69,7 +66,7 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio context.rollConfig = this.config; context.hasRoll = !!this.config.roll; context.canRoll = true; - context.selectedRollMode = this.config.selectedRollMode ?? game.settings.get('core', 'rollMode'); + context.selectedRollMode = this.config.selectedRollMode; context.rollModes = Object.entries(CONFIG.Dice.rollModes).map(([action, { label, icon }]) => ({ action, label, @@ -84,7 +81,7 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio ); context.costs = updatedCosts.map(x => ({ ...x, - label: x.itemId + label: x.keyIsID ? this.action.parent.parent.name : game.i18n.localize(CONFIG.DH.GENERAL.abilityCosts[x.key].label) })); @@ -104,7 +101,7 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio context.roll = this.roll; context.rollType = this.roll?.constructor.name; context.rallyDie = this.roll.rallyChoices; - const experiences = this.config.data?.system?.experiences || {}; + const experiences = this.config.data?.experiences || {}; context.experiences = Object.keys(experiences).map(id => ({ id, ...experiences[id] @@ -116,31 +113,15 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio context.isLite = this.config.roll?.lite; context.extraFormula = this.config.extraFormula; context.formula = this.roll.constructFormula(this.config); - if (this.actor?.system?.traits) context.abilities = this.getTraitModifiers(); - context.showReaction = !this.config.roll?.type && context.rollType === 'DualityRoll'; + context.showReaction = !context.rollConfig.type && context.rollType === 'DualityRoll'; context.reactionOverride = this.reactionOverride; } - - const tagTeamSetting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll); - if (this.actor && tagTeamSetting.members[this.actor.id] && !this.config.skips?.createMessage) { - context.activeTagTeamRoll = true; - context.tagTeamSelected = this.config.tagTeamSelected; - } - return context; } - getTraitModifiers() { - return Object.values(abilities).map(a => ({ - id: a.id, - label: `${game.i18n.localize(a.label)} (${this.actor.system.traits[a.id]?.value.signedString() ?? 0})` - })); - } - static updateRollConfiguration(event, _, formData) { const { ...rest } = foundry.utils.expandObject(formData.object); - this.config.selectedRollMode = rest.selectedRollMode; if (this.config.costs) { @@ -152,12 +133,6 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio this.roll[key] = value; }); } - if (rest.hasOwnProperty('trait')) { - this.config.roll.trait = rest.trait; - this.config.title = game.i18n.format('DAGGERHEART.UI.Chat.dualityRoll.abilityCheckTitle', { - ability: game.i18n.localize(abilities[this.config.roll.trait]?.label) - }); - } this.config.extraFormula = rest.extraFormula; this.render(); } @@ -176,38 +151,35 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio this.config.experiences.indexOf(button.dataset.key) > -1 ? this.config.experiences.filter(x => x !== button.dataset.key) : [...this.config.experiences, button.dataset.key]; - this.config.costs = - this.config.costs.indexOf(this.config.costs.find(c => c.extKey === button.dataset.key)) > -1 - ? this.config.costs.filter(x => x.extKey !== button.dataset.key) - : [ - ...this.config.costs, - { - extKey: button.dataset.key, - key: this.config?.data?.parent?.isNPC ? 'fear' : 'hope', - value: 1, - name: this.config.data?.system.experiences?.[button.dataset.key]?.name - } - ]; + if (this.config?.data?.parent?.type === 'character' || this.config?.data?.parent?.type === 'companion') { + this.config.costs = + this.config.costs.indexOf(this.config.costs.find(c => c.extKey === button.dataset.key)) > -1 + ? this.config.costs.filter(x => x.extKey !== button.dataset.key) + : [ + ...this.config.costs, + { + extKey: button.dataset.key, + key: 'hope', + value: 1, + name: this.config.data?.experiences?.[button.dataset.key]?.name + } + ]; + } this.render(); } static toggleReaction() { if (this.config.roll) { this.reactionOverride = !this.reactionOverride; - this.config.actionType = this.reactionOverride - ? 'reaction' - : this.config.actionType === 'reaction' - ? 'action' - : this.config.actionType; + this.config.roll.type = this.reactionOverride + ? CONFIG.DH.ITEM.actionTypes.reaction.id + : this.config.roll.type === CONFIG.DH.ITEM.actionTypes.reaction.id + ? null + : this.config.roll.type; this.render(); } } - static toggleTagTeamRoll() { - this.config.tagTeamSelected = !this.config.tagTeamSelected; - this.render(); - } - static async submitRoll() { await this.close({ submitted: true }); } diff --git a/module/applications/dialogs/damageReductionDialog.mjs b/module/applications/dialogs/damageReductionDialog.mjs index cd0a5cf7..b64149c0 100644 --- a/module/applications/dialogs/damageReductionDialog.mjs +++ b/module/applications/dialogs/damageReductionDialog.mjs @@ -10,7 +10,6 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap this.reject = reject; this.actor = actor; this.damage = damage; - this.damageType = damageType; this.rulesDefault = game.settings.get( CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation @@ -58,11 +57,6 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap null ); - this.reduceSeverity = this.damageType.reduce((value, curr) => { - return Math.max(this.actor.system.rules.damageReduction.reduceSeverity[curr], value); - }, 0); - this.actor.system.rules.damageReduction.reduceSeverity[this.damageType]; - this.thresholdImmunities = Object.keys(actor.system.rules.damageReduction.thresholdImmunities).reduce( (acc, key) => { if (actor.system.rules.damageReduction.thresholdImmunities[key]) @@ -117,9 +111,7 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap CONFIG.DH.GENERAL.ruleChoice.onWithToggle.id, CONFIG.DH.GENERAL.ruleChoice.offWithToggle.id ].includes(this.rulesDefault); - context.reduceSeverity = this.reduceSeverity; - context.thresholdImmunities = - Object.keys(this.thresholdImmunities).length > 0 ? this.thresholdImmunities : null; + context.thresholdImmunities = this.thresholdImmunities; const { selectedArmorMarks, selectedStressMarks, stressReductions, currentMarks, currentDamage } = this.getDamageInfo(); @@ -181,9 +173,6 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap this.damage - armorMarkReduction - selectedStressMarks.length - stressReductions.length, 0 ); - if (this.reduceSeverity) { - currentDamage = Math.max(currentDamage - this.reduceSeverity, 0); - } if (this.thresholdImmunities[currentDamage]) currentDamage = 0; diff --git a/module/applications/dialogs/downtime.mjs b/module/applications/dialogs/downtime.mjs index f03524f0..b0f51c4e 100644 --- a/module/applications/dialogs/downtime.mjs +++ b/module/applications/dialogs/downtime.mjs @@ -1,5 +1,3 @@ -import { refreshIsAllowed } from '../../helpers/utils.mjs'; - const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV2) { @@ -93,10 +91,14 @@ export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV } getRefreshables() { - const actionItems = this.actor.items.filter(x => this.actor.system.isItemAvailable(x)).reduce((acc, x) => { + const actionItems = this.actor.items.reduce((acc, x) => { if (x.system.actions) { const recoverable = x.system.actions.reduce((acc, action) => { - if (refreshIsAllowed([this.shortrest ? 'shortRest' : 'longRest'], action.uses.recovery)) { + if ( + action.uses.recovery && + ((action.uses.recovery === 'longRest' && !this.shortrest) || + action.uses.recovery === 'shortRest') + ) { acc.push({ title: x.name, name: action.name, @@ -118,7 +120,8 @@ export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV if ( x.system.resource && x.system.resource.type && - refreshIsAllowed([this.shortrest ? 'shortRest' : 'longRest'], x.system.resource.recovery) + ((x.system.resource.recovery === 'longRest') === !this.shortrest || + x.system.resource.recovery === 'shortRest') ) { acc.push({ title: game.i18n.localize(`TYPES.Item.${x.type}`), @@ -175,23 +178,11 @@ export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV } static async takeDowntime() { - const moves = Object.keys(this.moveData).flatMap(categoryKey => { - const category = this.moveData[categoryKey]; - return Object.keys(category.moves) - .filter(x => category.moves[x].selected) - .flatMap(key => { - const move = category.moves[key]; - const needsTarget = move.actions.filter(x => x.target?.type && x.target.type !== 'self').length > 0; - return [...Array(move.selected).keys()].map(_ => ({ - ...move, - movePath: `${categoryKey}.moves.${key}`, - needsTarget: needsTarget - })); - }); + const moves = Object.values(this.moveData).flatMap(category => { + return Object.values(category.moves) + .filter(x => x.selected) + .flatMap(move => [...Array(move.selected).keys()].map(_ => move)); }); - const characters = game.actors.filter(x => x.type === 'character') - .filter(x => x.testUserPermission(game.user, 'LIMITED')) - .filter(x => x.uuid !== this.actor.uuid); const cls = getDocumentClass('ChatMessage'); const msg = { @@ -211,9 +202,7 @@ export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV `DAGGERHEART.APPLICATIONS.Downtime.${this.shortrest ? 'shortRest' : 'longRest'}.title` ), actor: { name: this.actor.name, img: this.actor.img }, - moves: moves, - characters: characters, - selfId: this.actor.uuid + moves: moves } ), flags: { diff --git a/module/applications/dialogs/group-roll-dialog.mjs b/module/applications/dialogs/group-roll-dialog.mjs deleted file mode 100644 index 2cb79563..00000000 --- a/module/applications/dialogs/group-roll-dialog.mjs +++ /dev/null @@ -1,196 +0,0 @@ -import autocomplete from 'autocompleter'; -import { abilities } from '../../config/actorConfig.mjs'; - -const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; - -export default class GroupRollDialog extends HandlebarsApplicationMixin(ApplicationV2) { - constructor(actors) { - super(); - this.actors = actors; - this.actorLeader = {}; - this.actorsMembers = []; - } - - get title() { - return 'Group Roll'; - } - - static DEFAULT_OPTIONS = { - tag: 'form', - classes: ['daggerheart', 'views', 'dh-style', 'dialog', 'group-roll'], - position: { width: 'auto', height: 'auto' }, - window: { - title: 'DAGGERHEART.UI.Chat.groupRoll.title' - }, - actions: { - roll: GroupRollDialog.#roll, - removeLeader: GroupRollDialog.#removeLeader, - removeMember: GroupRollDialog.#removeMember - }, - form: { handler: this.updateData, submitOnChange: true, closeOnSubmit: false } - }; - - static PARTS = { - application: { - id: 'group-roll', - template: 'systems/daggerheart/templates/dialogs/group-roll/group-roll.hbs' - } - }; - - _attachPartListeners(partId, htmlElement, options) { - super._attachPartListeners(partId, htmlElement, options); - const leaderChoices = this.actors.filter(x => this.actorsMembers.every(member => member.actor?.id !== x.id)); - const memberChoices = this.actors.filter( - x => this.actorLeader?.actor?.id !== x.id && this.actorsMembers.every(member => member.actor?.id !== x.id) - ); - - htmlElement.querySelectorAll('.leader-change-input').forEach(element => { - autocomplete({ - input: element, - fetch: function (text, update) { - if (!text) { - update(leaderChoices); - } else { - text = text.toLowerCase(); - var suggestions = leaderChoices.filter(n => n.name.toLowerCase().includes(text)); - update(suggestions); - } - }, - render: function (actor, search) { - const actorName = game.i18n.localize(actor.name); - const matchIndex = actorName.toLowerCase().indexOf(search); - - const beforeText = actorName.slice(0, matchIndex); - const matchText = actorName.slice(matchIndex, matchIndex + search.length); - const after = actorName.slice(matchIndex + search.length, actorName.length); - const img = document.createElement('img'); - img.src = actor.img; - - const element = document.createElement('li'); - element.appendChild(img); - - const label = document.createElement('span'); - label.innerHTML = `${beforeText}${matchText ? `${matchText}` : ''}${after}`; - element.appendChild(label); - - return element; - }, - renderGroup: function (label) { - const itemElement = document.createElement('div'); - itemElement.textContent = game.i18n.localize(label); - return itemElement; - }, - onSelect: actor => { - element.value = actor.uuid; - this.actorLeader = { actor: actor, trait: 'agility', difficulty: 0 }; - this.render(); - }, - click: e => e.fetch(), - customize: function (_input, _inputRect, container) { - container.style.zIndex = foundry.applications.api.ApplicationV2._maxZ; - }, - minLength: 0 - }); - }); - - htmlElement.querySelectorAll('.team-push-input').forEach(element => { - autocomplete({ - input: element, - fetch: function (text, update) { - if (!text) { - update(memberChoices); - } else { - text = text.toLowerCase(); - var suggestions = memberChoices.filter(n => n.name.toLowerCase().includes(text)); - update(suggestions); - } - }, - render: function (actor, search) { - const actorName = game.i18n.localize(actor.name); - const matchIndex = actorName.toLowerCase().indexOf(search); - - const beforeText = actorName.slice(0, matchIndex); - const matchText = actorName.slice(matchIndex, matchIndex + search.length); - const after = actorName.slice(matchIndex + search.length, actorName.length); - const img = document.createElement('img'); - img.src = actor.img; - - const element = document.createElement('li'); - element.appendChild(img); - - const label = document.createElement('span'); - label.innerHTML = `${beforeText}${matchText ? `${matchText}` : ''}${after}`; - element.appendChild(label); - - return element; - }, - renderGroup: function (label) { - const itemElement = document.createElement('div'); - itemElement.textContent = game.i18n.localize(label); - return itemElement; - }, - onSelect: actor => { - element.value = actor.uuid; - this.actorsMembers.push({ actor: actor, trait: 'agility', difficulty: 0 }); - this.render({ force: true }); - }, - click: e => e.fetch(), - customize: function (_input, _inputRect, container) { - container.style.zIndex = foundry.applications.api.ApplicationV2._maxZ; - }, - minLength: 0 - }); - }); - } - - async _prepareContext(_options) { - const context = await super._prepareContext(_options); - context.leader = this.actorLeader; - context.members = this.actorsMembers; - context.traitList = abilities; - - context.allSelected = this.actorsMembers.length + (this.actorLeader?.actor ? 1 : 0) === this.actors.length; - context.rollDisabled = context.members.length === 0 || !this.actorLeader?.actor; - - return context; - } - - static updateData(event, _, formData) { - const { actorLeader, actorsMembers } = foundry.utils.expandObject(formData.object); - this.actorLeader = foundry.utils.mergeObject(this.actorLeader, actorLeader); - this.actorsMembers = foundry.utils.mergeObject(this.actorsMembers, actorsMembers); - this.render(true); - } - - static async #removeLeader(_, button) { - this.actorLeader = null; - this.render(); - } - - static async #removeMember(_, button) { - this.actorsMembers = this.actorsMembers.filter(m => m.actor.uuid !== button.dataset.memberUuid); - this.render(); - } - - static async #roll() { - const cls = getDocumentClass('ChatMessage'); - const systemData = { - leader: this.actorLeader, - members: this.actorsMembers - }; - const msg = { - type: 'groupRoll', - user: game.user.id, - speaker: cls.getSpeaker(), - title: game.i18n.localize('DAGGERHEART.UI.Chat.groupRoll.title'), - system: systemData, - content: await foundry.applications.handlebars.renderTemplate( - 'systems/daggerheart/templates/ui/chat/groupRoll.hbs', - { system: systemData } - ) - }; - - cls.create(msg); - this.close(); - } -} diff --git a/module/applications/dialogs/imageSelectDialog.mjs b/module/applications/dialogs/imageSelectDialog.mjs deleted file mode 100644 index 9a012325..00000000 --- a/module/applications/dialogs/imageSelectDialog.mjs +++ /dev/null @@ -1,70 +0,0 @@ -const { ApplicationV2, HandlebarsApplicationMixin } = foundry.applications.api; - -export default class ImageSelectDialog extends HandlebarsApplicationMixin(ApplicationV2) { - constructor(titleName, images) { - super(); - - this.titleName = titleName; - this.images = images; - } - - static DEFAULT_OPTIONS = { - tag: 'form', - classes: ['daggerheart', 'dialog', 'dh-style', 'image-select'], - position: { - width: 612, - height: 'auto' - }, - window: { - icon: 'fa-solid fa-paw' - }, - actions: { - selectImage: ImageSelectDialog.#selectImage, - finishSelection: ImageSelectDialog.#finishSelection - } - }; - - get title() { - return this.titleName; - } - - /** @override */ - static PARTS = { - main: { - template: 'systems/daggerheart/templates/dialogs/image-select/main.hbs', - scrollable: ['.images-container'] - }, - footer: { template: 'systems/daggerheart/templates/dialogs/image-select/footer.hbs' } - }; - - async _prepareContext(_options) { - const context = await super._prepareContext(_options); - context.images = this.images; - context.selectedImage = this.selectedImage; - - return context; - } - - static #selectImage(_event, button) { - this.selectedImage = button.dataset.image ?? button.querySelector('img').dataset.image; - this.render(); - } - - static #finishSelection() { - this.close({ submitted: true }); - } - - async close(options = {}) { - if (!options.submitted) this.selectedImage = null; - - await super.close(); - } - - static async configure(title, images) { - return new Promise(resolve => { - const app = new this(title, images); - app.addEventListener('close', () => resolve(app.selectedImage), { once: true }); - app.render({ force: true }); - }); - } -} diff --git a/module/applications/dialogs/itemTransfer.mjs b/module/applications/dialogs/itemTransfer.mjs deleted file mode 100644 index ad3cf103..00000000 --- a/module/applications/dialogs/itemTransfer.mjs +++ /dev/null @@ -1,62 +0,0 @@ -const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; - -export default class ItemTransferDialog extends HandlebarsApplicationMixin(ApplicationV2) { - constructor(data) { - super({}); - this.data = data; - } - - get title() { - return this.data.title; - } - - static DEFAULT_OPTIONS = { - tag: 'form', - classes: ['daggerheart', 'dh-style', 'dialog', 'item-transfer'], - position: { width: 400, height: 'auto' }, - window: { icon: 'fa-solid fa-hand-holding-hand' }, - actions: { - finish: ItemTransferDialog.#finish - } - }; - - static PARTS = { - main: { template: 'systems/daggerheart/templates/dialogs/item-transfer.hbs', root: true } - }; - - async _prepareContext(_options) { - const context = await super._prepareContext(_options); - return foundry.utils.mergeObject(context, this.data); - } - - static async #finish() { - this.selected = this.form.elements.quantity.valueAsNumber || null; - this.close(); - } - - static #determineTransferOptions({ originActor, targetActor, item, currency }) { - originActor ??= item?.actor; - const homebrewKey = CONFIG.DH.SETTINGS.gameSettings.Homebrew; - const currencySetting = game.settings.get(CONFIG.DH.id, homebrewKey).currency?.[currency] ?? null; - - return { - originActor, - targetActor, - itemImage: item?.img, - currencyIcon: currencySetting?.icon, - max: item?.system.quantity ?? originActor.system.gold[currency] ?? 0, - title: item?.name ?? currencySetting?.label - }; - } - - static async configure(options) { - return new Promise(resolve => { - const data = this.#determineTransferOptions(options); - if (data.max <= 1) return resolve(data.max); - - const app = new this(data); - app.addEventListener('close', () => resolve(app.selected), { once: true }); - app.render({ force: true }); - }); - } -} diff --git a/module/applications/dialogs/ownershipSelection.mjs b/module/applications/dialogs/ownershipSelection.mjs index 64173221..e4a7e628 100644 --- a/module/applications/dialogs/ownershipSelection.mjs +++ b/module/applications/dialogs/ownershipSelection.mjs @@ -1,20 +1,18 @@ const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; export default class OwnershipSelection extends HandlebarsApplicationMixin(ApplicationV2) { - constructor(name, ownership, defaultOwnership) { + constructor(resolve, reject, name, ownership) { super({}); + this.resolve = resolve; + this.reject = reject; this.name = name; - this.ownership = foundry.utils.deepClone(ownership); - this.defaultOwnership = defaultOwnership; + this.ownership = ownership; } static DEFAULT_OPTIONS = { tag: 'form', - classes: ['daggerheart', 'views', 'dialog', 'dh-style', 'ownership-selection'], - window: { - icon: 'fa-solid fa-users' - }, + classes: ['daggerheart', 'views', 'ownership-selection'], position: { width: 600, height: 'auto' @@ -32,48 +30,43 @@ export default class OwnershipSelection extends HandlebarsApplicationMixin(Appli return game.i18n.format('DAGGERHEART.APPLICATIONS.OwnershipSelection.title', { name: this.name }); } - getOwnershipData(id) { - return this.ownership[id] ?? CONST.DOCUMENT_OWNERSHIP_LEVELS.INHERIT; - } - async _prepareContext(_options) { const context = await super._prepareContext(_options); - context.ownershipOptions = CONFIG.DH.GENERAL.simpleOwnershiplevels; - context.defaultOwnership = this.defaultOwnership; - context.ownership = game.users.reduce((acc, user) => { - if (!user.isGM) { - acc[user.id] = { - ...user, - img: user.character?.img ?? 'icons/svg/cowled.svg', - ownership: this.getOwnershipData(user.id) - }; - } + context.ownershipOptions = Object.keys(CONST.DOCUMENT_OWNERSHIP_LEVELS).map(level => ({ + value: CONST.DOCUMENT_OWNERSHIP_LEVELS[level], + label: game.i18n.localize(`OWNERSHIP.${level}`) + })); + context.ownership = { + default: this.ownership.default, + players: Object.keys(this.ownership.players).reduce((acc, x) => { + const user = game.users.get(x); + if (!user.isGM) { + acc[x] = { + img: user.character?.img ?? 'icons/svg/cowled.svg', + name: user.name, + ownership: this.ownership.players[x].value + }; + } - return acc; - }, {}); - context.showOwnership = Boolean(Object.keys(context.ownership).length); + return acc; + }, {}) + }; return context; } static async updateData(event, _, formData) { - const data = foundry.utils.expandObject(formData.object); - this.close(data); + const { ownership } = foundry.utils.expandObject(formData.object); + + this.resolve(ownership); + this.close(true); } - async close(data) { - if (data) { - this.saveData = data; + async close(fromSave) { + if (!fromSave) { + this.reject(); } await super.close(); } - - static async configure(name, ownership, defaultOwnership) { - return new Promise(resolve => { - const app = new this(name, ownership, defaultOwnership); - app.addEventListener('close', () => resolve(app.saveData), { once: true }); - app.render({ force: true }); - }); - } } diff --git a/module/applications/dialogs/rerollDamageDialog.mjs b/module/applications/dialogs/rerollDamageDialog.mjs index e1b75eb7..0c2ea0e1 100644 --- a/module/applications/dialogs/rerollDamageDialog.mjs +++ b/module/applications/dialogs/rerollDamageDialog.mjs @@ -1,5 +1,3 @@ -import { RefreshType, socketEvent } from '../../systemRegistration/socket.mjs'; - const { ApplicationV2, HandlebarsApplicationMixin } = foundry.applications.api; export default class RerollDamageDialog extends HandlebarsApplicationMixin(ApplicationV2) { @@ -124,15 +122,6 @@ export default class RerollDamageDialog extends HandlebarsApplicationMixin(Appli }, {}) }; await this.message.update(update); - - Hooks.callAll(socketEvent.Refresh, { refreshType: RefreshType.TagTeamRoll }); - await game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.Refresh, - data: { - refreshType: RefreshType.TagTeamRoll - } - }); - await this.close(); } diff --git a/module/applications/dialogs/tagTeamDialog.mjs b/module/applications/dialogs/tagTeamDialog.mjs deleted file mode 100644 index d1a1e123..00000000 --- a/module/applications/dialogs/tagTeamDialog.mjs +++ /dev/null @@ -1,347 +0,0 @@ -import { getCritDamageBonus } from '../../helpers/utils.mjs'; -import { GMUpdateEvent, RefreshType, socketEvent } from '../../systemRegistration/socket.mjs'; - -const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; - -export default class TagTeamDialog extends HandlebarsApplicationMixin(ApplicationV2) { - constructor(party) { - super(); - - this.data = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll); - this.party = party; - - this.setupHooks = Hooks.on(socketEvent.Refresh, ({ refreshType }) => { - if (refreshType === RefreshType.TagTeamRoll) { - this.data = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll); - this.render(); - } - }); - } - - get title() { - return game.i18n.localize('DAGGERHEART.APPLICATIONS.TagTeamSelect.title'); - } - - static DEFAULT_OPTIONS = { - tag: 'form', - classes: ['daggerheart', 'views', 'dh-style', 'dialog', 'tag-team-dialog'], - position: { width: 550, height: 'auto' }, - actions: { - removeMember: TagTeamDialog.#removeMember, - unlinkMessage: TagTeamDialog.#unlinkMessage, - selectMessage: TagTeamDialog.#selectMessage, - createTagTeam: TagTeamDialog.#createTagTeam - }, - form: { handler: this.updateData, submitOnChange: true, closeOnSubmit: false } - }; - - static PARTS = { - application: { - id: 'tag-team-dialog', - template: 'systems/daggerheart/templates/dialogs/tagTeamDialog.hbs' - } - }; - - async _prepareContext(_options) { - const context = await super._prepareContext(_options); - context.hopeCost = this.hopeCost; - context.data = this.data; - - context.memberOptions = this.party.filter(c => !this.data.members[c.id]); - context.selectedCharacterOptions = this.party.filter(c => this.data.members[c.id]); - - context.members = Object.keys(this.data.members).map(id => { - const roll = this.data.members[id].messageId ? game.messages.get(this.data.members[id].messageId) : null; - - context.usesDamage = - context.usesDamage === undefined - ? roll?.system.hasDamage - : context.usesDamage && roll?.system.hasDamage; - return { - character: this.party.find(x => x.id === id), - selected: this.data.members[id].selected, - roll: roll, - damageValues: roll - ? Object.keys(roll.system.damage).map(key => ({ - key: key, - name: game.i18n.localize(CONFIG.DH.GENERAL.healingTypes[key].label), - total: roll.system.damage[key].total - })) - : null - }; - }); - - const initiatorChar = this.party.find(x => x.id === this.data.initiator.id); - context.initiator = { - character: initiatorChar, - cost: this.data.initiator.cost - }; - - const selectedMember = Object.values(context.members).find(x => x.selected && x.roll); - const selectedIsCritical = selectedMember?.roll?.system?.isCritical; - context.selectedData = { - result: selectedMember - ? `${selectedMember.roll.system.roll.total} ${selectedMember.roll.system.roll.result.label}` - : null, - damageValues: null - }; - - for (const member of Object.values(context.members)) { - if (!member.roll) continue; - if (context.usesDamage) { - if (!context.selectedData.damageValues) context.selectedData.damageValues = {}; - for (let damage of member.damageValues) { - const damageTotal = member.roll.system.isCritical - ? damage.total - : selectedIsCritical - ? damage.total + (await getCritDamageBonus(member.roll.system.damage[damage.key].formula)) - : damage.total; - if (context.selectedData.damageValues[damage.key]) { - context.selectedData.damageValues[damage.key].total += damageTotal; - } else { - context.selectedData.damageValues[damage.key] = { - ...foundry.utils.deepClone(damage), - total: damageTotal - }; - } - } - } - } - - context.showResult = Object.values(context.members).reduce((enabled, member) => { - if (!member.roll) return enabled; - if (context.usesDamage) { - enabled = enabled === null ? member.damageValues.length > 0 : enabled && member.damageValues.length > 0; - } else { - enabled = enabled === null ? Boolean(member.roll) : enabled && Boolean(member.roll); - } - - return enabled; - }, null); - - context.createDisabled = - !context.selectedData.result || - !this.data.initiator.id || - Object.keys(this.data.members).length === 0 || - Object.values(context.members).some(x => - context.usesDamage ? !x.damageValues || x.damageValues.length === 0 : !x.roll - ); - - return context; - } - - async updateSource(update) { - await this.data.updateSource(update); - - if (game.user.isGM) { - await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll, this.data.toObject()); - Hooks.callAll(socketEvent.Refresh, { refreshType: RefreshType.TagTeamRoll }); - await game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.Refresh, - data: { - refreshType: RefreshType.TagTeamRoll - } - }); - } else { - await game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.GMUpdate, - data: { - action: GMUpdateEvent.UpdateSetting, - uuid: CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll, - update: this.data.toObject(), - refresh: { refreshType: RefreshType.TagTeamRoll } - } - }); - } - } - - static async updateData(_event, _element, formData) { - const { selectedAddMember, initiator } = foundry.utils.expandObject(formData.object); - const update = { initiator: initiator }; - if (selectedAddMember) { - const member = await foundry.utils.fromUuid(selectedAddMember); - update[`members.${member.id}`] = { messageId: null }; - } - - await this.updateSource(update); - this.render(); - } - - static async #removeMember(_, button) { - const update = { [`members.-=${button.dataset.characterId}`]: null }; - if (this.data.initiator.id === button.dataset.characterId) { - update.iniator = { id: null }; - } - - await this.updateSource(update); - } - - static async #unlinkMessage(_, button) { - await this.updateSource({ [`members.${button.id}.messageId`]: null }); - } - - static async #selectMessage(_, button) { - const member = this.data.members[button.id]; - const currentSelected = Object.keys(this.data.members).find(key => this.data.members[key].selected); - const curretSelectedUpdate = - currentSelected && currentSelected !== button.id ? { [`${currentSelected}`]: { selected: false } } : {}; - await this.updateSource({ - members: { - [`${button.id}`]: { selected: !member.selected }, - ...curretSelectedUpdate - } - }); - } - - static async #createTagTeam() { - const mainRollId = Object.keys(this.data.members).find(key => this.data.members[key].selected); - const mainRoll = game.messages.get(this.data.members[mainRollId].messageId); - - if (this.data.initiator.cost) { - const initiator = this.party.find(x => x.id === this.data.initiator.id); - if (initiator.system.resources.hope.value < this.data.initiator.cost) { - return ui.notifications.warn( - game.i18n.localize('DAGGERHEART.APPLICATIONS.TagTeamSelect.insufficientHope') - ); - } - } - - const secondaryRolls = Object.keys(this.data.members) - .filter(key => key !== mainRollId) - .map(key => game.messages.get(this.data.members[key].messageId)); - - const systemData = foundry.utils.deepClone(mainRoll).system.toObject(); - const criticalRoll = systemData.roll.isCritical; - for (let roll of secondaryRolls) { - if (roll.system.hasDamage) { - for (let key in roll.system.damage) { - var damage = roll.system.damage[key]; - const damageTotal = - !roll.system.isCritical && criticalRoll - ? (await getCritDamageBonus(damage.formula)) + damage.total - : damage.total; - const updatedDamageParts = damage.parts; - if (systemData.damage[key]) { - if (!roll.system.isCritical && criticalRoll) { - for (let part of updatedDamageParts) { - const criticalDamage = await getCritDamageBonus(part.formula); - if (criticalDamage) { - damage.formula = `${damage.formula} + ${criticalDamage}`; - part.formula = `${part.formula} + ${criticalDamage}`; - part.modifierTotal = part.modifierTotal + criticalDamage; - part.total += criticalDamage; - part.roll = new Roll(part.formula); - } - } - } - - systemData.damage[key].formula = `${systemData.damage[key].formula} + ${damage.formula}`; - systemData.damage[key].total += damageTotal; - systemData.damage[key].parts = [...systemData.damage[key].parts, ...updatedDamageParts]; - } else { - systemData.damage[key] = { ...damage, total: damageTotal, parts: updatedDamageParts }; - } - } - } - } - - systemData.title = game.i18n.localize('DAGGERHEART.APPLICATIONS.TagTeamSelect.chatMessageRollTitle'); - const cls = getDocumentClass('ChatMessage'), - msgData = { - type: 'dualityRoll', - user: game.user.id, - title: game.i18n.localize('DAGGERHEART.APPLICATIONS.TagTeamSelect.title'), - speaker: cls.getSpeaker({ actor: this.party.find(x => x.id === mainRollId) }), - system: systemData, - rolls: mainRoll.rolls, - sound: null, - flags: { core: { RollTable: true } } - }; - - await cls.create(msgData); - - const fearUpdate = { key: 'fear', value: null, total: null, enabled: true }; - for (let memberId of Object.keys(this.data.members)) { - const resourceUpdates = []; - const rollGivesHope = systemData.roll.isCritical || systemData.roll.result.duality === 1; - if (memberId === this.data.initiator.id) { - const value = this.data.initiator.cost - ? rollGivesHope - ? 1 - this.data.initiator.cost - : -this.data.initiator.cost - : 1; - resourceUpdates.push({ key: 'hope', value: value, total: -value, enabled: true }); - } else if (rollGivesHope) { - resourceUpdates.push({ key: 'hope', value: 1, total: -1, enabled: true }); - } - if (systemData.roll.isCritical) resourceUpdates.push({ key: 'stress', value: -1, total: 1, enabled: true }); - if (systemData.roll.result.duality === -1) { - fearUpdate.value = fearUpdate.value === null ? 1 : fearUpdate.value + 1; - fearUpdate.total = fearUpdate.total === null ? -1 : fearUpdate.total - 1; - } - - this.party.find(x => x.id === memberId).modifyResource(resourceUpdates); - } - - if (fearUpdate.value) { - this.party.find(x => x.id === mainRollId).modifyResource([fearUpdate]); - } - - /* Improve by fetching default from schema */ - const update = { members: [], initiator: { id: null, cost: 3 } }; - if (game.user.isGM) { - await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll, update); - Hooks.callAll(socketEvent.Refresh, { refreshType: RefreshType.TagTeamRoll }); - await game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.Refresh, - data: { - refreshType: RefreshType.TagTeamRoll - } - }); - } else { - await game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.GMUpdate, - data: { - action: GMUpdateEvent.UpdateSetting, - uuid: CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll, - update: update, - refresh: { refreshType: RefreshType.TagTeamRoll } - } - }); - } - } - - static async assignRoll(char, message) { - const settings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll); - const character = settings.members[char.id]; - if (!character) return; - - await settings.updateSource({ [`members.${char.id}.messageId`]: message.id }); - - if (game.user.isGM) { - await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll, settings); - Hooks.callAll(socketEvent.Refresh, { refreshType: RefreshType.TagTeamRoll }); - await game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.Refresh, - data: { - refreshType: RefreshType.TagTeamRoll - } - }); - } else { - await game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.GMUpdate, - data: { - action: GMUpdateEvent.UpdateSetting, - uuid: CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll, - update: settings, - refresh: { refreshType: RefreshType.TagTeamRoll } - } - }); - } - } - - async close(options = {}) { - Hooks.off(socketEvent.Refresh, this.setupHooks); - await super.close(options); - } -} diff --git a/module/applications/hud/tokenHUD.mjs b/module/applications/hud/tokenHUD.mjs index 87c3e88e..5c29260b 100644 --- a/module/applications/hud/tokenHUD.mjs +++ b/module/applications/hud/tokenHUD.mjs @@ -1,12 +1,6 @@ -import { shuffleArray } from '../../helpers/utils.mjs'; - export default class DHTokenHUD extends foundry.applications.hud.TokenHUD { static DEFAULT_OPTIONS = { - classes: ['daggerheart'], - actions: { - combat: DHTokenHUD.#onToggleCombat, - togglePartyTokens: DHTokenHUD.#togglePartyTokens - } + classes: ['daggerheart'] }; /** @override */ @@ -17,28 +11,11 @@ export default class DHTokenHUD extends foundry.applications.hud.TokenHUD { } }; - static #nonCombatTypes = ['environment', 'companion', 'party']; - async _prepareContext(options) { const context = await super._prepareContext(options); - if (!this.actor) return context; - - context.partyOnCanvas = - this.actor.type === 'party' && - this.actor.system.partyMembers.some(member => member.getActiveTokens().length > 0); - context.icons.toggleParty = 'systems/daggerheart/assets/icons/arrow-dunk.png'; - context.actorType = this.actor.type; - context.usesEffects = this.actor.type !== 'party'; - context.canToggleCombat = DHTokenHUD.#nonCombatTypes.includes(this.actor.type) - ? false - : context.canToggleCombat; - context.systemStatusEffects = Object.keys(context.statusEffects).reduce((acc, key) => { const effect = context.statusEffects[key]; - if (effect.systemEffect) { - const disabled = !effect.isActive && this.actor.system.rules?.conditionImmunities?.[key]; - acc[key] = { ...effect, disabled }; - } + if (effect.systemEffect) acc[key] = effect; return acc; }, {}); @@ -59,138 +36,6 @@ export default class DHTokenHUD extends foundry.applications.hud.TokenHUD { return context; } - static async #onToggleCombat() { - const tokensWithoutActors = canvas.tokens.controlled.filter(t => !t.actor); - const warning = - tokensWithoutActors.length === 1 - ? game.i18n.format('DAGGERHEART.UI.Notifications.tokenActorMissing', { - name: tokensWithoutActors[0].name - }) - : game.i18n.format('DAGGERHEART.UI.Notifications.tokenActorsMissing', { - names: tokensWithoutActors.map(x => x.name).join(', ') - }); - - const tokens = canvas.tokens.controlled - .filter(t => t.actor && !DHTokenHUD.#nonCombatTypes.includes(t.actor.type)) - .map(t => t.document); - if (!this.object.controlled && this.document.actor) tokens.push(this.document); - - try { - if (this.document.inCombat) { - const tokensInCombat = tokens.filter(t => t.inCombat); - await TokenDocument.implementation.deleteCombatants([...tokensInCombat, ...tokensWithoutActors]); - } else { - if (tokensWithoutActors.length) { - ui.notifications.warn(warning); - } - - const tokensOutOfCombat = tokens.filter(t => !t.inCombat); - await TokenDocument.implementation.createCombatants(tokensOutOfCombat); - } - } catch (err) { - ui.notifications.warn(err.message); - } - } - - static async #togglePartyTokens(_, button) { - const icon = button.querySelector('img'); - icon.classList.toggle('flipped'); - button.dataset.tooltip = game.i18n.localize( - icon.classList.contains('flipped') - ? 'DAGGERHEART.APPLICATIONS.HUD.tokenHUD.retrievePartyTokens' - : 'DAGGERHEART.APPLICATIONS.HUD.tokenHUD.depositPartyTokens' - ); - - const animationDuration = 500; - const activeTokens = this.actor.system.partyMembers.flatMap(member => member.getActiveTokens()); - const { x: actorX, y: actorY } = this.document; - if (activeTokens.length > 0) { - for (let token of activeTokens) { - await token.document.update( - { x: actorX, y: actorY, alpha: 0 }, - { animation: { duration: animationDuration } } - ); - setTimeout(() => token.document.delete(), animationDuration); - } - } else { - const activeScene = game.scenes.find(x => x.id === game.user.viewedScene); - const partyTokenData = []; - for (let member of this.actor.system.partyMembers) { - const data = await member.getTokenDocument(); - partyTokenData.push(data.toObject()); - } - const newTokens = await activeScene.createEmbeddedDocuments( - 'Token', - partyTokenData.map(tokenData => ({ - ...tokenData, - alpha: 0, - x: actorX, - y: actorY - })) - ); - - const { sizeX, sizeY } = activeScene.grid; - const nrRandomPositions = Math.ceil(newTokens.length / 8) * 8; - /* This is an overcomplicated mess, but I'm stupid */ - const positions = shuffleArray( - [...Array(nrRandomPositions).keys()].map((_, index) => { - const nonZeroIndex = index + 1; - const indexFloor = Math.floor(index / 8); - const distanceCoefficient = indexFloor + 1; - const side = 3 + indexFloor * 2; - const sideMiddle = Math.ceil(side / 2); - const inbetween = 1 + indexFloor * 2; - const inbetweenMiddle = Math.ceil(inbetween / 2); - - if (index < side) { - const distance = - nonZeroIndex === sideMiddle - ? 0 - : nonZeroIndex < sideMiddle - ? -nonZeroIndex - : nonZeroIndex - sideMiddle; - return { x: actorX - sizeX * distance, y: actorY - sizeY * distanceCoefficient }; - } else if (index < side + inbetween) { - const inbetweenIndex = nonZeroIndex - side; - const distance = - inbetweenIndex === inbetweenMiddle - ? 0 - : inbetweenIndex < inbetweenMiddle - ? -inbetweenIndex - : inbetweenIndex - inbetweenMiddle; - return { x: actorX + sizeX * distanceCoefficient, y: actorY + sizeY * distance }; - } else if (index < 2 * side + inbetween) { - const sideIndex = nonZeroIndex - side - inbetween; - const distance = - sideIndex === sideMiddle - ? 0 - : sideIndex < sideMiddle - ? sideIndex - : -(sideIndex - sideMiddle); - return { x: actorX + sizeX * distance, y: actorY + sizeY * distanceCoefficient }; - } else { - const inbetweenIndex = nonZeroIndex - 2 * side - inbetween; - const distance = - inbetweenIndex === inbetweenMiddle - ? 0 - : inbetweenIndex < inbetweenMiddle - ? inbetweenIndex - : -(inbetweenIndex - inbetweenMiddle); - return { x: actorX - sizeX * distanceCoefficient, y: actorY + sizeY * distance }; - } - }) - ); - - for (let token of newTokens) { - const position = positions.pop(); - token.update( - { x: position.x, y: position.y, alpha: 1 }, - { animation: { duration: animationDuration } } - ); - } - } - } - _getStatusEffectChoices() { // Include all HUD-enabled status effects const choices = {}; @@ -214,20 +59,16 @@ export default class DHTokenHUD extends foundry.applications.hud.TokenHUD { } // Update the status of effects which are active for the token actor - const activeEffects = this.actor?.getActiveEffects() || []; + const activeEffects = this.actor?.effects || []; for (const effect of activeEffects) { for (const statusId of effect.statuses) { const status = choices[statusId]; if (!status) continue; - - status.instances = 1 + (status.instances ?? 0); - status.locked = status.locked || effect.condition || status.instances > 1; - if (!status) continue; if (status._id) { if (status._id !== effect.id) continue; } status.isActive = true; - if (effect.getFlag?.('core', 'overlay')) status.isOverlay = true; + if (effect.getFlag('core', 'overlay')) status.isOverlay = true; } } diff --git a/module/applications/levelup/_module.mjs b/module/applications/levelup/_module.mjs index 24944feb..dd4135b4 100644 --- a/module/applications/levelup/_module.mjs +++ b/module/applications/levelup/_module.mjs @@ -1,4 +1,3 @@ export { default as CharacterLevelup } from './characterLevelup.mjs'; export { default as CompanionLevelup } from './companionLevelup.mjs'; export { default as Levelup } from './levelup.mjs'; -export { default as LevelupViewMode } from './levelupViewMode.mjs'; diff --git a/module/applications/levelup/characterLevelup.mjs b/module/applications/levelup/characterLevelup.mjs index f7ef2ffa..623f0308 100644 --- a/module/applications/levelup/characterLevelup.mjs +++ b/module/applications/levelup/characterLevelup.mjs @@ -280,19 +280,11 @@ export default class DhCharacterLevelUp extends LevelUpBase { break; case 'experience': if (!advancement[choiceKey]) advancement[choiceKey] = []; - const allExperiences = { - ...this.actor.system.experiences, - ...Object.values(this.levelup.levels).reduce((acc, level) => { - for (const key of Object.keys(level.achievements.experiences)) { - acc[key] = level.achievements.experiences[key]; - } - - return acc; - }, {}) - }; const data = checkbox.data.map(data => { - const experience = Object.keys(allExperiences).find(x => x === data); - return allExperiences[experience]?.name ?? ''; + const experience = Object.keys(this.actor.system.experiences).find( + x => x === data + ); + return this.actor.system.experiences[experience]?.name ?? ''; }); advancement[choiceKey].push({ data: data, value: checkbox.value }); break; diff --git a/module/applications/levelup/levelup.mjs b/module/applications/levelup/levelup.mjs index ba6110cc..0b3f8970 100644 --- a/module/applications/levelup/levelup.mjs +++ b/module/applications/levelup/levelup.mjs @@ -1,5 +1,6 @@ import { abilities, subclassFeatureLabels } from '../../config/actorConfig.mjs'; import { getDeleteKeys, tagifyElement } from '../../helpers/utils.mjs'; +import { ItemBrowser } from '../ui/itemBrowser.mjs'; const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; @@ -11,6 +12,8 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2) this._dragDrop = this._createDragDropHandlers(); this.tabGroups.primary = 'advancements'; + + this.itemBrowser = null; } get title() { @@ -357,23 +360,11 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2) const experienceIncreaseTagify = htmlElement.querySelector('.levelup-experience-increases'); if (experienceIncreaseTagify) { - const allExperiences = { - ...this.actor.system.experiences, - ...Object.values(this.levelup.levels).reduce((acc, level) => { - for (const key of Object.keys(level.achievements.experiences)) { - acc[key] = level.achievements.experiences[key]; - } - - return acc; - }, {}) - }; tagifyElement( experienceIncreaseTagify, - Object.keys(allExperiences).reduce((acc, id) => { - const experience = allExperiences[id]; - if (experience.name) { - acc.push({ id: id, label: experience.name }); - } + Object.keys(this.actor.system.experiences).reduce((acc, id) => { + const experience = this.actor.system.experiences[id]; + acc.push({ id: id, label: experience.name }); return acc; }, []), @@ -549,6 +540,7 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2) const type = target.dataset.compendium ?? target.dataset.type; const presets = { + compendium: 'daggerheart', folder: type, render: { noFolder: true @@ -567,7 +559,7 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2) }; } - ui.compendiumBrowser.open(presets); + return (this.itemBrowser = await new ItemBrowser({ presets }).render({ force: true })); } static async selectPreview(_, button) { @@ -670,8 +662,7 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2) }, {}); await this.actor.levelUp(levelupData); - - if (ui.compendiumBrowser) ui.compendiumBrowser.close(); + if (this.itemBrowser) this.itemBrowser.close(); this.close(); } } diff --git a/module/applications/levelup/levelupViewMode.mjs b/module/applications/levelup/levelupViewMode.mjs deleted file mode 100644 index b3d7c30f..00000000 --- a/module/applications/levelup/levelupViewMode.mjs +++ /dev/null @@ -1,95 +0,0 @@ -import { chunkify } from '../../helpers/utils.mjs'; - -const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; - -export default class DhlevelUpViewMode extends HandlebarsApplicationMixin(ApplicationV2) { - constructor(actor) { - super({}); - - this.actor = actor; - } - - get title() { - return game.i18n.format('DAGGERHEART.APPLICATIONS.Levelup.viewModeTitle', { actor: this.actor.name }); - } - - static DEFAULT_OPTIONS = { - classes: ['daggerheart', 'dialog', 'dh-style', 'levelup'], - position: { width: 1000, height: 'auto' }, - window: { - resizable: true, - icon: 'fa-solid fa-arrow-turn-up' - } - }; - - static PARTS = { - main: { template: 'systems/daggerheart/templates/levelup/tabs/viewMode.hbs' } - }; - - async _prepareContext(_options) { - const context = await super._prepareContext(_options); - - const { tiers } = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LevelTiers); - const tierKeys = Object.keys(tiers); - const selections = Object.keys(this.actor.system.levelData.levelups).reduce( - (acc, key) => { - const level = this.actor.system.levelData.levelups[key]; - Object.keys(level.selections).forEach(optionKey => { - const choice = level.selections[optionKey]; - if (!acc[choice.tier][choice.optionKey]) acc[choice.tier][choice.optionKey] = {}; - acc[choice.tier][choice.optionKey][choice.checkboxNr] = choice; - }); - - return acc; - }, - tierKeys.reduce((acc, key) => { - acc[key] = {}; - return acc; - }, {}) - ); - - context.tiers = tierKeys.map((tierKey, tierIndex) => { - const tier = tiers[tierKey]; - - return { - name: tier.name, - active: true, - groups: Object.keys(tier.options).map(optionKey => { - const option = tier.options[optionKey]; - - const checkboxes = [...Array(option.checkboxSelections).keys()].flatMap(index => { - const checkboxNr = index + 1; - const checkboxData = selections[tierKey]?.[optionKey]?.[checkboxNr]; - const checkbox = { ...option, checkboxNr, tier: tierKey, disabled: true }; - - if (checkboxData) { - checkbox.level = checkboxData.level; - checkbox.selected = true; - } - - return checkbox; - }); - - let label = game.i18n.localize(option.label); - return { - label: label, - checkboxGroups: chunkify(checkboxes, option.minCost, chunkedBoxes => { - const anySelected = chunkedBoxes.some(x => x.selected); - const anyDisabled = chunkedBoxes.some(x => x.disabled); - return { - multi: option.minCost > 1, - checkboxes: chunkedBoxes.map(x => ({ - ...x, - selected: anySelected, - disabled: anyDisabled - })) - }; - }) - }; - }) - }; - }); - - return context; - } -} diff --git a/module/applications/scene/_module.mjs b/module/applications/scene/_module.mjs deleted file mode 100644 index 7cefd268..00000000 --- a/module/applications/scene/_module.mjs +++ /dev/null @@ -1 +0,0 @@ -export { default as DhSceneConfigSettings } from './sceneConfigSettings.mjs'; diff --git a/module/applications/scene/sceneConfigSettings.mjs b/module/applications/scene/sceneConfigSettings.mjs deleted file mode 100644 index be8f7b71..00000000 --- a/module/applications/scene/sceneConfigSettings.mjs +++ /dev/null @@ -1,63 +0,0 @@ -export default class DhSceneConfigSettings extends foundry.applications.sheets.SceneConfig { - // static DEFAULT_OPTIONS = { - // ...super.DEFAULT_OPTIONS, - // form: { - // handler: this.updateData, - // closeOnSubmit: true - // } - // }; - - static buildParts() { - const { footer, tabs, ...parts } = super.PARTS; - const tmpParts = { - // tabs, - tabs: { template: 'systems/daggerheart/templates/scene/tabs.hbs' }, - ...parts, - dh: { template: 'systems/daggerheart/templates/scene/dh-config.hbs' }, - footer - }; - return tmpParts; - } - - static PARTS = DhSceneConfigSettings.buildParts(); - - static buildTabs() { - super.TABS.sheet.tabs.push({ id: 'dh', src: 'systems/daggerheart/assets/logos/FoundryBorneLogoWhite.svg' }); - return super.TABS; - } - - static TABS = DhSceneConfigSettings.buildTabs(); - - _attachPartListeners(partId, htmlElement, options) { - super._attachPartListeners(partId, htmlElement, options); - switch (partId) { - case 'dh': - htmlElement.querySelector('#rangeMeasurementSetting')?.addEventListener('change', async event => { - const flagData = foundry.utils.mergeObject(this.document.flags.daggerheart, { - rangeMeasurement: { setting: event.target.value } - }); - this.document.flags.daggerheart = flagData; - this.render(); - }); - break; - } - } - - /** @inheritDoc */ - async _preparePartContext(partId, context, options) { - context = await super._preparePartContext(partId, context, options); - switch (partId) { - case 'dh': - context.data = new game.system.api.data.scenes.DHScene(canvas.scene.flags.daggerheart); - context.variantRules = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules); - break; - } - - return context; - } - - // static async updateData(event, _, formData) { - // const data = foundry.utils.expandObject(formData.object); - // this.close(data); - // } -} diff --git a/module/applications/settings/appearanceSettings.mjs b/module/applications/settings/appearanceSettings.mjs index 9eb0cfbf..f0310477 100644 --- a/module/applications/settings/appearanceSettings.mjs +++ b/module/applications/settings/appearanceSettings.mjs @@ -3,48 +3,43 @@ import { getDiceSoNicePreset } from '../../config/generalConfig.mjs'; const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; -/** - * @import {ApplicationClickAction} from "@client/applications/_types.mjs" - */ - export default class DHAppearanceSettings extends HandlebarsApplicationMixin(ApplicationV2) { - /**@inheritdoc */ + constructor() { + super({}); + + this.settings = new DhAppearance( + game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.appearance).toObject() + ); + } + + get title() { + return game.i18n.localize('DAGGERHEART.SETTINGS.Menu.title'); + } + static DEFAULT_OPTIONS = { tag: 'form', id: 'daggerheart-appearance-settings', classes: ['daggerheart', 'dialog', 'dh-style', 'setting'], position: { width: '600', height: 'auto' }, window: { - title: 'DAGGERHEART.SETTINGS.Menu.title', icon: 'fa-solid fa-gears' }, actions: { - reset: DHAppearanceSettings.#onReset, - preview: DHAppearanceSettings.#onPreview + reset: this.reset, + save: this.save, + preview: this.preview }, - form: { - closeOnSubmit: true, - handler: DHAppearanceSettings.#onSubmit - } + form: { handler: this.updateData, submitOnChange: true } }; static PARTS = { - header: { template: 'systems/daggerheart/templates/settings/appearance-settings/header.hbs' }, - tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' }, - main: { template: 'systems/daggerheart/templates/settings/appearance-settings/main.hbs' }, - diceSoNice: { template: 'systems/daggerheart/templates/settings/appearance-settings/diceSoNice.hbs' }, - footer: { template: 'templates/generic/form-footer.hbs' } + main: { + template: 'systems/daggerheart/templates/settings/appearance-settings.hbs' + } }; /** @inheritdoc */ static TABS = { - general: { - tabs: [ - { id: 'main', label: 'DAGGERHEART.GENERAL.Tabs.general' }, - { id: 'diceSoNice', label: 'DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.title' } - ], - initial: 'main' - }, diceSoNice: { tabs: [ { id: 'hope', label: 'DAGGERHEART.GENERAL.hope' }, @@ -56,150 +51,79 @@ export default class DHAppearanceSettings extends HandlebarsApplicationMixin(App } }; - /**@type {DhAppearance}*/ - setting; + changeTab(tab, group, options) { + super.changeTab(tab, group, options); - static #localized = false; - - /** @inheritDoc */ - async _preFirstRender(_context, _options) { - await super._preFirstRender(_context, _options); - if (!DHAppearanceSettings.#localized) { - foundry.helpers.Localization.localizeDataModel(this.setting.constructor); - DHAppearanceSettings.#localized = true; - } + this.render(); } - /** @inheritdoc */ - _configureRenderParts(options) { - const parts = super._configureRenderParts(options); - if (!game.modules.get('dice-so-nice')?.active) { - delete parts.diceSoNice; - delete parts.tabs; + async _prepareContext(_options) { + const context = await super._prepareContext(_options); + context.settingFields = this.settings; + + context.showDiceSoNice = game.modules.get('dice-so-nice')?.active; + if (game.dice3d) { + context.diceSoNiceTextures = game.dice3d.exports.TEXTURELIST; + context.diceSoNiceColorsets = game.dice3d.exports.COLORSETS; + context.diceSoNiceMaterials = Object.keys(game.dice3d.DiceFactory.material_options).map(key => ({ + key: key, + name: `DICESONICE.Material${key.capitalize()}` + })); + context.diceSoNiceSystems = []; + for (const [key, system] of game.dice3d.DiceFactory.systems.entries()) { + context.diceSoNiceSystems.push({ key, name: system.name }); + } } - return parts; - } - /**@inheritdoc */ - async _prepareContext(options) { - const context = await super._prepareContext(options); - if (options.isFirstRender) - this.setting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.appearance); - - context.setting = this.setting; - context.fields = this.setting.schema.fields; - - context.tabs = this._prepareTabs('general'); - context.dsnTabs = this._prepareTabs('diceSoNice'); + context.diceTab = { + key: this.tabGroups.diceSoNice, + source: this.settings._source.diceSoNice[this.tabGroups.diceSoNice], + fields: this.settings.schema.fields.diceSoNice.fields[this.tabGroups.diceSoNice].fields + }; return context; } - /**@inheritdoc */ - async _preparePartContext(partId, context, options) { - const partContext = await super._preparePartContext(partId, context, options); - if (partId in context.tabs) partContext.tab = partContext.tabs[partId]; - switch (partId) { - case 'diceSoNice': - await this.prepareDiceSoNiceContext(partContext); - break; - case 'footer': - partContext.buttons = [ - { type: 'button', action: 'reset', icon: 'fa-solid fa-arrow-rotate-left', label: 'Reset' }, - { type: 'submit', icon: 'fa-solid fa-floppy-disk', label: 'Save Changes' } - ]; - break; + static async updateData(event, element, formData) { + const updatedSettings = foundry.utils.expandObject(formData.object); + + await this.settings.updateSource(updatedSettings); + this.render(); + } + + static async preview() { + const source = this.settings._source.diceSoNice[this.tabGroups.diceSoNice]; + let faces = 'd12'; + switch (this.tabGroups.diceSoNice) { + case 'advantage': + case 'disadvantage': + faces = 'd6'; } - return partContext; - } - - /** - * Prepare render context for the DSN part. - * @param {ApplicationRenderContext} context - * @returns {Promise} - * @protected - */ - async prepareDiceSoNiceContext(context) { - context.diceSoNiceTextures = Object.entries(game.dice3d.exports.TEXTURELIST).reduce( - (acc, [k, v]) => ({ - ...acc, - [k]: v.name - }), - {} - ); - context.diceSoNiceColorsets = Object.values(game.dice3d.exports.COLORSETS).reduce( - (acc, v) => ({ - ...acc, - [v.id]: v.description - }), - {} - ); - context.diceSoNiceMaterials = Object.keys(game.dice3d.DiceFactory.material_options).reduce( - (acc, key) => ({ - ...acc, - [key]: `DICESONICE.Material${key.capitalize()}` - }), - {} - ); - context.diceSoNiceSystems = Object.fromEntries( - [...game.dice3d.DiceFactory.systems].map(([k, v]) => [k, v.name]) - ); - context.diceSoNiceFonts = game.dice3d.exports.Utils.prepareFontList(); - - foundry.utils.mergeObject( - context.dsnTabs, - ['hope', 'fear', 'advantage', 'disadvantage'].reduce( - (acc, key) => ({ - ...acc, - [key]: { - values: this.setting.diceSoNice[key], - fields: this.setting.schema.getField(`diceSoNice.${key}`).fields - } - }), - {} - ) - ); - } - - /** - * Submit the configuration form. - * @this {DHAppearanceSettings} - * @param {SubmitEvent} event - * @param {HTMLFormElement} form - * @param {foundry.applications.ux.FormDataExtended} formData - * @returns {Promise} - */ - static async #onSubmit(event, form, formData) { - const data = this.setting.schema.clean(foundry.utils.expandObject(formData.object)); - await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.appearance, data); - } - - /* -------------------------------------------- */ - - /** - * Submit the configuration form. - * @this {DHAppearanceSettings} - * @type {ApplicationClickAction} - */ - static async #onPreview(_, target) { - const formData = new foundry.applications.ux.FormDataExtended(target.closest('form')); - const { diceSoNice } = foundry.utils.expandObject(formData.object); - const { key } = target.dataset; - const faces = ['advantage', 'disadvantage'].includes(key) ? 'd6' : 'd12'; - const preset = await getDiceSoNicePreset(diceSoNice[key], faces); - const diceSoNiceRoll = await new foundry.dice.Roll(`1${faces}`).evaluate(); + const preset = await getDiceSoNicePreset(source, faces); + const diceSoNiceRoll = await new Roll(`1${faces}`).evaluate(); diceSoNiceRoll.dice[0].options.appearance = preset.appearance; diceSoNiceRoll.dice[0].options.modelFile = preset.modelFile; + await game.dice3d.showForRoll(diceSoNiceRoll, game.user, false); } - /** - * Reset the form back to default values. - * @this {DHAppearanceSettings} - * @type {ApplicationClickAction} - */ - static async #onReset() { - this.setting = new this.setting.constructor(); - this.render({ force: false }); + static async reset() { + this.settings = new DhAppearance(); + this.render(); + } + + static async save() { + await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.appearance, this.settings.toObject()); + + this.close(); + } + + _getTabs(tabs) { + for (const v of Object.values(tabs)) { + v.active = this.tabGroups[v.group] ? this.tabGroups[v.group] === v.id : v.active; + v.cssClass = v.active ? 'active' : ''; + } + + return tabs; } } diff --git a/module/applications/settings/automationSettings.mjs b/module/applications/settings/automationSettings.mjs index 4407897d..0157e016 100644 --- a/module/applications/settings/automationSettings.mjs +++ b/module/applications/settings/automationSettings.mjs @@ -35,14 +35,13 @@ export default class DhAutomationSettings extends HandlebarsApplicationMixin(App header: { template: 'systems/daggerheart/templates/settings/automation-settings/header.hbs' }, general: { template: 'systems/daggerheart/templates/settings/automation-settings/general.hbs' }, rules: { template: 'systems/daggerheart/templates/settings/automation-settings/rules.hbs' }, - roll: { template: 'systems/daggerheart/templates/settings/automation-settings/roll.hbs' }, footer: { template: 'systems/daggerheart/templates/settings/automation-settings/footer.hbs' } }; /** @inheritdoc */ static TABS = { main: { - tabs: [{ id: 'general' }, { id: 'rules' }, { id: 'roll' }], + tabs: [{ id: 'general' }, { id: 'rules' }], initial: 'general', labelPrefix: 'DAGGERHEART.GENERAL.Tabs' } diff --git a/module/applications/settings/homebrewSettings.mjs b/module/applications/settings/homebrewSettings.mjs index 3c4486c1..3fa42afd 100644 --- a/module/applications/settings/homebrewSettings.mjs +++ b/module/applications/settings/homebrewSettings.mjs @@ -1,6 +1,5 @@ import { DhHomebrew } from '../../data/settings/_module.mjs'; import { slugify } from '../../helpers/utils.mjs'; - const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; export default class DhHomebrewSettings extends HandlebarsApplicationMixin(ApplicationV2) { @@ -11,14 +10,11 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).toObject() ); - this.selected = this.#getDefaultAdversaryType(); + this.selected = { + domain: null + }; } - #getDefaultAdversaryType = () => ({ - domain: null, - adversaryType: null - }); - get title() { return game.i18n.localize('DAGGERHEART.SETTINGS.Menu.title'); } @@ -32,7 +28,6 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli icon: 'fa-solid fa-gears' }, actions: { - editCurrencyIcon: this.changeCurrencyIcon, addItem: this.addItem, editItem: this.editItem, removeItem: this.removeItem, @@ -40,11 +35,7 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli addDomain: this.addDomain, toggleSelectedDomain: this.toggleSelectedDomain, deleteDomain: this.deleteDomain, - addAdversaryType: this.addAdversaryType, - deleteAdversaryType: this.deleteAdversaryType, - selectAdversaryType: this.selectAdversaryType, save: this.save, - resetTokenSizes: this.resetTokenSizes, reset: this.reset }, form: { handler: this.updateData, submitOnChange: true } @@ -54,8 +45,6 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' }, settings: { template: 'systems/daggerheart/templates/settings/homebrew-settings/settings.hbs' }, domains: { template: 'systems/daggerheart/templates/settings/homebrew-settings/domains.hbs' }, - types: { template: 'systems/daggerheart/templates/settings/homebrew-settings/types.hbs' }, - itemTypes: { template: 'systems/daggerheart/templates/settings/homebrew-settings/itemFeatures.hbs' }, downtime: { template: 'systems/daggerheart/templates/settings/homebrew-settings/downtime.hbs' }, footer: { template: 'systems/daggerheart/templates/settings/homebrew-settings/footer.hbs' } }; @@ -63,19 +52,12 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli /** @inheritdoc */ static TABS = { main: { - tabs: [{ id: 'settings' }, { id: 'domains' }, { id: 'types' }, { id: 'itemFeatures' }, { id: 'downtime' }], + tabs: [{ id: 'settings' }, { id: 'domains' }, { id: 'downtime' }], initial: 'settings', labelPrefix: 'DAGGERHEART.GENERAL.Tabs' } }; - changeTab(tab, group, options) { - super.changeTab(tab, group, options); - this.selected = this.#getDefaultAdversaryType(); - - this.render(); - } - async _prepareContext(_options) { const context = await super._prepareContext(_options); context.settingFields = this.settings; @@ -97,11 +79,6 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli context.configDomains = CONFIG.DH.DOMAIN.domains; context.homebrewDomains = this.settings.domains; break; - case 'types': - context.selectedAdversaryType = this.selected.adversaryType - ? { id: this.selected.adversaryType, ...this.settings.adversaryTypes[this.selected.adversaryType] } - : null; - break; } return context; @@ -117,100 +94,34 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli this.render(); } - static async changeCurrencyIcon(_, target) { - const type = target.dataset.currency; - const currentIcon = this.settings.currency[type].icon; - const icon = await foundry.applications.api.DialogV2.input({ - classes: ['daggerheart', 'dh-style', 'change-currency-icon'], - content: await foundry.applications.handlebars.renderTemplate( - 'systems/daggerheart/templates/settings/homebrew-settings/change-currency-icon.hbs', - { currentIcon } - ), - window: { - title: game.i18n.localize('DAGGERHEART.SETTINGS.Homebrew.currency.changeIcon'), - icon: 'fa-solid fa-coins' - }, - render: (_, dialog) => { - const icon = dialog.element.querySelector('.displayed-icon i'); - const input = dialog.element.querySelector('input'); - const reset = dialog.element.querySelector('button[data-action=reset]'); - input.addEventListener('input', () => { - icon.classList.value = input.value; - }); - reset.addEventListener('click', () => { - const currencyField = DhHomebrew.schema.fields.currency.fields[type]; - const initial = currencyField.fields.icon.getInitialValue(); - input.value = icon.classList.value = initial; - }); - }, - ok: { - callback: (_, button) => button.form.elements.icon.value + static async addItem(_, target) { + await this.settings.updateSource({ + [`restMoves.${target.dataset.type}.moves.${foundry.utils.randomID()}`]: { + name: game.i18n.localize('DAGGERHEART.SETTINGS.Homebrew.newDowntimeMove'), + img: 'icons/magic/life/cross-worn-green.webp', + description: '', + actions: [] } }); - - if (icon !== null) { - await this.settings.updateSource({ - [`currency.${type}.icon`]: icon - }); - this.render(); - } - } - - static async addItem(_, target) { - const { type } = target.dataset; - if (['shortRest', 'longRest'].includes(type)) { - await this.settings.updateSource({ - [`restMoves.${type}.moves.${foundry.utils.randomID()}`]: { - name: game.i18n.localize('DAGGERHEART.SETTINGS.Homebrew.newDowntimeMove'), - img: 'icons/magic/life/cross-worn-green.webp', - description: '', - actions: [] - } - }); - } else if (['armorFeatures', 'weaponFeatures'].includes(type)) { - await this.settings.updateSource({ - [`itemFeatures.${type}.${foundry.utils.randomID()}`]: { - name: game.i18n.localize('DAGGERHEART.SETTINGS.Homebrew.newFeature'), - img: 'icons/magic/life/cross-worn-green.webp', - description: '', - actions: [], - effects: [] - } - }); - } - this.render(); } static async editItem(_, target) { - const { type, id } = target.dataset; - const isDowntime = ['shortRest', 'longRest'].includes(type); - const path = isDowntime ? `restMoves.${type}.moves.${id}` : `itemFeatures.${type}.${id}`; - const featureBase = isDowntime ? this.settings.restMoves[type].moves[id] : this.settings.itemFeatures[type][id]; - - const configTitle = isDowntime - ? game.i18n.localize('DAGGERHEART.SETTINGS.Homebrew.downtimeMove') - : type === 'armorFeatures' - ? game.i18n.localize('DAGGERHEART.SETTINGS.Homebrew.armorFeature') - : game.i18n.localize('DAGGERHEART.SETTINGS.Homebrew.weaponFeature'); - - const editedBase = await game.system.api.applications.sheetConfigs.SettingFeatureConfig.configure( - configTitle, - featureBase, + const move = this.settings.restMoves[target.dataset.type].moves[target.dataset.id]; + const path = `restMoves.${target.dataset.type}.moves.${target.dataset.id}`; + const editedMove = await game.system.api.applications.sheetConfigs.DowntimeConfig.configure( + move, path, - this.settings, - { hasIcon: isDowntime, hasEffects: !isDowntime } + this.settings ); - if (!editedBase) return; + if (!editedMove) return; - await this.updateAction.bind(this)(editedBase, target.dataset.type, target.dataset.id); + await this.updateAction.bind(this)(editedMove, target.dataset.type, target.dataset.id); } async updateAction(data, type, id) { - const isDowntime = ['shortRest', 'longRest'].includes(type); - const path = isDowntime ? `restMoves.${type}.moves` : `itemFeatures.${type}`; await this.settings.updateSource({ - [`${path}.${id}`]: { + [`restMoves.${type}.moves.${id}`]: { actions: data.actions, name: data.name, icon: data.icon, @@ -218,16 +129,12 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli description: data.description } }); - this.render(); } static async removeItem(_, target) { - const { type, id } = target.dataset; - const isDowntime = ['shortRest', 'longRest'].includes(type); - const path = isDowntime ? `restMoves.${type}.moves` : `itemFeatures.${type}`; await this.settings.updateSource({ - [`${path}.-=${id}`]: null + [`restMoves.${target.dataset.type}.moves.-=${target.dataset.id}`]: null }); this.render(); } @@ -394,45 +301,11 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli this.render(); } - static async addAdversaryType(_, target) { - const newId = foundry.utils.randomID(); - await this.settings.updateSource({ - [`adversaryTypes.${newId}`]: { - id: newId, - label: game.i18n.localize('DAGGERHEART.SETTINGS.Homebrew.adversaryType.newType') - } - }); - - this.selected.adversaryType = newId; - this.render(); - } - - static async deleteAdversaryType(_, target) { - const { key } = target.dataset; - await this.settings.updateSource({ [`adversaryTypes.-=${key}`]: null }); - - this.selected.adversaryType = this.selected.adversaryType === key ? null : this.selected.adversaryType; - this.render(); - } - - static async selectAdversaryType(_, target) { - this.selected.adversaryType = this.selected.adversaryType === target.dataset.type ? null : target.dataset.type; - this.render(); - } - static async save() { await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew, this.settings.toObject()); this.close(); } - static async resetTokenSizes() { - await this.settings.updateSource({ - tokenSizes: this.settings.schema.fields.tokenSizes.initial - }); - - this.render(); - } - static async reset() { const confirmed = await foundry.applications.api.DialogV2.confirm({ window: { diff --git a/module/applications/sheets-configs/_module.mjs b/module/applications/sheets-configs/_module.mjs index d3fb3c39..ed062163 100644 --- a/module/applications/sheets-configs/_module.mjs +++ b/module/applications/sheets-configs/_module.mjs @@ -1,10 +1,8 @@ export { default as ActionConfig } from './action-config.mjs'; -export { default as ActionSettingsConfig } from './action-settings-config.mjs'; export { default as CharacterSettings } from './character-settings.mjs'; export { default as AdversarySettings } from './adversary-settings.mjs'; export { default as CompanionSettings } from './companion-settings.mjs'; -export { default as SettingActiveEffectConfig } from './setting-active-effect-config.mjs'; -export { default as SettingFeatureConfig } from './setting-feature-config.mjs'; +export { default as DowntimeConfig } from './downtimeConfig.mjs'; export { default as EnvironmentSettings } from './environment-settings.mjs'; export { default as ActiveEffectConfig } from './activeEffectConfig.mjs'; export { default as DhTokenConfig } from './token-config.mjs'; diff --git a/module/applications/sheets-configs/action-base-config.mjs b/module/applications/sheets-configs/action-base-config.mjs deleted file mode 100644 index 96790a5b..00000000 --- a/module/applications/sheets-configs/action-base-config.mjs +++ /dev/null @@ -1,236 +0,0 @@ -import DaggerheartSheet from '../sheets/daggerheart-sheet.mjs'; - -const { ApplicationV2 } = foundry.applications.api; -export default class DHActionBaseConfig extends DaggerheartSheet(ApplicationV2) { - constructor(action) { - super({}); - - this.action = action; - this.openSection = null; - } - - get title() { - return `${game.i18n.localize('DAGGERHEART.GENERAL.Tabs.settings')}: ${this.action.name}`; - } - - static DEFAULT_OPTIONS = { - tag: 'form', - classes: ['daggerheart', 'dh-style', 'dialog', 'max-800'], - window: { - icon: 'fa-solid fa-wrench', - resizable: false - }, - position: { width: 600, height: 'auto' }, - actions: { - toggleSection: this.toggleSection, - addEffect: this.addEffect, - removeEffect: this.removeEffect, - addElement: this.addElement, - removeElement: this.removeElement, - editEffect: this.editEffect, - addDamage: this.addDamage, - removeDamage: this.removeDamage - }, - form: { - handler: this.updateForm, - submitOnChange: true, - closeOnSubmit: false - } - }; - - static PARTS = { - header: { - id: 'header', - template: 'systems/daggerheart/templates/sheets-settings/action-settings/header.hbs' - }, - tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' }, - base: { - id: 'base', - template: 'systems/daggerheart/templates/sheets-settings/action-settings/base.hbs' - }, - configuration: { - id: 'configuration', - template: 'systems/daggerheart/templates/sheets-settings/action-settings/configuration.hbs' - }, - effect: { - id: 'effect', - template: 'systems/daggerheart/templates/sheets-settings/action-settings/effect.hbs' - } - }; - - static TABS = { - base: { - active: true, - cssClass: '', - group: 'primary', - id: 'base', - icon: null, - label: 'DAGGERHEART.GENERAL.Tabs.base' - }, - config: { - active: false, - cssClass: '', - group: 'primary', - id: 'config', - icon: null, - label: 'DAGGERHEART.GENERAL.Tabs.configuration' - }, - effect: { - active: false, - cssClass: '', - group: 'primary', - id: 'effect', - icon: null, - label: 'DAGGERHEART.GENERAL.Tabs.effects' - } - }; - - static CLEAN_ARRAYS = ['damage.parts', 'cost', 'effects']; - - _getTabs(tabs) { - for (const v of Object.values(tabs)) { - v.active = this.tabGroups[v.group] ? this.tabGroups[v.group] === v.id : v.active; - v.cssClass = v.active ? 'active' : ''; - } - - return tabs; - } - - async _prepareContext(_options) { - const context = await super._prepareContext(_options, 'action'); - context.source = this.action.toObject(true); - context.openSection = this.openSection; - context.tabs = this._getTabs(this.constructor.TABS); - context.config = CONFIG.DH; - if (this.action.damage?.hasOwnProperty('includeBase') && this.action.type === 'attack') - context.hasBaseDamage = !!this.action.parent.attack; - context.costOptions = this.getCostOptions(); - context.getRollTypeOptions = this.getRollTypeOptions(); - context.disableOption = this.disableOption.bind(this); - context.isNPC = this.action.actor?.isNPC; - context.baseSaveDifficulty = this.action.actor?.baseSaveDifficulty; - context.baseAttackBonus = this.action.actor?.system.attack?.roll.bonus; - context.hasRoll = this.action.hasRoll; - - const settingsTiers = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LevelTiers).tiers; - context.tierOptions = [ - { key: 1, label: game.i18n.localize('DAGGERHEART.GENERAL.Tiers.1') }, - ...Object.values(settingsTiers).map(x => ({ key: x.tier, label: x.name })) - ]; - return context; - } - - static toggleSection(_, button) { - this.openSection = button.dataset.section === this.openSection ? null : button.dataset.section; - this.render(true); - } - - getCostOptions() { - const options = foundry.utils.deepClone(CONFIG.DH.GENERAL.abilityCosts); - const resource = this.action.parent.resource; - if (resource) { - options.resource = { - label: 'DAGGERHEART.GENERAL.itemResource', - group: 'Global' - }; - } - - if (this.action.parent.metadata?.isQuantifiable) { - options.quantity = { - label: 'DAGGERHEART.GENERAL.itemQuantity', - group: 'Global' - }; - } - - return options; - } - - getRollTypeOptions() { - const types = foundry.utils.deepClone(CONFIG.DH.GENERAL.rollTypes); - if (!this.action.actor) return types; - Object.values(types).forEach(t => { - if (this.action.actor.type !== 'character' && t.playerOnly) delete types[t.id]; - }); - return types; - } - - disableOption(index, costOptions, choices) { - const filtered = foundry.utils.deepClone(costOptions); - Object.keys(filtered).forEach(o => { - if (choices.find((c, idx) => c.type === o && index !== idx)) filtered[o].disabled = true; - }); - return filtered; - } - - _prepareSubmitData(_event, formData) { - const submitData = foundry.utils.expandObject(formData.object); - - const itemAbilityCostKeys = Object.keys(CONFIG.DH.GENERAL.itemAbilityCosts); - for (const keyPath of this.constructor.CLEAN_ARRAYS) { - const data = foundry.utils.getProperty(submitData, keyPath); - const dataValues = data ? Object.values(data) : []; - if (keyPath === 'cost') { - for (var value of dataValues) { - value.itemId = itemAbilityCostKeys.includes(value.key) ? this.action.parent.parent.id : null; - } - } - - if (data) foundry.utils.setProperty(submitData, keyPath, dataValues); - } - return submitData; - } - - static async updateForm(event, _, formData) { - const submitData = this._prepareSubmitData(event, formData), - data = foundry.utils.mergeObject(this.action.toObject(), submitData); - this.action = await this.action.update(data); - - this.sheetUpdate?.(this.action); - this.render(); - } - - static addElement(event) { - const data = this.action.toObject(), - key = event.target.closest('[data-key]').dataset.key; - if (!this.action[key]) return; - - data[key].push(this.action.defaultValues[key] ?? {}); - this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) }); - } - - static removeElement(event, button) { - event.stopPropagation(); - const data = this.action.toObject(), - key = event.target.closest('[data-key]').dataset.key, - index = button.dataset.index; - data[key].splice(index, 1); - this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) }); - } - - static addDamage(_event) { - if (!this.action.damage.parts) return; - const data = this.action.toObject(), - part = {}; - if (this.action.actor?.isNPC) part.value = { multiplier: 'flat' }; - data.damage.parts.push(part); - this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) }); - } - - static removeDamage(_event, button) { - if (!this.action.damage.parts) return; - const data = this.action.toObject(), - index = button.dataset.index; - data.damage.parts.splice(index, 1); - this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) }); - } - - /** Specific implementation in extending classes **/ - static async addEffect(_event) {} - static removeEffect(_event, _button) {} - static editEffect(_event) {} - - async close(options) { - this.tabGroups.primary = 'base'; - await super.close(options); - } -} diff --git a/module/applications/sheets-configs/action-config.mjs b/module/applications/sheets-configs/action-config.mjs index 0dbc377a..ea3c6f31 100644 --- a/module/applications/sheets-configs/action-config.mjs +++ b/module/applications/sheets-configs/action-config.mjs @@ -1,32 +1,232 @@ -import DHActionBaseConfig from './action-base-config.mjs'; +import DaggerheartSheet from '../sheets/daggerheart-sheet.mjs'; + +const { ApplicationV2 } = foundry.applications.api; +export default class DHActionConfig extends DaggerheartSheet(ApplicationV2) { + constructor(action, sheetUpdate) { + super({}); + + this.action = action; + this.sheetUpdate = sheetUpdate; + this.openSection = null; + } + + get title() { + return `${game.i18n.localize('DAGGERHEART.GENERAL.Tabs.settings')}: ${this.action.name}`; + } -export default class DHActionConfig extends DHActionBaseConfig { static DEFAULT_OPTIONS = { - ...DHActionBaseConfig.DEFAULT_OPTIONS, + tag: 'form', + classes: ['daggerheart', 'dh-style', 'dialog', 'max-800'], + window: { + icon: 'fa-solid fa-wrench', + resizable: false + }, + position: { width: 600, height: 'auto' }, actions: { - ...DHActionBaseConfig.DEFAULT_OPTIONS.actions, + toggleSection: this.toggleSection, addEffect: this.addEffect, removeEffect: this.removeEffect, - editEffect: this.editEffect + addElement: this.addElement, + removeElement: this.removeElement, + editEffect: this.editEffect, + addDamage: this.addDamage, + removeDamage: this.removeDamage + }, + form: { + handler: this.updateForm, + submitOnChange: true, + closeOnSubmit: false } }; - async _prepareContext(options) { - const context = await super._prepareContext(options); - if (!!this.action.effects) context.effects = this.action.effects.map(e => this.action.item.effects.get(e._id)); - context.getEffectDetails = this.getEffectDetails.bind(this); + static PARTS = { + header: { + id: 'header', + template: 'systems/daggerheart/templates/sheets-settings/action-settings/header.hbs' + }, + tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' }, + base: { + id: 'base', + template: 'systems/daggerheart/templates/sheets-settings/action-settings/base.hbs' + }, + configuration: { + id: 'configuration', + template: 'systems/daggerheart/templates/sheets-settings/action-settings/configuration.hbs' + }, + effect: { + id: 'effect', + template: 'systems/daggerheart/templates/sheets-settings/action-settings/effect.hbs' + } + }; + static TABS = { + base: { + active: true, + cssClass: '', + group: 'primary', + id: 'base', + icon: null, + label: 'Base' + }, + config: { + active: false, + cssClass: '', + group: 'primary', + id: 'config', + icon: null, + label: 'Configuration' + }, + effect: { + active: false, + cssClass: '', + group: 'primary', + id: 'effect', + icon: null, + label: 'Effect' + } + }; + + static CLEAN_ARRAYS = ['damage.parts', 'cost', 'effects']; + + _getTabs(tabs) { + for (const v of Object.values(tabs)) { + v.active = this.tabGroups[v.group] ? this.tabGroups[v.group] === v.id : v.active; + v.cssClass = v.active ? 'active' : ''; + } + + return tabs; + } + + async _prepareContext(_options) { + const context = await super._prepareContext(_options, 'action'); + context.source = this.action.toObject(false); + context.openSection = this.openSection; + context.tabs = this._getTabs(this.constructor.TABS); + context.config = CONFIG.DH; + if (!!this.action.effects) context.effects = this.action.effects.map(e => this.action.item.effects.get(e._id)); + if (this.action.damage?.hasOwnProperty('includeBase') && this.action.type === 'attack') + context.hasBaseDamage = !!this.action.parent.attack; + context.getEffectDetails = this.getEffectDetails.bind(this); + context.costOptions = this.getCostOptions(); + context.getRollTypeOptions = this.getRollTypeOptions(); + context.disableOption = this.disableOption.bind(this); + context.isNPC = this.action.actor?.isNPC; + context.baseSaveDifficulty = this.action.actor?.baseSaveDifficulty; + context.baseAttackBonus = this.action.actor?.system.attack?.roll.bonus; + context.hasRoll = this.action.hasRoll; + + const settingsTiers = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LevelTiers).tiers; + context.tierOptions = [ + { key: 1, label: game.i18n.localize('DAGGERHEART.GENERAL.Tiers.1') }, + ...Object.values(settingsTiers).map(x => ({ key: x.tier, label: x.name })) + ]; return context; } - static async addEffect(_event) { - if (!this.action.effects) return; - const effectData = this._addEffectData.bind(this)(); - const data = this.action.toObject(); + static toggleSection(_, button) { + this.openSection = button.dataset.section === this.openSection ? null : button.dataset.section; + this.render(true); + } - const [created] = await this.action.item.createEmbeddedDocuments('ActiveEffect', [effectData], { - render: false + getCostOptions() { + const options = foundry.utils.deepClone(CONFIG.DH.GENERAL.abilityCosts); + const resource = this.action.parent.resource; + if (resource) { + options[this.action.parent.parent.id] = { + label: 'DAGGERHEART.GENERAL.itemResource', + group: 'Global' + }; + } + + return options; + } + + getRollTypeOptions() { + const types = foundry.utils.deepClone(CONFIG.DH.GENERAL.rollTypes); + if (!this.action.actor) return types; + Object.values(types).forEach(t => { + if (this.action.actor.type !== 'character' && t.playerOnly) delete types[t.id]; }); + return types; + } + + disableOption(index, costOptions, choices) { + const filtered = foundry.utils.deepClone(costOptions); + Object.keys(filtered).forEach(o => { + if (choices.find((c, idx) => c.type === o && index !== idx)) filtered[o].disabled = true; + }); + return filtered; + } + + getEffectDetails(id) { + return this.action.item.effects.get(id); + } + + _prepareSubmitData(_event, formData) { + const submitData = foundry.utils.expandObject(formData.object); + for (const keyPath of this.constructor.CLEAN_ARRAYS) { + const data = foundry.utils.getProperty(submitData, keyPath); + const dataValues = data ? Object.values(data) : []; + if (keyPath === 'cost') { + for (var value of dataValues) { + const item = this.action.parent.parent.id === value.key; + value.keyIsID = Boolean(item); + } + } + + if (data) foundry.utils.setProperty(submitData, keyPath, dataValues); + } + return submitData; + } + + static async updateForm(event, _, formData) { + const submitData = this._prepareSubmitData(event, formData), + data = foundry.utils.mergeObject(this.action.toObject(), submitData); + this.action = await this.action.update(data); + + this.sheetUpdate?.(this.action); + this.render(); + } + + static addElement(event) { + const data = this.action.toObject(), + key = event.target.closest('[data-key]').dataset.key; + if (!this.action[key]) return; + data[key].push({}); + this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) }); + } + + static removeElement(event, button) { + event.stopPropagation(); + const data = this.action.toObject(), + key = event.target.closest('[data-key]').dataset.key, + index = button.dataset.index; + data[key].splice(index, 1); + this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) }); + } + + static addDamage(event) { + if (!this.action.damage.parts) return; + const data = this.action.toObject(), + part = {}; + if (this.action.actor?.isNPC) part.value = { multiplier: 'flat' }; + data.damage.parts.push(part); + this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) }); + } + + static removeDamage(event, button) { + if (!this.action.damage.parts) return; + const data = this.action.toObject(), + index = button.dataset.index; + data.damage.parts.splice(index, 1); + this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) }); + } + + static async addEffect(event) { + if (!this.action.effects) return; + const effectData = this._addEffectData.bind(this)(), + [created] = await this.action.item.createEmbeddedDocuments('ActiveEffect', [effectData], { render: false }), + data = this.action.toObject(); data.effects.push({ _id: created._id }); this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) }); this.action.item.effects.get(created._id).sheet.render(true); @@ -46,10 +246,6 @@ export default class DHActionConfig extends DHActionBaseConfig { }; } - getEffectDetails(id) { - return this.action.item.effects.get(id); - } - static removeEffect(event, button) { if (!this.action.effects) return; const index = button.dataset.index, diff --git a/module/applications/sheets-configs/action-settings-config.mjs b/module/applications/sheets-configs/action-settings-config.mjs deleted file mode 100644 index 91b85802..00000000 --- a/module/applications/sheets-configs/action-settings-config.mjs +++ /dev/null @@ -1,66 +0,0 @@ -import DHActionBaseConfig from './action-base-config.mjs'; - -export default class DHActionSettingsConfig extends DHActionBaseConfig { - constructor(action, effects, sheetUpdate) { - super(action); - - this.effects = effects; - this.sheetUpdate = sheetUpdate; - } - - static DEFAULT_OPTIONS = { - ...DHActionBaseConfig.DEFAULT_OPTIONS, - actions: { - ...DHActionBaseConfig.DEFAULT_OPTIONS.actions, - addEffect: this.addEffect, - removeEffect: this.removeEffect, - editEffect: this.editEffect - } - }; - - async _prepareContext(options) { - const context = await super._prepareContext(options); - context.effects = this.effects; - context.getEffectDetails = this.getEffectDetails.bind(this); - - return context; - } - - getEffectDetails(id) { - return this.effects.find(x => x.id === id); - } - - static async addEffect(_event) { - if (!this.action.effects) return; - const effectData = game.system.api.data.activeEffects.BaseEffect.getDefaultObject(); - const data = this.action.toObject(); - - this.sheetUpdate(data, effectData); - this.effects = [...this.effects, effectData]; - data.effects.push({ _id: effectData.id }); - this.constructor.updateForm.bind(this)(null, null, { object: foundry.utils.flattenObject(data) }); - } - - static removeEffect(event, button) { - if (!this.action.effects) return; - const index = button.dataset.index, - effectId = this.action.effects[index]._id; - this.constructor.removeElement.bind(this)(event, button); - this.sheetUpdate( - this.action.toObject(), - this.effects.find(x => x.id === effectId), - true - ); - } - - static async editEffect(event) { - const id = event.target.closest('[data-effect-id]')?.dataset?.effectId; - const updatedEffect = await game.system.api.applications.sheetConfigs.SettingActiveEffectConfig.configure( - this.getEffectDetails(id) - ); - if (!updatedEffect) return; - - this.effects = await this.sheetUpdate(this.action.toObject(), { ...updatedEffect, id }); - this.render(); - } -} diff --git a/module/applications/sheets-configs/activeEffectConfig.mjs b/module/applications/sheets-configs/activeEffectConfig.mjs index d7b1b536..25f7d2b5 100644 --- a/module/applications/sheets-configs/activeEffectConfig.mjs +++ b/module/applications/sheets-configs/activeEffectConfig.mjs @@ -9,9 +9,6 @@ export default class DhActiveEffectConfig extends foundry.applications.sheets.Ac if (!ignoredActorKeys.includes(key)) { const model = game.system.api.models.actors[key]; const attributes = CONFIG.Token.documentClass.getTrackedAttributes(model); - // As per DHToken._getTrackedAttributesFromSchema, attributes.bar have a max version as well. - const maxAttributes = attributes.bar.map(x => [...x, 'max']); - attributes.value.push(...maxAttributes); const group = game.i18n.localize(model.metadata.label); const choices = CONFIG.Token.documentClass .getTrackedAttributeChoices(attributes, model) @@ -99,13 +96,6 @@ export default class DhActiveEffectConfig extends foundry.applications.sheets.Ac }); } - async _prepareContext(options) { - const context = await super._prepareContext(options); - context.systemFields = context.document.system.schema.fields; - - return context; - } - async _preparePartContext(partId, context) { const partContext = await super._preparePartContext(partId, context); switch (partId) { @@ -115,7 +105,7 @@ export default class DhActiveEffectConfig extends foundry.applications.sheets.Ac CONFIG.DH.SETTINGS.gameSettings.appearance ).showGenericStatusEffects; if (!useGeneric) { - partContext.statuses = Object.values(CONFIG.DH.GENERAL.conditions()).map(status => ({ + partContext.statuses = Object.values(CONFIG.DH.GENERAL.conditions).map(status => ({ value: status.id, label: game.i18n.localize(status.name) })); diff --git a/module/applications/sheets-configs/adversary-settings.mjs b/module/applications/sheets-configs/adversary-settings.mjs index d3d215be..bcc8b1c9 100644 --- a/module/applications/sheets-configs/adversary-settings.mjs +++ b/module/applications/sheets-configs/adversary-settings.mjs @@ -51,19 +51,6 @@ export default class DHAdversarySettings extends DHBaseActorSettings { } }; - async _prepareContext(options) { - const context = await super._prepareContext(options); - - const featureForms = ['passive', 'action', 'reaction']; - context.features = context.document.system.features.sort((a, b) => - a.system.featureForm !== b.system.featureForm - ? featureForms.indexOf(a.system.featureForm) - featureForms.indexOf(b.system.featureForm) - : a.sort - b.sort - ); - - return context; - } - /* -------------------------------------------- */ /** @@ -111,16 +98,16 @@ export default class DHAdversarySettings extends DHBaseActorSettings { async _onDrop(event) { const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event); - + const item = await fromUuid(data.uuid); if (item?.type === 'feature') { if (data.fromInternal && item.parent?.uuid === this.actor.uuid) { return; } - + const itemData = item.toObject(); delete itemData._id; - + await this.actor.createEmbeddedDocuments('Item', [itemData]); } } diff --git a/module/applications/sheets-configs/setting-feature-config.mjs b/module/applications/sheets-configs/downtimeConfig.mjs similarity index 50% rename from module/applications/sheets-configs/setting-feature-config.mjs rename to module/applications/sheets-configs/downtimeConfig.mjs index e8bf6109..80aab900 100644 --- a/module/applications/sheets-configs/setting-feature-config.mjs +++ b/module/applications/sheets-configs/downtimeConfig.mjs @@ -1,26 +1,21 @@ import { actionsTypes } from '../../data/action/_module.mjs'; -import ActionSettingsConfig from './action-settings-config.mjs'; +import DHActionConfig from './action-config.mjs'; const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; -export default class SettingFeatureConfig extends HandlebarsApplicationMixin(ApplicationV2) { - constructor(configTitle, move, movePath, settings, optionalParts, options) { +export default class DowntimeConfig extends HandlebarsApplicationMixin(ApplicationV2) { + constructor(move, movePath, settings, options) { super(options); - this.configTitle = configTitle; this.move = move; this.movePath = movePath; this.actionsPath = `${movePath}.actions`; this.settings = settings; - - const { hasIcon, hasEffects } = optionalParts; - this.hasIcon = hasIcon; - this.hasEffects = hasEffects; } get title() { - return this.configTitle; + return game.i18n.localize('DAGGERHEART.SETTINGS.Homebrew.downtimeMoves'); } static DEFAULT_OPTIONS = { @@ -35,7 +30,6 @@ export default class SettingFeatureConfig extends HandlebarsApplicationMixin(App addItem: this.addItem, editItem: this.editItem, removeItem: this.removeItem, - addEffect: this.addEffect, resetMoves: this.resetMoves, saveForm: this.saveForm }, @@ -47,14 +41,13 @@ export default class SettingFeatureConfig extends HandlebarsApplicationMixin(App tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' }, main: { template: 'systems/daggerheart/templates/settings/downtime-config/main.hbs' }, actions: { template: 'systems/daggerheart/templates/settings/downtime-config/actions.hbs' }, - effects: { template: 'systems/daggerheart/templates/settings/downtime-config/effects.hbs' }, footer: { template: 'systems/daggerheart/templates/settings/downtime-config/footer.hbs' } }; /** @inheritdoc */ static TABS = { primary: { - tabs: [{ id: 'main' }, { id: 'actions' }, { id: 'effects' }], + tabs: [{ id: 'main' }, { id: 'actions' }], initial: 'main', labelPrefix: 'DAGGERHEART.GENERAL.Tabs' } @@ -62,9 +55,6 @@ export default class SettingFeatureConfig extends HandlebarsApplicationMixin(App async _prepareContext(_options) { const context = await super._prepareContext(_options); - context.tabs = this._filterTabs(context.tabs); - context.hasIcon = this.hasIcon; - context.hasEffects = this.hasEffects; context.move = this.move; context.move.enrichedDescription = await foundry.applications.ux.TextEditor.enrichHTML( context.move.description @@ -102,8 +92,6 @@ export default class SettingFeatureConfig extends HandlebarsApplicationMixin(App return ( (await foundry.applications.api.DialogV2.input({ window: { title: game.i18n.localize('DAGGERHEART.CONFIG.SelectAction.selectType') }, - position: { width: 300 }, - classes: ['daggerheart', 'dh-style'], content: await foundry.applications.handlebars.renderTemplate( 'systems/daggerheart/templates/actionTypes/actionType.hbs', { types: CONFIG.DH.ACTIONS.actionTypes } @@ -142,109 +130,31 @@ export default class SettingFeatureConfig extends HandlebarsApplicationMixin(App } static async editItem(_, target) { - const { type, id } = target.dataset; - if (type === 'effect') { - const effectIndex = this.move.effects.findIndex(x => x.id === id); - const effect = this.move.effects[effectIndex]; - const updatedEffect = - await game.system.api.applications.sheetConfigs.SettingActiveEffectConfig.configure(effect); - if (!updatedEffect) return; - - await this.settings.updateSource({ - [`${this.movePath}.effects`]: this.move.effects.reduce((acc, effect, index) => { - acc.push(index === effectIndex ? { ...updatedEffect, id: effect.id } : effect); - return acc; - }, []) - }); + const actionId = target.dataset.id; + const action = this.move.actions.get(actionId); + await new DHActionConfig(action, async updatedMove => { + await this.settings.updateSource({ [`${this.actionsPath}.${actionId}`]: updatedMove }); this.move = foundry.utils.getProperty(this.settings, this.movePath); this.render(); - } else { - const action = this.move.actions.get(id); - await new ActionSettingsConfig(action, this.move.effects, async (updatedMove, effectData, deleteEffect) => { - let updatedEffects = null; - if (effectData) { - const currentEffects = foundry.utils.getProperty(this.settings, `${this.movePath}.effects`); - const existingEffectIndex = currentEffects.findIndex(x => x.id === effectData.id); - - updatedEffects = deleteEffect - ? currentEffects.filter(x => x.id !== effectData.id) - : existingEffectIndex === -1 - ? [...currentEffects, effectData] - : currentEffects.with(existingEffectIndex, effectData); - await this.settings.updateSource({ - [`${this.movePath}.effects`]: updatedEffects - }); - } - - await this.settings.updateSource({ [`${this.actionsPath}.${id}`]: updatedMove }); - this.move = foundry.utils.getProperty(this.settings, this.movePath); - this.render(); - return updatedEffects; - }).render(true); - } + }).render(true); } static async removeItem(_, target) { - const { type, id } = target.dataset; - if (type === 'effect') { - const move = foundry.utils.getProperty(this.settings, this.movePath); - for (const action of move.actions) { - const remainingEffects = action.effects.filter(x => x._id !== id); - if (action.effects.length !== remainingEffects.length) { - await action.update({ - effects: remainingEffects.map(x => { - const { _id, ...rest } = x; - return { ...rest, _id: _id }; - }) - }); - } - } - await this.settings.updateSource({ - [this.movePath]: { - effects: move.effects.filter(x => x.id !== id), - actions: move.actions - } - }); - } else { - await this.settings.updateSource({ [`${this.actionsPath}.-=${target.dataset.id}`]: null }); - } - - this.move = foundry.utils.getProperty(this.settings, this.movePath); - this.render(); - } - - static async addEffect(_, target) { - const currentEffects = foundry.utils.getProperty(this.settings, `${this.movePath}.effects`); - await this.settings.updateSource({ - [`${this.movePath}.effects`]: [ - ...currentEffects, - game.system.api.data.activeEffects.BaseEffect.getDefaultObject() - ] - }); - + await this.settings.updateSource({ [`${this.actionsPath}.-=${target.dataset.id}`]: null }); this.move = foundry.utils.getProperty(this.settings, this.movePath); this.render(); } static resetMoves() {} - _filterTabs(tabs) { - return this.hasEffects - ? tabs - : Object.keys(tabs).reduce((acc, key) => { - if (key !== 'effects') acc[key] = tabs[key]; - return acc; - }, {}); - } - /** @override */ _onClose(options = {}) { if (!options.submitted) this.move = null; } - static async configure(configTitle, move, movePath, settings, optionalParts, options = {}) { + static async configure(move, movePath, settings, options = {}) { return new Promise(resolve => { - const app = new this(configTitle, move, movePath, settings, optionalParts, options); + const app = new this(move, movePath, settings, options); app.addEventListener('close', () => resolve(app.move), { once: true }); app.render({ force: true }); }); diff --git a/module/applications/sheets-configs/environment-settings.mjs b/module/applications/sheets-configs/environment-settings.mjs index 15f5701d..1c42a552 100644 --- a/module/applications/sheets-configs/environment-settings.mjs +++ b/module/applications/sheets-configs/environment-settings.mjs @@ -49,19 +49,6 @@ export default class DHEnvironmentSettings extends DHBaseActorSettings { } }; - async _prepareContext(options) { - const context = await super._prepareContext(options); - - const featureForms = ['passive', 'action', 'reaction']; - context.features = context.document.system.features.sort((a, b) => - a.system.featureForm !== b.system.featureForm - ? featureForms.indexOf(a.system.featureForm) - featureForms.indexOf(b.system.featureForm) - : a.sort - b.sort - ); - - return context; - } - /** * Adds a new category entry to the actor. * @type {ApplicationClickAction} @@ -122,9 +109,9 @@ export default class DHEnvironmentSettings extends DHBaseActorSettings { async _onDrop(event) { const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event); - const item = await fromUuid(data.uuid); - if (data.fromInternal && item?.parent?.uuid === this.actor.uuid) return; + if (data.fromInternal) return; + const item = await fromUuid(data.uuid); if (item.type === 'adversary' && event.target.closest('.category-container')) { const target = event.target.closest('.category-container'); const path = `system.potentialAdversaries.${target.dataset.potentialAdversary}.adversaries`; diff --git a/module/applications/sheets-configs/prototype-token-config.mjs b/module/applications/sheets-configs/prototype-token-config.mjs index 9faf6e71..24c9dabb 100644 --- a/module/applications/sheets-configs/prototype-token-config.mjs +++ b/module/applications/sheets-configs/prototype-token-config.mjs @@ -1,30 +1,20 @@ -import DHTokenConfigMixin from './token-config-mixin.mjs'; -import { getActorSizeFromForm } from './token-config-mixin.mjs'; - -export default class DhPrototypeTokenConfig extends DHTokenConfigMixin( - foundry.applications.sheets.PrototypeTokenConfig -) { +export default class DhPrototypeTokenConfig extends foundry.applications.sheets.PrototypeTokenConfig { /** @inheritDoc */ - static DEFAULT_OPTIONS = { - ...super.DEFAULT_OPTIONS, - form: { handler: DhPrototypeTokenConfig.#onSubmit } - }; - - /** - * Process form submission for the sheet - * @this {PrototypeTokenConfig} - * @type {ApplicationFormSubmission} - */ - static async #onSubmit(event, form, formData) { - const submitData = this._processFormData(event, form, formData); - submitData.detectionModes ??= []; // Clear detection modes array - this._processChanges(submitData); - const changes = { prototypeToken: submitData }; - - const changedTokenSizeValue = getActorSizeFromForm(this.element, this.actor); - if (changedTokenSizeValue) changes.system = { size: changedTokenSizeValue }; - - this.actor.validate({ changes, clean: true, fallback: false }); - await this.actor.update(changes); + async _prepareResourcesTab() { + const token = this.token; + const usesTrackableAttributes = !foundry.utils.isEmpty(CONFIG.Actor.trackableAttributes); + const attributeSource = + this.actor?.system instanceof foundry.abstract.DataModel && usesTrackableAttributes + ? this.actor?.type + : this.actor?.system; + const TokenDocument = foundry.utils.getDocumentClass('Token'); + const attributes = TokenDocument.getTrackedAttributes(attributeSource); + return { + barAttributes: TokenDocument.getTrackedAttributeChoices(attributes, attributeSource), + bar1: token.getBarAttribute?.('bar1'), + bar2: token.getBarAttribute?.('bar2'), + turnMarkerModes: DhPrototypeTokenConfig.TURN_MARKER_MODES, + turnMarkerAnimations: CONFIG.Combat.settings.turnMarkerAnimations + }; } } diff --git a/module/applications/sheets-configs/setting-active-effect-config.mjs b/module/applications/sheets-configs/setting-active-effect-config.mjs deleted file mode 100644 index ca0d56e3..00000000 --- a/module/applications/sheets-configs/setting-active-effect-config.mjs +++ /dev/null @@ -1,231 +0,0 @@ -import autocomplete from 'autocompleter'; - -const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; - -export default class SettingActiveEffectConfig extends HandlebarsApplicationMixin(ApplicationV2) { - constructor(effect) { - super({}); - - this.effect = foundry.utils.deepClone(effect); - const ignoredActorKeys = ['config', 'DhEnvironment']; - this.changeChoices = Object.keys(game.system.api.models.actors).reduce((acc, key) => { - if (!ignoredActorKeys.includes(key)) { - const model = game.system.api.models.actors[key]; - const attributes = CONFIG.Token.documentClass.getTrackedAttributes(model); - const group = game.i18n.localize(model.metadata.label); - const choices = CONFIG.Token.documentClass - .getTrackedAttributeChoices(attributes, model) - .map(x => ({ ...x, group: group })); - acc.push(...choices); - } - return acc; - }, []); - } - - static DEFAULT_OPTIONS = { - classes: ['daggerheart', 'sheet', 'dh-style', 'active-effect-config', 'standard-form'], - tag: 'form', - position: { - width: 560 - }, - form: { - submitOnChange: false, - closeOnSubmit: false, - handler: SettingActiveEffectConfig.#onSubmit - }, - actions: { - editImage: SettingActiveEffectConfig.#editImage, - addChange: SettingActiveEffectConfig.#addChange, - deleteChange: SettingActiveEffectConfig.#deleteChange - } - }; - - static PARTS = { - header: { template: 'systems/daggerheart/templates/sheets/activeEffect/header.hbs' }, - tabs: { template: 'templates/generic/tab-navigation.hbs' }, - details: { template: 'systems/daggerheart/templates/sheets/activeEffect/details.hbs', scrollable: [''] }, - settings: { template: 'systems/daggerheart/templates/sheets/activeEffect/settings.hbs' }, - changes: { - template: 'systems/daggerheart/templates/sheets/activeEffect/changes.hbs', - scrollable: ['ol[data-changes]'] - }, - footer: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-form-footer.hbs' } - }; - - static TABS = { - sheet: { - tabs: [ - { id: 'details', icon: 'fa-solid fa-book' }, - { id: 'settings', icon: 'fa-solid fa-bars', label: 'DAGGERHEART.GENERAL.Tabs.settings' }, - { id: 'changes', icon: 'fa-solid fa-gears' } - ], - initial: 'details', - labelPrefix: 'EFFECT.TABS' - } - }; - - /**@inheritdoc */ - async _onFirstRender(context, options) { - await super._onFirstRender(context, options); - } - - async _prepareContext(_options) { - const context = await super._prepareContext(_options); - context.source = this.effect; - context.fields = game.system.api.documents.DhActiveEffect.schema.fields; - context.systemFields = game.system.api.data.activeEffects.BaseEffect._schema.fields; - - return context; - } - - _attachPartListeners(partId, htmlElement, options) { - super._attachPartListeners(partId, htmlElement, options); - const changeChoices = this.changeChoices; - - htmlElement.querySelectorAll('.effect-change-input').forEach(element => { - autocomplete({ - input: element, - fetch: function (text, update) { - if (!text) { - update(changeChoices); - } else { - text = text.toLowerCase(); - var suggestions = changeChoices.filter(n => n.label.toLowerCase().includes(text)); - update(suggestions); - } - }, - render: function (item, search) { - const label = game.i18n.localize(item.label); - const matchIndex = label.toLowerCase().indexOf(search); - - const beforeText = label.slice(0, matchIndex); - const matchText = label.slice(matchIndex, matchIndex + search.length); - const after = label.slice(matchIndex + search.length, label.length); - - const element = document.createElement('li'); - element.innerHTML = `${beforeText}${matchText ? `${matchText}` : ''}${after}`; - if (item.hint) { - element.dataset.tooltip = game.i18n.localize(item.hint); - } - - return element; - }, - renderGroup: function (label) { - const itemElement = document.createElement('div'); - itemElement.textContent = game.i18n.localize(label); - return itemElement; - }, - onSelect: function (item) { - element.value = `system.${item.value}`; - }, - click: e => e.fetch(), - customize: function (_input, _inputRect, container) { - container.style.zIndex = foundry.applications.api.ApplicationV2._maxZ; - }, - minLength: 0 - }); - }); - } - - async _preparePartContext(partId, context) { - if (partId in context.tabs) context.tab = context.tabs[partId]; - switch (partId) { - case 'details': - context.statuses = CONFIG.statusEffects.map(s => ({ value: s.id, label: game.i18n.localize(s.name) })); - context.isActorEffect = false; - context.isItemEffect = true; - const useGeneric = game.settings.get( - CONFIG.DH.id, - CONFIG.DH.SETTINGS.gameSettings.appearance - ).showGenericStatusEffects; - if (!useGeneric) { - context.statuses = [ - ...context.statuses, - Object.values(CONFIG.DH.GENERAL.conditions).map(status => ({ - value: status.id, - label: game.i18n.localize(status.name) - })) - ]; - } - break; - case 'changes': - context.modes = Object.entries(CONST.ACTIVE_EFFECT_MODES).reduce((modes, [key, value]) => { - modes[value] = game.i18n.localize(`EFFECT.MODE_${key}`); - return modes; - }, {}); - - context.priorities = ActiveEffectConfig.DEFAULT_PRIORITIES; - break; - } - - return context; - } - - static async #onSubmit(_event, _form, formData) { - this.data = foundry.utils.expandObject(formData.object); - this.close(); - } - - /** - * Edit a Document image. - * @this {DocumentSheetV2} - * @type {ApplicationClickAction} - */ - static async #editImage(_event, target) { - if (target.nodeName !== 'IMG') { - throw new Error('The editImage action is available only for IMG elements.'); - } - - const attr = target.dataset.edit; - const current = foundry.utils.getProperty(this.effect, attr); - const fp = new FilePicker.implementation({ - current, - type: 'image', - callback: path => (target.src = path), - position: { - top: this.position.top + 40, - left: this.position.left + 10 - } - }); - - await fp.browse(); - } - - /** - * Add a new change to the effect's changes array. - * @this {ActiveEffectConfig} - * @type {ApplicationClickAction} - */ - static async #addChange() { - const { changes, ...rest } = foundry.utils.expandObject(new FormDataExtended(this.form).object); - const updatedChanges = Object.values(changes ?? {}); - updatedChanges.push({}); - - this.effect = { ...rest, changes: updatedChanges }; - this.render(); - } - - /** - * Delete a change from the effect's changes array. - * @this {ActiveEffectConfig} - * @type {ApplicationClickAction} - */ - static async #deleteChange(event) { - const submitData = foundry.utils.expandObject(new FormDataExtended(this.form).object); - const updatedChanges = Object.values(submitData.changes); - const row = event.target.closest('li'); - const index = Number(row.dataset.index) || 0; - updatedChanges.splice(index, 1); - - this.effect = { ...submitData, changes: updatedChanges }; - this.render(); - } - - static async configure(effect, options = {}) { - return new Promise(resolve => { - const app = new this(effect, options); - app.addEventListener('close', () => resolve(app.data), { once: true }); - app.render({ force: true }); - }); - } -} diff --git a/module/applications/sheets-configs/token-config-mixin.mjs b/module/applications/sheets-configs/token-config-mixin.mjs deleted file mode 100644 index c29b54ff..00000000 --- a/module/applications/sheets-configs/token-config-mixin.mjs +++ /dev/null @@ -1,114 +0,0 @@ -export default function DHTokenConfigMixin(Base) { - class DHTokenConfigBase extends Base { - /** @override */ - static PARTS = { - tabs: super.PARTS.tabs, - identity: super.PARTS.identity, - appearance: { - template: 'systems/daggerheart/templates/sheets-settings/token-config/appearance.hbs', - scrollable: [''] - }, - vision: super.PARTS.vision, - light: super.PARTS.light, - resources: super.PARTS.resources, - footer: super.PARTS.footer - }; - - _attachPartListeners(partId, htmlElement, options) { - super._attachPartListeners(partId, htmlElement, options); - - switch (partId) { - case 'appearance': - htmlElement - .querySelector('#dhTokenSize') - ?.addEventListener('change', this.onTokenSizeChange.bind(this)); - break; - } - } - - /** @inheritDoc */ - async _prepareResourcesTab() { - const token = this.token; - const usesTrackableAttributes = !foundry.utils.isEmpty(CONFIG.Actor.trackableAttributes); - const attributeSource = - this.actor?.system instanceof foundry.abstract.DataModel && usesTrackableAttributes - ? this.actor?.type - : this.actor?.system; - const TokenDocument = foundry.utils.getDocumentClass('Token'); - const attributes = TokenDocument.getTrackedAttributes(attributeSource); - return { - barAttributes: TokenDocument.getTrackedAttributeChoices(attributes, attributeSource), - bar1: token.getBarAttribute?.('bar1'), - bar2: token.getBarAttribute?.('bar2'), - turnMarkerModes: DHTokenConfigBase.TURN_MARKER_MODES, - turnMarkerAnimations: CONFIG.Combat.settings.turnMarkerAnimations - }; - } - - async _prepareAppearanceTab() { - const context = await super._prepareAppearanceTab(); - context.tokenSizes = CONFIG.DH.ACTOR.tokenSize; - context.tokenSize = this.actor?.system?.size; - context.usesActorSize = this.actor?.system?.metadata?.usesSize; - context.actorSizeDisable = context.usesActorSize && this.actor.system.size !== 'custom'; - - return context; - } - - /** @inheritDoc */ - _previewChanges(changes) { - if (!changes || !this._preview) return; - - const tokenSizeSelect = this.element?.querySelector('#dhTokenSize'); - if (this.actor && tokenSizeSelect && tokenSizeSelect.value !== 'custom') { - const tokenSizes = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).tokenSizes; - const tokenSize = tokenSizes[tokenSizeSelect.value]; - changes.width = tokenSize; - changes.height = tokenSize; - } - - const deletions = { '-=actorId': null, '-=actorLink': null }; - const mergeOptions = { inplace: false, performDeletions: true }; - this._preview.updateSource(mergeObject(changes, deletions, mergeOptions)); - - if (this._preview?.object?.destroyed === false) { - this._preview.object.initializeSources(); - this._preview.object.renderFlags.set({ refresh: true }); - } - } - - async onTokenSizeChange(event) { - const value = event.target.value; - const tokenSizeDimensions = this.element.querySelector('#tokenSizeDimensions'); - if (tokenSizeDimensions) { - const disabled = value !== 'custom'; - - tokenSizeDimensions.dataset.tooltip = disabled - ? game.i18n.localize('DAGGERHEART.APPLICATIONS.TokenConfig.actorSizeUsed') - : ''; - - const disabledIcon = tokenSizeDimensions.querySelector('i'); - if (disabledIcon) { - disabledIcon.style.opacity = disabled ? '' : '0'; - } - - const dimensionsInputs = tokenSizeDimensions.querySelectorAll('.form-fields input'); - for (const input of dimensionsInputs) { - input.disabled = disabled; - } - } - } - } - - return DHTokenConfigBase; -} - -export function getActorSizeFromForm(element, actor) { - const tokenSizeSelect = element.querySelector('#dhTokenSize'); - const isSizeDifferent = tokenSizeSelect?.value !== actor?.system?.size; - if (tokenSizeSelect && actor && isSizeDifferent) { - return tokenSizeSelect.value; - } - - return null; -} diff --git a/module/applications/sheets-configs/token-config.mjs b/module/applications/sheets-configs/token-config.mjs index d7450bd6..ee573e5d 100644 --- a/module/applications/sheets-configs/token-config.mjs +++ b/module/applications/sheets-configs/token-config.mjs @@ -1,11 +1,20 @@ -import DHTokenConfigMixin from './token-config-mixin.mjs'; -import { getActorSizeFromForm } from './token-config-mixin.mjs'; - -export default class DhTokenConfig extends DHTokenConfigMixin(foundry.applications.sheets.TokenConfig) { - async _processSubmitData(event, form, submitData, options) { - const changedTokenSizeValue = getActorSizeFromForm(this.element, this.actor); - if (changedTokenSizeValue) this.token.actor.update({ 'system.size': changedTokenSizeValue }); - - super._processSubmitData(event, form, submitData, options); +export default class DhTokenConfig extends foundry.applications.sheets.TokenConfig { + /** @inheritDoc */ + async _prepareResourcesTab() { + const token = this.token; + const usesTrackableAttributes = !foundry.utils.isEmpty(CONFIG.Actor.trackableAttributes); + const attributeSource = + this.actor?.system instanceof foundry.abstract.DataModel && usesTrackableAttributes + ? this.actor?.type + : this.actor?.system; + const TokenDocument = foundry.utils.getDocumentClass('Token'); + const attributes = TokenDocument.getTrackedAttributes(attributeSource); + return { + barAttributes: TokenDocument.getTrackedAttributeChoices(attributes, attributeSource), + bar1: token.getBarAttribute?.('bar1'), + bar2: token.getBarAttribute?.('bar2'), + turnMarkerModes: DhTokenConfig.TURN_MARKER_MODES, + turnMarkerAnimations: CONFIG.Combat.settings.turnMarkerAnimations + }; } } diff --git a/module/applications/sheets/actors/_module.mjs b/module/applications/sheets/actors/_module.mjs index c4ea2d94..9998733c 100644 --- a/module/applications/sheets/actors/_module.mjs +++ b/module/applications/sheets/actors/_module.mjs @@ -2,4 +2,3 @@ export { default as Adversary } from './adversary.mjs'; export { default as Character } from './character.mjs'; export { default as Companion } from './companion.mjs'; export { default as Environment } from './environment.mjs'; -export { default as Party } from './party.mjs'; diff --git a/module/applications/sheets/actors/adversary.mjs b/module/applications/sheets/actors/adversary.mjs index 98282d9f..b0fc5fb4 100644 --- a/module/applications/sheets/actors/adversary.mjs +++ b/module/applications/sheets/actors/adversary.mjs @@ -4,57 +4,24 @@ import DHBaseActorSheet from '../api/base-actor.mjs'; /**@typedef {import('@client/applications/_types.mjs').ApplicationClickAction} ApplicationClickAction */ export default class AdversarySheet extends DHBaseActorSheet { - /** @inheritDoc */ static DEFAULT_OPTIONS = { classes: ['adversary'], position: { width: 660, height: 766 }, window: { resizable: true }, actions: { - toggleHitPoints: AdversarySheet.#toggleHitPoints, - toggleStress: AdversarySheet.#toggleStress, - reactionRoll: AdversarySheet.#reactionRoll, - toggleResourceDice: AdversarySheet.#toggleResourceDice, - handleResourceDice: AdversarySheet.#handleResourceDice + reactionRoll: AdversarySheet.#reactionRoll }, window: { - resizable: true, - controls: [ - { - icon: 'fa-solid fa-signature', - label: 'DAGGERHEART.UI.Tooltip.configureAttribution', - action: 'editAttribution' - } - ] - }, - dragDrop: [ - { - dragSelector: '[data-item-id][draggable="true"], [data-item-id] [draggable="true"]', - dropSelector: null - } - ], + resizable: true + } }; static PARTS = { - limited: { - template: 'systems/daggerheart/templates/sheets/actors/adversary/limited.hbs', - scrollable: ['.limited-container'] - }, - sidebar: { - template: 'systems/daggerheart/templates/sheets/actors/adversary/sidebar.hbs', - scrollable: ['.shortcut-items-section'] - }, + sidebar: { template: 'systems/daggerheart/templates/sheets/actors/adversary/sidebar.hbs' }, header: { template: 'systems/daggerheart/templates/sheets/actors/adversary/header.hbs' }, - features: { - template: 'systems/daggerheart/templates/sheets/actors/adversary/features.hbs', - scrollable: ['.feature-section'] - }, - notes: { - template: 'systems/daggerheart/templates/sheets/actors/adversary/notes.hbs' - }, - effects: { - template: 'systems/daggerheart/templates/sheets/actors/adversary/effects.hbs', - scrollable: ['.effects-sections'] - } + features: { template: 'systems/daggerheart/templates/sheets/actors/adversary/features.hbs' }, + notes: { template: 'systems/daggerheart/templates/sheets/actors/adversary/notes.hbs' }, + effects: { template: 'systems/daggerheart/templates/sheets/actors/adversary/effects.hbs' } }; /** @inheritdoc */ @@ -66,40 +33,10 @@ export default class AdversarySheet extends DHBaseActorSheet { } }; - /** @inheritdoc */ - _initializeApplicationOptions(options) { - const applicationOptions = super._initializeApplicationOptions(options); - - if (applicationOptions.document.testUserPermission(game.user, 'LIMITED', { exact: true })) { - applicationOptions.position.width = 360; - applicationOptions.position.height = 'auto'; - } - - return applicationOptions; - } - /**@inheritdoc */ async _prepareContext(options) { const context = await super._prepareContext(options); context.systemFields.attack.fields = this.document.system.attack.schema.fields; - - context.resources = Object.keys(this.document.system.resources).reduce((acc, key) => { - acc[key] = this.document.system.resources[key]; - return acc; - }, {}); - const maxResource = Math.max(context.resources.hitPoints.max, context.resources.stress.max); - context.resources.hitPoints.emptyPips = - context.resources.hitPoints.max < maxResource ? maxResource - context.resources.hitPoints.max : 0; - context.resources.stress.emptyPips = - context.resources.stress.max < maxResource ? maxResource - context.resources.stress.max : 0; - - const featureForms = ['passive', 'action', 'reaction']; - context.features = this.document.system.features.sort((a, b) => - a.system.featureForm !== b.system.featureForm - ? featureForms.indexOf(a.system.featureForm) - featureForms.indexOf(b.system.featureForm) - : a.sort - b.sort - ); - return context; } @@ -108,11 +45,7 @@ export default class AdversarySheet extends DHBaseActorSheet { context = await super._preparePartContext(partId, context, options); switch (partId) { case 'header': - case 'limited': await this._prepareHeaderContext(context, options); - - const adversaryTypes = CONFIG.DH.ACTOR.allAdversaryTypes(); - context.adversaryType = game.i18n.localize(adversaryTypes[this.document.system.type].label); break; case 'notes': await this._prepareNotesContext(context, options); @@ -176,41 +109,10 @@ export default class AdversarySheet extends DHBaseActorSheet { }); } - /** @inheritdoc */ - async _onDragStart(event) { - const inventoryItem = event.currentTarget.closest('.inventory-item'); - if (inventoryItem) { - event.dataTransfer.setDragImage(inventoryItem.querySelector('img'), 60, 0); - } - super._onDragStart(event); - } - - /* -------------------------------------------- */ /* Application Clicks Actions */ /* -------------------------------------------- */ - /** - * Toggles hitpoint resource value. - * @type {ApplicationClickAction} - */ - static async #toggleHitPoints(_, button) { - const hitPointsValue = Number.parseInt(button.dataset.value); - const newValue = - this.document.system.resources.hitPoints.value >= hitPointsValue ? hitPointsValue - 1 : hitPointsValue; - await this.document.update({ 'system.resources.hitPoints.value': newValue }); - } - - /** - * Toggles stress resource value. - * @type {ApplicationClickAction} - */ - static async #toggleStress(_, button) { - const StressValue = Number.parseInt(button.dataset.value); - const newValue = this.document.system.resources.stress.value >= StressValue ? StressValue - 1 : StressValue; - await this.document.update({ 'system.resources.stress.value': newValue }); - } - /** * Performs a reaction roll for an Adversary. * @type {ApplicationClickAction} @@ -221,9 +123,9 @@ export default class AdversarySheet extends DHBaseActorSheet { title: `Reaction Roll: ${this.actor.name}`, headerTitle: 'Adversary Reaction Roll', roll: { - type: 'trait' + type: 'reaction' }, - actionType: 'reaction', + type: 'trait', hasRoll: true, data: this.actor.getRollData() }; @@ -231,40 +133,6 @@ export default class AdversarySheet extends DHBaseActorSheet { this.actor.diceRoll(config); } - /** - * Toggle the used state of a resource dice. - * @type {ApplicationClickAction} - */ - static async #toggleResourceDice(event, target) { - const item = await getDocFromElement(target); - - const { dice } = event.target.closest('.item-resource').dataset; - const diceState = item.system.resource.diceStates[dice]; - - await item.update({ - [`system.resource.diceStates.${dice}.used`]: diceState ? !diceState.used : true - }); - } - - /** - * Handle the roll values of resource dice. - * @type {ApplicationClickAction} - */ - static async #handleResourceDice(_, target) { - const item = await getDocFromElement(target); - if (!item) return; - - const rollValues = await game.system.api.applications.dialogs.ResourceDiceDialog.create(item, this.document); - if (!rollValues) return; - - await item.update({ - 'system.resource.diceStates': rollValues.reduce((acc, state, index) => { - acc[index] = { value: state.value, used: state.used }; - return acc; - }, {}) - }); - } - /* -------------------------------------------- */ /* Application Listener Actions */ /* -------------------------------------------- */ diff --git a/module/applications/sheets/actors/character.mjs b/module/applications/sheets/actors/character.mjs index 594269be..c860e9e9 100644 --- a/module/applications/sheets/actors/character.mjs +++ b/module/applications/sheets/actors/character.mjs @@ -1,53 +1,40 @@ import DHBaseActorSheet from '../api/base-actor.mjs'; import DhpDeathMove from '../../dialogs/deathMove.mjs'; import { abilities } from '../../../config/actorConfig.mjs'; -import { CharacterLevelup, LevelupViewMode } from '../../levelup/_module.mjs'; +import DhCharacterlevelUp from '../../levelup/characterLevelup.mjs'; import DhCharacterCreation from '../../characterCreation/characterCreation.mjs'; import FilterMenu from '../../ux/filter-menu.mjs'; import { getDocFromElement, getDocFromElementSync } from '../../../helpers/utils.mjs'; +import { ItemBrowser } from '../../ui/itemBrowser.mjs'; /**@typedef {import('@client/applications/_types.mjs').ApplicationClickAction} ApplicationClickAction */ +const { TextEditor } = foundry.applications.ux; export default class CharacterSheet extends DHBaseActorSheet { /**@inheritdoc */ static DEFAULT_OPTIONS = { classes: ['character'], position: { width: 850, height: 800 }, - /* Foundry adds disabled to all buttons and inputs if editPermission is missing. This is not desired. */ - editPermission: CONST.DOCUMENT_OWNERSHIP_LEVELS.OBSERVER, actions: { toggleVault: CharacterSheet.#toggleVault, rollAttribute: CharacterSheet.#rollAttribute, - toggleHitPoints: CharacterSheet.#toggleHitPoints, - toggleStress: CharacterSheet.#toggleStress, - toggleArmor: CharacterSheet.#toggleArmor, toggleHope: CharacterSheet.#toggleHope, toggleLoadoutView: CharacterSheet.#toggleLoadoutView, openPack: CharacterSheet.#openPack, makeDeathMove: CharacterSheet.#makeDeathMove, levelManagement: CharacterSheet.#levelManagement, - viewLevelups: CharacterSheet.#viewLevelups, toggleEquipItem: CharacterSheet.#toggleEquipItem, toggleResourceDice: CharacterSheet.#toggleResourceDice, handleResourceDice: CharacterSheet.#handleResourceDice, - advanceResourceDie: CharacterSheet.#advanceResourceDie, - cancelBeastform: CharacterSheet.#cancelBeastform, useDowntime: this.useDowntime, - viewParty: CharacterSheet.#viewParty, + tempBrowser: CharacterSheet.#tempBrowser }, window: { - resizable: true, - controls: [ - { - icon: 'fa-solid fa-angles-up', - label: 'DAGGERHEART.ACTORS.Character.viewLevelups', - action: 'viewLevelups' - } - ] + resizable: true }, dragDrop: [ { - dragSelector: '[data-item-id][draggable="true"], [data-item-id] [draggable="true"]', + dragSelector: '[data-item-id][draggable="true"]', dropSelector: null } ], @@ -81,14 +68,8 @@ export default class CharacterSheet extends DHBaseActorSheet { /**@override */ static PARTS = { - limited: { - id: 'limited', - scrollable: ['.limited-container'], - template: 'systems/daggerheart/templates/sheets/actors/character/limited.hbs' - }, sidebar: { id: 'sidebar', - scrollable: ['.shortcut-items-section'], template: 'systems/daggerheart/templates/sheets/actors/character/sidebar.hbs' }, header: { @@ -97,27 +78,22 @@ export default class CharacterSheet extends DHBaseActorSheet { }, features: { id: 'features', - scrollable: ['.features-sections'], template: 'systems/daggerheart/templates/sheets/actors/character/features.hbs' }, loadout: { id: 'loadout', - scrollable: ['.items-section'], template: 'systems/daggerheart/templates/sheets/actors/character/loadout.hbs' }, inventory: { id: 'inventory', - scrollable: ['.items-section'], template: 'systems/daggerheart/templates/sheets/actors/character/inventory.hbs' }, biography: { id: 'biography', - scrollable: ['.items-section'], template: 'systems/daggerheart/templates/sheets/actors/character/biography.hbs' }, effects: { id: 'effects', - scrollable: ['.effects-sections'], template: 'systems/daggerheart/templates/sheets/actors/character/effects.hbs' } }; @@ -140,48 +116,26 @@ export default class CharacterSheet extends DHBaseActorSheet { element.addEventListener('change', this.updateItemResource.bind(this)); element.addEventListener('click', e => e.stopPropagation()); }); + htmlElement.querySelectorAll('.inventory-item-quantity').forEach(element => { + element.addEventListener('change', this.updateItemQuantity.bind(this)); + }); // Add listener for armor marks input htmlElement.querySelectorAll('.armor-marks-input').forEach(element => { element.addEventListener('change', this.updateArmorMarks.bind(this)); }); - - htmlElement.querySelectorAll('.item-resource.die').forEach(element => { - element.addEventListener('contextmenu', this.lowerResourceDie.bind(this)); - }); - } - - /** @inheritdoc */ - _initializeApplicationOptions(options) { - const applicationOptions = super._initializeApplicationOptions(options); - - if (applicationOptions.document.testUserPermission(game.user, 'LIMITED', { exact: true })) { - applicationOptions.position.width = 360; - applicationOptions.position.height = 'auto'; - } - - return applicationOptions; } /** @inheritDoc */ async _onRender(context, options) { await super._onRender(context, options); - if (!this.document.testUserPermission(game.user, 'LIMITED', { exact: true })) { - this.element - .querySelector('.level-value') - ?.addEventListener('change', event => this.document.updateLevel(Number(event.currentTarget.value))); + this.element + .querySelector('.level-value') + ?.addEventListener('change', event => this.document.updateLevel(Number(event.currentTarget.value))); - const observer = this.document.testUserPermission(game.user, CONST.DOCUMENT_OWNERSHIP_LEVELS.OBSERVER, { - exact: true - }); - if (observer) { - this.element.querySelector('.window-content').classList.add('viewMode'); - } - - this._createFilterMenus(); - this._createSearchFilter(); - } + this._createFilterMenus(); + this._createSearchFilter(); } /* -------------------------------------------- */ @@ -201,17 +155,24 @@ export default class CharacterSheet extends DHBaseActorSheet { return acc; }, {}); - context.resources = Object.keys(this.document.system.resources).reduce((acc, key) => { - acc[key] = this.document.system.resources[key]; - return acc; - }, {}); - const maxResource = Math.max(context.resources.hitPoints.max, context.resources.stress.max); - context.resources.hitPoints.emptyPips = - context.resources.hitPoints.max < maxResource ? maxResource - context.resources.hitPoints.max : 0; - context.resources.stress.emptyPips = - context.resources.stress.max < maxResource ? maxResource - context.resources.stress.max : 0; + context.inventory = { + currency: { + title: game.i18n.localize('DAGGERHEART.CONFIG.Gold.title'), + coins: game.i18n.localize('DAGGERHEART.CONFIG.Gold.coins'), + handfuls: game.i18n.localize('DAGGERHEART.CONFIG.Gold.handfuls'), + bags: game.i18n.localize('DAGGERHEART.CONFIG.Gold.bags'), + chests: game.i18n.localize('DAGGERHEART.CONFIG.Gold.chests') + } + }; - context.beastformActive = this.document.effects.find(x => x.type === 'beastform'); + const homebrewCurrency = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).currency; + if (homebrewCurrency.enabled) { + context.inventory.currency = homebrewCurrency; + } + + if (context.inventory.length === 0) { + context.inventory = Array(1).fill(Array(5).fill([])); + } return context; } @@ -249,7 +210,7 @@ export default class CharacterSheet extends DHBaseActorSheet { * @protected */ async _prepareLoadoutContext(context, _options) { - context.cardView = game.user.getFlag(CONFIG.DH.id, CONFIG.DH.FLAGS.displayDomainCardsAsCard); + context.cardView = !game.user.getFlag(CONFIG.DH.id, CONFIG.DH.FLAGS.displayDomainCardsAsList); } /** @@ -319,40 +280,6 @@ export default class CharacterSheet extends DHBaseActorSheet { ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.loadoutMaxReached')); } }, - { - name: 'recall', - icon: 'fa-solid fa-bolt-lightning', - condition: target => { - const doc = getDocFromElementSync(target); - return doc && doc.system.inVault; - }, - callback: async (target, event) => { - const doc = await getDocFromElement(target); - const actorLoadout = doc.actor.system.loadoutSlot; - if (!actorLoadout.available) { - ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.loadoutMaxReached')); - return; - } - if (doc.system.recallCost == 0) { - return doc.update({ 'system.inVault': false }); - } - const type = 'effect'; - const cls = game.system.api.models.actions.actionsTypes[type]; - const action = new cls({ - ...cls.getSourceConfig(doc.system), - type: type, - chatDisplay: false, - cost: [{ - key: 'stress', - value: doc.system.recallCost - }] - }, { parent: doc.system }); - const config = await action.use(event); - if (config) { - return doc.update({ 'system.inVault': false }); - } - } - }, { name: 'toVault', icon: 'fa-solid fa-arrow-down', @@ -624,6 +551,14 @@ export default class CharacterSheet extends DHBaseActorSheet { this.render(); } + async updateItemQuantity(event) { + const item = await getDocFromElement(event.currentTarget); + if (!item) return; + + await item.update({ 'system.quantity': event.currentTarget.value }); + this.render(); + } + async updateArmorMarks(event) { const armor = this.document.system.armor; if (!armor) return; @@ -651,14 +586,7 @@ export default class CharacterSheet extends DHBaseActorSheet { if (!value || !subclass) return ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.missingClassOrSubclass')); - new CharacterLevelup(this.document).render({ force: true }); - } - - /** - * Opens the charater level management window in viewMode. - */ - static #viewLevelups() { - new LevelupViewMode(this.document).render({ force: true }); + new DhCharacterlevelUp(this.document).render({ force: true }); } /** @@ -677,6 +605,7 @@ export default class CharacterSheet extends DHBaseActorSheet { const { key } = button.dataset; const presets = { + compendium: 'daggerheart', folder: key, filter: key === 'subclasses' @@ -692,7 +621,7 @@ export default class CharacterSheet extends DHBaseActorSheet { } }; - ui.compendiumBrowser.open(presets); + return new ItemBrowser({ presets }).render({ force: true }); } /** @@ -710,21 +639,41 @@ export default class CharacterSheet extends DHBaseActorSheet { roll: { trait: button.dataset.attribute }, - hasRoll: true, - actionType: 'action', + hasRoll: true + }; + const result = await this.document.diceRoll({ + ...config, headerTitle: `${game.i18n.localize('DAGGERHEART.GENERAL.dualityRoll')}: ${this.actor.name}`, title: game.i18n.format('DAGGERHEART.UI.Chat.dualityRoll.abilityCheckTitle', { ability: abilityLabel }) - }; - const result = await this.document.diceRoll(config); + }); - /* This could be avoided by baking config.costs into config.resourceUpdates. Didn't feel like messing with it at the time */ - const costResources = result.costs - .filter(x => x.enabled) - .map(cost => ({ ...cost, value: -cost.value, total: -cost.total })); - config.resourceUpdates.addResources(costResources); - await config.resourceUpdates.updateResources(); + this.consumeResource(result?.costs); + } + + // Remove when Action Refactor part #2 done + async consumeResource(costs) { + if (!costs?.length) return; + const usefulResources = { + ...foundry.utils.deepClone(this.actor.system.resources), + fear: { + value: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear), + max: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).maxFear, + reversed: false + } + }; + const resources = game.system.api.fields.ActionFields.CostField.getRealCosts(costs).map(c => { + const resource = usefulResources[c.key]; + return { + key: c.key, + value: (c.total ?? c.value) * (resource.isReversed ? 1 : -1), + target: resource.target, + keyIsID: resource.keyIsID + }; + }); + + await this.actor.modifyResource(resources); } //TODO: redo toggleEquipItem method @@ -769,42 +718,11 @@ export default class CharacterSheet extends DHBaseActorSheet { * @type {ApplicationClickAction} */ static async #toggleLoadoutView(_, button) { - const newAbilityView = button.dataset.value === 'true'; - await game.user.setFlag(CONFIG.DH.id, CONFIG.DH.FLAGS.displayDomainCardsAsCard, newAbilityView); + const newAbilityView = button.dataset.value !== 'true'; + await game.user.setFlag(CONFIG.DH.id, CONFIG.DH.FLAGS.displayDomainCardsAsList, newAbilityView); this.render(); } - /** - * Toggles hitpoint resource value. - * @type {ApplicationClickAction} - */ - static async #toggleHitPoints(_, button) { - const hitPointsValue = Number.parseInt(button.dataset.value); - const newValue = - this.document.system.resources.hitPoints.value >= hitPointsValue ? hitPointsValue - 1 : hitPointsValue; - await this.document.update({ 'system.resources.hitPoints.value': newValue }); - } - - /** - * Toggles stress resource value. - * @type {ApplicationClickAction} - */ - static async #toggleStress(_, button) { - const StressValue = Number.parseInt(button.dataset.value); - const newValue = this.document.system.resources.stress.value >= StressValue ? StressValue - 1 : StressValue; - await this.document.update({ 'system.resources.stress.value': newValue }); - } - - /** - * Toggles ArmorScore resource value. - * @type {ApplicationClickAction} - */ - static async #toggleArmor(_, button, element) { - const ArmorValue = Number.parseInt(button.dataset.value); - const newValue = this.document.system.armor.system.marks.value >= ArmorValue ? ArmorValue - 1 : ArmorValue; - await this.document.system.armor.update({ 'system.marks.value': newValue }); - } - /** * Toggles a hope resource value. * @type {ApplicationClickAction} @@ -844,6 +762,13 @@ export default class CharacterSheet extends DHBaseActorSheet { }); } + /** + * Temp + */ + static async #tempBrowser(_, target) { + new ItemBrowser().render({ force: true }); + } + /** * Handle the roll values of resource dice. * @type {ApplicationClickAction} @@ -863,71 +788,6 @@ export default class CharacterSheet extends DHBaseActorSheet { }); } - /** */ - static #advanceResourceDie(_, target) { - this.updateResourceDie(target, true); - } - - lowerResourceDie(event) { - event.preventDefault(); - event.stopPropagation(); - this.updateResourceDie(event.target, false); - } - - async updateResourceDie(target, advance) { - const item = await getDocFromElement(target); - if (!item) return; - - const advancedValue = item.system.resource.value + (advance ? 1 : -1); - await item.update({ - 'system.resource.value': Math.min(advancedValue, Number(item.system.resource.dieFaces.split('d')[1])) - }); - } - - /** - * - */ - static async #cancelBeastform(_, target) { - const item = await getDocFromElement(target); - if (!item) return; - game.system.api.fields.ActionFields.BeastformField.handleActiveTransformations.call(item); - } - - static async #viewParty(_, target) { - const parties = this.document.parties; - if (parties.size <= 1) { - parties.first()?.sheet.render({ force: true }); - return; - } - - const buttons = parties.map((p) => { - const button = document.createElement("button"); - button.type = "button"; - button.classList.add("plain"); - const img = document.createElement("img"); - img.src = p.img; - button.append(img); - const name = document.createElement("span"); - name.textContent = p.name; - button.append(name); - button.addEventListener("click", () => { - p.sheet?.render({ force: true }); - game.tooltip.dismissLockedTooltips(); - }); - return button; - }); - - const html = document.createElement("div"); - html.classList.add("party-list"); - html.append(...buttons); - - game.tooltip.dismissLockedTooltips(); - game.tooltip.activate(target, { - html, - locked: true, - }) - } - /** * Open the downtime application. * @type {ApplicationClickAction} @@ -938,48 +798,40 @@ export default class CharacterSheet extends DHBaseActorSheet { }); } - /** @inheritdoc */ async _onDragStart(event) { - const inventoryItem = event.currentTarget.closest('.inventory-item'); - if (inventoryItem) { - event.dataTransfer.setDragImage(inventoryItem.querySelector('img'), 60, 0); - } + const item = await getDocFromElement(event.target); + + const dragData = { + type: item.documentName, + uuid: item.uuid + }; + + event.dataTransfer.setData('text/plain', JSON.stringify(dragData)); + super._onDragStart(event); } - async _onDropItem(event, item) { - if (this.document.uuid === item.parent?.uuid) { - return super._onDropItem(event, item); + async _onDrop(event) { + // Prevent event bubbling to avoid duplicate handling + event.preventDefault(); + event.stopPropagation(); + + super._onDrop(event); + this._onDropItem(event, TextEditor.getDragEventData(event)); + } + + async _onDropItem(event, data) { + const item = await Item.implementation.fromDropData(data); + const itemData = item.toObject(); + + if (item.type === 'domainCard' && !this.document.system.loadoutSlot.available) { + itemData.system.inVault = true; } - if (item.type === 'beastform') { - if (this.document.effects.find(x => x.type === 'beastform')) { - return ui.notifications.warn( - game.i18n.localize('DAGGERHEART.UI.Notifications.beastformAlreadyApplied') - ); - } + if (this.document.uuid === item.parent?.uuid) return this._onSortItem(event, itemData); + const createdItem = await this._onDropItemCreate(itemData); - const itemData = item.toObject(); - const data = await game.system.api.data.items.DHBeastform.getWildcardImage(this.document, itemData); - if (!data?.selectedImage) { - return; - } else if (data) { - if (data.usesDynamicToken) itemData.system.tokenRingImg = data.selectedImage; - else itemData.system.tokenImg = data.selectedImage; - return await this._onDropItemCreate(itemData); - } - } - - // If this is a type that gets deleted, delete it first (but still defer to super) - const typesThatReplace = ['ancestry', 'community']; - if (typesThatReplace.includes(item.type)) { - await this.document.deleteEmbeddedDocuments( - 'Item', - this.document.items.filter(x => x.type === item.type).map(x => x.id) - ); - } - - return super._onDropItem(event, item); + return createdItem; } async _onDropItemCreate(itemData, event) { diff --git a/module/applications/sheets/actors/companion.mjs b/module/applications/sheets/actors/companion.mjs index 9b85f622..1105131d 100644 --- a/module/applications/sheets/actors/companion.mjs +++ b/module/applications/sheets/actors/companion.mjs @@ -8,23 +8,14 @@ export default class DhCompanionSheet extends DHBaseActorSheet { classes: ['actor', 'companion'], position: { width: 340 }, actions: { - toggleStress: DhCompanionSheet.#toggleStress, - actionRoll: DhCompanionSheet.#actionRoll, levelManagement: DhCompanionSheet.#levelManagement } }; static PARTS = { - limited: { - template: 'systems/daggerheart/templates/sheets/actors/companion/limited.hbs', - scrollable: ['.limited-container'] - }, header: { template: 'systems/daggerheart/templates/sheets/actors/companion/header.hbs' }, details: { template: 'systems/daggerheart/templates/sheets/actors/companion/details.hbs' }, - effects: { - template: 'systems/daggerheart/templates/sheets/actors/companion/effects.hbs', - scrollable: ['.effects-sections'] - } + effects: { template: 'systems/daggerheart/templates/sheets/actors/companion/effects.hbs' } }; /* -------------------------------------------- */ @@ -51,61 +42,6 @@ export default class DhCompanionSheet extends DHBaseActorSheet { /* Application Clicks Actions */ /* -------------------------------------------- */ - /** - * Toggles stress resource value. - * @type {ApplicationClickAction} - */ - static async #toggleStress(_, button) { - const StressValue = Number.parseInt(button.dataset.value); - const newValue = this.document.system.resources.stress.value >= StressValue ? StressValue - 1 : StressValue; - await this.document.update({ 'system.resources.stress.value': newValue }); - } - - /** - * - */ - static async #actionRoll(event) { - const partner = this.actor.system.partner; - const config = { - event, - title: `${game.i18n.localize('DAGGERHEART.GENERAL.Roll.action')}: ${this.actor.name}`, - headerTitle: `Companion ${game.i18n.localize('DAGGERHEART.GENERAL.Roll.action')}`, - roll: { - trait: partner.system.spellcastModifierTrait?.key - }, - hasRoll: true, - data: partner.getRollData() - }; - - const result = await partner.diceRoll(config); - this.consumeResource(result?.costs); - } - - // Remove when Action Refactor part #2 done - async consumeResource(costs) { - if (!costs?.length) return; - - const partner = this.actor.system.partner; - const usefulResources = { - ...foundry.utils.deepClone(partner.system.resources), - fear: { - value: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear), - max: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).maxFear, - reversed: false - } - }; - const resources = game.system.api.fields.ActionFields.CostField.getRealCosts(costs).map(c => { - const resource = usefulResources[c.key]; - return { - key: c.key, - value: (c.total ?? c.value) * (resource.isReversed ? 1 : -1), - target: resource.target - }; - }); - - await partner.modifyResource(resources); - } - /** * Opens the companions level management window. * @type {ApplicationClickAction} diff --git a/module/applications/sheets/actors/environment.mjs b/module/applications/sheets/actors/environment.mjs index f8ff74a6..aa2759a2 100644 --- a/module/applications/sheets/actors/environment.mjs +++ b/module/applications/sheets/actors/environment.mjs @@ -1,4 +1,3 @@ -import { getDocFromElement } from '../../../helpers/utils.mjs'; import DHBaseActorSheet from '../api/base-actor.mjs'; /**@typedef {import('@client/applications/_types.mjs').ApplicationClickAction} ApplicationClickAction */ @@ -9,44 +8,21 @@ export default class DhpEnvironment extends DHBaseActorSheet { classes: ['environment'], position: { width: 500, - height: 740 + height: 725 }, window: { - resizable: true, - controls: [ - { - icon: 'fa-solid fa-signature', - label: 'DAGGERHEART.UI.Tooltip.configureAttribution', - action: 'editAttribution' - } - ] + resizable: true }, - actions: { - toggleResourceDice: DhpEnvironment.#toggleResourceDice, - handleResourceDice: DhpEnvironment.#handleResourceDice - }, - dragDrop: [ - { - dragSelector: '[data-item-id][draggable="true"], [data-item-id] [draggable="true"]', - dropSelector: null - } - ] + actions: {}, + dragDrop: [{ dragSelector: '.action-section .inventory-item', dropSelector: null }] }; /**@override */ static PARTS = { - limited: { - template: 'systems/daggerheart/templates/sheets/actors/environment/limited.hbs', - scrollable: ['.limited-container'] - }, header: { template: 'systems/daggerheart/templates/sheets/actors/environment/header.hbs' }, - features: { - template: 'systems/daggerheart/templates/sheets/actors/environment/features.hbs', - scrollable: ['.feature-section'] - }, + features: { template: 'systems/daggerheart/templates/sheets/actors/environment/features.hbs' }, potentialAdversaries: { - template: 'systems/daggerheart/templates/sheets/actors/environment/potentialAdversaries.hbs', - scrollable: ['.items-section'] + template: 'systems/daggerheart/templates/sheets/actors/environment/potentialAdversaries.hbs' }, notes: { template: 'systems/daggerheart/templates/sheets/actors/environment/notes.hbs' } }; @@ -60,28 +36,12 @@ export default class DhpEnvironment extends DHBaseActorSheet { } }; - /** @inheritdoc */ - _initializeApplicationOptions(options) { - const applicationOptions = super._initializeApplicationOptions(options); - - if (applicationOptions.document.testUserPermission(game.user, 'LIMITED', { exact: true })) { - applicationOptions.position.width = 360; - applicationOptions.position.height = 'auto'; - } - - return applicationOptions; - } - /**@inheritdoc */ async _preparePartContext(partId, context, options) { context = await super._preparePartContext(partId, context, options); switch (partId) { case 'header': await this._prepareHeaderContext(context, options); - - break; - case 'features': - await this._prepareFeaturesContext(context, options); break; case 'notes': await this._prepareNotesContext(context, options); @@ -118,22 +78,6 @@ export default class DhpEnvironment extends DHBaseActorSheet { } } - /** - * Prepare render context for the features part. - * @param {ApplicationRenderContext} context - * @param {ApplicationRenderOptions} options - * @returns {Promise} - * @protected - */ - async _prepareFeaturesContext(context, _options) { - const featureForms = ['passive', 'action', 'reaction']; - context.features = this.document.system.features.sort((a, b) => - a.system.featureForm !== b.system.featureForm - ? featureForms.indexOf(a.system.featureForm) - featureForms.indexOf(b.system.featureForm) - : a.sort - b.sort - ); - } - /** * Prepare render context for the Header part. * @param {ApplicationRenderContext} context @@ -154,51 +98,12 @@ export default class DhpEnvironment extends DHBaseActorSheet { /* -------------------------------------------- */ async _onDragStart(event) { - const item = event.currentTarget.closest('.inventory-item[data-type=adversary]'); + const item = event.currentTarget.closest('.inventory-item'); + if (item) { const adversaryData = { type: 'Actor', uuid: item.dataset.itemUuid }; event.dataTransfer.setData('text/plain', JSON.stringify(adversaryData)); event.dataTransfer.setDragImage(item, 60, 0); - } else { - return super._onDragStart(event); } } - - /* -------------------------------------------- */ - /* Application Clicks Actions */ - /* -------------------------------------------- */ - - /** - * Toggle the used state of a resource dice. - * @type {ApplicationClickAction} - */ - static async #toggleResourceDice(event, target) { - const item = await getDocFromElement(target); - - const { dice } = event.target.closest('.item-resource').dataset; - const diceState = item.system.resource.diceStates[dice]; - - await item.update({ - [`system.resource.diceStates.${dice}.used`]: diceState ? !diceState.used : true - }); - } - - /** - * Handle the roll values of resource dice. - * @type {ApplicationClickAction} - */ - static async #handleResourceDice(_, target) { - const item = await getDocFromElement(target); - if (!item) return; - - const rollValues = await game.system.api.applications.dialogs.ResourceDiceDialog.create(item, this.document); - if (!rollValues) return; - - await item.update({ - 'system.resource.diceStates': rollValues.reduce((acc, state, index) => { - acc[index] = { value: state.value, used: state.used }; - return acc; - }, {}) - }); - } } diff --git a/module/applications/sheets/actors/party.mjs b/module/applications/sheets/actors/party.mjs deleted file mode 100644 index d78519cb..00000000 --- a/module/applications/sheets/actors/party.mjs +++ /dev/null @@ -1,479 +0,0 @@ -import DHBaseActorSheet from '../api/base-actor.mjs'; -import { getDocFromElement } from '../../../helpers/utils.mjs'; -import { ItemBrowser } from '../../ui/itemBrowser.mjs'; -import FilterMenu from '../../ux/filter-menu.mjs'; -import DaggerheartMenu from '../../sidebar/tabs/daggerheartMenu.mjs'; -import { socketEvent } from '../../../systemRegistration/socket.mjs'; -import GroupRollDialog from '../../dialogs/group-roll-dialog.mjs'; -import DhpActor from '../../../documents/actor.mjs'; -import DHItem from '../../../documents/item.mjs'; - -export default class Party extends DHBaseActorSheet { - constructor(options) { - super(options); - - this.refreshSelections = DaggerheartMenu.defaultRefreshSelections(); - } - - /**@inheritdoc */ - static DEFAULT_OPTIONS = { - classes: ['party'], - position: { - width: 550, - height: 900 - }, - window: { - resizable: true - }, - actions: { - deletePartyMember: Party.#deletePartyMember, - deleteItem: Party.#deleteItem, - toggleHope: Party.#toggleHope, - toggleHitPoints: Party.#toggleHitPoints, - toggleStress: Party.#toggleStress, - toggleArmorSlot: Party.#toggleArmorSlot, - tempBrowser: Party.#tempBrowser, - refeshActions: Party.#refeshActions, - triggerRest: Party.#triggerRest, - tagTeamRoll: Party.#tagTeamRoll, - groupRoll: Party.#groupRoll, - selectRefreshable: DaggerheartMenu.selectRefreshable, - refreshActors: DaggerheartMenu.refreshActors - }, - dragDrop: [{ dragSelector: '[data-item-id]', dropSelector: null }] - }; - - /**@override */ - static PARTS = { - header: { template: 'systems/daggerheart/templates/sheets/actors/party/header.hbs' }, - tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' }, - partyMembers: { template: 'systems/daggerheart/templates/sheets/actors/party/party-members.hbs' }, - resources: { - template: 'systems/daggerheart/templates/sheets/actors/party/resources.hbs', - scrollable: [''] - }, - /* NOT YET IMPLEMENTED */ - // projects: { - // template: 'systems/daggerheart/templates/sheets/actors/party/projects.hbs', - // scrollable: [''] - // }, - inventory: { - template: 'systems/daggerheart/templates/sheets/actors/party/inventory.hbs', - scrollable: ['.tab.inventory .items-section'] - }, - notes: { template: 'systems/daggerheart/templates/sheets/actors/party/notes.hbs' } - }; - - /** @inheritdoc */ - static TABS = { - primary: { - tabs: [ - { id: 'partyMembers' }, - { id: 'resources' }, - /* NOT YET IMPLEMENTED */ - // { id: 'projects' }, - { id: 'inventory' }, - { id: 'notes' } - ], - initial: 'partyMembers', - labelPrefix: 'DAGGERHEART.GENERAL.Tabs' - } - }; - - static ALLOWED_ACTOR_TYPES = ['character', 'companion', 'adversary']; - static DICE_ROLL_ACTOR_TYPES = ['character']; - - async _onRender(context, options) { - await super._onRender(context, options); - this._createFilterMenus(); - this._createSearchFilter(); - } - - /* -------------------------------------------- */ - /* Prepare Context */ - /* -------------------------------------------- */ - - async _preparePartContext(partId, context, options) { - context = await super._preparePartContext(partId, context, options); - switch (partId) { - case 'header': - await this._prepareHeaderContext(context, options); - break; - case 'notes': - await this._prepareNotesContext(context, options); - break; - } - return context; - } - - /** - * Prepare render context for the Header part. - * @param {ApplicationRenderContext} context - * @param {ApplicationRenderOptions} options - * @returns {Promise} - * @protected - */ - async _prepareHeaderContext(context, _options) { - const { system } = this.document; - const { TextEditor } = foundry.applications.ux; - - context.description = await TextEditor.implementation.enrichHTML(system.description, { - secrets: this.document.isOwner, - relativeTo: this.document - }); - } - - /** - * Prepare render context for the Biography part. - * @param {ApplicationRenderContext} context - * @param {ApplicationRenderOptions} options - * @returns {Promise} - * @protected - */ - async _prepareNotesContext(context, _options) { - const { system } = this.document; - const { TextEditor } = foundry.applications.ux; - - const paths = { - notes: 'notes' - }; - - for (const [key, path] of Object.entries(paths)) { - const value = foundry.utils.getProperty(system, path); - context[key] = { - field: system.schema.getField(path), - value, - enriched: await TextEditor.implementation.enrichHTML(value, { - secrets: this.document.isOwner, - relativeTo: this.document - }) - }; - } - } - - /** - * Toggles a hope resource value. - * @type {ApplicationClickAction} - */ - static async #toggleHope(_, target) { - const hopeValue = Number.parseInt(target.dataset.value); - const actor = await foundry.utils.fromUuid(target.dataset.actorId); - const newValue = actor.system.resources.hope.value >= hopeValue ? hopeValue - 1 : hopeValue; - await actor.update({ 'system.resources.hope.value': newValue }); - this.render(); - } - - /** - * Toggles a hp resource value. - * @type {ApplicationClickAction} - */ - static async #toggleHitPoints(_, target) { - const hitPointsValue = Number.parseInt(target.dataset.value); - const actor = await foundry.utils.fromUuid(target.dataset.actorId); - const newValue = actor.system.resources.hitPoints.value >= hitPointsValue ? hitPointsValue - 1 : hitPointsValue; - await actor.update({ 'system.resources.hitPoints.value': newValue }); - this.render(); - } - - /** - * Toggles a stress resource value. - * @type {ApplicationClickAction} - */ - static async #toggleStress(_, target) { - const stressValue = Number.parseInt(target.dataset.value); - const actor = await foundry.utils.fromUuid(target.dataset.actorId); - const newValue = actor.system.resources.stress.value >= stressValue ? stressValue - 1 : stressValue; - await actor.update({ 'system.resources.stress.value': newValue }); - this.render(); - } - - /** - * Toggles a armor slot resource value. - * @type {ApplicationClickAction} - */ - static async #toggleArmorSlot(_, target, element) { - const armorItem = await foundry.utils.fromUuid(target.dataset.itemUuid); - const armorValue = Number.parseInt(target.dataset.value); - const newValue = armorItem.system.marks.value >= armorValue ? armorValue - 1 : armorValue; - await armorItem.update({ 'system.marks.value': newValue }); - this.render(); - } - - /** - * Opens Compedium Browser - */ - static async #tempBrowser(_, target) { - new ItemBrowser().render({ force: true }); - } - - static async #refeshActions() { - const confirmed = await foundry.applications.api.DialogV2.confirm({ - window: { - title: 'New Section', - icon: 'fa-solid fa-campground' - }, - content: await foundry.applications.handlebars.renderTemplate( - 'systems/daggerheart/templates/sidebar/daggerheart-menu/main.hbs', - { - refreshables: DaggerheartMenu.defaultRefreshSelections() - } - ), - classes: ['daggerheart', 'dialog', 'dh-style', 'tab', 'sidebar-tab', 'daggerheartMenu-sidebar'] - }); - - if (!confirmed) return; - } - - static async #triggerRest(_, button) { - const confirmed = await foundry.applications.api.DialogV2.confirm({ - window: { - title: game.i18n.localize(`DAGGERHEART.APPLICATIONS.Downtime.${button.dataset.type}.title`), - icon: button.dataset.type === 'shortRest' ? 'fa-solid fa-utensils' : 'fa-solid fa-bed' - }, - content: 'This will trigger a dialog to players make their downtime moves, are you sure?', - classes: ['daggerheart', 'dialog', 'dh-style'] - }); - - if (!confirmed) return; - - this.document.system.partyMembers.forEach(actor => { - game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.DowntimeTrigger, - data: { - actorId: actor.uuid, - downtimeType: button.dataset.type - } - }); - }); - } - - static async downtimeMoveQuery({ actorId, downtimeType }) { - const actor = await foundry.utils.fromUuid(actorId); - if (!actor || !actor?.isOwner) reject(); - new game.system.api.applications.dialogs.Downtime(actor, downtimeType === 'shortRest').render({ - force: true - }); - } - - static async #tagTeamRoll() { - new game.system.api.applications.dialogs.TagTeamDialog( - this.document.system.partyMembers.filter(x => Party.DICE_ROLL_ACTOR_TYPES.includes(x.type)) - ).render({ - force: true - }); - } - - static async #groupRoll(_params) { - new GroupRollDialog( - this.document.system.partyMembers.filter(x => Party.DICE_ROLL_ACTOR_TYPES.includes(x.type)) - ).render({ force: true }); - } - - /** - * Get the set of ContextMenu options for Consumable and Loot. - * @returns {import('@client/applications/ux/context-menu.mjs').ContextMenuEntry[]} - The Array of context options passed to the ContextMenu instance - * @this {CharacterSheet} - * @protected - */ - static #getItemContextOptions() { - return this._getContextMenuCommonOptions.call(this, { usable: true, toChat: true }); - } - /* -------------------------------------------- */ - /* Filter Tracking */ - /* -------------------------------------------- */ - - /** - * The currently active search filter. - * @type {foundry.applications.ux.SearchFilter} - */ - #search = {}; - - /** - * The currently active search filter. - * @type {FilterMenu} - */ - #menu = {}; - - /** - * Tracks which item IDs are currently displayed, organized by filter type and section. - * @type {{ - * inventory: { - * search: Set, - * menu: Set - * }, - * loadout: { - * search: Set, - * menu: Set - * }, - * }} - */ - #filteredItems = { - inventory: { - search: new Set(), - menu: new Set() - }, - loadout: { - search: new Set(), - menu: new Set() - } - }; - - /* -------------------------------------------- */ - /* Search Inputs */ - /* -------------------------------------------- */ - - /** - * Create and initialize search filter instances for the inventory and loadout sections. - * - * Sets up two {@link foundry.applications.ux.SearchFilter} instances: - * - One for the inventory, which filters items in the inventory grid. - * - One for the loadout, which filters items in the loadout/card grid. - * @private - */ - _createSearchFilter() { - //Filters could be a application option if needed - const filters = [ - { - key: 'inventory', - input: 'input[type="search"].search-inventory', - content: '[data-application-part="inventory"] .items-section', - callback: this._onSearchFilterInventory.bind(this) - } - ]; - - for (const { key, input, content, callback } of filters) { - const filter = new foundry.applications.ux.SearchFilter({ - inputSelector: input, - contentSelector: content, - callback - }); - filter.bind(this.element); - this.#search[key] = filter; - } - } - - /** - * Handle invetory items search and filtering. - * @param {KeyboardEvent} event The keyboard input event. - * @param {string} query The input search string. - * @param {RegExp} rgx The regular expression query that should be matched against. - * @param {HTMLElement} html The container to filter items from. - * @protected - */ - async _onSearchFilterInventory(_event, query, rgx, html) { - this.#filteredItems.inventory.search.clear(); - - for (const li of html.querySelectorAll('.inventory-item')) { - const item = await getDocFromElement(li); - const matchesSearch = !query || foundry.applications.ux.SearchFilter.testQuery(rgx, item.name); - if (matchesSearch) this.#filteredItems.inventory.search.add(item.id); - const { menu } = this.#filteredItems.inventory; - li.hidden = !(menu.has(item.id) && matchesSearch); - } - } - - /* -------------------------------------------- */ - /* Filter Menus */ - /* -------------------------------------------- */ - - _createFilterMenus() { - //Menus could be a application option if needed - const menus = [ - { - key: 'inventory', - container: '[data-application-part="inventory"]', - content: '.items-section', - callback: this._onMenuFilterInventory.bind(this), - target: '.filter-button', - filters: FilterMenu.invetoryFilters - } - ]; - - menus.forEach(m => { - const container = this.element.querySelector(m.container); - this.#menu[m.key] = new FilterMenu(container, m.target, m.filters, m.callback, { - contentSelector: m.content - }); - }); - } - - /** - * Callback when filters change - * @param {PointerEvent} event - * @param {HTMLElement} html - * @param {import('../ux/filter-menu.mjs').FilterItem[]} filters - */ - async _onMenuFilterInventory(_event, html, filters) { - this.#filteredItems.inventory.menu.clear(); - - for (const li of html.querySelectorAll('.inventory-item')) { - const item = await getDocFromElement(li); - - const matchesMenu = - filters.length === 0 || filters.some(f => foundry.applications.ux.SearchFilter.evaluateFilter(item, f)); - if (matchesMenu) this.#filteredItems.inventory.menu.add(item.id); - - const { search } = this.#filteredItems.inventory; - li.hidden = !(search.has(item.id) && matchesMenu); - } - } - - /* -------------------------------------------- */ - - async _onDropActor(event, document) { - const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event); - if (document instanceof DhpActor && Party.ALLOWED_ACTOR_TYPES.includes(document.type)) { - const currentMembers = this.document.system.partyMembers.map(x => x.uuid); - if (currentMembers.includes(data.uuid)) { - return ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.duplicateCharacter')); - } - - await this.document.update({ 'system.partyMembers': [...currentMembers, document.uuid] }); - } else { - ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.onlyCharactersInPartySheet')); - } - - return null; - } - - static async #deletePartyMember(event, target) { - const doc = await getDocFromElement(target.closest('.inventory-item')); - - if (!event.shiftKey) { - const confirmed = await foundry.applications.api.DialogV2.confirm({ - window: { - title: game.i18n.format('DAGGERHEART.APPLICATIONS.DeleteConfirmation.title', { - type: game.i18n.localize('TYPES.Actor.adversary'), - name: doc.name - }) - }, - content: game.i18n.format('DAGGERHEART.APPLICATIONS.DeleteConfirmation.text', { name: doc.name }) - }); - - if (!confirmed) return; - } - - const currentMembers = this.document.system.partyMembers.map(x => x.uuid); - const newMemberdList = currentMembers.filter(uuid => uuid !== doc.uuid); - await this.document.update({ 'system.partyMembers': newMemberdList }); - } - - static async #deleteItem(event, target) { - const doc = await getDocFromElement(target.closest('.inventory-item')); - if (!event.shiftKey) { - const confirmed = await foundry.applications.api.DialogV2.confirm({ - window: { - title: game.i18n.format('DAGGERHEART.APPLICATIONS.DeleteConfirmation.title', { - type: game.i18n.localize('TYPES.Actor.party'), - name: doc.name - }) - }, - content: game.i18n.format('DAGGERHEART.APPLICATIONS.DeleteConfirmation.text', { name: doc.name }) - }); - - if (!confirmed) return; - } - - this.document.deleteEmbeddedDocuments('Item', [doc.id]); - } -} diff --git a/module/applications/sheets/api/actor-setting.mjs b/module/applications/sheets/api/actor-setting.mjs index d8cfb40f..79aa1c37 100644 --- a/module/applications/sheets/api/actor-setting.mjs +++ b/module/applications/sheets/api/actor-setting.mjs @@ -44,8 +44,9 @@ export default class DHBaseActorSettings extends DHApplicationMixin(DocumentShee const context = await super._prepareContext(options); context.isNPC = this.actor.isNPC; - if (context.systemFields.attack) + if (context.systemFields.attack) { context.systemFields.attack.fields = this.actor.system.attack.schema.fields; + } return context; } diff --git a/module/applications/sheets/api/application-mixin.mjs b/module/applications/sheets/api/application-mixin.mjs index d25a1a4e..bdcee27a 100644 --- a/module/applications/sheets/api/application-mixin.mjs +++ b/module/applications/sheets/api/application-mixin.mjs @@ -1,5 +1,6 @@ const { HandlebarsApplicationMixin } = foundry.applications.api; import { getDocFromElement, getDocFromElementSync, tagifyElement } from '../../../helpers/utils.mjs'; +import { ItemBrowser } from '../../ui/itemBrowser.mjs'; const typeSettingsMap = { character: 'extendCharacterDescriptions', @@ -84,8 +85,6 @@ export default function DHApplicationMixin(Base) { this._dragDrop = this._createDragDropHandlers(); } - #nonHeaderAttribution = ['environment', 'ancestry', 'community', 'domainCard']; - /** * The default options for the sheet. * @type {DHSheetV2Configuration} @@ -99,12 +98,10 @@ export default function DHApplicationMixin(Base) { deleteDoc: DHSheetV2.#deleteDoc, toChat: DHSheetV2.#toChat, useItem: DHSheetV2.#useItem, - viewItem: DHSheetV2.#viewItem, toggleEffect: DHSheetV2.#toggleEffect, toggleExtended: DHSheetV2.#toggleExtended, addNewItem: DHSheetV2.#addNewItem, - browseItem: DHSheetV2.#browseItem, - editAttribution: DHSheetV2.#editAttribution + browseItem: DHSheetV2.#browseItem }, contextMenus: [ { @@ -128,43 +125,6 @@ export default function DHApplicationMixin(Base) { tagifyConfigs: [] }; - /**@inheritdoc */ - async _renderFrame(options) { - const frame = await super._renderFrame(options); - - const hideAttribution = game.settings.get( - CONFIG.DH.id, - CONFIG.DH.SETTINGS.gameSettings.appearance - ).hideAttribution; - const headerAttribution = !this.#nonHeaderAttribution.includes(this.document.type); - if (!hideAttribution && this.document.system.metadata.hasAttribution && headerAttribution) { - const { source, page } = this.document.system.attribution; - const attribution = [source, page ? `pg ${page}.` : null].filter(x => x).join('. '); - const element = ``; - this.window.controls.insertAdjacentHTML('beforebegin', element); - } - - return frame; - } - - /** - * Refresh the custom parts of the application frame - */ - refreshFrame() { - const hideAttribution = game.settings.get( - CONFIG.DH.id, - CONFIG.DH.SETTINGS.gameSettings.appearance - ).hideAttribution; - const headerAttribution = !this.#nonHeaderAttribution.includes(this.document.type); - if (!hideAttribution && this.document.system.metadata.hasAttribution && headerAttribution) { - const { source, page } = this.document.system.attribution; - const attribution = [source, page ? `pg ${page}.` : null].filter(x => x).join('. '); - - const label = this.window.header.querySelector('.attribution-header-label'); - label.innerHTML = attribution; - } - } - /** * Related documents that should cause a rerender of this application when updated. */ @@ -178,79 +138,6 @@ export default function DHApplicationMixin(Base) { _attachPartListeners(partId, htmlElement, options) { super._attachPartListeners(partId, htmlElement, options); this._dragDrop.forEach(d => d.bind(htmlElement)); - - // Handle delta inputs - for (const deltaInput of htmlElement.querySelectorAll('input[data-allow-delta]')) { - deltaInput.dataset.numValue = deltaInput.value; - deltaInput.inputMode = 'numeric'; - - const handleUpdate = (delta = 0) => { - const min = Number(deltaInput.min) || 0; - const max = Number(deltaInput.max) || Infinity; - const current = Number(deltaInput.dataset.numValue); - const rawNumber = Number(deltaInput.value); - if (Number.isNaN(rawNumber)) { - deltaInput.value = delta ? Math.clamp(current + delta, min, max) : current; - return; - } - - const newValue = - deltaInput.value.startsWith('+') || deltaInput.value.startsWith('-') - ? Math.clamp(current + rawNumber + delta, min, max) - : Math.clamp(rawNumber + delta, min, max); - deltaInput.value = deltaInput.dataset.numValue = newValue; - }; - - // Force valid characters while inputting - deltaInput.addEventListener('input', () => { - deltaInput.value = /[+=\-]?\d*/.exec(deltaInput.value)?.at(0) ?? deltaInput.value; - }); - - // Recreate Keyup/Keydown support - deltaInput.addEventListener('keydown', event => { - const step = event.key === 'ArrowUp' ? 1 : event.key === 'ArrowDown' ? -1 : 0; - if (step !== 0) { - handleUpdate(step); - deltaInput.dispatchEvent(new Event("change", { bubbles: true })); - } - }); - - // Mousewheel while focused support - deltaInput.addEventListener( - 'wheel', - event => { - if (deltaInput === document.activeElement) { - event.preventDefault(); - handleUpdate(Math.sign(-1 * event.deltaY)); - deltaInput.dispatchEvent(new Event("change", { bubbles: true })); - } - }, - { passive: false } - ); - - deltaInput.addEventListener('change', () => { - handleUpdate(); - }); - } - - // Handle contenteditable - for (const input of htmlElement.querySelectorAll('[contenteditable][data-property]')) { - const property = input.dataset.property; - input.addEventListener("blur", () => { - const selection = document.getSelection(); - if (input.contains(selection.anchorNode)) { - selection.empty(); - } - this.document.update({ [property]: input.textContent }); - }); - - input.addEventListener("keydown", event => { - if (event.key === "Enter") input.blur(); - }); - - // Chrome sometimes add
, which aren't a problem for the value but are for the placeholder - input.addEventListener("input", () => input.querySelectorAll("br").forEach((i) => i.remove())); - } } /**@inheritdoc */ @@ -277,19 +164,11 @@ export default function DHApplicationMixin(Base) { this.relatedDocs.filter(doc => doc).map(doc => delete doc.apps[this.id]); } - /** @inheritdoc */ - async _renderHTML(context, options) { - const rendered = await super._renderHTML(context, options); - for (const result of Object.values(rendered)) { - await this.#prepareInventoryDescription(result); - } - return rendered; - } - /**@inheritdoc */ async _onRender(context, options) { await super._onRender(context, options); this._createTagifyElements(this.options.tagifyConfigs); + await this.#prepareInventoryDescription(context); } /* -------------------------------------------- */ @@ -297,8 +176,8 @@ export default function DHApplicationMixin(Base) { /* -------------------------------------------- */ /**@inheritdoc */ - _preSyncPartState(partId, newElement, priorElement, state) { - super._preSyncPartState(partId, newElement, priorElement, state); + _syncPartState(partId, newElement, priorElement, state) { + super._syncPartState(partId, newElement, priorElement, state); for (const el of priorElement.querySelectorAll('.extensible.extended')) { const { actionId, itemUuid } = el.parentElement.dataset; const selector = `${actionId ? `[data-action-id="${actionId}"]` : `[data-item-uuid="${itemUuid}"]`} .extensible`; @@ -395,11 +274,10 @@ export default function DHApplicationMixin(Base) { _onDrop(event) { event.stopPropagation(); const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event); - if (data.type === 'ActiveEffect' && data.fromInternal !== this.document.uuid) { + if (data.fromInternal === this.document.uuid) return; + + if (data.type === 'ActiveEffect') { this.document.createEmbeddedDocuments('ActiveEffect', [data.data]); - } else { - // Fallback to super, but note that item sheets do not have this function - return super._onDrop?.(event); } } @@ -504,9 +382,7 @@ export default function DHApplicationMixin(Base) { callback: async (target, event) => { const doc = await getDocFromElement(target), action = doc?.system?.attack ?? doc; - const config = action.prepareConfig(event); - config.hasRoll = false; - return action && action.workflow.get('damage').execute(config, null, true); + return action && action.use(event, { byPassRoll: true }); } }); @@ -525,7 +401,7 @@ export default function DHApplicationMixin(Base) { options.push({ name: 'DAGGERHEART.APPLICATIONS.ContextMenu.sendToChat', icon: 'fa-solid fa-message', - callback: async target => (await getDocFromElement(target)).toChat(this.document.uuid) + callback: async target => (await getDocFromElement(target)).toChat(this.document.id) }); if (deletable) @@ -566,12 +442,11 @@ export default function DHApplicationMixin(Base) { /** * Prepares and enriches an inventory item or action description for display. - * @param {HTMLElement} element the element to enrich the inventory items of * @returns {Promise} */ - async #prepareInventoryDescription(element) { + async #prepareInventoryDescription(context) { // Get all inventory item elements with a data-item-uuid attribute - const inventoryItems = element.querySelectorAll('.inventory-item[data-item-uuid]'); + const inventoryItems = this.element.querySelectorAll('.inventory-item[data-item-uuid]'); for (const el of inventoryItems) { // Get the doc uuid from the element const { itemUuid } = el?.dataset || {}; @@ -662,27 +537,28 @@ export default function DHApplicationMixin(Base) { static async #browseItem(event, target) { const type = target.dataset.compendium ?? target.dataset.type; - const presets = { - render: { - noFolder: true - } - }; + const presets = {}; switch (type) { case 'loot': - presets.folder = 'equipments.folders.loots'; - break; case 'consumable': - presets.folder = 'equipments.folders.consumables'; - break; case 'armor': - presets.folder = 'equipments.folders.armors'; - break; case 'weapon': - presets.folder = 'equipments.folders.weapons'; + presets.compendium = 'daggerheart'; + presets.folder = 'equipments'; + presets.render = { + noFolder: true + }; + presets.filter = { + type: { key: 'type', value: type, forced: true } + }; break; case 'domainCard': + presets.compendium = 'daggerheart'; presets.folder = 'domains'; + presets.render = { + noFolder: true + }; presets.filter = { 'level.max': { key: 'level.max', value: this.document.system.levelData.level.current }, 'system.domain': { key: 'system.domain', value: this.document.system.domains } @@ -692,15 +568,7 @@ export default function DHApplicationMixin(Base) { return; } - ui.compendiumBrowser.open(presets); - } - - /** - * Open the attribution dialog - * @type {ApplicationClickAction} - */ - static async #editAttribution() { - new game.system.api.applications.dialogs.AttributionDialog(this.document).render({ force: true }); + return new ItemBrowser({ presets }).render({ force: true }); } /** @@ -736,9 +604,6 @@ export default function DHApplicationMixin(Base) { }; if (inVault) data['system.inVault'] = true; if (disabled) data.disabled = true; - if (type === "domainCard" && parent?.system.domains?.length) { - data.system.domain = parent.system.domains[0]; - } const doc = await cls.create(data, { parent, renderSheet: !event.shiftKey }); if (parentIsItem && type === 'feature') { @@ -775,7 +640,7 @@ export default function DHApplicationMixin(Base) { * @type {ApplicationClickAction} */ static async #toChat(_event, target) { - const doc = await getDocFromElement(target); + let doc = await getDocFromElement(target); return doc.toChat(doc.uuid); } @@ -784,19 +649,10 @@ export default function DHApplicationMixin(Base) { * @type {ApplicationClickAction} */ static async #useItem(event, target) { - const doc = await getDocFromElement(target); + let doc = await getDocFromElement(target); await doc.use(event); } - /** - * View an item by opening its sheet - * @type {ApplicationClickAction} - */ - static async #viewItem(_, target) { - const doc = await getDocFromElement(target); - await doc.sheet.render({ force: true }); - } - /** * Toggle a ActiveEffect * @type {ApplicationClickAction} diff --git a/module/applications/sheets/api/base-actor.mjs b/module/applications/sheets/api/base-actor.mjs index 85ecd616..2535142f 100644 --- a/module/applications/sheets/api/base-actor.mjs +++ b/module/applications/sheets/api/base-actor.mjs @@ -1,4 +1,3 @@ -import { getDocFromElement, itemIsIdentical } from '../../../helpers/utils.mjs'; import DHBaseActorSettings from './actor-setting.mjs'; import DHApplicationMixin from './application-mixin.mjs'; @@ -34,10 +33,7 @@ export default class DHBaseActorSheet extends DHApplicationMixin(ActorSheetV2) { } } ], - dragDrop: [ - { dragSelector: '.inventory-item[data-type="attack"]', dropSelector: null }, - { dragSelector: ".currency[data-currency] .drag-handle", dropSelector: null } - ] + dragDrop: [{ dragSelector: '.inventory-item[data-type="attack"]', dropSelector: null }] }; /* -------------------------------------------- */ @@ -51,12 +47,6 @@ export default class DHBaseActorSheet extends DHApplicationMixin(ActorSheetV2) { return (this.#settingSheet ??= SheetClass ? new SheetClass({ document: this.document }) : null); } - get isVisible() { - const viewPermission = this.document.testUserPermission(game.user, this.options.viewPermission); - const limitedOnly = this.document.testUserPermission(game.user, this.options.viewPermission, { exact: true }); - return limitedOnly ? this.document.system.metadata.hasLimitedView : viewPermission; - } - /* -------------------------------------------- */ /* Prepare Context */ /* -------------------------------------------- */ @@ -65,36 +55,6 @@ export default class DHBaseActorSheet extends DHApplicationMixin(ActorSheetV2) { async _prepareContext(_options) { const context = await super._prepareContext(_options); context.isNPC = this.document.isNPC; - context.useResourcePips = game.settings.get( - CONFIG.DH.id, - CONFIG.DH.SETTINGS.gameSettings.appearance - ).useResourcePips; - context.showAttribution = !game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.appearance) - .hideAttribution; - - // Prepare inventory data - if (['party', 'character'].includes(this.document.type)) { - context.inventory = { - currencies: {}, - weapons: this.document.itemTypes.weapon.sort((a, b) => a.sort - b.sort), - armor: this.document.itemTypes.armor.sort((a, b) => a.sort - b.sort), - consumables: this.document.itemTypes.consumable.sort((a, b) => a.sort - b.sort), - loot: this.document.itemTypes.loot.sort((a, b) => a.sort - b.sort) - }; - const { title, ...currencies } = game.settings.get( - CONFIG.DH.id, - CONFIG.DH.SETTINGS.gameSettings.Homebrew - ).currency; - for (const key in currencies) { - context.inventory.currencies[key] = { - ...currencies[key], - field: context.systemFields.gold.fields[key], - value: context.source.system.gold[key] - }; - } - context.inventory.hasCurrency = Object.values(context.inventory.currencies).some((c) => c.enabled); - } - return context; } @@ -109,39 +69,10 @@ export default class DHBaseActorSheet extends DHApplicationMixin(ActorSheetV2) { return context; } - _configureRenderParts(options) { - const parts = super._configureRenderParts(options); - if (!this.document.system.metadata.hasLimitedView) return parts; - - if (this.document.testUserPermission(game.user, 'LIMITED', { exact: true })) return { limited: parts.limited }; - - return Object.keys(parts).reduce((acc, key) => { - if (key !== 'limited') acc[key] = parts[key]; - - return acc; - }, {}); - } - - /** @inheritDoc */ - async _onRender(context, options) { - await super._onRender(context, options); - - if ( - this.document.system.metadata.hasLimitedView && - this.document.testUserPermission(game.user, 'LIMITED', { exact: true }) - ) { - this.element.classList = `${this.element.classList} limited`; - } - } - /**@inheritdoc */ _attachPartListeners(partId, htmlElement, options) { super._attachPartListeners(partId, htmlElement, options); - htmlElement.querySelectorAll('.inventory-item-quantity').forEach(element => { - element.addEventListener('change', this.updateItemQuantity.bind(this)); - element.addEventListener('click', e => e.stopPropagation()); - }); htmlElement.querySelectorAll('.item-button .action-uses-button').forEach(element => { element.addEventListener('contextmenu', DHBaseActorSheet.#modifyActionUses); }); @@ -180,15 +111,6 @@ export default class DHBaseActorSheet extends DHApplicationMixin(ActorSheetV2) { return this._getContextMenuCommonOptions.call(this, { usable: true, toChat: true }); } - /* -------------------------------------------- */ - /* Application Listener Actions */ - /* -------------------------------------------- */ - - async updateItemQuantity(event) { - const item = await getDocFromElement(event.currentTarget); - await item?.update({ 'system.quantity': event.currentTarget.value }); - } - /* -------------------------------------------- */ /* Application Clicks Actions */ /* -------------------------------------------- */ @@ -257,98 +179,13 @@ export default class DHBaseActorSheet extends DHApplicationMixin(ActorSheetV2) { /* Application Drag/Drop */ /* -------------------------------------------- */ - async _onDrop(event) { - event.stopPropagation(); - const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event); - if (data.type === 'Currency' && ['character', 'party'].includes(this.document.type)) { - const originActor = await foundry.utils.fromUuid(data.originActor); - if (!originActor || originActor.uuid === this.document.uuid) return; - const currency = data.currency; - const quantity = await game.system.api.applications.dialogs.ItemTransferDialog.configure({ - originActor, - targetActor: this.document, - currency - }); - if (quantity) { - originActor.update({ [`system.gold.${currency}`]: Math.max(0, originActor.system.gold[currency] - quantity) }); - this.document.update({ [`system.gold.${currency}`]: this.document.system.gold[currency] + quantity }); - } - return; - } - - return super._onDrop(event); - } - - async _onDropItem(event, item) { - const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event); - const originActor = item.actor; - if ( - item.actor?.uuid === this.document.uuid || - !originActor || - !['character', 'party'].includes(this.document.type) - ) { - return super._onDropItem(event, item); - } - - /* Handling transfer of inventoryItems */ - if (item.system.metadata.isInventoryItem) { - if (item.system.metadata.isQuantifiable) { - const actorItem = originActor.items.get(data.originId); - const quantityTransfered = await game.system.api.applications.dialogs.ItemTransferDialog.configure({ - item, - targetActor: this.document - }); - - if (quantityTransfered) { - if (quantityTransfered === actorItem.system.quantity) { - await originActor.deleteEmbeddedDocuments('Item', [data.originId]); - } else { - await actorItem.update({ - 'system.quantity': actorItem.system.quantity - quantityTransfered - }); - } - - const existingItem = this.document.items.find(x => itemIsIdentical(x, item)); - if (existingItem) { - await existingItem.update({ - 'system.quantity': existingItem.system.quantity + quantityTransfered - }); - } else { - const createData = item.toObject(); - await this.document.createEmbeddedDocuments('Item', [ - { - ...createData, - system: { - ...createData.system, - quantity: quantityTransfered - } - } - ]); - } - } - } else { - await originActor.deleteEmbeddedDocuments('Item', [data.originId]); - await this.document.createEmbeddedDocuments('Item', [item.toObject()]); - } - } - } - /** * On dragStart on the item. * @param {DragEvent} event - The drag event */ async _onDragStart(event) { - // Handle drag/dropping currencies - const currencyEl = event.currentTarget.closest(".currency[data-currency]"); - if (currencyEl) { - const currency = currencyEl.dataset.currency; - const data = { type: 'Currency', currency, originActor: this.document.uuid }; - event.dataTransfer.setData('text/plain', JSON.stringify(data)); - return; - } - - // Handle drag/dropping attacks const attackItem = event.currentTarget.closest('.inventory-item[data-type="attack"]'); + if (attackItem) { const attackData = { type: 'Attack', @@ -358,20 +195,8 @@ export default class DHBaseActorSheet extends DHApplicationMixin(ActorSheetV2) { }; event.dataTransfer.setData('text/plain', JSON.stringify(attackData)); event.dataTransfer.setDragImage(attackItem.querySelector('img'), 60, 0); - return; - } - - const item = await getDocFromElement(event.target); - if (item) { - const dragData = { - originActor: this.document.uuid, - originId: item.id, - type: item.documentName, - uuid: item.uuid - }; - event.dataTransfer.setData('text/plain', JSON.stringify(dragData)); + } else if (this.document.type !== 'environment') { + super._onDragStart(event); } - - super._onDragStart(event); } } diff --git a/module/applications/sheets/api/base-item.mjs b/module/applications/sheets/api/base-item.mjs index 42ed9426..e722b72e 100644 --- a/module/applications/sheets/api/base-item.mjs +++ b/module/applications/sheets/api/base-item.mjs @@ -13,16 +13,7 @@ export default class DHBaseItemSheet extends DHApplicationMixin(ItemSheetV2) { static DEFAULT_OPTIONS = { classes: ['item'], position: { width: 600 }, - window: { - resizable: true, - controls: [ - { - icon: 'fa-solid fa-signature', - label: 'DAGGERHEART.UI.Tooltip.configureAttribution', - action: 'editAttribution' - } - ] - }, + window: { resizable: true }, form: { submitOnChange: true }, @@ -33,9 +24,9 @@ export default class DHBaseItemSheet extends DHApplicationMixin(ItemSheetV2) { removeResource: DHBaseItemSheet.#removeResource }, dragDrop: [ - { dragSelector: null, dropSelector: '.drop-section' }, + { dragSelector: null, dropSelector: '.tab.features .drop-section' }, { dragSelector: '.feature-item', dropSelector: null }, - { dragSelector: '.inventory-item', dropSelector: null } + { dragSelector: '.action-item', dropSelector: null } ], contextMenus: [ { @@ -64,15 +55,6 @@ export default class DHBaseItemSheet extends DHApplicationMixin(ItemSheetV2) { /* Prepare Context */ /* -------------------------------------------- */ - /**@inheritdoc */ - async _prepareContext(options) { - const context = await super._prepareContext(options); - context.showAttribution = !game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.appearance) - .hideAttribution; - - return context; - } - /**@inheritdoc */ async _preparePartContext(partId, context, options) { await super._preparePartContext(partId, context, options); @@ -199,32 +181,18 @@ export default class DHBaseItemSheet extends DHApplicationMixin(ItemSheetV2) { static async #deleteFeature(_, element) { const target = element.closest('[data-item-uuid]'); const feature = await getDocFromElement(target); - if (!feature) { await this.document.update({ 'system.features': this.document.system.features .filter(x => x.item) .map(x => ({ ...x, item: x.item.uuid })) }); - } else { - const confirmed = await foundry.applications.api.DialogV2.confirm({ - window: { - title: game.i18n.format('DAGGERHEART.APPLICATIONS.DeleteConfirmation.title', { - type: game.i18n.localize('TYPES.Item.feature'), - name: feature.name - }) - }, - content: game.i18n.format('DAGGERHEART.APPLICATIONS.DeleteConfirmation.text', { name: feature.name }) - }); - - if (!confirmed) return; - + } else await this.document.update({ 'system.features': this.document.system.features .filter(x => target.dataset.type !== x.type || x.item.uuid !== feature.uuid) .map(x => ({ ...x, item: x.item.uuid })) }); - } } /** @@ -256,30 +224,37 @@ export default class DHBaseItemSheet extends DHApplicationMixin(ItemSheetV2) { * @param {DragEvent} event - The drag event */ async _onDragStart(event) { - /* Can prolly be improved a lot, but I don't wanna >_< */ const featureItem = event.currentTarget.closest('.feature-item'); - const inventoryItem = event.currentTarget.closest('.inventory-item'); - const lineItem = event.currentTarget.closest('.item-line'); - const dragItemData = featureItem ?? inventoryItem ?? lineItem; - const dragItem = await foundry.utils.fromUuid(dragItemData.dataset.itemUuid); - if (dragItem) { - if (!dragItem) { + if (featureItem) { + const feature = this.document.system.features.find(x => x?.id === featureItem.id); + if (!feature) { ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.featureIsMissing')); return; } - let dragData = {}; - if (dragItemData.dataset.type === 'effect') - dragData = { - type: 'ActiveEffect', - fromInternal: this.document.uuid, - data: { ...dragItem, uuid: dragItem.uuid, id: dragItem.id } - }; - else dragData = { type: 'Item', uuid: dragItem.uuid, id: dragItem.id, fromInternal: this.document.id }; + const featureData = { type: 'Item', data: { ...feature.toObject(), _id: null }, fromInternal: true }; + event.dataTransfer.setData('text/plain', JSON.stringify(featureData)); + event.dataTransfer.setDragImage(featureItem.querySelector('img'), 60, 0); + } else { + const actionItem = event.currentTarget.closest('.action-item'); + if (actionItem) { + const action = this.document.system.actions[actionItem.dataset.index]; + if (!action) { + ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.actionIsMissing')); + return; + } - event.dataTransfer.setData('text/plain', JSON.stringify(dragData)); - event.dataTransfer.setDragImage(dragItemData.querySelector('img'), 60, 0); + const actionData = { + type: 'Action', + data: { ...action.toObject(), id: action.id, itemUuid: this.document.uuid }, + fromInternal: true + }; + event.dataTransfer.setData('text/plain', JSON.stringify(actionData)); + event.dataTransfer.setDragImage(actionItem.querySelector('img'), 60, 0); + } else { + super._onDragStart(event); + } } } @@ -291,7 +266,7 @@ export default class DHBaseItemSheet extends DHApplicationMixin(ItemSheetV2) { super._onDrop(event); const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event); - if (data.fromInternal === this.document.id) return; + if (data.fromInternal) return; const target = event.target.closest('fieldset.drop-section'); let item = await fromUuid(data.uuid); diff --git a/module/applications/sheets/items/armor.mjs b/module/applications/sheets/items/armor.mjs index 2550b415..bdc482c3 100644 --- a/module/applications/sheets/items/armor.mjs +++ b/module/applications/sheets/items/armor.mjs @@ -8,7 +8,7 @@ export default class ArmorSheet extends ItemAttachmentSheet(DHBaseItemSheet) { tagifyConfigs: [ { selector: '.features-input', - options: () => CONFIG.DH.ITEM.orderedArmorFeatures(), + options: () => CONFIG.DH.ITEM.armorFeatures, callback: ArmorSheet.#onFeatureSelect } ] diff --git a/module/applications/sheets/items/beastform.mjs b/module/applications/sheets/items/beastform.mjs index 880c0796..1c4a4880 100644 --- a/module/applications/sheets/items/beastform.mjs +++ b/module/applications/sheets/items/beastform.mjs @@ -77,7 +77,6 @@ export default class BeastformSheet extends DHBaseItemSheet { name: context.document.system.advantageOn[key].value })) ); - context.dimensionsDisabled = context.document.system.tokenSize.size !== 'custom'; break; case 'effects': context.effects.actives = context.effects.actives.map(effect => { diff --git a/module/applications/sheets/items/class.mjs b/module/applications/sheets/items/class.mjs index 05bb0229..033c63e6 100644 --- a/module/applications/sheets/items/class.mjs +++ b/module/applications/sheets/items/class.mjs @@ -46,10 +46,6 @@ export default class ClassSheet extends DHBaseItemSheet { template: 'systems/daggerheart/templates/sheets/items/class/settings.hbs', scrollable: ['.settings'] }, - questions: { - template: 'systems/daggerheart/templates/sheets/items/class/questions.hbs', - scrollable: ['.questions'] - }, effects: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-effects.hbs', scrollable: ['.effects'] @@ -59,13 +55,7 @@ export default class ClassSheet extends DHBaseItemSheet { /** @inheritdoc */ static TABS = { primary: { - tabs: [ - { id: 'description' }, - { id: 'features' }, - { id: 'settings' }, - { id: 'questions' }, - { id: 'effects' } - ], + tabs: [{ id: 'description' }, { id: 'features' }, { id: 'settings' }, { id: 'effects' }], initial: 'description', labelPrefix: 'DAGGERHEART.GENERAL.Tabs' } @@ -125,8 +115,8 @@ export default class ClassSheet extends DHBaseItemSheet { async _onDrop(event) { event.stopPropagation(); const data = TextEditor.getDragEventData(event); - const item = await fromUuid(data.uuid); - const itemType = data.type === 'ActiveEffect' ? data.type : item.type; + const item = data.data ?? (await fromUuid(data.uuid)); + const itemType = data.data ? data.type : item.type; const target = event.target.closest('fieldset.drop-section'); if (itemType === 'subclass') { if (item.system.linkedClass) { @@ -203,10 +193,10 @@ export default class ClassSheet extends DHBaseItemSheet { if (target === 'subclasses') { const subclass = await foundry.utils.fromUuid(uuid); - await subclass?.update({ 'system.linkedClass': null }); + await subclass.update({ 'system.linkedClass': null }); } - await this.document.update({ [`system.${target}`]: prop.filter(i => i && i.uuid !== uuid).map(x => x.uuid) }); + await this.document.update({ [`system.${target}`]: prop.filter(i => i.uuid !== uuid).map(x => x.uuid) }); } /** diff --git a/module/applications/sheets/items/feature.mjs b/module/applications/sheets/items/feature.mjs index 6ff98ca7..1575067b 100644 --- a/module/applications/sheets/items/feature.mjs +++ b/module/applications/sheets/items/feature.mjs @@ -31,11 +31,4 @@ export default class FeatureSheet extends DHBaseItemSheet { labelPrefix: 'DAGGERHEART.GENERAL.Tabs' } }; -//Might be wrong location but testing out if here is okay. - /**@override */ - async _prepareContext(options) { - const context = await super._prepareContext(options); - context.featureFormChoices = CONFIG.DH.ITEM.featureForm; - return context; - } } diff --git a/module/applications/sheets/items/weapon.mjs b/module/applications/sheets/items/weapon.mjs index f5c7dddf..2533287b 100644 --- a/module/applications/sheets/items/weapon.mjs +++ b/module/applications/sheets/items/weapon.mjs @@ -8,7 +8,7 @@ export default class WeaponSheet extends ItemAttachmentSheet(DHBaseItemSheet) { tagifyConfigs: [ { selector: '.features-input', - options: () => CONFIG.DH.ITEM.orderedWeaponFeatures(), + options: () => CONFIG.DH.ITEM.weaponFeatures, callback: WeaponSheet.#onFeatureSelect } ] diff --git a/module/applications/sidebar/_module.mjs b/module/applications/sidebar/_module.mjs deleted file mode 100644 index 1f3207bc..00000000 --- a/module/applications/sidebar/_module.mjs +++ /dev/null @@ -1,3 +0,0 @@ -export { default as DaggerheartMenu } from './tabs/daggerheartMenu.mjs'; -export { default as DhActorDirectory } from './tabs/actorDirectory.mjs'; -export { default as DhSidebar } from './sidebar.mjs'; diff --git a/module/applications/sidebar/sidebar.mjs b/module/applications/sidebar/sidebar.mjs deleted file mode 100644 index ab6b0cdb..00000000 --- a/module/applications/sidebar/sidebar.mjs +++ /dev/null @@ -1,73 +0,0 @@ -export default class DhSidebar extends foundry.applications.sidebar.Sidebar { - /** @override */ - static TABS = { - chat: { - documentName: 'ChatMessage' - }, - combat: { - documentName: 'Combat' - }, - scenes: { - documentName: 'Scene', - gmOnly: true - }, - actors: { - documentName: 'Actor' - }, - items: { - documentName: 'Item' - }, - journal: { - documentName: 'JournalEntry', - tooltip: 'SIDEBAR.TabJournal' - }, - tables: { - documentName: 'RollTable' - }, - cards: { - documentName: 'Cards' - }, - macros: { - documentName: 'Macro' - }, - playlists: { - documentName: 'Playlist' - }, - compendium: { - tooltip: 'SIDEBAR.TabCompendium', - icon: 'fa-solid fa-book-atlas' - }, - daggerheartMenu: { - tooltip: 'DAGGERHEART.UI.Sidebar.daggerheartMenu.title', - img: 'systems/daggerheart/assets/logos/FoundryBorneLogoWhite.svg', - gmOnly: true - }, - settings: { - tooltip: 'SIDEBAR.TabSettings', - icon: 'fa-solid fa-gears' - } - }; - - /** @override */ - static PARTS = { - tabs: { - id: 'tabs', - template: 'systems/daggerheart/templates/sidebar/tabs.hbs' - } - }; - - /** @override */ - async _prepareTabContext(context, options) { - context.tabs = Object.entries(this.constructor.TABS).reduce((obj, [k, v]) => { - let { documentName, gmOnly, tooltip, icon, img } = v; - if (gmOnly && !game.user.isGM) return obj; - if (documentName) { - tooltip ??= getDocumentClass(documentName).metadata.labelPlural; - icon ??= CONFIG[documentName]?.sidebarIcon; - } - obj[k] = { tooltip, icon, img }; - obj[k].active = this.tabGroups.primary === k; - return obj; - }, {}); - } -} diff --git a/module/applications/sidebar/tabs/actorDirectory.mjs b/module/applications/sidebar/tabs/actorDirectory.mjs deleted file mode 100644 index d40443a0..00000000 --- a/module/applications/sidebar/tabs/actorDirectory.mjs +++ /dev/null @@ -1,46 +0,0 @@ -export default class DhActorDirectory extends foundry.applications.sidebar.tabs.ActorDirectory { - static DEFAULT_OPTIONS = { - renderUpdateKeys: ['system.levelData.level.current', 'system.partner', 'system.tier'] - }; - - static _entryPartial = 'systems/daggerheart/templates/ui/sidebar/actor-document-partial.hbs'; - - async _prepareDirectoryContext(context, options) { - await super._prepareDirectoryContext(context, options); - const adversaryTypes = CONFIG.DH.ACTOR.allAdversaryTypes(); - const environmentTypes = CONFIG.DH.ACTOR.environmentTypes; - context.getTypeLabel = document => { - return document.type === 'adversary' - ? game.i18n.localize(adversaryTypes[document.system.type]?.label ?? 'TYPES.Actor.adversary') - : document.type === 'environment' - ? game.i18n.localize(environmentTypes[document.system.type]?.label ?? 'TYPES.Actor.environment') - : null; - }; - } - - /** @inheritDoc */ - _onDragStart(event) { - let actor; - const { entryId } = event.currentTarget.dataset; - if (entryId) { - actor = this.collection.get(entryId); - if (!actor?.visible) return false; - } - super._onDragStart(event); - - // Create the drag preview. - if (actor && canvas.ready) { - const img = event.currentTarget.querySelector('img'); - const pt = actor.prototypeToken; - const usesSize = actor.system.metadata.usesSize; - const tokenSizes = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).tokenSizes; - const width = usesSize ? tokenSizes[actor.system.size] : pt.width; - const height = usesSize ? tokenSizes[actor.system.size] : pt.height; - - const w = width * canvas.dimensions.size * Math.abs(pt.texture.scaleX) * canvas.stage.scale.x; - const h = height * canvas.dimensions.size * Math.abs(pt.texture.scaleY) * canvas.stage.scale.y; - const preview = foundry.applications.ux.DragDrop.implementation.createDragImage(img, w, h); - event.dataTransfer.setDragImage(preview, w / 2, h / 2); - } - } -} diff --git a/module/applications/sidebar/tabs/daggerheartMenu.mjs b/module/applications/sidebar/tabs/daggerheartMenu.mjs deleted file mode 100644 index 6c7a9df1..00000000 --- a/module/applications/sidebar/tabs/daggerheartMenu.mjs +++ /dev/null @@ -1,162 +0,0 @@ -import { refreshIsAllowed } from '../../../helpers/utils.mjs'; - -const { HandlebarsApplicationMixin } = foundry.applications.api; -const { AbstractSidebarTab } = foundry.applications.sidebar; -/** - * The daggerheart menu tab. - * @extends {AbstractSidebarTab} - * @mixes HandlebarsApplication - */ -export default class DaggerheartMenu extends HandlebarsApplicationMixin(AbstractSidebarTab) { - constructor(options) { - super(options); - - this.refreshSelections = DaggerheartMenu.defaultRefreshSelections(); - } - - static defaultRefreshSelections() { - return { - session: { selected: false, label: game.i18n.localize('DAGGERHEART.GENERAL.RefreshType.session') }, - scene: { selected: false, label: game.i18n.localize('DAGGERHEART.GENERAL.RefreshType.scene') }, - longRest: { selected: false, label: game.i18n.localize('DAGGERHEART.GENERAL.RefreshType.longrest') }, - shortRest: { selected: false, label: game.i18n.localize('DAGGERHEART.GENERAL.RefreshType.shortrest') } - }; - } - - /** @override */ - static DEFAULT_OPTIONS = { - classes: ['dh-style'], - window: { - title: 'SIDEBAR.TabSettings' - }, - actions: { - selectRefreshable: DaggerheartMenu.#selectRefreshable, - refreshActors: DaggerheartMenu.#refreshActors - } - }; - - /** @override */ - static tabName = 'daggerheartMenu'; - - /** @override */ - static PARTS = { - main: { template: 'systems/daggerheart/templates/sidebar/daggerheart-menu/main.hbs' } - }; - - /* -------------------------------------------- */ - - /** @inheritDoc */ - async _prepareContext(options) { - const context = await super._prepareContext(options); - context.refreshables = this.refreshSelections; - context.disableRefresh = Object.values(this.refreshSelections).every(x => !x.selected); - - return context; - } - - async getRefreshables(types) { - const refreshedActors = {}; - for (let actor of game.actors) { - if (['character', 'adversary'].includes(actor.type) && actor.prototypeToken.actorLink) { - const updates = {}; - for (let item of actor.items) { - if (item.system.metadata?.hasResource && refreshIsAllowed(types, item.system.resource?.recovery)) { - if (!refreshedActors[actor.id]) - refreshedActors[actor.id] = { name: actor.name, img: actor.img, refreshed: new Set() }; - refreshedActors[actor.id].refreshed.add( - game.i18n.localize(CONFIG.DH.GENERAL.refreshTypes[item.system.resource.recovery].label) - ); - - if (!updates[item.id]?.system) updates[item.id] = { system: {} }; - - const increasing = - item.system.resource.progression === CONFIG.DH.ITEM.itemResourceProgression.increasing.id; - updates[item.id].system = { - ...updates[item.id].system, - 'resource.value': increasing - ? 0 - : Roll.replaceFormulaData(item.system.resource.max, actor.getRollData()) - }; - } - if (item.system.metadata?.hasActions) { - const refreshTypes = new Set(); - const actions = item.system.actions.filter(action => { - if (refreshIsAllowed(types, action.uses.recovery)) { - refreshTypes.add(action.uses.recovery); - return true; - } - - return false; - }); - if (actions.length === 0) continue; - - if (!refreshedActors[actor.id]) - refreshedActors[actor.id] = { name: actor.name, img: actor.img, refreshed: new Set() }; - refreshedActors[actor.id].refreshed.add( - ...refreshTypes.map(type => game.i18n.localize(CONFIG.DH.GENERAL.refreshTypes[type].label)) - ); - - if (!updates[item.id]?.system) updates[item.id] = { system: {} }; - - updates[item.id].system = { - ...updates[item.id].system, - ...actions.reduce( - (acc, action) => { - acc.actions[action.id] = { 'uses.value': 0 }; - return acc; - }, - { actions: updates[item.id].system.actions ?? {} } - ) - }; - } - } - - for (let key in updates) { - const update = updates[key]; - await actor.items.get(key).update(update); - } - } - } - - return refreshedActors; - } - - /* -------------------------------------------- */ - /* Application Clicks Actions */ - /* -------------------------------------------- */ - - static async #selectRefreshable(_event, button) { - const { type } = button.dataset; - this.refreshSelections[type].selected = !this.refreshSelections[type].selected; - this.render(); - } - - static async #refreshActors() { - const refreshKeys = Object.keys(this.refreshSelections).filter(key => this.refreshSelections[key].selected); - await this.getRefreshables(refreshKeys); - const types = refreshKeys.map(x => this.refreshSelections[x].label).join(', '); - ui.notifications.info( - game.i18n.format('DAGGERHEART.UI.Notifications.gmMenuRefresh', { - types: `[${types}]` - }) - ); - this.refreshSelections = DaggerheartMenu.defaultRefreshSelections(); - - const cls = getDocumentClass('ChatMessage'); - const msg = { - user: game.user.id, - content: await foundry.applications.handlebars.renderTemplate( - 'systems/daggerheart/templates/ui/chat/refreshMessage.hbs', - { - types: types - } - ), - title: game.i18n.localize('DAGGERHEART.UI.Chat.refreshMessage.title'), - speaker: cls.getSpeaker() - }; - - cls.create(msg); - - this.render(); - } -} diff --git a/module/applications/ui/_module.mjs b/module/applications/ui/_module.mjs index d5f31906..6a17a61e 100644 --- a/module/applications/ui/_module.mjs +++ b/module/applications/ui/_module.mjs @@ -1,8 +1,5 @@ -export { default as CountdownEdit } from './countdownEdit.mjs'; -export { default as DhCountdowns } from './countdowns.mjs'; export { default as DhChatLog } from './chatLog.mjs'; export { default as DhCombatTracker } from './combatTracker.mjs'; -export { default as DhEffectsDisplay } from './effectsDisplay.mjs'; +export * as DhCountdowns from './countdowns.mjs'; export { default as DhFearTracker } from './fearTracker.mjs'; export { default as DhHotbar } from './hotbar.mjs'; -export { ItemBrowser } from './itemBrowser.mjs'; diff --git a/module/applications/ui/chatLog.mjs b/module/applications/ui/chatLog.mjs index cc42df2f..a80974ed 100644 --- a/module/applications/ui/chatLog.mjs +++ b/module/applications/ui/chatLog.mjs @@ -1,5 +1,4 @@ -import { abilities } from '../../config/actorConfig.mjs'; -import { emitAsGM, GMUpdateEvent, RefreshType, socketEvent } from '../../systemRegistration/socket.mjs'; +import { emitAsGM, GMUpdateEvent } from '../../systemRegistration/socket.mjs'; export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLog { constructor(options) { @@ -38,7 +37,7 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo // } // }, { - name: game.i18n.localize('DAGGERHEART.UI.ChatLog.rerollDamage'), + name: 'Reroll Damage', icon: '', condition: li => { const message = game.messages.get(li.dataset.messageId); @@ -55,31 +54,30 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo ]; } - addChatListeners = async (document, html, data) => { - const message = data?.message ?? document.toObject(false); + addChatListeners = async (app, html, data) => { + html.querySelectorAll('.duality-action-damage').forEach(element => + element.addEventListener('click', event => this.onRollDamage(event, data.message)) + ); + html.querySelectorAll('.target-save').forEach(element => + element.addEventListener('click', event => this.onRollSave(event, data.message)) + ); + html.querySelectorAll('.roll-all-save-button').forEach(element => + element.addEventListener('click', event => this.onRollAllSave(event, data.message)) + ); html.querySelectorAll('.simple-roll-button').forEach(element => - element.addEventListener('click', event => this.onRollSimple(event, message)) + element.addEventListener('click', event => this.onRollSimple(event, data.message)) + ); + html.querySelectorAll('.healing-button').forEach(element => + element.addEventListener('click', event => this.onHealing(event, data.message)) ); html.querySelectorAll('.ability-use-button').forEach(element => - element.addEventListener('click', event => this.abilityUseButton(event, message)) + element.addEventListener('click', event => this.abilityUseButton(event, data.message)) ); html.querySelectorAll('.action-use-button').forEach(element => - element.addEventListener('click', event => this.actionUseButton(event, message)) + element.addEventListener('click', event => this.actionUseButton(event, data.message)) ); html.querySelectorAll('.reroll-button').forEach(element => - element.addEventListener('click', event => this.rerollEvent(event, message)) - ); - html.querySelectorAll('.group-roll-button').forEach(element => - element.addEventListener('click', event => this.groupRollButton(event, message)) - ); - html.querySelectorAll('.group-roll-reroll').forEach(element => - element.addEventListener('click', event => this.groupRollReroll(event, message)) - ); - html.querySelectorAll('.group-roll-success').forEach(element => - element.addEventListener('click', event => this.groupRollSuccessEvent(event, message)) - ); - html.querySelectorAll('.group-roll-header-expand-section').forEach(element => - element.addEventListener('click', this.groupRollExpandSection) + element.addEventListener('click', event => this.rerollEvent(event, data.message)) ); }; @@ -92,6 +90,80 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo super.close(options); } + async getActor(uuid) { + return await foundry.utils.fromUuid(uuid); + } + + getAction(actor, itemId, actionId) { + const item = actor.items.get(itemId), + action = + actor.system.attack?._id === actionId + ? actor.system.attack + : item.system.attack?._id === actionId + ? item.system.attack + : item?.system?.actions?.get(actionId); + return action; + } + + async onRollDamage(event, message) { + event.stopPropagation(); + const actor = await this.getActor(message.system.source.actor); + if(!actor.isOwner) return true; + if (message.system.source.item && message.system.source.action) { + const action = this.getAction(actor, message.system.source.item, message.system.source.action); + if (!action || !action?.rollDamage) return; + await action.rollDamage(event, message); + } + } + + async onRollSave(event, message) { + event.stopPropagation(); + const actor = await this.getActor(message.system.source.actor), + tokenId = event.target.closest('[data-token]')?.dataset.token, + token = game.canvas.tokens.get(tokenId); + if (!token?.actor || !token.isOwner) return true; + if (message.system.source.item && message.system.source.action) { + const action = this.getAction(actor, message.system.source.item, message.system.source.action); + if (!action || !action?.hasSave) return; + action.rollSave(token.actor, event, message).then(result => + emitAsGM( + GMUpdateEvent.UpdateSaveMessage, + action.updateSaveMessage.bind(action, result, message, token.id), + { + action: action.uuid, + message: message._id, + token: token.id, + result + } + ) + ); + } + } + + async onRollAllSave(event, message) { + event.stopPropagation(); + if (!game.user.isGM) return; + const targets = event.target.parentElement.querySelectorAll('[data-token] .target-save'); + const actor = await this.getActor(message.system.source.actor), + action = this.getAction(actor, message.system.source.item, message.system.source.action); + targets.forEach(async el => { + const tokenId = el.closest('[data-token]')?.dataset.token, + token = game.canvas.tokens.get(tokenId); + if (!token.actor) return; + if (game.user === token.actor.owner) el.dispatchEvent(new PointerEvent('click', { shiftKey: true })); + else { + token.actor.owner + .query('reactionRoll', { + actionId: action.uuid, + actorId: token.actor.uuid, + event, + message + }) + .then(result => action.updateSaveMessage(result, message, token.id)); + } + }); + } + async onRollSimple(event, message) { const buttonType = event.target.dataset.type ?? 'damage', total = message.rolls.reduce((a, c) => a + Roll.fromJSON(c).total, 0), @@ -125,32 +197,17 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo item.system.attack?.id === event.currentTarget.id ? item.system.attack : item.system.actions.get(event.currentTarget.id); - if (event.currentTarget.dataset.directDamage) { - const config = action.prepareConfig(event); - config.hasRoll = false; - action.workflow.get('damage').execute(config, null, true); - } else action.use(event); + if (event.currentTarget.dataset.directDamage) action.use(event, { byPassRoll: true }); + else action.use(event); } async actionUseButton(event, message) { - const { moveIndex, actionIndex, movePath } = event.currentTarget.dataset; - const targetUuid = event.currentTarget.closest('.action-use-button-parent').querySelector('select')?.value; - const parent = await foundry.utils.fromUuid(targetUuid || message.system.actor) - + const { moveIndex, actionIndex } = event.currentTarget.dataset; + const parent = await foundry.utils.fromUuid(message.system.actor); const actionType = message.system.moves[moveIndex].actions[actionIndex]; const cls = game.system.api.models.actions.actionsTypes[actionType.type]; const action = new cls( - { - ...actionType, - _id: foundry.utils.randomID(), - name: game.i18n.localize(actionType.name), - originItem: { - type: CONFIG.DH.ITEM.originItemType.restMove, - itemPath: movePath, - actionIndex: actionIndex - }, - targetUuid: targetUuid - }, + { ...actionType, _id: foundry.utils.randomID(), name: game.i18n.localize(actionType.name) }, { parent: parent.system } ); @@ -192,182 +249,6 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo 'system.roll': newRoll, 'rolls': [parsedRoll] }); - - Hooks.callAll(socketEvent.Refresh, { refreshType: RefreshType.TagTeamRoll }); - await game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.Refresh, - data: { - refreshType: RefreshType.TagTeamRoll - } - }); } } - - async groupRollButton(event, message) { - const path = event.currentTarget.dataset.path; - const isLeader = path === 'leader'; - const { actor: actorData, trait } = foundry.utils.getProperty(message.system, path); - const actor = game.actors.get(actorData._id); - - if (!actor) { - return ui.notifications.error( - game.i18n.format('DAGGERHEART.UI.Notifications.documentIsMissing', { - documentType: game.i18n.localize('TYPES.Actor.character') - }) - ); - } - - if (!actor.testUserPermission(game.user, 'OWNER')) { - return ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.noActorOwnership')); - } - - const traitLabel = game.i18n.localize(abilities[trait].label); - const config = { - event: event, - title: `${game.i18n.localize('DAGGERHEART.GENERAL.dualityRoll')}: ${actor.name}`, - headerTitle: game.i18n.format('DAGGERHEART.UI.Chat.dualityRoll.abilityCheckTitle', { - ability: traitLabel - }), - roll: { - trait: trait, - advantage: 0, - modifiers: [{ label: traitLabel, value: actor.system.traits[trait].value }] - }, - hasRoll: true, - skips: { - createMessage: true, - resources: !isLeader, - updateCountdowns: !isLeader - } - }; - const result = await actor.diceRoll({ - ...config, - headerTitle: `${game.i18n.localize('DAGGERHEART.GENERAL.dualityRoll')}: ${actor.name}`, - title: game.i18n.format('DAGGERHEART.UI.Chat.dualityRoll.abilityCheckTitle', { - ability: traitLabel - }) - }); - - if (!result) return; - - const newMessageData = foundry.utils.deepClone(message.system); - foundry.utils.setProperty(newMessageData, `${path}.result`, result.roll); - const renderData = { system: new game.system.api.models.chatMessages.config.groupRoll(newMessageData) }; - - const updatedContent = await foundry.applications.handlebars.renderTemplate( - 'systems/daggerheart/templates/ui/chat/groupRoll.hbs', - { ...renderData, user: game.user } - ); - const mess = game.messages.get(message._id); - - await emitAsGM( - GMUpdateEvent.UpdateDocument, - mess.update.bind(mess), - { - ...renderData, - content: updatedContent - }, - mess.uuid - ); - } - - async groupRollReroll(event, message) { - const path = event.currentTarget.dataset.path; - const { actor: actorData, trait } = foundry.utils.getProperty(message.system, path); - const actor = game.actors.get(actorData._id); - - if (!actor.testUserPermission(game.user, 'OWNER')) { - return ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.noActorOwnership')); - } - - const traitLabel = game.i18n.localize(abilities[trait].label); - - const config = { - event: event, - title: `${game.i18n.localize('DAGGERHEART.GENERAL.dualityRoll')}: ${actor.name}`, - headerTitle: game.i18n.format('DAGGERHEART.UI.Chat.dualityRoll.abilityCheckTitle', { - ability: traitLabel - }), - roll: { - trait: trait, - advantage: 0, - modifiers: [{ label: traitLabel, value: actor.system.traits[trait].value }] - }, - hasRoll: true, - skips: { - createMessage: true, - updateCountdowns: true - } - }; - const result = await actor.diceRoll({ - ...config, - headerTitle: `${game.i18n.localize('DAGGERHEART.GENERAL.dualityRoll')}: ${actor.name}`, - title: game.i18n.format('DAGGERHEART.UI.Chat.dualityRoll.abilityCheckTitle', { - ability: traitLabel - }) - }); - - const newMessageData = foundry.utils.deepClone(message.system); - foundry.utils.setProperty(newMessageData, `${path}.result`, { ...result.roll, rerolled: true }); - const renderData = { system: new game.system.api.models.chatMessages.config.groupRoll(newMessageData) }; - - const updatedContent = await foundry.applications.handlebars.renderTemplate( - 'systems/daggerheart/templates/ui/chat/groupRoll.hbs', - { ...renderData, user: game.user } - ); - const mess = game.messages.get(message._id); - await emitAsGM( - GMUpdateEvent.UpdateDocument, - mess.update.bind(mess), - { - ...renderData, - content: updatedContent - }, - mess.uuid - ); - } - - async groupRollSuccessEvent(event, message) { - if (!game.user.isGM) { - return ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.gmOnly')); - } - - const { path, success } = event.currentTarget.dataset; - const { actor: actorData } = foundry.utils.getProperty(message.system, path); - const actor = game.actors.get(actorData._id); - - if (!actor.testUserPermission(game.user, 'OWNER')) { - return ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.noActorOwnership')); - } - - const newMessageData = foundry.utils.deepClone(message.system); - foundry.utils.setProperty(newMessageData, `${path}.manualSuccess`, Boolean(success)); - const renderData = { system: new game.system.api.models.chatMessages.config.groupRoll(newMessageData) }; - - const updatedContent = await foundry.applications.handlebars.renderTemplate( - 'systems/daggerheart/templates/ui/chat/groupRoll.hbs', - { ...renderData, user: game.user } - ); - const mess = game.messages.get(message._id); - await emitAsGM( - GMUpdateEvent.UpdateDocument, - mess.update.bind(mess), - { - ...renderData, - content: updatedContent - }, - mess.uuid - ); - } - - async groupRollExpandSection(event) { - event.target - .closest('.group-roll-header-expand-section') - .querySelectorAll('i') - .forEach(element => { - element.classList.toggle('fa-angle-up'); - element.classList.toggle('fa-angle-down'); - }); - event.target.closest('.group-roll-section').querySelector('.group-roll-content').classList.toggle('closed'); - } } diff --git a/module/applications/ui/combatTracker.mjs b/module/applications/ui/combatTracker.mjs index 288ba8ad..85c77cd3 100644 --- a/module/applications/ui/combatTracker.mjs +++ b/module/applications/ui/combatTracker.mjs @@ -1,11 +1,12 @@ -import { AdversaryBPPerEncounter } from '../../config/encounterConfig.mjs'; +import { EncounterCountdowns } from '../ui/countdowns.mjs'; export default class DhCombatTracker extends foundry.applications.sidebar.tabs.CombatTracker { static DEFAULT_OPTIONS = { actions: { requestSpotlight: this.requestSpotlight, toggleSpotlight: this.toggleSpotlight, - setActionTokens: this.setActionTokens + setActionTokens: this.setActionTokens, + openCountdowns: this.openCountdowns } }; @@ -21,33 +22,11 @@ export default class DhCombatTracker extends foundry.applications.sidebar.tabs.C } }; - /** @inheritDoc */ - async _preparePartContext(_partId, context, _options) { - return context; - } - - async _prepareContext(options) { - const context = await super._prepareContext(options); - - await this._prepareTrackerContext(context, options); - await this._prepareCombatContext(context, options); - - return context; - } - async _prepareCombatContext(context, options) { await super._prepareCombatContext(context, options); - const modifierBP = - this.combats - .find(x => x.active) - ?.system?.extendedBattleToggles?.reduce((acc, toggle) => (acc ?? 0) + toggle.category, null) ?? null; - const maxBP = CONFIG.DH.ENCOUNTER.BaseBPPerEncounter(context.characters.length) + modifierBP; - const currentBP = AdversaryBPPerEncounter(context.adversaries, context.characters); - Object.assign(context, { - fear: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear), - battlepoints: { max: maxBP, current: currentBP, hasModifierBP: modifierBP !== null } + fear: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear) }); } @@ -56,27 +35,11 @@ export default class DhCombatTracker extends foundry.applications.sidebar.tabs.C const adversaries = context.turns?.filter(x => x.isNPC) ?? []; const characters = context.turns?.filter(x => !x.isNPC) ?? []; - const spotlightQueueEnabled = game.settings.get( - CONFIG.DH.id, - CONFIG.DH.SETTINGS.gameSettings.SpotlightRequestQueue - ); - - const spotlightRequests = characters - ?.filter(x => !x.isNPC && spotlightQueueEnabled) - .filter(x => x.system.spotlight.requestOrderIndex > 0) - .sort((a, b) => { - const valueA = a.system.spotlight.requestOrderIndex; - const valueB = b.system.spotlight.requestOrderIndex; - return valueA - valueB; - }); Object.assign(context, { actionTokens: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules).actionTokens, adversaries, - characters: characters - ?.filter(x => !x.isNPC) - .filter(x => !spotlightQueueEnabled || x.system.spotlight.requestOrderIndex == 0), - spotlightRequests + characters }); } @@ -127,7 +90,6 @@ export default class DhCombatTracker extends foundry.applications.sidebar.tabs.C resource, active: index === combat.turn, canPing: combatant.sceneId === canvas.scene?.id && game.user.hasPermission('PING_CANVAS'), - type: combatant.actor?.system?.type, img: await this._getCombatantThumbnail(combatant) }; @@ -152,8 +114,7 @@ export default class DhCombatTracker extends foundry.applications.sidebar.tabs.C async setCombatantSpotlight(combatantId) { const update = { system: { - 'spotlight.requesting': false, - 'spotlight.requestOrderIndex': 0 + 'spotlight.requesting': false } }; const combatant = this.viewed.combatants.get(combatantId); @@ -165,14 +126,7 @@ export default class DhCombatTracker extends foundry.applications.sidebar.tabs.C if (this.viewed.turn !== toggleTurn) { const { updateCountdowns } = game.system.api.applications.ui.DhCountdowns; - if (combatant.actor?.type === 'character') { - await updateCountdowns( - CONFIG.DH.GENERAL.countdownProgressionTypes.spotlight.id, - CONFIG.DH.GENERAL.countdownProgressionTypes.characterSpotlight.id - ); - } else { - await updateCountdowns(CONFIG.DH.GENERAL.countdownProgressionTypes.spotlight.id); - } + await updateCountdowns(CONFIG.DH.GENERAL.countdownTypes.spotlight.id); const autoPoints = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).actionPoints; if (autoPoints) { @@ -188,15 +142,11 @@ export default class DhCombatTracker extends foundry.applications.sidebar.tabs.C } static async requestSpotlight(_, target) { - const characters = this.viewed.turns?.filter(x => !x.isNPC) ?? []; - const orderValues = characters.map(character => character.system.spotlight.requestOrderIndex); - const maxRequestIndex = Math.max(...orderValues); const { combatantId } = target.closest('[data-combatant-id]')?.dataset ?? {}; const combatant = this.viewed.combatants.get(combatantId); await combatant.update({ 'system.spotlight': { - requesting: !combatant.system.spotlight.requesting, - requestOrderIndex: !combatant.system.spotlight.requesting ? maxRequestIndex + 1 : 0 + requesting: !combatant.system.spotlight.requesting } }); @@ -218,4 +168,8 @@ export default class DhCombatTracker extends foundry.applications.sidebar.tabs.C await combatant.update({ 'system.actionTokens': newIndex }); this.render(); } + + static openCountdowns() { + new EncounterCountdowns().open(); + } } diff --git a/module/applications/ui/countdownEdit.mjs b/module/applications/ui/countdownEdit.mjs deleted file mode 100644 index 7f1deea3..00000000 --- a/module/applications/ui/countdownEdit.mjs +++ /dev/null @@ -1,238 +0,0 @@ -import { DhCountdown } from '../../data/countdowns.mjs'; -import { waitForDiceSoNice } from '../../helpers/utils.mjs'; -import { emitAsGM, GMUpdateEvent, RefreshType, socketEvent } from '../../systemRegistration/socket.mjs'; - -const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; - -export default class CountdownEdit extends HandlebarsApplicationMixin(ApplicationV2) { - constructor() { - super(); - - this.data = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); - this.editingCountdowns = new Set(); - this.currentEditCountdown = null; - this.hideNewCountdowns = false; - } - - static DEFAULT_OPTIONS = { - classes: ['daggerheart', 'dialog', 'dh-style', 'countdown-edit'], - tag: 'form', - position: { width: 600 }, - window: { - title: 'DAGGERHEART.APPLICATIONS.CountdownEdit.title', - icon: 'fa-solid fa-clock-rotate-left' - }, - actions: { - addCountdown: CountdownEdit.#addCountdown, - toggleCountdownEdit: CountdownEdit.#toggleCountdownEdit, - editCountdownImage: CountdownEdit.#editCountdownImage, - editCountdownOwnership: CountdownEdit.#editCountdownOwnership, - randomiseCountdownStart: CountdownEdit.#randomiseCountdownStart, - removeCountdown: CountdownEdit.#removeCountdown - }, - form: { handler: this.updateData, submitOnChange: true } - }; - - static PARTS = { - countdowns: { - template: 'systems/daggerheart/templates/ui/countdown-edit.hbs', - scrollable: ['.expanded-view', '.edit-content'] - } - }; - - async _prepareContext(_options) { - const context = await super._prepareContext(_options); - context.isGM = game.user.isGM; - context.ownershipDefaultOptions = CONFIG.DH.GENERAL.basicOwnershiplevels; - context.defaultOwnership = this.data.defaultOwnership; - context.countdownBaseTypes = CONFIG.DH.GENERAL.countdownBaseTypes; - context.countdownProgressionTypes = CONFIG.DH.GENERAL.countdownProgressionTypes; - context.countdownLoopingTypes = CONFIG.DH.GENERAL.countdownLoopingTypes; - context.hideNewCountdowns = this.hideNewCountdowns; - context.countdowns = Object.keys(this.data.countdowns).reduce((acc, key) => { - const countdown = this.data.countdowns[key]; - const isLooping = countdown.progress.looping !== CONFIG.DH.GENERAL.countdownLoopingTypes.noLooping; - const loopTooltip = isLooping - ? countdown.progress.looping === CONFIG.DH.GENERAL.countdownLoopingTypes.increasing.id - ? 'DAGGERHEART.UI.Countdowns.increasingLoop' - : countdown.progress.looping === CONFIG.DH.GENERAL.countdownLoopingTypes.decreasing.id - ? 'DAGGERHEART.UI.Countdowns.decreasingLoop' - : 'DAGGERHEART.UI.Countdowns.loop' - : null; - const randomizeValid = !new Roll(countdown.progress.startFormula ?? '').isDeterministic; - acc[key] = { - ...countdown, - typeName: game.i18n.localize(CONFIG.DH.GENERAL.countdownBaseTypes[countdown.type].label), - progress: { - ...countdown.progress, - typeName: game.i18n.localize( - CONFIG.DH.GENERAL.countdownProgressionTypes[countdown.progress.type].label - ) - }, - editing: this.editingCountdowns.has(key), - randomizeValid, - loopTooltip - }; - - return acc; - }, {}); - - return context; - } - - /** @override */ - async _postRender(_context, _options) { - if (this.currentEditCountdown) { - setTimeout(() => { - const input = this.element.querySelector( - `.countdown-edit-container[data-id="${this.currentEditCountdown}"] input` - ); - if (input) { - input.select(); - this.currentEditCountdown = null; - } - }, 100); - } - } - - canPerformEdit() { - if (game.user.isGM) return true; - - if (!game.users.activeGM) { - ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.gmRequired')); - return false; - } - - return true; - } - - async updateSetting(update) { - const noGM = !game.users.find(x => x.isGM && x.active); - if (noGM) { - ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.gmRequired')); - return; - } - - await this.data.updateSource(update); - await emitAsGM(GMUpdateEvent.UpdateCountdowns, this.gmSetSetting.bind(this.data), this.data, null, { - refreshType: RefreshType.Countdown - }); - - this.render(); - } - - static async updateData(_event, _, formData) { - const { hideNewCountdowns, ...settingsData } = foundry.utils.expandObject(formData.object); - - // Sync current and max if max is changing and they were equal before - for (const [id, countdown] of Object.entries(settingsData.countdowns ?? {})) { - const existing = this.data.countdowns[id]; - countdown.progress.current = this.getMatchingCurrentValue( - existing, - countdown.progress.start, - countdown.progress.current - ); - } - - this.hideNewCountdowns = hideNewCountdowns; - this.updateSetting(settingsData); - } - - getMatchingCurrentValue(oldCount, newStart, newCurrent) { - const wasEqual = oldCount && oldCount.progress.current === oldCount.progress.start; - if (wasEqual && newStart !== oldCount.progress.start) { - return newStart; - } else { - return Math.min(newCurrent, newStart); - } - } - - async gmSetSetting(data) { - await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns, data), - game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.Refresh, - data: { refreshType: RefreshType.Countdown } - }); - Hooks.callAll(socketEvent.Refresh, { refreshType: RefreshType.Countdown }); - } - - static #addCountdown() { - const id = foundry.utils.randomID(); - this.editingCountdowns.add(id); - this.currentEditCountdown = id; - this.updateSetting({ - [`countdowns.${id}`]: DhCountdown.defaultCountdown(null, this.hideNewCountdowns) - }); - } - - static #editCountdownImage(_, target) { - const countdown = this.data.countdowns[target.id]; - const fp = new foundry.applications.apps.FilePicker.implementation({ - current: countdown.img, - type: 'image', - callback: async path => this.updateSetting({ [`countdowns.${target.id}.img`]: path }), - top: this.position.top + 40, - left: this.position.left + 10 - }); - return fp.browse(); - } - - static #toggleCountdownEdit(_, button) { - const { countdownId } = button.dataset; - - const isEditing = this.editingCountdowns.has(countdownId); - if (isEditing) this.editingCountdowns.delete(countdownId); - else { - this.editingCountdowns.add(countdownId); - this.currentEditCountdown = countdownId; - } - - this.render(); - } - - static async #editCountdownOwnership(_, button) { - const countdown = this.data.countdowns[button.dataset.countdownId]; - const data = await game.system.api.applications.dialogs.OwnershipSelection.configure( - countdown.name, - countdown.ownership, - this.data.defaultOwnership - ); - if (!data) return; - - this.updateSetting({ [`countdowns.${button.dataset.countdownId}`]: data }); - } - - static async #randomiseCountdownStart(_, button) { - const countdown = this.data.countdowns[button.dataset.countdownId]; - const roll = await new Roll(countdown.progress.startFormula).roll(); - const message = await roll.toMessage({ title: 'Countdown' }); - - await waitForDiceSoNice(message); - await this.updateSetting({ - [`countdowns.${button.dataset.countdownId}.progress`]: { - start: roll.total, - current: this.getMatchingCurrentValue(countdown, roll.total, countdown.progress.current) - } - }); - this.render(); - } - - static async #removeCountdown(event, button) { - const { countdownId } = button.dataset; - - if (!event.shiftKey) { - const confirmed = await foundry.applications.api.DialogV2.confirm({ - window: { - title: game.i18n.localize('DAGGERHEART.APPLICATIONS.CountdownEdit.removeCountdownTitle') - }, - content: game.i18n.format('DAGGERHEART.APPLICATIONS.CountdownEdit.removeCountdownText', { - name: this.data.countdowns[countdownId].name - }) - }); - if (!confirmed) return; - } - - if (this.editingCountdowns.has(countdownId)) this.editingCountdowns.delete(countdownId); - this.updateSetting({ [`countdowns.-=${countdownId}`]: null }); - } -} diff --git a/module/applications/ui/countdowns.mjs b/module/applications/ui/countdowns.mjs index 42920a4a..5e3ad1ab 100644 --- a/module/applications/ui/countdowns.mjs +++ b/module/applications/ui/countdowns.mjs @@ -1,295 +1,355 @@ -import { waitForDiceSoNice } from '../../helpers/utils.mjs'; -import { emitAsGM, GMUpdateEvent, RefreshType, socketEvent } from '../../systemRegistration/socket.mjs'; +import { GMUpdateEvent, RefreshType, socketEvent } from '../../systemRegistration/socket.mjs'; +import constructHTMLButton from '../../helpers/utils.mjs'; +import OwnershipSelection from '../dialogs/ownershipSelection.mjs'; const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; -/** - * A UI element which displays the countdowns in this world. - * - * @extends ApplicationV2 - * @mixes HandlebarsApplication - */ +class Countdowns extends HandlebarsApplicationMixin(ApplicationV2) { + constructor(basePath) { + super({}); -export default class DhCountdowns extends HandlebarsApplicationMixin(ApplicationV2) { - constructor(options = {}) { - super(options); - - this.setupHooks(); + this.basePath = basePath; + } + + get title() { + return game.i18n.format('DAGGERHEART.APPLICATIONS.Countdown.title', { + type: game.i18n.localize(`DAGGERHEART.APPLICATIONS.Countdown.types.${this.basePath}`) + }); } - /** @inheritDoc */ static DEFAULT_OPTIONS = { - id: 'countdowns', - tag: 'div', - classes: ['daggerheart', 'dh-style', 'countdowns', 'faded-ui'], + classes: ['daggerheart', 'dh-style', 'countdown'], + tag: 'form', + position: { width: 740, height: 700 }, window: { - icon: 'fa-solid fa-clock-rotate-left', frame: true, - title: 'DAGGERHEART.UI.Countdowns.title', - positioned: false, - resizable: false, + title: 'Countdowns', + resizable: true, minimizable: false }, actions: { - toggleViewMode: DhCountdowns.#toggleViewMode, - editCountdowns: DhCountdowns.#editCountdowns, - loopCountdown: DhCountdowns.#loopCountdown, - decreaseCountdown: (_, target) => this.editCountdown(false, target), - increaseCountdown: (_, target) => this.editCountdown(true, target) + addCountdown: this.addCountdown, + removeCountdown: this.removeCountdown, + editImage: this.onEditImage, + openOwnership: this.openOwnership, + openCountdownOwnership: this.openCountdownOwnership, + toggleSimpleView: this.toggleSimpleView }, - position: { - width: 400, - height: 222, - top: 50 - } + form: { handler: this.updateData, submitOnChange: true } }; - /** @override */ static PARTS = { - resources: { - root: true, - template: 'systems/daggerheart/templates/ui/countdowns.hbs' + countdowns: { + template: 'systems/daggerheart/templates/ui/countdowns.hbs', + scrollable: ['.expanded-view'] } }; - get element() { - return document.body.querySelector('.daggerheart.dh-style.countdowns'); + _attachPartListeners(partId, htmlElement, options) { + super._attachPartListeners(partId, htmlElement, options); + + htmlElement.querySelectorAll('.mini-countdown-container').forEach(element => { + element.addEventListener('click', event => this.updateCountdownValue.bind(this)(event, false)); + element.addEventListener('contextmenu', event => this.updateCountdownValue.bind(this)(event, true)); + }); + } + + async _preFirstRender(context, options) { + options.position = + game.user.getFlag(CONFIG.DH.id, CONFIG.DH.FLAGS[`${this.basePath}Countdown`].position) ?? + Countdowns.DEFAULT_OPTIONS.position; + + const viewSetting = + game.user.getFlag(CONFIG.DH.id, CONFIG.DH.FLAGS[`${this.basePath}Countdown`].simple) ?? !game.user.isGM; + this.simpleView = + game.user.isGM || !this.testUserPermission(CONST.DOCUMENT_OWNERSHIP_LEVELS.OBSERVER) ? viewSetting : true; + context.simple = this.simpleView; + } + + _onPosition(position) { + game.user.setFlag(CONFIG.DH.id, CONFIG.DH.FLAGS[`${this.basePath}Countdown`].position, position); } - /**@inheritdoc */ async _renderFrame(options) { const frame = await super._renderFrame(options); - const iconOnly = - game.user.getFlag(CONFIG.DH.id, CONFIG.DH.FLAGS.userFlags.countdownMode) === - CONFIG.DH.GENERAL.countdownAppMode.iconOnly; - if (iconOnly) frame.classList.add('icon-only'); - else frame.classList.remove('icon-only'); - - const header = frame.querySelector('.window-header'); - header.querySelector('button[data-action="close"]').remove(); - - if (game.user.isGM) { - const editTooltip = game.i18n.localize('DAGGERHEART.APPLICATIONS.CountdownEdit.editTitle'); - const editButton = ``; - header.insertAdjacentHTML('beforeEnd', editButton); + if (this.testUserPermission(CONST.DOCUMENT_OWNERSHIP_LEVELS.OBSERVER)) { + const button = constructHTMLButton({ + label: '', + classes: ['header-control', 'icon', 'fa-solid', 'fa-wrench'], + dataset: { action: 'toggleSimpleView', tooltip: 'DAGGERHEART.APPLICATIONS.Countdown.toggleSimple' } + }); + this.window.controls.after(button); } - const minimizeTooltip = game.i18n.localize('DAGGERHEART.UI.Countdowns.toggleIconMode'); - const minimizeButton = ``; - header.insertAdjacentHTML('beforeEnd', minimizeButton); - return frame; } - /** Returns countdown data filtered by ownership */ - #getCountdowns() { - const setting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); - const values = Object.entries(setting.countdowns).map(([key, countdown]) => ({ - key, - countdown, - ownership: DhCountdowns.#getPlayerOwnership(game.user, setting, countdown) - })); - return values.filter(v => v.ownership !== CONST.DOCUMENT_OWNERSHIP_LEVELS.NONE); + testUserPermission(level, exact, altSettings) { + if (game.user.isGM) return true; + + const settings = + altSettings ?? game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns)[this.basePath]; + const defaultAllowed = exact ? settings.ownership.default === level : settings.ownership.default >= level; + const userAllowed = exact + ? settings.playerOwnership[game.user.id]?.value === level + : settings.playerOwnership[game.user.id]?.value >= level; + return defaultAllowed || userAllowed; } - /** @override */ - async _prepareContext(options) { - const context = await super._prepareContext(options); + async _prepareContext(_options) { + const context = await super._prepareContext(_options); + const countdownData = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns)[ + this.basePath + ]; + context.isGM = game.user.isGM; + context.base = this.basePath; - context.iconOnly = - game.user.getFlag(CONFIG.DH.id, CONFIG.DH.FLAGS.userFlags.countdownMode) === - CONFIG.DH.GENERAL.countdownAppMode.iconOnly; - const setting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); - context.countdowns = this.#getCountdowns().reduce((acc, { key, countdown, ownership }) => { - const playersWithAccess = game.users.reduce((acc, user) => { - const ownership = DhCountdowns.#getPlayerOwnership(user, setting, countdown); - if (!user.isGM && ownership && ownership !== CONST.DOCUMENT_OWNERSHIP_LEVELS.NONE) { - acc.push(user); + context.canCreate = this.testUserPermission(CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER, true); + context.source = { + ...countdownData, + countdowns: Object.keys(countdownData.countdowns).reduce((acc, key) => { + const countdown = countdownData.countdowns[key]; + + if (this.testUserPermission(CONST.DOCUMENT_OWNERSHIP_LEVELS.LIMITED, false, countdown)) { + acc[key] = { + ...countdown, + canEdit: this.testUserPermission(CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER, true, countdown) + }; } + return acc; - }, []); - const nonGmPlayers = game.users.filter(x => !x.isGM); - - const countdownEditable = game.user.isGM || ownership === CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER; - const isLooping = countdown.progress.looping !== CONFIG.DH.GENERAL.countdownLoopingTypes.noLooping; - const loopTooltip = isLooping - ? countdown.progress.looping === CONFIG.DH.GENERAL.countdownLoopingTypes.increasing.id - ? 'DAGGERHEART.UI.Countdowns.increasingLoop' - : countdown.progress.looping === CONFIG.DH.GENERAL.countdownLoopingTypes.decreasing.id - ? 'DAGGERHEART.UI.Countdowns.decreasingLoop' - : 'DAGGERHEART.UI.Countdowns.loop' - : null; - const loopDisabled = - !countdownEditable || - (isLooping && (countdown.progress.current > 0 || countdown.progress.start === '0')); - - acc[key] = { - ...countdown, - editable: countdownEditable, - noPlayerAccess: nonGmPlayers.length && playersWithAccess.length === 0, - shouldLoop: isLooping && countdown.progress.current === 0 && countdown.progress.start > 0, - loopDisabled: isLooping ? loopDisabled : null, - loopTooltip: isLooping && game.i18n.localize(loopTooltip) - }; - return acc; - }, {}); + }, {}) + }; + context.systemFields = countdownData.schema.fields; + context.countdownFields = context.systemFields.countdowns.element.fields; + context.simple = this.simpleView; return context; } - static #getPlayerOwnership(user, setting, countdown) { - const playerOwnership = countdown.ownership[user.id]; - return playerOwnership === undefined || playerOwnership === CONST.DOCUMENT_OWNERSHIP_LEVELS.INHERIT - ? setting.defaultOwnership - : playerOwnership; - } + static async updateData(event, _, formData) { + const data = foundry.utils.expandObject(formData.object); + const newSetting = foundry.utils.mergeObject( + game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns).toObject(), + data + ); - cooldownRefresh = ({ refreshType }) => { - if (refreshType === RefreshType.Countdown) this.render(); - }; - - static canPerformEdit() { - if (game.user.isGM) return true; - - const noGM = !game.users.find(x => x.isGM && x.active); - if (noGM) { - ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.gmRequired')); - return false; + if (game.user.isGM) { + await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns, newSetting); + this.render(); + } else { + await game.socket.emit(`system.${CONFIG.DH.id}`, { + action: socketEvent.GMUpdate, + data: { + action: GMUpdateEvent.UpdateSetting, + uuid: CONFIG.DH.SETTINGS.gameSettings.Countdowns, + update: newSetting + } + }); } - - return true; } - static async #toggleViewMode() { - const currentMode = game.user.getFlag(CONFIG.DH.id, CONFIG.DH.FLAGS.userFlags.countdownMode); - const appMode = CONFIG.DH.GENERAL.countdownAppMode; - const newMode = currentMode === appMode.textIcon ? appMode.iconOnly : appMode.textIcon; - await game.user.setFlag(CONFIG.DH.id, CONFIG.DH.FLAGS.userFlags.countdownMode, newMode); + async updateSetting(update) { + if (game.user.isGM) { + await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns, update); + await game.socket.emit(`system.${CONFIG.DH.id}`, { + action: socketEvent.Refresh, + data: { + refreshType: RefreshType.Countdown, + application: `${this.basePath}-countdowns` + } + }); - if (newMode === appMode.iconOnly) this.element.classList.add('icon-only'); - else this.element.classList.remove('icon-only'); + this.render(); + } else { + await game.socket.emit(`system.${CONFIG.DH.id}`, { + action: socketEvent.GMUpdate, + data: { + action: GMUpdateEvent.UpdateSetting, + uuid: CONFIG.DH.SETTINGS.gameSettings.Countdowns, + update: update, + refresh: { refreshType: RefreshType.Countdown, application: `${this.basePath}-countdowns` } + } + }); + } + } + + static onEditImage(_, target) { + const setting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns)[this.basePath]; + const current = setting.countdowns[target.dataset.countdown].img; + const fp = new foundry.applications.apps.FilePicker.implementation({ + current, + type: 'image', + callback: async path => this.updateImage.bind(this)(path, target.dataset.countdown), + top: this.position.top + 40, + left: this.position.left + 10 + }); + return fp.browse(); + } + + async updateImage(path, countdown) { + const setting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); + await setting.updateSource({ + [`${this.basePath}.countdowns.${countdown}.img`]: path + }); + + await this.updateSetting(setting); + } + + static openOwnership(_, target) { + new Promise((resolve, reject) => { + const setting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns)[this.basePath]; + const ownership = { default: setting.ownership.default, players: setting.playerOwnership }; + new OwnershipSelection(resolve, reject, this.title, ownership).render(true); + }).then(async ownership => { + const setting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); + await setting.updateSource({ + [`${this.basePath}.ownership`]: ownership + }); + + await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns, setting.toObject()); + this.render(); + }); + } + + static openCountdownOwnership(_, target) { + const countdownId = target.dataset.countdown; + new Promise((resolve, reject) => { + const countdown = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns)[this.basePath] + .countdowns[countdownId]; + const ownership = { default: countdown.ownership.default, players: countdown.playerOwnership }; + new OwnershipSelection(resolve, reject, countdown.name, ownership).render(true); + }).then(async ownership => { + const setting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); + await setting.updateSource({ + [`${this.basePath}.countdowns.${countdownId}.ownership`]: ownership + }); + + await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns, setting); + this.render(); + }); + } + + static async toggleSimpleView() { + this.simpleView = !this.simpleView; + await game.user.setFlag(CONFIG.DH.id, CONFIG.DH.FLAGS[`${this.basePath}Countdown`].simple, this.simpleView); this.render(); } - static async #editCountdowns() { - new game.system.api.applications.ui.CountdownEdit().render(true); - } + async updateCountdownValue(event, increase) { + const countdownSetting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); + const countdown = countdownSetting[this.basePath].countdowns[event.currentTarget.dataset.countdown]; - static async #loopCountdown(_, target) { - if (!DhCountdowns.canPerformEdit()) return; - - const settings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); - const countdown = settings.countdowns[target.id]; - - let progressMax = countdown.progress.start; - let message = null; - if (countdown.progress.startFormula) { - const roll = await new Roll(countdown.progress.startFormula).evaluate(); - progressMax = roll.total; - message = await roll.toMessage(); + if (!this.testUserPermission(CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER)) { + return; } - const newMax = - countdown.progress.looping === CONFIG.DH.GENERAL.countdownLoopingTypes.increasing.id - ? Number(progressMax) + 1 - : countdown.progress.looping === CONFIG.DH.GENERAL.countdownLoopingTypes.decreasing.id - ? Math.max(Number(progressMax) - 1, 0) - : progressMax; + const currentValue = countdown.progress.current; - await waitForDiceSoNice(message); - await settings.updateSource({ - [`countdowns.${target.id}.progress`]: { - current: newMax, - start: newMax - } - }); - await emitAsGM(GMUpdateEvent.UpdateCountdowns, DhCountdowns.gmSetSetting.bind(settings), settings, null, { - refreshType: RefreshType.Countdown + if (increase && currentValue === countdown.progress.max) return; + if (!increase && currentValue === 0) return; + + await countdownSetting.updateSource({ + [`${this.basePath}.countdowns.${event.currentTarget.dataset.countdown}.progress.current`]: increase + ? currentValue + 1 + : currentValue - 1 }); + + await this.updateSetting(countdownSetting.toObject()); } - static async editCountdown(increase, target) { - if (!DhCountdowns.canPerformEdit()) return; - - const settings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); - const countdown = settings.countdowns[target.id]; - const newCurrent = increase - ? Math.min(countdown.progress.current + 1, countdown.progress.start) - : Math.max(countdown.progress.current - 1, 0); - await settings.updateSource({ [`countdowns.${target.id}.progress.current`]: newCurrent }); - await emitAsGM(GMUpdateEvent.UpdateCountdowns, DhCountdowns.gmSetSetting.bind(settings), settings, null, { - refreshType: RefreshType.Countdown - }); - } - - static async gmSetSetting(data) { - await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns, data), - game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.Refresh, - data: { refreshType: RefreshType.Countdown } - }); - Hooks.callAll(socketEvent.Refresh, { refreshType: RefreshType.Countdown }); - } - - setupHooks() { - Hooks.on(socketEvent.Refresh, this.cooldownRefresh.bind()); - } - - async close(options) { - /* Opt out of Foundry's standard behavior of closing all application windows marked as UI when Escape is pressed */ - if (options.closeKey) return; - - Hooks.off(socketEvent.Refresh, this.cooldownRefresh); - return super.close(options); - } - - /** - * Sends updates of the countdowns to the GM player. Since this is asynchronous, be sure to - * update all the countdowns at the same time. - * - * @param {...any} progressTypes Countdowns to be updated - */ - static async updateCountdowns(...progressTypes) { - const { countdownAutomation } = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation); - if (!countdownAutomation) return; - + static async addCountdown() { const countdownSetting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); - const updatedCountdowns = Object.keys(countdownSetting.countdowns).reduce((acc, key) => { - const countdown = countdownSetting.countdowns[key]; - if (progressTypes.indexOf(countdown.progress.type) !== -1 && countdown.progress.current > 0) { - acc.push(key); + await countdownSetting.updateSource({ + [`${this.basePath}.countdowns.${foundry.utils.randomID()}`]: { + name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Countdown.newCountdown'), + ownership: game.user.isGM + ? {} + : { + players: { + [game.user.id]: { type: CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER } + } + } } - - return acc; - }, []); - - const countdownData = countdownSetting.toObject(); - const settings = { - ...countdownData, - countdowns: Object.keys(countdownData.countdowns).reduce((acc, key) => { - const countdown = foundry.utils.deepClone(countdownData.countdowns[key]); - if (updatedCountdowns.includes(key)) { - countdown.progress.current -= 1; - } - - acc[key] = countdown; - return acc; - }, {}) - }; - await emitAsGM(GMUpdateEvent.UpdateCountdowns, - DhCountdowns.gmSetSetting.bind(settings), - settings, null, { - refreshType: RefreshType.Countdown }); + + await this.updateSetting(countdownSetting.toObject()); } - async _onRender(context, options) { - await super._onRender(context, options); - this.element.hidden = !game.user.isGM && this.#getCountdowns().length === 0; - if (options?.force) { - document.getElementById('ui-right-column-1')?.appendChild(this.element); + static async removeCountdown(_, target) { + const countdownSetting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); + const countdownName = countdownSetting[this.basePath].countdowns[target.dataset.countdown].name; + + const confirmed = await foundry.applications.api.DialogV2.confirm({ + window: { + title: game.i18n.localize('DAGGERHEART.APPLICATIONS.Countdown.removeCountdownTitle') + }, + content: game.i18n.format('DAGGERHEART.APPLICATIONS.Countdown.removeCountdownText', { name: countdownName }) + }); + if (!confirmed) return; + + await countdownSetting.updateSource({ [`${this.basePath}.countdowns.-=${target.dataset.countdown}`]: null }); + + await this.updateSetting(countdownSetting.toObject()); + } + + async open() { + await this.render(true); + if ( + Object.keys( + game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns)[this.basePath].countdowns + ).length > 0 + ) { + this.minimize(); } } } + +export class NarrativeCountdowns extends Countdowns { + constructor() { + super('narrative'); + } + + static DEFAULT_OPTIONS = { + id: 'narrative-countdowns' + }; +} + +export class EncounterCountdowns extends Countdowns { + constructor() { + super('encounter'); + } + + static DEFAULT_OPTIONS = { + id: 'encounter-countdowns' + }; +} + +export async function updateCountdowns(progressType) { + const countdownSetting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); + const update = Object.keys(countdownSetting).reduce((update, typeKey) => { + return foundry.utils.mergeObject( + update, + Object.keys(countdownSetting[typeKey].countdowns).reduce((acc, countdownKey) => { + const countdown = countdownSetting[typeKey].countdowns[countdownKey]; + if (countdown.progress.current > 0 && countdown.progress.type.value === progressType) { + acc[`${typeKey}.countdowns.${countdownKey}.progress.current`] = countdown.progress.current - 1; + } + + return acc; + }, {}) + ); + }, {}); + + await countdownSetting.updateSource(update); + await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns, countdownSetting); + + const data = { refreshType: RefreshType.Countdown }; + await game.socket.emit(`system.${CONFIG.DH.id}`, { + action: socketEvent.Refresh, + data + }); + Hooks.callAll(socketEvent.Refresh, data); +} diff --git a/module/applications/ui/effectsDisplay.mjs b/module/applications/ui/effectsDisplay.mjs deleted file mode 100644 index 0875e783..00000000 --- a/module/applications/ui/effectsDisplay.mjs +++ /dev/null @@ -1,117 +0,0 @@ -import { RefreshType } from '../../systemRegistration/socket.mjs'; - -const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; - -/** - * A UI element which displays the Active Effects on a selected token. - * - * @extends ApplicationV2 - * @mixes HandlebarsApplication - */ - -export default class DhEffectsDisplay extends HandlebarsApplicationMixin(ApplicationV2) { - constructor(options = {}) { - super(options); - - this.setupHooks(); - } - - /** @inheritDoc */ - static DEFAULT_OPTIONS = { - id: 'effects-display', - tag: 'div', - classes: ['daggerheart', 'dh-style', 'effects-display'], - window: { - frame: false, - positioned: false, - resizable: false, - minimizable: false - }, - actions: {} - }; - - /** @override */ - static PARTS = { - resources: { - root: true, - template: 'systems/daggerheart/templates/ui/effects-display.hbs' - } - }; - - get element() { - return document.body.querySelector('.daggerheart.dh-style.effects-display'); - } - - get hidden() { - return this.element.classList.contains('hidden'); - } - - _attachPartListeners(partId, htmlElement, options) { - super._attachPartListeners(partId, htmlElement, options); - - if (this.element) { - this.element.querySelectorAll('.effect-container a').forEach(element => { - element.addEventListener('contextmenu', this.removeEffect.bind(this)); - }); - } - } - - /** @override */ - async _prepareContext(options) { - const context = await super._prepareContext(options); - context.effects = DhEffectsDisplay.getTokenEffects(); - - return context; - } - - static getTokenEffects = token => { - const actor = token - ? token.actor - : canvas.tokens.controlled.length === 0 - ? !game.user.isGM - ? game.user.character - : null - : canvas.tokens.controlled[0].actor; - return actor?.getActiveEffects() ?? []; - }; - - toggleHidden(token, focused) { - const effects = DhEffectsDisplay.getTokenEffects(focused ? token : null); - this.element.hidden = effects.length === 0; - - Hooks.callAll(CONFIG.DH.HOOKS.effectDisplayToggle, this.element.hidden, token); - - this.render(); - } - - async removeEffect(event) { - const element = event.target.closest('.effect-container'); - const effects = DhEffectsDisplay.getTokenEffects(); - const effect = effects.find(x => x.id === element.dataset.effectId); - await effect.delete(); - this.render(); - } - - setupHooks() { - Hooks.on('controlToken', this.toggleHidden.bind(this)); - Hooks.on(RefreshType.EffectsDisplay, this.toggleHidden.bind(this)); - } - - async close(options) { - /* Opt out of Foundry's standard behavior of closing all application windows marked as UI when Escape is pressed */ - if (options.closeKey) return; - - Hooks.off('controlToken', this.toggleHidden); - Hooks.off(RefreshType.EffectsDisplay, this.toggleHidden); - return super.close(options); - } - - async _onRender(context, options) { - await super._onRender(context, options); - - this.element.hidden = context.effects.length === 0; - if (options?.force) { - document.getElementById('ui-right-column-1')?.appendChild(this.element); - } - } -} diff --git a/module/applications/ui/fearTracker.mjs b/module/applications/ui/fearTracker.mjs index e9c816db..ace2bbb2 100644 --- a/module/applications/ui/fearTracker.mjs +++ b/module/applications/ui/fearTracker.mjs @@ -1,4 +1,4 @@ -import { emitAsGM, GMUpdateEvent } from '../../systemRegistration/socket.mjs'; +import { emitAsGM, GMUpdateEvent, socketEvent } from "../../systemRegistration/socket.mjs"; const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; @@ -78,7 +78,7 @@ export default class FearTracker extends HandlebarsApplicationMixin(ApplicationV /** @override */ async _preRender(context, options) { - if (this.currentFear > this.maxFear && game.user.isGM) + if (this.currentFear > this.maxFear) await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear, this.maxFear); } @@ -106,10 +106,19 @@ export default class FearTracker extends HandlebarsApplicationMixin(ApplicationV } async updateFear(value) { - return emitAsGM( - GMUpdateEvent.UpdateFear, - game.settings.set.bind(game.settings, CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear), - value - ); + return emitAsGM(GMUpdateEvent.UpdateFear, game.settings.set.bind(game.settings, CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear), value); + /* if(!game.user.isGM) + await game.socket.emit(`system.${CONFIG.DH.id}`, { + action: socketEvent.GMUpdate, + data: { + action: GMUpdateEvent.UpdateFear, + update: value + } + }); + else + game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear, value); */ + /* if (!game.user.isGM) return; + value = Math.max(0, Math.min(this.maxFear, value)); + await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear, value); */ } } diff --git a/module/applications/ui/itemBrowser.mjs b/module/applications/ui/itemBrowser.mjs index 794c3fb6..9b9bef91 100644 --- a/module/applications/ui/itemBrowser.mjs +++ b/module/applications/ui/itemBrowser.mjs @@ -15,14 +15,16 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { this.fieldFilter = []; this.selectedMenu = { path: [], data: null }; this.config = CONFIG.DH.ITEMBROWSER.compendiumConfig; - this.presets = {}; - this.compendiumBrowserTypeKey = 'compendiumBrowserDefault'; + this.presets = options.presets; + + if (this.presets?.compendium && this.presets?.folder) + ItemBrowser.selectFolder.call(this, null, null, this.presets.compendium, this.presets.folder); } /** @inheritDoc */ static DEFAULT_OPTIONS = { id: 'itemBrowser', - classes: ['daggerheart', 'dh-style', 'dialog', 'compendium-browser', 'daggerheart-loader'], + classes: ['daggerheart', 'dh-style', 'dialog', 'compendium-browser'], tag: 'div', window: { frame: true, @@ -82,29 +84,17 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { } }; + /** @inheritDoc */ + async _preFirstRender(context, options) { + if (context.presets?.render?.noFolder || context.presets?.render?.lite) options.position.width = 600; + + await super._preFirstRender(context, options); + } + /** @inheritDoc */ async _preRender(context, options) { - this.presets = options.presets ?? {}; - const noFolder = this.presets?.render?.noFolder; - if (noFolder === true) { - this.compendiumBrowserTypeKey = 'compendiumBrowserNoFolder'; - } - const lite = this.presets?.render?.lite; - if (lite === true) { - this.compendiumBrowserTypeKey = 'compendiumBrowserLite'; - } - const userPresetPosition = game.user.getFlag( - CONFIG.DH.id, - CONFIG.DH.FLAGS[`${this.compendiumBrowserTypeKey}`].position - ); - - options.position = userPresetPosition ?? ItemBrowser.DEFAULT_OPTIONS.position; - - if (!userPresetPosition) { - const width = noFolder === true || lite === true ? 600 : 850; - if (this.rendered) this.setPosition({ width }); - else options.position.width = width; - } + if (context.presets?.render?.noFolder || context.presets?.render?.lite) + options.parts.splice(options.parts.indexOf('sidebar'), 1); await super._preRender(context, options); } @@ -113,35 +103,32 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { async _onRender(context, options) { await super._onRender(context, options); - this.element - .querySelectorAll('[data-action="selectFolder"]') - .forEach(element => - element.classList.toggle('is-selected', element.dataset.folderId === this.selectedMenu.path.join('.')) - ); - this._createSearchFilter(); + this._createFilterInputs(); + this._createDragProcess(); - this.element.classList.toggle('lite', this.presets?.render?.lite === true); - this.element.classList.toggle('no-folder', this.presets?.render?.noFolder === true); - this.element.classList.toggle('no-filter', this.presets?.render?.noFilter === true); - this.element.querySelectorAll('.folder-list > [data-action="selectFolder"]').forEach(element => { - element.hidden = - this.presets.render?.folders?.length && !this.presets.render.folders.includes(element.dataset.folderId); - }); - } + if (context.presets?.render?.lite) this.element.classList.add('lite'); - _onPosition(position) { - game.user.setFlag(CONFIG.DH.id, CONFIG.DH.FLAGS[`${this.compendiumBrowserTypeKey}`].position, position); + if (context.presets?.render?.noFolder) this.element.classList.add('no-folder'); + + if (context.presets?.render?.noFilter) this.element.classList.add('no-filter'); + + if (this.presets?.filter) { + Object.entries(this.presets.filter).forEach( + ([k, v]) => (this.fieldFilter.find(c => c.name === k).value = v.value) + ); + await this._onInputFilterBrowser(); + } } _attachPartListeners(partId, htmlElement, options) { super._attachPartListeners(partId, htmlElement, options); - htmlElement.querySelectorAll('[data-action="selectFolder"]').forEach(element => - element.addEventListener('contextmenu', event => { + htmlElement + .querySelectorAll('[data-action="selectFolder"]') + .forEach(element => element.addEventListener("contextmenu", (event) => { event.target.classList.toggle('expanded'); - }) - ); + })) } /* -------------------------------------------- */ @@ -152,26 +139,22 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { async _prepareContext(options) { const context = await super._prepareContext(options); context.compendiums = this.getCompendiumFolders(foundry.utils.deepClone(this.config)); + // context.pathTitle = this.pathTile; context.menu = this.selectedMenu; context.formatLabel = this.formatLabel; context.formatChoices = this.formatChoices; + context.fieldFilter = this.fieldFilter = this._createFieldFilter(); context.items = this.items; context.presets = this.presets; return context; } - open(presets = {}) { - this.presets = presets; - ItemBrowser.selectFolder.call(this); - } - getCompendiumFolders(config, parent = null, depth = 0) { let folders = []; Object.values(config).forEach(c => { - // if(this.presets.render?.folders?.length && !this.presets.render.folders.includes(c.id)) return; const folder = { id: c.id, - label: game.i18n.localize(c.label), + label: c.label, selected: (!parent || parent.selected) && this.selectedMenu.path[depth] === c.id }; folder.folders = c.folders @@ -179,108 +162,47 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { : []; folders.push(folder); }); - folders.sort((a, b) => a.label.localeCompare(b.label)); return folders; } - static async selectFolder(_, target) { - const folderId = target?.dataset?.folderId ?? this.presets.folder, - folderData = foundry.utils.getProperty(this.config, folderId) ?? {}; - - const columns = ItemBrowser.getFolderConfig(folderData).map(col => ({ - ...col, - label: game.i18n.localize(col.label) - })); + static async selectFolder(_, target, compend, folder) { + const config = foundry.utils.deepClone(this.config), + compendium = compend ?? target.closest('[data-compendium-id]').dataset.compendiumId, + folderId = folder ?? target.dataset.folderId, + folderPath = `${compendium}.folders.${folderId}`, + folderData = foundry.utils.getProperty(config, folderPath); this.selectedMenu = { - path: folderId?.split('.') ?? [], + path: folderPath.split('.'), data: { ...folderData, - columns: columns + columns: ItemBrowser.getFolderConfig(folderData) } }; - await this.render({ force: true, presets: this.presets }); + let items = []; + for (const key of folderData.keys) { + const comp = game.packs.get(`${compendium}.${key}`); + if (!comp) return; + items = items.concat(await comp.getDocuments({ type__in: folderData.type })); + } - if (this.selectedMenu?.data?.type?.length) this.loadItems(); + this.items = ItemBrowser.sortBy(items, 'name'); + + if(target) { + target.closest('.compendium-sidebar').querySelectorAll('[data-action="selectFolder"]').forEach(element => element.classList.remove("is-selected")) + target.classList.add('is-selected'); + } + + this.render({ force: true }); } _replaceHTML(result, content, options) { - if (!options.isFirstRender) delete result.sidebar; + if(!options.isFirstRender) delete result.sidebar; super._replaceHTML(result, content, options); } - loadItems() { - let loadTimeout = this.toggleLoader(true); - - const promises = []; - - game.packs.forEach(pack => { - promises.push( - new Promise(async resolve => { - const items = await pack.getDocuments({ type__in: this.selectedMenu?.data?.type }); - resolve(items); - }) - ); - }); - - Promise.all(promises).then(async result => { - this.items = ItemBrowser.sortBy( - result.flatMap(r => r), - 'name' - ); - this.fieldFilter = this._createFieldFilter(); - - if (this.presets?.filter) { - Object.entries(this.presets.filter).forEach(([k, v]) => { - const filter = this.fieldFilter.find(c => c.name === k); - if (filter) filter.value = v.value; - }); - // await this._onInputFilterBrowser(); - } - - const filterList = await foundry.applications.handlebars.renderTemplate( - 'systems/daggerheart/templates/ui/itemBrowser/filterContainer.hbs', - { - fieldFilter: this.fieldFilter, - presets: this.presets, - formatChoices: this.formatChoices - } - ); - - this.element.querySelector('.filter-content .wrapper').innerHTML = filterList; - const filterContainer = this.element.querySelector('.filter-header > [data-action="expandContent"]'); - if (this.fieldFilter.length === 0) filterContainer.setAttribute('disabled', ''); - else filterContainer.removeAttribute('disabled'); - - const itemList = await foundry.applications.handlebars.renderTemplate( - 'systems/daggerheart/templates/ui/itemBrowser/itemContainer.hbs', - { - items: this.items, - menu: this.selectedMenu, - formatLabel: this.formatLabel - } - ); - - this.element.querySelector('.item-list').innerHTML = itemList; - - this._createFilterInputs(); - await this._onInputFilterBrowser(); - this._createDragProcess(); - - clearTimeout(loadTimeout); - this.toggleLoader(false); - }); - } - - toggleLoader(state) { - const container = this.element.querySelector('.item-list'); - return setTimeout(() => { - container.classList.toggle('daggerheart-loader', state); - }, 100); - } - static expandContent(_, target) { const parent = target.parentElement; parent.classList.toggle('expanded'); @@ -294,7 +216,7 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { const property = foundry.utils.getProperty(item, field.key); if (Array.isArray(property)) property.join(', '); if (typeof field.format !== 'function') return property ?? '-'; - return game.i18n.localize(field.format(property)); + return field.format(property); } formatChoices(data) { @@ -315,12 +237,6 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { else if (typeof f.choices === 'function') { f.choices = f.choices(this.items); } - - // Clear field label so template uses our custom label parameter - if (f.field && f.label) { - f.field.label = undefined; - } - f.name ??= f.key; f.value = this.presets?.filter?.[f.name]?.value ?? null; }); @@ -398,7 +314,6 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { for (const li of html.querySelectorAll('.item-container')) { const itemUUID = li.dataset.itemUuid, item = this.items.find(i => i.uuid === itemUUID); - if (!item) continue; const matchesSearch = !query || foundry.applications.ux.SearchFilter.testQuery(rgx, item.name); if (matchesSearch) this.#filteredItems.browser.search.add(item.id); const { input } = this.#filteredItems.browser; @@ -421,7 +336,7 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { item = this.items.find(i => i.uuid === itemUUID); if (!item) continue; - + const matchesMenu = this.fieldFilter.length === 0 || this.fieldFilter.every( @@ -430,7 +345,7 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { if (matchesMenu) this.#filteredItems.browser.input.add(item.id); const { search } = this.#filteredItems.browser; - li.hidden = !((this.#search.browser.query.length === 0 || search.has(item.id)) && matchesMenu); + li.hidden = !(search.has(item.id) && matchesMenu); } } @@ -469,7 +384,6 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { static resetFilters() { this.render({ force: true }); - this.loadItems(); } static getFolderConfig(folder, property = 'columns') { @@ -491,13 +405,11 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { const newOrder = [...itemList].reverse().sort((a, b) => { const aProp = a.querySelector(`[data-item-key="${key}"]`), - bProp = b.querySelector(`[data-item-key="${key}"]`), - aValue = isNaN(aProp.innerText) ? aProp.innerText : Number(aProp.innerText), - bValue = isNaN(bProp.innerText) ? bProp.innerText : Number(bProp.innerText); + bProp = b.querySelector(`[data-item-key="${key}"]`); if (type === 'DESC') { - return aValue < bValue ? 1 : -1; + return aProp.innerText < bProp.innerText ? 1 : -1; } else { - return aValue > bValue ? 1 : -1; + return aProp.innerText > bProp.innerText ? 1 : -1; } }); @@ -526,41 +438,4 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { _canDragStart() { return true; } - - static injectSidebarButton(html) { - if (!game.user.isGM) return; - const sectionId = html.dataset.tab, - menus = { - actors: { - folder: 'adversaries', - render: { - folders: ['adversaries', 'characters', 'environments'] - } - }, - items: { - folder: 'equipments', - render: { - noFolder: true - } - }, - compendium: {} - }; - - if (Object.keys(menus).includes(sectionId)) { - const headerActions = html.querySelector('.header-actions'); - - const button = document.createElement('button'); - button.type = 'button'; - button.classList.add('open-compendium-browser'); - button.innerHTML = ` - - ${game.i18n.localize('DAGGERHEART.UI.Tooltip.compendiumBrowser')} - `; - button.addEventListener('click', event => { - ui.compendiumBrowser.open(menus[sectionId]); - }); - - headerActions.append(button); - } - } } diff --git a/module/canvas/placeables/measuredTemplate.mjs b/module/canvas/placeables/measuredTemplate.mjs index ef7d284b..c9950650 100644 --- a/module/canvas/placeables/measuredTemplate.mjs +++ b/module/canvas/placeables/measuredTemplate.mjs @@ -10,48 +10,29 @@ export default class DhMeasuredTemplate extends foundry.canvas.placeables.Measur const splitRulerText = this.ruler.text.split(' '); if (splitRulerText.length > 0) { const rulerValue = Number(splitRulerText[0]); - const result = DhMeasuredTemplate.getRangeLabels(rulerValue, rangeMeasurementSettings); - this.ruler.text = result.distance + (result.units ? ' ' + result.units : ''); + const vagueLabel = this.constructor.getDistanceLabel(rulerValue, rangeMeasurementSettings); + this.ruler.text = vagueLabel; } } } - static getRangeLabels(distanceValue, settings) { - let result = { distance: distanceValue, units: '' }; - const sceneRangeMeasurement = canvas.scene.flags.daggerheart?.rangeMeasurement; - - const { disable, custom } = CONFIG.DH.GENERAL.sceneRangeMeasurementSetting; - if (sceneRangeMeasurement?.setting === disable.id) { - result.distance = distanceValue; - result.units = canvas.scene?.grid?.units; - return result; + static getDistanceLabel(distance, settings) { + if (distance <= settings.melee) { + return game.i18n.localize('DAGGERHEART.CONFIG.Range.melee.name'); + } + if (distance <= settings.veryClose) { + return game.i18n.localize('DAGGERHEART.CONFIG.Range.veryClose.name'); + } + if (distance <= settings.close) { + return game.i18n.localize('DAGGERHEART.CONFIG.Range.close.name'); + } + if (distance <= settings.far) { + return game.i18n.localize('DAGGERHEART.CONFIG.Range.far.name'); + } + if (distance > settings.far) { + return game.i18n.localize('DAGGERHEART.CONFIG.Range.veryFar.name'); } - const melee = sceneRangeMeasurement?.setting === custom.id ? sceneRangeMeasurement.melee : settings.melee; - const veryClose = - sceneRangeMeasurement?.setting === custom.id ? sceneRangeMeasurement.veryClose : settings.veryClose; - const close = sceneRangeMeasurement?.setting === custom.id ? sceneRangeMeasurement.close : settings.close; - const far = sceneRangeMeasurement?.setting === custom.id ? sceneRangeMeasurement.far : settings.far; - if (distanceValue <= melee) { - result.distance = game.i18n.localize('DAGGERHEART.CONFIG.Range.melee.name'); - return result; - } - if (distanceValue <= veryClose) { - result.distance = game.i18n.localize('DAGGERHEART.CONFIG.Range.veryClose.name'); - return result; - } - if (distanceValue <= close) { - result.distance = game.i18n.localize('DAGGERHEART.CONFIG.Range.close.name'); - return result; - } - if (distanceValue <= far) { - result.distance = game.i18n.localize('DAGGERHEART.CONFIG.Range.far.name'); - return result; - } - if (distanceValue > far) { - result.distance = game.i18n.localize('DAGGERHEART.CONFIG.Range.veryFar.name'); - } - - return result; + return ''; } } diff --git a/module/canvas/placeables/ruler.mjs b/module/canvas/placeables/ruler.mjs index 6e2f220d..6585a1cd 100644 --- a/module/canvas/placeables/ruler.mjs +++ b/module/canvas/placeables/ruler.mjs @@ -8,9 +8,9 @@ export default class DhpRuler extends foundry.canvas.interaction.Ruler { const range = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules).rangeMeasurement; if (range.enabled) { - const result = DhMeasuredTemplate.getRangeLabels(waypoint.measurement.distance.toNearest(0.01), range); - context.cost = { total: result.distance, units: result.units }; - context.distance = { total: result.distance, units: result.units }; + const distance = DhMeasuredTemplate.getDistanceLabel(waypoint.measurement.distance.toNearest(0.01), range); + context.cost = { total: distance, units: null }; + context.distance = { total: distance, units: null }; } return context; diff --git a/module/canvas/placeables/token.mjs b/module/canvas/placeables/token.mjs index e8b85938..09b3b192 100644 --- a/module/canvas/placeables/token.mjs +++ b/module/canvas/placeables/token.mjs @@ -10,7 +10,29 @@ export default class DhTokenPlaceable extends foundry.canvas.placeables.Token { this.effects.overlay = null; // Categorize effects - const activeEffects = this.actor?.getActiveEffects() ?? []; + const statusMap = new Map(foundry.CONFIG.statusEffects.map(status => [status.id, status])); + const activeEffects = (this.actor ? this.actor.effects.filter(x => !x.disabled) : []).reduce((acc, effect) => { + acc.push(effect); + + const currentStatusActiveEffects = acc.filter( + x => x.statuses.size === 1 && x.name === game.i18n.localize(statusMap.get(x.statuses.first())?.name) + ); + for (var status of effect.statuses) { + if (!currentStatusActiveEffects.find(x => x.statuses.has(status))) { + const statusData = statusMap.get(status); + if (statusData) { + acc.push({ + name: game.i18n.localize(statusData.name), + statuses: [status], + img: statusData.icon, + tint: effect.tint + }); + } + } + } + + return acc; + }, []); const overlayEffect = activeEffects.findLast(e => e.img && e.getFlag?.('core', 'overlay')); // Draw effects @@ -34,69 +56,6 @@ export default class DhTokenPlaceable extends foundry.canvas.placeables.Token { this.renderFlags.set({ refreshEffects: true }); } - /** - * Returns the distance from this token to another token object. - * This value is corrected to handle alternate token sizes and other grid types - * according to the diagonal rules. - */ - distanceTo(target) { - if (!canvas.ready) return NaN; - if (this === target) return 0; - - const originPoint = this.center; - const destinationPoint = target.center; - - // Compute for gridless. This version returns circular edge to edge + grid distance, - // so that tokens that are touching return 5. - if (canvas.grid.type === CONST.GRID_TYPES.GRIDLESS) { - const boundsCorrection = canvas.grid.distance / canvas.grid.size; - const originRadius = this.bounds.width * boundsCorrection / 2; - const targetRadius = target.bounds.width * boundsCorrection / 2; - const distance = canvas.grid.measurePath([originPoint, destinationPoint]).distance; - return distance - originRadius - targetRadius + canvas.grid.distance; - } - - // Compute what the closest grid space of each token is, then compute that distance - const originEdge = this.#getEdgeBoundary(this.bounds, originPoint, destinationPoint); - const targetEdge = this.#getEdgeBoundary(target.bounds, originPoint, destinationPoint); - const adjustedOriginPoint = canvas.grid.getTopLeftPoint({ - x: originEdge.x + Math.sign(originPoint.x - originEdge.x), - y: originEdge.y + Math.sign(originPoint.y - originEdge.y) - }); - const adjustDestinationPoint = canvas.grid.getTopLeftPoint({ - x: targetEdge.x + Math.sign(destinationPoint.x - targetEdge.x), - y: targetEdge.y + Math.sign(destinationPoint.y - targetEdge.y) - }); - return canvas.grid.measurePath([adjustedOriginPoint, adjustDestinationPoint]).distance; - } - - /** Returns the point at which a line starting at origin and ending at destination intersects the edge of the bounds */ - #getEdgeBoundary(bounds, originPoint, destinationPoint) { - const points = [ - { x: bounds.x, y: bounds.y }, - { x: bounds.x + bounds.width, y: bounds.y }, - { x: bounds.x + bounds.width, y: bounds.y + bounds.height }, - { x: bounds.x, y: bounds.y + bounds.height } - ]; - const pairsToTest = [ - [points[0], points[1]], - [points[1], points[2]], - [points[2], points[3]], - [points[3], points[0]] - ]; - for (const pair of pairsToTest) { - const result = foundry.utils.lineSegmentIntersection(originPoint, destinationPoint, pair[0], pair[1]); - if (result) return result; - } - - return null; - } - - /** Tests if the token is at least adjacent with another, with some leeway for diagonals */ - isAdjacentWith(token) { - return this.distanceTo(token) <= (canvas.grid.distance * 1.5); - } - /** @inheritDoc */ _drawBar(number, bar, data) { const val = Number(data.value); diff --git a/module/canvas/placeables/tokenRuler.mjs b/module/canvas/placeables/tokenRuler.mjs index 056953f8..ff8fc0d5 100644 --- a/module/canvas/placeables/tokenRuler.mjs +++ b/module/canvas/placeables/tokenRuler.mjs @@ -8,9 +8,9 @@ export default class DhpTokenRuler extends foundry.canvas.placeables.tokens.Toke const range = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules).rangeMeasurement; if (range.enabled) { - const result = DhMeasuredTemplate.getRangeLabels(waypoint.measurement.distance.toNearest(0.01), range); - context.cost = { total: result.distance, units: result.units }; - context.distance = { total: result.distance, units: result.units }; + const distance = DhMeasuredTemplate.getDistanceLabel(waypoint.measurement.distance.toNearest(0.01), range); + context.cost = { total: distance, units: null }; + context.distance = { total: distance, units: null }; } return context; diff --git a/module/config/_module.mjs b/module/config/_module.mjs index ef26b958..63797607 100644 --- a/module/config/_module.mjs +++ b/module/config/_module.mjs @@ -2,10 +2,8 @@ export * as actionConfig from './actionConfig.mjs'; export * as actorConfig from './actorConfig.mjs'; export * as domainConfig from './domainConfig.mjs'; export * as effectConfig from './effectConfig.mjs'; -export * as encounterConfig from './encounterConfig.mjs'; export * as flagsConfig from './flagsConfig.mjs'; export * as generalConfig from './generalConfig.mjs'; -export * as hooksConfig from './hooksConfig.mjs'; export * as itemConfig from './itemConfig.mjs'; export * as settingsConfig from './settingsConfig.mjs'; export * as systemConfig from './system.mjs'; diff --git a/module/config/actionConfig.mjs b/module/config/actionConfig.mjs index c9b70193..3c669a7b 100644 --- a/module/config/actionConfig.mjs +++ b/module/config/actionConfig.mjs @@ -2,15 +2,9 @@ export const actionTypes = { attack: { id: 'attack', name: 'DAGGERHEART.ACTIONS.TYPES.attack.name', - icon: 'fa-hand-fist', + icon: 'fa-khanda', tooltip: 'DAGGERHEART.ACTIONS.TYPES.attack.tooltip' }, - countdown: { - id: 'countdown', - name: 'DAGGERHEART.ACTIONS.TYPES.countdown.name', - icon: 'fa-hourglass-half', - tooltip: 'DAGGERHEART.ACTIONS.TYPES.countdown.tooltip' - }, healing: { id: 'healing', name: 'DAGGERHEART.ACTIONS.TYPES.healing.name', diff --git a/module/config/actorConfig.mjs b/module/config/actorConfig.mjs index fdef7d03..6453cd78 100644 --- a/module/config/actorConfig.mjs +++ b/module/config/actorConfig.mjs @@ -108,72 +108,55 @@ export const adversaryTypes = { bruiser: { id: 'bruiser', label: 'DAGGERHEART.CONFIG.AdversaryType.bruiser.label', - description: 'DAGGERHEART.ACTORS.Adversary.bruiser.description', - bpCost: 4 + description: 'DAGGERHEART.ACTORS.Adversary.bruiser.description' }, horde: { id: 'horde', label: 'DAGGERHEART.CONFIG.AdversaryType.horde.label', - description: 'DAGGERHEART.ACTORS.Adversary.horde.description', - bpCost: 2 + description: 'DAGGERHEART.ACTORS.Adversary.horde.description' }, leader: { id: 'leader', label: 'DAGGERHEART.CONFIG.AdversaryType.leader.label', - description: 'DAGGERHEART.ACTORS.Adversary.leader.description', - bpCost: 3, - bpDescription: 'DAGGERHEART.CONFIG.AdversaryType.leader.' + description: 'DAGGERHEART.ACTORS.Adversary.leader.description' }, minion: { id: 'minion', label: 'DAGGERHEART.CONFIG.AdversaryType.minion.label', - description: 'DAGGERHEART.ACTORS.Adversary.minion.description', - bpCost: 1, - partyAmountPerBP: true + description: 'DAGGERHEART.ACTORS.Adversary.minion.description' }, ranged: { id: 'ranged', label: 'DAGGERHEART.CONFIG.AdversaryType.ranged.label', - description: 'DAGGERHEART.ACTORS.Adversary.ranged.description', - bpCost: 2 + description: 'DAGGERHEART.ACTORS.Adversary.ranged.description' }, skulk: { id: 'skulk', label: 'DAGGERHEART.CONFIG.AdversaryType.skulk.label', - description: 'DAGGERHEART.ACTORS.Adversary.skulk.description', - bpCost: 2 + description: 'DAGGERHEART.ACTORS.Adversary.skulk.description' }, social: { id: 'social', label: 'DAGGERHEART.CONFIG.AdversaryType.social.label', - description: 'DAGGERHEART.ACTORS.Adversary.social.description', - bpCost: 1 + description: 'DAGGERHEART.ACTORS.Adversary.social.description' }, solo: { id: 'solo', label: 'DAGGERHEART.CONFIG.AdversaryType.solo.label', - description: 'DAGGERHEART.ACTORS.Adversary.solo.description', - bpCost: 5 + description: 'DAGGERHEART.ACTORS.Adversary.solo.description' }, standard: { id: 'standard', label: 'DAGGERHEART.CONFIG.AdversaryType.standard.label', - description: 'DAGGERHEART.ACTORS.Adversary.standard.description', - bpCost: 2 + description: 'DAGGERHEART.ACTORS.Adversary.standard.description' }, support: { id: 'support', label: 'DAGGERHEART.CONFIG.AdversaryType.support.label', - description: 'DAGGERHEART.ACTORS.Adversary.support.description', - bpCost: 1 + description: 'DAGGERHEART.ACTORS.Adversary.support.description' } }; -export const allAdversaryTypes = () => ({ - ...adversaryTypes, - ...game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).adversaryTypes -}); - export const environmentTypes = { exploration: { label: 'DAGGERHEART.CONFIG.EnvironmentType.exploration.label', @@ -211,44 +194,6 @@ export const adversaryTraits = { } }; -export const tokenSize = { - custom: { - id: 'custom', - value: 0, - label: 'DAGGERHEART.GENERAL.custom' - }, - tiny: { - id: 'tiny', - value: 1, - label: 'DAGGERHEART.CONFIG.TokenSize.tiny' - }, - small: { - id: 'small', - value: 2, - label: 'DAGGERHEART.CONFIG.TokenSize.small' - }, - medium: { - id: 'medium', - value: 3, - label: 'DAGGERHEART.CONFIG.TokenSize.medium' - }, - large: { - id: 'large', - value: 4, - label: 'DAGGERHEART.CONFIG.TokenSize.large' - }, - huge: { - id: 'huge', - value: 5, - label: 'DAGGERHEART.CONFIG.TokenSize.huge' - }, - gargantuan: { - id: 'gargantuan', - value: 6, - label: 'DAGGERHEART.CONFIG.TokenSize.gargantuan' - } -}; - export const levelChoices = { attributes: { name: 'attributes', diff --git a/module/config/encounterConfig.mjs b/module/config/encounterConfig.mjs deleted file mode 100644 index 4e0f8a6e..00000000 --- a/module/config/encounterConfig.mjs +++ /dev/null @@ -1,146 +0,0 @@ -export const BaseBPPerEncounter = nrCharacters => 3 * nrCharacters + 2; - -export const AdversaryBPPerEncounter = (adversaries, characters) => { - const adversaryTypes = CONFIG.DH.ACTOR.allAdversaryTypes(); - return adversaries - .reduce((acc, adversary) => { - const existingEntry = acc.find( - x => x.adversary.name === adversary.name && x.adversary.type === adversary.type - ); - if (existingEntry) { - existingEntry.nr += 1; - } else if (adversary.type) { - acc.push({ adversary, nr: 1 }); - } - return acc; - }, []) - .reduce((acc, entry) => { - const adversary = entry.adversary; - const type = adversaryTypes[adversary.type]; - const bpCost = type.bpCost ?? 0; - if (type.partyAmountPerBP) { - acc += characters.length === 0 ? 0 : Math.ceil(entry.nr / characters.length); - } else { - acc += bpCost * entry.nr; - } - - return acc; - }, 0); -}; - -export const adversaryTypeCostBrackets = { - 1: [ - { - sort: 1, - types: ['minion'], - description: 'DAGGERHEART.CONFIG.AdversaryTypeCost.minion' - }, - { - sort: 2, - types: ['social', 'support'], - description: 'DAGGERHEART.CONFIG.AdversaryTypeCost.support' - } - ], - 2: [ - { - sort: 1, - types: ['horde', 'ranged', 'skulk', 'standard'], - description: 'DAGGERHEART.CONFIG.AdversaryTypeCost.standard' - } - ], - 3: [ - { - sort: 1, - types: ['leader'], - description: 'DAGGERHEART.CONFIG.AdversaryTypeCost.leader' - } - ], - 4: [ - { - sort: 1, - types: ['bruiser'], - description: 'DAGGERHEART.CONFIG.AdversaryTypeCost.bruiser' - } - ], - 5: [ - { - sort: 1, - types: ['solo'], - description: 'DAGGERHEART.CONFIG.AdversaryTypeCost.solo' - } - ] -}; - -export const BPModifiers = { - [-2]: { - manySolos: { - sort: 1, - description: 'DAGGERHEART.CONFIG.BPModifiers.manySolos.description', - automatic: true, - conditional: (_combat, adversaries) => { - return adversaries.filter(x => x.system.type === 'solo').length > 1; - } - }, - increaseDamage: { - sort: 2, - description: 'DAGGERHEART.CONFIG.BPModifiers.increaseDamage.description', - effectTargetTypes: ['adversary'], - effects: [ - { - name: 'DAGGERHEART.CONFIG.BPModifiers.increaseDamage.effect.name', - description: 'DAGGERHEART.CONFIG.BPModifiers.increaseDamage.effect.description', - img: 'icons/magic/control/buff-flight-wings-red.webp', - changes: [ - { - key: 'system.bonuses.damage.physical.dice', - mode: 2, - value: '1d4' - }, - { - key: 'system.bonuses.damage.magical.dice', - mode: 2, - value: '1d4' - } - ] - } - ] - } - }, - [-1]: { - lessDifficult: { - sort: 2, - description: 'DAGGERHEART.CONFIG.BPModifiers.lessDifficult.description' - } - }, - 1: { - lowerTier: { - sort: 1, - description: 'DAGGERHEART.CONFIG.BPModifiers.lowerTier.description', - automatic: true, - conditional: (_combat, adversaries, characters) => { - const characterMaxTier = characters.reduce((maxTier, character) => { - return character.system.tier > maxTier ? character.system.tier : maxTier; - }, 1); - return adversaries.some(adversary => adversary.system.tier < characterMaxTier); - } - }, - noToughies: { - sort: 2, - description: 'DAGGERHEART.CONFIG.BPModifiers.noToughies.description', - automatic: true, - conditional: (_combat, adversaries) => { - const toughyTypes = ['bruiser', 'horde', 'leader', 'solo']; - return ( - adversaries.length > 0 && - !adversaries.some(adversary => toughyTypes.includes(adversary.system.type)) - ); - } - } - }, - 2: { - moreDangerous: { - sort: 2, - description: 'DAGGERHEART.CONFIG.BPModifiers.moreDangerous.description' - } - } -}; diff --git a/module/config/flagsConfig.mjs b/module/config/flagsConfig.mjs index 817ac89d..91712288 100644 --- a/module/config/flagsConfig.mjs +++ b/module/config/flagsConfig.mjs @@ -1,4 +1,4 @@ -export const displayDomainCardsAsCard = 'displayDomainCardsAsCard'; +export const displayDomainCardsAsList = 'displayDomainCardsAsList'; export const narrativeCountdown = { simple: 'countdown-narrative-simple', position: 'countdown-narrative-position' @@ -8,23 +8,8 @@ export const encounterCountdown = { position: 'countdown-encounter-position' }; -export const compendiumBrowserDefault = { - position: 'compendium-browser-default-position' -}; - -export const compendiumBrowserNoFolder = { - position: 'compendium-browser-no-folder-position' -}; - -export const compendiumBrowserLite = { - position: 'compendium-browser-lite-position' -}; - export const itemAttachmentSource = 'attachmentSource'; export const userFlags = { - welcomeMessage: 'welcome-message', - countdownMode: 'countdown-mode' + welcomeMessage: 'welcome-message' }; - -export const combatToggle = 'combat-toggle-origin'; diff --git a/module/config/generalConfig.mjs b/module/config/generalConfig.mjs index 3f49f7aa..34ca6009 100644 --- a/module/config/generalConfig.mjs +++ b/module/config/generalConfig.mjs @@ -90,22 +90,22 @@ export const rangeInclusion = { export const otherTargetTypes = { friendly: { id: 'friendly', - label: 'DAGGERHEART.CONFIG.TargetTypes.friendly' + label: 'Friendly' }, hostile: { id: 'hostile', - label: 'DAGGERHEART.CONFIG.TargetTypes.hostile' + label: 'Hostile' }, any: { id: 'any', - label: 'DAGGERHEART.CONFIG.TargetTypes.any' + label: 'Any' } }; export const targetTypes = { self: { id: 'self', - label: 'DAGGERHEART.CONFIG.TargetTypes.self' + label: 'Self' }, ...otherTargetTypes }; @@ -164,36 +164,28 @@ export const healingTypes = { } }; -export const defeatedConditions = () => { - const defeated = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).defeated; - return Object.keys(defeatedConditionChoices).reduce((acc, key) => { - const choice = defeatedConditionChoices[key]; - acc[key] = { - ...choice, - img: defeated[`${choice.id}Icon`], - description: `DAGGERHEART.CONFIG.Condition.${choice.id}.description` - }; - - return acc; - }, {}); -}; - -export const defeatedConditionChoices = { +export const defeatedConditions = { defeated: { id: 'defeated', - name: 'DAGGERHEART.CONFIG.Condition.defeated.name' + name: 'DAGGERHEART.CONFIG.Condition.defeated.name', + img: 'icons/magic/control/fear-fright-mask-orange.webp', + description: 'DAGGERHEART.CONFIG.Condition.defeated.description' }, unconscious: { id: 'unconscious', - name: 'DAGGERHEART.CONFIG.Condition.unconscious.name' + name: 'DAGGERHEART.CONFIG.Condition.unconscious.name', + img: 'icons/magic/control/sleep-bubble-purple.webp', + description: 'DAGGERHEART.CONFIG.Condition.unconscious.description' }, dead: { id: 'dead', - name: 'DAGGERHEART.CONFIG.Condition.dead.name' + name: 'DAGGERHEART.CONFIG.Condition.dead.name', + img: 'icons/magic/death/grave-tombstone-glow-teal.webp', + description: 'DAGGERHEART.CONFIG.Condition.dead.description' } }; -export const conditions = () => ({ +export const conditions = { vulnerable: { id: 'vulnerable', name: 'DAGGERHEART.CONFIG.Condition.vulnerable.name', @@ -212,8 +204,8 @@ export const conditions = () => ({ img: 'icons/magic/control/debuff-chains-shackle-movement-red.webp', description: 'DAGGERHEART.CONFIG.Condition.restrained.description' }, - ...defeatedConditions() -}); + ...defeatedConditions +}; export const defaultRestOptions = { shortRest: () => ({ @@ -232,7 +224,7 @@ export const defaultRestOptions = { actionType: 'action', chatDisplay: false, target: { - type: 'friendly' + type: 'self' }, damage: { parts: [ @@ -298,7 +290,7 @@ export const defaultRestOptions = { actionType: 'action', chatDisplay: false, target: { - type: 'friendly' + type: 'self' }, damage: { parts: [ @@ -341,7 +333,7 @@ export const defaultRestOptions = { actionType: 'action', chatDisplay: false, target: { - type: 'friendly' + type: 'self' }, damage: { parts: [ @@ -407,7 +399,7 @@ export const defaultRestOptions = { actionType: 'action', chatDisplay: false, target: { - type: 'friendly' + type: 'self' }, damage: { parts: [ @@ -569,19 +561,6 @@ export const refreshTypes = { } }; -export const itemAbilityCosts = { - resource: { - id: 'resource', - label: 'DAGGERHEART.GENERAL.resource', - group: 'Global' - }, - quantity: { - id: 'quantity', - label: 'DAGGERHEART.GENERAL.quantity', - group: 'Global' - } -}; - export const abilityCosts = { hitPoints: { id: 'hitPoints', @@ -595,46 +574,33 @@ export const abilityCosts = { }, hope: { id: 'hope', - label: 'DAGGERHEART.CONFIG.HealingType.hope.name', + label: 'Hope', group: 'TYPES.Actor.character' }, armor: { id: 'armor', - label: 'DAGGERHEART.CONFIG.HealingType.armor.name', + label: 'Armor Slot', group: 'TYPES.Actor.character' }, fear: { id: 'fear', - label: 'DAGGERHEART.CONFIG.HealingType.fear.name', + label: 'Fear', group: 'TYPES.Actor.adversary' - }, - resource: itemAbilityCosts.resource + } }; -export const countdownProgressionTypes = { - actionRoll: { - id: 'actionRoll', - label: 'DAGGERHEART.CONFIG.CountdownType.actionRoll' +export const countdownTypes = { + spotlight: { + id: 'spotlight', + label: 'DAGGERHEART.CONFIG.CountdownType.spotlight' }, characterAttack: { id: 'characterAttack', label: 'DAGGERHEART.CONFIG.CountdownType.characterAttack' }, - characterSpotlight: { - id: 'characterSpotlight', - label: 'DAGGERHEART.CONFIG.CountdownType.characterSpotlight' - }, custom: { id: 'custom', label: 'DAGGERHEART.CONFIG.CountdownType.custom' - }, - fear: { - id: 'fear', - label: 'DAGGERHEART.CONFIG.CountdownType.fear' - }, - spotlight: { - id: 'spotlight', - label: 'DAGGERHEART.CONFIG.CountdownType.spotlight' } }; export const rollTypes = { @@ -658,76 +624,8 @@ export const rollTypes = { } }; -export const attributionSources = { - daggerheart: { - label: 'Daggerheart', - values: [{ label: 'Daggerheart SRD' }] - } -}; - export const fearDisplay = { token: { value: 'token', label: 'DAGGERHEART.SETTINGS.Appearance.fearDisplay.token' }, bar: { value: 'bar', label: 'DAGGERHEART.SETTINGS.Appearance.fearDisplay.bar' }, hide: { value: 'hide', label: 'DAGGERHEART.SETTINGS.Appearance.fearDisplay.hide' } }; - -export const basicOwnershiplevels = { - 0: { value: 0, label: 'OWNERSHIP.NONE' }, - 2: { value: 2, label: 'OWNERSHIP.OBSERVER' }, - 3: { value: 3, label: 'OWNERSHIP.OWNER' } -}; - -export const simpleOwnershiplevels = { - [-1]: { value: -1, label: 'OWNERSHIP.INHERIT' }, - ...basicOwnershiplevels -}; - -export const countdownBaseTypes = { - narrative: { - id: 'narrative', - label: 'DAGGERHEART.APPLICATIONS.Countdown.types.narrative' - }, - encounter: { - id: 'encounter', - label: 'DAGGERHEART.APPLICATIONS.Countdown.types.encounter' - } -}; - -export const countdownLoopingTypes = { - noLooping: { - id: 'noLooping', - label: 'DAGGERHEART.APPLICATIONS.Countdown.loopingTypes.noLooping' - }, - looping: { - id: 'looping', - label: 'DAGGERHEART.APPLICATIONS.Countdown.loopingTypes.looping' - }, - increasing: { - id: 'increasing', - label: 'DAGGERHEART.APPLICATIONS.Countdown.loopingTypes.increasing' - }, - decreasing: { - id: 'decreasing', - label: 'DAGGERHEART.APPLICATIONS.Countdown.loopingTypes.decreasing' - } -}; - -export const countdownAppMode = { - textIcon: 'text-icon', - iconOnly: 'icon-only' -}; - -export const sceneRangeMeasurementSetting = { - disable: { - id: 'disable', - label: 'Disable Daggerheart Range Measurement' - }, - default: { - id: 'default', - label: 'Default' - }, - custom: { - id: 'custom', - label: 'Custom' - } -}; diff --git a/module/config/hooksConfig.mjs b/module/config/hooksConfig.mjs deleted file mode 100644 index d316c4d4..00000000 --- a/module/config/hooksConfig.mjs +++ /dev/null @@ -1,5 +0,0 @@ -const hooksConfig = { - effectDisplayToggle: 'DHEffectDisplayToggle' -}; - -export default hooksConfig; diff --git a/module/config/itemBrowserConfig.mjs b/module/config/itemBrowserConfig.mjs index 3b10409c..e40c989b 100644 --- a/module/config/itemBrowserConfig.mjs +++ b/module/config/itemBrowserConfig.mjs @@ -3,63 +3,63 @@ export const typeConfig = { columns: [ { key: 'system.tier', - label: 'DAGGERHEART.GENERAL.Tiers.singular' + label: 'Tier' }, { key: 'system.type', - label: 'DAGGERHEART.GENERAL.type' + label: 'Type' } ], filters: [ { key: 'system.tier', - label: 'DAGGERHEART.GENERAL.Tiers.singular', + label: 'Tier', field: 'system.api.models.actors.DhAdversary.schema.fields.tier' }, { key: 'system.type', - label: 'DAGGERHEART.GENERAL.type', + label: 'Type', field: 'system.api.models.actors.DhAdversary.schema.fields.type' }, { key: 'system.difficulty', name: 'difficulty.min', - label: 'DAGGERHEART.UI.ItemBrowser.difficultyMin', + label: 'Difficulty (Min)', field: 'system.api.models.actors.DhAdversary.schema.fields.difficulty', operator: 'gte' }, { key: 'system.difficulty', name: 'difficulty.max', - label: 'DAGGERHEART.UI.ItemBrowser.difficultyMax', + label: 'Difficulty (Max)', field: 'system.api.models.actors.DhAdversary.schema.fields.difficulty', operator: 'lte' }, { key: 'system.resources.hitPoints.max', name: 'hp.min', - label: 'DAGGERHEART.UI.ItemBrowser.hitPointsMin', + label: 'Hit Points (Min)', field: 'system.api.models.actors.DhAdversary.schema.fields.resources.fields.hitPoints.fields.max', operator: 'gte' }, { key: 'system.resources.hitPoints.max', name: 'hp.max', - label: 'DAGGERHEART.UI.ItemBrowser.hitPointsMax', + label: 'Hit Points (Max)', field: 'system.api.models.actors.DhAdversary.schema.fields.resources.fields.hitPoints.fields.max', operator: 'lte' }, { key: 'system.resources.stress.max', name: 'stress.min', - label: 'DAGGERHEART.UI.ItemBrowser.stressMin', + label: 'Stress (Min)', field: 'system.api.models.actors.DhAdversary.schema.fields.resources.fields.stress.fields.max', operator: 'gte' }, { key: 'system.resources.stress.max', name: 'stress.max', - label: 'DAGGERHEART.UI.ItemBrowser.stressMax', + label: 'Stress (Max)', field: 'system.api.models.actors.DhAdversary.schema.fields.resources.fields.stress.fields.max', operator: 'lte' } @@ -69,22 +69,22 @@ export const typeConfig = { columns: [ { key: 'type', - label: 'DAGGERHEART.GENERAL.type' + label: 'Type' }, { key: 'system.secondary', - label: 'DAGGERHEART.UI.ItemBrowser.subtype', + label: 'Subtype', format: isSecondary => (isSecondary ? 'secondary' : isSecondary === false ? 'primary' : '-') }, { key: 'system.tier', - label: 'DAGGERHEART.GENERAL.Tiers.singular' + label: 'Tier' } ], filters: [ { key: 'type', - label: 'DAGGERHEART.GENERAL.type', + label: 'Type', choices: () => CONFIG.Item.documentClass.TYPES.filter(t => ['armor', 'weapon', 'consumable', 'loot'].includes(t) @@ -92,15 +92,15 @@ export const typeConfig = { }, { key: 'system.secondary', - label: 'DAGGERHEART.UI.ItemBrowser.subtype', + label: 'Subtype', choices: [ - { value: false, label: 'DAGGERHEART.ITEMS.Weapon.primaryWeapon' }, - { value: true, label: 'DAGGERHEART.ITEMS.Weapon.secondaryWeapon' } + { value: false, label: 'Primary Weapon' }, + { value: true, label: 'Secondary Weapon' } ] }, { key: 'system.tier', - label: 'DAGGERHEART.GENERAL.Tiers.singular', + label: 'Tier', choices: [ { value: '1', label: '1' }, { value: '2', label: '2' }, @@ -110,36 +110,36 @@ export const typeConfig = { }, { key: 'system.burden', - label: 'DAGGERHEART.GENERAL.burden', + label: 'Burden', field: 'system.api.models.items.DHWeapon.schema.fields.burden' }, { key: 'system.attack.roll.trait', - label: 'DAGGERHEART.GENERAL.Trait.single', + label: 'Trait', field: 'system.api.models.actions.actionsTypes.attack.schema.fields.roll.fields.trait' }, { key: 'system.attack.range', - label: 'DAGGERHEART.GENERAL.range', + label: 'Range', field: 'system.api.models.actions.actionsTypes.attack.schema.fields.range' }, { key: 'system.baseScore', name: 'armor.min', - label: 'DAGGERHEART.UI.ItemBrowser.armorScoreMin', + label: 'Armor Score (Min)', field: 'system.api.models.items.DHArmor.schema.fields.baseScore', operator: 'gte' }, { key: 'system.baseScore', name: 'armor.max', - label: 'DAGGERHEART.UI.ItemBrowser.armorScoreMax', + label: 'Armor Score (Max)', field: 'system.api.models.items.DHArmor.schema.fields.baseScore', operator: 'lte' }, { key: 'system.itemFeatures', - label: 'DAGGERHEART.GENERAL.features', + label: 'Features', choices: () => [ ...Object.entries(CONFIG.DH.ITEM.weaponFeatures), @@ -149,102 +149,6 @@ export const typeConfig = { } ] }, - weapons: { - columns: [ - { - key: 'system.secondary', - label: 'DAGGERHEART.UI.ItemBrowser.subtype', - format: isSecondary => (isSecondary ? 'secondary' : isSecondary === false ? 'primary' : '-') - }, - { - key: 'system.tier', - label: 'DAGGERHEART.GENERAL.Tiers.singular' - } - ], - filters: [ - { - key: 'system.secondary', - label: 'DAGGERHEART.UI.ItemBrowser.subtype', - choices: [ - { value: false, label: 'DAGGERHEART.ITEMS.Weapon.primaryWeapon' }, - { value: true, label: 'DAGGERHEART.ITEMS.Weapon.secondaryWeapon' } - ] - }, - { - key: 'system.tier', - label: 'DAGGERHEART.GENERAL.Tiers.singular', - choices: [ - { value: '1', label: '1' }, - { value: '2', label: '2' }, - { value: '3', label: '3' }, - { value: '4', label: '4' } - ] - }, - { - key: 'system.burden', - label: 'DAGGERHEART.GENERAL.burden', - field: 'system.api.models.items.DHWeapon.schema.fields.burden' - }, - { - key: 'system.attack.roll.trait', - label: 'DAGGERHEART.GENERAL.Trait.single', - field: 'system.api.models.actions.actionsTypes.attack.schema.fields.roll.fields.trait' - }, - { - key: 'system.attack.range', - label: 'DAGGERHEART.GENERAL.range', - field: 'system.api.models.actions.actionsTypes.attack.schema.fields.range' - }, - { - key: 'system.itemFeatures', - label: 'DAGGERHEART.GENERAL.features', - choices: () => - Object.entries(CONFIG.DH.ITEM.weaponFeatures).map(([k, v]) => ({ value: k, label: v.label })), - operator: 'contains3' - } - ] - }, - armors: { - columns: [ - { - key: 'system.tier', - label: 'DAGGERHEART.GENERAL.Tiers.singular' - } - ], - filters: [ - { - key: 'system.tier', - label: 'DAGGERHEART.GENERAL.Tiers.singular', - choices: [ - { value: '1', label: '1' }, - { value: '2', label: '2' }, - { value: '3', label: '3' }, - { value: '4', label: '4' } - ] - }, - { - key: 'system.baseScore', - name: 'armor.min', - label: 'DAGGERHEART.UI.ItemBrowser.armorScoreMin', - field: 'system.api.models.items.DHArmor.schema.fields.baseScore', - operator: 'gte' - }, - { - key: 'system.baseScore', - name: 'armor.max', - label: 'DAGGERHEART.UI.ItemBrowser.armorScoreMax', - field: 'system.api.models.items.DHArmor.schema.fields.baseScore', - operator: 'lte' - }, - { - key: 'system.itemFeatures', - label: 'DAGGERHEART.GENERAL.features', - choices: () => - Object.entries(CONFIG.DH.ITEM.armorFeatures).map(([k, v]) => ({ value: k, label: v.label })), - operator: 'contains3' - } - ] - }, features: { columns: [], filters: [] @@ -253,54 +157,54 @@ export const typeConfig = { columns: [ { key: 'system.type', - label: 'DAGGERHEART.GENERAL.type' + label: 'Type' }, { key: 'system.domain', - label: 'DAGGERHEART.GENERAL.Domain.single' + label: 'Domain' }, { key: 'system.level', - label: 'DAGGERHEART.GENERAL.level' + label: 'Level' } ], filters: [ { key: 'system.type', - label: 'DAGGERHEART.GENERAL.type', + label: 'Type', field: 'system.api.models.items.DHDomainCard.schema.fields.type' }, { key: 'system.domain', - label: 'DAGGERHEART.GENERAL.Domain.single', + label: 'Domain', field: 'system.api.models.items.DHDomainCard.schema.fields.domain', operator: 'contains2' }, { key: 'system.level', name: 'level.min', - label: 'DAGGERHEART.UI.ItemBrowser.levelMin', + label: 'Level (Min)', field: 'system.api.models.items.DHDomainCard.schema.fields.level', operator: 'gte' }, { key: 'system.level', name: 'level.max', - label: 'DAGGERHEART.UI.ItemBrowser.levelMax', + label: 'Level (Max)', field: 'system.api.models.items.DHDomainCard.schema.fields.level', operator: 'lte' }, { key: 'system.recallCost', name: 'recall.min', - label: 'DAGGERHEART.UI.ItemBrowser.recallCostMin', + label: 'Recall Cost (Min)', field: 'system.api.models.items.DHDomainCard.schema.fields.recallCost', operator: 'gte' }, { key: 'system.recallCost', name: 'recall.max', - label: 'DAGGERHEART.UI.ItemBrowser.recallCostMax', + label: 'Recall Cost (Max)', field: 'system.api.models.items.DHDomainCard.schema.fields.recallCost', operator: 'lte' } @@ -310,50 +214,50 @@ export const typeConfig = { columns: [ { key: 'system.evasion', - label: 'DAGGERHEART.GENERAL.evasion' + label: 'Evasion' }, { key: 'system.hitPoints', - label: 'DAGGERHEART.GENERAL.HitPoints.plural' + label: 'Hit Points' }, { key: 'system.domains', - label: 'DAGGERHEART.GENERAL.Domain.plural' + label: 'Domains' } ], filters: [ { key: 'system.evasion', name: 'evasion.min', - label: 'DAGGERHEART.UI.ItemBrowser.evasionMin', + label: 'Evasion (Min)', field: 'system.api.models.items.DHClass.schema.fields.evasion', operator: 'gte' }, { key: 'system.evasion', name: 'evasion.max', - label: 'DAGGERHEART.UI.ItemBrowser.evasionMax', + label: 'Evasion (Max)', field: 'system.api.models.items.DHClass.schema.fields.evasion', operator: 'lte' }, { key: 'system.hitPoints', name: 'hp.min', - label: 'DAGGERHEART.UI.ItemBrowser.hitPointsMin', + label: 'Hit Points (Min)', field: 'system.api.models.items.DHClass.schema.fields.hitPoints', operator: 'gte' }, { key: 'system.hitPoints', name: 'hp.max', - label: 'DAGGERHEART.UI.ItemBrowser.hitPointsMax', + label: 'Hit Points (Max)', field: 'system.api.models.items.DHClass.schema.fields.hitPoints', operator: 'lte' }, { key: 'system.domains', - label: 'DAGGERHEART.GENERAL.Domain.plural', - choices: () => Object.values(CONFIG.DH.DOMAIN.allDomains()).map(d => ({ value: d.id, label: d.label })), + label: 'Domains', + choices: () => Object.values(CONFIG.DH.DOMAIN.domains).map(d => ({ value: d.id, label: d.label })), operator: 'contains2' } ] @@ -363,26 +267,21 @@ export const typeConfig = { { key: 'system.linkedClass', label: 'Class', - format: linkedClass => linkedClass?.name ?? 'DAGGERHEART.UI.ItemBrowser.missing' + format: linkedClass => linkedClass.name }, { key: 'system.spellcastingTrait', - label: 'DAGGERHEART.ITEMS.Subclass.spellcastingTrait' + label: 'Spellcasting Trait' } ], filters: [ { key: 'system.linkedClass.uuid', label: 'Class', - choices: items => { - const list = items - .filter(item => item.system.linkedClass) - .map(item => ({ - value: item.system.linkedClass.uuid, - label: item.system.linkedClass.name - })); - return list.reduce((a, c) => { - if (!a.find(i => i.value === c.value)) a.push(c); + choices: (items) => { + const list = items.map(item => ({ value: item.system.linkedClass.uuid, label: item.system.linkedClass.name })); + return list.reduce((a,c) => { + if(!(a.find(i => i.value === c.value))) a.push(c); return a; }, []); } @@ -393,22 +292,22 @@ export const typeConfig = { columns: [ { key: 'system.tier', - label: 'DAGGERHEART.GENERAL.Tiers.singular' + label: 'Tier' }, { key: 'system.mainTrait', - label: 'DAGGERHEART.GENERAL.Trait.single' + label: 'Main Trait' } ], filters: [ { key: 'system.tier', - label: 'DAGGERHEART.GENERAL.Tiers.singular', + label: 'Tier', field: 'system.api.models.items.DHBeastform.schema.fields.tier' }, { key: 'system.mainTrait', - label: 'DAGGERHEART.GENERAL.Trait.single', + label: 'Main Trait', field: 'system.api.models.items.DHBeastform.schema.fields.mainTrait' } ] @@ -416,144 +315,109 @@ export const typeConfig = { }; export const compendiumConfig = { - characters: { - id: 'characters', - keys: ['characters'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.characters', - type: ['character'] - // listType: 'characters' - }, - adversaries: { - id: 'adversaries', - keys: ['adversaries'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.adversaries', - type: ['adversary'], - listType: 'adversaries' - }, - ancestries: { - id: 'ancestries', - keys: ['ancestries'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.ancestries', - type: ['ancestry'] - /* folders: { - features: { - id: 'features', - keys: ['ancestries'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.features', - type: ['feature'] - } - } */ - }, - equipments: { - id: 'equipments', - keys: ['armors', 'weapons', 'consumables', 'loot'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.equipment', - type: ['armor', 'weapon', 'consumable', 'loot'], - listType: 'items', + daggerheart: { + id: 'daggerheart', + label: 'DAGGERHEART', folders: { - weapons: { - id: 'weapons', - keys: ['weapons'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.weapons', - type: ['weapon'], - listType: 'weapons' + adversaries: { + id: 'adversaries', + keys: ['adversaries'], + label: 'Adversaries', + type: ['adversary'], + listType: 'adversaries' }, - armors: { - id: 'armors', - keys: ['armors'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.armors', - type: ['armor'], - listType: 'armors' + ancestries: { + id: 'ancestries', + keys: ['ancestries'], + label: 'Ancestries', + type: ['ancestry'], + folders: { + features: { + id: 'features', + keys: ['ancestries'], + label: 'Features', + type: ['feature'] + } + } }, - consumables: { - id: 'consumables', - keys: ['consumables'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.consumables', - type: ['consumable'] - }, - loots: { - id: 'loots', - keys: ['loots'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.loots', - type: ['loot'] - } - } - }, - classes: { - id: 'classes', - keys: ['classes'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.classes', - type: ['class'], - /* folders: { - features: { - id: 'features', - keys: ['classes'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.features', - type: ['feature'] - }, - items: { - id: 'items', - keys: ['classes'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.items', + equipments: { + id: 'equipments', + keys: ['armors', 'weapons', 'consumables', 'loot'], + label: 'Equipment', type: ['armor', 'weapon', 'consumable', 'loot'], listType: 'items' - } - }, */ - listType: 'classes' - }, - subclasses: { - id: 'subclasses', - keys: ['subclasses'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.subclasses', - type: ['subclass'], - listType: 'subclasses' - }, - domains: { - id: 'domains', - keys: ['domains'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.domainCards', - type: ['domainCard'], - listType: 'cards' - }, - communities: { - id: 'communities', - keys: ['communities'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.communities', - type: ['community'] - /* folders: { - features: { - id: 'features', + }, + classes: { + id: 'classes', + keys: ['classes'], + label: 'Classes', + type: ['class'], + folders: { + features: { + id: 'features', + keys: ['classes'], + label: 'Features', + type: ['feature'] + }, + items: { + id: 'items', + keys: ['classes'], + label: 'Items', + type: ['armor', 'weapon', 'consumable', 'loot'], + listType: 'items' + } + }, + listType: 'classes' + }, + subclasses: { + id: 'subclasses', + keys: ['subclasses'], + label: 'Subclasses', + type: ['subclass'], + listType: 'subclasses' + }, + domains: { + id: 'domains', + keys: ['domains'], + label: 'Domain Cards', + type: ['domainCard'], + listType: 'cards' + }, + communities: { + id: 'communities', keys: ['communities'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.features', - type: ['feature'] - } - } */ - }, - environments: { - id: 'environments', - keys: ['environments'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.environments', - type: ['environment'] - }, - beastforms: { - id: 'beastforms', - keys: ['beastforms'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.beastforms', - type: ['beastform'], - listType: 'beastforms' - /* folders: { - features: { - id: 'features', + label: 'Communities', + type: ['community'], + folders: { + features: { + id: 'features', + keys: ['communities'], + label: 'Features', + type: ['feature'] + } + } + }, + environments: { + id: 'environments', + keys: ['environments'], + label: 'Environments', + type: ['environment'] + }, + beastforms: { + id: 'beastforms', keys: ['beastforms'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.features', - type: ['feature'] + label: 'Beastforms', + type: ['beastform'], + listType: 'beastforms', + folders: { + features: { + id: 'features', + keys: ['beastforms'], + label: 'Features', + type: ['feature'] + } + } } - } */ - }, - features: { - id: 'features', - keys: ['features'], - label: 'DAGGERHEART.UI.ItemBrowser.folders.features', - type: ['feature'] + } } }; diff --git a/module/config/itemConfig.mjs b/module/config/itemConfig.mjs index 7d80e597..cee4bc52 100644 --- a/module/config/itemConfig.mjs +++ b/module/config/itemConfig.mjs @@ -5,6 +5,7 @@ export const armorFeatures = { actions: [ { type: 'damage', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.ArmorFeature.burning.actions.burn.name', description: 'DAGGERHEART.CONFIG.ArmorFeature.burning.actions.burn.description', @@ -173,6 +174,7 @@ export const armorFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.ArmorFeature.hopeful.actions.hope.name', description: 'DAGGERHEART.CONFIG.ArmorFeature.hopeful.actions.hope.description', @@ -186,6 +188,7 @@ export const armorFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.ArmorFeature.impenetrable.actions.impenetrable.name', description: 'DAGGERHEART.CONFIG.ArmorFeature.impenetrable.actions.impenetrable.description', @@ -228,6 +231,7 @@ export const armorFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.ArmorFeature.painful.actions.pain.name', description: 'DAGGERHEART.CONFIG.ArmorFeature.painful.actions.pain.description', @@ -265,6 +269,7 @@ export const armorFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.ArmorFeature.quiet.actions.quiet.name', description: 'DAGGERHEART.CONFIG.ArmorFeature.quiet.actions.quiet.description', @@ -301,6 +306,7 @@ export const armorFeatures = { actions: [ { type: 'attack', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.ArmorFeature.resilient.actions.resilient.name', description: 'DAGGERHEART.CONFIG.ArmorFeature.resilient.actions.resilient.description', @@ -347,6 +353,7 @@ export const armorFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.ArmorFeature.shifting.actions.shift.name', description: 'DAGGERHEART.CONFIG.ArmorFeature.shifting.actions.shift.description', @@ -366,6 +373,7 @@ export const armorFeatures = { actions: [ { type: 'attack', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.ArmorFeature.timeslowing.actions.slowTime.name', description: 'DAGGERHEART.CONFIG.ArmorFeature.timeslowing.actions.slowTime.description', @@ -393,6 +401,7 @@ export const armorFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.ArmorFeature.truthseeking.actions.truthseeking.name', description: 'DAGGERHEART.CONFIG.ArmorFeature.truthseeking.actions.truthseeking.description', @@ -435,8 +444,7 @@ export const armorFeatures = { { key: 'system.resistance.magical.reduction', mode: 2, - value: '@system.armorScore', - priority: 21 + value: '@system.armorScore' } ] } @@ -444,43 +452,6 @@ export const armorFeatures = { } }; -export const allArmorFeatures = () => { - const homebrewFeatures = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).itemFeatures - .armorFeatures; - return { - ...armorFeatures, - ...Object.keys(homebrewFeatures).reduce((acc, key) => { - const feature = homebrewFeatures[key]; - const actions = feature.actions.map(action => ({ - ...action, - effects: action.effects.map(effect => feature.effects.find(x => x.id === effect._id)), - type: action.type - })); - const actionEffects = actions.flatMap(a => a.effects); - - const effects = feature.effects.filter(effect => !actionEffects.some(x => x.id === effect.id)); - - acc[key] = { ...feature, label: feature.name, effects, actions }; - return acc; - }, {}) - }; -}; - -export const orderedArmorFeatures = () => { - const homebrewFeatures = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).itemFeatures - .armorFeatures; - const allFeatures = { ...armorFeatures, ...homebrewFeatures }; - const all = Object.keys(allFeatures).map(key => { - const feature = allFeatures[key]; - return { - ...feature, - id: key, - label: feature.label ?? feature.name - }; - }); - return Object.values(all).sort((a, b) => game.i18n.localize(a.label).localeCompare(game.i18n.localize(b.label))); -}; - export const weaponFeatures = { barrier: { label: 'DAGGERHEART.CONFIG.WeaponFeature.barrier.name', @@ -529,6 +500,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.bouncing.actions.bounce.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.bouncing.actions.bounce.description', @@ -573,6 +545,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.brutal.actions.addDamage.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.brutal.actions.addDamage.description', @@ -586,6 +559,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.burning.actions.burn.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.burning.actions.burn.description', @@ -599,6 +573,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.charged.actions.markStress.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.charged.actions.markStress.description', @@ -635,6 +610,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.concussive.actions.attack.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.concussive.actions.attack.description', @@ -675,6 +651,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.deadly.actions.extraDamage.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.deadly.actions.extraDamage.description', @@ -688,6 +665,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.deflecting.actions.deflect.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.deflecting.actions.deflect.description', @@ -710,8 +688,7 @@ export const weaponFeatures = { { key: 'system.evasion', mode: 2, - value: '@system.armorScore', - priority: 21 + value: '@system.armorScore' } ] } @@ -725,6 +702,7 @@ export const weaponFeatures = { actions: [ { type: 'damage', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.destructive.actions.attack.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.destructive.actions.attack.descriptive', @@ -769,6 +747,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.devastating.actions.devastate.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.devastating.actions.devastate.description', @@ -819,6 +798,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.doubledUp.actions.doubleUp.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.doubledUp.actions.doubleUp.description', @@ -832,6 +812,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.dueling.actions.duel.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.dueling.actions.duel.description', @@ -845,6 +826,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', // Should prompt a dc 14 reaction save on adversaries + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.eruptive.actions.erupt.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.eruptive.actions.erupt.description', @@ -858,6 +840,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.grappling.actions.grapple.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.grappling.actions.grapple.description', @@ -877,13 +860,11 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.description', img: 'icons/commodities/currency/coins-crown-stack-gold.webp', - target: { - type: 'self' - }, // Should cost handful of gold, effects: [ { @@ -908,6 +889,7 @@ export const weaponFeatures = { actions: [ { type: 'healing', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.healing.actions.heal.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.healing.actions.heal.description', @@ -955,6 +937,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.hooked.actions.hook.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.hooked.actions.hook.description', @@ -968,6 +951,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.hot.actions.hot.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.hot.actions.hot.description', @@ -981,6 +965,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.invigorating.actions.invigorate.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.invigorating.actions.invigorate.description', @@ -994,6 +979,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.lifestealing.actions.lifesteal.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.lifestealing.actions.lifesteal.description', @@ -1007,6 +993,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.lockedOn.actions.lockOn.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.lockedOn.actions.lockOn.description', @@ -1020,6 +1007,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.long.actions.long.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.long.actions.long.description', @@ -1033,6 +1021,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.lucky.actions.luck.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.lucky.actions.luck.description', @@ -1070,6 +1059,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.painful.actions.pain.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.painful.actions.pain.description', @@ -1115,6 +1105,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.parry.actions.parry.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.parry.actions.parry.description', @@ -1128,6 +1119,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.persuasive.actions.persuade.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.persuasive.actions.persuade.description', @@ -1164,6 +1156,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.pompous.actions.pompous.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.pompous.actions.pompous.description', @@ -1207,6 +1200,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.quick.actions.quick.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.quick.actions.quick.description', @@ -1244,6 +1238,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.reloading.actions.reload.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.reloading.actions.reload.description', @@ -1257,6 +1252,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.retractable.actions.retract.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.retractable.actions.retract.description', @@ -1270,6 +1266,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.returning.actions.return.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.returning.actions.return.description', @@ -1283,6 +1280,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.scary.actions.scare.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.scary.actions.scare.description', @@ -1326,8 +1324,7 @@ export const weaponFeatures = { { key: 'system.bonuses.damage.primaryWeapon.bonus', mode: 2, - value: '@system.traits.agility.value', - priority: 21 + value: '@system.traits.agility.value' } ] } @@ -1339,6 +1336,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.sheltering.actions.shelter.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.sheltering.actions.shelter.description', @@ -1352,6 +1350,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.startling.actions.startle.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.startling.actions.startle.description', @@ -1371,6 +1370,7 @@ export const weaponFeatures = { actions: [ { type: 'effect', + actionType: 'action', chatDisplay: true, name: 'DAGGERHEART.CONFIG.WeaponFeature.timebending.actions.bendTime.name', description: 'DAGGERHEART.CONFIG.WeaponFeature.timebending.actions.bendTime.description', @@ -1380,50 +1380,6 @@ export const weaponFeatures = { } }; -export const allWeaponFeatures = () => { - const homebrewFeatures = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).itemFeatures - .weaponFeatures; - - return { - ...weaponFeatures, - ...Object.keys(homebrewFeatures).reduce((acc, key) => { - const feature = homebrewFeatures[key]; - - const actions = feature.actions.map(action => ({ - ...action, - effects: action.effects.map(effect => feature.effects.find(x => x.id === effect._id)), - type: action.type - })); - const actionEffects = actions.flatMap(a => a.effects); - const effects = feature.effects.filter(effect => !actionEffects.some(x => x.id === effect.id)); - - acc[key] = { ...feature, label: feature.name, effects, actions }; - return acc; - }, {}) - }; -}; - -export const orderedWeaponFeatures = () => { - const homebrewFeatures = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).itemFeatures - .weaponFeatures; - const allFeatures = { ...weaponFeatures, ...homebrewFeatures }; - const all = Object.keys(allFeatures).map(key => { - const feature = allFeatures[key]; - return { - ...feature, - id: key, - label: feature.label ?? feature.name - }; - }); - return Object.values(all).sort((a, b) => game.i18n.localize(a.label).localeCompare(game.i18n.localize(b.label))); -}; - -export const featureForm = { - passive: 'DAGGERHEART.CONFIG.FeatureForm.passive', - action: 'DAGGERHEART.CONFIG.FeatureForm.action', - reaction: 'DAGGERHEART.CONFIG.FeatureForm.reaction' -}; - export const featureTypes = { ancestry: { id: 'ancestry', @@ -1481,6 +1437,21 @@ export const featureSubTypes = { mastery: 'mastery' }; +export const actionTypes = { + passive: { + id: 'passive', + label: 'DAGGERHEART.CONFIG.ActionType.passive' + }, + action: { + id: 'action', + label: 'DAGGERHEART.CONFIG.ActionType.action' + }, + reaction: { + id: 'reaction', + label: 'DAGGERHEART.CONFIG.ActionType.reaction' + } +}; + export const itemResourceTypes = { simple: { id: 'simple', @@ -1489,10 +1460,6 @@ export const itemResourceTypes = { diceValue: { id: 'diceValue', label: 'DAGGERHEART.CONFIG.ItemResourceType.diceValue' - }, - die: { - id: 'die', - label: 'DAGGERHEART.CONFIG.ItemResourceType.die' } }; @@ -1521,8 +1488,3 @@ export const beastformTypes = { label: 'DAGGERHEART.CONFIG.BeastformType.hybrid' } }; - -export const originItemType = { - itemCollection: 'itemCollection', - restMove: 'restMove' -}; diff --git a/module/config/settingsConfig.mjs b/module/config/settingsConfig.mjs index 3d993949..76234a97 100644 --- a/module/config/settingsConfig.mjs +++ b/module/config/settingsConfig.mjs @@ -27,26 +27,5 @@ export const gameSettings = { }, LevelTiers: 'LevelTiers', Countdowns: 'Countdowns', - LastMigrationVersion: 'LastMigrationVersion', - TagTeamRoll: 'TagTeamRoll', - SpotlightRequestQueue: 'SpotlightRequestQueue', -}; - -export const actionAutomationChoices = { - never: { - id: 'never', - label: 'Never' - }, - showDialog: { - id: 'showDialog', - label: 'Show Dialog only' - }, - // npcOnly: { - // id: "npcOnly", - // label: "Always for non-characters" - // }, - always: { - id: 'always', - label: 'Always' - } + LastMigrationVersion: 'LastMigrationVersion' }; diff --git a/module/config/system.mjs b/module/config/system.mjs index ac15b1d9..374fd58c 100644 --- a/module/config/system.mjs +++ b/module/config/system.mjs @@ -1,20 +1,17 @@ import * as GENERAL from './generalConfig.mjs'; import * as DOMAIN from './domainConfig.mjs'; -import * as ENCOUNTER from './encounterConfig.mjs'; import * as ACTOR from './actorConfig.mjs'; import * as ITEM from './itemConfig.mjs'; import * as SETTINGS from './settingsConfig.mjs'; import * as EFFECTS from './effectConfig.mjs'; import * as ACTIONS from './actionConfig.mjs'; import * as FLAGS from './flagsConfig.mjs'; -import HOOKS from './hooksConfig.mjs'; -import * as ITEMBROWSER from './itemBrowserConfig.mjs'; +import * as ITEMBROWSER from './itemBrowserConfig.mjs' export const SYSTEM_ID = 'daggerheart'; export const SYSTEM = { id: SYSTEM_ID, - ENCOUNTER, GENERAL, DOMAIN, ACTOR, @@ -23,6 +20,5 @@ export const SYSTEM = { EFFECTS, ACTIONS, FLAGS, - HOOKS, ITEMBROWSER }; diff --git a/module/data/_module.mjs b/module/data/_module.mjs index 0a476ee9..cac02a4a 100644 --- a/module/data/_module.mjs +++ b/module/data/_module.mjs @@ -1,12 +1,9 @@ export { default as DhCombat } from './combat.mjs'; export { default as DhCombatant } from './combatant.mjs'; -export { default as DhTagTeamRoll } from './tagTeamRoll.mjs'; -export * as countdowns from './countdowns.mjs'; export * as actions from './action/_module.mjs'; export * as activeEffects from './activeEffect/_module.mjs'; export * as actors from './actor/_module.mjs'; export * as chatMessages from './chat-message/_modules.mjs'; export * as fields from './fields/_module.mjs'; export * as items from './item/_module.mjs'; -export * as scenes from './scene/_module.mjs'; diff --git a/module/data/action/_module.mjs b/module/data/action/_module.mjs index 9cfc48cb..7f7a2c82 100644 --- a/module/data/action/_module.mjs +++ b/module/data/action/_module.mjs @@ -1,7 +1,6 @@ import AttackAction from './attackAction.mjs'; import BaseAction from './baseAction.mjs'; import BeastformAction from './beastformAction.mjs'; -import CountdownAction from './countdownAction.mjs'; import DamageAction from './damageAction.mjs'; import EffectAction from './effectAction.mjs'; import HealingAction from './healingAction.mjs'; @@ -11,7 +10,6 @@ import SummonAction from './summonAction.mjs'; export const actionsTypes = { base: BaseAction, attack: AttackAction, - countdown: CountdownAction, damage: DamageAction, healing: HealingAction, summon: SummonAction, diff --git a/module/data/action/attackAction.mjs b/module/data/action/attackAction.mjs index ed97072f..68afc23b 100644 --- a/module/data/action/attackAction.mjs +++ b/module/data/action/attackAction.mjs @@ -37,10 +37,8 @@ export default class DHAttackAction extends DHDamageAction { async use(event, options) { const result = await super.use(event, options); - if (result.message.system.action.roll?.type === 'attack') { - const { updateCountdowns } = game.system.api.applications.ui.DhCountdowns; - await updateCountdowns(CONFIG.DH.GENERAL.countdownProgressionTypes.characterAttack.id); - } + const { updateCountdowns } = game.system.api.applications.ui.DhCountdowns; + await updateCountdowns(CONFIG.DH.GENERAL.countdownTypes.characterAttack.id); return result; } diff --git a/module/data/action/baseAction.mjs b/module/data/action/baseAction.mjs index 18a09904..2f5935da 100644 --- a/module/data/action/baseAction.mjs +++ b/module/data/action/baseAction.mjs @@ -1,10 +1,14 @@ import DhpActor from '../../documents/actor.mjs'; import D20RollDialog from '../../applications/dialogs/d20RollDialog.mjs'; import { ActionMixin } from '../fields/actionField.mjs'; -import { originItemField } from '../chat-message/actorRoll.mjs'; +import { abilities } from '../../config/actorConfig.mjs'; const fields = foundry.data.fields; +/* + !!! I'm currently refactoring the whole Action thing, it's a WIP !!! +*/ + /* ToDo - Target Check / Target Picker @@ -16,108 +20,48 @@ const fields = foundry.data.fields; export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel) { static extraSchemas = ['cost', 'uses', 'range']; - /** @inheritDoc */ static defineSchema() { const schemaFields = { _id: new fields.DocumentIdField({ initial: () => foundry.utils.randomID() }), systemPath: new fields.StringField({ required: true, initial: 'actions' }), type: new fields.StringField({ initial: undefined, readonly: true, required: true }), - baseAction: new fields.BooleanField({ initial: false }), name: new fields.StringField({ initial: undefined }), description: new fields.HTMLField(), img: new fields.FilePathField({ initial: undefined, categories: ['IMAGE'], base64: false }), chatDisplay: new fields.BooleanField({ initial: true, label: 'DAGGERHEART.ACTIONS.Config.displayInChat' }), - originItem: originItemField(), actionType: new fields.StringField({ choices: CONFIG.DH.ITEM.actionTypes, initial: 'action', - nullable: false, - required: true - }), - targetUuid: new fields.StringField({ initial: undefined }) + nullable: true + }) }; this.extraSchemas.forEach(s => { - let clsField = this.getActionField(s); - if (clsField) schemaFields[s] = new clsField(); + let clsField; + if ((clsField = this.getActionField(s))) schemaFields[s] = new clsField(); }); return schemaFields; } - /** - * The default values to supply to schema fields when they are created in the actionConfig. Defined by implementing classes. - */ - get defaultValues() { - return {}; - } - - /** - * Create a Map containing each Action step based on fields define in schema. Ordered by Fields order property. - * - * Each step can be called individually as long as needed config is provided. - * Ex: .workflow.get("damage").execute(config) - * @returns {Map} - */ - defineWorkflow() { - const workflow = new Map(); - this.constructor.extraSchemas.forEach(s => { - let clsField = this.constructor.getActionField(s); - if (clsField?.execute) { - workflow.set(s, { order: clsField.order, execute: clsField.execute.bind(this) }); - if (s === 'damage') - workflow.set('applyDamage', { order: 75, execute: clsField.applyDamage.bind(this) }); - } - }); - return new Map([...workflow.entries()].sort(([aKey, aValue], [bKey, bValue]) => aValue.order - bValue.order)); - } - - /** - * Getter returning the workflow property or creating it the first time the property is called - */ - get workflow() { - if (this.hasOwnProperty('_workflow')) return this._workflow; - const workflow = Object.freeze(this.defineWorkflow()); - Object.defineProperty(this, '_workflow', { value: workflow, writable: false }); - return workflow; - } - - /** - * Get the Field class from ActionFields global config - * @param {string} name Field short name, equal to Action property - * @returns Action Field - */ static getActionField(name) { const field = game.system.api.fields.ActionFields[`${name.capitalize()}Field`]; return fields.DataField.isPrototypeOf(field) && field; } - /** @inheritDoc */ prepareData() { this.name = this.name || game.i18n.localize(CONFIG.DH.ACTIONS.actionTypes[this.type].name); this.img = this.img ?? this.parent?.parent?.img; - - /* Fallback to feature description */ - this.description = this.description || this.parent?.description; } - /** - * Get Action ID - */ get id() { return this._id; } - /** - * Return Item the action is attached too. - */ get item() { return this.parent.parent; } - /** - * Return the first Actor parent found. - */ get actor() { return this.item instanceof DhpActor ? this.item @@ -130,11 +74,6 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel return 'trait'; } - /** - * Prepare base data based on Action Type & Parent Type - * @param {object} parent - * @returns {object} - */ static getSourceConfig(parent) { const updateSource = {}; if (parent?.parent?.type === 'weapon' && this === game.system.api.models.actions.actionsTypes.attack) { @@ -157,15 +96,13 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel return updateSource; } - /** - * Obtain a data object used to evaluate any dice rolls associated with this particular Action - * @param {object} [data ={}] Optional data object from previous configuration/rolls - * @returns {object} - */ getRollData(data = {}) { - const actorData = this.actor ? this.actor.getRollData(false) : {}; + if (!this.actor) return null; + const actorData = this.actor.getRollData(false); + // Add Roll results to RollDatas actorData.result = data.roll?.total ?? 1; + actorData.scale = data.costs?.length // Right now only return the first scalable cost. ? (data.costs.find(c => c.scalable)?.total ?? 1) : 1; @@ -174,28 +111,19 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel return actorData; } - /** - * Execute each part of the Action workflow in order, calling a specific event before and after each part. - * @param {object} config Config object usually created from prepareConfig method - */ - async executeWorkflow(config) { - for (const [key, part] of this.workflow) { - if (Hooks.call(`${CONFIG.DH.id}.pre${key.capitalize()}Action`, this, config) === false) return; - if ((await part.execute(config)) === false) return; - if (Hooks.call(`${CONFIG.DH.id}.post${key.capitalize()}Action`, this, config) === false) return; - } - } - - /** - * Main method to use the Action - * @param {Event} event Event from the button used to trigger the Action - * @returns {object} - */ - async use(event) { + async use(event, options = {}) { if (!this.actor) throw new Error("An Action can't be used outside of an Actor context."); - let config = this.prepareConfig(event); - if (!config) return; + if (this.chatDisplay) await this.toChat(); + let { byPassRoll } = options, + config = this.prepareConfig(event, byPassRoll); + for (let i = 0; i < this.constructor.extraSchemas.length; i++) { + let clsField = this.constructor.getActionField(this.constructor.extraSchemas[i]); + if (clsField?.prepareConfig) { + const keep = clsField.prepareConfig.call(this, config); + if (config.isFastForward && !keep) return; + } + } if (Hooks.call(`${CONFIG.DH.id}.preUseAction`, this, config) === false) return; @@ -205,168 +133,283 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel if (!config) return; } - // Execute the Action Worflow in order based of schema fields - await this.executeWorkflow(config); - await config.resourceUpdates.updateResources(); + if (config.hasRoll) { + const rollConfig = this.prepareRoll(config); + config.roll = rollConfig; + config = await this.actor.diceRoll(config); + if (!config) return; + } + + if (this.doFollowUp(config)) { + if (this.rollDamage && this.damage.parts.length) await this.rollDamage(event, config); + else if (this.trigger) await this.trigger(event, config); + else if (this.hasSave || this.hasEffect) { + const roll = new CONFIG.Dice.daggerheart.DHRoll(''); + roll._evaluated = true; + await CONFIG.Dice.daggerheart.DHRoll.toMessage(roll, config); + } + } + + // Consume resources + await this.consume(config); if (Hooks.call(`${CONFIG.DH.id}.postUseAction`, this, config) === false) return; - if (this.chatDisplay) await this.toChat(); - return config; } - /** - * Create the basic config common to every action type - * @param {Event} event Event from the button used to trigger the Action - * @returns {object} - */ - prepareBaseConfig(event) { - const config = { + /* */ + prepareConfig(event, byPass = false) { + const hasRoll = this.getUseHasRoll(byPass); + return { event, - title: `${this.item instanceof CONFIG.Actor.documentClass ? '' : `${this.item.name}: `}${game.i18n.localize(this.name)}`, + title: `${this.item.name}: ${game.i18n.localize(this.name)}`, source: { item: this.item._id, - originItem: this.originItem, action: this._id, actor: this.actor.uuid }, - dialog: {}, - actionType: this.actionType, - hasRoll: this.hasRoll, - hasDamage: this.hasDamage, - hasHealing: this.hasHealing, - hasEffect: this.hasEffect, + dialog: { + configure: hasRoll + }, + type: this.roll?.type ?? this.type, + hasRoll: hasRoll, + hasDamage: this.damage?.parts?.length && this.type !== 'healing', + hasHealing: this.damage?.parts?.length && this.type === 'healing', + hasEffect: !!this.effects?.length, hasSave: this.hasSave, - isDirect: !!this.damage?.direct, selectedRollMode: game.settings.get('core', 'rollMode'), + isFastForward: event.shiftKey, data: this.getRollData(), - evaluate: this.hasRoll, - resourceUpdates: new ResourceUpdateMap(this.actor), - targetUuid: this.targetUuid + evaluate: hasRoll }; - - DHBaseAction.applyKeybindings(config); - return config; } - /** - * Create the config for that action used for its workflow - * @param {Event} event Event from the button used to trigger the Action - * @returns {object} - */ - prepareConfig(event) { - const config = this.prepareBaseConfig(event); - for (const clsField of Object.values(this.schema.fields)) { - if (clsField?.prepareConfig) if (clsField.prepareConfig.call(this, config) === false) return false; - } - return config; - } - - /** - * Method used to know if a configuration dialog must be shown or not when there is no roll. - * @param {*} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - * @returns {boolean} - */ requireConfigurationDialog(config) { return !config.event.shiftKey && !config.hasRoll && (config.costs?.length || config.uses); } - /** - * Consume Action configured resources & uses. - * That method is only used when we want those resources to be consumed outside of the use method workflow. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - * @param {boolean} successCost - */ - async consume(config, successCost = false) { - await this.workflow.get('cost')?.execute(config, successCost); - await this.workflow.get('uses')?.execute(config, successCost); + prepareRoll() { + const roll = { + baseModifiers: this.roll.getModifier(), + label: 'Attack', + type: this.actionType, + difficulty: this.roll?.difficulty, + formula: this.roll.getFormula(), + advantage: CONFIG.DH.ACTIONS.advantageState[this.roll.advState].value + }; + if (this.roll?.type === 'diceSet' || !this.hasRoll) roll.lite = true; - if (config.roll && !config.roll.success && successCost) { + return roll; + } + + doFollowUp(config) { + return !config.hasRoll; + } + + async consume(config, successCost = false) { + const actor = this.actor.system.partner ?? this.actor, + usefulResources = { + ...foundry.utils.deepClone(actor.system.resources), + fear: { + value: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear), + max: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).maxFear, + reversed: false + } + }; + + for (var cost of config.costs) { + if (cost.keyIsID) { + usefulResources[cost.key] = { + value: cost.value, + target: this.parent.parent, + keyIsID: true + }; + } + } + + const resources = game.system.api.fields.ActionFields.CostField.getRealCosts(config.costs) + .filter( + c => + (!successCost && (!c.consumeOnSuccess || config.roll?.success)) || + (successCost && c.consumeOnSuccess) + ) + .reduce((a, c) => { + const resource = usefulResources[c.key]; + if (resource) { + a.push({ + key: c.key, + value: (c.total ?? c.value) * (resource.isReversed ? 1 : -1), + target: resource.target, + keyIsID: resource.keyIsID + }); + return a; + } + }, []); + + await actor.modifyResource(resources); + if ( + config.uses?.enabled && + ((!successCost && (!config.uses?.consumeOnSuccess || config.roll?.success)) || + (successCost && config.uses?.consumeOnSuccess)) + ) + this.update({ 'uses.value': this.uses.value + 1 }); + + if (config.roll?.success || successCost) { setTimeout(() => { (config.message ?? config.parent).update({ 'system.successConsumed': true }); }, 50); } } + /* */ - /** - * Set if a configuration dialog must be shown or not if a special keyboard key is pressed. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - */ - static applyKeybindings(config) { - config.dialog.configure ??= !(config.event.shiftKey || config.event.altKey || config.event.ctrlKey); + /* ROLL */ + getUseHasRoll(byPass = false) { + return this.hasRoll && !byPass; } - /** - * Getters to know which parts the action is composed of. A field can exist but configured to not be used. - * @returns {boolean} If that part is in the action. - */ - get hasRoll() { return !!this.roll?.type; } - get hasDamage() { - return this.damage?.parts?.length && this.type !== 'healing'; - } - - get hasHealing() { - return this.damage?.parts?.length && this.type === 'healing'; + get modifiers() { + if (!this.actor) return []; + const modifiers = []; + /** Placeholder for specific bonuses **/ + return modifiers; } + /* ROLL */ + /* SAVE */ get hasSave() { return !!this.save?.trait; } + /* SAVE */ + /* EFFECTS */ get hasEffect() { return this.effects?.length > 0; } + 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 => { + if (!token.hit && !force) return; + if (this.hasSave && token.saved.success === true) { + effects = this.effects.filter(e => e.onSave === true); + } + if (!effects.length) return; + effects.forEach(async e => { + const actor = canvas.tokens.get(token.id)?.actor, + effect = this.item.effects.get(e._id); + if (!actor || !effect) return; + await this.applyEffect(effect, actor); + }); + }); + } + + async applyEffect(effect, actor) { + const existingEffect = actor.effects.find(e => e.origin === effect.uuid); + if (existingEffect) { + return effect.update( + foundry.utils.mergeObject({ + ...effect.constructor.getInitialDuration(), + disabled: false + }) + ); + } + + // Otherwise, create a new effect on the target + const effectData = foundry.utils.mergeObject({ + ...effect.toObject(), + disabled: false, + transfer: false, + origin: effect.uuid + }); + await ActiveEffect.implementation.create(effectData, { parent: actor }); + } + /* EFFECTS */ + + /* SAVE */ + async rollSave(actor, event, message) { + if (!actor) return; + const title = actor.isNPC + ? game.i18n.localize('DAGGERHEART.GENERAL.reactionRoll') + : game.i18n.format('DAGGERHEART.UI.Chat.dualityRoll.abilityCheckTitle', { + ability: game.i18n.localize(abilities[this.save.trait]?.label) + }); + return actor.diceRoll({ + event, + title, + roll: { + trait: this.save.trait, + difficulty: this.save.difficulty ?? this.actor?.baseSaveDifficulty, + type: 'reaction' + }, + type: 'trait', + hasRoll: true, + data: actor.getRollData() + }); + } + + updateSaveMessage(result, message, targetId) { + if (!result) return; + const updateMsg = this.updateChatMessage.bind(this, message, targetId, { + result: result.roll.total, + success: result.roll.success + }); + if (game.modules.get('dice-so-nice')?.active) + game.dice3d.waitFor3DAnimationByMessageID(result.message.id ?? result.message._id).then(() => updateMsg()); + else updateMsg(); + } + + static rollSaveQuery({ actionId, actorId, event, message }) { + return new Promise(async (resolve, reject) => { + const actor = await fromUuid(actorId), + action = await fromUuid(actionId); + if (!actor || !actor?.isOwner) reject(); + action.rollSave(actor, event, message).then(result => resolve(result)); + }); + } + /* SAVE */ + + async updateChatMessage(message, targetId, changes, chain = true) { + setTimeout(async () => { + const chatMessage = ui.chat.collection.get(message._id); + + await chatMessage.update({ + flags: { + [game.system.id]: { + reactionRolls: { + [targetId]: changes + } + } + } + }); + }, 100); + if (chain) { + if (message.system.source.message) + this.updateChatMessage(ui.chat.collection.get(message.system.source.message), targetId, changes, false); + const relatedChatMessages = ui.chat.collection.filter(c => c.system.source?.message === message._id); + relatedChatMessages.forEach(c => { + this.updateChatMessage(c, targetId, changes, false); + }); + } + } + /** * Generates a list of localized tags for this action. * @returns {string[]} An array of localized tag strings. */ _getTags() { - const tags = [game.i18n.localize(`DAGGERHEART.ACTIONS.TYPES.${this.type}.name`)]; + const tags = [ + game.i18n.localize(`DAGGERHEART.ACTIONS.TYPES.${this.type}.name`), + game.i18n.localize(`DAGGERHEART.CONFIG.ActionType.${this.actionType}`) + ]; return tags; } } - -export class ResourceUpdateMap extends Map { - #actor; - - constructor(actor) { - super(); - - this.#actor = actor; - } - - addResources(resources) { - for (const resource of resources) { - if (!resource.key) continue; - - const existing = this.get(resource.key); - if (existing) { - this.set(resource.key, { - ...existing, - value: existing.value + (resource.value ?? 0), - total: existing.total + (resource.total ?? 0) - }); - } else { - this.set(resource.key, resource); - } - } - } - - #getResources() { - return Array.from(this.values()); - } - - async updateResources() { - if (this.#actor) { - const target = this.#actor.system.partner ?? this.#actor; - await target.modifyResource(this.#getResources()); - } - } -} diff --git a/module/data/action/beastformAction.mjs b/module/data/action/beastformAction.mjs index 657cfde2..8c2dd31e 100644 --- a/module/data/action/beastformAction.mjs +++ b/module/data/action/beastformAction.mjs @@ -1,9 +1,10 @@ +import BeastformDialog from '../../applications/dialogs/beastformDialog.mjs'; import DHBaseAction from './baseAction.mjs'; export default class DhBeastformAction extends DHBaseAction { static extraSchemas = [...super.extraSchemas, 'beastform']; - /* async use(event, options) { + async use(event, options) { const beastformConfig = this.prepareBeastformConfig(); const abort = await this.handleActiveTransformations(); @@ -81,5 +82,5 @@ export default class DhBeastformAction extends DHBaseAction { beastformEffects.map(x => x.id) ); return existingEffects; - } */ + } } diff --git a/module/data/action/countdownAction.mjs b/module/data/action/countdownAction.mjs deleted file mode 100644 index abcc6b40..00000000 --- a/module/data/action/countdownAction.mjs +++ /dev/null @@ -1,49 +0,0 @@ -import DHBaseAction from './baseAction.mjs'; - -export default class DhCountdownAction extends DHBaseAction { - static extraSchemas = [...super.extraSchemas, 'countdown']; - - get defaultValues() { - return { - ...super.defaultValues, - countdown: { - name: this.parent.parent.name, - img: this.img, - progress: { - startFormula: '1' - } - } - }; - } - - /** @inheritdoc */ - static getSourceConfig(parent) { - const updateSource = game.system.api.data.actions.actionsTypes.base.getSourceConfig(parent); - updateSource.name = game.i18n.localize('DAGGERHEART.ACTIONS.Config.countdown.startCountdown'); - updateSource['countdown'] = [ - { - ...game.system.api.data.countdowns.DhCountdown.defaultCountdown(), - name: parent.parent.name, - img: parent.parent.img, - progress: { - startFormula: '1' - } - } - ]; - - return updateSource; - } - - /** @inheritDoc */ - static migrateData(source) { - for (const countdown of source.countdown) { - if (countdown.progress.max) { - countdown.progress.startFormula = countdown.progress.max; - countdown.progress.start = 1; - countdown.progress.max = null; - } - } - - return super.migrateData(source); - } -} diff --git a/module/data/action/damageAction.mjs b/module/data/action/damageAction.mjs index 51735543..7deeb006 100644 --- a/module/data/action/damageAction.mjs +++ b/module/data/action/damageAction.mjs @@ -1,18 +1,65 @@ +import { setsEqual } from '../../helpers/utils.mjs'; import DHBaseAction from './baseAction.mjs'; export default class DHDamageAction extends DHBaseAction { static extraSchemas = [...super.extraSchemas, 'damage', 'target', 'effects']; - /** - * Return a display ready damage formula string - * @returns Formula string - */ - getDamageFormula() { - const strings = []; - for (const { value } of this.damage.parts) { - strings.push(Roll.replaceFormulaData(value.getFormula(), this.actor?.getRollData() ?? {})); + getFormulaValue(part, data) { + let formulaValue = part.value; + + if (data.hasRoll && part.resultBased && data.roll.result.duality === -1) return part.valueAlt; + + const isAdversary = this.actor.type === 'adversary'; + if (isAdversary && this.actor.system.type === CONFIG.DH.ACTOR.adversaryTypes.horde.id) { + const hasHordeDamage = this.actor.effects.find(x => x.type === 'horde'); + if (hasHordeDamage && !hasHordeDamage.disabled) return part.valueAlt; } - return strings.join(' + '); + return formulaValue; + } + + formatFormulas(formulas, systemData) { + const formattedFormulas = []; + formulas.forEach(formula => { + if (isNaN(formula.formula)) + formula.formula = Roll.replaceFormulaData(formula.formula, this.getRollData(systemData)); + const same = formattedFormulas.find( + f => setsEqual(f.damageTypes, formula.damageTypes) && f.applyTo === formula.applyTo + ); + if (same) same.formula += ` + ${formula.formula}`; + else formattedFormulas.push(formula); + }); + return formattedFormulas; + } + + async rollDamage(event, data) { + const systemData = data.system ?? data; + + let formulas = this.damage.parts.map(p => ({ + formula: this.getFormulaValue(p, systemData).getFormula(this.actor), + damageTypes: p.applyTo === 'hitPoints' && !p.type.size ? new Set(['physical']) : p.type, + applyTo: p.applyTo + })); + + if (!formulas.length) return; + + formulas = this.formatFormulas(formulas, systemData); + + delete systemData.evaluate; + const config = { + ...systemData, + roll: formulas, + dialog: {}, + data: this.getRollData() + }; + if (this.hasSave) config.onSave = this.save.damageMod; + if (data.system) { + config.source.message = data._id; + config.directDamage = false; + } else { + config.directDamage = true; + } + + return CONFIG.Dice.daggerheart.DamageRoll.build(config); } } diff --git a/module/data/action/macroAction.mjs b/module/data/action/macroAction.mjs index b8338cd8..58b8eba5 100644 --- a/module/data/action/macroAction.mjs +++ b/module/data/action/macroAction.mjs @@ -2,4 +2,15 @@ import DHBaseAction from './baseAction.mjs'; export default class DHMacroAction extends DHBaseAction { static extraSchemas = [...super.extraSchemas, 'macro']; + + async trigger(event, ...args) { + const fixUUID = !this.macro.includes('Macro.') ? `Macro.${this.macro}` : this.macro, + macro = await fromUuid(fixUUID); + try { + if (!macro) throw new Error(`No macro found for the UUID: ${this.macro}.`); + macro.execute(); + } catch (error) { + ui.notifications.error(error); + } + } } diff --git a/module/data/activeEffect/baseEffect.mjs b/module/data/activeEffect/baseEffect.mjs index ea74531d..0ac87de0 100644 --- a/module/data/activeEffect/baseEffect.mjs +++ b/module/data/activeEffect/baseEffect.mjs @@ -1,17 +1,3 @@ -/** -- Changes Type Priorities -- - * - Base Number - - * Custom: 0 - * Multiply: 10 - * Add: 20 - * Downgrade: 30 - * Upgrade: 40 - * Override: 50 - * - * - Changes Value Priorities - - * Standard: +0 - * "Anything that uses another data model value as its value": +1 - Effects that increase traits have to be calculated first at Base priority. (EX: Raise evasion by half your agility) - */ - export default class BaseEffect extends foundry.abstract.TypeDataModel { static defineSchema() { const fields = foundry.data.fields; @@ -44,24 +30,4 @@ export default class BaseEffect extends foundry.abstract.TypeDataModel { }) }; } - - static getDefaultObject() { - return { - name: 'New Effect', - id: foundry.utils.randomID(), - disabled: false, - img: 'icons/magic/life/heart-cross-blue.webp', - description: '', - statuses: [], - changes: [], - system: { - rangeDependence: { - enabled: false, - type: CONFIG.DH.GENERAL.rangeInclusion.withinRange.id, - target: CONFIG.DH.GENERAL.otherTargetTypes.hostile.id, - range: CONFIG.DH.GENERAL.range.melee.id - } - } - }; - } } diff --git a/module/data/activeEffect/beastformEffect.mjs b/module/data/activeEffect/beastformEffect.mjs index 5311b827..b5cbdb28 100644 --- a/module/data/activeEffect/beastformEffect.mjs +++ b/module/data/activeEffect/beastformEffect.mjs @@ -6,12 +6,10 @@ export default class BeastformEffect extends BaseEffect { const fields = foundry.data.fields; return { characterTokenData: new fields.SchemaField({ - usesDynamicToken: new fields.BooleanField({ initial: false }), tokenImg: new fields.FilePathField({ categories: ['IMAGE'], base64: false, - nullable: true, - wildcard: true + nullable: true }), tokenRingImg: new fields.FilePathField({ initial: 'icons/svg/mystery-man.svg', @@ -19,8 +17,8 @@ export default class BeastformEffect extends BaseEffect { base64: false }), tokenSize: new fields.SchemaField({ - height: new fields.NumberField({ integer: false, nullable: true }), - width: new fields.NumberField({ integer: false, nullable: true }) + height: new fields.NumberField({ integer: true, nullable: true }), + width: new fields.NumberField({ integer: true, nullable: true }) }) }), advantageOn: new fields.ArrayField(new fields.StringField()), @@ -29,14 +27,6 @@ export default class BeastformEffect extends BaseEffect { }; } - /** @inheritDoc */ - static migrateData(source) { - if (!source.characterTokenData.tokenSize.height) source.characterTokenData.tokenSize.height = 1; - if (!source.characterTokenData.tokenSize.width) source.characterTokenData.tokenSize.width = 1; - - return super.migrateData(source); - } - async _onCreate(_data, _options, userId) { if (userId !== game.user.id) return; @@ -48,57 +38,20 @@ export default class BeastformEffect extends BaseEffect { async _preDelete() { if (this.parent.parent.type === 'character') { - const baseUpdate = { - height: this.characterTokenData.tokenSize.height, - width: this.characterTokenData.tokenSize.width - }; const update = { - ...baseUpdate, + height: this.characterTokenData.tokenSize.height, + width: this.characterTokenData.tokenSize.width, texture: { src: this.characterTokenData.tokenImg }, ring: { - enabled: this.characterTokenData.usesDynamicToken, subject: { texture: this.characterTokenData.tokenRingImg } } }; - const updateToken = token => { - let x = null, - y = null; - if (token.object?.scene?.grid) { - const positionData = game.system.api.documents.DhToken.getSnappedPositionInSquareGrid( - token.object.scene.grid, - { x: token.x, y: token.y, elevation: token.elevation }, - baseUpdate.width, - baseUpdate.height - ); - - x = positionData.x; - y = positionData.y; - } - - return { - ...baseUpdate, - x, - y, - 'texture': { - enabled: this.characterTokenData.usesDynamicToken, - src: token.flags.daggerheart?.beastformTokenImg ?? this.characterTokenData.tokenImg - }, - 'ring': { - subject: { - texture: - token.flags.daggerheart?.beastformSubjectTexture ?? this.characterTokenData.tokenRingImg - } - }, - 'flags.daggerheart': { '-=beastformTokenImg': null, '-=beastformSubjectTexture': null } - }; - }; - - await updateActorTokens(this.parent.parent, update, updateToken); + await updateActorTokens(this.parent.parent, update); await this.parent.parent.deleteEmbeddedDocuments('Item', this.featureIds); await this.parent.parent.deleteEmbeddedDocuments('ActiveEffect', this.effectIds); diff --git a/module/data/actor/_module.mjs b/module/data/actor/_module.mjs index 99577620..c19036eb 100644 --- a/module/data/actor/_module.mjs +++ b/module/data/actor/_module.mjs @@ -2,14 +2,12 @@ import DhCharacter from './character.mjs'; import DhCompanion from './companion.mjs'; import DhAdversary from './adversary.mjs'; import DhEnvironment from './environment.mjs'; -import DhParty from './party.mjs'; -export { DhCharacter, DhCompanion, DhAdversary, DhEnvironment, DhParty }; +export { DhCharacter, DhCompanion, DhAdversary, DhEnvironment }; export const config = { character: DhCharacter, companion: DhCompanion, adversary: DhAdversary, - environment: DhEnvironment, - party: DhParty + environment: DhEnvironment }; diff --git a/module/data/actor/adversary.mjs b/module/data/actor/adversary.mjs index 16e7e37a..a4dfddf5 100644 --- a/module/data/actor/adversary.mjs +++ b/module/data/actor/adversary.mjs @@ -1,6 +1,6 @@ import DHAdversarySettings from '../../applications/sheets-configs/adversary-settings.mjs'; import { ActionField } from '../fields/actionField.mjs'; -import BaseDataActor, { commonActorRules } from './base.mjs'; +import BaseDataActor from './base.mjs'; import { resourceField, bonusField } from '../fields/actorField.mjs'; export default class DhpAdversary extends BaseDataActor { @@ -10,9 +10,7 @@ export default class DhpAdversary extends BaseDataActor { return foundry.utils.mergeObject(super.metadata, { label: 'TYPES.Actor.adversary', type: 'adversary', - settingSheet: DHAdversarySettings, - hasAttribution: true, - usesSize: true + settingSheet: DHAdversarySettings }); } @@ -28,7 +26,7 @@ export default class DhpAdversary extends BaseDataActor { }), type: new fields.StringField({ required: true, - choices: CONFIG.DH.ACTOR.allAdversaryTypes, + choices: CONFIG.DH.ACTOR.adversaryTypes, initial: CONFIG.DH.ACTOR.adversaryTypes.standard.id }), motivesAndTactics: new fields.StringField(), @@ -40,7 +38,6 @@ export default class DhpAdversary extends BaseDataActor { integer: true, label: 'DAGGERHEART.GENERAL.hordeHp' }), - criticalThreshold: new fields.NumberField({ required: true, integer: true, min: 1, max: 20, initial: 20 }), damageThresholds: new fields.SchemaField({ major: new fields.NumberField({ required: true, @@ -59,9 +56,6 @@ export default class DhpAdversary extends BaseDataActor { hitPoints: resourceField(0, 0, 'DAGGERHEART.GENERAL.HitPoints.plural', true), stress: resourceField(0, 0, 'DAGGERHEART.GENERAL.stress', true) }), - rules: new fields.SchemaField({ - ...commonActorRules() - }), attack: new ActionField({ initial: { name: 'Attack', @@ -126,10 +120,6 @@ export default class DhpAdversary extends BaseDataActor { return this.parent.items.filter(x => x.type === 'feature'); } - isItemValid(source) { - return source.type === 'feature'; - } - async _preUpdate(changes, options, user) { const allowed = await super._preUpdate(changes, options, user); if (allowed === false) return false; @@ -179,13 +169,4 @@ export default class DhpAdversary extends BaseDataActor { } } } - - _getTags() { - const tags = [ - game.i18n.localize(`DAGGERHEART.GENERAL.Tiers.${this.tier}`), - `${game.i18n.localize(`DAGGERHEART.CONFIG.AdversaryType.${this.type}.label`)}`, - `${game.i18n.localize('DAGGERHEART.GENERAL.difficulty')}: ${this.difficulty}` - ]; - return tags; - } } diff --git a/module/data/actor/base.mjs b/module/data/actor/base.mjs index b90361e2..0e9dd2d8 100644 --- a/module/data/actor/base.mjs +++ b/module/data/actor/base.mjs @@ -1,24 +1,21 @@ import DHBaseActorSettings from '../../applications/sheets/api/actor-setting.mjs'; -import DHItem from '../../documents/item.mjs'; -import { getScrollTextData } from '../../helpers/utils.mjs'; - -const fields = foundry.data.fields; +import { createScrollText, getScrollTextData } from '../../helpers/utils.mjs'; const resistanceField = (resistanceLabel, immunityLabel, reductionLabel) => - new fields.SchemaField({ - resistance: new fields.BooleanField({ + new foundry.data.fields.SchemaField({ + resistance: new foundry.data.fields.BooleanField({ initial: false, label: `${resistanceLabel}.label`, hint: `${resistanceLabel}.hint`, isAttributeChoice: true }), - immunity: new fields.BooleanField({ + immunity: new foundry.data.fields.BooleanField({ initial: false, label: `${immunityLabel}.label`, hint: `${immunityLabel}.hint`, isAttributeChoice: true }), - reduction: new fields.NumberField({ + reduction: new foundry.data.fields.NumberField({ integer: true, initial: 0, label: `${reductionLabel}.label`, @@ -26,25 +23,6 @@ const resistanceField = (resistanceLabel, immunityLabel, reductionLabel) => }) }); -/* Common rules applying to Characters and Adversaries */ -export const commonActorRules = (extendedData = { damageReduction: {} }) => ({ - conditionImmunities: new fields.SchemaField({ - hidden: new fields.BooleanField({ initial: false }), - restrained: new fields.BooleanField({ initial: false }), - vulnerable: new fields.BooleanField({ initial: false }) - }), - damageReduction: new fields.SchemaField({ - thresholdImmunities: new fields.SchemaField({ - minor: new fields.BooleanField({ initial: false }) - }), - reduceSeverity: new fields.SchemaField({ - magical: new fields.NumberField({ initial: 0, min: 0 }), - physical: new fields.NumberField({ initial: 0, min: 0 }) - }), - ...extendedData.damageReduction - }) -}); - /** * Describes metadata about the actor data model type * @typedef {Object} ActorDataModelMetadata @@ -61,10 +39,7 @@ export default class BaseDataActor extends foundry.abstract.TypeDataModel { type: 'base', isNPC: true, settingSheet: null, - hasResistances: true, - hasAttribution: false, - hasLimitedView: true, - usesSize: false + hasResistances: true }; } @@ -75,15 +50,9 @@ export default class BaseDataActor extends foundry.abstract.TypeDataModel { /** @inheritDoc */ static defineSchema() { + const fields = foundry.data.fields; const schema = {}; - if (this.metadata.hasAttribution) { - schema.attribution = new fields.SchemaField({ - source: new fields.StringField(), - page: new fields.NumberField(), - artist: new fields.StringField() - }); - } if (this.metadata.isNPC) schema.description = new fields.HTMLField({ required: true, nullable: true }); if (this.metadata.hasResistances) schema.resistance = new fields.SchemaField({ @@ -98,13 +67,6 @@ export default class BaseDataActor extends foundry.abstract.TypeDataModel { 'DAGGERHEART.GENERAL.DamageResistance.magicalReduction' ) }); - if (this.metadata.usesSize) - schema.size = new fields.StringField({ - required: true, - nullable: false, - choices: CONFIG.DH.ACTOR.tokenSize, - initial: CONFIG.DH.ACTOR.tokenSize.custom.id - }); return schema; } @@ -116,13 +78,6 @@ export default class BaseDataActor extends foundry.abstract.TypeDataModel { */ static DEFAULT_ICON = null; - get attributionLabel() { - if (!this.attribution) return; - - const { source, page } = this.attribution; - return [source, page ? `pg ${page}.` : null].filter(x => x).join('. '); - } - /* -------------------------------------------- */ /** @@ -135,32 +90,6 @@ export default class BaseDataActor extends foundry.abstract.TypeDataModel { return data; } - /** - * Checks if an item is available for use, such as multiclass features being disabled - * on a character. - * - * @param {DHItem} item The item being checked for availability - * @return {boolean} whether the item is available - */ - isItemAvailable(item) { - return true; - } - - async _preDelete() { - /* Clear all partyMembers from tagTeam setting.*/ - /* Revisit this when tagTeam is improved for many parties */ - if (this.parent.parties.size > 0) { - const tagTeam = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll); - await tagTeam.updateSource({ - initiator: this.parent.id === tagTeam.initiator ? null : tagTeam.initiator, - members: Object.keys(tagTeam.members).find(x => x === this.parent.id) - ? { [`-=${this.parent.id}`]: null } - : {} - }); - await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll, tagTeam); - } - } - async _preUpdate(changes, options, userId) { const allowed = await super._preUpdate(changes, options, userId); if (allowed === false) return; @@ -209,6 +138,6 @@ export default class BaseDataActor extends foundry.abstract.TypeDataModel { _onUpdate(changes, options, userId) { super._onUpdate(changes, options, userId); - if (options.scrollingTextData) this.parent.queueScrollText(options.scrollingTextData); + createScrollText(this.parent, options.scrollingTextData); } } diff --git a/module/data/actor/character.mjs b/module/data/actor/character.mjs index eba46f10..ddcc5bf5 100644 --- a/module/data/actor/character.mjs +++ b/module/data/actor/character.mjs @@ -1,7 +1,7 @@ import { burden } from '../../config/generalConfig.mjs'; import ForeignDocumentUUIDField from '../fields/foreignDocumentUUIDField.mjs'; import DhLevelData from '../levelData.mjs'; -import BaseDataActor, { commonActorRules } from './base.mjs'; +import BaseDataActor from './base.mjs'; import { attributeField, resourceField, stressDamageReductionRule, bonusField } from '../fields/actorField.mjs'; import { ActionField } from '../fields/actionField.mjs'; import DHCharacterSettings from '../../applications/sheets-configs/character-settings.mjs'; @@ -217,41 +217,40 @@ export default class DhCharacter extends BaseDataActor { }), companion: new ForeignDocumentUUIDField({ type: 'Actor', nullable: true, initial: null }), rules: new fields.SchemaField({ - ...commonActorRules({ - damageReduction: { - magical: new fields.BooleanField({ initial: false }), - physical: new fields.BooleanField({ initial: false }), - maxArmorMarked: new fields.SchemaField({ - value: new fields.NumberField({ - required: true, - integer: true, - initial: 1, - label: 'DAGGERHEART.GENERAL.Rules.damageReduction.maxArmorMarkedBonus' - }), - stressExtra: new fields.NumberField({ - required: true, - integer: true, - initial: 0, - label: 'DAGGERHEART.GENERAL.Rules.damageReduction.maxArmorMarkedStress.label', - hint: 'DAGGERHEART.GENERAL.Rules.damageReduction.maxArmorMarkedStress.hint' - }) - }), - stressDamageReduction: new fields.SchemaField({ - severe: stressDamageReductionRule( - 'DAGGERHEART.GENERAL.Rules.damageReduction.stress.severe' - ), - major: stressDamageReductionRule('DAGGERHEART.GENERAL.Rules.damageReduction.stress.major'), - minor: stressDamageReductionRule('DAGGERHEART.GENERAL.Rules.damageReduction.stress.minor'), - any: stressDamageReductionRule('DAGGERHEART.GENERAL.Rules.damageReduction.stress.any') - }), - increasePerArmorMark: new fields.NumberField({ + damageReduction: new fields.SchemaField({ + maxArmorMarked: new fields.SchemaField({ + value: new fields.NumberField({ + required: true, integer: true, initial: 1, - label: 'DAGGERHEART.GENERAL.Rules.damageReduction.increasePerArmorMark.label', - hint: 'DAGGERHEART.GENERAL.Rules.damageReduction.increasePerArmorMark.hint' + label: 'DAGGERHEART.GENERAL.Rules.damageReduction.maxArmorMarkedBonus' }), - disabledArmor: new fields.BooleanField({ intial: false }) - } + stressExtra: new fields.NumberField({ + required: true, + integer: true, + initial: 0, + label: 'DAGGERHEART.GENERAL.Rules.damageReduction.maxArmorMarkedStress.label', + hint: 'DAGGERHEART.GENERAL.Rules.damageReduction.maxArmorMarkedStress.hint' + }) + }), + stressDamageReduction: new fields.SchemaField({ + severe: stressDamageReductionRule('DAGGERHEART.GENERAL.Rules.damageReduction.stress.severe'), + major: stressDamageReductionRule('DAGGERHEART.GENERAL.Rules.damageReduction.stress.major'), + minor: stressDamageReductionRule('DAGGERHEART.GENERAL.Rules.damageReduction.stress.minor'), + any: stressDamageReductionRule('DAGGERHEART.GENERAL.Rules.damageReduction.stress.any') + }), + increasePerArmorMark: new fields.NumberField({ + integer: true, + initial: 1, + label: 'DAGGERHEART.GENERAL.Rules.damageReduction.increasePerArmorMark.label', + hint: 'DAGGERHEART.GENERAL.Rules.damageReduction.increasePerArmorMark.hint' + }), + magical: new fields.BooleanField({ initial: false }), + physical: new fields.BooleanField({ initial: false }), + thresholdImmunities: new fields.SchemaField({ + minor: new fields.BooleanField({ initial: false }) + }), + disabledArmor: new fields.BooleanField({ intial: false }) }), attack: new fields.SchemaField({ damage: new fields.SchemaField({ @@ -427,33 +426,6 @@ export default class DhCharacter extends BaseDataActor { return attack; } - /** @inheritDoc */ - isItemAvailable(item) { - if (!super.isItemAvailable(this)) return false; - /** - * Preventing subclass features from being available if the chacaracter does not - * have the right subclass advancement - */ - if (item.system.originItemType !== CONFIG.DH.ITEM.featureTypes.subclass.id) { - return true; - } - if (!this.class.subclass) return false; - - const prop = item.system.multiclassOrigin ? 'multiclass' : 'class'; - const subclassState = this[prop].subclass?.system?.featureState; - if (!subclassState) return false; - - if ( - item.system.identifier === CONFIG.DH.ITEM.featureSubTypes.foundation || - (item.system.identifier === CONFIG.DH.ITEM.featureSubTypes.specialization && subclassState >= 2) || - (item.system.identifier === CONFIG.DH.ITEM.featureSubTypes.mastery && subclassState >= 3) - ) { - return true; - } else { - return false; - } - } - get sheetLists() { const ancestryFeatures = [], communityFeatures = [], @@ -462,7 +434,7 @@ export default class DhCharacter extends BaseDataActor { companionFeatures = [], features = []; - for (let item of this.parent.items.filter(x => this.isItemAvailable(x))) { + for (let item of this.parent.items) { if (item.system.originItemType === CONFIG.DH.ITEM.featureTypes.ancestry.id) { ancestryFeatures.push(item); } else if (item.system.originItemType === CONFIG.DH.ITEM.featureTypes.community.id) { @@ -470,7 +442,20 @@ export default class DhCharacter extends BaseDataActor { } else if (item.system.originItemType === CONFIG.DH.ITEM.featureTypes.class.id) { classFeatures.push(item); } else if (item.system.originItemType === CONFIG.DH.ITEM.featureTypes.subclass.id) { - subclassFeatures.push(item); + if (this.class.subclass) { + const prop = item.system.multiclassOrigin ? 'multiclass' : 'class'; + const subclassState = this[prop].subclass?.system?.featureState; + if (!subclassState) continue; + + if ( + item.system.identifier === CONFIG.DH.ITEM.featureSubTypes.foundation || + (item.system.identifier === CONFIG.DH.ITEM.featureSubTypes.specialization && + subclassState >= 2) || + (item.system.identifier === CONFIG.DH.ITEM.featureSubTypes.mastery && subclassState >= 3) + ) { + subclassFeatures.push(item); + } + } } else if (item.system.originItemType === CONFIG.DH.ITEM.featureTypes.companion.id) { companionFeatures.push(item); } else if (item.type === 'feature' && !item.system.type) { @@ -684,16 +669,8 @@ export default class DhCharacter extends BaseDataActor { } async _preDelete() { - super._preDelete(); - if (this.companion) { this.companion.updateLevel(1); } } - - _getTags() { - return [this.class.value?.name, this.class.subclass?.name, this.community?.name, this.ancestry?.name].filter( - t => !!t - ); - } } diff --git a/module/data/actor/companion.mjs b/module/data/actor/companion.mjs index fa1965bd..48572460 100644 --- a/module/data/actor/companion.mjs +++ b/module/data/actor/companion.mjs @@ -1,7 +1,7 @@ import BaseDataActor from './base.mjs'; import DhLevelData from '../levelData.mjs'; import ForeignDocumentUUIDField from '../fields/foreignDocumentUUIDField.mjs'; -import { ActionField } from '../fields/actionField.mjs'; +import { ActionField, ActionsField } from '../fields/actionField.mjs'; import { adjustDice, adjustRange } from '../../helpers/utils.mjs'; import DHCompanionSettings from '../../applications/sheets-configs/companion-settings.mjs'; import { resourceField, bonusField } from '../fields/actorField.mjs'; @@ -51,13 +51,6 @@ export default class DhCompanion extends BaseDataActor { } } ), - rules: new fields.SchemaField({ - conditionImmunities: new fields.SchemaField({ - hidden: new fields.BooleanField({ initial: false }), - restrained: new fields.BooleanField({ initial: false }), - vulnerable: new fields.BooleanField({ initial: false }) - }) - }), attack: new ActionField({ initial: { name: 'Attack', @@ -108,10 +101,6 @@ export default class DhCompanion extends BaseDataActor { get proficiency() { return this.partner?.system?.proficiency ?? 1; } - - isItemValid() { - return false; - } prepareBaseData() { this.attack.roll.bonus = this.partner?.system?.spellcastModifier ?? 0; diff --git a/module/data/actor/environment.mjs b/module/data/actor/environment.mjs index 4ed3819e..adb7dabc 100644 --- a/module/data/actor/environment.mjs +++ b/module/data/actor/environment.mjs @@ -12,8 +12,7 @@ export default class DhEnvironment extends BaseDataActor { label: 'TYPES.Actor.environment', type: 'environment', settingSheet: DHEnvironmentSettings, - hasResistances: false, - hasAttribution: true + hasResistances: false }); } @@ -51,8 +50,4 @@ export default class DhEnvironment extends BaseDataActor { get features() { return this.parent.items.filter(x => x.type === 'feature'); } - - isItemValid(source) { - return source.type === "feature"; - } } diff --git a/module/data/actor/party.mjs b/module/data/actor/party.mjs deleted file mode 100644 index 236d65db..00000000 --- a/module/data/actor/party.mjs +++ /dev/null @@ -1,68 +0,0 @@ -import BaseDataActor from './base.mjs'; -import ForeignDocumentUUIDArrayField from '../fields/foreignDocumentUUIDArrayField.mjs'; - -export default class DhParty extends BaseDataActor { - /**@inheritdoc */ - static defineSchema() { - const fields = foundry.data.fields; - return { - ...super.defineSchema(), - partyMembers: new ForeignDocumentUUIDArrayField({ type: 'Actor' }, { prune: true }), - notes: new fields.HTMLField(), - gold: new fields.SchemaField({ - coins: new fields.NumberField({ initial: 0, integer: true }), - handfuls: new fields.NumberField({ initial: 1, integer: true }), - bags: new fields.NumberField({ initial: 0, integer: true }), - chests: new fields.NumberField({ initial: 0, integer: true }) - }) - }; - } - - /* -------------------------------------------- */ - - /**@inheritdoc */ - static DEFAULT_ICON = 'systems/daggerheart/assets/icons/documents/actors/dark-squad.svg'; - - /* -------------------------------------------- */ - - isItemValid(source) { - return ['weapon', 'armor', 'consumable', 'loot'].includes(source.type); - } - - prepareBaseData() { - super.prepareBaseData(); - - // Register this party to all members - if (game.actors.get(this.parent.id) === this.parent) { - for (const member of this.partyMembers) { - member.parties?.add(this.parent); - } - } - } - - async _preDelete() { - /* Clear all partyMembers from tagTeam setting.*/ - /* Revisit this when tagTeam is improved for many parties */ - const tagTeam = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll); - await tagTeam.updateSource({ - initiator: this.partyMembers.some(x => x.id === tagTeam.initiator) ? null : tagTeam.initiator, - members: Object.keys(tagTeam.members).reduce((acc, key) => { - if (this.partyMembers.find(x => x.id === key)) { - acc[`-=${key}`] = null; - } - - return acc; - }, {}) - }); - await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll, tagTeam); - } - - _onDelete(options, userId) { - super._onDelete(options, userId); - - // Clear this party from all members that aren't deleted - for (const member of this.partyMembers) { - member?.parties?.delete(this.parent); - } - } -} diff --git a/module/data/chat-message/_modules.mjs b/module/data/chat-message/_modules.mjs index ec095aac..a4e2c1fd 100644 --- a/module/data/chat-message/_modules.mjs +++ b/module/data/chat-message/_modules.mjs @@ -1,13 +1,9 @@ -import DHAbilityUse from './abilityUse.mjs'; -import DHActorRoll from './actorRoll.mjs'; -import DHGroupRoll from './groupRoll.mjs'; -import DHSystemMessage from './systemMessage.mjs'; +import DHAbilityUse from "./abilityUse.mjs"; +import DHActorRoll from "./adversaryRoll.mjs"; export const config = { - abilityUse: DHAbilityUse, - adversaryRoll: DHActorRoll, - damageRoll: DHActorRoll, - dualityRoll: DHActorRoll, - groupRoll: DHGroupRoll, - systemMessage: DHSystemMessage + abilityUse: DHAbilityUse, + adversaryRoll: DHActorRoll, + damageRoll: DHActorRoll, + dualityRoll: DHActorRoll }; diff --git a/module/data/chat-message/actorRoll.mjs b/module/data/chat-message/adversaryRoll.mjs similarity index 78% rename from module/data/chat-message/actorRoll.mjs rename to module/data/chat-message/adversaryRoll.mjs index 61262529..de203a6e 100644 --- a/module/data/chat-message/actorRoll.mjs +++ b/module/data/chat-message/adversaryRoll.mjs @@ -17,16 +17,6 @@ const targetsField = () => }) ); -export const originItemField = () => - new fields.SchemaField({ - type: new fields.StringField({ - choices: CONFIG.DH.ITEM.originItemType, - initial: CONFIG.DH.ITEM.originItemType.itemCollection - }), - itemPath: new fields.StringField(), - actionIndex: new fields.StringField() - }); - export default class DHActorRoll extends foundry.abstract.TypeDataModel { static defineSchema() { return { @@ -39,13 +29,11 @@ export default class DHActorRoll extends foundry.abstract.TypeDataModel { hasEffect: new fields.BooleanField({ initial: false }), hasSave: new fields.BooleanField({ initial: false }), hasTarget: new fields.BooleanField({ initial: false }), - isDirect: new fields.BooleanField({ initial: false }), isCritical: new fields.BooleanField({ initial: false }), onSave: new fields.StringField(), source: new fields.SchemaField({ actor: new fields.StringField(), item: new fields.StringField(), - originItem: originItemField(), action: new fields.StringField() }), damage: new fields.ObjectField(), @@ -62,25 +50,13 @@ export default class DHActorRoll extends foundry.abstract.TypeDataModel { get actionItem() { const actionActor = this.actionActor; if (!actionActor || !this.source.item) return null; - - switch (this.source.originItem.type) { - case CONFIG.DH.ITEM.originItemType.restMove: - const restMoves = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).restMoves; - return Array.from(foundry.utils.getProperty(restMoves, `${this.source.originItem.itemPath}`).actions)[ - this.source.originItem.actionIndex - ]; - default: - const item = actionActor.items.get(this.source.item); - return item ? item.system.actionsList?.find(a => a.id === this.source.action) : null; - } + return actionActor.items.get(this.source.item); } get action() { - const { actionActor, actionItem: itemAction } = this; - if (!this.source.action) return null; - if (itemAction) return itemAction; - else if (actionActor?.system.attack?._id === this.source.action) return actionActor.system.attack; - return null; + const actionItem = this.actionItem; + if (!actionItem || !this.source.action) return null; + return actionItem.system.actionsList?.find(a => a.id === this.source.action); } get targetMode() { @@ -118,7 +94,7 @@ export default class DHActorRoll extends foundry.abstract.TypeDataModel { } registerTargetHook() { - if (!this.parent.isAuthor || !this.hasTarget) return; + if (!this.parent.isAuthor) return; if (this.targetMode && this.parent.targetHook !== null) { Hooks.off('targetToken', this.parent.targetHook); return (this.parent.targetHook = null); @@ -150,7 +126,7 @@ export default class DHActorRoll extends foundry.abstract.TypeDataModel { } this.canViewSecret = this.parent.speakerActor?.testUserPermission(game.user, 'OBSERVER'); - this.canButtonApply = game.user.isGM; //temp + this.canButtonApply = game.user.isGM; //temp this.isGM = game.user.isGM; //temp } diff --git a/module/data/chat-message/groupRoll.mjs b/module/data/chat-message/groupRoll.mjs deleted file mode 100644 index a5308323..00000000 --- a/module/data/chat-message/groupRoll.mjs +++ /dev/null @@ -1,39 +0,0 @@ -import { abilities } from '../../config/actorConfig.mjs'; - -export default class DHGroupRoll extends foundry.abstract.TypeDataModel { - static defineSchema() { - const fields = foundry.data.fields; - - return { - leader: new fields.EmbeddedDataField(GroupRollMemberField), - members: new fields.ArrayField(new fields.EmbeddedDataField(GroupRollMemberField)) - }; - } - - get totalModifier() { - return this.members.reduce((acc, m) => { - if (m.manualSuccess === null) return acc; - - return acc + (m.manualSuccess ? 1 : -1); - }, 0); - } -} - -class GroupRollMemberField extends foundry.abstract.DataModel { - static defineSchema() { - const fields = foundry.data.fields; - - return { - actor: new fields.ObjectField(), - trait: new fields.StringField({ choices: abilities }), - difficulty: new fields.StringField(), - result: new fields.ObjectField({ nullable: true, initial: null }), - manualSuccess: new fields.BooleanField({ nullable: true, initial: null }) - }; - } - - /* Can be expanded if we handle automation of success/failure */ - get success() { - return manualSuccess; - } -} diff --git a/module/data/chat-message/systemMessage.mjs b/module/data/chat-message/systemMessage.mjs deleted file mode 100644 index cd2a06a1..00000000 --- a/module/data/chat-message/systemMessage.mjs +++ /dev/null @@ -1,9 +0,0 @@ -export default class DHSystemMessage extends foundry.abstract.TypeDataModel { - static defineSchema() { - const fields = foundry.data.fields; - - return { - useTitle: new fields.BooleanField({ initial: true }) - }; - } -} diff --git a/module/data/combat.mjs b/module/data/combat.mjs index 3671a2cd..e0490286 100644 --- a/module/data/combat.mjs +++ b/module/data/combat.mjs @@ -1,40 +1,6 @@ export default class DhCombat extends foundry.abstract.TypeDataModel { static defineSchema() { const fields = foundry.data.fields; - return { - battleToggles: new fields.ArrayField( - new fields.SchemaField({ - category: new fields.NumberField({ required: true, integer: true }), - grouping: new fields.StringField({ required: true }) - }) - ) - }; - } - - /** Includes automatic BPModifiers */ - get extendedBattleToggles() { - const modifiers = CONFIG.DH.ENCOUNTER.BPModifiers; - const adversaries = - this.parent.turns?.filter(x => x.actor && x.isNPC)?.map(x => ({ ...x.actor, type: x.actor.system.type })) ?? - []; - const characters = this.parent.turns?.filter(x => x.actor && !x.isNPC) ?? []; - - const activeAutomatic = Object.keys(modifiers).reduce((acc, categoryKey) => { - const category = modifiers[categoryKey]; - acc.push( - ...Object.keys(category).reduce((acc, groupingKey) => { - const grouping = category[groupingKey]; - if (grouping.automatic && grouping.conditional?.(this.parent, adversaries, characters)) { - acc.push({ category: Number(categoryKey), grouping: groupingKey }); - } - - return acc; - }, []) - ); - - return acc; - }, []); - - return [...this.battleToggles, ...activeAutomatic]; + return {}; } } diff --git a/module/data/combatant.mjs b/module/data/combatant.mjs index 6deade9f..bb54c798 100644 --- a/module/data/combatant.mjs +++ b/module/data/combatant.mjs @@ -3,8 +3,7 @@ export default class DhCombatant extends foundry.abstract.TypeDataModel { const fields = foundry.data.fields; return { spotlight: new fields.SchemaField({ - requesting: new fields.BooleanField({ required: true, initial: false }), - requestOrderIndex: new fields.NumberField({ required: true, integer: true, initial: 0 }) + requesting: new fields.BooleanField({ required: true, initial: false }) }), actionTokens: new fields.NumberField({ required: true, integer: true, initial: 3 }) }; diff --git a/module/data/countdowns.mjs b/module/data/countdowns.mjs index b944bf73..62036c38 100644 --- a/module/data/countdowns.mjs +++ b/module/data/countdowns.mjs @@ -1,30 +1,25 @@ -import FormulaField from './fields/formulaField.mjs'; +import { RefreshType, socketEvent } from '../systemRegistration/socket.mjs'; export default class DhCountdowns extends foundry.abstract.DataModel { static defineSchema() { const fields = foundry.data.fields; return { - /* Outdated and unused. Needed for migration. Remove in next minor version. (1.3) */ narrative: new fields.EmbeddedDataField(DhCountdownData), - encounter: new fields.EmbeddedDataField(DhCountdownData), - /**/ - countdowns: new fields.TypedObjectField(new fields.EmbeddedDataField(DhCountdown)), - defaultOwnership: new fields.NumberField({ - required: true, - choices: CONFIG.DH.GENERAL.basicOwnershiplevels, - initial: CONST.DOCUMENT_OWNERSHIP_LEVELS.OBSERVER - }) + encounter: new fields.EmbeddedDataField(DhCountdownData) }; } + + static CountdownCategories = { narrative: 'narrative', combat: 'combat' }; } -/* Outdated and unused. Needed for migration. Remove in next minor version. (1.3) */ class DhCountdownData extends foundry.abstract.DataModel { + static LOCALIZATION_PREFIXES = ['DAGGERHEART.APPLICATIONS.Countdown']; // Nots ure why this won't work. Setting labels manually for now + static defineSchema() { const fields = foundry.data.fields; return { - countdowns: new fields.TypedObjectField(new fields.EmbeddedDataField(DhOldCountdown)), + countdowns: new fields.TypedObjectField(new fields.EmbeddedDataField(DhCountdown)), ownership: new fields.SchemaField({ default: new fields.NumberField({ required: true, @@ -61,8 +56,7 @@ class DhCountdownData extends foundry.abstract.DataModel { } } -/* Outdated and unused. Needed for migration. Remove in next minor version. (1.3) */ -class DhOldCountdown extends foundry.abstract.DataModel { +class DhCountdown extends foundry.abstract.DataModel { static defineSchema() { const fields = foundry.data.fields; return { @@ -107,8 +101,8 @@ class DhOldCountdown extends foundry.abstract.DataModel { type: new fields.SchemaField({ value: new fields.StringField({ required: true, - choices: CONFIG.DH.GENERAL.countdownProgressionTypes, - initial: CONFIG.DH.GENERAL.countdownProgressionTypes.custom.id, + choices: CONFIG.DH.GENERAL.countdownTypes, + initial: CONFIG.DH.GENERAL.countdownTypes.custom.id, label: 'DAGGERHEART.GENERAL.type' }), label: new fields.StringField({ @@ -135,110 +129,17 @@ class DhOldCountdown extends foundry.abstract.DataModel { } } -export class DhCountdown extends foundry.abstract.DataModel { - static defineSchema() { - const fields = foundry.data.fields; - return { - type: new fields.StringField({ - required: true, - choices: CONFIG.DH.GENERAL.countdownBaseTypes, - label: 'DAGGERHEART.GENERAL.type' - }), - name: new fields.StringField({ - required: true, - label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.name.label' - }), - img: new fields.FilePathField({ - categories: ['IMAGE'], - base64: false, - initial: 'icons/magic/time/hourglass-yellow-green.webp' - }), - ownership: new fields.TypedObjectField( - new fields.NumberField({ - required: true, - choices: CONFIG.DH.GENERAL.simpleOwnershiplevels, - initial: CONST.DOCUMENT_OWNERSHIP_LEVELS.INHERIT - }) - ), - progress: new fields.SchemaField({ - current: new fields.NumberField({ - required: true, - integer: true, - initial: 1, - label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.current.label' - }), - start: new fields.NumberField({ - required: true, - integer: true, - initial: 1, - label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.start.label', - deterministic: false - }), - startFormula: new FormulaField({ - label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.startFormula.label', - deterministic: false - }), - looping: new fields.StringField({ - required: true, - choices: CONFIG.DH.GENERAL.countdownLoopingTypes, - initial: CONFIG.DH.GENERAL.countdownLoopingTypes.noLooping.id, - label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.looping.label' - }), - type: new fields.StringField({ - required: true, - choices: CONFIG.DH.GENERAL.countdownProgressionTypes, - initial: CONFIG.DH.GENERAL.countdownProgressionTypes.custom.id, - label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.type.label' - }) - }) - }; - } - - static defaultCountdown(type, playerHidden) { - const ownership = playerHidden - ? game.users.reduce((acc, user) => { - if (!user.isGM) { - acc[user.id] = CONST.DOCUMENT_OWNERSHIP_LEVELS.NONE; - } - return acc; - }, {}) - : undefined; - - return { - type: type ?? CONFIG.DH.GENERAL.countdownBaseTypes.narrative.id, - name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Countdown.newCountdown'), - img: 'icons/magic/time/hourglass-yellow-green.webp', - ownership: ownership, - progress: { - current: 1, - start: 1 +export const registerCountdownHooks = () => { + Hooks.on(socketEvent.Refresh, ({ refreshType, application }) => { + if (refreshType === RefreshType.Countdown) { + if (application) { + foundry.applications.instances.get(application)?.render(); + } else { + foundry.applications.instances.get('narrative-countdowns')?.render(); + foundry.applications.instances.get('encounter-countdowns')?.render(); } - }; - } - get playerOwnership() { - return Array.from(game.users).reduce((acc, user) => { - acc[user.id] = { - value: user.isGM - ? CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER - : this.ownership.players[user.id] && this.ownership.players[user.id].type !== -1 - ? this.ownership.players[user.id].type - : this.ownership.default, - isGM: user.isGM - }; - - return acc; - }, {}); - } - - /** @inheritDoc */ - static migrateData(source) { - if (source.progress.max) { - source.progress.start = Number(source.progress.max); - source.progress.max = null; - source.progress.startFormula = null; + return false; } - - return super.migrateData(source); - } -} + }); +}; diff --git a/module/data/fields/action/_module.mjs b/module/data/fields/action/_module.mjs index ef69394a..e6caa963 100644 --- a/module/data/fields/action/_module.mjs +++ b/module/data/fields/action/_module.mjs @@ -1,5 +1,4 @@ export { default as CostField } from './costField.mjs'; -export { default as CountdownField } from './countdownField.mjs'; export { default as UsesField } from './usesField.mjs'; export { default as RangeField } from './rangeField.mjs'; export { default as TargetField } from './targetField.mjs'; @@ -7,5 +6,6 @@ export { default as EffectsField } from './effectsField.mjs'; export { default as SaveField } from './saveField.mjs'; export { default as BeastformField } from './beastformField.mjs'; export { default as DamageField } from './damageField.mjs'; +export { default as HealingField } from './healingField.mjs'; export { default as RollField } from './rollField.mjs'; export { default as MacroField } from './macroField.mjs'; diff --git a/module/data/fields/action/beastformField.mjs b/module/data/fields/action/beastformField.mjs index e19807c7..832bd9f6 100644 --- a/module/data/fields/action/beastformField.mjs +++ b/module/data/fields/action/beastformField.mjs @@ -1,13 +1,6 @@ -import BeastformDialog from '../../../applications/dialogs/beastformDialog.mjs'; - const fields = foundry.data.fields; export default class BeastformField extends fields.SchemaField { - /** - * Action Workflow order - */ - static order = 90; - constructor(options = {}, context = {}) { const beastformFields = { tierAccess: new fields.SchemaField({ @@ -34,105 +27,4 @@ export default class BeastformField extends fields.SchemaField { }; super(beastformFields, options, context); } - - /** - * Beastform Transformation Action Workflow part. - * Must be called within Action context or similar. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - */ - static async execute(config) { - const { selected, evolved, hybrid } = await BeastformDialog.configure(config, this.item); - if (!selected) return false; - - return await BeastformField.transform.call(this, selected, evolved, hybrid); - } - - /** - * Update Action Workflow config object. - * Must be called within Action context. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - */ - prepareConfig(config) { - if (this.actor.effects.find(x => x.type === 'beastform')) { - ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.beastformAlreadyApplied')); - return false; - } - - const settingsTiers = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LevelTiers).tiers; - const actorLevel = this.actor.system.levelData.level.current; - const actorTier = - Object.values(settingsTiers).find( - tier => actorLevel >= tier.levels.start && actorLevel <= tier.levels.end - ) ?? 1; - - config.tierLimit = this.beastform.tierAccess.exact ?? actorTier; - } - - /** - * TODO by Harry - * @param {*} selectedForm - * @param {*} evolvedData - * @param {*} hybridData - * @returns - */ - static async transform(selectedForm, evolvedData, hybridData) { - const formData = evolvedData?.form ?? selectedForm; - const beastformEffect = formData.effects.find(x => x.type === 'beastform'); - if (!beastformEffect) { - ui.notifications.error('DAGGERHEART.UI.Notifications.beastformMissingEffect'); - return false; - } - - if (evolvedData?.form) { - const evolvedForm = selectedForm.effects.find(x => x.type === 'beastform'); - if (!evolvedForm) { - ui.notifications.error('DAGGERHEART.UI.Notifications.beastformMissingEffect'); - return false; - } - - beastformEffect.changes = [...beastformEffect.changes, ...evolvedForm.changes]; - formData.system.features = [...formData.system.features, ...selectedForm.system.features.map(x => x.uuid)]; - - const baseSize = evolvedData.form.system.tokenSize.size; - const evolvedSize = - baseSize === 'custom' - ? 'custom' - : (Object.keys(CONFIG.DH.ACTOR.tokenSize).find( - x => CONFIG.DH.ACTOR.tokenSize[x].value === CONFIG.DH.ACTOR.tokenSize[baseSize].value + 1 - ) ?? baseSize); - formData.system.tokenSize = { - ...evolvedData.form.system.tokenSize, - size: evolvedSize - }; - } - - if (selectedForm.system.beastformType === CONFIG.DH.ITEM.beastformTypes.hybrid.id) { - formData.system.advantageOn = Object.values(hybridData.advantages).reduce((advantages, formCategory) => { - Object.keys(formCategory).forEach(advantageKey => { - advantages[advantageKey] = formCategory[advantageKey]; - }); - return advantages; - }, {}); - formData.system.features = [ - ...formData.system.features, - ...Object.values(hybridData.features).flatMap(x => Object.keys(x)) - ]; - } - - this.actor.createEmbeddedDocuments('Item', [formData]); - } - - /** - * Remove existing beastform effect and return true if there was one - * @returns {boolean} - */ - static async handleActiveTransformations() { - const beastformEffects = this.actor.effects.filter(x => x.type === 'beastform'); - const existingEffects = beastformEffects.length > 0; - await this.actor.deleteEmbeddedDocuments( - 'ActiveEffect', - beastformEffects.map(x => x.id) - ); - return existingEffects; - } } diff --git a/module/data/fields/action/costField.mjs b/module/data/fields/action/costField.mjs index 9271f6b0..f4d942b1 100644 --- a/module/data/fields/action/costField.mjs +++ b/module/data/fields/action/costField.mjs @@ -1,12 +1,6 @@ const fields = foundry.data.fields; export default class CostField extends fields.ArrayField { - /** - * Action Workflow order - */ - static order = 150; - - /** @inheritDoc */ constructor(options = {}, context = {}) { const element = new fields.SchemaField({ key: new fields.StringField({ @@ -14,7 +8,7 @@ export default class CostField extends fields.ArrayField { required: true, initial: 'hope' }), - itemId: new fields.StringField({ nullable: true, initial: null }), + keyIsID: new fields.BooleanField(), value: new fields.NumberField({ nullable: true, initial: 1, min: 0 }), scalable: new fields.BooleanField({ initial: false }), step: new fields.NumberField({ nullable: true, initial: null }), @@ -26,88 +20,18 @@ export default class CostField extends fields.ArrayField { super(element, options, context); } - /** - * Cost Consumption Action Workflow part. - * Consume configured action resources. - * Must be called within Action context or similar. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - * @param {boolean} [successCost=false] Consume only resources configured as "On Success only" if not already consumed. - */ - static async execute(config, successCost = false) { - const actor = this.actor.system.partner ?? this.actor, - usefulResources = { - ...foundry.utils.deepClone(actor.system.resources), - fear: { - value: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear), - max: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).maxFear, - reversed: false - } - }; - - if (this.parent?.parent) { - for (var cost of config.costs) { - if (cost.itemId) { - usefulResources[cost.key] = { - value: cost.value, - target: this.parent.parent, - itemId: cost.itemId - }; - } - } - } - - const resources = CostField.getRealCosts(config.costs) - .filter( - c => - (!successCost && (!c.consumeOnSuccess || config.roll?.success)) || - (successCost && c.consumeOnSuccess) - ) - .reduce((a, c) => { - const resource = usefulResources[c.key]; - if (resource) { - a.push({ - key: c.key, - value: (c.total ?? c.value) * (resource.isReversed ? 1 : -1), - target: resource.target, - itemId: resource.itemId - }); - return a; - } - }, []); - - config.resourceUpdates.addResources(resources); - } - - /** - * Update Action Workflow config object. - * Must be called within Action context or similar. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - * @returns {boolean} Return false if fast-forwarded and no more uses. - */ - prepareConfig(config) { + static prepareConfig(config) { const costs = this.cost?.length ? foundry.utils.deepClone(this.cost) : []; config.costs = CostField.calcCosts.call(this, costs); const hasCost = CostField.hasCost.call(this, config.costs); - if (config.dialog.configure === false && !hasCost) { - ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.insufficientResources')); - return hasCost; - } + if (config.isFastForward && !hasCost) + return ui.notifications.warn("You don't have the resources to use that action."); + return hasCost; } - /** - * - * Must be called within Action context. - * @param {*} costs - * @returns - */ static calcCosts(costs) { const resources = CostField.getResources.call(this, costs); - let filteredCosts = costs; - if (this.parent?.metadata.isQuantifiable && this.parent.consumeOnUse === false) { - filteredCosts = filteredCosts.filter(c => c.key !== 'quantity'); - } - - return filteredCosts.map(c => { + return costs.map(c => { c.scale = c.scale ?? 0; c.step = c.step ?? 1; c.total = c.value + c.scale * c.step; @@ -116,19 +40,13 @@ export default class CostField extends fields.ArrayField { c.key === 'fear' ? game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Resources.Fear) : resources[c.key].isReversed - ? resources[c.key].max - resources[c.key].value + ? resources[c.key].max : resources[c.key].value; if (c.scalable) c.maxStep = Math.floor((c.max - c.value) / c.step); return c; }); } - /** - * Check if the current Actor currently has all needed resources. - * Must be called within Action context. - * @param {*} costs - * @returns {boolean} - */ static hasCost(costs) { const realCosts = CostField.getRealCosts.call(this, costs), hasFearCost = realCosts.findIndex(c => c.key === 'fear'); @@ -155,20 +73,17 @@ export default class CostField extends fields.ArrayField { ); } - /** - * Get all Actor resources + parent Item potential one. - * Must be called within Action context. - * @param {*} costs - * @returns - */ static getResources(costs) { const actorResources = foundry.utils.deepClone(this.actor.system.resources); if (this.actor.system.partner) actorResources.hope = foundry.utils.deepClone(this.actor.system.partner.system.resources.hope); const itemResources = {}; for (let itemResource of costs) { - if (itemResource.itemId) { - itemResources[itemResource.key] = CostField.getItemIdCostResource.bind(this)(itemResource); + if (itemResource.keyIsID) { + itemResources[itemResource.key] = { + value: this.parent.resource.value ?? 0, + max: CostField.formatMax.call(this, this.parent?.resource?.max) + }; } } @@ -178,48 +93,8 @@ export default class CostField extends fields.ArrayField { }; } - static getItemIdCostResource(itemResource) { - switch (itemResource.key) { - case CONFIG.DH.GENERAL.itemAbilityCosts.resource.id: - return { - value: this.parent.resource.value ?? 0, - max: CostField.formatMax.call(this, this.parent?.resource?.max) - }; - case CONFIG.DH.GENERAL.itemAbilityCosts.quantity.id: - return { - value: this.parent.quantity ?? 0, - max: this.parent.quantity ?? 0 - }; - default: - return { value: 0, max: 0 }; - } - } - - static getItemIdCostUpdate(r) { - switch (r.key) { - case CONFIG.DH.GENERAL.itemAbilityCosts.resource.id: - return { - path: 'system.resource.value', - value: r.target.system.resource.value + r.value - }; - case CONFIG.DH.GENERAL.itemAbilityCosts.quantity.id: - return { - path: 'system.quantity', - value: r.target.system.quantity + r.value - }; - default: - return { path: '', value: undefined }; - } - } - - /** - * - * @param {*} costs - * @returns - */ static getRealCosts(costs) { - const cloneCosts = foundry.utils.deepClone(costs), - realCosts = cloneCosts?.length ? cloneCosts.filter(c => c.enabled) : []; + const realCosts = costs?.length ? costs.filter(c => c.enabled) : []; let mergedCosts = []; realCosts.forEach(c => { const getCost = Object.values(mergedCosts).find(gc => gc.key === c.key); @@ -229,12 +104,6 @@ export default class CostField extends fields.ArrayField { return mergedCosts; } - /** - * Format scalable max cost, inject Action datas if it's a formula. - * Must be called within Action context. - * @param {number|string} max Configured maximum for that resource. - * @returns {number} The max cost value. - */ static formatMax(max) { max ??= 0; if (isNaN(max)) { diff --git a/module/data/fields/action/countdownField.mjs b/module/data/fields/action/countdownField.mjs deleted file mode 100644 index f49e71ad..00000000 --- a/module/data/fields/action/countdownField.mjs +++ /dev/null @@ -1,110 +0,0 @@ -import { emitAsGM, GMUpdateEvent, RefreshType, socketEvent } from '../../../systemRegistration/socket.mjs'; - -const fields = foundry.data.fields; - -export default class CountdownField extends fields.ArrayField { - constructor(options = {}, context = {}) { - const element = new fields.SchemaField({ - ...game.system.api.data.countdowns.DhCountdown.defineSchema(), - type: new fields.StringField({ - required: true, - choices: CONFIG.DH.GENERAL.countdownBaseTypes, - initial: CONFIG.DH.GENERAL.countdownBaseTypes.encounter.id, - label: 'DAGGERHEART.GENERAL.type' - }), - name: new fields.StringField({ - required: true, - initial: game.i18n.localize('DAGGERHEART.APPLICATIONS.Countdown.newCountdown'), - label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.name.label' - }), - defaultOwnership: new fields.NumberField({ - required: true, - choices: CONFIG.DH.GENERAL.simpleOwnershiplevels, - initial: CONST.DOCUMENT_OWNERSHIP_LEVELS.INHERIT, - label: 'DAGGERHEART.ACTIONS.Config.countdown.defaultOwnership' - }) - }); - super(element, options, context); - } - - /** - * Countdown Action Workflow part. - * Must be called within Action context or similar. Requires a GM online to edit the game setting for countdowns. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - */ - static async execute(config) { - const noGM = !game.users.find(x => x.isGM && x.active); - if (noGM) { - ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.gmRequired')); - return; - } - - const data = { countdowns: {} }; - const countdownMessages = []; - for (let countdown of config.countdowns) { - let startFormula = countdown.progress.startFormula ? countdown.progress.startFormula : null; - let countdownStart = startFormula ?? '1'; - if (startFormula) { - const roll = await new Roll(startFormula).roll(); - if (roll.dice.length > 0) { - countdownStart = roll.total; - const message = await roll.toMessage(); - countdownMessages.push(message); - } else { - startFormula = null; - } - } - - data.countdowns[foundry.utils.randomID()] = { - ...countdown, - progress: { - ...countdown.progress, - current: countdownStart, - start: countdownStart, - startFormula - } - }; - } - - if (game.modules.get('dice-so-nice')?.active) { - await Promise.all( - countdownMessages.map(message => { - return game.dice3d.waitFor3DAnimationByMessageID(message.id); - }) - ); - } - - await emitAsGM( - GMUpdateEvent.UpdateCountdowns, - async () => { - const countdownSetting = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); - await countdownSetting.updateSource(data); - await game.settings.set( - CONFIG.DH.id, - CONFIG.DH.SETTINGS.gameSettings.Countdowns, - countdownSetting.toObject() - ), - game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.Refresh, - data: { refreshType: RefreshType.Countdown } - }); - Hooks.callAll(socketEvent.Refresh, { refreshType: RefreshType.Countdown }); - }, - data, - null, - { - refreshType: RefreshType.Countdown - } - ); - } - - /** - * Update Action Workflow config object. - * Must be called within Action context. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - */ - prepareConfig(config) { - config.countdowns = this.countdown; - return config; - } -} diff --git a/module/data/fields/action/damageField.mjs b/module/data/fields/action/damageField.mjs index bb81c702..810b6e76 100644 --- a/module/data/fields/action/damageField.mjs +++ b/module/data/fields/action/damageField.mjs @@ -1,212 +1,18 @@ import FormulaField from '../formulaField.mjs'; -import { setsEqual } from '../../../helpers/utils.mjs'; const fields = foundry.data.fields; export default class DamageField extends fields.SchemaField { - /** - * Action Workflow order - */ - static order = 20; - - /** @inheritDoc */ constructor(options, context = {}) { const damageFields = { parts: new fields.ArrayField(new fields.EmbeddedDataField(DHDamageData)), includeBase: new fields.BooleanField({ initial: false, label: 'DAGGERHEART.ACTIONS.Settings.includeBase.label' - }), - direct: new fields.BooleanField({ initial: false, label: 'DAGGERHEART.CONFIG.DamageType.direct.name' }) + }) }; super(damageFields, options, context); } - - /** - * Roll Damage/Healing Action Workflow part. - * Must be called within Action context or similar. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - * @param {string} [messageId=null] ChatMessage Id where the clicked button belong. - * @param {boolean} [force=false] If the method should be executed outside of Action workflow, for ChatMessage button for example. - */ - static async execute(config, messageId = null, force = false) { - if (!this.hasDamage && !this.hasHealing) return; - if ( - this.hasRoll && - DamageField.getAutomation() === CONFIG.DH.SETTINGS.actionAutomationChoices.never.id && - !force - ) - return; - - let formulas = this.damage.parts.map(p => ({ - formula: DamageField.getFormulaValue.call(this, p, config).getFormula(this.actor), - damageTypes: p.applyTo === 'hitPoints' && !p.type.size ? new Set(['physical']) : p.type, - applyTo: p.applyTo - })); - - if (!formulas.length) return false; - - formulas = DamageField.formatFormulas.call(this, formulas, config); - - const damageConfig = { - ...config, - roll: formulas, - dialog: {}, - data: this.getRollData() - }; - delete damageConfig.evaluate; - - if (DamageField.getAutomation() === CONFIG.DH.SETTINGS.actionAutomationChoices.always.id) - damageConfig.dialog.configure = false; - if (config.hasSave) config.onSave = damageConfig.onSave = this.save.damageMod; - - damageConfig.source.message = config.message?._id ?? messageId; - damageConfig.directDamage = !!damageConfig.source?.message; - - // if(damageConfig.source?.message && game.modules.get('dice-so-nice')?.active) - // await game.dice3d.waitFor3DAnimationByMessageID(damageConfig.source.message); - - const damageResult = await CONFIG.Dice.daggerheart.DamageRoll.build(damageConfig); - if (!damageResult) return false; - config.damage = damageResult.damage; - config.message ??= damageConfig.message; - } - - /** - * Apply Damage/Healing Action Worflow part. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - * @param {*[]} targets Arrays of targets to bypass pre-selected ones. - * @param {boolean} force If the method should be executed outside of Action workflow, for ChatMessage button for example. - */ - static async applyDamage(config, targets = null, force = false) { - targets ??= config.targets.filter(target => target.hit); - if (!config.damage || !targets?.length || (!DamageField.getApplyAutomation() && !force)) return; - - const targetDamage = []; - const damagePromises = []; - for (let target of targets) { - const actor = foundry.utils.fromUuidSync(target.actorId); - if (!actor) continue; - if (!config.hasHealing && config.onSave && target.saved?.success === true) { - const mod = CONFIG.DH.ACTIONS.damageOnSave[config.onSave]?.mod ?? 1; - Object.entries(config.damage).forEach(([k, v]) => { - v.total = 0; - v.parts.forEach(part => { - part.total = Math.ceil(part.total * mod); - v.total += part.total; - }); - }); - } - - const token = target.id - ? game.scenes.find(x => x.active).tokens.find(x => x.id === target.id) - : actor.prototypeToken; - if (config.hasHealing) - damagePromises.push( - actor.takeHealing(config.damage).then(updates => targetDamage.push({ token, updates })) - ); - else - damagePromises.push( - actor - .takeDamage(config.damage, config.isDirect) - .then(updates => targetDamage.push({ token, updates })) - ); - } - - Promise.all(damagePromises).then(async _ => { - const summaryMessageSettings = game.settings.get( - CONFIG.DH.id, - CONFIG.DH.SETTINGS.gameSettings.Automation - ).summaryMessages; - if (!summaryMessageSettings.damage) return; - - const cls = getDocumentClass('ChatMessage'); - const msg = { - type: 'systemMessage', - user: game.user.id, - speaker: cls.getSpeaker(), - title: game.i18n.localize( - `DAGGERHEART.UI.Chat.damageSummary.${config.hasHealing ? 'healingTitle' : 'title'}` - ), - content: await foundry.applications.handlebars.renderTemplate( - 'systems/daggerheart/templates/ui/chat/damageSummary.hbs', - { - targets: targetDamage - } - ) - }; - - cls.create(msg); - }); - } - - /** - * Return value or valueAlt from damage part - * Must be called within Action context or similar. - * @param {object} part Damage Part - * @param {object} data Action getRollData - * @returns Formula value object - */ - static getFormulaValue(part, data) { - let formulaValue = part.value; - - if (data.hasRoll && part.resultBased && data.roll.result.duality === -1) return part.valueAlt; - - const isAdversary = this.actor.type === 'adversary'; - if (isAdversary && this.actor.system.type === CONFIG.DH.ACTOR.adversaryTypes.horde.id) { - const hasHordeDamage = this.actor.effects.find(x => x.type === 'horde'); - if (hasHordeDamage && !hasHordeDamage.disabled) return part.valueAlt; - } - - return formulaValue; - } - - /** - * Prepare formulas for Damage Roll - * Must be called within Action context or similar. - * @param {object[]} formulas Array of formatted formulas object - * @param {object} data Action getRollData - * @returns - */ - static formatFormulas(formulas, data) { - const formattedFormulas = []; - formulas.forEach(formula => { - if (isNaN(formula.formula)) - formula.formula = Roll.replaceFormulaData(formula.formula, this.getRollData(data)); - const same = formattedFormulas.find( - f => setsEqual(f.damageTypes, formula.damageTypes) && f.applyTo === formula.applyTo - ); - if (same) same.formula += ` + ${formula.formula}`; - else formattedFormulas.push(formula); - }); - return formattedFormulas; - } - - /** - * Return the automation setting for execute method for current user role - * @returns {string} Id from settingsConfig.mjs actionAutomationChoices - */ - static getAutomation() { - return ( - (game.user.isGM && - game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).roll.damage.gm) || - (!game.user.isGM && - game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).roll.damage.players) - ); - } - - /** - * Return the automation setting for applyDamage method for current user role - * @returns {boolean} If applyDamage should be triggered automatically - */ - static getApplyAutomation() { - return ( - (game.user.isGM && - game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).roll.damageApply.gm) || - (!game.user.isGM && - game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).roll.damageApply.players) - ); - } } export class DHActionDiceData extends foundry.abstract.DataModel { @@ -216,26 +22,14 @@ export class DHActionDiceData extends foundry.abstract.DataModel { multiplier: new fields.StringField({ choices: CONFIG.DH.GENERAL.multiplierTypes, initial: 'prof', - label: 'DAGGERHEART.ACTIONS.Config.damage.multiplier', - nullable: false, - required: true + label: 'Multiplier' }), - flatMultiplier: new fields.NumberField({ - nullable: true, - initial: 1, - label: 'DAGGERHEART.ACTIONS.Config.damage.flatMultiplier' - }), - dice: new fields.StringField({ - choices: CONFIG.DH.GENERAL.diceTypes, - initial: 'd6', - label: 'DAGGERHEART.GENERAL.Dice.single', - nullable: false, - required: true - }), - bonus: new fields.NumberField({ nullable: true, initial: null, label: 'DAGGERHEART.GENERAL.bonus' }), + flatMultiplier: new fields.NumberField({ nullable: true, initial: 1, label: 'Flat Multiplier' }), + dice: new fields.StringField({ choices: CONFIG.DH.GENERAL.diceTypes, initial: 'd6', label: 'Dice' }), + bonus: new fields.NumberField({ nullable: true, initial: null, label: 'Bonus' }), custom: new fields.SchemaField({ - enabled: new fields.BooleanField({ label: 'DAGGERHEART.ACTIONS.Config.general.customFormula' }), - formula: new FormulaField({ label: 'DAGGERHEART.ACTIONS.Config.general.formula', initial: '' }) + enabled: new fields.BooleanField({ label: 'Custom Formula' }), + formula: new FormulaField({ label: 'Formula', initial: "" }) }) }; } diff --git a/module/data/fields/action/effectsField.mjs b/module/data/fields/action/effectsField.mjs index 2233a383..ddc69d2d 100644 --- a/module/data/fields/action/effectsField.mjs +++ b/module/data/fields/action/effectsField.mjs @@ -1,14 +1,6 @@ -import { emitAsGM, GMUpdateEvent } from '../../../systemRegistration/socket.mjs'; - const fields = foundry.data.fields; export default class EffectsField extends fields.ArrayField { - /** - * Action Workflow order - */ - static order = 100; - - /** @inheritDoc */ constructor(options = {}, context = {}) { const element = new fields.SchemaField({ _id: new fields.DocumentIdField(), @@ -16,131 +8,4 @@ export default class EffectsField extends fields.ArrayField { }); super(element, options, context); } - - /** - * Apply Effects Action Workflow part. - * Must be called within Action context or similar. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - * @param {object[]} [targets=null] Array of targets to override pre-selected ones. - * @param {boolean} [force=false] If the method should be executed outside of Action workflow, for ChatMessage button for example. - */ - static async execute(config, targets = null, force = false) { - if (!config.hasEffect) return; - let message = config.message ?? ui.chat.collection.get(config.parent?._id); - if (!message) { - const roll = new CONFIG.Dice.daggerheart.DHRoll(''); - roll._evaluated = true; - message = config.message = await CONFIG.Dice.daggerheart.DHRoll.toMessage(roll, config); - } - if (EffectsField.getAutomation() || force) { - targets ??= (message.system?.targets ?? config.targets).filter(t => !config.hasRoll || t.hit); - await emitAsGM(GMUpdateEvent.UpdateEffect, EffectsField.applyEffects.bind(this), targets, this.uuid); - // EffectsField.applyEffects.call(this, config.targets.filter(t => !config.hasRoll || t.hit)); - } - } - - /** - * Apply Action Effects to a list of Targets - * Must be called within Action context or similar. - * @param {object[]} targets Array of formatted targets - */ - static async applyEffects(targets) { - if (!this.effects?.length || !targets?.length) return; - - const conditions = CONFIG.DH.GENERAL.conditions(); - let effects = this.effects; - const messageTargets = []; - targets.forEach(async baseToken => { - if (this.hasSave && baseToken.saved.success === true) effects = this.effects.filter(e => e.onSave === true); - if (!effects.length) return; - - const token = - canvas.tokens.get(baseToken.id) ?? foundry.utils.fromUuidSync(baseToken.actorId).prototypeToken; - if (!token) return; - - const messageToken = token.document ?? token; - const conditionImmunities = messageToken.actor.system.rules.conditionImmunities ?? {}; - messageTargets.push({ - token: messageToken, - conditionImmunities: Object.values(conditionImmunities).some(x => x) - ? game.i18n.format('DAGGERHEART.UI.Chat.effectSummary.immunityTo', { - immunities: Object.keys(conditionImmunities) - .filter(x => conditionImmunities[x]) - .map(x => game.i18n.localize(conditions[x].name)) - .join(', ') - }) - : null - }); - - effects.forEach(async e => { - const effect = this.item.effects.get(e._id); - if (!token.actor || !effect) return; - await EffectsField.applyEffect(effect, token.actor); - }); - }); - - if (messageTargets.length === 0) return; - - const summaryMessageSettings = game.settings.get( - CONFIG.DH.id, - CONFIG.DH.SETTINGS.gameSettings.Automation - ).summaryMessages; - if (!summaryMessageSettings.effects) return; - - const cls = getDocumentClass('ChatMessage'); - const msg = { - type: 'systemMessage', - user: game.user.id, - speaker: cls.getSpeaker(), - title: game.i18n.localize('DAGGERHEART.UI.Chat.effectSummary.title'), - content: await foundry.applications.handlebars.renderTemplate( - 'systems/daggerheart/templates/ui/chat/effectSummary.hbs', - { - effects: this.effects.map(e => this.item.effects.get(e._id)), - targets: messageTargets - } - ) - }; - - cls.create(msg); - } - - /** - * Apply an Effect to a target or enable it if already on it - * @param {object} effect Effect object containing ActiveEffect UUID - * @param {object} actor Actor Document - */ - static async applyEffect(effect, actor) { - const existingEffect = actor.effects.find(e => e.origin === effect.uuid); - if (existingEffect) { - return effect.update( - foundry.utils.mergeObject({ - ...effect.constructor.getInitialDuration(), - disabled: false - }) - ); - } - - // Otherwise, create a new effect on the target - const effectData = foundry.utils.mergeObject({ - ...effect.toObject(), - disabled: false, - transfer: false, - origin: effect.uuid - }); - await ActiveEffect.implementation.create(effectData, { parent: actor }); - } - - /** - * Return the automation setting for execute method for current user role - * @returns {boolean} If execute should be triggered automatically - */ - static getAutomation() { - return ( - (game.user.isGM && - game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).roll.effect.gm) || - (!game.user.isGM && - game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).roll.effect.players) - ); - } } diff --git a/module/data/fields/action/healingField.mjs b/module/data/fields/action/healingField.mjs new file mode 100644 index 00000000..98f4f5ea --- /dev/null +++ b/module/data/fields/action/healingField.mjs @@ -0,0 +1,12 @@ +import { DHDamageData } from './damageField.mjs'; + +const fields = foundry.data.fields; + +export default class HealingField extends fields.SchemaField { + constructor(options, context = {}) { + const healingFields = { + parts: new fields.ArrayField(new fields.EmbeddedDataField(DHDamageData)) + }; + super(healingFields, options, context); + } +} diff --git a/module/data/fields/action/macroField.mjs b/module/data/fields/action/macroField.mjs index e37a2852..62da0da0 100644 --- a/module/data/fields/action/macroField.mjs +++ b/module/data/fields/action/macroField.mjs @@ -1,29 +1,7 @@ const fields = foundry.data.fields; export default class MacroField extends fields.DocumentUUIDField { - /** - * Action Workflow order - */ - static order = 70; - - /** @inheritDoc */ constructor(context = {}) { - super({ type: 'Macro' }, context); - } - - /** - * Macro Action Workflow part. - * Must be called within Action context or similar or similar. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. Currently not used. - */ - static async execute(config) { - const fixUUID = !this.macro.includes('Macro.') ? `Macro.${this.macro}` : this.macro, - macro = await fromUuid(fixUUID); - try { - if (!macro) throw new Error(`No macro found for the UUID: ${this.macro}.`); - macro.execute(); - } catch (error) { - ui.notifications.error(error); - } + super({ type: "Macro" }, context); } } diff --git a/module/data/fields/action/rangeField.mjs b/module/data/fields/action/rangeField.mjs index d0bceada..221f00af 100644 --- a/module/data/fields/action/rangeField.mjs +++ b/module/data/fields/action/rangeField.mjs @@ -1,23 +1,17 @@ const fields = foundry.data.fields; export default class RangeField extends fields.StringField { - /** @inheritDoc */ constructor(context = {}) { const options = { choices: CONFIG.DH.GENERAL.range, required: false, blank: true, - label: 'DAGGERHEART.GENERAL.range' + label: "DAGGERHEART.GENERAL.range" }; super(options, context); } - /** - * Update Action Workflow config object. - * NOT YET IMPLEMENTED. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - */ - prepareConfig(config) { - return; + static prepareConfig(config) { + return true; } } diff --git a/module/data/fields/action/rollField.mjs b/module/data/fields/action/rollField.mjs index e2196c1c..a4df2a9e 100644 --- a/module/data/fields/action/rollField.mjs +++ b/module/data/fields/action/rollField.mjs @@ -5,27 +5,18 @@ export class DHActionRollData extends foundry.abstract.DataModel { static defineSchema() { return { type: new fields.StringField({ nullable: true, initial: null, choices: CONFIG.DH.GENERAL.rollTypes }), - trait: new fields.StringField({ - nullable: true, - initial: null, - choices: CONFIG.DH.ACTOR.abilities, - label: 'DAGGERHEART.GENERAL.Trait.single' - }), + trait: new fields.StringField({ nullable: true, initial: null, choices: CONFIG.DH.ACTOR.abilities, label: "DAGGERHEART.GENERAL.Trait.single" }), 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.advantageState, - initial: 'neutral', - nullable: false, - required: true + initial: 'neutral' }), diceRolling: new fields.SchemaField({ multiplier: new fields.StringField({ choices: CONFIG.DH.GENERAL.diceSetNumbers, initial: 'prof', - label: 'DAGGERHEART.ACTIONS.RollField.diceRolling.multiplier', - nullable: false, - required: true + label: 'DAGGERHEART.ACTIONS.RollField.diceRolling.multiplier' }), flatMultiplier: new fields.NumberField({ nullable: true, @@ -35,9 +26,7 @@ export class DHActionRollData extends foundry.abstract.DataModel { dice: new fields.StringField({ choices: CONFIG.DH.GENERAL.diceTypes, initial: CONFIG.DH.GENERAL.diceTypes.d6, - label: 'DAGGERHEART.ACTIONS.RollField.diceRolling.dice', - nullable: false, - required: true + label: 'DAGGERHEART.ACTIONS.RollField.diceRolling.dice' }), compare: new fields.StringField({ choices: CONFIG.DH.ACTIONS.diceCompare, @@ -82,6 +71,29 @@ export class DHActionRollData extends foundry.abstract.DataModel { const modifiers = []; if (!this.parent?.actor) return modifiers; switch (this.parent.actor.type) { + case 'character': + const spellcastingTrait = + this.type === 'spellcast' + ? (this.parent.actor?.system?.spellcastModifierTrait?.key ?? 'agility') + : null; + const trait = + this.useDefault || !this.trait + ? (spellcastingTrait ?? this.parent.item.system.attack?.roll?.trait ?? 'agility') + : this.trait; + if ( + this.type === CONFIG.DH.GENERAL.rollTypes.attack.id || + this.type === CONFIG.DH.GENERAL.rollTypes.trait.id + ) + modifiers.push({ + label: `DAGGERHEART.CONFIG.Traits.${trait}.name`, + value: this.parent.actor.system.traits[trait].value + }); + else if (this.type === CONFIG.DH.GENERAL.rollTypes.spellcast.id) + modifiers.push({ + label: `DAGGERHEART.CONFIG.RollTypes.spellcast.name`, + value: this.parent.actor.system.spellcastModifier + }); + break; case 'companion': case 'adversary': if (this.type === CONFIG.DH.GENERAL.rollTypes.attack.id) @@ -95,79 +107,10 @@ export class DHActionRollData extends foundry.abstract.DataModel { } return modifiers; } - - get rollTrait() { - if (this.parent?.actor?.type !== 'character') return null; - switch (this.type) { - case CONFIG.DH.GENERAL.rollTypes.spellcast.id: - return this.parent.actor?.system?.spellcastModifierTrait?.key ?? 'agility'; - case CONFIG.DH.GENERAL.rollTypes.attack.id: - case CONFIG.DH.GENERAL.rollTypes.trait.id: - return this.useDefault || !this.trait - ? (this.parent.item.system.attack?.roll?.trait ?? 'agility') - : this.trait; - default: - return null; - } - } } export default class RollField extends fields.EmbeddedDataField { - /** - * Action Workflow order - */ - static order = 10; - - /** @inheritDoc */ constructor(options, context = {}) { super(DHActionRollData, options, context); } - - /** - * Roll Action Workflow part. - * Must be called within Action context or similar. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - */ - static async execute(config) { - if (!config.hasRoll) return; - config = await this.actor.diceRoll(config); - if (!config) return false; - } - - /** - * Update Action Workflow config object. - * Must be called within Action context. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - */ - prepareConfig(config) { - if (!config.hasRoll) return; - - config.dialog.configure = RollField.getAutomation() ? !config.dialog.configure : config.dialog.configure; - - const roll = { - baseModifiers: this.roll.getModifier(), - label: 'Attack', - type: this.roll?.type, - trait: this.roll?.rollTrait, - difficulty: this.roll?.difficulty, - formula: this.roll.getFormula(), - advantage: CONFIG.DH.ACTIONS.advantageState[this.roll.advState].value - }; - if (this.roll.type === 'diceSet' || !this.hasRoll) roll.lite = true; - - config.roll = roll; - } - - /** - * Return the automation setting for execute method for current user role - * @returns {boolean} If execute should be triggered automatically - */ - static getAutomation() { - return ( - (game.user.isGM && - game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).roll.roll.gm) || - (!game.user.isGM && - game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).roll.roll.players) - ); - } } diff --git a/module/data/fields/action/saveField.mjs b/module/data/fields/action/saveField.mjs index c9030036..e93a82a9 100644 --- a/module/data/fields/action/saveField.mjs +++ b/module/data/fields/action/saveField.mjs @@ -1,14 +1,6 @@ -import { abilities } from '../../../config/actorConfig.mjs'; - const fields = foundry.data.fields; export default class SaveField extends fields.SchemaField { - /** - * Action Workflow order - */ - static order = 50; - - /** @inheritDoc */ constructor(options = {}, context = {}) { const saveFields = { trait: new fields.StringField({ @@ -19,156 +11,9 @@ export default class SaveField extends fields.SchemaField { difficulty: new fields.NumberField({ nullable: true, initial: null, integer: true, min: 0 }), damageMod: new fields.StringField({ initial: CONFIG.DH.ACTIONS.damageOnSave.none.id, - choices: CONFIG.DH.ACTIONS.damageOnSave, - nullable: false, - required: true + choices: CONFIG.DH.ACTIONS.damageOnSave }) }; super(saveFields, options, context); } - - /** - * Reaction Roll Action Workflow part. - * Must be called within Action context or similar. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - * @param {object[]} [targets=null] Array of targets to override pre-selected ones. - * @param {boolean} [force=false] If the method should be executed outside of Action workflow, for ChatMessage button for example. - */ - static async execute(config, targets = null, force = false) { - if (!config.hasSave) return; - let message = config.message ?? ui.chat.collection.get(config.parent?._id); - - if (!message) { - const roll = new CONFIG.Dice.daggerheart.DHRoll(''); - roll._evaluated = true; - message = config.message = await CONFIG.Dice.daggerheart.DHRoll.toMessage(roll, config); - } - if (SaveField.getAutomation() !== CONFIG.DH.SETTINGS.actionAutomationChoices.never.id || force) { - targets ??= config.targets.filter(t => !config.hasRoll || t.hit); - await SaveField.rollAllSave.call(this, targets, config.event, message); - } else return; - } - - /** - * Roll a Reaction Roll for all targets. Send a query to the owner if the User is not. - * Must be called within Action context. - * @param {object[]} targets Array of formatted targets. - * @param {Event} event Triggering event - * @param {ChatMessage} message The ChatMessage the triggered button comes from. - */ - static async rollAllSave(targets, event, message) { - if (!targets) return; - return new Promise(resolve => { - const aPromise = []; - targets.forEach(target => { - aPromise.push( - new Promise(async subResolve => { - const actor = fromUuidSync(target.actorId); - if (actor) { - const rollSave = - game.user === actor.owner - ? SaveField.rollSave.call(this, actor, event) - : actor.owner.query('reactionRoll', { - actionId: this.uuid, - actorId: actor.uuid, - event, - message - }); - const result = await rollSave; - await SaveField.updateSaveMessage.call(this, result, message, target.id); - subResolve(); - } else subResolve(); - }) - ); - }); - Promise.all(aPromise).then(result => resolve()); - }); - } - - /** - * Roll a Reaction Roll for the specified Actor against the Action difficulty. - * Must be called within Action context. - * @param {*} actor Actor document - * @param {Event} event Triggering event - * @returns {object} Actor diceRoll config result. - */ - static async rollSave(actor, event) { - if (!actor) return; - const title = actor.isNPC - ? game.i18n.localize('DAGGERHEART.GENERAL.reactionRoll') - : game.i18n.format('DAGGERHEART.UI.Chat.dualityRoll.abilityCheckTitle', { - ability: game.i18n.localize(abilities[this.save.trait]?.label) - }), - rollConfig = { - event, - title, - roll: { - trait: this.save.trait, - difficulty: this.save.difficulty ?? this.actor?.baseSaveDifficulty, - type: 'trait' - }, - actionType: 'reaction', - hasRoll: true, - data: actor.getRollData() - }; - if (SaveField.getAutomation() === CONFIG.DH.SETTINGS.actionAutomationChoices.always.id) - rollConfig.dialog = { configure: false }; - return actor.diceRoll(rollConfig); - } - - /** - * Update a Roll ChatMessage for a token according to his Reaction Roll result. - * @param {object} result Result from the Reaction Roll - * @param {object} message ChatMessage to update - * @param {string} targetId Token ID - */ - static async updateSaveMessage(result, message, targetId) { - if (!result) return; - - const chatMessage = ui.chat.collection.get(message._id), - changes = { - flags: { - [game.system.id]: { - reactionRolls: { - [targetId]: { - result: result.roll.total, - success: result.roll.success - } - } - } - } - }; - await chatMessage.update(changes); - } - - /** - * Return the automation setting for execute method for current user role - * @returns {string} Id from settingsConfig.mjs actionAutomationChoices - */ - static getAutomation() { - return ( - (game.user.isGM && - game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).roll.save.gm) || - (!game.user.isGM && - game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).roll.save.players) - ); - } - - /** - * Send a query to an Actor owner to roll a Reaction Roll then send back the result. - * @param {object} param0 - * @param {string} param0.actionId Action ID - * @param {string} param0.actorId Actor ID - * @param {Event} param0.event Triggering event - * @param {ChatMessage} param0.message Chat Message to update - * @returns - */ - static rollSaveQuery({ actionId, actorId, event, message }) { - return new Promise(async (resolve, reject) => { - const actor = await fromUuid(actorId), - action = await fromUuid(actionId); - if (!actor || !actor?.isOwner) reject(); - SaveField.rollSave.call(action, actor, event, message).then(result => resolve(result)); - }); - } } diff --git a/module/data/fields/action/targetField.mjs b/module/data/fields/action/targetField.mjs index 3a4f12df..bfb01db9 100644 --- a/module/data/fields/action/targetField.mjs +++ b/module/data/fields/action/targetField.mjs @@ -1,91 +1,64 @@ const fields = foundry.data.fields; export default class TargetField extends fields.SchemaField { - /** @inheritDoc */ constructor(options = {}, context = {}) { const targetFields = { type: new fields.StringField({ choices: CONFIG.DH.GENERAL.targetTypes, initial: CONFIG.DH.GENERAL.targetTypes.any.id, - nullable: true, - blank: true + nullable: true }), amount: new fields.NumberField({ nullable: true, initial: null, integer: true, min: 0 }) }; super(targetFields, options, context); } - /** - * Update Action Workflow config object. - * Must be called within Action context. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - */ - prepareConfig(config) { - if (!this.target?.type) return (config.targets = []); + static prepareConfig(config) { + if (!this.target?.type) return []; config.hasTarget = true; let targets; - // If the Action is configured as self-targeted, set targets as the owner. Probably better way than to fallback to getDependentTokens - if (this.target?.type === CONFIG.DH.GENERAL.targetTypes.self.id) { + if (this.target?.type === CONFIG.DH.GENERAL.targetTypes.self.id) targets = [this.actor.token ?? this.actor.prototypeToken]; - } else if (config.targetUuid) { - const actor = fromUuidSync(config.targetUuid); - targets = [actor.token ?? actor.prototypeToken]; - } else { + else { targets = Array.from(game.user.targets); if (this.target.type !== CONFIG.DH.GENERAL.targetTypes.any.id) { - targets = targets.filter(target => TargetField.isTargetFriendly(this.actor, target, this.target.type)); + targets = targets.filter(t => TargetField.isTargetFriendly.call(this, t)); if (this.target.amount && targets.length > this.target.amount) targets = []; } } config.targets = targets.map(t => TargetField.formatTarget.call(this, t)); const hasTargets = TargetField.checkTargets.call(this, this.target.amount, config.targets); - if (config.dialog.configure === false && !hasTargets) { - ui.notifications.warn('Too many targets selected for that actions.'); - return hasTargets; - } + if (config.isFastForward && !hasTargets) + return ui.notifications.warn('Too many targets selected for that actions.'); + return hasTargets; } - /** - * Check if the number of selected targets respect the amount set in the Action. - * NOT YET IMPLEMENTED. Will be with Target Picker. - * @param {number} amount Max amount of targets configured in the action. - * @param {*[]} targets Array of targeted tokens. - * @returns {boolean} If the amount of targeted tokens does not exceed action configured one. - */ static checkTargets(amount, targets) { return true; // return !amount || (targets.length > amount); } - /** - * Compare 2 Actors disposition between each other - * @param {*} actor First actor document. - * @param {*} target Second actor document. - * @param {string} type Disposition id to compare (friendly/hostile). - * @returns {boolean} If both actors respect the provided type. - */ - static isTargetFriendly(actor, target, type) { - const actorDisposition = actor.token ? actor.token.disposition : actor.prototypeToken.disposition, + static isTargetFriendly(target) { + const actorDisposition = this.actor.token + ? this.actor.token.disposition + : this.actor.prototypeToken.disposition, targetDisposition = target.document.disposition; return ( - (type === CONFIG.DH.GENERAL.targetTypes.friendly.id && actorDisposition === targetDisposition) || - (type === CONFIG.DH.GENERAL.targetTypes.hostile.id && actorDisposition + targetDisposition === 0) + (this.target.type === CONFIG.DH.GENERAL.targetTypes.friendly.id && + actorDisposition === targetDisposition) || + (this.target.type === CONFIG.DH.GENERAL.targetTypes.hostile.id && + actorDisposition + targetDisposition === 0) ); } - /** - * Format actor to useful datas for Action roll workflow. - * @param {*} token Token object to format. - * @returns {*} Formatted Actor. - */ - static formatTarget(token) { + static formatTarget(actor) { return { - id: token.id, - actorId: token.actor.uuid, - name: token.name, - img: token.actor.img, - difficulty: token.actor.system.difficulty, - evasion: token.actor.system.evasion, + id: actor.id, + actorId: actor.actor.uuid, + name: actor.actor.name, + img: actor.actor.img, + difficulty: actor.actor.system.difficulty, + evasion: actor.actor.system.evasion, saved: { value: null, success: null diff --git a/module/data/fields/action/usesField.mjs b/module/data/fields/action/usesField.mjs index d1f3ebff..3993ca3b 100644 --- a/module/data/fields/action/usesField.mjs +++ b/module/data/fields/action/usesField.mjs @@ -3,12 +3,6 @@ import FormulaField from '../formulaField.mjs'; const fields = foundry.data.fields; export default class UsesField extends fields.SchemaField { - /** - * Action Workflow order - */ - static order = 160; - - /** @inheritDoc */ constructor(options = {}, context = {}) { const usesFields = { value: new fields.NumberField({ nullable: true, initial: null }), @@ -26,45 +20,15 @@ export default class UsesField extends fields.SchemaField { super(usesFields, options, context); } - /** - * Uses Consumption Action Workflow part. - * Increment Action spent uses by 1. - * Must be called within Action context or similar or similar. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - * @param {boolean} [successCost=false] Consume only resources configured as "On Success only" if not already consumed. - */ - static async execute(config, successCost = false) { - if ( - config.uses?.enabled && - ((!successCost && (!config.uses?.consumeOnSuccess || config.roll?.success)) || - (successCost && config.uses?.consumeOnSuccess)) - ) - this.update({ 'uses.value': this.uses.value + 1 }); - } - - /** - * Update Action Workflow config object. - * Must be called within Action context. - * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. - * @returns {boolean} Return false if fast-forwarded and no more uses. - */ - prepareConfig(config) { + static prepareConfig(config) { const uses = this.uses?.max ? foundry.utils.deepClone(this.uses) : null; if (uses && !uses.value) uses.value = 0; config.uses = uses; const hasUses = UsesField.hasUses.call(this, config.uses); - if (config.dialog.configure === false && !hasUses) { - ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.actionNoUsesRemaining')); - return hasUses; - } + if (config.isFastForward && !hasUses) return ui.notifications.warn("That action doesn't have remaining uses."); + return hasUses; } - /** - * Prepare Uses object for Action Workflow - * Must be called within Action context. - * @param {object} uses - * @returns {object} - */ static calcUses(uses) { if (!uses) return null; return { @@ -74,12 +38,6 @@ export default class UsesField extends fields.SchemaField { }; } - /** - * Check if the Action still get atleast one unspent uses. - * Must be called within Action context. - * @param {*} uses - * @returns {boolean} - */ static hasUses(uses) { if (!uses) return true; let max = uses.max ?? 0; diff --git a/module/data/fields/actionField.mjs b/module/data/fields/actionField.mjs index d0d04721..04425d55 100644 --- a/module/data/fields/actionField.mjs +++ b/module/data/fields/actionField.mjs @@ -141,12 +141,6 @@ export function ActionMixin(Base) { return this.documentName; } - //Getter for icons - get typeIcon() { - const config = CONFIG.DH.ACTIONS.actionTypes[this.type]; - return config?.icon || 'fa-question'; // Fallback icon just in case - } - get relativeUUID() { return `.Item.${this.item.id}.Action.${this.id}`; } @@ -262,27 +256,18 @@ export function ActionMixin(Base) { async toChat(origin) { const cls = getDocumentClass('ChatMessage'); const systemData = { - title: game.i18n.localize('DAGGERHEART.CONFIG.FeatureForm.action'), + title: game.i18n.localize('DAGGERHEART.CONFIG.ActionType.action'), origin: origin, - action: { - name: this.name, - img: this.baseAction ? this.parent.parent.img : this.img, - tags: this.tags ? this.tags : ['Spell', 'Arcana', 'Lv 10'] - }, + action: { name: this.name, img: this.img, tags: this.tags ? this.tags : ['Spell', 'Arcana', 'Lv 10'] }, itemOrigin: this.item, - description: this.description || (this.item instanceof Item ? this.item.system.description : '') + description: this.description }; - - const speaker = cls.getSpeaker(); const msg = { type: 'abilityUse', user: game.user.id, actor: { name: this.actor.name, img: this.actor.img }, author: this.author, - speaker: { - speaker, - actor: speaker.actor ?? this.actor - }, + speaker: cls.getSpeaker(), title: game.i18n.localize('DAGGERHEART.UI.Chat.action.title'), system: systemData, content: await foundry.applications.handlebars.renderTemplate( diff --git a/module/data/fields/foreignDocumentUUIDArrayField.mjs b/module/data/fields/foreignDocumentUUIDArrayField.mjs index 0ddd126c..1cf120d8 100644 --- a/module/data/fields/foreignDocumentUUIDArrayField.mjs +++ b/module/data/fields/foreignDocumentUUIDArrayField.mjs @@ -15,9 +15,6 @@ export default class ForeignDocumentUUIDArrayField extends foundry.data.fields.A /** @inheritdoc */ initialize(value, model, options = {}) { const v = super.initialize(value, model, options); - return () => { - const data = v.map(entry => (typeof entry === 'function' ? entry() : entry)); - return this.options.prune ? data.filter(d => !!d) : data; - }; + return () => v.map(entry => (typeof entry === 'function' ? entry() : entry)); } } diff --git a/module/data/fields/foreignDocumentUUIDField.mjs b/module/data/fields/foreignDocumentUUIDField.mjs index cf68ace3..0efa60da 100644 --- a/module/data/fields/foreignDocumentUUIDField.mjs +++ b/module/data/fields/foreignDocumentUUIDField.mjs @@ -38,13 +38,4 @@ export default class ForeignDocumentUUIDField extends foundry.data.fields.Docume toObject(value) { return value?.uuid ?? value; } - - /** @override */ - _cast(value) { - if (typeof value === 'string') return value; - if (value instanceof foundry.abstract.Document) return value.uuid; - throw new Error( - `The value provided to a ForeignDocumentUUIDField must be a ${foundry.abstract.Document.name} instance or a UUID string.` - ); - } } diff --git a/module/data/item/armor.mjs b/module/data/item/armor.mjs index e35fae46..7f70d3f7 100644 --- a/module/data/item/armor.mjs +++ b/module/data/item/armor.mjs @@ -1,4 +1,5 @@ import AttachableItem from './attachableItem.mjs'; +import { armorFeatures } from '../../config/itemConfig.mjs'; export default class DHArmor extends AttachableItem { /** @inheritDoc */ @@ -24,7 +25,7 @@ export default class DHArmor extends AttachableItem { new fields.SchemaField({ value: new fields.StringField({ required: true, - choices: CONFIG.DH.ITEM.allArmorFeatures, + choices: CONFIG.DH.ITEM.armorFeatures, blank: true }), effectIds: new fields.ArrayField(new fields.StringField({ required: true })), @@ -59,14 +60,13 @@ export default class DHArmor extends AttachableItem { const allowed = await super._preUpdate(changes, options, user); if (allowed === false) return false; - const changedArmorFeatures = changes.system?.armorFeatures ?? []; - const removedFeatures = this.armorFeatures.filter(x => changedArmorFeatures.every(y => y.value !== x.value)); if (changes.system?.armorFeatures) { - const added = changedArmorFeatures.filter(x => this.armorFeatures.every(y => y.value !== x.value)); + const removed = this.armorFeatures.filter(x => !changes.system.armorFeatures.includes(x)); + const added = changes.system.armorFeatures.filter(x => !this.armorFeatures.includes(x)); const effectIds = []; const actionIds = []; - for (var feature of removedFeatures) { + for (var feature of removed) { effectIds.push(...feature.effectIds); actionIds.push(...feature.actionIds); } @@ -76,9 +76,8 @@ export default class DHArmor extends AttachableItem { return acc; }, {}); - const allFeatures = CONFIG.DH.ITEM.allArmorFeatures(); for (const feature of added) { - const featureData = allFeatures[feature.value]; + const featureData = armorFeatures[feature.value]; if (featureData.effects?.length > 0) { const embeddedItems = await this.parent.createEmbeddedDocuments( 'ActiveEffect', @@ -92,7 +91,7 @@ export default class DHArmor extends AttachableItem { } const newActions = {}; - if (featureData.actions?.length > 0 || featureData.actions?.size > 0) { + if (featureData.actions?.length > 0) { for (let action of featureData.actions) { const embeddedEffects = await this.parent.createEmbeddedDocuments( 'ActiveEffect', @@ -111,12 +110,10 @@ export default class DHArmor extends AttachableItem { { ...cls.getSourceConfig(this), ...action, - type: action.type, _id: actionId, name: game.i18n.localize(action.name), description: game.i18n.localize(action.description), - effects: embeddedEffects.map(x => ({ _id: x.id })), - systemPath: 'actions' + effects: embeddedEffects.map(x => ({ _id: x.id })) }, { parent: this } ); @@ -129,16 +126,6 @@ export default class DHArmor extends AttachableItem { } } - _onUpdate(a, b, c) { - super._onUpdate(a, b, c); - - if (this.actor?.type === 'character') { - for (const party of this.actor.parties) { - party.render(); - } - } - } - /** * Generates a list of localized tags based on this item's type-specific properties. * @returns {string[]} An array of localized tag strings. @@ -158,8 +145,7 @@ export default class DHArmor extends AttachableItem { */ _getLabels() { const labels = []; - if (this.baseScore) - labels.push(`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.baseScore}`); + if(this.baseScore) labels.push(`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.baseScore}`) return labels; } diff --git a/module/data/item/base.mjs b/module/data/item/base.mjs index 11be0a52..f8eae265 100644 --- a/module/data/item/base.mjs +++ b/module/data/item/base.mjs @@ -26,8 +26,7 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel { hasResource: false, isQuantifiable: false, isInventoryItem: false, - hasActions: false, - hasAttribution: true + hasActions: false }; } @@ -38,13 +37,7 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel { /** @inheritDoc */ static defineSchema() { - const schema = { - attribution: new fields.SchemaField({ - source: new fields.StringField(), - page: new fields.NumberField(), - artist: new fields.StringField() - }) - }; + const schema = {}; if (this.metadata.hasDescription) schema.description = new fields.HTMLField({ required: true, nullable: true }); @@ -117,13 +110,6 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel { return []; } - get attributionLabel() { - if (!this.attribution) return; - - const { source, page } = this.attribution; - return [source, page ? `pg ${page}.` : null].filter(x => x).join('. '); - } - /** * Obtain a data object used to evaluate any dice rolls associated with this Item Type * @param {object} [options] - Options which modify the getRollData method. @@ -201,8 +187,6 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel { super._onUpdate(changed, options, userId); updateLinkedItemApps(options, this.parent.sheet); - - if (this.parent?.parent && options.scrollingTextData) - this.parent.parent.queueScrollText(options.scrollingTextData); + createScrollText(this.parent?.parent, options.scrollingTextData); } } diff --git a/module/data/item/beastform.mjs b/module/data/item/beastform.mjs index 1840e26a..3c9bef5c 100644 --- a/module/data/item/beastform.mjs +++ b/module/data/item/beastform.mjs @@ -33,22 +33,14 @@ export default class DHBeastform extends BaseDataItem { tokenImg: new fields.FilePathField({ initial: 'icons/svg/mystery-man.svg', categories: ['IMAGE'], - wildcard: true, base64: false }), tokenRingImg: new fields.FilePathField({ initial: 'icons/svg/mystery-man.svg', categories: ['IMAGE'], - wildcard: true, base64: false }), tokenSize: new fields.SchemaField({ - size: new fields.StringField({ - required: true, - nullable: false, - choices: CONFIG.DH.ACTOR.tokenSize, - initial: CONFIG.DH.ACTOR.tokenSize.custom.id - }), height: new fields.NumberField({ integer: true, min: 1, initial: null, nullable: true }), width: new fields.NumberField({ integer: true, min: 1, initial: null, nullable: true }) }), @@ -116,30 +108,6 @@ export default class DHBeastform extends BaseDataItem { }; } - static async getWildcardImage(actor, beastform) { - const usesDynamicToken = actor.prototypeToken.ring.enabled && beastform.system.tokenRingImg; - const tokenPath = usesDynamicToken ? beastform.system.tokenRingImg : beastform.system.tokenImg; - const usesWildcard = tokenPath.includes('*'); - if (usesWildcard) { - const filePicker = new foundry.applications.apps.FilePicker.implementation(tokenPath); - const { files } = await foundry.applications.apps.FilePicker.implementation.browse( - filePicker.activeSource, - tokenPath, - { - wildcard: true, - type: 'image' - } - ); - const selectedImage = await game.system.api.applications.dialogs.ImageSelectDialog.configure( - game.i18n.localize('DAGGERHEART.APPLICATIONS.ImageSelect.title'), - files - ); - return { usesDynamicToken, selectedImage }; - } - - return null; - } - async _preCreate() { if (!this.actor) return; @@ -166,6 +134,7 @@ export default class DHBeastform extends BaseDataItem { this.parent.effects.filter(x => x.type !== 'beastform').map(x => x.toObject()) ); + const tokenImages = await this.parent.parent.getTokenImages(); const beastformEffect = this.parent.effects.find(x => x.type === 'beastform'); await beastformEffect.updateSource({ changes: [ @@ -180,8 +149,7 @@ export default class DHBeastform extends BaseDataItem { ], system: { characterTokenData: { - usesDynamicToken: this.parent.parent.prototypeToken.ring.enabled, - tokenImg: this.parent.parent.prototypeToken.texture.src, + tokenImg: tokenImages[0], tokenRingImg: this.parent.parent.prototypeToken.ring.subject.texture, tokenSize: { height: this.parent.parent.prototypeToken.height, @@ -196,18 +164,9 @@ export default class DHBeastform extends BaseDataItem { await this.parent.parent.createEmbeddedDocuments('ActiveEffect', [beastformEffect.toObject()]); - const autoTokenSize = - this.tokenSize.size !== 'custom' - ? game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).tokenSizes[ - this.tokenSize.size - ] - : null; - const width = autoTokenSize ?? this.tokenSize.width; - const height = autoTokenSize ?? this.tokenSize.height; - - const prototypeTokenUpdate = { - height, - width, + await updateActorTokens(this.parent.parent, { + height: this.tokenSize.height, + width: this.tokenSize.width, texture: { src: this.tokenImg }, @@ -216,37 +175,22 @@ export default class DHBeastform extends BaseDataItem { texture: this.tokenRingImg } } - }; - const tokenUpdate = token => { - let x = null, - y = null; - if (token.object?.scene?.grid) { - const positionData = game.system.api.documents.DhToken.getSnappedPositionInSquareGrid( - token.object.scene.grid, - { x: token.x, y: token.y, elevation: token.elevation }, - width ?? token.width, - height ?? token.height - ); - - x = positionData.x; - y = positionData.y; - } - - return { - ...prototypeTokenUpdate, - x, - y, - flags: { - daggerheart: { - beastformTokenImg: token.texture.src, - beastformSubjectTexture: token.ring.subject.texture - } - } - }; - }; - - await updateActorTokens(this.parent.parent, prototypeTokenUpdate, tokenUpdate); + }); return false; } + + _onCreate(_data, _options, userId) { + if (userId !== game.user.id) return; + + 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/data/item/class.mjs b/module/data/item/class.mjs index c233a31b..5e92d2fc 100644 --- a/module/data/item/class.mjs +++ b/module/data/item/class.mjs @@ -49,8 +49,6 @@ export default class DHClass extends BaseDataItem { suggestedSecondaryWeapon: new ForeignDocumentUUIDField({ type: 'Item' }), suggestedArmor: new ForeignDocumentUUIDField({ type: 'Item' }) }), - backgroundQuestions: new fields.ArrayField(new fields.StringField(), { initial: ['', '', ''] }), - connections: new fields.ArrayField(new fields.StringField(), { initial: ['', '', ''] }), isMulticlass: new fields.BooleanField({ initial: false }) }; } @@ -98,20 +96,6 @@ export default class DHClass extends BaseDataItem { } } } - - if (!data.system.isMulticlass) { - const addQuestions = (base, questions) => { - return `${base}${questions.map(q => `

${q}

`).join('
')}`; - }; - const backgroundQuestions = data.system.backgroundQuestions.filter(x => x); - const connections = data.system.connections.filter(x => x); - await this.actor.update({ - 'system.biography': { - background: addQuestions(this.actor.system.biography.background, backgroundQuestions), - connections: addQuestions(this.actor.system.biography.connections, connections) - } - }); - } } const allowed = await super._preCreate(data, options, user); diff --git a/module/data/item/consumable.mjs b/module/data/item/consumable.mjs index 5a50525a..dad6a95c 100644 --- a/module/data/item/consumable.mjs +++ b/module/data/item/consumable.mjs @@ -1,4 +1,5 @@ import BaseDataItem from './base.mjs'; +import { ActionField } from '../fields/actionField.mjs'; export default class DHConsumable extends BaseDataItem { /** @inheritDoc */ @@ -18,8 +19,7 @@ export default class DHConsumable extends BaseDataItem { const fields = foundry.data.fields; return { ...super.defineSchema(), - consumeOnUse: new fields.BooleanField({ initial: true }), - destroyOnEmpty: new fields.BooleanField({ initial: true }) + consumeOnUse: new fields.BooleanField({ initial: false }) }; } @@ -27,4 +27,5 @@ export default class DHConsumable extends BaseDataItem { /**@override */ static DEFAULT_ICON = 'systems/daggerheart/assets/icons/documents/items/round-potion.svg'; + } diff --git a/module/data/item/domainCard.mjs b/module/data/item/domainCard.mjs index 92d8828c..5c471ca1 100644 --- a/module/data/item/domainCard.mjs +++ b/module/data/item/domainCard.mjs @@ -66,10 +66,6 @@ export default class DHDomainCard extends BaseDataItem { ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.duplicateDomainCard')); return false; } - - if (!this.actor.system.loadoutSlot.available) { - data.system.inVault = true; - } } } diff --git a/module/data/item/feature.mjs b/module/data/item/feature.mjs index cb01b1fb..3b8fe064 100644 --- a/module/data/item/feature.mjs +++ b/module/data/item/feature.mjs @@ -30,13 +30,7 @@ export default class DHFeature extends BaseDataItem { initial: null }), multiclassOrigin: new fields.BooleanField({ initial: false }), - identifier: new fields.StringField(), - featureForm: new fields.StringField({ - required: true, - initial: 'passive', - choices: CONFIG.DH.ITEM.featureForm, - label: 'DAGGERHEART.CONFIG.FeatureForm.label' - }) + identifier: new fields.StringField() }; } } diff --git a/module/data/item/weapon.mjs b/module/data/item/weapon.mjs index 295cc0c5..66025cc5 100644 --- a/module/data/item/weapon.mjs +++ b/module/data/item/weapon.mjs @@ -39,7 +39,7 @@ export default class DHWeapon extends AttachableItem { new fields.SchemaField({ value: new fields.StringField({ required: true, - choices: CONFIG.DH.ITEM.allWeaponFeatures, + choices: CONFIG.DH.ITEM.weaponFeatures, blank: true }), effectIds: new fields.ArrayField(new fields.StringField({ required: true })), @@ -51,8 +51,6 @@ export default class DHWeapon extends AttachableItem { name: 'Attack', img: 'icons/skills/melee/blood-slash-foam-red.webp', _id: foundry.utils.randomID(), - baseAction: true, - chatDisplay: false, systemPath: 'attack', type: 'attack', range: 'melee', @@ -118,14 +116,13 @@ export default class DHWeapon extends AttachableItem { const allowed = await super._preUpdate(changes, options, user); if (allowed === false) return false; - const changedWeaponFeatures = changes.system?.weaponFeatures ?? []; - const removedFeatures = this.weaponFeatures.filter(x => changedWeaponFeatures.every(y => y.value !== x.value)); if (changes.system?.weaponFeatures) { - const added = changedWeaponFeatures.filter(x => this.weaponFeatures.every(y => y.value !== x.value)); + const removed = this.weaponFeatures.filter(x => !changes.system.weaponFeatures.includes(x)); + const added = changes.system.weaponFeatures.filter(x => !this.weaponFeatures.includes(x)); const removedEffectsUpdate = []; const removedActionsUpdate = []; - for (let weaponFeature of removedFeatures) { + for (let weaponFeature of removed) { removedEffectsUpdate.push(...weaponFeature.effectIds); removedActionsUpdate.push(...weaponFeature.actionIds); } @@ -136,9 +133,8 @@ export default class DHWeapon extends AttachableItem { return acc; }, {}); - const allFeatures = CONFIG.DH.ITEM.allWeaponFeatures(); for (let weaponFeature of added) { - const featureData = allFeatures[weaponFeature.value]; + const featureData = CONFIG.DH.ITEM.weaponFeatures[weaponFeature.value]; if (featureData.effects?.length > 0) { const embeddedItems = await this.parent.createEmbeddedDocuments( 'ActiveEffect', @@ -152,7 +148,7 @@ export default class DHWeapon extends AttachableItem { } const newActions = {}; - if (featureData.actions?.length > 0 || featureData.actions?.size > 0) { + if (featureData.actions?.length > 0) { for (let action of featureData.actions) { const embeddedEffects = await this.parent.createEmbeddedDocuments( 'ActiveEffect', @@ -174,12 +170,10 @@ export default class DHWeapon extends AttachableItem { { ...cls.getSourceConfig(this), ...action, - type: action.type, _id: actionId, name: game.i18n.localize(action.name), description: game.i18n.localize(action.description), - effects: embeddedEffects.map(x => ({ _id: x.id })), - systemPath: 'actions' + effects: embeddedEffects.map(x => ({ _id: x.id })) }, { parent: this } ); @@ -205,8 +199,8 @@ export default class DHWeapon extends AttachableItem { ]; for (const { value, type } of attack.damage.parts) { - const parts = value.custom.enabled ? [game.i18n.localize('DAGGERHEART.GENERAL.custom')] : [value.dice]; - if (!value.custom.enabled && value.bonus) parts.push(value.bonus.signedString()); + const parts = [value.dice]; + if (value.bonus) parts.push(value.bonus.signedString()); if (type.size > 0) { const typeTags = Array.from(type) diff --git a/module/data/levelTier.mjs b/module/data/levelTier.mjs index 2252e4da..e42cfc54 100644 --- a/module/data/levelTier.mjs +++ b/module/data/levelTier.mjs @@ -169,7 +169,7 @@ export const defaultLevelTiers = { tiers: { 2: { tier: 2, - name: 'DAGGERHEART.APPLICATIONS.Levelup.tier2.name', + name: 'Tier 2', levels: { start: 2, end: 4 @@ -232,7 +232,7 @@ export const defaultLevelTiers = { }, 3: { tier: 3, - name: 'DAGGERHEART.APPLICATIONS.Levelup.tier3.name', + name: 'Tier 3', levels: { start: 5, end: 7 @@ -313,7 +313,7 @@ export const defaultLevelTiers = { }, 4: { tier: 4, - name: 'DAGGERHEART.APPLICATIONS.Levelup.tier4.name', + name: 'Tier 4', levels: { start: 8, end: 10 diff --git a/module/data/levelup.mjs b/module/data/levelup.mjs index 4dc1c058..665b3264 100644 --- a/module/data/levelup.mjs +++ b/module/data/levelup.mjs @@ -234,7 +234,7 @@ export class DhLevelup extends foundry.abstract.DataModel { const subclassInTier = subclasses.some(x => x.tier === Number(tierKey)); return { - name: game.i18n.localize(tier.name), + name: tier.name, active: this.currentLevel >= Math.min(...tier.belongingLevels), groups: Object.keys(tier.options).map(optionKey => { const option = tier.options[optionKey]; diff --git a/module/data/scene/_module.mjs b/module/data/scene/_module.mjs deleted file mode 100644 index 9994901b..00000000 --- a/module/data/scene/_module.mjs +++ /dev/null @@ -1 +0,0 @@ -export { default as DHScene } from './scene.mjs'; diff --git a/module/data/scene/scene.mjs b/module/data/scene/scene.mjs deleted file mode 100644 index 7cf74ade..00000000 --- a/module/data/scene/scene.mjs +++ /dev/null @@ -1,19 +0,0 @@ -export default class DHScene extends foundry.abstract.DataModel { - static defineSchema() { - const fields = foundry.data.fields; - - return { - rangeMeasurement: new fields.SchemaField({ - setting: new fields.StringField({ - choices: CONFIG.DH.GENERAL.sceneRangeMeasurementSetting, - initial: CONFIG.DH.GENERAL.sceneRangeMeasurementSetting.default.id, - label: 'DAGGERHEART.SETTINGS.Scene.FIELDS.rangeMeasurement.setting.label' - }), - melee: new fields.NumberField({ integer: true, label: 'DAGGERHEART.CONFIG.Range.melee.name' }), - veryClose: new fields.NumberField({ integer: true, label: 'DAGGERHEART.CONFIG.Range.veryClose.name' }), - close: new fields.NumberField({ integer: true, label: 'DAGGERHEART.CONFIG.Range.close.name' }), - far: new fields.NumberField({ integer: true, label: 'DAGGERHEART.CONFIG.Range.far.name' }) - }) - }; - } -} diff --git a/module/data/settings/Appearance.mjs b/module/data/settings/Appearance.mjs index 2b8d3b27..ac980346 100644 --- a/module/data/settings/Appearance.mjs +++ b/module/data/settings/Appearance.mjs @@ -1,49 +1,77 @@ +import { fearDisplay } from '../../config/generalConfig.mjs'; + export default class DhAppearance extends foundry.abstract.DataModel { - static LOCALIZATION_PREFIXES = ['DAGGERHEART.SETTINGS.Appearance']; - static defineSchema() { - const { StringField, ColorField, BooleanField, SchemaField } = foundry.data.fields; - - // helper to create dice style schema - const diceStyle = ({ fg, bg, outline, edge }) => - new SchemaField({ - foreground: new ColorField({ required: true, initial: fg }), - background: new ColorField({ required: true, initial: bg }), - outline: new ColorField({ required: true, initial: outline }), - edge: new ColorField({ required: true, initial: edge }), - texture: new StringField({ initial: 'astralsea', required: true, blank: false }), - colorset: new StringField({ initial: 'inspired', required: true, blank: false }), - material: new StringField({ initial: 'metal', required: true, blank: false }), - system: new StringField({ initial: 'standard', required: true, blank: false }), - font: new StringField({ initial: 'auto', required: true, blank: false }) - }); - + const fields = foundry.data.fields; return { - useResourcePips: new BooleanField({ initial: false }), - displayFear: new StringField({ + displayFear: new fields.StringField({ required: true, - choices: CONFIG.DH.GENERAL.fearDisplay, - initial: CONFIG.DH.GENERAL.fearDisplay.token.value + choices: fearDisplay, + initial: fearDisplay.token.value, + label: 'DAGGERHEART.SETTINGS.Appearance.FIELDS.displayFear.label' }), - displayCountdownUI: new BooleanField({ initial: true }), - diceSoNice: new SchemaField({ - hope: diceStyle({ fg: '#ffffff', bg: '#ffe760', outline: '#000000', edge: '#ffffff' }), - fear: diceStyle({ fg: '#000000', bg: '#0032b1', outline: '#ffffff', edge: '#000000' }), - advantage: diceStyle({ fg: '#ffffff', bg: '#008000', outline: '#000000', edge: '#ffffff' }), - disadvantage: diceStyle({ fg: '#000000', bg: '#b30000', outline: '#ffffff', edge: '#000000' }) + diceSoNice: new fields.SchemaField({ + hope: new fields.SchemaField({ + foreground: new fields.ColorField({ required: true, initial: '#ffffff' }), + background: new fields.ColorField({ required: true, initial: '#ffe760' }), + outline: new fields.ColorField({ required: true, initial: '#000000' }), + edge: new fields.ColorField({ required: true, initial: '#ffffff' }), + texture: new fields.StringField({ initial: 'astralsea' }), + colorset: new fields.StringField({ initial: 'inspired' }), + material: new fields.StringField({ initial: 'metal' }), + system: new fields.StringField({ initial: 'standard' }) + }), + fear: new fields.SchemaField({ + foreground: new fields.ColorField({ required: true, initial: '#000000' }), + background: new fields.ColorField({ required: true, initial: '#0032b1' }), + outline: new fields.ColorField({ required: true, initial: '#ffffff' }), + edge: new fields.ColorField({ required: true, initial: '#000000' }), + texture: new fields.StringField({ initial: 'astralsea' }), + colorset: new fields.StringField({ initial: 'inspired' }), + material: new fields.StringField({ initial: 'metal' }), + system: new fields.StringField({ initial: 'standard' }) + }), + advantage: new fields.SchemaField({ + foreground: new fields.ColorField({ required: true, initial: '#ffffff' }), + background: new fields.ColorField({ required: true, initial: '#008000' }), + outline: new fields.ColorField({ required: true, initial: '#000000' }), + edge: new fields.ColorField({ required: true, initial: '#ffffff' }), + texture: new fields.StringField({ initial: 'astralsea' }), + colorset: new fields.StringField({ initial: 'inspired' }), + material: new fields.StringField({ initial: 'metal' }), + system: new fields.StringField({ initial: 'standard' }) + }), + disadvantage: new fields.SchemaField({ + foreground: new fields.ColorField({ required: true, initial: '#000000' }), + background: new fields.ColorField({ required: true, initial: '#b30000' }), + outline: new fields.ColorField({ required: true, initial: '#ffffff' }), + edge: new fields.ColorField({ required: true, initial: '#000000' }), + texture: new fields.StringField({ initial: 'astralsea' }), + colorset: new fields.StringField({ initial: 'inspired' }), + material: new fields.StringField({ initial: 'metal' }), + system: new fields.StringField({ initial: 'standard' }) + }) }), - extendCharacterDescriptions: new BooleanField(), - extendAdversaryDescriptions: new BooleanField(), - extendEnvironmentDescriptions: new BooleanField(), - extendItemDescriptions: new BooleanField(), - expandRollMessage: new SchemaField({ - desc: new BooleanField(), - roll: new BooleanField(), - damage: new BooleanField(), - target: new BooleanField() + showGenericStatusEffects: new fields.BooleanField({ + initial: true, + label: 'DAGGERHEART.SETTINGS.Appearance.FIELDS.showGenericStatusEffects.label' }), - hideAttribution: new BooleanField(), - showGenericStatusEffects: new BooleanField({ initial: true }) + extendCharacterDescriptions: new fields.BooleanField({ + initial: false, + label: 'DAGGERHEART.SETTINGS.Appearance.FIELDS.extendCharacterDescriptions.label' + }), + extendAdversaryDescriptions: new fields.BooleanField({ + initial: false, + label: 'DAGGERHEART.SETTINGS.Appearance.FIELDS.extendAdversaryDescriptions.label' + }), + extendEnvironmentDescriptions: new fields.BooleanField({ + initial: false, + label: 'DAGGERHEART.SETTINGS.Appearance.FIELDS.extendEnvironmentDescriptions.label' + }), + extendItemDescriptions: new fields.BooleanField({ + initial: false, + label: 'DAGGERHEART.SETTINGS.Appearance.FIELDS.extendItemDescriptions.label' + }) }; } } diff --git a/module/data/settings/Automation.mjs b/module/data/settings/Automation.mjs index 2aec990f..e1d63669 100644 --- a/module/data/settings/Automation.mjs +++ b/module/data/settings/Automation.mjs @@ -2,10 +2,6 @@ export default class DhAutomation extends foundry.abstract.DataModel { static defineSchema() { const fields = foundry.data.fields; return { - summaryMessages: new fields.SchemaField({ - damage: new fields.BooleanField({ initial: true, label: 'DAGGERHEART.GENERAL.damage' }), - effects: new fields.BooleanField({ initial: true, label: 'DAGGERHEART.GENERAL.Effect.plural' }) - }), hopeFear: new fields.SchemaField({ gm: new fields.BooleanField({ required: true, @@ -18,11 +14,6 @@ export default class DhAutomation extends foundry.abstract.DataModel { label: 'DAGGERHEART.SETTINGS.Automation.FIELDS.hopeFear.players.label' }) }), - countdownAutomation: new fields.BooleanField({ - required: true, - initial: true, - label: 'DAGGERHEART.SETTINGS.Automation.FIELDS.countdownAutomation.label' - }), levelupAuto: new fields.BooleanField({ required: true, initial: true, @@ -73,105 +64,21 @@ export default class DhAutomation extends foundry.abstract.DataModel { }), characterDefault: new fields.StringField({ required: true, - choices: CONFIG.DH.GENERAL.defeatedConditionChoices, - initial: CONFIG.DH.GENERAL.defeatedConditionChoices.unconscious.id, + choices: CONFIG.DH.GENERAL.defeatedConditions, + initial: CONFIG.DH.GENERAL.defeatedConditions.unconscious.id, label: 'DAGGERHEART.SETTINGS.Automation.FIELDS.defeated.characterDefault.label' }), adversaryDefault: new fields.StringField({ required: true, - choices: CONFIG.DH.GENERAL.defeatedConditionChoices, - initial: CONFIG.DH.GENERAL.defeatedConditionChoices.dead.id, + choices: CONFIG.DH.GENERAL.defeatedConditions, + initial: CONFIG.DH.GENERAL.defeatedConditions.defeated.id, label: 'DAGGERHEART.SETTINGS.Automation.FIELDS.defeated.adversaryDefault.label' }), companionDefault: new fields.StringField({ required: true, - choices: CONFIG.DH.GENERAL.defeatedConditionChoices, - initial: CONFIG.DH.GENERAL.defeatedConditionChoices.defeated.id, + choices: CONFIG.DH.GENERAL.defeatedConditions, + initial: CONFIG.DH.GENERAL.defeatedConditions.defeated.id, label: 'DAGGERHEART.SETTINGS.Automation.FIELDS.defeated.companionDefault.label' - }), - deadIcon: new fields.FilePathField({ - initial: 'icons/magic/death/grave-tombstone-glow-teal.webp', - categories: ['IMAGE'], - base64: false, - label: 'Dead' - }), - defeatedIcon: new fields.FilePathField({ - initial: 'icons/magic/control/fear-fright-mask-orange.webp', - categories: ['IMAGE'], - base64: false, - label: 'Defeated' - }), - unconsciousIcon: new fields.FilePathField({ - initial: 'icons/magic/control/sleep-bubble-purple.webp', - categories: ['IMAGE'], - base64: false, - label: 'Unconcious' - }) - }), - roll: new fields.SchemaField({ - roll: new fields.SchemaField({ - gm: new fields.BooleanField({ - required: true, - initial: false, - label: 'DAGGERHEART.GENERAL.gm' - }), - players: new fields.BooleanField({ - required: true, - initial: false, - label: 'DAGGERHEART.GENERAL.player.plurial' - }) - }), - damage: new fields.SchemaField({ - gm: new fields.StringField({ - required: true, - initial: 'never', - choices: CONFIG.DH.SETTINGS.actionAutomationChoices, - label: 'DAGGERHEART.GENERAL.gm' - }), - players: new fields.StringField({ - required: true, - initial: 'never', - choices: CONFIG.DH.SETTINGS.actionAutomationChoices, - label: 'DAGGERHEART.GENERAL.player.plurial' - }) - }), - save: new fields.SchemaField({ - gm: new fields.StringField({ - required: true, - initial: 'never', - choices: CONFIG.DH.SETTINGS.actionAutomationChoices, - label: 'DAGGERHEART.GENERAL.gm' - }), - players: new fields.StringField({ - required: true, - initial: 'never', - choices: CONFIG.DH.SETTINGS.actionAutomationChoices, - label: 'DAGGERHEART.GENERAL.player.plurial' - }) - }), - damageApply: new fields.SchemaField({ - gm: new fields.BooleanField({ - required: true, - initial: false, - label: 'DAGGERHEART.GENERAL.gm' - }), - players: new fields.BooleanField({ - required: true, - initial: false, - label: 'DAGGERHEART.GENERAL.player.plurial' - }) - }), - effect: new fields.SchemaField({ - gm: new fields.BooleanField({ - required: true, - initial: false, - label: 'DAGGERHEART.GENERAL.gm' - }), - players: new fields.BooleanField({ - required: true, - initial: false, - label: 'DAGGERHEART.GENERAL.player.plurial' - }) }) }) }; diff --git a/module/data/settings/Homebrew.mjs b/module/data/settings/Homebrew.mjs index 7572c9ea..e18fee39 100644 --- a/module/data/settings/Homebrew.mjs +++ b/module/data/settings/Homebrew.mjs @@ -1,17 +1,6 @@ import { defaultRestOptions } from '../../config/generalConfig.mjs'; import { ActionsField } from '../fields/actionField.mjs'; -const currencyField = (initial, label, icon) => - new foundry.data.fields.SchemaField({ - enabled: new foundry.data.fields.BooleanField({ required: true, initial: true }), - label: new foundry.data.fields.StringField({ - required: true, - initial, - label - }), - icon: new foundry.data.fields.StringField({ required: true, nullable: false, blank: true, initial: icon }) - }); - export default class DhHomebrew extends foundry.abstract.DataModel { static defineSchema() { const fields = foundry.data.fields; @@ -40,60 +29,37 @@ export default class DhHomebrew extends foundry.abstract.DataModel { traitArray: new fields.ArrayField(new fields.NumberField({ required: true, integer: true }), { initial: () => [2, 1, 1, 0, 0, -1] }), - tokenSizes: new fields.SchemaField({ - tiny: new fields.NumberField({ - integer: false, - initial: 0.5, - label: 'DAGGERHEART.CONFIG.TokenSize.tiny' - }), - small: new fields.NumberField({ - integer: false, - initial: 0.8, - label: 'DAGGERHEART.CONFIG.TokenSize.small' - }), - medium: new fields.NumberField({ - integer: false, - initial: 1, - label: 'DAGGERHEART.CONFIG.TokenSize.medium' - }), - large: new fields.NumberField({ - integer: false, - initial: 2, - label: 'DAGGERHEART.CONFIG.TokenSize.large' - }), - huge: new fields.NumberField({ - integer: false, - initial: 3, - label: 'DAGGERHEART.CONFIG.TokenSize.huge' - }), - gargantuan: new fields.NumberField({ - integer: false, - initial: 4, - label: 'DAGGERHEART.CONFIG.TokenSize.gargantuan' - }) - }), currency: new fields.SchemaField({ + enabled: new fields.BooleanField({ + required: true, + initial: false, + label: 'DAGGERHEART.SETTINGS.Homebrew.currency.enabled' + }), title: new fields.StringField({ required: true, initial: 'Gold', label: 'DAGGERHEART.SETTINGS.Homebrew.currency.currencyName' }), - coins: currencyField( - 'Coins', - 'DAGGERHEART.SETTINGS.Homebrew.currency.coinName', - 'fa-solid fa-coin-front' - ), - handfuls: currencyField( - 'Handfuls', - 'DAGGERHEART.SETTINGS.Homebrew.currency.handfulName', - 'fa-solid fa-coins' - ), - bags: currencyField('Bags', 'DAGGERHEART.SETTINGS.Homebrew.currency.bagName', 'fa-solid fa-sack'), - chests: currencyField( - 'Chests', - 'DAGGERHEART.SETTINGS.Homebrew.currency.chestName', - 'fa-solid fa-treasure-chest' - ) + coins: new fields.StringField({ + required: true, + initial: 'Coins', + label: 'DAGGERHEART.SETTINGS.Homebrew.currency.coinName' + }), + handfuls: new fields.StringField({ + required: true, + initial: 'Handfuls', + label: 'DAGGERHEART.SETTINGS.Homebrew.currency.handfulName' + }), + bags: new fields.StringField({ + required: true, + initial: 'Bags', + label: 'DAGGERHEART.SETTINGS.Homebrew.currency.bagName' + }), + chests: new fields.StringField({ + required: true, + initial: 'Chests', + label: 'DAGGERHEART.SETTINGS.Homebrew.currency.chestName' + }) }), restMoves: new fields.SchemaField({ longRest: new fields.SchemaField({ @@ -142,52 +108,7 @@ export default class DhHomebrew extends foundry.abstract.DataModel { }), description: new fields.HTMLField() }) - ), - adversaryTypes: new fields.TypedObjectField( - new fields.SchemaField({ - id: new fields.StringField({ required: true }), - label: new fields.StringField({ required: true, label: 'DAGGERHEART.GENERAL.label' }), - description: new fields.StringField() - }) - ), - itemFeatures: new fields.SchemaField({ - weaponFeatures: new fields.TypedObjectField( - new fields.SchemaField({ - name: new fields.StringField({ required: true }), - img: new fields.FilePathField({ - initial: 'icons/magic/life/cross-worn-green.webp', - categories: ['IMAGE'], - base64: false - }), - description: new fields.HTMLField(), - actions: new ActionsField(), - effects: new fields.ArrayField(new fields.ObjectField()) - }) - ), - armorFeatures: new fields.TypedObjectField( - new fields.SchemaField({ - name: new fields.StringField({ required: true }), - img: new fields.FilePathField({ - initial: 'icons/magic/life/cross-worn-green.webp', - categories: ['IMAGE'], - base64: false - }), - description: new fields.HTMLField(), - actions: new ActionsField(), - effects: new fields.ArrayField(new fields.ObjectField()) - }) - ) - }) + ) }; } - - /** @inheritDoc */ - _initializeSource(source, options = {}) { - source = super._initializeSource(source, options); - for (const type of ['coins', 'handfuls', 'bags', 'chests']) { - const initial = this.schema.fields.currency.fields[type].getInitialValue(); - source.currency[type] = foundry.utils.mergeObject(initial, source.currency[type], { inplace: false }); - } - return source; - } } diff --git a/module/data/settings/VariantRules.mjs b/module/data/settings/VariantRules.mjs index 41c63be2..ad7d707a 100644 --- a/module/data/settings/VariantRules.mjs +++ b/module/data/settings/VariantRules.mjs @@ -39,13 +39,6 @@ export default class DhVariantRules extends foundry.abstract.DataModel { label: 'DAGGERHEART.CONFIG.Range.close.name' }), far: new fields.NumberField({ required: true, initial: 60, label: 'DAGGERHEART.CONFIG.Range.far.name' }) - }), - massiveDamage: new fields.SchemaField({ - enabled: new fields.BooleanField({ - required: true, - initial: false, - label: 'DAGGERHEART.SETTINGS.VariantRules.FIELDS.massiveDamage.enabled.label' - }) }) }; } diff --git a/module/data/tagTeamRoll.mjs b/module/data/tagTeamRoll.mjs deleted file mode 100644 index de71a11b..00000000 --- a/module/data/tagTeamRoll.mjs +++ /dev/null @@ -1,20 +0,0 @@ -import { DhCharacter } from './actor/_module.mjs'; - -export default class DhTagTeamRoll extends foundry.abstract.DataModel { - static defineSchema() { - const fields = foundry.data.fields; - - return { - initiator: new fields.SchemaField({ - id: new fields.StringField({ nullable: true, initial: null }), - cost: new fields.NumberField({ integer: true, min: 0, initial: 3 }) - }), - members: new fields.TypedObjectField( - new fields.SchemaField({ - messageId: new fields.StringField({ required: true, nullable: true, initial: null }), - selected: new fields.BooleanField({ required: true, initial: false }) - }) - ) - }; - } -} diff --git a/module/dice/d20Roll.mjs b/module/dice/d20Roll.mjs index 0256f281..63d84744 100644 --- a/module/dice/d20Roll.mjs +++ b/module/dice/d20Roll.mjs @@ -13,6 +13,8 @@ export default class D20Roll extends DHRoll { DISADVANTAGE: -1 }; + static CRITICAL_TRESHOLD = 20; + static DefaultDialog = D20RollDialog; get title() { @@ -35,7 +37,7 @@ export default class D20Roll extends DHRoll { get isCritical() { if (!this.d20._evaluated) return; - return this.d20.total >= this.data.system.criticalThreshold; + return this.d20.total >= this.constructor.CRITICAL_TRESHOLD; } get hasAdvantage() { @@ -98,10 +100,10 @@ export default class D20Roll extends DHRoll { this.options.roll.modifiers = this.applyBaseBonus(); this.options.experiences?.forEach(m => { - if (this.options.data.system?.experiences?.[m]) + if (this.options.data.experiences?.[m]) this.options.roll.modifiers.push({ - label: this.options.data.system.experiences[m].name, - value: this.options.data.system.experiences[m].value + label: this.options.data.experiences[m].name, + value: this.options.data.experiences[m].value }); }); @@ -126,9 +128,7 @@ export default class D20Roll extends DHRoll { applyBaseBonus() { const modifiers = foundry.utils.deepClone(this.options.roll.baseModifiers) ?? []; - modifiers.push( - ...this.getBonus(`roll.${this.options.actionType}`, `${this.options.actionType?.capitalize()} Bonus`) - ); + modifiers.push(...this.getBonus(`roll.${this.options.type}`, `${this.options.type?.capitalize()} Bonus`)); modifiers.push( ...this.getBonus(`roll.${this.options.roll.type}`, `${this.options.roll.type?.capitalize()} Bonus`) ); @@ -138,7 +138,7 @@ export default class D20Roll extends DHRoll { static postEvaluate(roll, config = {}) { const data = super.postEvaluate(roll, config); - data.type = config.actionType; + data.type = config.roll?.type; data.difficulty = config.roll.difficulty; if (config.targets?.length) { config.targets.forEach(target => { @@ -147,7 +147,6 @@ export default class D20Roll extends DHRoll { }); data.success = config.targets.some(target => target.hit); } else if (config.roll.difficulty) data.success = roll.isCritical || roll.total >= config.roll.difficulty; - config.successConsumed = data.success; data.advantage = { type: config.roll.advantage, diff --git a/module/dice/damageRoll.mjs b/module/dice/damageRoll.mjs index c10ee6ff..aa9e1d94 100644 --- a/module/dice/damageRoll.mjs +++ b/module/dice/damageRoll.mjs @@ -1,5 +1,4 @@ import DamageDialog from '../applications/dialogs/damageDialog.mjs'; -import { RefreshType, socketEvent } from '../systemRegistration/socket.mjs'; import DHRoll from './dhRoll.mjs'; export default class DamageRoll extends DHRoll { @@ -10,7 +9,6 @@ export default class DamageRoll extends DHRoll { static DefaultDialog = DamageDialog; static async buildEvaluate(roll, config = {}, message = {}) { - if (config.dialog.configure === false) roll.constructFormula(config); if (config.evaluate !== false) for (const roll of config.roll) await roll.roll.evaluate(); roll._evaluated = true; @@ -48,7 +46,9 @@ export default class DamageRoll extends DHRoll { ); } await super.buildPost(roll, config, message); - if (config.source?.message) chatMessage.update({ 'system.damage': config.damage }); + if (config.source?.message) { + chatMessage.update({ 'system.damage': config.damage }); + } } static unifyDamageRoll(rolls) { @@ -339,13 +339,5 @@ export default class DamageRoll extends DHRoll { parts: damageParts } }); - - Hooks.callAll(socketEvent.Refresh, { refreshType: RefreshType.TagTeamRoll }); - await game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.Refresh, - data: { - refreshType: RefreshType.TagTeamRoll - } - }); } } diff --git a/module/dice/dhRoll.mjs b/module/dice/dhRoll.mjs index ea24f238..6d691c20 100644 --- a/module/dice/dhRoll.mjs +++ b/module/dice/dhRoll.mjs @@ -28,13 +28,6 @@ export default class DHRoll extends Roll { static async buildConfigure(config = {}, message = {}) { config.hooks = [...this.getHooks(), '']; config.dialog ??= {}; - - const actorIdSplit = config.source?.actor?.split('.'); - if (actorIdSplit) { - const tagTeamSettings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll); - config.tagTeamSelected = Boolean(tagTeamSettings.members[actorIdSplit[actorIdSplit.length - 1]]); - } - for (const hook of config.hooks) { if (Hooks.call(`${CONFIG.DH.id}.preRoll${hook.capitalize()}`, config, message) === false) return null; } @@ -72,13 +65,8 @@ export default class DHRoll extends Roll { if (Hooks.call(`${CONFIG.DH.id}.postRoll${hook.capitalize()}`, config, message) === false) return null; } - if (config.skips?.createMessage) { - if (game.modules.get('dice-so-nice')?.active) { - await game.dice3d.showForRoll(roll, game.user, true); - } - } else if (!config.source?.message) { - config.message = await this.toMessage(roll, config); - } + // Create Chat Message + if (!config.source?.message) config.message = await this.toMessage(roll, config); } static postEvaluate(roll, config = {}) { @@ -96,31 +84,18 @@ export default class DHRoll extends Roll { static async toMessage(roll, config) { const cls = getDocumentClass('ChatMessage'), - msgData = { + msg = { type: this.messageType, user: game.user.id, title: roll.title, - speaker: cls.getSpeaker({ actor: roll.data?.parent }), + speaker: cls.getSpeaker(), sound: config.mute ? null : CONFIG.sounds.dice, system: config, rolls: [roll] }; - config.selectedRollMode ??= game.settings.get('core', 'rollMode'); - - if (roll._evaluated) { - const message = await cls.create(msgData, { rollMode: config.selectedRollMode }); - - if (config.tagTeamSelected) { - game.system.api.applications.dialogs.TagTeamDialog.assignRoll(message.speakerActor, message); - } - - if (roll.formula !== '' && game.modules.get('dice-so-nice')?.active) { - await game.dice3d.waitFor3DAnimationByMessageID(message.id); - } - - return message; - } else return msgData; + if (roll._evaluated) return await cls.create(msg, { rollMode: config.selectedRollMode }); + return msg; } /** @inheritDoc */ @@ -236,3 +211,51 @@ export default class DHRoll extends Roll { return {}; } } + +export const registerRollDiceHooks = () => { + Hooks.on(`${CONFIG.DH.id}.postRollDuality`, async (config, message) => { + const hopeFearAutomation = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).hopeFear; + if ( + !config.source?.actor || + (game.user.isGM ? !hopeFearAutomation.gm : !hopeFearAutomation.players) || + config.roll.type === 'reaction' + ) + return; + + const actor = await fromUuid(config.source.actor); + let updates = []; + if (!actor) return; + if (config.roll.isCritical || config.roll.result.duality === 1) + updates.push({ key: 'hope', value: 1, total: -1, enabled: true }); + if (config.roll.isCritical) updates.push({ key: 'stress', value: 1, total: -1, enabled: true }); + if (config.roll.result.duality === -1) updates.push({ key: 'fear', value: 1, total: -1, enabled: true }); + + if (config.rerolledRoll) { + if (config.rerolledRoll.isCritical || config.rerolledRoll.result.duality === 1) + updates.push({ key: 'hope', value: -1, total: 1, enabled: true }); + if (config.rerolledRoll.isCritical) updates.push({ key: 'stress', value: -1, total: 1, enabled: true }); + if (config.rerolledRoll.result.duality === -1) + updates.push({ key: 'fear', value: -1, total: 1, enabled: true }); + } + + if (updates.length) { + const target = actor.system.partner ?? actor; + if (!['dead', 'defeated', 'unconscious'].some(x => actor.statuses.has(x))) { + if (config.rerolledRoll) target.modifyResource(updates); + else config.costs = [...(config.costs ?? []), ...updates]; + } + } + + if (!config.roll.hasOwnProperty('success') && !config.targets?.length) return; + + const rollResult = config.roll.success || config.targets.some(t => t.hit), + looseSpotlight = !rollResult || config.roll.result.duality === -1; + + if (looseSpotlight && game.combat?.active) { + const currentCombatant = game.combat.combatants.get(game.combat.current?.combatantId); + if (currentCombatant?.actorId == actor.id) ui.combat.setCombatantSpotlight(currentCombatant.id); + } + + return; + }); +}; diff --git a/module/dice/dualityRoll.mjs b/module/dice/dualityRoll.mjs index d2e20213..ac1047ab 100644 --- a/module/dice/dualityRoll.mjs +++ b/module/dice/dualityRoll.mjs @@ -2,7 +2,6 @@ import D20RollDialog from '../applications/dialogs/d20RollDialog.mjs'; import D20Roll from './d20Roll.mjs'; import { setDiceSoNiceForDualityRoll } from '../helpers/utils.mjs'; import { getDiceSoNicePresets } from '../config/generalConfig.mjs'; -import { ResourceUpdateMap } from '../data/action/baseAction.mjs'; export default class DualityRoll extends D20Roll { _advantageFaces = 6; @@ -20,7 +19,7 @@ export default class DualityRoll extends D20Roll { get title() { return game.i18n.localize( - `DAGGERHEART.GENERAL.${this.options?.actionType === 'reaction' ? 'reactionRoll' : 'dualityRoll'}` + `DAGGERHEART.GENERAL.${this.options?.roll?.type === CONFIG.DH.ITEM.actionTypes.reaction.id ? 'reactionRoll' : 'dualityRoll'}` ); } @@ -155,12 +154,9 @@ export default class DualityRoll extends D20Roll { applyBaseBonus() { const modifiers = super.applyBaseBonus(); - if (this.options.roll.trait && this.data.traits?.[this.options.roll.trait]) + if (this.options.roll.trait && this.data.traits[this.options.roll.trait]) modifiers.unshift({ - label: - this.options.roll.type === CONFIG.DH.GENERAL.rollTypes.spellcast.id - ? 'DAGGERHEART.CONFIG.RollTypes.spellcast.name' - : `DAGGERHEART.CONFIG.Traits.${this.options.roll.trait}.name`, + label: `DAGGERHEART.CONFIG.Traits.${this.options.roll.trait}.name`, value: this.data.traits[this.options.roll.trait].value }); @@ -220,88 +216,6 @@ export default class DualityRoll extends D20Roll { return data; } - static async buildPost(roll, config, message) { - await super.buildPost(roll, config, message); - - await DualityRoll.dualityUpdate(config); - } - - static async addDualityResourceUpdates(config) { - const automationSettings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation); - const hopeFearAutomation = automationSettings.hopeFear; - if ( - !config.source?.actor || - (game.user.isGM ? !hopeFearAutomation.gm : !hopeFearAutomation.players) || - config.actionType === 'reaction' || - config.tagTeamSelected || - config.skips?.resources - ) - return; - const actor = await fromUuid(config.source.actor); - let updates = []; - if (!actor) return; - - if (config.rerolledRoll) { - if (config.roll.result.duality != config.rerolledRoll.result.duality) { - const hope = - (config.roll.isCritical || config.roll.result.duality === 1 ? 1 : 0) - - (config.rerolledRoll.isCritical || config.rerolledRoll.result.duality === 1 ? 1 : 0); - const stress = (config.roll.isCritical ? 1 : 0) - (config.rerolledRoll.isCritical ? 1 : 0); - const fear = - (config.roll.result.duality === -1 ? 1 : 0) - (config.rerolledRoll.result.duality === -1 ? 1 : 0); - - if (hope !== 0) updates.push({ key: 'hope', value: hope, total: -1 * hope, enabled: true }); - if (stress !== 0) updates.push({ key: 'stress', value: -1 * stress, total: stress, enabled: true }); - if (fear !== 0) updates.push({ key: 'fear', value: fear, total: -1 * fear, enabled: true }); - } - } else { - if (config.roll.isCritical || config.roll.result.duality === 1) - updates.push({ key: 'hope', value: 1, total: -1, enabled: true }); - if (config.roll.isCritical) updates.push({ key: 'stress', value: -1, total: 1, enabled: true }); - if (config.roll.result.duality === -1) updates.push({ key: 'fear', value: 1, total: -1, enabled: true }); - } - - if (updates.length) { - // const target = actor.system.partner ?? actor; - if (!['dead', 'defeated', 'unconscious'].some(x => actor.statuses.has(x))) { - config.resourceUpdates.addResources(updates); - } - } - } - - static async dualityUpdate(config) { - const automationSettings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation); - if ( - automationSettings.countdownAutomation && - config.actionType !== 'reaction' && - !config.tagTeamSelected && - !config.skips?.updateCountdowns - ) { - const { updateCountdowns } = game.system.api.applications.ui.DhCountdowns; - - if (config.roll.result.duality === -1) { - await updateCountdowns( - CONFIG.DH.GENERAL.countdownProgressionTypes.actionRoll.id, - CONFIG.DH.GENERAL.countdownProgressionTypes.fear.id - ); - } else { - await updateCountdowns(CONFIG.DH.GENERAL.countdownProgressionTypes.actionRoll.id); - } - } - - await DualityRoll.addDualityResourceUpdates(config); - - if (!config.roll.hasOwnProperty('success') && !config.targets?.length) return; - - const rollResult = config.roll.success || config.targets?.some(t => t.hit), - looseSpotlight = !rollResult || config.roll.result.duality === -1; - - if (looseSpotlight && game.combat?.active) { - const currentCombatant = game.combat.combatants.get(game.combat.current?.combatantId); - if (currentCombatant?.actorId == config.data.id) ui.combat.setCombatantSpotlight(currentCombatant.id); - } - } - static async reroll(rollString, target, message) { let parsedRoll = game.system.api.dice.DualityRoll.fromData({ ...rollString, evaluated: false }); const term = parsedRoll.terms[target.dataset.dieIndex]; @@ -339,21 +253,13 @@ export default class DualityRoll extends D20Roll { }); newRoll.extra = newRoll.extra.slice(2); - const tagTeamSettings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll); - - const actor = message.system.source.actor ? await foundry.utils.fromUuid(message.system.source.actor) : null; - const config = { + Hooks.call(`${CONFIG.DH.id}.postRollDuality`, { source: { actor: message.system.source.actor ?? '' }, targets: message.system.targets, - tagTeamSelected: Object.values(tagTeamSettings.members).some(x => x.messageId === message._id), roll: newRoll, - rerolledRoll: message.system.roll, - resourceUpdates: new ResourceUpdateMap(actor) - }; - - await DualityRoll.addDualityResourceUpdates(config); - await config.resourceUpdates.updateResources(); - + rerolledRoll: + newRoll.result.duality !== message.system.roll.result.duality ? message.system.roll : undefined + }); return { newRoll, parsedRoll }; } } diff --git a/module/documents/_module.mjs b/module/documents/_module.mjs index 22718bea..ce33f982 100644 --- a/module/documents/_module.mjs +++ b/module/documents/_module.mjs @@ -1,10 +1,8 @@ export { default as DhpActor } from './actor.mjs'; export { default as DHItem } from './item.mjs'; export { default as DhpCombat } from './combat.mjs'; -export { default as DHCombatant } from './combatant.mjs'; export { default as DhActiveEffect } from './activeEffect.mjs'; export { default as DhChatMessage } from './chatMessage.mjs'; -export { default as DhScene } from './scene.mjs'; export { default as DhToken } from './token.mjs'; export { default as DhTooltipManager } from './tooltipManager.mjs'; export { default as DhTemplateManager } from './templateManager.mjs'; diff --git a/module/documents/activeEffect.mjs b/module/documents/activeEffect.mjs index 2297ea27..b2896513 100644 --- a/module/documents/activeEffect.mjs +++ b/module/documents/activeEffect.mjs @@ -1,5 +1,4 @@ import { itemAbleRollParse } from '../helpers/utils.mjs'; -import { RefreshType, socketEvent } from '../systemRegistration/socket.mjs'; export default class DhActiveEffect extends foundry.documents.ActiveEffect { /* -------------------------------------------- */ @@ -58,27 +57,6 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect { update.img = 'icons/magic/life/heart-cross-blue.webp'; } - const immuneStatuses = - data.statuses?.filter( - status => - this.parent.system.rules?.conditionImmunities && - this.parent.system.rules.conditionImmunities[status] - ) ?? []; - if (immuneStatuses.length > 0) { - update.statuses = data.statuses.filter(x => !immuneStatuses.includes(x)); - const conditions = CONFIG.DH.GENERAL.conditions(); - const scrollingTexts = immuneStatuses.map(status => ({ - text: game.i18n.format('DAGGERHEART.ACTIVEEFFECT.immuneStatusText', { - status: game.i18n.localize(conditions[status].name) - }) - })); - if (update.statuses.length > 0) { - setTimeout(() => scrollingTexts, 500); - } else { - this.parent.queueScrollText(scrollingTexts); - } - } - if (Object.keys(update).length > 0) { await this.updateSource(update); } @@ -86,20 +64,6 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect { await super._preCreate(data, options, user); } - /** @inheritdoc */ - _onCreate(data, options, userId) { - super._onCreate(data, options, userId); - - Hooks.callAll(RefreshType.EffectsDisplay); - } - - /** @inheritdoc */ - _onDelete(data, options, userId) { - super._onDelete(data, options, userId); - - Hooks.callAll(RefreshType.EffectsDisplay); - } - /* -------------------------------------------- */ /* Methods */ /* -------------------------------------------- */ @@ -112,10 +76,7 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect { change.value = change.value.replaceAll(/origin\.@/gi, '@'); try { const effect = foundry.utils.fromUuidSync(change.effect.origin); - const doc = - effect.parent?.parent instanceof game.system.api.documents.DhpActor - ? effect.parent - : effect.parent.parent; + const doc = effect.parent?.parent; if (doc) parseModel = doc; } catch (_) {} } @@ -194,10 +155,27 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect { } prepareDerivedData() { - /* Check for item availability such as in the case of subclass advancement. */ - if (this.parent?.parent?.system?.isItemAvailable) { - if (!this.parent.parent.system.isItemAvailable(this.parent)) { - this.transfer = false; + /* Preventing subclass features from transferring to actor if they do not have the right subclass advancement */ + if (this.parent?.type === 'feature') { + const origSubclassParent = this.parent.system.originItemType === 'subclass'; + if (origSubclassParent) { + const subclass = this.parent.parent.items.find( + x => + x.type === 'subclass' && + x.system.isMulticlass === (this.parent.system.identifier === 'multiclass') + ); + + if (subclass) { + const featureState = subclass.system.featureState; + + if ( + (this.parent.system.identifier === CONFIG.DH.ITEM.featureSubTypes.specialization && + featureState < 2) || + (this.parent.system.identifier === CONFIG.DH.ITEM.featureSubTypes.mastery && featureState < 3) + ) { + this.transfer = false; + } + } } } } diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs index f6666a5e..9a22eb44 100644 --- a/module/documents/actor.mjs +++ b/module/documents/actor.mjs @@ -1,23 +1,17 @@ import { emitAsGM, GMUpdateEvent } from '../systemRegistration/socket.mjs'; import { LevelOptionType } from '../data/levelTier.mjs'; import DHFeature from '../data/item/feature.mjs'; -import { createScrollText, damageKeyToNumber, getDamageKey } from '../helpers/utils.mjs'; +import { damageKeyToNumber } from '../helpers/utils.mjs'; import DhCompanionLevelUp from '../applications/levelup/companionLevelup.mjs'; -import { ResourceUpdateMap } from '../data/action/baseAction.mjs'; export default class DhpActor extends Actor { - parties = new Set(); - - #scrollTextQueue = []; - #scrollTextInterval; - /** * Return the first Actor active owner. */ get owner() { const user = this.hasPlayerOwner && game.users.players.find(u => this.testUserPermission(u, 'OWNER') && u.active); - if (!user) return game.users.activeGM; + if (!user) return game.user.isGM ? game.user : null; return user; } @@ -74,41 +68,16 @@ export default class DhpActor extends Actor { /**@inheritdoc */ async _preCreate(data, options, user) { if ((await super._preCreate(data, options, user)) === false) return false; - const update = {}; - - // Set default token size. Done here as we do not want to set a datamodel default, since that would apply the sizing to third party actor modules that aren't set up with the size system. - if (this.system.metadata.usesSize && !data.system?.size) { - Object.assign(update, { - system: { - size: CONFIG.DH.ACTOR.tokenSize.medium.id - } - }); - } // Configure prototype token settings - if (['character', 'companion', 'party'].includes(this.type)) - Object.assign(update, { - prototypeToken: { - sight: { enabled: true }, - actorLink: true, - disposition: CONST.TOKEN_DISPOSITIONS.FRIENDLY - } + const prototypeToken = {}; + if (['character', 'companion'].includes(this.type)) + Object.assign(prototypeToken, { + sight: { enabled: true }, + actorLink: true, + disposition: CONST.TOKEN_DISPOSITIONS.FRIENDLY }); - this.updateSource(update); - } - - _onUpdate(changes, options, userId) { - super._onUpdate(changes, options, userId); - for (const party of this.parties) { - party.render(); - } - } - - _onDelete(options, userId) { - super._onDelete(options, userId); - for (const party of this.parties) { - party.render(); - } + this.updateSource({ prototypeToken }); } async updateLevel(newLevel) { @@ -216,7 +185,7 @@ export default class DhpActor extends Actor { for (let domainCard of domainCards) { const itemCard = this.items.find(x => x.uuid === domainCard); - itemCard?.delete(); + itemCard.delete(); } } @@ -349,8 +318,6 @@ export default class DhpActor extends Actor { const embeddedItem = await this.createEmbeddedDocuments('Item', [ { ...multiclassData, - uuid: multiclassItem.uuid, - _stats: multiclassItem._stats, system: { ...multiclassData.system, features: multiclassData.system.features.filter(x => x.type !== 'hope'), @@ -363,8 +330,6 @@ export default class DhpActor extends Actor { await this.createEmbeddedDocuments('Item', [ { ...subclassData, - uuid: subclassItem.uuid, - _stats: subclassItem._stats, system: { ...subclassData.system, isMulticlass: true @@ -379,15 +344,12 @@ export default class DhpActor extends Actor { for (var domainCard of domainCards) { if (levelupAuto) { - const cardItem = await foundry.utils.fromUuid(domainCard.data[0]); - const cardData = cardItem.toObject(); + const itemData = (await foundry.utils.fromUuid(domainCard.data[0])).toObject(); const embeddedItem = await this.createEmbeddedDocuments('Item', [ { - ...cardData, - uuid: cardItem.uuid, - _stats: cardItem._stats, + ...itemData, system: { - ...cardData.system, + ...itemData.system, inVault: true } } @@ -401,15 +363,12 @@ export default class DhpActor extends Actor { const achievementDomainCards = []; if (levelupAuto) { for (var card of Object.values(level.achievements.domainCards)) { - const cardItem = await foundry.utils.fromUuid(card.uuid); - const cardData = cardItem.toObject(); + const itemData = (await foundry.utils.fromUuid(card.uuid)).toObject(); const embeddedItem = await this.createEmbeddedDocuments('Item', [ { - ...cardData, - uuid: cardItem.uuid, - _stats: cardItem._stats, + ...itemData, system: { - ...cardData.system, + ...itemData.system, inVault: true } } @@ -489,7 +448,6 @@ export default class DhpActor extends Actor { async diceRoll(config) { config.source = { ...(config.source ?? {}), actor: this.uuid }; config.data = this.getRollData(); - config.resourceUpdates = new ResourceUpdateMap(this); const rollClass = config.roll.lite ? CONFIG.Dice.daggerheart['DHRoll'] : this.rollClass; return await rollClass.build(config); } @@ -539,12 +497,7 @@ export default class DhpActor extends Actor { /**@inheritdoc */ getRollData() { - const rollData = foundry.utils.deepClone(super.getRollData()); - /* system gets repeated infinately which causes issues when trying to use the data for document creation */ - delete rollData.system; - - rollData.id = this.id; - rollData.name = this.name; + const rollData = super.getRollData(); rollData.system = this.system.getRollData(); rollData.prof = this.system.proficiency ?? 1; rollData.cast = this.system.spellcastModifier ?? 1; @@ -570,7 +523,7 @@ export default class DhpActor extends Actor { return canUseArmor || canUseStress; } - async takeDamage(damages, isDirect = false) { + async takeDamage(damages) { if (Hooks.call(`${CONFIG.DH.id}.preTakeDamage`, this, damages) === false) return null; if (this.type === 'companion') { @@ -601,7 +554,6 @@ export default class DhpActor extends Actor { hpDamage.value = this.convertDamageToThreshold(hpDamage.value); if ( this.type === 'character' && - !isDirect && this.system.armor && this.#canReduceDamage(hpDamage.value, hpDamage.damageTypes) ) { @@ -631,19 +583,6 @@ export default class DhpActor extends Actor { } } } - if (this.type === 'adversary') { - const reducedSeverity = hpDamage.damageTypes.reduce((value, curr) => { - return Math.max(this.system.rules.damageReduction.reduceSeverity[curr], value); - }, 0); - hpDamage.value = Math.max(hpDamage.value - reducedSeverity, 0); - - if ( - hpDamage.value && - this.system.rules.damageReduction.thresholdImmunities[getDamageKey(hpDamage.value)] - ) { - hpDamage.value -= 1; - } - } } updates.forEach( @@ -655,8 +594,6 @@ export default class DhpActor extends Actor { await this.modifyResource(updates); if (Hooks.call(`${CONFIG.DH.id}.postTakeDamage`, this, updates) === false) return null; - - return updates; } calculateDamage(baseDamage, type) { @@ -705,14 +642,8 @@ export default class DhpActor extends Actor { await this.modifyResource(updates); if (Hooks.call(`${CONFIG.DH.id}.postTakeHealing`, this, updates) === false) return null; - - return updates; } - /** - * Resources are modified asynchronously, so be careful not to update the same resource in - * quick succession. - */ async modifyResource(resources) { if (!resources?.length) return; @@ -724,22 +655,13 @@ export default class DhpActor extends Actor { }; resources.forEach(r => { - if (r.itemId) { - const { path, value } = game.system.api.fields.ActionFields.CostField.getItemIdCostUpdate(r); - - if ( - r.key === 'quantity' && - r.target.type === 'consumable' && - value === 0 && - r.target.system.destroyOnEmpty - ) { - r.target.delete(); - } else { - updates.items[r.key] = { - target: r.target, - resources: { [path]: value } - }; - } + if (r.keyIsID) { + updates.items[r.key] = { + target: r.target, + resources: { + 'system.resource.value': r.target.system.resource.value + r.value + } + }; } else { switch (r.key) { case 'fear': @@ -795,11 +717,6 @@ export default class DhpActor extends Actor { } convertDamageToThreshold(damage) { - const massiveDamageEnabled = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules) - .massiveDamage.enabled; - if (massiveDamageEnabled && damage >= this.system.damageThresholds.severe * 2) { - return 4; - } return damage >= this.system.damageThresholds.severe ? 3 : damage >= this.system.damageThresholds.major ? 2 : 1; } @@ -818,7 +735,7 @@ export default class DhpActor extends Actor { async toggleDefeated(defeatedState) { const settings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).defeated; - const { unconscious, defeated, dead } = CONFIG.DH.GENERAL.conditions(); + const { unconscious, defeated, dead } = CONFIG.DH.GENERAL.conditions; const defeatedConditions = new Set([unconscious.id, defeated.id, dead.id]); if (!defeatedState) { for (let defeatedId of defeatedConditions) { @@ -833,25 +750,6 @@ export default class DhpActor extends Actor { } } - queueScrollText(scrollingTextData) { - this.#scrollTextQueue.push(...scrollingTextData.map(data => () => createScrollText(this, data))); - if (!this.#scrollTextInterval) { - const scrollFunc = this.#scrollTextQueue.pop(); - scrollFunc?.(); - - const intervalFunc = () => { - const scrollFunc = this.#scrollTextQueue.pop(); - scrollFunc?.(); - if (this.#scrollTextQueue.length === 0) { - clearInterval(this.#scrollTextInterval); - this.#scrollTextInterval = null; - } - }; - - this.#scrollTextInterval = setInterval(intervalFunc.bind(this), 600); - } - } - /** @inheritdoc */ async importFromJSON(json) { if (!this.type === 'character') return await super.importFromJSON(json); @@ -873,75 +771,4 @@ export default class DhpActor extends Actor { return await super.importFromJSON(json); } - - /** - * Generate an array of localized tag. - * @returns {string[]} An array of localized tag strings. - */ - _getTags() { - const tags = []; - if (this.system._getTags) tags.push(...this.system._getTags()); - return tags; - } - - /** Get active effects */ - getActiveEffects() { - const statusMap = new Map(foundry.CONFIG.statusEffects.map(status => [status.id, status])); - return this.effects - .filter(x => !x.disabled) - .reduce((acc, effect) => { - acc.push(effect); - - const currentStatusActiveEffects = acc.filter( - x => x.statuses.size === 1 && x.name === game.i18n.localize(statusMap.get(x.statuses.first())?.name) - ); - - for (var status of effect.statuses) { - if (!currentStatusActiveEffects.find(x => x.statuses.has(status))) { - const statusData = statusMap.get(status); - if (statusData) { - acc.push({ - condition: status, - appliedBy: game.i18n.localize(effect.name), - name: game.i18n.localize(statusData.name), - statuses: new Set([status]), - img: statusData.icon ?? statusData.img, - description: game.i18n.localize(statusData.description), - tint: effect.tint - }); - } - } - } - - return acc; - }, []); - } - - /* Temporarily copying the foundry method to add a fix to a bug with scenes - https://discord.com/channels/170995199584108546/1296292044011995136/1446693077443149856 - */ - getDependentTokens({ scenes, linked = false } = {}) { - if (this.isToken && !scenes) return [this.token]; - if (scenes) scenes = Array.isArray(scenes) ? scenes : [scenes]; - else scenes = Array.from(this._dependentTokens.keys()); - - /* Code to filter out nonexistant scenes */ - scenes = scenes.filter(scene => game.scenes.some(x => x.id === scene.id)); - - if (this.isToken) { - const parent = this.token.parent; - return scenes.includes(parent) ? [this.token] : []; - } - - const allTokens = []; - for (const scene of scenes) { - if (!scene) continue; - const tokens = this._dependentTokens.get(scene); - for (const token of tokens ?? []) { - if (!linked || token.actorLink) allTokens.push(token); - } - } - - return allTokens; - } } diff --git a/module/documents/chatMessage.mjs b/module/documents/chatMessage.mjs index 7e313891..b8667384 100644 --- a/module/documents/chatMessage.mjs +++ b/module/documents/chatMessage.mjs @@ -1,5 +1,3 @@ -import { emitAsGM, GMUpdateEvent, RefreshType, socketEvent } from '../systemRegistration/socket.mjs'; - export default class DhpChatMessage extends foundry.documents.ChatMessage { targetHook = null; @@ -16,7 +14,7 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage { const html = await super.renderHTML({ actor: actorData, author: this.author }); if (this.flags.core?.RollTable) { - html.querySelector('.roll-buttons.apply-buttons')?.remove(); + html.querySelector('.roll-buttons.apply-buttons').remove(); } this.enrichChatMessage(html); @@ -49,18 +47,6 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage { return super._preDelete(options, user); } - /** @inheritDoc */ - _onUpdate(changes, options, userId) { - super._onUpdate(changes, options, userId); - - const lastMessage = Array.from(game.messages).sort((a, b) => b.timestamp - a.timestamp)[0]; - if (lastMessage.id === this.id && ui.chat.isAtBottom) { - setTimeout(() => { - ui.chat.scrollBottom(); - }, 5); - } - } - enrichChatMessage(html) { const elements = html.querySelectorAll('[data-perm-id]'); elements.forEach(e => { @@ -87,47 +73,21 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage { break; } } - - const autoExpandRoll = game.settings.get( - CONFIG.DH.id, - CONFIG.DH.SETTINGS.gameSettings.appearance - ).expandRollMessage, - rollSections = html.querySelectorAll('.roll-part'), - itemDesc = html.querySelector('.domain-card-move'); - rollSections.forEach(s => { - if (s.classList.contains('roll-section')) { - const toExpand = s.querySelector('[data-action="expandRoll"]'); - toExpand.classList.toggle('expanded', autoExpandRoll.roll); - } else if (s.classList.contains('damage-section')) - s.classList.toggle('expanded', autoExpandRoll.damage); - else if (s.classList.contains('target-section')) s.classList.toggle('expanded', autoExpandRoll.target); - }); - if (itemDesc && autoExpandRoll.desc) itemDesc.setAttribute('open', ''); } - if (!this.isAuthor && !this.speakerActor?.isOwner) { + if (!game.user.isGM) { const applyButtons = html.querySelector('.apply-buttons'); applyButtons?.remove(); - const buttons = html.querySelectorAll('.ability-card-footer > .ability-use-button'); - buttons.forEach(b => b.remove()); + if (!this.isAuthor && !this.speakerActor?.isOwner) { + const buttons = html.querySelectorAll('.ability-card-footer > .ability-use-button'); + buttons.forEach(b => b.remove()); + } } } addChatListeners(html) { - html.querySelectorAll('.duality-action-damage').forEach(element => - element.addEventListener('click', this.onRollDamage.bind(this)) - ); - html.querySelectorAll('.damage-button').forEach(element => - element.addEventListener('click', this.onApplyDamage.bind(this)) - ); - - html.querySelectorAll('.target-save').forEach(element => - element.addEventListener('click', this.onRollSave.bind(this)) - ); - - html.querySelectorAll('.roll-all-save-button').forEach(element => - element.addEventListener('click', this.onRollAllSave.bind(this)) + element.addEventListener('click', this.onDamage.bind(this)) ); html.querySelectorAll('.duality-action-effect').forEach(element => @@ -143,39 +103,19 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage { html.querySelectorAll('.button-target-selection').forEach(element => { element.addEventListener('click', this.onTargetSelection.bind(this)); }); - - html.querySelectorAll('.token-target-container').forEach(element => { - if (element.dataset.token) { - element.addEventListener('pointerover', this.hoverTarget); - element.addEventListener('pointerout', this.unhoverTarget); - element.addEventListener('click', this.clickTarget); - } - }); } - async onRollDamage(event) { - event.stopPropagation(); - const config = foundry.utils.deepClone(this.system); - config.event = event; - await this.system.action?.workflow.get('damage')?.execute(config, this._id, true); - - Hooks.callAll(socketEvent.Refresh, { refreshType: RefreshType.TagTeamRoll }); - await game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.Refresh, - data: { - refreshType: RefreshType.TagTeamRoll - } - }); + getTargetList() { + const targets = this.system.hitTargets ?? []; + return targets.map(target => game.canvas.tokens.documentCollection.find(t => t.actor?.uuid === target.actorId)); } - async onApplyDamage(event) { + async onDamage(event) { event.stopPropagation(); - const targets = this.filterPermTargets(this.system.hitTargets), - config = foundry.utils.deepClone(this.system); - config.event = event; + const targets = this.getTargetList(); if (this.system.onSave) { - const pendingingSaves = targets.filter(t => t.saved.success === null); + const pendingingSaves = this.system.hitTargets.filter(t => t.saved.success === null); if (pendingingSaves.length) { const confirm = await foundry.applications.api.DialogV2.confirm({ window: { title: 'Pending Reaction Rolls found' }, @@ -186,66 +126,62 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage { } if (targets.length === 0) - return ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.noTargetsSelectedOrPerm')); + return ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.noTargetsSelected')); - this.consumeOnSuccess(); - this.system.action?.workflow.get('applyDamage')?.execute(config, targets, true); - } + for (let target of targets) { + let damages = foundry.utils.deepClone(this.system.damage); + if ( + !this.system.hasHealing && + this.system.onSave && + this.system.hitTargets.find(t => t.id === target.id)?.saved?.success === true + ) { + const mod = CONFIG.DH.ACTIONS.damageOnSave[this.system.onSave]?.mod ?? 1; + Object.entries(damages).forEach(([k, v]) => { + v.total = 0; + v.parts.forEach(part => { + part.total = Math.ceil(part.total * mod); + v.total += part.total; + }); + }); + } - async onRollSave(event) { - event.stopPropagation(); - const tokenId = event.target.closest('[data-token]')?.dataset.token, - token = game.canvas.tokens.get(tokenId); - if (!token?.actor || !token.isOwner) return true; - if (this.system.source.item && this.system.source.action) { - const action = this.system.action; - if (!action || !action?.hasSave) return; - game.system.api.fields.ActionFields.SaveField.rollSave.call(action, token.actor, event).then(result => - emitAsGM( - GMUpdateEvent.UpdateSaveMessage, - game.system.api.fields.ActionFields.SaveField.updateSaveMessage.bind( - action, - result, - this, - token.id - ), - { - action: action.uuid, - message: this._id, - token: token.id, - result - } - ) - ); + this.consumeOnSuccess(); + if (this.system.hasHealing) target.actor.takeHealing(damages); + else target.actor.takeDamage(damages); } } - async onRollAllSave(event) { - event.stopPropagation(); - if (!game.user.isGM) return; - const targets = this.system.hitTargets, - config = foundry.utils.deepClone(this.system); - config.event = event; - this.system.action?.workflow.get('save')?.execute(config, targets, true); + getAction(actor, itemId, actionId) { + const item = actor.items.get(itemId), + action = + actor.system.attack?._id === actionId + ? actor.system.attack + : item.system.attack?._id === actionId + ? item.system.attack + : item?.system?.actions?.get(actionId); + return action; } async onApplyEffect(event) { event.stopPropagation(); - const targets = this.filterPermTargets(this.system.hitTargets), - config = foundry.utils.deepClone(this.system); - config.event = event; - if (targets.length === 0) - ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.noTargetsSelectedOrPerm')); - this.consumeOnSuccess(); - this.system.action?.workflow.get('effects')?.execute(config, targets, true); - } - - filterPermTargets(targets) { - return targets.filter(t => fromUuidSync(t.actorId)?.canUserModify(game.user, 'update')); + const actor = await foundry.utils.fromUuid(this.system.source.actor); + if (!actor || !game.user.isGM) return true; + if (this.system.source.item && this.system.source.action) { + const action = this.getAction(actor, this.system.source.item, this.system.source.action); + if (!action || !action?.applyEffects) return; + const targets = this.getTargetList(); + if (targets.length === 0) + ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.noTargetsSelected')); + this.consumeOnSuccess(); + await action.applyEffects(event, this, targets); + } } consumeOnSuccess() { - if (!this.system.successConsumed && !this.targetSelection) this.system.action?.consume(this.system, true); + if (!this.system.successConsumed && !this.targetSelection) { + const action = this.system.action; + if (action) action.consume(this.system, true); + } } hoverTarget(event) { diff --git a/module/documents/combat.mjs b/module/documents/combat.mjs index 20996b77..3ad3189e 100644 --- a/module/documents/combat.mjs +++ b/module/documents/combat.mjs @@ -16,54 +16,4 @@ export default class DhpCombat extends Combat { return a.name.localeCompare(b.name); } - - async toggleModifierEffects(add, actors, category, groupingKey) { - const effectData = category && groupingKey ? [{ category, grouping: groupingKey }] : this.system.battleToggles; - if (add) { - const effects = effectData.reduce((acc, toggle) => { - const grouping = CONFIG.DH.ENCOUNTER.BPModifiers[toggle.category]?.[toggle.grouping]; - if (!grouping?.effects?.length) return acc; - acc.push( - ...grouping.effects.map(effect => ({ - ...effect, - name: game.i18n.localize(effect.name), - description: game.i18n.localize(effect.description), - effectTargetTypes: grouping.effectTargetTypes ?? [], - flags: { - [`${CONFIG.DH.id}.${CONFIG.DH.FLAGS.combatToggle}`]: { - category: toggle.category, - grouping: toggle.grouping - } - } - })) - ); - - return acc; - }, []); - - if (!effects.length) return; - - for (let actor of actors) { - await actor.createEmbeddedDocuments( - 'ActiveEffect', - effects.filter(x => x.effectTargetTypes.includes(actor.type)) - ); - } - } else { - for (let actor of actors) { - await actor.deleteEmbeddedDocuments( - 'ActiveEffect', - actor.effects - .filter(x => { - const flag = x.getFlag(CONFIG.DH.id, CONFIG.DH.FLAGS.combatToggle); - if (!flag) return false; - return effectData.some( - data => flag.category == data.category && flag.grouping === data.grouping - ); - }) - .map(x => x.id) - ); - } - } - } } diff --git a/module/documents/combatant.mjs b/module/documents/combatant.mjs deleted file mode 100644 index ad658509..00000000 --- a/module/documents/combatant.mjs +++ /dev/null @@ -1,6 +0,0 @@ -export default class DhCombatant extends Combatant { - /**@inheritdoc */ - get isNPC() { - return this.actor?.isNPC ?? (!this.actor || !this.hasPlayerOwner); - } -} diff --git a/module/documents/item.mjs b/module/documents/item.mjs index 2c6d68b5..8492f068 100644 --- a/module/documents/item.mjs +++ b/module/documents/item.mjs @@ -28,18 +28,11 @@ export default class DHItem extends foundry.documents.Item { return doc; } - static async createDocuments(sources, operation) { - // Ensure that items being created are valid to the actor its being added to - const actor = operation.parent; - sources = actor?.system?.isItemValid ? sources.filter((s) => actor.system.isItemValid(s)) : sources; - return super.createDocuments(sources, operation); - } - /* -------------------------------------------- */ /** @inheritDoc */ static migrateData(source) { - if (source.system?.attack && !source.system.attack.type) source.system.attack.type = 'attack'; + if(source.system?.attack && !source.system.attack.type) source.system.attack.type = "attack"; return super.migrateData(source); } diff --git a/module/documents/scene.mjs b/module/documents/scene.mjs deleted file mode 100644 index c6cdd2c2..00000000 --- a/module/documents/scene.mjs +++ /dev/null @@ -1,40 +0,0 @@ -import DHToken from './token.mjs'; - -export default class DhScene extends Scene { - /** A map of `TokenDocument` IDs embedded in this scene long with new dimensions from actor size-category changes */ - #sizeSyncBatch = new Map(); - - /** Synchronize a token's dimensions with its actor's size category. */ - syncTokenDimensions(tokenDoc, tokenSize) { - if (!tokenDoc.parent?.tokens.has(tokenDoc.id)) return; - const prototype = tokenDoc.actor?.prototypeToken ?? tokenDoc; - this.#sizeSyncBatch.set(tokenDoc.id, { - size: tokenSize, - prototypeSize: { width: prototype.width, height: prototype.height }, - position: { x: tokenDoc.x, y: tokenDoc.y, elevation: tokenDoc.elevation } - }); - this.#processSyncBatch(); - } - - /** Retrieve size and clear size-sync batch, make updates. */ - #processSyncBatch = foundry.utils.debounce(() => { - const tokenSizes = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).tokenSizes; - const entries = this.#sizeSyncBatch - .entries() - .toArray() - .map(([_id, { size, prototypeSize, position }]) => { - const tokenSize = tokenSizes[size]; - const width = size !== CONFIG.DH.ACTOR.tokenSize.custom.id ? tokenSize : prototypeSize.width; - const height = size !== CONFIG.DH.ACTOR.tokenSize.custom.id ? tokenSize : prototypeSize.height; - const updatedPosition = DHToken.getSnappedPositionInSquareGrid(this.grid, position, width, height); - return { - _id, - width, - height, - ...updatedPosition - }; - }); - this.#sizeSyncBatch.clear(); - this.updateEmbeddedDocuments('Token', entries, { animation: { movementSpeed: 1.5 } }); - }, 0); -} diff --git a/module/documents/templateManager.mjs b/module/documents/templateManager.mjs index cf15c2e3..c31b1baa 100644 --- a/module/documents/templateManager.mjs +++ b/module/documents/templateManager.mjs @@ -57,10 +57,7 @@ export default class DhTemplateManager { * @param {wheel Event} event */ #onMouseWheel(event) { - if (!this.#activePreview) { - return; - } - if (!event.shiftKey && !event.ctrlKey) return; + if (!event.shiftKey) return; event.stopPropagation(); event.preventDefault(); const { moveTime, object } = this.#activePreview; @@ -69,10 +66,8 @@ export default class DhTemplateManager { if (now - (moveTime || 0) <= 16) return; this.#activePreview.moveTime = now; - const multiplier = event.shiftKey ? 0.2 : 0.1; - object.document.updateSource({ - direction: object.document.direction + event.deltaY * multiplier + direction: object.document.direction + event.deltaY * 0.2 }); object.renderFlags.set({ refresh: true }); } @@ -82,13 +77,12 @@ export default class DhTemplateManager { * @param {contextmenu Event} event */ #cancelTemplate(event) { - const { mousemove, mousedown, contextmenu, wheel } = this.#activePreview.events; + const { mousemove, mousedown, contextmenu } = this.#activePreview.events; canvas.templates._onDragLeftCancel(event); canvas.stage.off('mousemove', mousemove); canvas.stage.off('mousedown', mousedown); canvas.app.view.removeEventListener('contextmenu', contextmenu); - canvas.app.view.removeEventListener('wheel', wheel); } /** @@ -97,9 +91,9 @@ export default class DhTemplateManager { */ #confirmTemplate(event) { event.stopPropagation(); - this.#cancelTemplate(event); canvas.scene.createEmbeddedDocuments('MeasuredTemplate', [this.#activePreview.document.toObject()]); - this.#activePreview = undefined; + + this.#cancelTemplate(event); } } diff --git a/module/documents/token.mjs b/module/documents/token.mjs index 4ac29264..6d080f31 100644 --- a/module/documents/token.mjs +++ b/module/documents/token.mjs @@ -1,4 +1,4 @@ -export default class DHToken extends CONFIG.Token.documentClass { +export default class DHToken extends TokenDocument { /** * Inspect the Actor data model and identify the set of attributes which could be used for a Token Bar. * @param {object} attributes The tracked attributes which can be chosen from @@ -72,468 +72,8 @@ export default class DHToken extends CONFIG.Token.documentClass { } return attributes; } - + _shouldRecordMovementHistory() { return false; } - - /**@inheritdoc */ - static async createCombatants(tokens, combat) { - combat ??= game.combats.viewed; - if (combat?.system?.battleToggles?.length) { - await combat.toggleModifierEffects( - true, - tokens.filter(x => x.actor).map(x => x.actor) - ); - } - super.createCombatants(tokens, combat ?? {}); - } - - /**@inheritdoc */ - static async deleteCombatants(tokens, { combat } = {}) { - combat ??= game.combats.viewed; - if (combat?.system?.battleToggles?.length) { - await combat.toggleModifierEffects( - false, - tokens.filter(x => x.actor).map(x => x.actor) - ); - } - super.deleteCombatants(tokens, combat ?? {}); - } - - /**@inheritdoc */ - static async _preCreateOperation(documents, operation, user) { - const allowed = await super._preCreateOperation(documents, operation, user); - if (allowed === false) return false; - - const tokenSizes = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).tokenSizes; - for (const document of documents) { - const actor = document.actor; - if (actor?.system.metadata.usesSize) { - const tokenSize = tokenSizes[actor.system.size]; - if (tokenSize && actor.system.size !== CONFIG.DH.ACTOR.tokenSize.custom.id) { - document.updateSource({ - width: tokenSize, - height: tokenSize - }); - } - } - } - } - - /**@inheritdoc */ - _onRelatedUpdate(update = {}, operation = {}) { - super._onRelatedUpdate(update, operation); - - if (!this.actor?.isOwner) return; - - const updates = Array.isArray(update) ? update : [update]; - const activeGM = game.users.activeGM; // Let the active GM take care of updates if available - for (let update of updates) { - if ( - this.actor.system.metadata.usesSize && - update.system?.size && - activeGM && - game.user.id === activeGM.id - ) { - const tokenSizes = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).tokenSizes; - const tokenSize = tokenSizes[update.system.size]; - if (tokenSize !== this.width || tokenSize !== this.height) { - this.parent?.syncTokenDimensions(this, update.system.size); - } - } - } - } - - /**@inheritdoc */ - getSnappedPosition(data = {}) { - const grid = this.parent?.grid ?? BaseScene.defaultGrid; - const x = data.x ?? this.x; - const y = data.y ?? this.y; - let elevation = data.elevation ?? this.elevation; - const unsnapped = { x, y, elevation }; - - // Gridless grid - if (grid.isGridless) return unsnapped; - - // Get position and elevation - elevation = Math.round(elevation / grid.distance) * grid.distance; - - let width = data.width ?? this.width; - let height = data.height ?? this.height; - - if (this.actor?.system.metadata.usesSize) { - const tokenSizes = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).tokenSizes; - const tokenSize = tokenSizes[this.actor.system.size]; - if (tokenSize && this.actor.system.size !== CONFIG.DH.ACTOR.tokenSize.custom.id) { - width = tokenSize ?? width; - height = tokenSize ?? height; - } - } - - // Round width and height to nearest multiple of 0.5 if not small - width = width < 1 ? width : Math.round(width * 2) / 2; - height = height < 1 ? height : Math.round(height * 2) / 2; - const shape = data.shape ?? this.shape; - - // Square grid - let snapped; - if (grid.isSquare) snapped = DHToken.getSnappedPositionInSquareGrid(grid, unsnapped, width, height); - // Hexagonal grid - else snapped = DHToken.getSnappedPositionInHexagonalGrid(grid, unsnapped, width, height, shape); - return { x: snapped.x, y: snapped.y, elevation }; - } - - static getSnappedPositionInSquareGrid(grid, position, width, height) { - const M = CONST.GRID_SNAPPING_MODES; - // Small tokens snap to any vertex of the subgrid with resolution 4 - // where the token is fully contained within the grid space - const isTiny = (width === 0.5 && height <= 1) || (width <= 1 && height === 0.5); - if (isTiny) { - let x = position.x / grid.size; - let y = position.y / grid.size; - if (width === 1) x = Math.round(x); - else { - x = Math.floor(x * 8); - const k = ((x % 8) + 8) % 8; - if (k >= 6) x = Math.ceil(x / 8); - else if (k === 5) x = Math.floor(x / 8) + 0.5; - else x = Math.round(x / 2) / 4; - } - if (height === 1) y = Math.round(y); - else { - y = Math.floor(y * 8); - const k = ((y % 8) + 8) % 8; - if (k >= 6) y = Math.ceil(y / 8); - else if (k === 5) y = Math.floor(y / 8) + 0.5; - else y = Math.round(y / 2) / 4; - } - - x *= grid.size; - y *= grid.size; - - return { x, y }; - } else if (width < 1 && height < 1) { - // isSmall - let xGrid = Math.round(position.x / grid.size); - let yGrid = Math.round(position.y / grid.size); - - const x = xGrid * grid.size + grid.size / 2 - (width * grid.size) / 2; - const y = yGrid * grid.size + grid.size / 2 - (height * grid.size) / 2; - - return { x, y }; - } - - const modeX = Number.isInteger(width) ? M.VERTEX : M.VERTEX | M.EDGE_MIDPOINT | M.CENTER; - const modeY = Number.isInteger(height) ? M.VERTEX : M.VERTEX | M.EDGE_MIDPOINT | M.CENTER; - - if (modeX === modeY) return grid.getSnappedPoint(position, { mode: modeX }); - - return { - x: grid.getSnappedPoint(position, { mode: modeX }).x, - y: grid.getSnappedPoint(position, { mode: modeY }).y - }; - } - - //#region CopyPasta for mean private methods that have to be duplicated - static getSnappedPositionInHexagonalGrid(grid, position, width, height, shape) { - // Hexagonal shape - const hexagonalShape = DHToken.#getHexagonalShape(width, height, shape, grid.columns); - if (hexagonalShape) { - const offsetX = hexagonalShape.anchor.x * grid.sizeX; - const offsetY = hexagonalShape.anchor.y * grid.sizeY; - position = grid.getCenterPoint({ x: position.x + offsetX, y: position.y + offsetY }); - position.x -= offsetX; - position.y -= offsetY; - return position; - } - - // Rectagular shape - const M = CONST.GRID_SNAPPING_MODES; - return grid.getSnappedPoint(position, { mode: M.CENTER | M.VERTEX | M.CORNER | M.SIDE_MIDPOINT }); - } - - /** - * The cache of hexagonal shapes. - * @type {Map>} - */ - static #hexagonalShapes = new Map(); - - static #getHexagonalShape(width, height, shape, columns) { - if (!Number.isInteger(width * 2) || !Number.isInteger(height * 2)) return null; - - // TODO: can we set a max of 2^13 on width and height so that we may use an integer key? - const key = `${width},${height},${shape}${columns ? 'C' : 'R'}`; - let data = DHToken.#hexagonalShapes.get(key); - if (data) return data; - - // Hexagon symmetry - if (columns) { - const rowData = BaseToken.#getHexagonalShape(height, width, shape, false); - if (!rowData) return null; - - // Transpose the offsets/points of the shape in row orientation - const offsets = { even: [], odd: [] }; - for (const { i, j } of rowData.offsets.even) offsets.even.push({ i: j, j: i }); - for (const { i, j } of rowData.offsets.odd) offsets.odd.push({ i: j, j: i }); - offsets.even.sort(({ i: i0, j: j0 }, { i: i1, j: j1 }) => j0 - j1 || i0 - i1); - offsets.odd.sort(({ i: i0, j: j0 }, { i: i1, j: j1 }) => j0 - j1 || i0 - i1); - const points = []; - for (let i = rowData.points.length; i > 0; i -= 2) { - points.push(rowData.points[i - 1], rowData.points[i - 2]); - } - data = { - offsets, - points, - center: { x: rowData.center.y, y: rowData.center.x }, - anchor: { x: rowData.anchor.y, y: rowData.anchor.x } - }; - } - - // Small hexagon - else if (width === 0.5 && height === 0.5) { - data = { - offsets: { even: [{ i: 0, j: 0 }], odd: [{ i: 0, j: 0 }] }, - points: [0.25, 0.0, 0.5, 0.125, 0.5, 0.375, 0.25, 0.5, 0.0, 0.375, 0.0, 0.125], - center: { x: 0.25, y: 0.25 }, - anchor: { x: 0.25, y: 0.25 } - }; - } - - // Normal hexagon - else if (width === 1 && height === 1) { - data = { - offsets: { even: [{ i: 0, j: 0 }], odd: [{ i: 0, j: 0 }] }, - points: [0.5, 0.0, 1.0, 0.25, 1, 0.75, 0.5, 1.0, 0.0, 0.75, 0.0, 0.25], - center: { x: 0.5, y: 0.5 }, - anchor: { x: 0.5, y: 0.5 } - }; - } - - // Hexagonal ellipse or trapezoid - else if (shape <= CONST.TOKEN_SHAPES.TRAPEZOID_2) { - data = DHToken.#createHexagonalEllipseOrTrapezoid(width, height, shape); - } - - // Hexagonal rectangle - else if (shape <= CONST.TOKEN_SHAPES.RECTANGLE_2) { - data = DHToken.#createHexagonalRectangle(width, height, shape); - } - - // Cache the shape - if (data) { - foundry.utils.deepFreeze(data); - DHToken.#hexagonalShapes.set(key, data); - } - - return data; - } - - static #createHexagonalEllipseOrTrapezoid(width, height, shape) { - if (!Number.isInteger(width) || !Number.isInteger(height)) return null; - const points = []; - let top; - let bottom; - switch (shape) { - case CONST.TOKEN_SHAPES.ELLIPSE_1: - if (height >= 2 * width) return null; - top = Math.floor(height / 2); - bottom = Math.floor((height - 1) / 2); - break; - case CONST.TOKEN_SHAPES.ELLIPSE_2: - if (height >= 2 * width) return null; - top = Math.floor((height - 1) / 2); - bottom = Math.floor(height / 2); - break; - case CONST.TOKEN_SHAPES.TRAPEZOID_1: - if (height > width) return null; - top = height - 1; - bottom = 0; - break; - case CONST.TOKEN_SHAPES.TRAPEZOID_2: - if (height > width) return null; - top = 0; - bottom = height - 1; - break; - } - const offsets = { even: [], odd: [] }; - for (let i = bottom; i > 0; i--) { - for (let j = 0; j < width - i; j++) { - offsets.even.push({ i: bottom - i, j: j + (((bottom & 1) + i + 1) >> 1) }); - offsets.odd.push({ i: bottom - i, j: j + (((bottom & 1) + i) >> 1) }); - } - } - for (let i = 0; i <= top; i++) { - for (let j = 0; j < width - i; j++) { - offsets.even.push({ i: bottom + i, j: j + (((bottom & 1) + i + 1) >> 1) }); - offsets.odd.push({ i: bottom + i, j: j + (((bottom & 1) + i) >> 1) }); - } - } - let x = 0.5 * bottom; - let y = 0.25; - for (let k = width - bottom; k--; ) { - points.push(x, y); - x += 0.5; - y -= 0.25; - points.push(x, y); - x += 0.5; - y += 0.25; - } - points.push(x, y); - for (let k = bottom; k--; ) { - y += 0.5; - points.push(x, y); - x += 0.5; - y += 0.25; - points.push(x, y); - } - y += 0.5; - for (let k = top; k--; ) { - points.push(x, y); - x -= 0.5; - y += 0.25; - points.push(x, y); - y += 0.5; - } - for (let k = width - top; k--; ) { - points.push(x, y); - x -= 0.5; - y += 0.25; - points.push(x, y); - x -= 0.5; - y -= 0.25; - } - points.push(x, y); - for (let k = top; k--; ) { - y -= 0.5; - points.push(x, y); - x -= 0.5; - y -= 0.25; - points.push(x, y); - } - y -= 0.5; - for (let k = bottom; k--; ) { - points.push(x, y); - x += 0.5; - y -= 0.25; - points.push(x, y); - y -= 0.5; - } - return { - offsets, - points, - // We use the centroid of the polygon for ellipse and trapzoid shapes - center: foundry.utils.polygonCentroid(points), - anchor: bottom % 2 ? { x: 0.0, y: 0.5 } : { x: 0.5, y: 0.5 } - }; - } - - /** - * Create the row-based hexagonal rectangle given the type, width, and height. - * @param {number} width The width of the Token (positive) - * @param {number} height The height of the Token (positive) - * @param {TokenShapeType} shape The shape type (must be RECTANGLE_1 or RECTANGLE_2) - * @returns {TokenHexagonalShapeData|null} The hexagonal shape or null if there is no shape - * for the given combination of arguments - */ - static #createHexagonalRectangle(width, height, shape) { - if (width < 1 || !Number.isInteger(height)) return null; - if (width === 1 && height > 1) return null; - if (!Number.isInteger(width) && height === 1) return null; - - const even = shape === CONST.TOKEN_SHAPES.RECTANGLE_1 || height === 1; - const offsets = { even: [], odd: [] }; - for (let i = 0; i < height; i++) { - const j0 = even ? 0 : (i + 1) & 1; - const j1 = ((width + (i & 1) * 0.5) | 0) - (even ? i & 1 : 0); - for (let j = j0; j < j1; j++) { - offsets.even.push({ i, j: j + (i & 1) }); - offsets.odd.push({ i, j }); - } - } - let x = even ? 0.0 : 0.5; - let y = 0.25; - const points = [x, y]; - while (x + 1 <= width) { - x += 0.5; - y -= 0.25; - points.push(x, y); - x += 0.5; - y += 0.25; - points.push(x, y); - } - if (x !== width) { - y += 0.5; - points.push(x, y); - x += 0.5; - y += 0.25; - points.push(x, y); - } - while (y + 1.5 <= 0.75 * height) { - y += 0.5; - points.push(x, y); - x -= 0.5; - y += 0.25; - points.push(x, y); - y += 0.5; - points.push(x, y); - x += 0.5; - y += 0.25; - points.push(x, y); - } - if (y + 0.75 < 0.75 * height) { - y += 0.5; - points.push(x, y); - x -= 0.5; - y += 0.25; - points.push(x, y); - } - y += 0.5; - points.push(x, y); - while (x - 1 >= 0) { - x -= 0.5; - y += 0.25; - points.push(x, y); - x -= 0.5; - y -= 0.25; - points.push(x, y); - } - if (x !== 0) { - y -= 0.5; - points.push(x, y); - x -= 0.5; - y -= 0.25; - points.push(x, y); - } - while (y - 1.5 > 0) { - y -= 0.5; - points.push(x, y); - x += 0.5; - y -= 0.25; - points.push(x, y); - y -= 0.5; - points.push(x, y); - x -= 0.5; - y -= 0.25; - points.push(x, y); - } - if (y - 0.75 > 0) { - y -= 0.5; - points.push(x, y); - x += 0.5; - y -= 0.25; - points.push(x, y); - } - return { - offsets, - points, - // We use center of the rectangle (and not the centroid of the polygon) for the rectangle shapes - center: { - x: width / 2, - y: (0.75 * Math.floor(height) + 0.5 * (height % 1) + 0.25) / 2 - }, - anchor: even ? { x: 0.5, y: 0.5 } : { x: 0.0, y: 0.5 } - }; - } - //#endregion } diff --git a/module/documents/tooltipManager.mjs b/module/documents/tooltipManager.mjs index 3ea6703c..95621441 100644 --- a/module/documents/tooltipManager.mjs +++ b/module/documents/tooltipManager.mjs @@ -1,66 +1,8 @@ -import { AdversaryBPPerEncounter, BaseBPPerEncounter } from '../config/encounterConfig.mjs'; - export default class DhTooltipManager extends foundry.helpers.interaction.TooltipManager { - #wide = false; - #bordered = false; - async activate(element, options = {}) { const { TextEditor } = foundry.applications.ux; let html = options.html; - if (element.dataset.tooltip?.startsWith('#battlepoints#')) { - this.#wide = true; - this.#bordered = true; - - html = await this.getBattlepointHTML(element.dataset.combatId); - options.direction = this._determineItemTooltipDirection(element); - super.activate(element, { ...options, html: html }); - - const lockedTooltip = this.lockTooltip(); - lockedTooltip.querySelectorAll('.battlepoint-toggle-container input').forEach(element => { - element.addEventListener('input', this.toggleModifier.bind(this)); - }); - return; - } else { - this.#wide = false; - this.#bordered = false; - } - - if (element.dataset.tooltip === '#effect-display#') { - this.#bordered = true; - let effect = {}; - if (element.dataset.uuid) { - const effectData = (await foundry.utils.fromUuid(element.dataset.uuid)).toObject(); - effect = { - ...effectData, - name: game.i18n.localize(effectData.name), - description: game.i18n.localize(effectData.description ?? effectData.parent.system.description) - }; - } else { - const conditions = CONFIG.DH.GENERAL.conditions(); - const condition = conditions[element.dataset.condition]; - effect = { - ...condition, - name: game.i18n.localize(condition.name), - description: game.i18n.localize(condition.description), - appliedBy: element.dataset.appliedBy, - isLockedCondition: true - }; - } - - html = await foundry.applications.handlebars.renderTemplate( - `systems/daggerheart/templates/ui/tooltip/effect-display.hbs`, - { - effect - } - ); - - this.tooltip.innerHTML = html; - options.direction = this._determineItemTooltipDirection(element); - } else { - this.#bordered = false; - } - if (element.dataset.tooltip?.startsWith('#item#')) { const itemUuid = element.dataset.tooltip.slice(6); const item = await foundry.utils.fromUuid(itemUuid); @@ -75,8 +17,7 @@ export default class DhTooltipManager extends foundry.helpers.interaction.Toolti { item: item, description: item.system?.enrichedDescription ?? item.enrichedDescription, - config: CONFIG.DH, - allDomains: CONFIG.DH.DOMAIN.allDomains() + config: CONFIG.DH } ); @@ -234,133 +175,4 @@ export default class DhTooltipManager extends foundry.helpers.interaction.Toolti } } } - - /**@inheritdoc */ - _setStyle(position = {}) { - super._setStyle(position); - - if (this.#wide) { - this.tooltip.classList.add('wide'); - } - - if (this.#bordered) { - this.tooltip.classList.add('bordered-tooltip'); - } - } - - /**@inheritdoc */ - lockTooltip() { - const clone = super.lockTooltip(); - if (this.#wide) clone.classList.add('wide'); - if (this.#bordered) clone.classList.add('bordered-tooltip'); - - return clone; - } - - /** Get HTML for Battlepoints tooltip */ - async getBattlepointHTML(combatId) { - const combat = game.combats.get(combatId); - const adversaries = - combat.turns?.filter(x => x.actor?.isNPC)?.map(x => ({ ...x.actor, type: x.actor.system.type })) ?? []; - const characters = combat.turns?.filter(x => !x.isNPC && x.actor) ?? []; - - const nrCharacters = characters.length; - const currentBP = AdversaryBPPerEncounter(adversaries, characters); - const maxBP = combat.system.extendedBattleToggles.reduce( - (acc, toggle) => acc + toggle.category, - BaseBPPerEncounter(nrCharacters) - ); - - const categories = combat.combatants.reduce((acc, combatant) => { - if (combatant.actor?.type === 'adversary') { - const keyData = Object.keys(acc).reduce((identifiers, categoryKey) => { - if (identifiers) return identifiers; - const category = acc[categoryKey]; - const groupingIndex = category.findIndex(grouping => - grouping.types.includes(combatant.actor.system.type) - ); - if (groupingIndex !== -1) identifiers = { categoryKey, groupingIndex }; - - return identifiers; - }, null); - if (keyData) { - const { categoryKey, groupingIndex } = keyData; - const grouping = acc[categoryKey][groupingIndex]; - const partyAmount = CONFIG.DH.ACTOR.adversaryTypes[combatant.actor.system.type].partyAmountPerBP; - grouping.individuals = (grouping.individuals ?? 0) + 1; - - const currentNr = grouping.nr ?? 0; - grouping.nr = partyAmount ? Math.ceil(grouping.individuals / (nrCharacters ?? 0)) : currentNr + 1; - } - } - - return acc; - }, foundry.utils.deepClone(CONFIG.DH.ENCOUNTER.adversaryTypeCostBrackets)); - - const extendedBattleToggles = combat.system.extendedBattleToggles; - const toggles = Object.keys(CONFIG.DH.ENCOUNTER.BPModifiers) - .reduce((acc, categoryKey) => { - const category = CONFIG.DH.ENCOUNTER.BPModifiers[categoryKey]; - acc.push( - ...Object.keys(category).reduce((acc, toggleKey) => { - const grouping = category[toggleKey]; - acc.push({ - ...grouping, - categoryKey: Number(categoryKey), - toggleKey, - checked: extendedBattleToggles.find( - x => x.category == categoryKey && x.grouping === toggleKey - ), - disabled: grouping.automatic - }); - - return acc; - }, []) - ); - return acc; - }, []) - .sort((a, b) => { - if (a.categoryKey < b.categoryKey) return -1; - if (a.categoryKey > b.categoryKey) return 1; - else return a.toggleKey.localeCompare(b.toggleKey); - }); - - return await foundry.applications.handlebars.renderTemplate( - `systems/daggerheart/templates/ui/tooltip/battlepoints.hbs`, - { - combatId: combat.id, - nrCharacters, - currentBP, - maxBP, - categories, - toggles - } - ); - } - - /** Enable/disable a BP modifier */ - async toggleModifier(event) { - const { combatId, category, grouping } = event.target.dataset; - const combat = game.combats.get(combatId); - await combat.update({ - system: { - battleToggles: combat.system.battleToggles.some(x => x.category == category && x.grouping === grouping) - ? combat.system.battleToggles.filter(x => x.category != category && x.grouping !== grouping) - : [...combat.system.battleToggles, { category: Number(category), grouping }] - } - }); - - await combat.toggleModifierEffects( - event.target.checked, - combat.combatants.filter(x => x.actor?.type === 'adversary').map(x => x.actor), - category, - grouping - ); - - this.tooltip.innerHTML = await this.getBattlepointHTML(combatId); - const lockedTooltip = this.lockTooltip(); - lockedTooltip.querySelectorAll('.battlepoint-toggle-container input').forEach(element => { - element.addEventListener('input', this.toggleModifier.bind(this)); - }); - } } diff --git a/module/enrichers/DamageEnricher.mjs b/module/enrichers/DamageEnricher.mjs index e3f9c42a..a52c4b31 100644 --- a/module/enrichers/DamageEnricher.mjs +++ b/module/enrichers/DamageEnricher.mjs @@ -1,8 +1,29 @@ -import { parseInlineParams } from './parser.mjs'; - export default function DhDamageEnricher(match, _options) { - const { value, type, inline } = parseInlineParams(match[1]); - if (!value || !type) return match[0]; + const parts = match[1].split('|').map(x => x.trim()); + + let value = null, + type = null, + inline = false; + + parts.forEach(part => { + const split = part.split(':').map(x => x.toLowerCase().trim()); + if (split.length === 2) { + switch (split[0]) { + case 'value': + value = split[1]; + break; + case 'type': + type = split[1]; + break; + case 'inline': + inline = true; + break; + } + } + }); + + if (!value || !value) return match[0]; + return getDamageMessage(value, type, inline, match[0]); } diff --git a/module/enrichers/DualityRollEnricher.mjs b/module/enrichers/DualityRollEnricher.mjs index 1d6404ff..73d4f25a 100644 --- a/module/enrichers/DualityRollEnricher.mjs +++ b/module/enrichers/DualityRollEnricher.mjs @@ -9,12 +9,12 @@ export default function DhDualityRollEnricher(match, _options) { } function getDualityMessage(roll, flavor) { - const trait = roll?.trait && abilities[roll.trait] ? game.i18n.localize(abilities[roll.trait].label) : null; + const trait = roll.trait && abilities[roll.trait] ? game.i18n.localize(abilities[roll.trait].label) : null; const label = flavor ?? - (roll?.trait + (roll.trait ? game.i18n.format('DAGGERHEART.GENERAL.rollWith', { roll: trait }) - : roll?.reaction + : roll.reaction ? game.i18n.localize('DAGGERHEART.GENERAL.reactionRoll') : game.i18n.localize('DAGGERHEART.GENERAL.duality')); @@ -22,9 +22,9 @@ function getDualityMessage(roll, flavor) { ? game.i18n.localize(abilities[roll.trait].label) : game.i18n.localize('DAGGERHEART.GENERAL.duality'); - const advantage = roll?.advantage + const advantage = roll.advantage ? CONFIG.DH.ACTIONS.advantageState.advantage.value - : roll?.disadvantage + : roll.disadvantage ? CONFIG.DH.ACTIONS.advantageState.disadvantage.value : undefined; const advantageLabel = @@ -36,21 +36,21 @@ function getDualityMessage(roll, flavor) { const dualityElement = document.createElement('span'); dualityElement.innerHTML = ` - `; diff --git a/module/enrichers/LookupEnricher.mjs b/module/enrichers/LookupEnricher.mjs deleted file mode 100644 index cc9af608..00000000 --- a/module/enrichers/LookupEnricher.mjs +++ /dev/null @@ -1,13 +0,0 @@ -import { parseInlineParams } from './parser.mjs'; - -export default function DhLookupEnricher(match, { rollData }) { - const results = parseInlineParams(match[1], { first: 'formula' }); - const element = document.createElement('span'); - - const lookupCommand = match[0]; - const lookupParam = match[1]; - const lookupText = Roll.replaceFormulaData(String(results.formula), rollData); - element.textContent = lookupText === lookupParam ? lookupCommand : lookupText; - - return element; -} diff --git a/module/enrichers/TemplateEnricher.mjs b/module/enrichers/TemplateEnricher.mjs index 4b9b052e..35a3e231 100644 --- a/module/enrichers/TemplateEnricher.mjs +++ b/module/enrichers/TemplateEnricher.mjs @@ -1,46 +1,41 @@ -import { parseInlineParams } from './parser.mjs'; - export default function DhTemplateEnricher(match, _options) { - const params = parseInlineParams(match[1]); - const { type, angle = CONFIG.MeasuredTemplate.defaults.angle, inline = false } = params; - const direction = Number(params.direction) || 0; - const range = - params.range && Number.isNaN(Number(params.range)) - ? Object.values(CONFIG.DH.GENERAL.templateRanges).find( - x => x.id.toLowerCase() === params.range || x.short === params.range - )?.id - : params.range; + const parts = match[1].split('|').map(x => x.trim()); - if (!Object.values(CONFIG.DH.GENERAL.templateTypes).find(x => x === type) || !range) return match[0]; + let type = null, + range = null, + inline = false; + + parts.forEach(part => { + const split = part.split(':').map(x => x.toLowerCase().trim()); + if (split.length === 2) { + switch (split[0]) { + case 'type': + const matchedType = Object.values(CONFIG.DH.GENERAL.templateTypes).find( + x => x.toLowerCase() === split[1] + ); + type = matchedType; + break; + case 'range': + const matchedRange = Object.values(CONFIG.DH.GENERAL.templateRanges).find( + x => x.id.toLowerCase() === split[1] || x.short === split[1] + ); + range = matchedRange?.id; + break; + case 'inline': + inline = true; + break; + } + } + }); + + if (!type || !range) return match[0]; const label = game.i18n.localize(`DAGGERHEART.CONFIG.TemplateTypes.${type}`); - const rangeDisplay = Number.isNaN(Number(range)) - ? game.i18n.localize(`DAGGERHEART.CONFIG.Range.${range}.name`) - : range; - - let angleDisplay = ''; - if (angle != CONFIG.MeasuredTemplate.defaults.angle) { - angleDisplay = 'angle:' + angle; - } - let directionDisplay = ''; - if (direction != 0) { - directionDisplay = 'direction:' + direction; - } - - let extraDisplay = ''; - if (angleDisplay != '' && directionDisplay != '') { - extraDisplay = ' (' + angleDisplay + '|' + directionDisplay + ')'; - } else if (angleDisplay != '') { - extraDisplay = ' (' + angleDisplay + ')'; - } else if (directionDisplay != '') { - extraDisplay = ' (' + directionDisplay + ')'; - } const templateElement = document.createElement('span'); templateElement.innerHTML = ` - `; @@ -50,26 +45,21 @@ export default function DhTemplateEnricher(match, _options) { export const renderMeasuredTemplate = async event => { const button = event.currentTarget, type = button.dataset.type, - range = button.dataset.range, - angle = button.dataset.angle, - direction = button.dataset.direction; + range = button.dataset.range; if (!type || !range || !game.canvas.scene) return; const usedType = type === 'inFront' ? 'cone' : type === 'emanation' ? 'circle' : type; - const usedAngle = + const angle = type === CONST.MEASURED_TEMPLATE_TYPES.CONE - ? (angle ?? CONFIG.MeasuredTemplate.defaults.angle) + ? CONFIG.MeasuredTemplate.defaults.angle : type === CONFIG.DH.GENERAL.templateTypes.INFRONT ? '180' : undefined; - let baseDistance = range; - if (Number.isNaN(Number(range))) { - baseDistance = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules).rangeMeasurement[ - range - ]; - } + const baseDistance = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules).rangeMeasurement[ + range + ]; const distance = type === CONFIG.DH.GENERAL.templateTypes.EMANATION ? baseDistance + 2.5 : baseDistance; const { width, height } = game.canvas.scene.dimensions; @@ -79,8 +69,7 @@ export const renderMeasuredTemplate = async event => { t: usedType, distance: distance, width: type === CONST.MEASURED_TEMPLATE_TYPES.RAY ? 5 : undefined, - angle: usedAngle, - direction: direction + angle: angle }; CONFIG.ux.TemplateManager.createPreview(data); diff --git a/module/enrichers/_module.mjs b/module/enrichers/_module.mjs index 0dcd870e..deec4250 100644 --- a/module/enrichers/_module.mjs +++ b/module/enrichers/_module.mjs @@ -2,30 +2,25 @@ import { default as DhDamageEnricher, renderDamageButton } from './DamageEnriche import { default as DhDualityRollEnricher, renderDualityButton } from './DualityRollEnricher.mjs'; import { default as DhEffectEnricher } from './EffectEnricher.mjs'; import { default as DhTemplateEnricher, renderMeasuredTemplate } from './TemplateEnricher.mjs'; -import { default as DhLookupEnricher } from './LookupEnricher.mjs'; export { DhDamageEnricher, DhDualityRollEnricher, DhEffectEnricher, DhTemplateEnricher }; export const enricherConfig = [ { - pattern: /@Damage\[([^\[\]]*)\]({[^}]*})?/g, + pattern: /@Damage\[(.*)\]({.*})?/g, enricher: DhDamageEnricher }, { - pattern: /\[\[\/dr\s?(.*?)\]\]({[^}]*})?/g, + pattern: /\[\[\/dr\s?(.*?)\]\]({.*})?/g, enricher: DhDualityRollEnricher }, { - pattern: /@Effect\[([^\[\]]*)\]({[^}]*})?/g, + pattern: /@Effect\[(.*)\]({.*})?/g, enricher: DhEffectEnricher }, { - pattern: /@Template\[([^\[\]]*)\]({[^}]*})?/g, + pattern: /@Template\[(.*)\]({.*})?/g, enricher: DhTemplateEnricher - }, - { - pattern: /@Lookup\[([^\[\]]*)\]({[^}]*})?/g, - enricher: DhLookupEnricher } ]; diff --git a/module/enrichers/parser.mjs b/module/enrichers/parser.mjs deleted file mode 100644 index 365caec9..00000000 --- a/module/enrichers/parser.mjs +++ /dev/null @@ -1,20 +0,0 @@ -/** - * @param {string} paramString The parameter inside the brackets of something like @Template[] to parse - * @param {Object} options - * @param {string} options.first If set, the first parameter is treated as a value with this as its key - * @returns {Record | null} - */ -export function parseInlineParams(paramString, { first } = {}) { - const parts = paramString.split('|').map(x => x.trim()); - const params = {}; - for (const [idx, param] of parts.entries()) { - if (first && idx === 0) { - params[first] = param; - } else { - const parts = param.split(':'); - params[parts[0]] = parts.length > 1 ? parts[1] : true; - } - } - - return params; -} diff --git a/module/helpers/handlebarsHelper.mjs b/module/helpers/handlebarsHelper.mjs index 2faea830..171255e2 100644 --- a/module/helpers/handlebarsHelper.mjs +++ b/module/helpers/handlebarsHelper.mjs @@ -13,10 +13,7 @@ export default class RegisterHandlebarsHelpers { hasProperty: foundry.utils.hasProperty, getProperty: foundry.utils.getProperty, setVar: this.setVar, - empty: this.empty, - pluralize: this.pluralize, - positive: this.positive, - isNullish: this.isNullish + empty: this.empty }); } static add(a, b) { @@ -35,8 +32,14 @@ export default class RegisterHandlebarsHelpers { return accum; } - static damageFormula(attack) { - return attack.getDamageFormula(); + static damageFormula(attack, actor) { + const traitTotal = actor.system.traits?.[attack.roll.trait]?.value; + const instances = [ + attack.damage.parts.map(x => Roll.replaceFormulaData(x.value.getFormula(), actor)).join(' + '), + traitTotal + ].filter(x => x); + + return instances.join(traitTotal > 0 ? ' + ' : ' - '); } static formulaValue(formula, item) { @@ -61,7 +64,7 @@ export default class RegisterHandlebarsHelpers { return isNumerical ? (!result ? 0 : Number(result)) : result; } - static setVar(name, value) { + static setVar(name, value, context) { this[name] = value; } @@ -69,28 +72,4 @@ export default class RegisterHandlebarsHelpers { if (!(typeof object === 'object')) return true; return Object.keys(object).length === 0; } - - /** - * Pluralize helper that returns the appropriate localized string based on count - * @param {number} count - The number to check for plurality - * @param {string} baseKey - The base localization key (e.g., "DAGGERHEART.GENERAL.Target") - * @returns {string} The localized singular or plural string - * - * Usage: {{pluralize currentTargets.length "DAGGERHEART.GENERAL.Target"}} - * Returns: "Target" if count is exactly 1, "Targets" if count is 0, 2+, or invalid - */ - static pluralize(count, baseKey) { - const numericCount = Number(count); - const isSingular = !isNaN(numericCount) && numericCount === 1; - const key = isSingular ? `${baseKey}.single` : `${baseKey}.plural`; - return game.i18n.localize(key); - } - - static positive(a) { - return Math.abs(Number(a)); - } - - static isNullish(a) { - return a === null || a === undefined; - } } diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index a28725b1..6f4e5a26 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -119,7 +119,7 @@ export const tagifyElement = (element, baseOptions, onChange, tagifyOptions = {} spellcheck='false' tabIndex="${this.settings.a11y.focusableTags ? 0 : -1}" class="${this.settings.classNames.tag} ${tagData.class ? tagData.class : ''}" - data-tooltip="${tagData.description ? htmlToText(tagData.description) : tagData.name}" + data-tooltip="${tagData.description || tagData.name}" ${this.getAttributes(tagData)}>
@@ -177,7 +177,7 @@ Roll.replaceFormulaData = function (formula, data = {}, { missing, warn = false return nativeReplaceFormulaData(formula, data, { missing, warn }); }; -foundry.utils.setProperty(foundry, 'dice.terms.Die.MODIFIERS.sc', 'selfCorrecting'); +foundry.dice.terms.Die.MODIFIERS.sc = 'selfCorrecting'; /** * Return the configured value as result if 1 is rolled @@ -198,7 +198,7 @@ foundry.dice.terms.Die.prototype.selfCorrecting = function (modifier) { }; export const getDamageKey = damage => { - return ['none', 'minor', 'major', 'severe', 'massive', 'any'][damage]; + return ['none', 'minor', 'major', 'severe', 'any'][damage]; }; export const getDamageLabel = damage => { @@ -211,8 +211,7 @@ export const damageKeyToNumber = key => { minor: 1, major: 2, severe: 3, - massive: 4, - any: 5 + any: 4 }[key]; }; @@ -252,22 +251,15 @@ export const adjustRange = (rangeVal, decrease) => { return range[rangeKeys[newIndex]]; }; -/** - * - * @param {DhActor} actor - The actor for which all tokens will run a data update. - * @param {string} update - The data update to be applied to all tokens. - * @param {func} updateToken - Optional, specific data update for the non-prototype tokens as a function using the token data. Useful to handle wildcard images where each token has a different image but the prototype has a wildcard path. - */ -export const updateActorTokens = async (actor, update, updateToken) => { +export const updateActorTokens = async (actor, update) => { await actor.prototypeToken.update({ ...update }); /* Update the tokens in all scenes belonging to Actor */ for (let token of actor.getDependentTokens()) { const tokenActor = token.baseActor ?? token.actor; - if (token.id && tokenActor?.id === actor.id) { + if (tokenActor?.id === actor.id) { await token.update({ - ...(updateToken ? updateToken(token) : update), - _id: token.id + ...update }); } } @@ -379,15 +371,17 @@ export function getScrollTextData(resources, resource, key) { return { text, stroke, fill, direction }; } -export function createScrollText(actor, data) { - if (actor) { +export function createScrollText(actor, optionsData) { + if (actor && optionsData?.length) { actor.getActiveTokens().forEach(token => { - const { text, ...options } = data; - canvas.interface.createScrollingText(token.getCenterPoint(), data.text, { - duration: 2000, - distance: token.h, - jitter: 0, - ...options + optionsData.forEach(data => { + const { text, ...options } = data; + canvas.interface.createScrollingText(token.getCenterPoint(), data.text, { + duration: 2000, + distance: token.h, + jitter: 0, + ...options + }); }); }); } @@ -426,58 +420,3 @@ export async function createEmbeddedItemsWithEffects(actor, baseData) { export const slugify = name => { return name.toLowerCase().replaceAll(' ', '-').replaceAll('.', ''); }; - -export function shuffleArray(array) { - let currentIndex = array.length; - while (currentIndex != 0) { - let randomIndex = Math.floor(Math.random() * currentIndex); - currentIndex--; - - [array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]]; - } - - return array; -} - -export function itemIsIdentical(a, b) { - const compendiumSource = a._stats.compendiumSource === b._stats.compendiumSource; - const name = a.name === b.name; - const description = a.system.description === b.system.description; - - return compendiumSource && name & description; -} - -export async function waitForDiceSoNice(message) { - if (message && game.modules.get('dice-so-nice')?.active) { - await game.dice3d.waitFor3DAnimationByMessageID(message.id); - } -} - -export function refreshIsAllowed(allowedTypes, typeToCheck) { - switch (typeToCheck) { - case CONFIG.DH.GENERAL.refreshTypes.scene.id: - case CONFIG.DH.GENERAL.refreshTypes.session.id: - case CONFIG.DH.GENERAL.refreshTypes.longRest.id: - return allowedTypes.includes(typeToCheck); - case CONFIG.DH.GENERAL.refreshTypes.shortRest.id: - return allowedTypes.some( - x => - x === CONFIG.DH.GENERAL.refreshTypes.shortRest.id || - x === CONFIG.DH.GENERAL.refreshTypes.longRest.id - ); - default: - return false; - } -} - -export async function getCritDamageBonus(formula) { - const critRoll = new Roll(formula); - return critRoll.dice.reduce((acc, dice) => acc + dice.faces * dice.number, 0); -} - -export function htmlToText(html) { - var tempDivElement = document.createElement('div'); - tempDivElement.innerHTML = html; - - return tempDivElement.textContent || tempDivElement.innerText || ''; -} diff --git a/module/systemRegistration/handlebars.mjs b/module/systemRegistration/handlebars.mjs index 32e047fd..ff741b91 100644 --- a/module/systemRegistration/handlebars.mjs +++ b/module/systemRegistration/handlebars.mjs @@ -1,22 +1,15 @@ export const preloadHandlebarsTemplates = async function () { foundry.applications.handlebars.loadTemplates({ - 'daggerheart.inventory-item-compact': - 'systems/daggerheart/templates/sheets/global/partials/inventory-item-compact.hbs', 'daggerheart.inventory-items': 'systems/daggerheart/templates/sheets/global/partials/inventory-fieldset-items-V2.hbs', 'daggerheart.inventory-item': 'systems/daggerheart/templates/sheets/global/partials/inventory-item-V2.hbs' }); return foundry.applications.handlebars.loadTemplates([ - 'templates/generic/tab-navigation.hbs', 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs', 'systems/daggerheart/templates/sheets/global/partials/action-item.hbs', 'systems/daggerheart/templates/sheets/global/partials/domain-card-item.hbs', 'systems/daggerheart/templates/sheets/global/partials/item-resource.hbs', - 'systems/daggerheart/templates/sheets/global/partials/resource-section/resource-section.hbs', - 'systems/daggerheart/templates/sheets/global/partials/resource-section/simple.hbs', - 'systems/daggerheart/templates/sheets/global/partials/resource-section/dice-value.hbs', - 'systems/daggerheart/templates/sheets/global/partials/resource-section/die.hbs', - 'systems/daggerheart/templates/sheets/global/partials/resource-bar.hbs', + 'systems/daggerheart/templates/sheets/global/partials/resource-section.hbs', 'systems/daggerheart/templates/components/card-preview.hbs', 'systems/daggerheart/templates/levelup/parts/selectable-card-preview.hbs', 'systems/daggerheart/templates/sheets/global/partials/feature-section-item.hbs', @@ -31,17 +24,16 @@ export const preloadHandlebarsTemplates = async function () { 'systems/daggerheart/templates/actionTypes/range-target.hbs', 'systems/daggerheart/templates/actionTypes/effect.hbs', 'systems/daggerheart/templates/actionTypes/beastform.hbs', - 'systems/daggerheart/templates/actionTypes/countdown.hbs', 'systems/daggerheart/templates/settings/components/settings-item-line.hbs', 'systems/daggerheart/templates/ui/tooltip/parts/tooltipChips.hbs', 'systems/daggerheart/templates/ui/tooltip/parts/tooltipTags.hbs', 'systems/daggerheart/templates/dialogs/downtime/activities.hbs', 'systems/daggerheart/templates/dialogs/dice-roll/costSelection.hbs', + + 'systems/daggerheart/templates/ui/chat/parts/roll-part.hbs', 'systems/daggerheart/templates/ui/chat/parts/damage-part.hbs', 'systems/daggerheart/templates/ui/chat/parts/target-part.hbs', 'systems/daggerheart/templates/ui/chat/parts/button-part.hbs', - 'systems/daggerheart/templates/ui/itemBrowser/itemContainer.hbs', - 'systems/daggerheart/templates/scene/dh-config.hbs' ]); }; diff --git a/module/systemRegistration/migrations.mjs b/module/systemRegistration/migrations.mjs index b3116459..134c8714 100644 --- a/module/systemRegistration/migrations.mjs +++ b/module/systemRegistration/migrations.mjs @@ -1,10 +1,7 @@ -import { RefreshType, socketEvent } from './socket.mjs'; - export async function runMigrations() { let lastMigrationVersion = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LastMigrationVersion); - if (!lastMigrationVersion) lastMigrationVersion = game.system.version; + if (!lastMigrationVersion) lastMigrationVersion = '1.0.6'; - //#region old migrations if (foundry.utils.isNewerVersion('1.1.0', lastMigrationVersion)) { const lockedPacks = []; const compendiumActors = []; @@ -99,118 +96,5 @@ export async function runMigrations() { lastMigrationVersion = '1.1.1'; } - if (foundry.utils.isNewerVersion('1.2.0', lastMigrationVersion)) { - /* Migrate old action costs */ - const lockedPacks = []; - const compendiumItems = []; - for (let pack of game.packs) { - if (pack.locked) { - lockedPacks.push(pack.collection); - await pack.configure({ locked: false }); - } - const documents = await pack.getDocuments(); - - compendiumItems.push(...documents.filter(x => x.system?.metadata?.hasActions)); - compendiumItems.push( - ...documents - .filter(x => x.items) - .flatMap(actor => actor.items.filter(x => x.system?.metadata?.hasActions)) - ); - } - - const worldItems = game.items.filter(x => x.system.metadata.hasActions); - const worldActorItems = Array.from(game.actors).flatMap(actor => - actor.items.filter(x => x.system.metadata.hasActions) - ); - - const validCostKeys = Object.keys(CONFIG.DH.GENERAL.abilityCosts); - for (let item of [...worldItems, ...worldActorItems, ...compendiumItems]) { - for (let action of item.system.actions) { - const resourceCostIndexes = Object.keys(action.cost).reduce( - (acc, index) => (!validCostKeys.includes(action.cost[index].key) ? [...acc, Number(index)] : acc), - [] - ); - if (resourceCostIndexes.length === 0) continue; - - await action.update({ - cost: action.cost.map((cost, index) => { - const { keyIsID, ...rest } = cost; - if (!resourceCostIndexes.includes(index)) return { ...rest }; - - return { - ...rest, - key: 'resource', - itemId: cost.key - }; - }) - }); - } - } - - for (let packId of lockedPacks) { - const pack = game.packs.get(packId); - await pack.configure({ locked: true }); - } - - /* Migrate old countdown structure */ - const countdownSettings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns); - const getCountdowns = (data, type) => { - return Object.keys(data.countdowns).reduce((acc, key) => { - const countdown = data.countdowns[key]; - acc[key] = { - ...countdown, - type: type, - ownership: Object.keys(countdown.ownership.players).reduce((acc, key) => { - acc[key] = - countdown.ownership.players[key].type === 1 ? 2 : countdown.ownership.players[key].type; - return acc; - }, {}), - progress: { - ...countdown.progress, - type: countdown.progress.type.value - } - }; - - return acc; - }, {}); - }; - - await countdownSettings.updateSource({ - countdowns: { - ...getCountdowns(countdownSettings.narrative, CONFIG.DH.GENERAL.countdownBaseTypes.narrative.id), - ...getCountdowns(countdownSettings.encounter, CONFIG.DH.GENERAL.countdownBaseTypes.encounter.id) - } - }); - await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns, countdownSettings); - - game.socket.emit(`system.${CONFIG.DH.id}`, { - action: socketEvent.Refresh, - data: { refreshType: RefreshType.Countdown } - }); - Hooks.callAll(socketEvent.Refresh, { refreshType: RefreshType.Countdown }); - - lastMigrationVersion = '1.2.0'; - } - - if (foundry.utils.isNewerVersion('1.2.7', lastMigrationVersion)) { - const tagTeam = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll); - const initatorMissing = tagTeam.initiator && !game.actors.some(actor => actor.id === tagTeam.initiator); - const missingMembers = Object.keys(tagTeam.members).reduce((acc, id) => { - if (!game.actors.some(actor => actor.id === id)) { - acc[`-=${id}`] = null; - } - return acc; - }, {}); - - await tagTeam.updateSource({ - initiator: initatorMissing ? null : tagTeam.initiator, - members: missingMembers - }); - await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll, tagTeam); - - lastMigrationVersion = '1.2.7'; - } - //#endregion - await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LastMigrationVersion, lastMigrationVersion); } diff --git a/module/systemRegistration/settings.mjs b/module/systemRegistration/settings.mjs index 053325a8..4828ebb0 100644 --- a/module/systemRegistration/settings.mjs +++ b/module/systemRegistration/settings.mjs @@ -7,22 +7,11 @@ import { DhHomebrewSettings, DhVariantRuleSettings } from '../applications/settings/_module.mjs'; -import { DhTagTeamRoll } from '../data/_module.mjs'; export const registerDHSettings = () => { registerMenuSettings(); registerMenus(); registerNonConfigSettings(); - - game.settings.register(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.SpotlightRequestQueue, { - name: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.SpotlightRequestQueue.name'), - label: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.SpotlightRequestQueue.label'), - hint: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.SpotlightRequestQueue.hint'), - scope: 'world', - config: true, - type: Boolean, - onChange: () => ui.combat.render() - }); }; const registerMenuSettings = () => { @@ -46,9 +35,6 @@ const registerMenuSettings = () => { if (value.maxFear) { if (ui.resources) ui.resources.render({ force: true }); } - - // Some homebrew settings may change sheets in various ways, so trigger a re-render - resetActors(); } }); @@ -86,7 +72,7 @@ const registerMenus = () => { }); game.settings.registerMenu(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.appearance, { - name: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.appearance.label'), + name: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.appearance.title'), label: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.appearance.label'), hint: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.appearance.hint'), icon: 'fa-solid fa-palette', @@ -136,32 +122,4 @@ const registerNonConfigSettings = () => { config: false, type: DhCountdowns }); - - game.settings.register(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll, { - scope: 'world', - config: false, - type: DhTagTeamRoll - }); }; - -/** - * Triggers a reset and non-forced re-render on all given actors (if given) - * or all world actors and actors in all scenes to show immediate results for a changed setting. - */ -function resetActors(actors) { - actors ??= [ - game.actors.contents, - game.scenes.contents.flatMap(s => s.tokens.contents).flatMap(t => t.actor ?? []) - ].flat(); - actors = new Set(actors); - for (const actor of actors) { - for (const app of Object.values(actor.apps)) { - for (const element of app.element?.querySelectorAll('prose-mirror.active')) { - element.open = false; // This triggers a save - } - } - - actor.reset(); - actor.render(); - } -} diff --git a/module/systemRegistration/socket.mjs b/module/systemRegistration/socket.mjs index 046f1b68..b47fee85 100644 --- a/module/systemRegistration/socket.mjs +++ b/module/systemRegistration/socket.mjs @@ -1,5 +1,4 @@ import DamageReductionDialog from '../applications/dialogs/damageReductionDialog.mjs'; -import Party from '../applications/sheets/actors/party.mjs'; export function handleSocketEvent({ action = null, data = {} } = {}) { switch (action) { @@ -12,32 +11,24 @@ export function handleSocketEvent({ action = null, data = {} } = {}) { case socketEvent.Refresh: Hooks.call(socketEvent.Refresh, data); break; - case socketEvent.DowntimeTrigger: - Party.downtimeMoveQuery(data); - break; } } export const socketEvent = { GMUpdate: 'DhGMUpdate', Refresh: 'DhRefresh', - DhpFearUpdate: 'DhFearUpdate', - DowntimeTrigger: 'DowntimeTrigger' + DhpFearUpdate: 'DhFearUpdate' }; export const GMUpdateEvent = { UpdateDocument: 'DhGMUpdateDocument', - UpdateEffect: 'DhGMUpdateEffect', UpdateSetting: 'DhGMUpdateSetting', UpdateFear: 'DhGMUpdateFear', - UpdateCountdowns: 'DhGMUpdateCountdowns', UpdateSaveMessage: 'DhGMUpdateSaveMessage' }; export const RefreshType = { - Countdown: 'DhCoundownRefresh', - TagTeamRoll: 'DhTagTeamRollRefresh', - EffectsDisplay: 'DhEffectsDisplayRefresh' + Countdown: 'DhCoundownRefresh' }; export const registerSocketHooks = () => { @@ -46,11 +37,9 @@ export const registerSocketHooks = () => { const document = data.uuid ? await fromUuid(data.uuid) : null; switch (data.action) { case GMUpdateEvent.UpdateDocument: - if (document && data.update) await document.update(data.update); - break; - case GMUpdateEvent.UpdateEffect: - if (document && data.update) - await game.system.api.fields.ActionFields.EffectsField.applyEffects.call(document, data.update); + if (document && data.update) { + await document.update(data.update); + } break; case GMUpdateEvent.UpdateSetting: await game.settings.set(CONFIG.DH.id, data.uuid, data.update); @@ -68,18 +57,11 @@ export const registerSocketHooks = () => { ) ); break; - case GMUpdateEvent.UpdateCountdowns: - await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns, data.update); - Hooks.callAll(socketEvent.Refresh, { refreshType: RefreshType.Countdown }); - break; case GMUpdateEvent.UpdateSaveMessage: - const message = game.messages.get(data.update.message); - if (!message) return; - game.system.api.fields.ActionFields.SaveField.updateSaveMessage( - data.update.result, - message, - data.update.token - ); + const action = await fromUuid(data.update.action), + message = game.messages.get(data.update.message); + if (!action || !message) return; + action.updateSaveMessage(data.update.result, message, data.update.token); break; } @@ -96,18 +78,17 @@ export const registerSocketHooks = () => { export const registerUserQueries = () => { CONFIG.queries.armorSlot = DamageReductionDialog.armorSlotQuery; - CONFIG.queries.reactionRoll = game.system.api.fields.ActionFields.SaveField.rollSaveQuery; + CONFIG.queries.reactionRoll = game.system.api.models.actions.actionsTypes.base.rollSaveQuery; }; -export const emitAsGM = async (eventName, callback, update, uuid = null, refresh = null) => { +export const emitAsGM = async (eventName, callback, update, uuid = null) => { if (!game.user.isGM) { return await game.socket.emit(`system.${CONFIG.DH.id}`, { action: socketEvent.GMUpdate, data: { action: eventName, uuid, - update, - refresh + update } }); } else return callback(update); diff --git a/package.json b/package.json index 183d2de2..dbece0c7 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "readline": "^1.3.0", "pushLDBtoYML": "node ./tools/pushLDBtoYML.mjs", "pullYMLtoLDB": "node ./tools/pullYMLtoLDB.mjs", - "pullYMLtoLDBBuild": "node ./tools/pullYMLtoLDB.mjs --build", + "pullYMLtoLDBBuild": "node ./tools/pullYMLtoLDBBuild.mjs", "createSymlink": "node ./tools/create-symlink.mjs", "setup:dev": "node ./tools/dev-setup.mjs" }, diff --git a/pull_request_template.md b/pull_request_template.md index 263eb5b8..c1b8cbfa 100644 --- a/pull_request_template.md +++ b/pull_request_template.md @@ -1,11 +1,10 @@ --- name: Pull Request about: Create a new pull request -title: '[PR] ' +title: "[PR] " labels: pr assignees: '' --- - Is this a community PR? Please go to preview tab and click [here](?expand=1&template=community_pull_request_template.md). If not, delete this line. ## Description diff --git a/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json b/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json index e2b3a444..e226f013 100644 --- a/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json +++ b/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json @@ -40,8 +40,7 @@ "experiences": { "pe7OIoJsqlpMXEvs": { "name": "Tremor Sense", - "value": 2, - "description": "" + "value": 2 } }, "bonuses": { @@ -144,15 +143,20 @@ "difficulty": null, "damageMod": "none" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 75, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010222829, + "modifiedTime": 1755259462470, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -260,42 +264,9 @@ "_id": "MFmGN6Tbf5GYxrQ9", "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to three times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Burrower can be spotlighted up to three times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "3lGGgkxnzgUwHGIp": { - "type": "effect", - "_id": "3lGGgkxnzgUwHGIp", - "systemPath": "actions", - "description": "", - "chatDisplay": false, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "2", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, "originId": null @@ -309,7 +280,13 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!actors.items!89yAh30vaNQOALlz.MFmGN6Tbf5GYxrQ9" }, @@ -319,14 +296,14 @@ "_id": "ctXYwil2D1zfsekT", "img": "icons/magic/earth/barrier-stone-explosion-red.webp", "system": { - "description": "

Mark a Stress to have the @Lookup[@name] burst out of the ground. All creatures within Very Close range must succeed on an Agility Reaction Roll or be knocked over, making them Vulnerable until they next act.

@Template[type:emanation|range:vc]

", + "description": "

Mark a Stress to have the Burrower burst out of the ground. All creatures within Very Close range must succeed on an Agility Reaction Roll or be knocked over, making them Vulnerable until they next act.

@Template[type:emanation|range:vc]

", "resource": null, "actions": { "4ppSeiTdbqnMzWAs": { "type": "attack", "_id": "4ppSeiTdbqnMzWAs", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to have the Burrower burst out of the ground. All creatures within Very Close range must succeed on an Agility Reaction Roll or be knocked over, making them Vulnerable until they next act.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -334,6 +311,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -383,8 +361,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -421,7 +398,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!actors.items.effects!89yAh30vaNQOALlz.ctXYwil2D1zfsekT.9PsnogEPsp1OOK64" } @@ -434,7 +417,14 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754143640417 }, "_key": "!actors.items!89yAh30vaNQOALlz.ctXYwil2D1zfsekT" }, @@ -444,14 +434,14 @@ "_id": "UpFsnlbZkyvM2Ftv", "img": "icons/magic/acid/projectile-smoke-glowing.webp", "system": { - "description": "

Make an attack against all targets in front of the @Lookup[@name] within Close range. Targets the @Lookup[@name] succeeds against take 2d6 physical damage and must mark an Armor Slot without receiving its benefits (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP and you gain a Fear.

@Template[type:inFront|range:c]

", + "description": "

Make an attack against all targets in front of the Burrower within Close range. Targets the Burrower succeeds against take 2d6 physical damage and must mark an Armor Slot without receiving its benefi ts (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP and you gain a Fear.

@Template[type:inFront|range:c]

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

Make an attack against all targets in front of the Burrower within Close range. Targets the Burrower succeeds against take 2d6 physical damage and must mark an Armor Slot without receiving its benefi ts (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP and you gain a Fear.

@Template[type:inFront|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -549,8 +539,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -561,7 +550,14 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754143653876 }, "_key": "!actors.items!89yAh30vaNQOALlz.UpFsnlbZkyvM2Ftv" }, @@ -571,14 +567,14 @@ "_id": "aNIVT5LKhwLyjKpI", "img": "icons/magic/acid/dissolve-drip-droplet-smoke.webp", "system": { - "description": "

When the @Lookup[@name] takes Severe damage, all creatures within Close range are bathed in their acidic blood, taking 1d10 physical damage. This splash covers the ground within Very Close range with blood, and all creatures other than the @Lookup[@name] who move through it take 1d6 physical damage.

@Template[type:emanation|range:c]

", + "description": "

When the Burrower takes Severe damage, all creatures within Close range are bathed in their acidic blood, taking 1d10 physical damage. This splash covers the ground within Very Close range with blood, and all creatures other than the Burrower who move through it take 1d6 physical damage.

@Template[type:emanation|range:c]

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

When the Burrower takes Severe damage, all creatures within Close range are bathed in their acidic blood, taking 1d10 physical damage. This splash covers the ground within Very Close range with blood, and all creatures other than the Burrower who move through it take 1d6 physical damage.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -632,7 +628,7 @@ "type": "damage", "_id": "xpcp1ECTWF20kxve", "systemPath": "actions", - "description": "

This splash covers the ground within Very Close range with blood, and all creatures other than the @Lookup[@name] who move through it take 1d6 physical damage.

", + "description": "

This splash covers the ground within Very Close range with blood, and all creatures other than the Burrower who move through it take 1d6 physical damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -685,8 +681,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -697,7 +692,14 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754143695127 }, "_key": "!actors.items!89yAh30vaNQOALlz.aNIVT5LKhwLyjKpI" } diff --git a/src/packs/adversaries/adversary_Adult_Flickerfly_G7jiltRjgvVhZewm.json b/src/packs/adversaries/adversary_Adult_Flickerfly_G7jiltRjgvVhZewm.json index 266cba24..f2eeb23b 100644 --- a/src/packs/adversaries/adversary_Adult_Flickerfly_G7jiltRjgvVhZewm.json +++ b/src/packs/adversaries/adversary_Adult_Flickerfly_G7jiltRjgvVhZewm.json @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 91, - "artist": "" - }, - "size": "gargantuan" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784219, + "modifiedTime": 1755259462665, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "G7jiltRjgvVhZewm", "sort": 3400000, "ownership": { @@ -221,42 +226,9 @@ "name": "Relentless (4)", "type": "feature", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to fourΒ times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Flickerfly can be spotlighted up to fourΒ times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "poUhJdSkhjiVL2Vp": { - "type": "effect", - "_id": "poUhJdSkhjiVL2Vp", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "3", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "originId": null }, @@ -264,14 +236,22 @@ "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", "effects": [], "folder": null, - "sort": 100000, + "sort": 0, "ownership": { "default": 0, "MQSznptE5yLT7kj8": 3 }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754121940551, + "modifiedTime": 1754121965558, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!G7jiltRjgvVhZewm.fFOhhMl4SDUnYNNO" }, @@ -279,16 +259,16 @@ "name": "Never Misses", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes an attack, the target’s Evasion is halved against the attack.

", + "description": "

When the Flickerfly makes an attack, the target’s Evasion is halved against the attack.

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

When the Flickerfly makes an attack, the target’s Evasion is halved against the attack.

", "chatDisplay": true, - "actionType": "passive", + "actionType": "action", "cost": [], "uses": { "value": null, @@ -355,20 +335,36 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754122100514, + "modifiedTime": 1754122126474, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!G7jiltRjgvVhZewm.PrwC6RpsP12fPUwy.ia0NUIOxE3RHb45P" } ], "folder": null, - "sort": 200000, + "sort": 0, "ownership": { "default": 0, "MQSznptE5yLT7kj8": 3 }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754121968284, + "modifiedTime": 1754122883213, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!G7jiltRjgvVhZewm.PrwC6RpsP12fPUwy" }, @@ -376,14 +372,14 @@ "name": "Whirlwind", "type": "feature", "system": { - "description": "

Spend a Fear to whirl, making an attack against all targets within Very Close range. Targets the @Lookup[@name] succeeds against take 3d8 direct physical damage.

@Template[type:emanation|range:vc]

", + "description": "

Spend a Fear to whirl, making an attack against all targets within Very Close range. Targets the Flickerfly succeeds against take 3d8 direct physical damage.

@Template[type:emanation|range:vc]

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

Spend a Fear to whirl, making an attack against all targets within Very Close range. Targets the Flickerfly succeeds against take 3d8 direct physical damage.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -391,6 +387,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -428,8 +425,7 @@ } } ], - "includeBase": false, - "direct": true + "includeBase": false }, "target": { "type": "any", @@ -462,21 +458,28 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "BuL6ndgaiJtjaM2T", "img": "icons/skills/melee/strike-slashes-orange.webp", "effects": [], "folder": null, - "sort": 300000, + "sort": 0, "ownership": { "default": 0, "MQSznptE5yLT7kj8": 3 }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754122005921, + "modifiedTime": 1754122771556, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!G7jiltRjgvVhZewm.BuL6ndgaiJtjaM2T" }, @@ -484,14 +487,14 @@ "name": "Mind Dance", "type": "feature", "system": { - "description": "

Mark a Stress to create a magically dazzling display that grapples the minds of nearby foes. All targets within Close range must make an Instinct Reaction Roll. For each target who failed, you gain a Fear and the @Lookup[@name] learns one of the target’s fears.

@Template[type:emanation|range:c]

", + "description": "

Mark a Stress to create a magically dazzling display that grapples the minds of nearby foes. All targets within Close range must make an Instinct Reaction Roll. For each target who failed, you gain a Fear and the Flickerfl y learns one of the target’s fears.

@Template[type:emanation|range:c]

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

Mark a Stress to create a magically dazzling display that grapples the minds of nearby foes. All targets within Close range must make an Instinct Reaction Roll. For each target who failed, you gain a Fear and the Flickerfl y learns one of the target’s fears.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -499,6 +502,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -542,21 +546,28 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "bOTsfXr9yNIGkIzK", "img": "icons/magic/light/explosion-glow-spiral-yellow.webp", "effects": [], "folder": null, - "sort": 400000, + "sort": 0, "ownership": { "default": 0, "MQSznptE5yLT7kj8": 3 }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754122013435, + "modifiedTime": 1754122660497, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!G7jiltRjgvVhZewm.bOTsfXr9yNIGkIzK" }, @@ -564,14 +575,14 @@ "name": "Hallucinatory Breath", "type": "feature", "system": { - "description": "

Countdown (Loop 1d6). When the @Lookup[@name] takes damage for the first time, activate the countdown. When it triggers, the @Lookup[@name] breathes hallucinatory gas on all targets in front of them up to Far range. Targets must make an Instinct Reaction Roll or be tormented by fearful hallucinations. Targets whose fears are known to the @Lookup[@name] have disadvantage on this roll. Targets who fail lose 2 Hope and take 3d8+3 direct magic damage.

@Template[type:inFront|range:f]

", + "description": "

Countdown (Loop 1d6). When the Flickerfly takes damage for the first time, activate the countdown. When it triggers, the Flickerfly breathes hallucinatory gas on all targets in front of them up to Far range. Targets must make an Instinct Reaction Roll or be tormented by fearful hallucinations. Targets whose fears are known to the Flickerfl y have disadvantage on this roll. Targets who fail lose 2 Hope and take 3d8+3 direct magic damage.

@Template[type:inFront|range:f]

", "resource": null, "actions": { "YOyKyKGTUEWkMmJe": { "type": "attack", "_id": "YOyKyKGTUEWkMmJe", "systemPath": "actions", - "description": "

The @Lookup[@name] breathes hallucinatory gas on all targets in front of them up to Far range. Targets must make an Instinct Reaction Roll or be tormented by fearful hallucinations. Targets whose fears are known to the @Lookup[@name] have disadvantage on this roll. Targets who fail lose 2 Hope and take 3d8+3 direct magic damage.

@Template[type:inFront|range:f]

", + "description": "

Countdown (Loop 1d6). When the Flickerfly takes damage for the first time, activate the countdown. When it triggers, the Flickerfly breathes hallucinatory gas on all targets in front of them up to Far range. Targets must make an Instinct Reaction Roll or be tormented by fearful hallucinations. Targets whose fears are known to the Flickerfl y have disadvantage on this roll. Targets who fail lose 2 Hope and take 3d8+3 direct magic damage.

@Template[type:inFront|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -664,61 +675,31 @@ "name": "Roll Save", "img": "icons/magic/air/fog-gas-smoke-purple.webp", "range": "far" - }, - "lBhmLc33pcXzJHT3": { - "type": "countdown", - "_id": "lBhmLc33pcXzJHT3", - "systemPath": "actions", - "description": "

Countdown (Loop 1d6). When the @Lookup[@name] takes damage for the first time, activate the countdown.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Hallucinatory Breath", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/air/fog-gas-smoke-purple.webp", - "progress": { - "looping": "looping", - "type": "actionRoll", - "start": 1, - "startFormula": "1d6", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/air/fog-gas-smoke-purple.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "49cIxZRFiAM6jDva", "img": "icons/magic/air/fog-gas-smoke-purple.webp", "effects": [], "folder": null, - "sort": 500000, + "sort": 0, "ownership": { "default": 0, "MQSznptE5yLT7kj8": 3 }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754122030308, + "modifiedTime": 1754122681022, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!G7jiltRjgvVhZewm.49cIxZRFiAM6jDva" }, @@ -726,21 +707,22 @@ "name": "Uncanny Reflexes", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes damage from an attack within Close range, you can mark a Stress to take half damage.

", + "description": "

When the Flickerfly takes damage from an attack within Close range, you can mark a Stress to take half damage.

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

When the Flickerfly takes damage from an attack within Close range, you can mark a Stress to take half damage.

", "chatDisplay": true, - "actionType": "reaction", + "actionType": "action", "cost": [ { "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -760,48 +742,30 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "KLdLRKoJHBJlHwYe", "img": "icons/skills/movement/arrow-upward-yellow.webp", "effects": [], "folder": null, - "sort": 600000, + "sort": 0, "ownership": { "default": 0, "MQSznptE5yLT7kj8": 3 }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754122789186, + "modifiedTime": 1754122857220, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!G7jiltRjgvVhZewm.KLdLRKoJHBJlHwYe" - }, - { - "name": "Deadly Flight", - "type": "feature", - "system": { - "description": "

While flying the @Lookup[@name] can move up to Far range instead of Close range before taking an action.

", - "resource": null, - "actions": {}, - "originItemType": null, - "multiclassOrigin": false - }, - "_id": "WFRpSDZvqF0Upjoy", - "img": "icons/skills/movement/feet-winged-boots-blue.webp", - "effects": [], - "folder": null, - "sort": 700000, - "ownership": { - "default": 0, - "fBcTgyTzoARBvohY": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!actors.items!G7jiltRjgvVhZewm.WFRpSDZvqF0Upjoy" } ], "effects": [], diff --git a/src/packs/adversaries/adversary_Apprentice_Assassin_vNIbYQ4YSzNf0WPE.json b/src/packs/adversaries/adversary_Apprentice_Assassin_vNIbYQ4YSzNf0WPE.json index 3f31ff76..953e7deb 100644 --- a/src/packs/adversaries/adversary_Apprentice_Assassin_vNIbYQ4YSzNf0WPE.json +++ b/src/packs/adversaries/adversary_Apprentice_Assassin_vNIbYQ4YSzNf0WPE.json @@ -105,15 +105,20 @@ "img": "icons/weapons/daggers/dagger-bone-black.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 84, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784220, + "modifiedTime": 1755259462932, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "vNIbYQ4YSzNf0WPE", "sort": 3500000, "ownership": { @@ -220,12 +225,11 @@ "name": "Minion (6)", "type": "feature", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 6 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Assassin is defeated when they take any damage. For every 6 damage a PC deals to the Assassin, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "passive" + "originId": null }, "_id": "2yREz60uPY80tAa4", "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", @@ -238,7 +242,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754070516177, + "modifiedTime": 1754070536166, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!vNIbYQ4YSzNf0WPE.2yREz60uPY80tAa4" }, @@ -246,14 +258,14 @@ "name": "Group Attack", "type": "feature", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 4 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Apprentice Assassins within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 4 physical damage each. Combine this damage.

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

Spend a Fear to choose a target and spotlight all Apprentice Assassins within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 4 physical damage each. Combine this damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -261,6 +273,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -280,8 +293,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "4wT7CmM1DJEPcraF", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", @@ -294,7 +306,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754070539112, + "modifiedTime": 1754142025997, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!vNIbYQ4YSzNf0WPE.4wT7CmM1DJEPcraF" } diff --git a/src/packs/adversaries/adversary_Arch_Necromancer_WPEOIGfclNJxWb87.json b/src/packs/adversaries/adversary_Arch_Necromancer_WPEOIGfclNJxWb87.json index 4fc58990..81287859 100644 --- a/src/packs/adversaries/adversary_Arch_Necromancer_WPEOIGfclNJxWb87.json +++ b/src/packs/adversaries/adversary_Arch_Necromancer_WPEOIGfclNJxWb87.json @@ -117,15 +117,20 @@ "img": "icons/magic/unholy/beam-ringed-impact-purple.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 97, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784221, + "modifiedTime": 1755259462752, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "WPEOIGfclNJxWb87", "sort": 1200000, "ownership": { @@ -239,7 +244,7 @@ "type": "attack", "_id": "wi2DDvBhlg6sxQoc", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to spotlight 1d4 allies. Attacks they make while spotlighted in this way deal half damage, or full damage if you spend a Fear.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -247,6 +252,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -290,8 +296,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "jNmMyq5QI2HNgffy", "img": "icons/magic/death/skull-weapon-staff-glow-pink.webp", @@ -304,7 +309,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754132259208, + "modifiedTime": 1754132328745, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!WPEOIGfclNJxWb87.jNmMyq5QI2HNgffy" }, @@ -319,7 +332,7 @@ "type": "attack", "_id": "vaXLESD4sRkQ3Ahn", "systemPath": "actions", - "description": "", + "description": "

Mark 2 Stress to cause all targets within Far range to make a Strength Reaction Roll. Targets who fail take 2d20+12 magic damage and you gain a Fear. Targets who succeed take half damage. A target who marks 2 or more HP must also mark 2 Stress and becomes Vulnerable until they roll with Hope.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -327,6 +340,7 @@ "scalable": false, "key": "stress", "value": 2, + "keyIsID": false, "step": null } ], @@ -469,8 +483,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "4EECsXzHFG0RoIg0", "img": "icons/magic/unholy/projectile-missile-green.webp", @@ -509,7 +522,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754132456667, + "modifiedTime": 1754132472474, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!WPEOIGfclNJxWb87.4EECsXzHFG0RoIg0.KGdf2eqcXkdigg0u" } @@ -522,7 +543,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754132335603, + "modifiedTime": 1754132528280, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!WPEOIGfclNJxWb87.4EECsXzHFG0RoIg0" }, @@ -537,7 +566,7 @@ "type": "effect", "_id": "gZg3AkzCYUTExjE6", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to summon a @UUID[Compendium.daggerheart.adversaries.Actor.YhJrP7rTBiRdX5Fp]{Zombie Legion}, which appears at Close range and immediately takes the spotlight.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -545,6 +574,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -564,8 +594,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "XxXOrFovbCz9zFxR", "img": "icons/magic/death/undead-zombie-grave-green.webp", @@ -578,7 +607,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754132531238, + "modifiedTime": 1754133089602, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!WPEOIGfclNJxWb87.XxXOrFovbCz9zFxR" }, @@ -586,14 +623,14 @@ "name": "Not Today, My Dears", "type": "feature", "system": { - "description": "

When the @Lookup[@name] has marked 7 or more of their HP, you can spend a Fear to have them teleport away to a safe location to recover. A PC who succeeds on an Instinct Roll can trace the teleportation magic to their destination.

", + "description": "

When the Necromancer has marked 7 or more of their HP, you can spend a Fear to have them teleport away to a safe location to recover. A PC who succeeds on an Instinct Roll can trace the teleportation magic to their destination.

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

When the Necromancer has marked 7 or more of their HP, you can spend a Fear to have them teleport away to a safe location to recover. A PC who succeeds on an Instinct Roll can trace the teleportation magic to their destination.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -601,6 +638,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -644,8 +682,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "k4MSykLRoW3qp7Lk", "img": "icons/magic/death/skull-horned-worn-fire-blue.webp", @@ -658,7 +695,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754132587562, + "modifiedTime": 1754132653034, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!WPEOIGfclNJxWb87.k4MSykLRoW3qp7Lk" }, @@ -666,14 +711,36 @@ "name": "Your Life Is Mine", "type": "feature", "system": { - "description": "

Countdown (Loop 2d6). When the @Lookup[@name] has marked 6 or more of their HP, activate the countdown. When it triggers, deal 2d10+6 direct magic damage to a target within Close range. The @Lookup[@name] then clears a number of Stress or HP equal to the number of HP marked by the target from this attack.

", + "description": "

Countdown (Loop 2d6). When the Necromancer has marked 6 or more of their HP, activate the countdown. When it triggers, deal 2d10+6 direct magic damage to a target within Close range. The Necromancer then clears a number of Stress or HP equal to the number of HP marked by the target from this attack.

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

Countdown (Loop 2d6). When the Necromancer has marked 6 or more of their HP, activate the countdown.

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdown", + "img": "icons/magic/unholy/hand-claw-fire-green.webp", + "range": "" + }, "YzepYov9vEMcBPU1": { "type": "damage", "_id": "YzepYov9vEMcBPU1", "systemPath": "actions", - "description": "

Deal 2d10+6 direct magic damage to a target within Close range. The @Lookup[@name] then clears a number of Stress or HP equal to the number of HP marked by the target from this attack.

", + "description": "

When the countdown triggers, deal 2d10+6 direct magic damage to a target within Close range. The Necromancer then clears a number of Stress or HP equal to the number of HP marked by the target from this attack.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -721,48 +788,10 @@ "name": "Damage", "img": "icons/magic/unholy/hand-claw-fire-green.webp", "range": "close" - }, - "LXhwkNCDFeUric8D": { - "type": "countdown", - "_id": "LXhwkNCDFeUric8D", - "systemPath": "actions", - "description": "

Countdown (Loop 2d6). When the @Lookup[@name] has marked 6 or more of their HP, activate the countdown.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Your Life Is Mine", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/unholy/hand-claw-fire-green.webp", - "progress": { - "looping": "looping", - "type": "actionRoll", - "start": 1, - "startFormula": "2d6", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/unholy/hand-claw-fire-green.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "FKcuCo0v2U7fVkqq", "img": "icons/magic/unholy/hand-claw-fire-green.webp", @@ -775,7 +804,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754132668836, + "modifiedTime": 1754135206850, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!WPEOIGfclNJxWb87.FKcuCo0v2U7fVkqq" } diff --git a/src/packs/adversaries/adversary_Archer_Guard_JRhrrEg5UroURiAD.json b/src/packs/adversaries/adversary_Archer_Guard_JRhrrEg5UroURiAD.json index 5a13b3d9..e2793ca3 100644 --- a/src/packs/adversaries/adversary_Archer_Guard_JRhrrEg5UroURiAD.json +++ b/src/packs/adversaries/adversary_Archer_Guard_JRhrrEg5UroURiAD.json @@ -39,8 +39,7 @@ "experiences": { "Gtr9I2G39GcXT2Si": { "name": "Local Knowledge", - "value": 3, - "description": "" + "value": 3 } }, "bonuses": { @@ -112,15 +111,20 @@ "img": "icons/weapons/bows/longbow-recurve-leather-brown.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 77, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784222, + "modifiedTime": 1755259462476, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "JRhrrEg5UroURiAD", "sort": 2900000, "ownership": { @@ -236,7 +240,7 @@ "type": "attack", "_id": "84rwldOFvTPrrHJJ", "systemPath": "actions", - "description": "", + "description": "

Make an attack against a target within Far range. On a success, mark a Stress to deal 1d12+3 physical damage. If the target marks HP from this attack, they have disadvantage on Agility Rolls until they clear at least 1 HP.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -313,8 +317,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -356,7 +359,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012705802, + "modifiedTime": 1754012740752, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!JRhrrEg5UroURiAD.DMtd1EXQPlPaoRmV.wGuxOLokMqdxVSOo" } @@ -369,7 +380,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012548341, + "modifiedTime": 1754143709108, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!JRhrrEg5UroURiAD.DMtd1EXQPlPaoRmV" } diff --git a/src/packs/adversaries/adversary_Archer_Squadron_0ts6CGd93lLqGZI5.json b/src/packs/adversaries/adversary_Archer_Squadron_0ts6CGd93lLqGZI5.json index 55229040..643610d3 100644 --- a/src/packs/adversaries/adversary_Archer_Squadron_0ts6CGd93lLqGZI5.json +++ b/src/packs/adversaries/adversary_Archer_Squadron_0ts6CGd93lLqGZI5.json @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 84, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784223, + "modifiedTime": 1755259462516, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "0ts6CGd93lLqGZI5", "sort": 200000, "ownership": { @@ -221,7 +226,7 @@ "name": "Horde (1d6+3)", "type": "feature", "system": { - "description": "

When the @Lookup[@name] has marked half or more of their HP, their standard attack deals 1d6+3 physical damage instead.

", + "description": "

When the Squadron has marked half or more of their HP, their standard attack deals 1d6+3 physical damage instead.

", "resource": null, "actions": {}, "originItemType": null, @@ -238,7 +243,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754070637872, + "modifiedTime": 1754070657545, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!0ts6CGd93lLqGZI5.uPwtE9d63PHtQitG" }, @@ -246,14 +259,14 @@ "name": "Focused Volley", "type": "feature", "system": { - "description": "

Spend a Fear to target a point within Far range. Make an attack with advantage against all targets within Close range of that point. Targets the @Lookup[@name] succeeds against take 1d10+4 physical damage.

@Template[type:circle|range:c]

", + "description": "

Spend a Fear to target a point within Far range. Make an attack with advantage against all targets within Close range of that point. Targets the Squadron succeeds against take 1d10+4 physical damage.

@Template[type:circle|range:c]

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

Spend a Fear to target a point within Far range. Make an attack with advantage against all targets within Close range of that point. Targets the Squadron succeeds against take 1d10+4 physical damage.

@Template[type:circle|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -261,6 +274,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -329,8 +343,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "Wuf5y9tJ88BwzLv2", "img": "icons/skills/ranged/arrows-flying-triple-brown.webp", @@ -343,7 +356,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754070661520, + "modifiedTime": 1754142041107, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!0ts6CGd93lLqGZI5.Wuf5y9tJ88BwzLv2" }, @@ -358,7 +379,7 @@ "type": "attack", "_id": "mH6mmJIMM1fwzePt", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to target a point within Far range. Until the next roll with Fear, a creature who moves within Close range of that point must make an Agility Reaction Roll. On a failure, they take 2d6+3 physical damage. On a success, they take half damage.

@Template[type:circle|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -427,8 +448,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "ayGHTtyjSuIR4BrV", "img": "icons/skills/ranged/arrows-flying-salvo-blue.webp", @@ -441,7 +461,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754070760732, + "modifiedTime": 1754142058270, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!0ts6CGd93lLqGZI5.ayGHTtyjSuIR4BrV" } @@ -474,7 +502,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754070598535, + "modifiedTime": 1754070598535, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.effects!0ts6CGd93lLqGZI5.bq8hTzQoCXmA3xad" } diff --git a/src/packs/adversaries/adversary_Assassin_Poisoner_h5RuhzGL17dW5FBT.json b/src/packs/adversaries/adversary_Assassin_Poisoner_h5RuhzGL17dW5FBT.json index 6594cbbe..7cffa6de 100644 --- a/src/packs/adversaries/adversary_Assassin_Poisoner_h5RuhzGL17dW5FBT.json +++ b/src/packs/adversaries/adversary_Assassin_Poisoner_h5RuhzGL17dW5FBT.json @@ -112,15 +112,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 84, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784224, + "modifiedTime": 1755259462844, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "h5RuhzGL17dW5FBT", "sort": 2700000, "ownership": { @@ -227,14 +232,14 @@ "name": "Grindletooth Venom", "type": "feature", "system": { - "description": "

Targets who mark HP from the @Lookup[@name]’s attacks are Vulnerable until they clear a HP.

", + "description": "

Targets who mark HP from the Assassin’s attacks are Vulnerable until they clear a HP.

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

Targets who mark HP from the Assassin’s attacks are Vulnerable until they clear a HP.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -298,7 +303,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754073115997, + "modifiedTime": 1754073138695, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!h5RuhzGL17dW5FBT.Fz2lnUEeBxsDpx0G.2iBVUGHtGW3I9VIj" } @@ -311,7 +324,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754073069218, + "modifiedTime": 1754142079163, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!h5RuhzGL17dW5FBT.Fz2lnUEeBxsDpx0G" }, @@ -319,7 +340,7 @@ "name": "Assassin Poisoner", "type": "feature", "system": { - "description": "

The @Lookup[@name] has advantage on attacks if they are Hidden.

", + "description": "

The Assassin has advantage on attacks if they are Hidden.

", "resource": null, "actions": {}, "originItemType": null, @@ -367,7 +388,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754073175871, + "modifiedTime": 1754073220488, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!h5RuhzGL17dW5FBT.of6g4piugKzTI4dv.qT5nh7OcQ6aGdiWS" } @@ -380,7 +409,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754073144490, + "modifiedTime": 1754073171491, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!h5RuhzGL17dW5FBT.of6g4piugKzTI4dv" }, @@ -395,7 +432,7 @@ "type": "effect", "_id": "sp7RfJRQJsEUm09m", "systemPath": "actions", - "description": "", + "description": "

Drop a smoke bomb that fills the air within Close range with smoke, Dizzying all targets in this area. Dizzied targets have disadvantage on their next action roll, then clear the condition.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -420,8 +457,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "lAmiK8wVxjyHwKlp", "img": "icons/magic/air/fog-gas-smoke-green.webp", @@ -458,7 +494,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754073324162, + "modifiedTime": 1754073362021, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!h5RuhzGL17dW5FBT.lAmiK8wVxjyHwKlp.yP4ot8VqS56RnxnE" } @@ -471,7 +515,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754073225985, + "modifiedTime": 1754142105436, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!h5RuhzGL17dW5FBT.lAmiK8wVxjyHwKlp" } diff --git a/src/packs/adversaries/adversary_Battle_Box_dgH3fW9FTYLaIDvS.json b/src/packs/adversaries/adversary_Battle_Box_dgH3fW9FTYLaIDvS.json index 96a1b752..cad8ac88 100644 --- a/src/packs/adversaries/adversary_Battle_Box_dgH3fW9FTYLaIDvS.json +++ b/src/packs/adversaries/adversary_Battle_Box_dgH3fW9FTYLaIDvS.json @@ -112,15 +112,20 @@ "range": "melee", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 85, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784224, + "modifiedTime": 1755264708230, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "dgH3fW9FTYLaIDvS", "sort": 2600000, "ownership": { @@ -227,42 +232,9 @@ "name": "Relentless (2)", "type": "feature", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to two times times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Box can be spotlighted up to two times times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "2JfPSV3pw6pv0BXd": { - "type": "effect", - "_id": "2JfPSV3pw6pv0BXd", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "1", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "originId": null }, @@ -277,7 +249,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754073816379, + "modifiedTime": 1754073843197, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dgH3fW9FTYLaIDvS.RSovCwuGrZ1mk5py" }, @@ -285,14 +265,14 @@ "name": "Randomized Tactics", "type": "feature", "system": { - "description": "

Mark a Stress and roll a d6. The @Lookup[@name] uses the corresponding move:

  1. Mana Beam

  2. Fire Jets

  3. Trample

  4. Shocking Gas

  5. Stunning Clap

  6. Psionic Whine

", + "description": "

Mark a Stress and roll a d6. The Box uses the corresponding move:

  1. Mana Beam

  2. Fire Jets

  3. Trample

  4. Shocking Gas

  5. Stunning Clap

  6. Psionic Whine

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

Mark a Stress and roll a d6. The Box uses the corresponding move:

  1. Mana Beam

  2. Fire Jets

  3. Trample

  4. Shocking Gas

  5. Stunning Clap

  6. Psionic Whine

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -300,6 +280,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -343,8 +324,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "ZqfLMjVkbUwDw4p6", "img": "icons/commodities/tech/transmission.webp", @@ -357,7 +337,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754073845291, + "modifiedTime": 1754142121782, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dgH3fW9FTYLaIDvS.ZqfLMjVkbUwDw4p6" }, @@ -365,14 +353,14 @@ "name": "Mana Beam", "type": "feature", "system": { - "description": "

The @Lookup[@name] fires a searing beam. Make an attack against a target within Far range. On a success, deal 2d10+2 magic damage.

", + "description": "

The Box fires a searing beam. Make an attack against a target within Far range. On a success, deal 2d10+2 magic damage.

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

The Box fires a searing beam. Make an attack against a target within Far range. On a success, deal 2d10+2 magic damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -443,8 +431,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "lqyN4CQop53BzarW", "img": "icons/magic/light/beam-rays-blue.webp", @@ -457,7 +444,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754074104758, + "modifiedTime": 1754142132743, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dgH3fW9FTYLaIDvS.lqyN4CQop53BzarW" }, @@ -465,14 +460,14 @@ "name": "Fire Jets", "type": "feature", "system": { - "description": "

The @Lookup[@name] shoots into the air, spinning and releasing jets of flame. Make an attack against all targets within Close range. Targets the @Lookup[@name] succeeds against take 2d8 physical damage.

@Template[type:emanation|range:c]

", + "description": "

The Box shoots into the air, spinning and releasing jets of flame. Make an attack against all targets within Close range. Targets the Box succeeds against take 2d8 physical damage.

@Template[type:emanation|range:c]

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

The Box shoots into the air, spinning and releasing jets of flame. Make an attack against all targets within Close range. Targets the Box succeeds against take 2d8 physical damage.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -543,8 +538,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "IHQoqt39T772FVMs", "img": "icons/magic/fire/explosion-embers-orange.webp", @@ -557,7 +551,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754074175443, + "modifiedTime": 1754142142523, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dgH3fW9FTYLaIDvS.IHQoqt39T772FVMs" }, @@ -565,14 +567,14 @@ "name": "Trample", "type": "feature", "system": { - "description": "

The @Lookup[@name] rockets around erratically. Make an attack against all PCs within Close range. Targets the @Lookup[@name] succeeds against take 1d6+5 physical damage and are Vulnerable until their next roll with Hope.

@Template[type:emanation|range:c]

", + "description": "

The Box rockets around erratically. Make an attack against all PCs within Close range. Targets the Box succeeds against take 1d6+5 physical damage and are Vulnerable until their next roll with Hope.

@Template[type:emanation|range:c]

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

The Box rockets around erratically. Make an attack against all PCs within Close range. Targets the Box succeeds against take 1d6+5 physical damage and are Vulnerable until their next roll with Hope.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -648,8 +650,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "XtnByqUr9AuYU9Ip", "img": "icons/skills/movement/arrow-upward-yellow.webp", @@ -688,7 +689,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754074326119, + "modifiedTime": 1754074354525, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!dgH3fW9FTYLaIDvS.XtnByqUr9AuYU9Ip.9NQcCXMhjyBReJRd" } @@ -701,7 +710,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754074260007, + "modifiedTime": 1754142151952, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dgH3fW9FTYLaIDvS.XtnByqUr9AuYU9Ip" }, @@ -709,14 +726,14 @@ "name": "Shocking Gas", "type": "feature", "system": { - "description": "

The @Lookup[@name] sprays out a silver gas sparking with lightning. All targets within Close range must succeed on a Finesse Reaction Roll or mark 3 Stress.

@Template[type:emanation|range:c]

", + "description": "

The Box sprays out a silver gas sparking with lightning. All targets within Close range must succeed on a Finesse Reaction Roll or mark 3 Stress.

@Template[type:emanation|range:c]

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

The Box sprays out a silver gas sparking with lightning. All targets within Close range must succeed on a Finesse Reaction Roll or mark 3 Stress.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -786,8 +803,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "3bPURmuwQs06fThQ", "img": "icons/magic/lightning/bolt-strike-embers-teal.webp", @@ -800,7 +816,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754074364206, + "modifiedTime": 1754142161096, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dgH3fW9FTYLaIDvS.3bPURmuwQs06fThQ" }, @@ -808,14 +832,14 @@ "name": "Stunning Clap", "type": "feature", "system": { - "description": "

The @Lookup[@name] leaps and their sides clap, creating a small sonic boom. All targets within Very Close range must succeed on a Strength Reaction Roll or become Vulnerable until the cube is defeated.

@Template[type:emanation|range:vc]

", + "description": "

The Box leaps and their sides clap, creating a small sonic boom. All targets within Very Close range must succeed on a Strength Reaction Roll or become Vulnerable until the cube is defeated.

@Template[type:emanation|range:vc]

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

The Box leaps and their sides clap, creating a small sonic boom. All targets within Very Close range must succeed on a Strength Reaction Roll or become Vulnerable until the cube is defeated.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -864,8 +888,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "ijIaKjroxq3xZd9Z", "img": "icons/magic/sonic/explosion-impact-shock-wave.webp", @@ -904,7 +927,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754074519811, + "modifiedTime": 1754074537174, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!dgH3fW9FTYLaIDvS.ijIaKjroxq3xZd9Z.S7kJlhnV8Nexzi8l" } @@ -917,7 +948,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754074454965, + "modifiedTime": 1754142182845, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dgH3fW9FTYLaIDvS.ijIaKjroxq3xZd9Z" }, @@ -925,14 +964,14 @@ "name": "Psionic Whine", "type": "feature", "system": { - "description": "

The @Lookup[@name] releases a cluster of mechanical bees whose buzz rattles mortal minds. All targets within Close range must succeed on a Presence Reaction Roll or take 2d4+9 direct magic damage.

@Template[type:emanation|range:c]

", + "description": "

The Box releases a cluster of mechanical bees whose buzz rattles mortal minds. All targets within Close range must succeed on a Presence Reaction Roll or take 2d4+9 direct magic damage.

@Template[type:emanation|range:c]

", "resource": null, "actions": { "3R3pGOUj4rHaUzPK": { "type": "attack", "_id": "3R3pGOUj4rHaUzPK", "systemPath": "actions", - "description": "", + "description": "

The Box releases a cluster of mechanical bees whose buzz rattles mortal minds. All targets within Close range must succeed on a Presence Reaction Roll or take 2d4+9 direct magic damage.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -1003,8 +1042,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "JCue4ko61bjhedXv", "img": "icons/creatures/invertebrates/wasp-swarm-tan.webp", @@ -1017,7 +1055,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754074558281, + "modifiedTime": 1754142197090, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dgH3fW9FTYLaIDvS.JCue4ko61bjhedXv" }, @@ -1025,14 +1071,14 @@ "name": "Overcharge", "type": "feature", "system": { - "description": "

Before rolling damage for the @Lookup[@name]’s attack, you can mark a Stress to add a d6 to the damage roll. Additionally, you gain a Fear.

", + "description": "

Before rolling damage for the Box’s attack, you can mark a Stress to add a d6 to the damage roll. Additionally, you gain a Fear.

", "resource": null, "actions": { "3XOvKoYz4CqMNrU9": { "type": "healing", "_id": "3XOvKoYz4CqMNrU9", "systemPath": "actions", - "description": "", + "description": "

Before rolling damage for the Box’s attack, you can mark a Stress to add a d6 to the damage roll. Additionally, you gain a Fear.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -1040,6 +1086,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -1104,8 +1151,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "ITzpRJr2jWK0Ksmp", "img": "icons/creatures/magical/construct-golem-stone-blue.webp", @@ -1118,7 +1164,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1754074647690, + "modifiedTime": 1755264742627, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items!dgH3fW9FTYLaIDvS.ITzpRJr2jWK0Ksmp" }, @@ -1126,14 +1180,14 @@ "name": "Death Quake", "type": "feature", "system": { - "description": "

When the @Lookup[@name] marks their last HP, the magic powering them ruptures in an explosion of force. All targets within Close range must succeed on an Instinct Reaction Roll or take 2d8+1 magic damage

@Template[type:emanation|range:c]

", + "description": "

When the Box marks their last HP, the magic powering them ruptures in an explosion of force. All targets within Close range must succeed on an Instinct Reaction Roll or take 2d8+1 magic damage

@Template[type:emanation|range:c]

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

When the Box marks their last HP, the magic powering them ruptures in an explosion of force. All targets within Close range must succeed on an Instinct Reaction Roll or take 2d8+1 magic damage

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -1204,8 +1258,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "YvfzPyJbbv2ia6Yp", "img": "icons/magic/sonic/explosion-shock-wave-teal.webp", @@ -1218,7 +1271,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754074737929, + "modifiedTime": 1754142216691, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dgH3fW9FTYLaIDvS.YvfzPyJbbv2ia6Yp" } diff --git a/src/packs/adversaries/adversary_Bear_71qKDLKO3CsrNkdy.json b/src/packs/adversaries/adversary_Bear_71qKDLKO3CsrNkdy.json index da5de611..688b54f4 100644 --- a/src/packs/adversaries/adversary_Bear_71qKDLKO3CsrNkdy.json +++ b/src/packs/adversaries/adversary_Bear_71qKDLKO3CsrNkdy.json @@ -117,15 +117,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 75, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784226, + "modifiedTime": 1755259462479, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "71qKDLKO3CsrNkdy", "sort": 1200000, "ownership": { @@ -234,7 +239,7 @@ "_id": "2fXzhh2qil8dw3vw", "img": "icons/skills/melee/strike-slashes-orange.webp", "system": { - "description": "

Targets who mark HP from the @Lookup[@name]’s standard attack are knocked back to Very Close range.

", + "description": "

Targets who mark HP from the Bear’s standard attack are knocked back to Very Close range.

", "resource": null, "actions": {}, "originItemType": null, @@ -250,7 +255,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012151208, + "modifiedTime": 1754012182512, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!71qKDLKO3CsrNkdy.2fXzhh2qil8dw3vw" }, @@ -267,7 +280,7 @@ "type": "attack", "_id": "PXL3e51eBYZ4O2lb", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to make an attack against a target within Melee range. On a success, deal 3d4+10 physical damage and the target is Restrained until they break free with a successful Strength Roll.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -275,6 +288,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -351,8 +365,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -384,12 +397,20 @@ "description": "

You are Restrained until you break free with a successful Strength Roll.

", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012285077, + "modifiedTime": 1754012313771, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!71qKDLKO3CsrNkdy.zgR0MEqyobKp2yXr.U50Ccm9emMqAxma6" } @@ -402,7 +423,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012195973, + "modifiedTime": 1754143721840, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!71qKDLKO3CsrNkdy.zgR0MEqyobKp2yXr" }, @@ -414,81 +443,10 @@ "system": { "description": "

When the Bear makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "ZQHGR0IweeWBLokB": { - "type": "healing", - "_id": "ZQHGR0IweeWBLokB", - "systemPath": "actions", - "description": "

When the Bear makes a successful attack against a PC, you gain a Fear.

", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -499,7 +457,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012330113, + "modifiedTime": 1754143729868, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!71qKDLKO3CsrNkdy.4hJbq9WCwJn78frt" } diff --git a/src/packs/adversaries/adversary_Bladed_Guard_B4LZcGuBAHzyVdzy.json b/src/packs/adversaries/adversary_Bladed_Guard_B4LZcGuBAHzyVdzy.json index 8ee7c56c..184f5fdf 100644 --- a/src/packs/adversaries/adversary_Bladed_Guard_B4LZcGuBAHzyVdzy.json +++ b/src/packs/adversaries/adversary_Bladed_Guard_B4LZcGuBAHzyVdzy.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 77, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784226, + "modifiedTime": 1755259462481, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "B4LZcGuBAHzyVdzy", "sort": 2000000, "ownership": { @@ -229,14 +234,14 @@ "_id": "qEn4baWgkjKtmILp", "img": "icons/equipment/shield/shield-round-boss-wood-brown.webp", "system": { - "description": "

A creature who tries to move within Very Close range of the @Lookup[@name] must succeed on an Agility Roll. If additional @Lookup[@name]s are standing in a line alongside the first, and each is within Melee range of another guard in the line, the Difficulty increases by the total number of guards in that line.

", + "description": "

A creature who tries to move within Very Close range of the Guard must succeed on an Agility Roll. If additional Bladed Guards are standing in a line alongside the f i rst, and each is within Melee range of another guard in the line, the Diffi culty increases by the total number of guards in that line.

", "resource": null, "actions": { "3lbeEeJdjzPn0MoG": { "type": "attack", "_id": "3lbeEeJdjzPn0MoG", "systemPath": "actions", - "description": "", + "description": "

A creature who tries to move within Very Close range of the Guard must succeed on an Agility Roll. If additional Bladed Guards are standing in a line alongside the first, and each is within Melee range of another guard in the line, the Difficulty increases by the total number of guards in that line.

", "chatDisplay": true, "actionType": "passive", "cost": [], @@ -292,7 +297,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012824140, + "modifiedTime": 1754143793947, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!B4LZcGuBAHzyVdzy.qEn4baWgkjKtmILp" }, @@ -309,7 +322,7 @@ "type": "attack", "_id": "TK5R00afB1RIA6gp", "systemPath": "actions", - "description": "", + "description": "

Make an attack against a target within Very Close range. On a success, mark a Stress to Restrain the target until they break free with a successful attack, Finesse Roll, or Strength Roll.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -359,8 +372,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -397,7 +409,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013054188, + "modifiedTime": 1754013085395, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!B4LZcGuBAHzyVdzy.9gizFt9ovKL05DXu.LmzztuktRkwOCy1a" } @@ -410,7 +430,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012944888, + "modifiedTime": 1754143803011, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!B4LZcGuBAHzyVdzy.9gizFt9ovKL05DXu" } diff --git a/src/packs/adversaries/adversary_Brawny_Zombie_2UeZ0tEe7AzgSJNd.json b/src/packs/adversaries/adversary_Brawny_Zombie_2UeZ0tEe7AzgSJNd.json index c829c3f9..bbdb4e63 100644 --- a/src/packs/adversaries/adversary_Brawny_Zombie_2UeZ0tEe7AzgSJNd.json +++ b/src/packs/adversaries/adversary_Brawny_Zombie_2UeZ0tEe7AzgSJNd.json @@ -115,15 +115,20 @@ "img": "icons/skills/melee/unarmed-punch-fist-yellow-red.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 83, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784231, + "modifiedTime": 1755259462487, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "2UeZ0tEe7AzgSJNd", "sort": 400000, "ownership": { @@ -232,7 +237,7 @@ "_id": "yBaLF9DwPH2GSRKf", "img": "icons/magic/time/hourglass-brown-orange.webp", "system": { - "description": "

When you spotlight the @Lookup[@name] and they don’t have a token on their stat block, they can’t act yet. Place a token on their stat block and describe what they’re preparing to do. When you spotlight the @Lookup[@name] and they have a token on their stat block, clear the token and they can act.

", + "description": "

When you spotlight the Zombie and they don’t have a token on their stat block, they can’t act yet. Place a token on their stat block and describe what they’re preparing to do. When you spotlight the Zombie and they have a token on their stat block, clear the token and they can act.

", "resource": { "type": "simple", "value": 0, @@ -253,7 +258,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013235761, + "modifiedTime": 1754013348057, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2UeZ0tEe7AzgSJNd.yBaLF9DwPH2GSRKf" }, @@ -263,14 +276,14 @@ "_id": "LP7xVLMTkJsmiIvl", "img": "icons/skills/melee/strike-slashes-red.webp", "system": { - "description": "

Make a standard attack with advantage against a target the @Lookup[@name] has Restrained. On a success, the attack deals direct damage.

", + "description": "

Make a standard attack with advantage against a target the Zombie has Restrained. On a success, the attack deals direct damage.

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

Make a standard attack with advantage against a target the Zombie has Restrained. On a success, the attack deals direct damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -308,8 +321,7 @@ } } ], - "includeBase": false, - "direct": true + "includeBase": false }, "target": { "type": "any", @@ -321,7 +333,7 @@ "trait": null, "difficulty": null, "bonus": null, - "advState": "advantage", + "advState": "neutral", "diceRolling": { "multiplier": "prof", "flatMultiplier": 1, @@ -343,8 +355,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -355,7 +366,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013355113, + "modifiedTime": 1754143817596, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2UeZ0tEe7AzgSJNd.LP7xVLMTkJsmiIvl" }, @@ -365,14 +384,14 @@ "_id": "69reUZ5tv3splqyO", "img": "icons/creatures/abilities/mouth-teeth-lamprey-red.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful standard attack, you can mark a Stress to temporarily Restrain the target and force them to mark 2 Stress.

", + "description": "

When the Zombies makes a successful standard attack, you can mark a Stress to temporarily Restrain the target and force them to mark 2 Stress.

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

When the Zombies makes a successful standard attack, you can mark a Stress to temporarily Restrain the target and force them to mark 2 Stress.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -380,6 +399,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -435,8 +455,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [ { @@ -473,7 +492,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013588940, + "modifiedTime": 1754013596861, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!2UeZ0tEe7AzgSJNd.69reUZ5tv3splqyO.CjMrSdL6kgD8mKRQ" } @@ -486,7 +513,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013473713, + "modifiedTime": 1754143824712, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2UeZ0tEe7AzgSJNd.69reUZ5tv3splqyO" } diff --git a/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json b/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json index 5b2d2e41..8904e37a 100644 --- a/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json +++ b/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json @@ -39,8 +39,7 @@ "experiences": { "7GpgCWSe6hNwnOO7": { "name": "Throw", - "value": 2, - "description": "" + "value": 2 } }, "bonuses": { @@ -106,22 +105,26 @@ }, "base": false } - ], - "direct": true + ] }, "name": "Club", "img": "icons/weapons/clubs/club-banded-barbed-black.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 75, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784233, + "modifiedTime": 1755259462491, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "8Zkqk1jU09nKL2fy", "sort": 1500000, "ownership": { @@ -230,14 +233,14 @@ "_id": "ynuyMl1sMQYINfcQ", "img": "icons/weapons/clubs/club-spiked-glowing.webp", "system": { - "description": "

You must spend a Fear to spotlight the @Lookup[@name]. While spotlighted, they can make their standard attack against all targets within range.

", + "description": "

You must spend a Fear to spotlight the Ogre. While spotlighted, they can make their standard attack against all targets within range.

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

You must spend a Fear to spotlight the Ogre. While spotlighted, they can make their standard attack against all targets within range.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -245,6 +248,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -276,7 +280,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754011303846, + "modifiedTime": 1754143837385, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8Zkqk1jU09nKL2fy.ynuyMl1sMQYINfcQ" }, @@ -286,7 +298,7 @@ "_id": "szu5YYQ6klkDbqAT", "img": "icons/skills/wounds/bone-broken-marrow-red.webp", "system": { - "description": "

The @Lookup[@name]’s attacks deal direct damage.

", + "description": "

The Ogre’s attacks deal direct damage.

", "resource": null, "actions": {}, "originItemType": null, @@ -302,7 +314,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754011637183, + "modifiedTime": 1754011673466, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8Zkqk1jU09nKL2fy.szu5YYQ6klkDbqAT" }, @@ -312,14 +332,14 @@ "_id": "zGvaBYJPOOnQVQEn", "img": "icons/magic/earth/projectile-stone-boulder-orange.webp", "system": { - "description": "

Mark a Stress to pick up heavy objects and throw them at all targets in front of the @Lookup[@name] within Far range. Make an attack against these targets. Targets the @Lookup[@name] succeeds against take 1d10+2 physical damage. If they succeed against more than one target, you gain a Fear.

@Template[type:inFront|range:f]

", + "description": "

Mark a Stress to pick up heavy objects and throw them at all targets in front of the Ogre within Far range. Make an attack against these targets. Targets the Ogre succeeds against take 1d10+2 physical damage. If they succeed against more than one target, you gain a Fear.

@Template[type:inFront|range:f]

", "resource": null, "actions": { "3p1qfHy5uHe4H2hB": { "type": "attack", "_id": "3p1qfHy5uHe4H2hB", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to pick up heavy objects and throw them at all targets in front of the Ogre within Far range. Make an attack against these targets. Targets the Ogre succeeds against take 1d10+2 physical damage. If they succeed against more than one target, you gain a Fear.

@Template[type:inFront|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -327,6 +347,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -340,11 +361,10 @@ { "value": { "custom": { - "enabled": false, - "formula": "" + "enabled": false }, "flatMultiplier": 1, - "dice": "d10", + "dice": "d12", "bonus": 2, "multiplier": "flat" }, @@ -360,14 +380,12 @@ "dice": "d6", "bonus": null, "custom": { - "enabled": false, - "formula": "" + "enabled": false } } } ], - "includeBase": false, - "direct": true + "includeBase": false }, "target": { "type": "any", @@ -468,8 +486,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -480,7 +497,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754011680074, + "modifiedTime": 1754143860893, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8Zkqk1jU09nKL2fy.zGvaBYJPOOnQVQEn" }, @@ -490,14 +515,14 @@ "_id": "Qxkddj6nQc4RDExW", "img": "icons/skills/melee/strike-flail-destructive-yellow.webp", "system": { - "description": "

When the @Lookup[@name] marks 2 or more HP, they can rampage. Move the @Lookup[@name] to a point within Close range and deal 2d6+3 direct physical damage to all targets in their path.

", + "description": "

When the Ogre marks 2 or more HP, they can rampage. Move the Ogre to a point within Close range and deal 2d6+3 direct physical damage to all targets in their path.

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

When the Ogre marks 2 or more HP, they can rampage. Move the Ogre to a point within Close range and deal 2d6+3 direct physical damage to all targets in their path.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -535,8 +560,7 @@ } } ], - "includeBase": false, - "direct": true + "includeBase": false }, "target": { "type": "any", @@ -550,8 +574,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -562,7 +585,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754011925214, + "modifiedTime": 1754143873733, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8Zkqk1jU09nKL2fy.Qxkddj6nQc4RDExW" } diff --git a/src/packs/adversaries/adversary_Chaos_Skull_jDmHqGvzg5wjgmxE.json b/src/packs/adversaries/adversary_Chaos_Skull_jDmHqGvzg5wjgmxE.json index f548870a..652ccc48 100644 --- a/src/packs/adversaries/adversary_Chaos_Skull_jDmHqGvzg5wjgmxE.json +++ b/src/packs/adversaries/adversary_Chaos_Skull_jDmHqGvzg5wjgmxE.json @@ -106,15 +106,20 @@ "img": "icons/magic/light/beam-rays-magenta.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 85, - "artist": "" - }, - "size": "tiny" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784233, + "modifiedTime": 1755259462855, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "jDmHqGvzg5wjgmxE", "sort": 2800000, "ownership": { @@ -221,7 +226,7 @@ "name": "Levitation", "type": "feature", "system": { - "description": "

The @Lookup[@name] levitates several feet off the ground and can’t be Restrained.

", + "description": "

The Skull levitates several feet off the ground and can’t be Restrained.

", "resource": null, "actions": {}, "originItemType": null, @@ -229,51 +234,7 @@ }, "_id": "m6uPm4vujrUjSFPw", "img": "icons/magic/air/fog-gas-smoke-blue-gray.webp", - "effects": [ - { - "name": "Levitation", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "_id": "k6iaQVfMZhrpwYQj", - "img": "icons/magic/air/fog-gas-smoke-blue-gray.webp", - "changes": [ - { - "key": "system.rules.conditionImmunities.restrained", - "mode": 5, - "value": "1", - "priority": null - } - ], - "disabled": false, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

The Skull levitates several feet off the ground and can’t be Restrained.

", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!actors.items.effects!jDmHqGvzg5wjgmxE.m6uPm4vujrUjSFPw.k6iaQVfMZhrpwYQj" - } - ], + "effects": [], "folder": null, "sort": 0, "ownership": { @@ -282,7 +243,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754075067352, + "modifiedTime": 1754075095219, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!jDmHqGvzg5wjgmxE.m6uPm4vujrUjSFPw" }, @@ -290,7 +259,7 @@ "name": "Wards", "type": "feature", "system": { - "description": "

The @Lookup[@name] is resistant to magic damage.

", + "description": "

The Skull is resistant to magic damage.

", "resource": null, "actions": {}, "originItemType": null, @@ -330,7 +299,7 @@ "startRound": null, "startTurn": null }, - "description": "

The Skull is resistant to magic damage.

", + "description": "

The Skull is resistant to magic damage.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -338,7 +307,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754075111183, + "modifiedTime": 1754075147178, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!jDmHqGvzg5wjgmxE.LNVlf1BeqC3XyTrV.4rj6PM0AGrrlbxSc" } @@ -351,7 +328,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754075098555, + "modifiedTime": 1754075127728, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!jDmHqGvzg5wjgmxE.LNVlf1BeqC3XyTrV" }, @@ -359,14 +344,14 @@ "name": "Magic Burst", "type": "feature", "system": { - "description": "

Mark a Stress to make an attack against all targets within Close range. Targets the @Lookup[@name] succeeds against take 2d6+4 magic damage.

@Template[type:emanation|range:c]

", + "description": "

Mark a Stress to make an attack against all targets within Close range. Targets the Skull succeeds against take 2d6+4 magic damage.

@Template[type:emanation|range:c]

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

Mark a Stress to make an attack against all targets within Close range. Targets the Skull succeeds against take 2d6+4 magic damage.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -374,6 +359,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -444,8 +430,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "Zn25zBr96y1hrmnr", "img": "icons/magic/lightning/bolt-strike-purple.webp", @@ -458,7 +443,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754075150449, + "modifiedTime": 1754142237897, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!jDmHqGvzg5wjgmxE.Zn25zBr96y1hrmnr" }, @@ -466,14 +459,14 @@ "name": "Siphon Magic", "type": "feature", "system": { - "description": "

Spend a Fear to make an attack against a PC with a Spellcast trait within Very Close range. On a success, the target marks 1d4 Stress and the @Lookup[@name] clears that many Stress. Additionally, on a success, the @Lookup[@name] can immediately be spotlighted again.

", + "description": "

Spend a Fear to make an attack against a PC with a Spellcast trait within Very Close range. On a success, the target marks 1d4 Stress and the Skull clears that many Stress. Additionally, on a success, the Skull can immediately be spotlighted again.

", "resource": null, "actions": { "872Fq88Hitwc6f3W": { "type": "attack", "_id": "872Fq88Hitwc6f3W", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to make an attack against a PC with a Spellcast trait within Very Close range. On a success, the target marks 1d4 Stress and the Skull clears that many Stress. Additionally, on a success, the Skull can immediately be spotlighted again.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -542,8 +535,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "urXRi4bdBfvl8U6K", "img": "icons/magic/control/sihouette-hold-beam-green.webp", @@ -556,7 +548,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754075230388, + "modifiedTime": 1754142272882, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!jDmHqGvzg5wjgmxE.urXRi4bdBfvl8U6K" } diff --git a/src/packs/adversaries/adversary_Conscript_99TqczuQipBmaB8i.json b/src/packs/adversaries/adversary_Conscript_99TqczuQipBmaB8i.json index c5b4357d..6bea9bbc 100644 --- a/src/packs/adversaries/adversary_Conscript_99TqczuQipBmaB8i.json +++ b/src/packs/adversaries/adversary_Conscript_99TqczuQipBmaB8i.json @@ -99,15 +99,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 85, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784234, + "modifiedTime": 1755259462618, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "99TqczuQipBmaB8i", "sort": 1200000, "ownership": { @@ -214,7 +219,7 @@ "name": "Minion (6)", "type": "feature", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 6 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Conscript is defeated when they take any damage. For every 6 damage a PC deals to the Conscript, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -231,7 +236,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754075360936, + "modifiedTime": 1754075373905, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!99TqczuQipBmaB8i.DgzY4TV3FrxDvhhY" }, @@ -239,14 +252,14 @@ "name": "Group Attack", "type": "feature", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 6 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Conscripts within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 6 physical damage each. Combine this damage.

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

Spend a Fear to choose a target and spotlight all Conscripts within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 6 physical damage each. Combine this damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -254,6 +267,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -273,8 +287,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "MWfKUGzT1YBmLvpn", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", @@ -287,7 +300,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754075401268, + "modifiedTime": 1754142299386, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!99TqczuQipBmaB8i.MWfKUGzT1YBmLvpn" } diff --git a/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json b/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json index 310eefce..eb5d35a1 100644 --- a/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json +++ b/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json @@ -106,15 +106,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 75, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784236, + "modifiedTime": 1755259462495, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "uOP5oT9QzXPlnf3p", "sort": 4900000, "ownership": { @@ -223,66 +228,7 @@ "_id": "y3oUmDLGkcSjOO5Q", "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to twoΒ times per GM turn. Spend Fear as usual to spotlight them.

", - "resource": null, - "actions": { - "bay0pyPsCyDEZKuk": { - "type": "effect", - "_id": "bay0pyPsCyDEZKuk", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "1", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, - "originItemType": null, - "subType": null, - "originId": null - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "MQSznptE5yLT7kj8": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!actors.items!uOP5oT9QzXPlnf3p.y3oUmDLGkcSjOO5Q" - }, - { - "name": "Weak Structure", - "type": "feature", - "_id": "p4HLIkiM3HsglRoA", - "img": "icons/commodities/metal/barstock-broken-steel.webp", - "system": { - "description": "

When the @Lookup[@name] marks HP from physical damage, they must mark an additional HP.

", + "description": "

The Construct can be spotlighted up to twoΒ times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, "actions": {}, "originItemType": null, @@ -298,7 +244,49 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013727085, + "modifiedTime": 1754013745214, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!uOP5oT9QzXPlnf3p.y3oUmDLGkcSjOO5Q" + }, + { + "name": "Weak Structure", + "type": "feature", + "_id": "p4HLIkiM3HsglRoA", + "img": "icons/commodities/metal/barstock-broken-steel.webp", + "system": { + "description": "

When the Construct marks HP from physical damage, they must mark an additional HP.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013751967, + "modifiedTime": 1754013777727, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!uOP5oT9QzXPlnf3p.p4HLIkiM3HsglRoA" }, @@ -308,14 +296,14 @@ "_id": "93m085bEaKFzvEWT", "img": "icons/skills/movement/arrow-upward-blue.webp", "system": { - "description": "

Mark a Stress to make an attack against all targets in the @Lookup[@name]’s path when they move. Targets the @Lookup[@name] succeeds against take 1d8 physical damage.

", + "description": "

Mark a Stress to make an attack against all targets in the Construct’s path when they move. Targets the Construct succeeds against take 1d8 physical damage.

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

Mark a Stress to make an attack against all targets in the Construct’s path when they move. Targets the Construct succeeds against take 1d8 physical damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -323,6 +311,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -394,8 +383,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -406,7 +394,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013785248, + "modifiedTime": 1754143890173, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!uOP5oT9QzXPlnf3p.93m085bEaKFzvEWT" }, @@ -416,14 +412,14 @@ "_id": "EF6YIDjQ0liFubGA", "img": "icons/creatures/magical/construct-golem-stone-blue.webp", "system": { - "description": "

Before rolling damage for the @Lookup[@name]’s attack, you can mark a Stress to gain a +10 bonus to the damage roll. The @Lookup[@name] can then take the spotlight again.

", + "description": "

Before rolling damage for the Construct’s attack, you can mark a Stress to gain a +10 bonus to the damage roll. The Construct can then take the spotlight again.

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

Before rolling damage for the Construct’s attack, you can mark a Stress to gain a +10 bonus to the damage roll. The Construct can then take the spotlight again.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -431,6 +427,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -451,8 +448,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [ { @@ -494,7 +490,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013932820, + "modifiedTime": 1754013969723, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!uOP5oT9QzXPlnf3p.EF6YIDjQ0liFubGA.xkDIZk9u2ipDHvOL" } @@ -507,7 +511,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1754013871234, + "modifiedTime": 1755260161782, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items!uOP5oT9QzXPlnf3p.EF6YIDjQ0liFubGA" }, @@ -517,14 +529,14 @@ "_id": "UlGLuV1L33tDWkli", "img": "icons/magic/sonic/explosion-shock-wave-teal.webp", "system": { - "description": "

When the @Lookup[@name] marks their last HP, the magic powering them ruptures in an explosion of force. Make an attack with advantage against all targets within Very Close range. Targets the @Lookup[@name] succeeds against take 1d12+2 magic damage.

", + "description": "

When the Construct marks their last HP, the magic powering them ruptures in an explosion of force. Make an attack with advantage against all targets within Very Close range. Targets the Construct succeeds against take 1d12+2 magic damage.

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

When the Construct marks their last HP, the magic powering them ruptures in an explosion of force. Make an attack with advantage against all targets within Very Close range. Targets the Construct succeeds against take 1d12+2 magic damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -596,8 +608,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -608,7 +619,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013980637, + "modifiedTime": 1754143905192, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!uOP5oT9QzXPlnf3p.UlGLuV1L33tDWkli" } diff --git a/src/packs/adversaries/adversary_Courtesan_ZxWaWPdzFIUPNC62.json b/src/packs/adversaries/adversary_Courtesan_ZxWaWPdzFIUPNC62.json index 668cd943..e0cfcf66 100644 --- a/src/packs/adversaries/adversary_Courtesan_ZxWaWPdzFIUPNC62.json +++ b/src/packs/adversaries/adversary_Courtesan_ZxWaWPdzFIUPNC62.json @@ -117,15 +117,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 85, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784237, + "modifiedTime": 1755264799637, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "ZxWaWPdzFIUPNC62", "sort": 2400000, "ownership": { @@ -232,14 +237,14 @@ "name": "Searing Glance", "type": "feature", "system": { - "description": "

When a PC within Close range makes a Presence Roll, you can mark a Stress to cast a gaze toward the aftermath. On the target’s failure, they must mark 2 Stress and are Vulnerable until the scene ends or they succeed on a social action against the @Lookup[@name]. On the target’s success, they must mark a Stress.

", + "description": "

When a PC within Close range makes a Presence Roll, you can mark a Stress to cast a gaze toward the aftermath. On the target’s failure, they must mark 2 Stress and are Vulnerable until the scene ends or they succeed on a social action against the Courtesan. On the target’s success, they must mark a Stress.

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

When a PC within Close range makes a Presence Roll, you can mark a Stress to cast a gaze toward the aftermath. On the target’s failure, they must mark 2 Stress and are Vulnerable until the scene ends or they succeed on a social action against the Courtesan. On the target’s success, they must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -247,6 +252,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -301,8 +307,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "rSMUPC5GhR982ifg", "img": "icons/magic/perception/eye-slit-orange.webp", @@ -341,7 +346,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754075591764, + "modifiedTime": 1754075618327, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!ZxWaWPdzFIUPNC62.rSMUPC5GhR982ifg.blcRqns0PHqiuPac" } @@ -354,7 +367,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754075457515, + "modifiedTime": 1754142315839, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ZxWaWPdzFIUPNC62.rSMUPC5GhR982ifg" } diff --git a/src/packs/adversaries/adversary_Courtier_CBBuEXAlLKFMJdjg.json b/src/packs/adversaries/adversary_Courtier_CBBuEXAlLKFMJdjg.json index 6721666f..77181f05 100644 --- a/src/packs/adversaries/adversary_Courtier_CBBuEXAlLKFMJdjg.json +++ b/src/packs/adversaries/adversary_Courtier_CBBuEXAlLKFMJdjg.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 76, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784237, + "modifiedTime": 1755259462499, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "CBBuEXAlLKFMJdjg", "sort": 2200000, "ownership": { @@ -236,7 +241,7 @@ "type": "attack", "_id": "Yi3rvjj0Umqt5Z8j", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to say something mocking and force a target within Close range to make a Presence Reaction Roll (14) to see if they can save face. On a failure, the target must mark 2 Stress and is Vulnerable until the scene ends.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -244,6 +249,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -312,15 +318,14 @@ "difficulty": 14, "damageMod": "none" }, - "name": "Mark Stress", + "name": "Use", "img": "icons/magic/control/mouth-smile-deception-purple.webp", "range": "close" } }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -357,7 +362,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754014456918, + "modifiedTime": 1754014468386, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!CBBuEXAlLKFMJdjg.LYNaKEYcYMgvF4Rf.YNMhgBZW8ndrCjIp" } @@ -370,7 +383,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754014295058, + "modifiedTime": 1754143921727, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!CBBuEXAlLKFMJdjg.LYNaKEYcYMgvF4Rf" }, @@ -380,14 +401,14 @@ "_id": "Ux42ELBBuSYwm4yW", "img": "icons/skills/social/diplomacy-unity-alliance.webp", "system": { - "description": "

Spend a Fear and target a PC. The @Lookup[@name] convinces a crowd or prominent individual that the target is the cause of their current conflict or misfortune.

", + "description": "

Spend a Fear and target a PC. The Courtier convinces a crowd or prominent individual that the target is the cause of their current conflict or misfortune.

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

Spend a Fear and target a PC. The Courtier convinces a crowd or prominent individual that the target is the cause of their current conflict or misfortune.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -395,6 +416,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -415,8 +437,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -427,7 +448,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754014473825, + "modifiedTime": 1754143929683, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!CBBuEXAlLKFMJdjg.Ux42ELBBuSYwm4yW" } diff --git a/src/packs/adversaries/adversary_Cult_Adept_0NxCSugvKQ4W8OYZ.json b/src/packs/adversaries/adversary_Cult_Adept_0NxCSugvKQ4W8OYZ.json index 14eb579b..6c63e29e 100644 --- a/src/packs/adversaries/adversary_Cult_Adept_0NxCSugvKQ4W8OYZ.json +++ b/src/packs/adversaries/adversary_Cult_Adept_0NxCSugvKQ4W8OYZ.json @@ -117,15 +117,20 @@ "img": "icons/weapons/staves/staff-ornate-purple.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 85, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784239, + "modifiedTime": 1755259462512, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "0NxCSugvKQ4W8OYZ", "sort": 100000, "ownership": { @@ -239,7 +244,7 @@ "type": "attack", "_id": "TQv3o9sRnlDNbPyu", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to make a standard attack against a target within range. On a success, the target must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -247,6 +252,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -342,8 +348,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "kCffzM8rX8NEr9d2", "img": "icons/magic/unholy/beam-ringed-impact-purple.webp", @@ -356,7 +361,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754075842447, + "modifiedTime": 1754142328561, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!0NxCSugvKQ4W8OYZ.kCffzM8rX8NEr9d2" }, @@ -364,14 +377,14 @@ "name": "Shroud of the Fallen", "type": "feature", "system": { - "description": "

Mark a Stress to wrap an ally within Close range in a shroud of Protection until the @Lookup[@name] marks their last HP. While Protected, the target has resistance to all damage.

", + "description": "

Mark a Stress to wrap an ally within Close range in a shroud of Protection until the Adept marks their last HP. While Protected, the target has resistance to all damage.

", "resource": null, "actions": { "8yRj7EpEI4PlKNhl": { "type": "effect", "_id": "8yRj7EpEI4PlKNhl", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to wrap an ally within Close range in a shroud of Protection until the Adept marks their last HP. While Protected, the target has resistance to all damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -379,6 +392,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -403,8 +417,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "IHWDn097sRgjlZXO", "img": "icons/magic/unholy/orb-contained-pink.webp", @@ -454,7 +467,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754076062015, + "modifiedTime": 1754076105398, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!0NxCSugvKQ4W8OYZ.IHWDn097sRgjlZXO.U9lWz1LgeAiK5L85" } @@ -467,7 +488,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754075995517, + "modifiedTime": 1754142338486, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!0NxCSugvKQ4W8OYZ.IHWDn097sRgjlZXO" }, @@ -482,7 +511,7 @@ "type": "effect", "_id": "g4RDHrY0AEYXjH52", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear and choose a point within Far range. All targets within Close range of that point are Restrained in smoky chains until they break free with a successful Strength or Instinct Roll. A target Restrained by this feature must spend a Hope to make an action roll.

@Template[type:circle|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -490,6 +519,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -514,8 +544,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "JpSrduK3vjd9h098", "img": "icons/magic/air/fog-gas-smoke-dense-pink.webp", @@ -549,12 +578,20 @@ "description": "

You are Restrained in smoky chains until you break free with a successful Strength or Instinct Roll. A target Restrained by this feature must spend a Hope to make an action roll.

", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754076347281, + "modifiedTime": 1754076389089, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!0NxCSugvKQ4W8OYZ.JpSrduK3vjd9h098.lNH6srSPyEprXZ4o" } @@ -567,7 +604,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754076110844, + "modifiedTime": 1754142351045, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!0NxCSugvKQ4W8OYZ.JpSrduK3vjd9h098" }, @@ -582,7 +627,7 @@ "type": "healing", "_id": "3tibqB97ooJesxf0", "systemPath": "actions", - "description": "", + "description": "

Twice per scene, when a PC rolls a failure with Fear, clear a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -647,8 +692,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "x6FbcrfOscb3er6P", "img": "icons/magic/unholy/silhouette-robe-evil-glow.webp", @@ -661,7 +705,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1754076395683, + "modifiedTime": 1755264866325, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items!0NxCSugvKQ4W8OYZ.x6FbcrfOscb3er6P" } diff --git a/src/packs/adversaries/adversary_Cult_Fang_tyBOpLfigAhI9bU3.json b/src/packs/adversaries/adversary_Cult_Fang_tyBOpLfigAhI9bU3.json index 57e7a7c7..96fc1cc6 100644 --- a/src/packs/adversaries/adversary_Cult_Fang_tyBOpLfigAhI9bU3.json +++ b/src/packs/adversaries/adversary_Cult_Fang_tyBOpLfigAhI9bU3.json @@ -106,15 +106,20 @@ "range": "melee", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 86, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784239, + "modifiedTime": 1755264898243, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "tyBOpLfigAhI9bU3", "sort": 3400000, "ownership": { @@ -221,14 +226,14 @@ "name": "Shadow's Embrace", "type": "feature", "system": { - "description": "

The @Lookup[@name] can climb and walk on vertical surfaces. Mark a Stress to move from one shadow to another within Far range.

", + "description": "

The Fang can climb and walk on vertical surfaces. Mark a Stress to move from one shadow to another within Far range.

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

The Fang can climb and walk on vertical surfaces. Mark a Stress to move from one shadow to another within Far range.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -236,6 +241,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -268,7 +274,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754076664932, + "modifiedTime": 1754142423230, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!tyBOpLfigAhI9bU3.vX5FHwLvFjuc4JC1" }, @@ -276,14 +290,14 @@ "name": "Pick Off the Straggler", "type": "feature", "system": { - "description": "

Mark a Stress to cause a target within Melee range to make an Instinct Reaction Roll. On a failure, the target must mark 2 Stress and is teleported with the @Lookup[@name] to a shadow within Far range, making them temporarily Vulnerable. On a success, the target must mark a Stress.

", + "description": "

Mark a Stress to cause a target within Melee range to make an Instinct Reaction Roll. On a failure, the target must mark 2 Stress and is teleported with the Fang to a shadow within Far range, making them temporarily Vulnerable. On a success, the target must mark a Stress.

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

Mark a Stress to cause a target within Melee range to make an Instinct Reaction Roll. On a failure, the target must mark 2 Stress and is teleported with the Fang to a shadow within Far range, making them temporarily Vulnerable. On a success, the target must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -291,6 +305,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -365,8 +380,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "ohASSruBxcvuItIK", "img": "icons/magic/unholy/barrier-fire-pink.webp", @@ -405,7 +419,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754076794982, + "modifiedTime": 1754076800524, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!tyBOpLfigAhI9bU3.ohASSruBxcvuItIK.LwWxRz7FTMA80VdA" } @@ -418,7 +440,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754076697557, + "modifiedTime": 1754142442929, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!tyBOpLfigAhI9bU3.ohASSruBxcvuItIK" } diff --git a/src/packs/adversaries/adversary_Cult_Initiate_zx99sOGTXicP4SSD.json b/src/packs/adversaries/adversary_Cult_Initiate_zx99sOGTXicP4SSD.json index 0e14a661..b46dc3a0 100644 --- a/src/packs/adversaries/adversary_Cult_Initiate_zx99sOGTXicP4SSD.json +++ b/src/packs/adversaries/adversary_Cult_Initiate_zx99sOGTXicP4SSD.json @@ -99,15 +99,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 86, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784240, + "modifiedTime": 1755264925295, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "zx99sOGTXicP4SSD", "sort": 3600000, "ownership": { @@ -214,7 +219,7 @@ "name": "Minion (6)", "type": "feature", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 6 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Initiate is defeated when they take any damage. For every 6 damage a PC deals to the Initiate, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -231,7 +236,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754076852910, + "modifiedTime": 1754076869705, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!zx99sOGTXicP4SSD.oYoMjSd4OKLWUxlP" }, @@ -239,14 +252,14 @@ "name": "Group Attack", "type": "feature", "system": { - "description": "

Spend a Fear to choose a target and spotlight all Cult @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 5 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Cult Initiates within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 5 physical damage each. Combine this damage.

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

Spend a Fear to choose a target and spotlight all Cult Initiates within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 5 physical damage each. Combine this damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -254,6 +267,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -273,8 +287,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "WP6xQtYzouPEFr82", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", @@ -287,7 +300,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754076871173, + "modifiedTime": 1754142459708, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!zx99sOGTXicP4SSD.WP6xQtYzouPEFr82" } diff --git a/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json b/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json index cd745eb6..31418d81 100644 --- a/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json +++ b/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json @@ -111,15 +111,20 @@ "img": "icons/magic/nature/root-vines-grow-brown.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 76, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784246, + "modifiedTime": 1755259462506, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "9x2xY9zwc3xzbXo5", "sort": 1800000, "ownership": { @@ -235,7 +240,7 @@ "type": "damage", "_id": "55hCZsJQhJNcZ0lX", "systemPath": "actions", - "description": "", + "description": "

Slam the ground, knocking all targets within Very Close range back to Far range. Each target knocked back this way must mark a Stress.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -286,8 +291,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -298,7 +302,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754014765553, + "modifiedTime": 1754143942478, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!9x2xY9zwc3xzbXo5.0DSCzAFXy0hV4afJ" }, @@ -308,14 +320,14 @@ "_id": "rreGFW5TbhUoZf2T", "img": "icons/magic/nature/root-vine-entangled-hand.webp", "system": { - "description": "

Make an attack against a target within Close range. On a success, spend a Fear to pull them into Melee range, deal 1d6+2 physical damage, and Restrain them until the @Lookup[@name] takes Severe damage.

", + "description": "

Make an attack against a target within Close range. On a success, spend a Fear to pull them into Melee range, deal 1d6+2 physical damage, and Restrain them until the Defender takes Severe damage.

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

Make an attack against a target within Close range. On a success, spend a Fear to pull them into Melee range, deal 1d6+2 physical damage, and Restrain them until the Defender takes Severe damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -390,8 +402,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -423,12 +434,20 @@ "description": "

You are Restrained until the Defender takes Severe damage.

", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754014907002, + "modifiedTime": 1754014933428, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!9x2xY9zwc3xzbXo5.rreGFW5TbhUoZf2T.F3E7fiz01AbF2kr5" } @@ -441,7 +460,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754014840148, + "modifiedTime": 1754143956037, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!9x2xY9zwc3xzbXo5.rreGFW5TbhUoZf2T" } diff --git a/src/packs/adversaries/adversary_Demon_of_Avarice_pnyjIGxxvurcWmTv.json b/src/packs/adversaries/adversary_Demon_of_Avarice_pnyjIGxxvurcWmTv.json index e4ba41fb..d32c7ef7 100644 --- a/src/packs/adversaries/adversary_Demon_of_Avarice_pnyjIGxxvurcWmTv.json +++ b/src/packs/adversaries/adversary_Demon_of_Avarice_pnyjIGxxvurcWmTv.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 91, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784247, + "modifiedTime": 1755265775161, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "pnyjIGxxvurcWmTv", "sort": 3400000, "ownership": { @@ -227,7 +232,7 @@ "name": "Money Talks", "type": "feature", "system": { - "description": "

Attacks against the @Lookup[@name] are made with disadvantage unless the attacker spends a handful of gold. This @Lookup[@name] starts with a number of handfuls equal to the number of PCs. When a target marks HP from the @Lookup[@name]’s standard attack, they can spend a handful of gold instead of marking HP (1 handful per HP). Add a handful of gold to the @Lookup[@name] for each handful of gold spent by PCs on this feature.

", + "description": "

Attacks against the Demon are made with disadvantage unless the attacker spends a handful of gold. This Demon starts with a number of handfuls equal to the number of PCs. When a target marks HP from the Demon’s standard attack, they can spend a handful of gold instead of marking HP (1 handful per HP). Add a handful of gold to the Demon for each handful of gold spent by PCs on this feature.

", "resource": null, "actions": {}, "originItemType": null, @@ -244,7 +249,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754123855331, + "modifiedTime": 1754124357369, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!pnyjIGxxvurcWmTv.qoQinutpe4Itohp0" }, @@ -252,7 +265,7 @@ "name": "Number Must Go Up", "type": "feature", "system": { - "description": "

Add a bonus to the @Lookup[@name]’s attack rolls equal to the number of handfuls of gold they have.

", + "description": "

Add a bonus to the Demon’s attack rolls equal to the number of handfuls of gold they have.

", "resource": { "type": "simple", "value": 0, @@ -284,7 +297,7 @@ "key": "system.bonuses.roll.attack.bonus", "mode": 2, "value": "ITEM.@system.resource.value", - "priority": 21 + "priority": null } ], "disabled": false, @@ -305,7 +318,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754124286848, + "modifiedTime": 1754124718184, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!pnyjIGxxvurcWmTv.ILocyy5hvyQXXjhs.iLeiOlUtWvYsgbDQ" } @@ -318,7 +339,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754124071735, + "modifiedTime": 1754124275885, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!pnyjIGxxvurcWmTv.ILocyy5hvyQXXjhs" }, @@ -330,8 +359,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "BKgv2D1IdI813R8k", "img": "icons/skills/movement/arrows-up-trio-red.webp", @@ -344,7 +372,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754124362017, + "modifiedTime": 1754124404064, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!pnyjIGxxvurcWmTv.BKgv2D1IdI813R8k" } diff --git a/src/packs/adversaries/adversary_Demon_of_Despair_kE4dfhqmIQpNd44e.json b/src/packs/adversaries/adversary_Demon_of_Despair_kE4dfhqmIQpNd44e.json index b1804074..673a050d 100644 --- a/src/packs/adversaries/adversary_Demon_of_Despair_kE4dfhqmIQpNd44e.json +++ b/src/packs/adversaries/adversary_Demon_of_Despair_kE4dfhqmIQpNd44e.json @@ -112,15 +112,20 @@ "type": "attack", "range": "far", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 92, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784248, + "modifiedTime": 1755266281854, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "kE4dfhqmIQpNd44e", "sort": 3400000, "ownership": { @@ -227,7 +232,7 @@ "name": "Depths of Despair", "type": "feature", "system": { - "description": "

The @Lookup[@name] deals double damage to PCs with 0 Hope.

", + "description": "

The Demon deals double damage to PCs with 0 Hope.

", "resource": null, "actions": {}, "originItemType": null, @@ -244,7 +249,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754124808040, + "modifiedTime": 1754124852704, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!kE4dfhqmIQpNd44e.2ESeh4tPhr6DI5ty" }, @@ -259,7 +272,7 @@ "type": "effect", "_id": "n0RYO05pROFU6ov3", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to weigh down the spirits of all PCs within Far range. All targets affected replace their Hope Die with a d8 until they roll a success with Hope or their next rest.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -267,6 +280,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -291,8 +305,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "FC8PIf4BVkhmoJX8", "img": "icons/magic/death/skull-flames-white-blue.webp", @@ -329,7 +342,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754124941819, + "modifiedTime": 1754124964674, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!kE4dfhqmIQpNd44e.FC8PIf4BVkhmoJX8.6WSx03mFbpbPWnOI" } @@ -342,7 +363,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754124856454, + "modifiedTime": 1754126796621, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!kE4dfhqmIQpNd44e.FC8PIf4BVkhmoJX8" }, @@ -357,7 +386,7 @@ "type": "damage", "_id": "urrp8SCFgqbmSTvm", "systemPath": "actions", - "description": "", + "description": "

When a PC fails with Fear, you can mark a Stress to cause all other PCs within Close range to lose a Hope.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -365,6 +394,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -414,8 +444,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "dlMdfUjy2GaqgeOJ", "img": "icons/creatures/unholy/demon-fire-horned-mask.webp", @@ -428,7 +457,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754124968987, + "modifiedTime": 1754126806655, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!kE4dfhqmIQpNd44e.dlMdfUjy2GaqgeOJ" }, @@ -436,82 +473,11 @@ "name": "Momentum", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Demon makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "N0Xx6GnijLXIMGBw": { - "type": "healing", - "_id": "N0Xx6GnijLXIMGBw", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "7qjx1c4C1fUfvXnu", "img": "icons/skills/melee/strike-weapons-orange.webp", @@ -524,7 +490,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754125078956, + "modifiedTime": 1754125096421, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!kE4dfhqmIQpNd44e.7qjx1c4C1fUfvXnu" } diff --git a/src/packs/adversaries/adversary_Demon_of_Hubris_2VN3BftageoTTIzu.json b/src/packs/adversaries/adversary_Demon_of_Hubris_2VN3BftageoTTIzu.json index 16bc1d1f..23cfe473 100644 --- a/src/packs/adversaries/adversary_Demon_of_Hubris_2VN3BftageoTTIzu.json +++ b/src/packs/adversaries/adversary_Demon_of_Hubris_2VN3BftageoTTIzu.json @@ -112,15 +112,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 92, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784249, + "modifiedTime": 1755259462532, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "2VN3BftageoTTIzu", "sort": 3400000, "ownership": { @@ -227,14 +232,14 @@ "name": "Terrifying", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack, all PCs within Far range must lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

", + "description": "

When the Demon makes a successful attack, all PCs within Far range must lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

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

When the Demon makes a successful attack, all PCs within Far range must lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -242,6 +247,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -304,7 +310,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754125153370, + "modifiedTime": 1754126691893, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2VN3BftageoTTIzu.kgPZs8Vx1FpQi2g1" }, @@ -319,7 +333,7 @@ "type": "damage", "_id": "nNfWqBgysVPtFh4w", "systemPath": "actions", - "description": "", + "description": "

When a PC within Far range fails a roll, they can choose to reroll their Fear Die and take the new result. If they still fail, they mark 2 Stress and the Demon clears a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -382,7 +396,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754125212635, + "modifiedTime": 1754126705083, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2VN3BftageoTTIzu.r5EvkhhvvfNv8wZe" }, @@ -390,14 +412,14 @@ "name": "Unparalleled Skill", "type": "feature", "system": { - "description": "

Mark a Stress to deal the @Lookup[@name]’s standard attack damage to a target within Close range.

", + "description": "

Mark a Stress to deal the Demon’s standard attack damage to a target within Close range.

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

Mark a Stress to deal the Demon’s standard attack damage to a target within Close range.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -405,6 +427,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -455,8 +478,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "Y3W44ifKIcoYpONN", "img": "icons/skills/melee/spear-tips-quintuple-orange.webp", @@ -469,7 +491,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754125314989, + "modifiedTime": 1754126776810, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2VN3BftageoTTIzu.Y3W44ifKIcoYpONN" }, @@ -484,7 +514,7 @@ "type": "effect", "_id": "ozGST8UY2MJnrd3w", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to spotlight twoΒ other Demons within Far range.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -492,6 +522,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -511,8 +542,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "6BKWOTuxQWJd5RP5", "img": "icons/creatures/unholy/demon-fire-horned-winged-roar.webp", @@ -525,7 +555,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754125389694, + "modifiedTime": 1754126722830, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2VN3BftageoTTIzu.6BKWOTuxQWJd5RP5" }, @@ -533,14 +571,14 @@ "name": "You Pale in Comparison", "type": "feature", "system": { - "description": "

When a PC fails a roll within Close range of the @Lookup[@name], they must mark a Stress.

@Template[type:emanation|range:c]

", + "description": "

When a PC fails a roll within Close range of the Demon, they must mark a Stress.

@Template[type:emanation|range:c]

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

When a PC fails a roll within Close range of the Demon, they must mark a Stress.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -590,8 +628,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "FLp1dPSJz1ezY0gD", "img": "icons/magic/control/fear-fright-shadow-monster-red.webp", @@ -604,7 +641,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754125438318, + "modifiedTime": 1754126734122, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2VN3BftageoTTIzu.FLp1dPSJz1ezY0gD" } diff --git a/src/packs/adversaries/adversary_Demon_of_Jealousy_SxSOkM4bcVOFyjbo.json b/src/packs/adversaries/adversary_Demon_of_Jealousy_SxSOkM4bcVOFyjbo.json index 31f9b942..d20f1f18 100644 --- a/src/packs/adversaries/adversary_Demon_of_Jealousy_SxSOkM4bcVOFyjbo.json +++ b/src/packs/adversaries/adversary_Demon_of_Jealousy_SxSOkM4bcVOFyjbo.json @@ -71,7 +71,7 @@ } }, "tier": 3, - "description": "

A fickle creature of spindly limbs and insatiable desires.

", + "description": "

fickle creature of spindly limbs and insatiable desires.

", "attack": { "name": "Psychic Assault", "roll": { @@ -107,21 +107,25 @@ }, "base": false } - ], - "direct": true + ] }, "img": "icons/magic/symbols/rune-sigil-rough-white-teal.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 92, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784249, + "modifiedTime": 1755259462726, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "SxSOkM4bcVOFyjbo", "sort": 3400000, "ownership": { @@ -228,7 +232,7 @@ "name": "Unprotected Mind", "type": "feature", "system": { - "description": "

The @Lookup[@name]’s standard attack deals direct damage.

", + "description": "

The Demon’s standard attack deals direct damage.

", "resource": null, "actions": {}, "originItemType": null, @@ -245,7 +249,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754125579282, + "modifiedTime": 1754125603576, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!SxSOkM4bcVOFyjbo.m8qmsssYQ3uFHkil" }, @@ -253,12 +265,11 @@ "name": "My Turn", "type": "feature", "system": { - "description": "

When the @Lookup[@name] marks HP from an attack, spend a number of Fear equal to the HP marked by the @Lookup[@name] to cause the attacker to mark the same number of HP.

", + "description": "

When the Demon marks HP from an attack, spend a number of Fear equal to the HP marked by the Demon to cause the attacker to mark the same number of HP.

", "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "KVyhgMJSSHTwRISA", "img": "icons/magic/control/fear-fright-monster-grin-purple-blue.webp", @@ -271,7 +282,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754125606762, + "modifiedTime": 1754125640104, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!SxSOkM4bcVOFyjbo.KVyhgMJSSHTwRISA" }, @@ -286,7 +305,7 @@ "type": "effect", "_id": "UU3H5aPQejOSoFZw", "systemPath": "actions", - "description": "", + "description": "

When a creature within Close range takes damage from a different adversary, you can mark a Stress to add a d4 to the damage roll.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -294,6 +313,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -313,8 +333,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "pSAupMWw1eYqm84z", "img": "icons/magic/perception/eye-ringed-glow-angry-small-teal.webp", @@ -327,7 +346,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754125644407, + "modifiedTime": 1754126662316, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!SxSOkM4bcVOFyjbo.pSAupMWw1eYqm84z" }, @@ -335,14 +362,14 @@ "name": "What's Yours Is Mine", "type": "feature", "system": { - "description": "

When a PC takes Severe damage within Very Close range of the @Lookup[@name], you can spend a Fear to cause the target to make a Finesse Reaction Roll. On a failure, the @Lookup[@name] seizes one item or consumable of their choice from the target’s inventory.

@Template[type:emanation|range:vc]

", + "description": "

When a PC takes Severe damage within Very Close range of the Demon, you can spend a Fear to cause the target to make a Finesse Reaction Roll. On a failure, the Demon seizes one item or consumable of their choice from the target’s inventory.

@Template[type:emanation|range:vc]

", "resource": null, "actions": { "3cGZ2CofM9HUlELH": { "type": "attack", "_id": "3cGZ2CofM9HUlELH", "systemPath": "actions", - "description": "", + "description": "

When a PC takes Severe damage within Very Close range of the Demon, you can spend a Fear to cause the target to make a Finesse Reaction Roll. On a failure, the Demon seizes one item or consumable of their choice from the target’s inventory.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -386,8 +413,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "589tCxFc8KZ3rdzP", "img": "icons/magic/perception/hand-eye-black.webp", @@ -400,7 +426,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754125731509, + "modifiedTime": 1754126675459, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!SxSOkM4bcVOFyjbo.589tCxFc8KZ3rdzP" } diff --git a/src/packs/adversaries/adversary_Demon_of_Wrath_5lphJAgzoqZI3VoG.json b/src/packs/adversaries/adversary_Demon_of_Wrath_5lphJAgzoqZI3VoG.json index 9e838d6d..0948c917 100644 --- a/src/packs/adversaries/adversary_Demon_of_Wrath_5lphJAgzoqZI3VoG.json +++ b/src/packs/adversaries/adversary_Demon_of_Wrath_5lphJAgzoqZI3VoG.json @@ -108,20 +108,24 @@ }, "base": false } - ], - "direct": true + ] }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 92, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784252, + "modifiedTime": 1755259462568, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "5lphJAgzoqZI3VoG", "sort": 3400000, "ownership": { @@ -228,7 +232,7 @@ "name": "Anger Unrelenting", "type": "feature", "system": { - "description": "

The @Lookup[@name]’s attacks deal direct damage.

", + "description": "

The Demon’s attacks deal direct damage.

", "resource": null, "actions": {}, "originItemType": null, @@ -245,7 +249,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754125871076, + "modifiedTime": 1754125902296, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!5lphJAgzoqZI3VoG.QDrOLKVWVjUnDPK3" }, @@ -260,7 +272,7 @@ "type": "effect", "_id": "V142qYppCGJn8OiN", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to boil the blood of all PCs within Far range. They use a d20 as their Fear Die until the end of the scene.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -268,6 +280,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -287,8 +300,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "a33PW8UkziliowlR", "img": "icons/skills/melee/maneuver-greatsword-yellow.webp", @@ -301,7 +313,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754125905486, + "modifiedTime": 1754126618510, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!5lphJAgzoqZI3VoG.a33PW8UkziliowlR" }, @@ -309,14 +329,14 @@ "name": "Retalliation", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes damage from an attack within Close range, you can mark a Stress to make a standard attack against the attacker.

@Template[type:emanation|range:c]

", + "description": "

When the Demon takes damage from an attack within Close range, you can mark a Stress to make a standard attack against the attacker.

@Template[type:emanation|range:c]

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

When the Demon takes damage from an attack within Close range, you can mark a Stress to make a standard attack against the attacker.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -324,6 +344,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -361,8 +382,7 @@ } } ], - "includeBase": false, - "direct": true + "includeBase": false }, "target": { "type": "any", @@ -395,8 +415,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "DjGydqLXT4rDa7Av", "img": "icons/skills/melee/blood-slash-foam-red.webp", @@ -409,7 +428,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754125967237, + "modifiedTime": 1754126630517, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!5lphJAgzoqZI3VoG.DjGydqLXT4rDa7Av" }, @@ -417,76 +444,11 @@ "name": "Blood and Souls", "type": "feature", "system": { - "description": "

Countdown (Loop 6). Activate the first time an attack is made within sight of the @Lookup[@name]. It ticks down when a PC takes a violent action. When it triggers, summon [[/r 1d4]]@UUID[Compendium.daggerheart.adversaries.Actor.3tqCjDwJAQ7JKqMb]{Minor Demons}, who appear at Close range.

", + "description": "

Countdown (Loop 6). Activate the first time an attack is made within sight of the Demon. It ticks down when a PC takes a violent action. When it triggers, summon [[/r 1d4]]@UUID[Compendium.daggerheart.adversaries.Actor.3tqCjDwJAQ7JKqMb]{Minor Demons}, who appear at Close range.

", "resource": null, - "actions": { - "szg3qA09aJUt9WKS": { - "type": "countdown", - "_id": "szg3qA09aJUt9WKS", - "systemPath": "actions", - "description": "

Countdown (Loop 6). Activate the first time an attack is made within sight of the @Lookup[@name]. It ticks down when a PC takes a violent action.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Blood and Souls", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/creatures/unholy/demon-fire-horned-clawed.webp", - "progress": { - "looping": "looping", - "type": "custom", - "start": 1, - "startFormula": "6", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Countdown", - "img": "icons/creatures/unholy/demon-fire-horned-clawed.webp", - "range": "" - }, - "7G6uWlFEeOLsJIWY": { - "type": "effect", - "_id": "7G6uWlFEeOLsJIWY", - "systemPath": "actions", - "description": "

Summon [[/r 1d4]]@UUID[Compendium.daggerheart.adversaries.Actor.3tqCjDwJAQ7JKqMb]{Minor Demons}, who appear at Close range.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Summon", - "img": "icons/creatures/unholy/demon-fire-horned-clawed.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "2F75BO0xEU8Zlj7T", "img": "icons/creatures/unholy/demon-fire-horned-clawed.webp", @@ -499,7 +461,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754126056313, + "modifiedTime": 1754126142902, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!5lphJAgzoqZI3VoG.2F75BO0xEU8Zlj7T" } diff --git a/src/packs/adversaries/adversary_Demonic_Hound_Pack_NoRZ1PqB8N5wcIw0.json b/src/packs/adversaries/adversary_Demonic_Hound_Pack_NoRZ1PqB8N5wcIw0.json index 2947b7a1..bd8fa5e9 100644 --- a/src/packs/adversaries/adversary_Demonic_Hound_Pack_NoRZ1PqB8N5wcIw0.json +++ b/src/packs/adversaries/adversary_Demonic_Hound_Pack_NoRZ1PqB8N5wcIw0.json @@ -112,15 +112,20 @@ "range": "melee", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 86, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784253, + "modifiedTime": 1755264935543, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "NoRZ1PqB8N5wcIw0", "sort": 1800000, "ownership": { @@ -227,7 +232,7 @@ "name": "Horde (2d4+1)", "type": "feature", "system": { - "description": "

When the @Lookup[@name] has marked half or more of their HP, their standard attack deals 2d4+1 physical damage instead.

", + "description": "

When the Pack has marked half or more of their HP, their standard attack deals 2d4+1 physical damage instead.

", "resource": null, "actions": {}, "originItemType": null, @@ -244,7 +249,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754076936887, + "modifiedTime": 1754076954410, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!NoRZ1PqB8N5wcIw0.NXzJLDoJBJqCXlOm" }, @@ -259,7 +272,7 @@ "type": "damage", "_id": "XyLlX9RWSxciZ7oV", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to make all targets within Very Close range lose a Hope. If a target is not able to lose a Hope, they must instead mark 2 Stress.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -309,8 +322,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "WEbHwamS5ZBphiKq", "img": "icons/creatures/unholy/demons-horned-glowing-pink.webp", @@ -323,7 +335,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754077020106, + "modifiedTime": 1754142474768, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!NoRZ1PqB8N5wcIw0.WEbHwamS5ZBphiKq" }, @@ -331,82 +351,11 @@ "name": "Momentum", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Pack makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "BApDkAKPfyBkqrKY": { - "type": "healing", - "_id": "BApDkAKPfyBkqrKY", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "3mOBJE5c3cP2cGP1", "img": "icons/skills/melee/strike-weapons-orange.webp", @@ -419,7 +368,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754077119018, + "modifiedTime": 1754077139008, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!NoRZ1PqB8N5wcIw0.3mOBJE5c3cP2cGP1" } @@ -452,7 +409,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754076928558, + "modifiedTime": 1754076928558, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.effects!NoRZ1PqB8N5wcIw0.dPZ7PwvTERjtG92P" } diff --git a/src/packs/adversaries/adversary_Dire_Bat_tBWHW00epmMnkawe.json b/src/packs/adversaries/adversary_Dire_Bat_tBWHW00epmMnkawe.json index 16ec7643..6e2f68a7 100644 --- a/src/packs/adversaries/adversary_Dire_Bat_tBWHW00epmMnkawe.json +++ b/src/packs/adversaries/adversary_Dire_Bat_tBWHW00epmMnkawe.json @@ -111,15 +111,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 93, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784253, + "modifiedTime": 1755266383523, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "tBWHW00epmMnkawe", "sort": 3400000, "ownership": { @@ -226,7 +231,7 @@ "name": "Flying", "type": "feature", "system": { - "description": "

While flying, the @Lookup[@name] gains a +3 bonus to their Difficulty.

", + "description": "

While flying, the Bat gains a +3 bonus to their Difficulty.

", "resource": null, "actions": {}, "originItemType": null, @@ -274,7 +279,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754126247394, + "modifiedTime": 1755266380104, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items.effects!tBWHW00epmMnkawe.gx22MpD8fWoi8klZ.qZfNiqw1iAIxeuYg" } @@ -287,7 +300,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754126217979, + "modifiedTime": 1754126244872, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!tBWHW00epmMnkawe.gx22MpD8fWoi8klZ" }, @@ -295,14 +316,14 @@ "name": "Screech", "type": "feature", "system": { - "description": "

Mark a Stress to send a high-pitch screech out toward all targets in front of the @Lookup[@name] within Far range. Those targets must mark 1d4 Stress.

@Template[type:inFront|range:f]

", + "description": "

Mark a Stress to send a high-pitch screech out toward all targets in front of the Bat within Far range. Those targets must mark 1d4 Stress.

@Template[type:inFront|range:f]

", "resource": null, "actions": { "2ILfoiBoMyBCtBsL": { "type": "damage", "_id": "2ILfoiBoMyBCtBsL", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to send a high-pitch screech out toward all targets in front of the Bat within Far range. Those targets must mark 1d4 Stress.

@Template[type:inFront|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -351,8 +372,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "o69lipskvBwGVhe4", "img": "icons/magic/sonic/projectile-sound-rings-wave.webp", @@ -365,7 +385,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754126400449, + "modifiedTime": 1754126592777, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!tBWHW00epmMnkawe.o69lipskvBwGVhe4" }, @@ -380,7 +408,7 @@ "type": "attack", "_id": "wW7WGisUBzyxjsH2", "systemPath": "actions", - "description": "", + "description": "

When an allied Vampire marks HP, you can mark a Stress to fl y into Melee range of the attacker and make an attack with advantage against them. On a success, deal 2d6+2 physical damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -388,6 +416,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -458,8 +487,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "BQPGgbNzKbNkGDJb", "img": "icons/skills/melee/strike-slashes-red.webp", @@ -472,7 +500,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754126469461, + "modifiedTime": 1754126575288, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!tBWHW00epmMnkawe.BQPGgbNzKbNkGDJb" } diff --git a/src/packs/adversaries/adversary_Dire_Wolf_wNzeuQLfLUMvgHlQ.json b/src/packs/adversaries/adversary_Dire_Wolf_wNzeuQLfLUMvgHlQ.json index e3ecda4e..71a12698 100644 --- a/src/packs/adversaries/adversary_Dire_Wolf_wNzeuQLfLUMvgHlQ.json +++ b/src/packs/adversaries/adversary_Dire_Wolf_wNzeuQLfLUMvgHlQ.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 76, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784257, + "modifiedTime": 1755259591554, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "wNzeuQLfLUMvgHlQ", "sort": 5100000, "ownership": { @@ -229,22 +234,21 @@ "_id": "wQXEnMqrl2jo91oy", "img": "icons/creatures/abilities/wolf-howl-moon-purple.webp", "system": { - "description": "

If the @Lookup[@name] makes a successful standard attack and another @Lookup[@name] is within Melee range of the target, deal 1d6+5 physical damage instead of their standard damage and you gain a Fear.

", + "description": "

If the Wolf makes a successful standard attack and another Dire Wolf is within Melee range of the target, deal 1d6+5 physical damage instead of their standard damage and you gain a Fear.

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

If the Wolf makes a successful standard attack and another Dire Wolf is within Melee range of the target, deal 1d6+5 physical damage instead of their standard damage and you gain a Fear.

", "chatDisplay": true, - "actionType": "passive", + "actionType": "action", "cost": [], "uses": { "value": null, "max": "", - "recovery": null, - "consumeOnSuccess": false + "recovery": null }, "damage": { "parts": [ @@ -318,7 +322,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754044226022, + "modifiedTime": 1754143967972, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!wNzeuQLfLUMvgHlQ.wQXEnMqrl2jo91oy" }, @@ -335,7 +347,7 @@ "type": "attack", "_id": "Tvizq1jEfG8FyfNc", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to make an attack against a target within Melee range. On a success, deal 3d4+10 direct physical damage and make them Vulnerable until they clear at least 1 HP.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -343,6 +355,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -378,8 +391,7 @@ } } ], - "includeBase": false, - "direct": true + "includeBase": false }, "target": { "type": "any", @@ -418,8 +430,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -456,7 +467,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754044420696, + "modifiedTime": 1754044425763, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!wNzeuQLfLUMvgHlQ.85XrqDvLP30YOO43.YNKHEFQ4ucGr4Rmc" } @@ -469,7 +488,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754044355011, + "modifiedTime": 1754143975342, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!wNzeuQLfLUMvgHlQ.85XrqDvLP30YOO43" } diff --git a/src/packs/adversaries/adversary_Dryad_wR7cFKrHvRzbzhBT.json b/src/packs/adversaries/adversary_Dryad_wR7cFKrHvRzbzhBT.json index f0a5d81c..c899f15b 100644 --- a/src/packs/adversaries/adversary_Dryad_wR7cFKrHvRzbzhBT.json +++ b/src/packs/adversaries/adversary_Dryad_wR7cFKrHvRzbzhBT.json @@ -112,15 +112,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 93, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784258, + "modifiedTime": 1755259462937, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "wR7cFKrHvRzbzhBT", "sort": 3400000, "ownership": { @@ -227,14 +232,14 @@ "name": "Bramble Patch", "type": "feature", "system": { - "description": "

Mark a Stress to target a point within Far range. Create a patch of thorns that covers an area within Close range of that point. All targets within that area take 2d6+2 physical damage when they act. A target must succeed on a Finesse Roll or deal more than 20 damage to the @Lookup[@name] with an attack to leave the area.

@Template[type:circle|range:c]

", + "description": "

Mark a Stress to target a point within Far range. Create a patch of thorns that covers an area within Close range of that point. All targets within that area take 2d6+2 physical damage when they act. A target must succeed on a Finesse Roll or deal more than 20 damage to the Dryad with an attack to leave the area.

@Template[type:circle|range:c]

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

Mark a Stress to target a point within Far range. Create a patch of thorns that covers an area within Close range of that point. All targets within that area take 2d6+2 physical damage when they act. A target must succeed on a Finesse Roll or deal more than 20 damage to the Dryad with an attack to leave the area.

@Template[type:circle|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -242,6 +247,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -287,7 +293,7 @@ "type": "damage", "_id": "cpZ5c9d3opSA4BN9", "systemPath": "actions", - "description": "

All targets within the area take 2d6+2 physical damage when they act.

", + "description": "

All targets within the area take 2d6+2 physical damage when they act.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -338,8 +344,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "i9HbArl09dX2BvzY", "img": "icons/magic/nature/root-vines-grow-brown.webp", @@ -352,7 +357,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754126924795, + "modifiedTime": 1754127241289, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!wR7cFKrHvRzbzhBT.i9HbArl09dX2BvzY" }, @@ -367,7 +380,7 @@ "type": "effect", "_id": "84Q2b0zIY9c7Yhho", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to grow three @UUID[Compendium.daggerheart.adversaries.Actor.o63nS0k3wHu6EgKP]{Treant Sapling Minions}, who appear at Close range and immediately take the spotlight.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -375,6 +388,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -394,8 +408,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "yKWQLL3qsEZlQjyb", "img": "icons/magic/nature/tree-animated-stump-mushrooms-teal.webp", @@ -408,7 +421,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754127111434, + "modifiedTime": 1754127495675, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!wR7cFKrHvRzbzhBT.yKWQLL3qsEZlQjyb" }, @@ -431,6 +452,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -520,8 +542,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "z4JbqiHuxrWy6Cpu", "img": "icons/magic/nature/vines-thorned-curled-glow-teal-purple.webp", @@ -534,7 +555,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1754127256705, + "modifiedTime": 1755266428753, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items!wR7cFKrHvRzbzhBT.z4JbqiHuxrWy6Cpu" } diff --git a/src/packs/adversaries/adversary_Electric_Eels_TLzY1nDw0Bu9Ud40.json b/src/packs/adversaries/adversary_Electric_Eels_TLzY1nDw0Bu9Ud40.json index 7b41b9e5..87d1999c 100644 --- a/src/packs/adversaries/adversary_Electric_Eels_TLzY1nDw0Bu9Ud40.json +++ b/src/packs/adversaries/adversary_Electric_Eels_TLzY1nDw0Bu9Ud40.json @@ -106,15 +106,20 @@ "range": "melee", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 86, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784258, + "modifiedTime": 1755264962798, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "TLzY1nDw0Bu9Ud40", "sort": 1900000, "ownership": { @@ -221,7 +226,7 @@ "name": "Horde (2d4+1)", "type": "feature", "system": { - "description": "

When the @Lookup[@name] have marked half or more of their HP, their standard attack deals 2d4+1 physical damage instead.

", + "description": "

When the Eels have marked half or more of their HP, their standard attack deals 2d4+1 physical damage instead.

", "resource": null, "actions": {}, "originItemType": null, @@ -238,7 +243,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754077509261, + "modifiedTime": 1754077531733, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!TLzY1nDw0Bu9Ud40.1mNlXMyCQNg4P3n3" }, @@ -253,7 +266,7 @@ "type": "attack", "_id": "L4Rpg7fnFuxpD3im", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to make a standard attack against all targets within Very Close range. You gain a Fear for each target that marks HP.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -261,6 +274,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -331,8 +345,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "u5NL1eUJeAkIEpgt", "img": "icons/magic/lightning/bolt-strike-sparks-teal.webp", @@ -345,7 +358,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754077534109, + "modifiedTime": 1754142494905, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!TLzY1nDw0Bu9Ud40.u5NL1eUJeAkIEpgt" } @@ -378,7 +399,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754077465465, + "modifiedTime": 1754077465465, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.effects!TLzY1nDw0Bu9Ud40.xoal60Ed3Ih7saBJ" } diff --git a/src/packs/adversaries/adversary_Elemental_Spark_P7h54ZePFPHpYwvB.json b/src/packs/adversaries/adversary_Elemental_Spark_P7h54ZePFPHpYwvB.json index b17cae1c..227a40af 100644 --- a/src/packs/adversaries/adversary_Elemental_Spark_P7h54ZePFPHpYwvB.json +++ b/src/packs/adversaries/adversary_Elemental_Spark_P7h54ZePFPHpYwvB.json @@ -99,15 +99,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 93, - "artist": "" - }, - "size": "tiny" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784259, + "modifiedTime": 1755259462705, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "P7h54ZePFPHpYwvB", "sort": 3400000, "ownership": { @@ -214,7 +219,7 @@ "name": "Minion (9)", "type": "feature", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 9 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Elemental is defeated when they take any damage. For every 9 damage a PC deals to the Elemental, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -231,7 +236,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754127542419, + "modifiedTime": 1754127559872, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!P7h54ZePFPHpYwvB.ZwQ2W90hoMe3KFxk" }, @@ -239,7 +252,7 @@ "name": "Group Attack", "type": "feature", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 5 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Elemental Sparks within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 5 physical damage each. Combine this damage.

", "resource": null, "actions": { "vXHZVb0Y7Hqu3uso": { @@ -254,6 +267,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -273,8 +287,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "13OraSLq2YjpZqbm", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", @@ -287,7 +300,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754127561572, + "modifiedTime": 1754127597955, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!P7h54ZePFPHpYwvB.13OraSLq2YjpZqbm" } diff --git a/src/packs/adversaries/adversary_Elite_Soldier_bfhVWMBUh61b9J6n.json b/src/packs/adversaries/adversary_Elite_Soldier_bfhVWMBUh61b9J6n.json index de5db0b2..872f0398 100644 --- a/src/packs/adversaries/adversary_Elite_Soldier_bfhVWMBUh61b9J6n.json +++ b/src/packs/adversaries/adversary_Elite_Soldier_bfhVWMBUh61b9J6n.json @@ -138,15 +138,20 @@ "difficulty": null, "damageMod": "none" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 86, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754090776362, + "modifiedTime": 1755259462811, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -259,7 +264,7 @@ "type": "attack", "_id": "XquYMA2xJZUKSmXQ", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to move into Melee range of an ally and make a standard attack against a target within Very Close range. On a success, deal 2d10+2 physical damage and the ally can clear a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -267,6 +272,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -337,8 +343,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "ojiIZHBd0sMLxSUE", "img": "icons/skills/melee/hand-grip-sword-orange.webp", @@ -351,7 +356,14 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754142511820 }, "_key": "!actors.items!bfhVWMBUh61b9J6n.ojiIZHBd0sMLxSUE" }, @@ -359,14 +371,14 @@ "name": "Vassal's Loyalty", "type": "feature", "system": { - "description": "

When the @Lookup[@name] is within Very Close range of a knight or other noble who would take damage, you can mark a Stress to move into Melee range of them and take the damage instead.

", + "description": "

When the Soldier is within Very Close range of a knight or other noble who would take damage, you can mark a Stress to move into Melee range of them and take the damage instead.

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

When the Soldier is within Very Close range of a knight or other noble who would take damage, you can mark a Stress to move into Melee range of them and take the damage instead.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -374,6 +386,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -393,8 +406,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "zcfyEY29yWqJtZbl", "img": "icons/magic/defensive/shield-barrier-blue.webp", @@ -407,7 +419,14 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754142520242 }, "_key": "!actors.items!bfhVWMBUh61b9J6n.zcfyEY29yWqJtZbl" } diff --git a/src/packs/adversaries/adversary_Failed_Experiment_ChwwVqowFw8hJQwT.json b/src/packs/adversaries/adversary_Failed_Experiment_ChwwVqowFw8hJQwT.json index 39800002..491e085d 100644 --- a/src/packs/adversaries/adversary_Failed_Experiment_ChwwVqowFw8hJQwT.json +++ b/src/packs/adversaries/adversary_Failed_Experiment_ChwwVqowFw8hJQwT.json @@ -112,15 +112,20 @@ "range": "melee", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 86, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784262, + "modifiedTime": 1755265009751, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "ChwwVqowFw8hJQwT", "sort": 1500000, "ownership": { @@ -227,7 +232,7 @@ "name": "Warped Fortitude", "type": "feature", "system": { - "description": "

The @Lookup[@name] is resistant to physical damage.

", + "description": "

The Experiment is resistant to physical damage.

", "resource": null, "actions": {}, "originItemType": null, @@ -275,7 +280,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754077898647, + "modifiedTime": 1754077926996, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!ChwwVqowFw8hJQwT.nCIGFPFOKzyznL0O.3QLH2EEtcUEZolFz" } @@ -288,7 +301,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754077874345, + "modifiedTime": 1754077892913, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ChwwVqowFw8hJQwT.nCIGFPFOKzyznL0O" }, @@ -296,7 +317,7 @@ "name": "Overwhelm", "type": "feature", "system": { - "description": "

When a target the @Lookup[@name] attacks has other adversaries within Very Close range, the @Lookup[@name] deals double damage.

", + "description": "

When a target the Experiment attacks has other adversaries within Very Close range, the Experiment deals double damage.

", "resource": null, "actions": {}, "originItemType": null, @@ -313,7 +334,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754077929911, + "modifiedTime": 1754077955031, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ChwwVqowFw8hJQwT.1fE6xo8yIOmZkGNE" }, @@ -321,14 +350,14 @@ "name": "Lurching Lunge", "type": "feature", "system": { - "description": "

Mark a Stress to spotlight the @Lookup[@name] as an additional GM move instead of spending Fear.

", + "description": "

Mark a Stress to spotlight the Experiment as an additional GM move instead of spending Fear.

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

Mark a Stress to spotlight the Experiment as an additional GM move instead of spending Fear.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -336,6 +365,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -355,8 +385,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "g0h3Zo6xqgfSlyxi", "img": "icons/skills/melee/strike-slashes-red.webp", @@ -369,7 +398,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754077960964, + "modifiedTime": 1754142534263, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ChwwVqowFw8hJQwT.g0h3Zo6xqgfSlyxi" } diff --git a/src/packs/adversaries/adversary_Fallen_Shock_Troop_OsLG2BjaEdTZUJU9.json b/src/packs/adversaries/adversary_Fallen_Shock_Troop_OsLG2BjaEdTZUJU9.json index 163c61f7..2b4aea79 100644 --- a/src/packs/adversaries/adversary_Fallen_Shock_Troop_OsLG2BjaEdTZUJU9.json +++ b/src/packs/adversaries/adversary_Fallen_Shock_Troop_OsLG2BjaEdTZUJU9.json @@ -99,15 +99,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 97, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784264, + "modifiedTime": 1755259462703, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "OsLG2BjaEdTZUJU9", "sort": 900000, "ownership": { @@ -214,7 +219,7 @@ "name": "Minion (12)", "type": "feature", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 12 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Shock Troop is defeated when they take any damage. For every 12 damage a PC deals to the Shock Troop, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -231,7 +236,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754133447568, + "modifiedTime": 1754133466350, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!OsLG2BjaEdTZUJU9.yvyAJTEyCDsDXgkb" }, @@ -239,7 +252,7 @@ "name": "Aura of Doom", "type": "feature", "system": { - "description": "

When a PC marks HP from an attack by the @Lookup[@name], they lose a Hope.

", + "description": "

When a PC marks HP from an attack by the Shock Troop, they lose a Hope.

", "resource": null, "actions": { "HcGa2nD0WziA0lFP": { @@ -309,7 +322,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754133468584, + "modifiedTime": 1754133530157, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!OsLG2BjaEdTZUJU9.eW1Z3TTGlgvbgdCD" }, @@ -317,14 +338,14 @@ "name": "Group Attack", "type": "feature", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 12 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Fallen Shock Troops within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 12 physical damage each. Combine this damage.

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

Spend a Fear to choose a target and spotlight all Fallen Shock Troops within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 12 physical damage each. Combine this damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -332,6 +353,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -351,8 +373,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "gC4whvt2r9Tfso9Y", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", @@ -365,7 +386,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754133533329, + "modifiedTime": 1754133579386, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!OsLG2BjaEdTZUJU9.gC4whvt2r9Tfso9Y" } diff --git a/src/packs/adversaries/adversary_Fallen_Sorcerer_PELRry1vqjBzSAlr.json b/src/packs/adversaries/adversary_Fallen_Sorcerer_PELRry1vqjBzSAlr.json index fc064958..2dece191 100644 --- a/src/packs/adversaries/adversary_Fallen_Sorcerer_PELRry1vqjBzSAlr.json +++ b/src/packs/adversaries/adversary_Fallen_Sorcerer_PELRry1vqjBzSAlr.json @@ -112,15 +112,20 @@ "img": "icons/weapons/staves/staff-animal-skull-bull.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 97, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784265, + "modifiedTime": 1755259462708, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "PELRry1vqjBzSAlr", "sort": 1000000, "ownership": { @@ -227,14 +232,14 @@ "name": "Conflagration", "type": "feature", "system": { - "description": "

Spend a Fear to unleash an all-consuming firestorm and make an attack against all targets within Close range. Targets the @Lookup[@name] succeeds against take 2d10+6 direct magic damage.

@Template[type:emanation|range:c]

", + "description": "

Spend a Fear to unleash an all-consuming f i restorm and make an attack against all targets within Close range. Targets the Sorcerer succeeds against take 2d10+6 direct magic damage.

@Template[type:emanation|range:c]

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

Spend a Fear to unleash an all-consuming f i restorm and make an attack against all targets within Close range. Targets the Sorcerer succeeds against take 2d10+6 direct magic damage.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -242,6 +247,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -312,8 +318,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "s15sNyb3JYMzBLIU", "img": "icons/magic/fire/projectile-beams-salvo-red.webp", @@ -326,7 +331,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754133639898, + "modifiedTime": 1754133720280, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!PELRry1vqjBzSAlr.s15sNyb3JYMzBLIU" }, @@ -341,7 +354,7 @@ "type": "effect", "_id": "mXWOpXcYALYqicTw", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to trap a target within Far range in a powerful illusion of their worst fears. While trapped, the target is Restrained and Vulnerable until they break free, ending both conditions, with a successful Instinct Roll.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -366,8 +379,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "ecp9o8t1dQFXGsse", "img": "icons/magic/death/skull-energy-light-white.webp", @@ -407,7 +419,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754133803435, + "modifiedTime": 1754133819473, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!PELRry1vqjBzSAlr.ecp9o8t1dQFXGsse.Q99saHj6NOY2PSXf" } @@ -420,7 +440,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754133724799, + "modifiedTime": 1754133803447, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!PELRry1vqjBzSAlr.ecp9o8t1dQFXGsse" }, @@ -428,12 +456,11 @@ "name": "Slippery", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes damage from an attack, they can teleport up to Far range.

", + "description": "

When the Sorcerer takes damage from an attack, they can teleport up to Far range.

", "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "C74czwNeWF5vS1DZ", "img": "icons/magic/symbols/ring-circle-smoke-blue.webp", @@ -446,7 +473,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754133825153, + "modifiedTime": 1754133842162, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!PELRry1vqjBzSAlr.C74czwNeWF5vS1DZ" }, @@ -454,9 +489,31 @@ "name": "Shackles of Guilt", "type": "feature", "system": { - "description": "

Countdown (Loop 2d6). When the @Lookup[@name] is in the spotlight for the first time, activate the countdown. When it triggers, all targets within Far range become Vulnerable and must mark a Stress as they relive their greatest regrets. A target can break free from their regret with a successful Presence or Strength Roll. When a PC fails to break free, they lose a Hope.

@Template[type:emanation|range:f]

", + "description": "

Countdown (Loop 2d6). When the Sorcerer is in the spotlight for the first time, activate the countdown. When it triggers, all targets within Far range become Vulnerable and must mark a Stress as they relive their greatest regrets. A target can break free from their regret with a successful Presence or Strength Roll. When a PC fails to break free, they lose a Hope.

@Template[type:emanation|range:f]

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

Countdown (Loop 2d6). When the Sorcerer is in the spotlight for the first time, activate the countdown.

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdown", + "img": "icons/magic/unholy/strike-hand-glow-pink.webp", + "range": "" + }, "7b0FkpAnWz9a5EWx": { "type": "damage", "_id": "7b0FkpAnWz9a5EWx", @@ -513,48 +570,10 @@ "name": "Mark Stress", "img": "icons/magic/unholy/strike-hand-glow-pink.webp", "range": "" - }, - "11PtfoxbgOXxNlkG": { - "type": "countdown", - "_id": "11PtfoxbgOXxNlkG", - "systemPath": "actions", - "description": "

Countdown (Loop 2d6). When the @Lookup[@name] is in the spotlight for the first time, activate the countdown.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Shackles of Guilt", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/unholy/strike-hand-glow-pink.webp", - "progress": { - "looping": "looping", - "type": "actionRoll", - "start": 1, - "startFormula": "2d6", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/unholy/strike-hand-glow-pink.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "gwSgBhkcekCGvXxz", "img": "icons/magic/unholy/strike-hand-glow-pink.webp", @@ -593,7 +612,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754135342381, + "modifiedTime": 1754135347273, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!PELRry1vqjBzSAlr.gwSgBhkcekCGvXxz.pWDg0MADoohKu40O" } @@ -606,7 +633,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754133847132, + "modifiedTime": 1754135342391, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!PELRry1vqjBzSAlr.gwSgBhkcekCGvXxz" } diff --git a/src/packs/adversaries/adversary_Fallen_Warlord__Realm_Breaker_hxZ0sgoFJubh5aj6.json b/src/packs/adversaries/adversary_Fallen_Warlord__Realm_Breaker_hxZ0sgoFJubh5aj6.json index b2cdc489..aa8b015e 100644 --- a/src/packs/adversaries/adversary_Fallen_Warlord__Realm_Breaker_hxZ0sgoFJubh5aj6.json +++ b/src/packs/adversaries/adversary_Fallen_Warlord__Realm_Breaker_hxZ0sgoFJubh5aj6.json @@ -1,6 +1,6 @@ { "folder": "7XHlANCPz18yvl5L", - "name": "Fallen Warlord: Realm-Breaker", + "name": "Fallen Warlord: Realm Breaker", "type": "adversary", "_id": "hxZ0sgoFJubh5aj6", "img": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", @@ -155,13 +155,7 @@ } } }, - "motivesAndTactics": "Corrupt, dominate, punish, break the weak", - "attribution": { - "source": "Daggerheart SRD", - "page": 97, - "artist": "" - }, - "size": "medium" + "motivesAndTactics": "Corrupt, dominate, punish, break the weak" }, "prototypeToken": { "name": "Fallen Warlord: Realm Breaker", @@ -262,42 +256,9 @@ "name": "Relentless (2)", "type": "feature", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to two times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Realm-Breaker can be spotlighted up to two times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "9IHzeKjP35M5jj3b": { - "type": "effect", - "_id": "9IHzeKjP35M5jj3b", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "1", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "originId": null }, @@ -312,7 +273,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754134022685, + "modifiedTime": 1754134047203, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!hxZ0sgoFJubh5aj6.feb6vTfDsi1yQLpn" }, @@ -320,14 +289,14 @@ "name": "Firespite Plate Armor", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes damage, reduce it by 2d10.

", + "description": "

When the Realm-Breaker takes damage, reduce it by 2d10.

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

When the Realm-Breaker takes damage, reduce it by 2d10.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -384,7 +353,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754134042970, + "modifiedTime": 1754134159994, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!hxZ0sgoFJubh5aj6.onaJxgnUtf0ZDyD4" }, @@ -399,7 +376,7 @@ "type": "attack", "_id": "zMVhUekP8pcyQGFR", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to make a standard attack against all targets within Very Close range. When a target uses armor to reduce damage from this attack, they must mark 2 Armor Slots.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -407,6 +384,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -477,8 +455,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "PVLjJaQLH3LK3svk", "img": "icons/skills/melee/blood-slash-foam-red.webp", @@ -491,7 +468,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754134565618, + "modifiedTime": 1754134685887, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!hxZ0sgoFJubh5aj6.PVLjJaQLH3LK3svk" }, @@ -499,14 +484,36 @@ "name": "All-Consuming Rage", "type": "feature", "system": { - "description": "

Countdown (Decreasing 8). When the @Lookup[@name] is in the spotlight for the first time, activate the countdown. When it triggers, create a torrent of incarnate rage that rends flesh from bone. All targets within Far range must make a Presence Reaction Roll. Targets who fail take 2d6+10 direct magic damage. Targets who succeed take half damage. For each HP marked from this damage, summon a @UUID[Compendium.daggerheart.adversaries.Actor.OsLG2BjaEdTZUJU9]{Fallen Shock Troop} within Very Close range of the target who marked that HP. If the countdown ever decreases its maximum value to 0, the @Lookup[@name] marks their remaining HP and all targets within Far range must mark all remaining HP and make a death move.

@Template[type:emanation|range:f]

", + "description": "

Countdown (Decreasing 8). When the Realm-Breaker is in the spotlight for the first time, activate the countdown.

When it triggers, create a torrent of incarnate rage that rends flesh from bone. All targets within Far range must make a Presence Reaction Roll. Targets who fail take 2d6+10 direct magic damage. Targets who succeed take half damage. For each HP marked from this damage, summon a @UUID[Compendium.daggerheart.adversaries.Actor.OsLG2BjaEdTZUJU9]{Fallen Shock Troop} within Very Close range of the target who marked that HP. If the countdown ever decreases its maximum value to 0, the Realm-Breaker marks their remaining HP and all targets within Far range must mark all remaining HP and make a death move.

@Template[type:emanation|range:f]

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

Countdown (Decreasing 8). When the Realm-Breaker is in the spotlight for the first time, activate the countdown.

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdown", + "img": "icons/magic/control/fear-fright-monster-grin-red-orange.webp", + "range": "" + }, "rgy5wXyXJWh6uWxC": { "type": "attack", "_id": "rgy5wXyXJWh6uWxC", "systemPath": "actions", - "description": "

When it triggers, create a torrent of incarnate rage that rends flesh from bone. All targets within Far range must make a Presence Reaction Roll. Targets who fail take 2d6+10 direct magic damage. Targets who succeed take half damage. For each HP marked from this damage, summon a @UUID[Compendium.daggerheart.adversaries.Actor.OsLG2BjaEdTZUJU9]{Fallen Shock Troop} within Very Close range of the target who marked that HP. If the countdown ever decreases its maximum value to 0, the @Lookup[@name] marks their remaining HP and all targets within Far range must mark all remaining HP and make a death move.

@Template[type:emanation|range:f]

", + "description": "

When it triggers, create a torrent of incarnate rage that rends flesh from bone. All targets within Far range must make a Presence Reaction Roll. Targets who fail take 2d6+10 direct magic damage. Targets who succeed take half damage. For each HP marked from this damage, summon a @UUID[Compendium.daggerheart.adversaries.Actor.OsLG2BjaEdTZUJU9]{Fallen Shock Troop} within Very Close range of the target who marked that HP. If the countdown ever decreases its maximum value to 0, the Realm-Breaker marks their remaining HP and all targets within Far range must mark all remaining HP and make a death move.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -574,48 +581,10 @@ "name": "Roll Save", "img": "icons/magic/control/fear-fright-monster-grin-red-orange.webp", "range": "far" - }, - "8e3BHmOFLvRwPbTW": { - "type": "countdown", - "_id": "8e3BHmOFLvRwPbTW", - "systemPath": "actions", - "description": "

Countdown (Decreasing 8). When the @Lookup[@name] is in the spotlight for the first time, activate the countdown.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "All-Consuming Rage", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/control/fear-fright-monster-grin-red-orange.webp", - "progress": { - "looping": "decreasing", - "type": "actionRoll", - "start": 1, - "startFormula": "8", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/control/fear-fright-monster-grin-red-orange.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "48tIwFQr64IQ5LaY", "img": "icons/magic/control/fear-fright-monster-grin-red-orange.webp", @@ -628,7 +597,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754134694918, + "modifiedTime": 1754134968076, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!hxZ0sgoFJubh5aj6.48tIwFQr64IQ5LaY" }, @@ -636,14 +613,14 @@ "name": "Doombringer", "type": "feature", "system": { - "description": "

When a target marks HP from an attack by the @Lookup[@name], all PCs within Far range of the target must lose a Hope.

@Template[type:emanation|range:f]

", + "description": "

When a target marks HP from an attack by the Realm-Breaker, all PCs within Far range of the target must lose a Hope.

@Template[type:emanation|range:f]

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

When a target marks HP from an attack by the Realm-Breaker, all PCs within Far range of the target must lose a Hope.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -693,8 +670,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "v74W0MUqVi9vPUEw", "img": "icons/magic/death/skull-energy-light-purple.webp", @@ -707,7 +683,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754134976453, + "modifiedTime": 1754135062809, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!hxZ0sgoFJubh5aj6.v74W0MUqVi9vPUEw" }, @@ -715,12 +699,11 @@ "name": "I Have Never Known Defeat", "type": "feature", "system": { - "description": "

When the @Lookup[@name] marks their last HP, replace them with the @UUID[Compendium.daggerheart.adversaries.Actor.RXkZTwBRi4dJ3JE5]{Fallen Warlord: Undefeated Champion} and immediately spotlight them.

", + "description": "

When the Realm-Breaker marks their last HP, replace them with the @UUID[Compendium.daggerheart.adversaries.Actor.RXkZTwBRi4dJ3JE5]{Fallen Warlord: Undefeated Champion} and immediately spotlight them.

", "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "RscRTl8U8u6WcwAB", "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", @@ -733,7 +716,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754135068919, + "modifiedTime": 1754135926320, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!hxZ0sgoFJubh5aj6.RscRTl8U8u6WcwAB" } @@ -745,5 +736,16 @@ "99pQVoplilbkZnOk": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753929378070, + "modifiedTime": 1755259462847, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_key": "!actors!hxZ0sgoFJubh5aj6" } diff --git a/src/packs/adversaries/adversary_Fallen_Warlord__Undefeated_Champion_RXkZTwBRi4dJ3JE5.json b/src/packs/adversaries/adversary_Fallen_Warlord__Undefeated_Champion_RXkZTwBRi4dJ3JE5.json index 89d61c1c..45a59c7e 100644 --- a/src/packs/adversaries/adversary_Fallen_Warlord__Undefeated_Champion_RXkZTwBRi4dJ3JE5.json +++ b/src/packs/adversaries/adversary_Fallen_Warlord__Undefeated_Champion_RXkZTwBRi4dJ3JE5.json @@ -156,13 +156,7 @@ }, "chatDisplay": false }, - "motivesAndTactics": "Dispatch merciless death, punish the defi ant, secure victory at any cost", - "attribution": { - "source": "Daggerheart SRD", - "page": 98, - "artist": "" - }, - "size": "medium" + "motivesAndTactics": "Dispatch merciless death, punish the defi ant, secure victory at any cost" }, "prototypeToken": { "name": "Fallen Warlord: Undefeated Champion", @@ -263,42 +257,9 @@ "name": "Relentless (3)", "type": "feature", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to three times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Undefeated Champion can be spotlighted up to three times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "BoDTEH8Y6i9G1d4R": { - "type": "effect", - "_id": "BoDTEH8Y6i9G1d4R", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "2", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "originId": null }, @@ -313,7 +274,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754135392829, + "modifiedTime": 1754135407562, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!RXkZTwBRi4dJ3JE5.ct5vhSsNP25arggo" }, @@ -321,14 +290,14 @@ "name": "Faltering Armor", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes damage, reduce it by 1d10.

", + "description": "

When the Undefeated Champion takes damage, reduce it by 1d10.

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

When the Undefeated Champion takes damage, reduce it by 1d10.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -385,7 +354,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754135409651, + "modifiedTime": 1754135466148, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!RXkZTwBRi4dJ3JE5.zypNlBVfuaHVw1M4" }, @@ -393,14 +370,14 @@ "name": "Shattering Strike", "type": "feature", "system": { - "description": "

Mark a Stress to make a standard attack against all targets within Very Close range. PCs the @Lookup[@name] succeeds against lose a number of Hope equal to the HP they marked from this attack.

@Template[type:emanation|range:vc]

", + "description": "

Mark a Stress to make a standard attack against all targets within Very Close range. PCs the Champion succeeds against lose a number of Hope equal to the HP they marked from this attack.

@Template[type:emanation|range:vc]

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

Mark a Stress to make a standard attack against all targets within Very Close range. PCs the Champion succeeds against lose a number of Hope equal to the HP they marked from this attack.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -471,8 +448,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "t8yOkGWmPgQ6EbIr", "img": "icons/skills/melee/sword-stuck-glowing-pink.webp", @@ -485,7 +461,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754135470237, + "modifiedTime": 1754135546197, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!RXkZTwBRi4dJ3JE5.t8yOkGWmPgQ6EbIr" }, @@ -500,7 +484,7 @@ "type": "effect", "_id": "hGMzqw00JTlYfHYy", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to summon a number of @UUID[Compendium.daggerheart.adversaries.Actor.OsLG2BjaEdTZUJU9]{Fallen Shock Troops} equal to twice the number of PCs. The Shock Troops appear at Far range.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -508,6 +492,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -527,8 +512,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "AP7W9ruUCdTHO69S", "img": "icons/magic/death/undead-skeleton-worn-blue.webp", @@ -541,7 +525,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754135567933, + "modifiedTime": 1754135643635, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!RXkZTwBRi4dJ3JE5.AP7W9ruUCdTHO69S" }, @@ -549,14 +541,36 @@ "name": "Circle of Defilement", "type": "feature", "system": { - "description": "

Countdown (1d8). When the @Lookup[@name] is in the spotlight for the first time, activate the countdown. When it triggers, activate a magical circle covering an area within Far range of the @Lookup[@name]. A target within that area is Vulnerable until they leave the circle. The circle can be removed by dealing Severe damage to the @Lookup[@name].

", + "description": "

Countdown (1d8). When the Undefeated Champion is in the spotlight for the fi rst time, activate the countdown. When it triggers, activate a magical circle covering an area within Far range of the Champion. A target within that area is Vulnerable until they leave the circle. The circle can be removed by dealing Severe damage to the Undefeated Champion.

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

Countdown (1d8). When the Undefeated Champion is in the spotlight for the fi rst time, activate the countdown.

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdown", + "img": "icons/magic/unholy/barrier-fire-pink.webp", + "range": "" + }, "mHeYZ8e8MbkGz22d": { "type": "effect", "_id": "mHeYZ8e8MbkGz22d", "systemPath": "actions", - "description": "

Activate a magical circle covering an area within Far range of the @Lookup[@name]. A target within that area is Vulnerable until they leave the circle. The circle can be removed by dealing Severe damage to the @Lookup[@name].

", + "description": "

When the countdown triggers, activate a magical circle covering an area within Far range of the Champion. A target within that area is Vulnerable until they leave the circle. The circle can be removed by dealing Severe damage to the Undefeated Champion.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -578,48 +592,10 @@ "name": "Circle", "img": "icons/magic/unholy/barrier-fire-pink.webp", "range": "" - }, - "4x13WyksHU0u0j20": { - "type": "countdown", - "_id": "4x13WyksHU0u0j20", - "systemPath": "actions", - "description": "

Countdown (1d8). When the @Lookup[@name] is in the spotlight for the first time, activate the countdown.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Circle of Defilement", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/unholy/barrier-fire-pink.webp", - "progress": { - "looping": "noLooping", - "type": "actionRoll", - "start": 1, - "startFormula": "1d8", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/unholy/barrier-fire-pink.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "55P7ZijSbQeVHCw4", "img": "icons/magic/unholy/barrier-fire-pink.webp", @@ -658,7 +634,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754135780863, + "modifiedTime": 1754135799899, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!RXkZTwBRi4dJ3JE5.55P7ZijSbQeVHCw4.eZp1PSCHZzdb47oM" } @@ -671,7 +655,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754135646248, + "modifiedTime": 1754135780879, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!RXkZTwBRi4dJ3JE5.55P7ZijSbQeVHCw4" }, @@ -679,82 +671,11 @@ "name": "Momentum", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Undefeated Champion makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "i1Wmh6Mok4Qsur00": { - "type": "healing", - "_id": "i1Wmh6Mok4Qsur00", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "ReWtcLE5akrSauI1", "img": "icons/skills/melee/strike-weapons-orange.webp", @@ -767,7 +688,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754135803929, + "modifiedTime": 1754135822414, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!RXkZTwBRi4dJ3JE5.ReWtcLE5akrSauI1" }, @@ -775,14 +704,14 @@ "name": "Doombringer", "type": "feature", "system": { - "description": "

When a target marks HP from an attack by the @Lookup[@name], all PCs within Far range of the target lose a Hope.

@Template[type:emanation|range:f]

", + "description": "

When a target marks HP from an attack by the Undefeated Champion, all PCs within Far range of the target lose a Hope.

@Template[type:emanation|range:f]

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

When a target marks HP from an attack by the Undefeated Champion, all PCs within Far range of the target lose a Hope.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -832,8 +761,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "tQRotPLi3eokgUdM", "img": "icons/magic/death/skull-energy-light-purple.webp", @@ -846,7 +774,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754135825115, + "modifiedTime": 1754135895530, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!RXkZTwBRi4dJ3JE5.tQRotPLi3eokgUdM" } @@ -858,5 +794,16 @@ "99pQVoplilbkZnOk": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753929476879, + "modifiedTime": 1755259462720, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_key": "!actors!RXkZTwBRi4dJ3JE5" } diff --git a/src/packs/adversaries/adversary_Giant_Beastmaster_8VZIgU12cB3cvlyH.json b/src/packs/adversaries/adversary_Giant_Beastmaster_8VZIgU12cB3cvlyH.json index 6d09a490..2408d7cd 100644 --- a/src/packs/adversaries/adversary_Giant_Beastmaster_8VZIgU12cB3cvlyH.json +++ b/src/packs/adversaries/adversary_Giant_Beastmaster_8VZIgU12cB3cvlyH.json @@ -112,15 +112,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 87, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784268, + "modifiedTime": 1755259462604, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "8VZIgU12cB3cvlyH", "sort": 800000, "ownership": { @@ -227,7 +232,7 @@ "name": "Two as One", "type": "feature", "system": { - "description": "

When the @Lookup[@name] is spotlighted, you can also spotlight a Tier 1 animal adversary currently under their control.

", + "description": "

When the Beastmaster is spotlighted, you can also spotlight a Tier 1 animal adversary currently under their control.

", "resource": null, "actions": {}, "originItemType": null, @@ -244,7 +249,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754078333765, + "modifiedTime": 1754078391092, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8VZIgU12cB3cvlyH.oUuUwtHMJidzLN6q" }, @@ -259,7 +272,7 @@ "type": "attack", "_id": "ErwQgU4dwBcmZIBX", "systemPath": "actions", - "description": "", + "description": "

Make a standard attack against a target. On a success, you can mark a Stress to pin them to a nearby surface. The pinned target is Restrained until they break free with a successful Finesse or Strength Roll.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -333,8 +346,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "6ZrDjgnWufJohkp1", "img": "icons/skills/ranged/arrow-flying-broadhead-metal.webp", @@ -368,12 +380,20 @@ "description": "

You are Restrained until you break free with a successful Finesse or Strength Roll.

", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754078482776, + "modifiedTime": 1754078515954, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!8VZIgU12cB3cvlyH.6ZrDjgnWufJohkp1.vb1sZCOLwDNLsr3j" } @@ -386,7 +406,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754078394872, + "modifiedTime": 1754142550948, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8VZIgU12cB3cvlyH.6ZrDjgnWufJohkp1" }, @@ -394,14 +422,14 @@ "name": "Deadly Companion", "type": "feature", "system": { - "description": "

Twice per scene, summon a Bear, Dire Wolf, or similar Tier 1 animal adversary under the @Lookup[@name]’s control. The adversary appears at Close range and is immediately spotlighted.

", + "description": "

Twice per scene, summon a Bear, Dire Wolf, or similar Tier 1 animal adversary under the Beastmaster’s control. The adversary appears at Close range and is immediately spotlighted.

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

Twice per scene, summon a @UUID[Compendium.daggerheart.adversaries.Actor.71qKDLKO3CsrNkdy]{Bear}, @UUID[Compendium.daggerheart.adversaries.Actor.wNzeuQLfLUMvgHlQ]{Dire Wolf} or similar Tier 1 animal adversary under the Beastmaster’s control. The adversary appears at Close range and is immediately spotlighted.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -422,8 +450,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "w1oHm0NoEavQgUzl", "img": "icons/creatures/mammals/ox-bull-horned-glowing-orange.webp", @@ -436,7 +463,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1754078527859, + "modifiedTime": 1755265167372, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items!8VZIgU12cB3cvlyH.w1oHm0NoEavQgUzl" } diff --git a/src/packs/adversaries/adversary_Giant_Brawler_YnObCleGjPT7yqEc.json b/src/packs/adversaries/adversary_Giant_Brawler_YnObCleGjPT7yqEc.json index 4f76b706..db039085 100644 --- a/src/packs/adversaries/adversary_Giant_Brawler_YnObCleGjPT7yqEc.json +++ b/src/packs/adversaries/adversary_Giant_Brawler_YnObCleGjPT7yqEc.json @@ -112,15 +112,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 87, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784268, + "modifiedTime": 1755259462794, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "YnObCleGjPT7yqEc", "sort": 2300000, "ownership": { @@ -227,14 +232,14 @@ "name": "Battering Ram", "type": "feature", "system": { - "description": "

Mark a Stress to have the @Lookup[@name] charge at an inanimate object within Close range they could feasibly smash (such as a wall, cart, or market stand) and destroy it. All targets within Very Close range of the object must succeed on an Agility Reaction Roll or take 2d4+3 physical damage from the shrapnel.

@Template[type:circle|range:vc]

", + "description": "

Mark a Stress to have the Brawler charge at an inanimate object within Close range they could feasibly smash (such as a wall, cart, or market stand) and destroy it. All targets within Very Close range of the object must succeed on an Agility Reaction Roll or take 2d4+3 physical damage from the shrapnel.

@Template[type:circle|range:vc]

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

Mark a Stress to have the Brawler charge at an inanimate object within Close range they could feasibly smash (such as a wall, cart, or market stand) and destroy it. All targets within Very Close range of the object must succeed on an Agility Reaction Roll or take 2d4+3 physical damage from the shrapnel.

@Template[type:circle|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -242,6 +247,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -312,8 +318,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "ro8AtBdgklyyuydK", "img": "icons/skills/melee/shield-damaged-broken-orange.webp", @@ -326,7 +331,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754078623104, + "modifiedTime": 1754142564481, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YnObCleGjPT7yqEc.ro8AtBdgklyyuydK" }, @@ -334,14 +347,14 @@ "name": "Bloody Reprisal", "type": "feature", "system": { - "description": "

When the @Lookup[@name] marks 2 or more HP from an attack within Very Close range, you can make a standard attack against the attacker. On a success, the @Lookup[@name] deals 2d6+15 physical damage instead of their standard damage.

", + "description": "

When the Brawler marks 2 or more HP from an attack within Very Close range, you can make a standard attack against the attacker. On a success, the Brawler deals 2d6+15 physical damage instead of their standard damage.

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

When the Brawler marks 2 or more HP from an attack within Very Close range, you can make a standard attack against the attacker. On a success, the Brawler deals 2d6+15 physical damage instead of their standard damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -412,8 +425,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "kKBbEAffbHxmHo15", "img": "icons/skills/melee/strike-flail-spiked-pink.webp", @@ -426,7 +438,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754078720546, + "modifiedTime": 1754142579703, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YnObCleGjPT7yqEc.kKBbEAffbHxmHo15" }, @@ -434,82 +454,11 @@ "name": "Momentum", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Brawler makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "U2AfyadkJluHXA4r": { - "type": "healing", - "_id": "U2AfyadkJluHXA4r", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "B0EniYxyLvjJSqYb", "img": "icons/skills/melee/strike-weapons-orange.webp", @@ -522,7 +471,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754078789986, + "modifiedTime": 1754078804616, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YnObCleGjPT7yqEc.B0EniYxyLvjJSqYb" } diff --git a/src/packs/adversaries/adversary_Giant_Eagle_OMQ0v6PE8s1mSU0K.json b/src/packs/adversaries/adversary_Giant_Eagle_OMQ0v6PE8s1mSU0K.json index b0ba4170..a281a775 100644 --- a/src/packs/adversaries/adversary_Giant_Eagle_OMQ0v6PE8s1mSU0K.json +++ b/src/packs/adversaries/adversary_Giant_Eagle_OMQ0v6PE8s1mSU0K.json @@ -138,15 +138,20 @@ "difficulty": null, "damageMod": "none" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 87, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1754090770908, + "modifiedTime": 1755265221515, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -252,7 +257,7 @@ "name": "Flight", "type": "feature", "system": { - "description": "

While flying, the @Lookup[@name] gains a +3 bonus to their Difficulty.

", + "description": "

While flying, the Eagle gains a +3 bonus to their Difficulty.

", "resource": null, "actions": {}, "originItemType": null, @@ -300,7 +305,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "VZIeX2YDvX338Zvr", + "modifiedTime": 1755265232810 }, "_key": "!actors.items.effects!OMQ0v6PE8s1mSU0K.wdNrstuoh4MFShYG.odAyKY0BSAkcO3Dd" } @@ -313,7 +325,13 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!actors.items!OMQ0v6PE8s1mSU0K.wdNrstuoh4MFShYG" }, @@ -328,7 +346,7 @@ "type": "attack", "_id": "KwsxjI3jBzmxgkPu", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to attack a target within Far range. On a success, deal 2d10+2 physical damage and knock the target over, making them Vulnerable until they next act.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -336,6 +354,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -411,8 +430,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "MabIQE1Kjn60j08J", "img": "icons/skills/melee/strike-slashes-orange.webp", @@ -451,7 +469,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!actors.items.effects!OMQ0v6PE8s1mSU0K.MabIQE1Kjn60j08J.m6qqQZxukDPVcGdQ" } @@ -464,7 +488,14 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754142603575 }, "_key": "!actors.items!OMQ0v6PE8s1mSU0K.MabIQE1Kjn60j08J" }, @@ -472,14 +503,14 @@ "name": "Take Off", "type": "feature", "system": { - "description": "

Make an attack against a target within Very Close range. On a success, deal 2d4+3 physical damage and the target must succeed on an Agility Reaction Roll or become temporarily Restrained within the @Lookup[@name]’s massive talons. If the target is Restrained, the @Lookup[@name] immediately lifts into the air to Very Far range above the battlefi eld while holding them.

", + "description": "

Make an attack against a target within Very Close range. On a success, deal 2d4+3 physical damage and the target must succeed on an Agility Reaction Roll or become temporarily Restrained within the Eagle’s massive talons. If the target is Restrained, the Eagle immediately lifts into the air to Very Far range above the battlefi eld while holding them.

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

Make an attack against a target within Very Close range. On a success, deal 2d4+3 physical damage and the target must succeed on an Agility Reaction Roll or become temporarily Restrained within the Eagle’s massive talons. If the target is Restrained, the Eagle immediately lifts into the air to Very Far range above the battlefi eld while holding them.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -555,8 +586,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "NEOQ0E9AGSSIDm4v", "img": "icons/skills/movement/arrow-upward-yellow.webp", @@ -590,12 +620,18 @@ "description": "", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!actors.items.effects!OMQ0v6PE8s1mSU0K.NEOQ0E9AGSSIDm4v.Sd34xywRqiF5w9sX" } @@ -608,7 +644,14 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754142613580 }, "_key": "!actors.items!OMQ0v6PE8s1mSU0K.NEOQ0E9AGSSIDm4v" }, @@ -616,14 +659,14 @@ "name": "Deadly Drop", "type": "feature", "system": { - "description": "

While flying, the @Lookup[@name] can drop a Restrained target they are holding. When dropped, the target is no longer Restrained but starts falling. If their fall isn’t prevented during the PCs’ next action, the target takes 2d20 physical damage when they land.

", + "description": "

While flying, the Eagle can drop a Restrained target they are holding. When dropped, the target is no longer Restrained but starts falling. If their fall isn’t prevented during the PCs’ next action, the target takes 2d20 physical damage when they land.

", "resource": null, "actions": { "1tO018UgL0VG51ti": { "type": "damage", "_id": "1tO018UgL0VG51ti", "systemPath": "actions", - "description": "", + "description": "

While flying, the Eagle can drop a Restrained target they are holding. When dropped, the target is no longer Restrained but starts falling. If their fall isn’t prevented during the PCs’ next action, the target takes 2d20 physical damage when they land.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -674,8 +717,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "jY0ynjYvbS6E3NgJ", "img": "icons/skills/movement/arrow-down-pink.webp", @@ -688,7 +730,14 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754142622906 }, "_key": "!actors.items!OMQ0v6PE8s1mSU0K.jY0ynjYvbS6E3NgJ" } diff --git a/src/packs/adversaries/adversary_Giant_Mosquitoes_IIWV4ysJPFPnTP7W.json b/src/packs/adversaries/adversary_Giant_Mosquitoes_IIWV4ysJPFPnTP7W.json index 54f12efa..1cc50da4 100644 --- a/src/packs/adversaries/adversary_Giant_Mosquitoes_IIWV4ysJPFPnTP7W.json +++ b/src/packs/adversaries/adversary_Giant_Mosquitoes_IIWV4ysJPFPnTP7W.json @@ -112,15 +112,20 @@ "range": "melee", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 76, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784269, + "modifiedTime": 1755259619874, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "IIWV4ysJPFPnTP7W", "sort": 2800000, "ownership": { @@ -224,12 +229,12 @@ }, "items": [ { - "name": "Horde", + "name": "Horde (1d4+1)", "type": "feature", "_id": "9RduwBLYcBaiouYk", "img": "icons/creatures/magical/humanoid-silhouette-aliens-green.webp", "system": { - "description": "

When the @Lookup[@name] have marked half or more of their HP, their standard attack deals 1d4+1 physical damage instead.

", + "description": "

When the Mosquitoes have marked half or more of their HP, their standard attack deals 1d4+1 physical damage instead.

", "resource": null, "actions": {}, "originItemType": null, @@ -245,7 +250,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754044549944, + "modifiedTime": 1754044591579, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!IIWV4ysJPFPnTP7W.9RduwBLYcBaiouYk" }, @@ -255,7 +268,7 @@ "_id": "gxYV6iTMM1S9Vv5v", "img": "icons/commodities/biological/wing-insect-green.webp", "system": { - "description": "

While flying, the @Lookup[@name] have a +2 bonus to their Difficulty.

", + "description": "

While flying, the Mosquitoes have a +2 bonus to their Difficulty.

", "resource": null, "actions": {}, "originItemType": null, @@ -302,7 +315,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754046389966, + "modifiedTime": 1754046415469, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!IIWV4ysJPFPnTP7W.gxYV6iTMM1S9Vv5v.aATxfjeOzUYtKuU6" } @@ -315,7 +336,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754046355588, + "modifiedTime": 1754046387649, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!IIWV4ysJPFPnTP7W.gxYV6iTMM1S9Vv5v" }, @@ -325,14 +354,14 @@ "_id": "BTlMLjG65KQs0Jk2", "img": "icons/skills/wounds/blood-drip-droplet-red.webp", "system": { - "description": "

When the @Lookup[@name]’s attack causes a target to mark HP, you can mark a Stress to force the target to mark an additional HP.

", + "description": "

When the Mosquitoes’ attack causes a target to mark HP, you can mark a Stress to force the target to mark an additional HP.

", "resource": null, "actions": { "7ee6IhkKYDehjLmg": { "type": "effect", "_id": "7ee6IhkKYDehjLmg", "systemPath": "actions", - "description": "", + "description": "

When the Mosquitoes’ attack causes a target to mark HP, you can mark a Stress to force the target to mark an additional HP.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -340,6 +369,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -360,8 +390,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -372,7 +401,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754046426987, + "modifiedTime": 1754143988475, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!IIWV4ysJPFPnTP7W.BTlMLjG65KQs0Jk2" } @@ -405,7 +442,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754045860587, + "modifiedTime": 1754046339705, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.effects!IIWV4ysJPFPnTP7W.dQgcYTz5vmV25Y6G" } diff --git a/src/packs/adversaries/adversary_Giant_Rat_4PfLnaCrOcMdb4dK.json b/src/packs/adversaries/adversary_Giant_Rat_4PfLnaCrOcMdb4dK.json index d4655880..e4330c68 100644 --- a/src/packs/adversaries/adversary_Giant_Rat_4PfLnaCrOcMdb4dK.json +++ b/src/packs/adversaries/adversary_Giant_Rat_4PfLnaCrOcMdb4dK.json @@ -105,15 +105,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 76, - "artist": "" - }, - "size": "small" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784270, + "modifiedTime": 1755259636506, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "4PfLnaCrOcMdb4dK", "sort": 800000, "ownership": { @@ -222,7 +227,7 @@ "_id": "v3AcLcWrXy2rtW4Z", "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 3 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Rat is defeated when they take any damage. For every 3 damage a PC deals to the Rat, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -238,7 +243,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754046555525, + "modifiedTime": 1754046632476, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!4PfLnaCrOcMdb4dK.v3AcLcWrXy2rtW4Z" }, @@ -248,14 +261,14 @@ "_id": "fsaBlCjTdq1jM23G", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 1 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Giant Rats within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 1 physical damage each. Combine this damage.

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

Spend a Fear to choose a target and spotlight all Giant Rats within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 1 physical damage each. Combine this damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -263,6 +276,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -307,8 +321,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -319,7 +332,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754046640194, + "modifiedTime": 1754144002636, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!4PfLnaCrOcMdb4dK.fsaBlCjTdq1jM23G" } diff --git a/src/packs/adversaries/adversary_Giant_Recruit_5s8wSvpyC5rxY5aD.json b/src/packs/adversaries/adversary_Giant_Recruit_5s8wSvpyC5rxY5aD.json index 75da96b2..09a3fe45 100644 --- a/src/packs/adversaries/adversary_Giant_Recruit_5s8wSvpyC5rxY5aD.json +++ b/src/packs/adversaries/adversary_Giant_Recruit_5s8wSvpyC5rxY5aD.json @@ -99,15 +99,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 87, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784271, + "modifiedTime": 1755259462570, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "5s8wSvpyC5rxY5aD", "sort": 400000, "ownership": { @@ -214,7 +219,7 @@ "name": "Minion (7)", "type": "feature", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 7 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Recruit is defeated when they take any damage. For every 7 damage a PC deals to the Recruit, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -231,7 +236,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754079263888, + "modifiedTime": 1754079289528, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!5s8wSvpyC5rxY5aD.OB05ek8TQpauEjCQ" }, @@ -239,24 +252,23 @@ "name": "Group Attack", "type": "feature", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 5 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Giant Recruits within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 5 physical damage each. Combine this damage.

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

Spend a Fear to choose a target and spotlight all Giant Recruits within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 5 physical damage each. Combine this damage.

", "chatDisplay": true, "actionType": "action", "cost": [ { "scalable": false, - "key": "fear", + "key": "stress", "value": 1, "keyIsID": false, - "step": null, - "consumeOnSuccess": false + "step": null } ], "uses": { @@ -269,14 +281,13 @@ "type": "self", "amount": null }, - "name": "Spend Fear", + "name": "Mark Stress", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "FMgB28X1LammRInU", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", @@ -289,7 +300,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754079291678, + "modifiedTime": 1754142639306, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!5s8wSvpyC5rxY5aD.FMgB28X1LammRInU" } diff --git a/src/packs/adversaries/adversary_Giant_Scorpion_fmfntuJ8mHRCAktP.json b/src/packs/adversaries/adversary_Giant_Scorpion_fmfntuJ8mHRCAktP.json index 99b5ed46..6337dc1c 100644 --- a/src/packs/adversaries/adversary_Giant_Scorpion_fmfntuJ8mHRCAktP.json +++ b/src/packs/adversaries/adversary_Giant_Scorpion_fmfntuJ8mHRCAktP.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 76, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784272, + "modifiedTime": 1755259666128, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "fmfntuJ8mHRCAktP", "sort": 4200000, "ownership": { @@ -236,7 +241,7 @@ "type": "attack", "_id": "PJbZ4ibLPle9BBRv", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to make a standard attack against two targets within Melee range.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -244,6 +249,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -315,8 +321,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -327,7 +332,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754046803174, + "modifiedTime": 1754144015161, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!fmfntuJ8mHRCAktP.4ct6XEXiTBFQKvXW" }, @@ -344,7 +357,7 @@ "type": "attack", "_id": "ZkcplnqoMP7dH9F4", "systemPath": "actions", - "description": "", + "description": "

Make an attack against a target within Very Close range. On a success, spend a Fear to deal 1d4+4 physical damage and Poison them until their next rest or they succeed on a Knowledge Roll (16). While Poisoned, the target must roll a d6 before they make an action roll. On a result of 4 or lower, they must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -421,8 +434,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -457,7 +469,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754144091498, + "modifiedTime": 1754144099382, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!fmfntuJ8mHRCAktP.lANiDkxxth2sGacT.oILkLJlGNZl7KI1R" } @@ -470,7 +490,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754046868084, + "modifiedTime": 1754144091512, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!fmfntuJ8mHRCAktP.lANiDkxxth2sGacT" }, @@ -480,83 +508,12 @@ "_id": "TmDpAY5t3PjhEv9K", "img": "icons/skills/melee/strike-weapons-orange.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Scorpion makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "1Fn4rvhueQoMXqFc": { - "type": "healing", - "_id": "1Fn4rvhueQoMXqFc", - "systemPath": "actions", - "description": "

When the Scorpion makes a successful attack against a PC, you gain a Fear.

", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -567,7 +524,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047039345, + "modifiedTime": 1754047066840, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!fmfntuJ8mHRCAktP.TmDpAY5t3PjhEv9K" } diff --git a/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json b/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json index f02a1c52..f82aa34f 100644 --- a/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json +++ b/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 77, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784273, + "modifiedTime": 1755259462600, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "8KWVLWXFhlY2kYx0", "sort": 1400000, "ownership": { @@ -223,14 +228,14 @@ "_id": "Efa6t9Ow8b1DRyZV", "img": "icons/skills/melee/shield-damaged-broken-gold.webp", "system": { - "description": "

On a successful attack within Melee range against the @Lookup[@name], the attacker must mark an Armor Slot without receiving its benefits (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", + "description": "

On a successful attack within Melee range against the Snake, the attacker must mark an Armor Slot without receiving its benefits (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

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

On a successful attack within Melee range against the Snake, the attacker must mark an Armor Slot without receiving its benefits (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -292,7 +297,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047117565, + "modifiedTime": 1754144118922, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8KWVLWXFhlY2kYx0.Efa6t9Ow8b1DRyZV" }, @@ -302,14 +315,14 @@ "_id": "Ro9XCeXsTOT9SXyo", "img": "icons/skills/melee/blood-slash-foam-red.webp", "system": { - "description": "

Mark a Stress to make an attack against all targets within Very Close range. Targets the @Lookup[@name] succeeds against take 1d6+1 physical damage.

", + "description": "

Mark a Stress to make an attack against all targets within Very Close range. Targets the Snake succeeds against take 1d6+1 physical damage.

", "resource": null, "actions": { "2UzeQYL5HeyF3zwh": { "type": "attack", "_id": "2UzeQYL5HeyF3zwh", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to make an attack against all targets within Very Close range. Targets the Snake succeeds against take 1d6+1 physical damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -317,6 +330,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -386,8 +400,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -398,7 +411,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047177610, + "modifiedTime": 1754144128032, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8KWVLWXFhlY2kYx0.Ro9XCeXsTOT9SXyo" }, @@ -408,7 +429,7 @@ "_id": "LR5XHauNtWcl18CY", "img": "icons/magic/acid/projectile-needles-salvo-green.webp", "system": { - "description": "

Spend a Fear to introduce a d6 Spitter Die. When the @Lookup[@name] is in the spotlight, roll this die. On a result of 5 or higher, all targets in front of the @Lookup[@name] within Far range must succeed on an Agility Reaction Roll or take 1d4 physical damage. The @Lookup[@name] can take the spotlight a second time this GM turn.

@Template[type:inFront|range:f]

", + "description": "

Spend a Fear to introduce a d6 Spitter Die. When the Snake is in the spotlight, roll this die. On a result of 5 or higher, all targets in front of the Snake within Far range must succeed on an Agility Reaction Roll or take 1d4 physical damage. The Snake can take the spotlight a second time this GM turn.

@Template[type:inFront|range:f]

", "resource": null, "actions": { "yx5fjMLLwSnvSbqs": { @@ -423,6 +444,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -449,7 +471,7 @@ "type": "attack", "_id": "Ds6KlQKZCOhh5OMT", "systemPath": "actions", - "description": "

All targets in front of the @Lookup[@name] within Far range must succeed on an Agility Reaction Roll or take 1d4 physical damage.

@Template[type:inFront|range:f]

", + "description": "

All targets in front of the Snake within Far range must succeed on an Agility Reaction Roll or take 1d4 physical damage.

@Template[type:inFront|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -522,7 +544,7 @@ "type": "attack", "_id": "xccwknU2xHUwQSdn", "systemPath": "actions", - "description": "

When the @Lookup[@name] is in the spotlight, roll the spitter die. On a result of 5 or higher, do a spit Attack.

", + "description": "

When the Snake is in the spotlight, roll the spitter die. On a result of 5 or higher, do a spit Attack.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -567,8 +589,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -603,7 +624,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047334477, + "modifiedTime": 1754047363187, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!8KWVLWXFhlY2kYx0.LR5XHauNtWcl18CY.Mchd23xNQ4nSWw9X" } @@ -616,7 +645,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047231449, + "modifiedTime": 1754144287335, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8KWVLWXFhlY2kYx0.LR5XHauNtWcl18CY" } diff --git a/src/packs/adversaries/adversary_Gorgon_8mJYMpbLTb8qIOrr.json b/src/packs/adversaries/adversary_Gorgon_8mJYMpbLTb8qIOrr.json index deeafa37..57cb1760 100644 --- a/src/packs/adversaries/adversary_Gorgon_8mJYMpbLTb8qIOrr.json +++ b/src/packs/adversaries/adversary_Gorgon_8mJYMpbLTb8qIOrr.json @@ -112,15 +112,20 @@ "img": "icons/weapons/bows/shortbow-recurve-yellow.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 88, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784274, + "modifiedTime": 1755259462608, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "8mJYMpbLTb8qIOrr", "sort": 1000000, "ownership": { @@ -227,42 +232,9 @@ "name": "Relentless (2)", "type": "feature", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to twoΒ times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Gorgon can be spotlighted up to twoΒ times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "GSYD7y0ywAqyKUfm": { - "type": "effect", - "_id": "GSYD7y0ywAqyKUfm", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "1", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "originId": null }, @@ -277,7 +249,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754079428160, + "modifiedTime": 1754079447238, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8mJYMpbLTb8qIOrr.OqE6hBijxAkn5gIm" }, @@ -285,14 +265,14 @@ "name": "Sunsear Arrows", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful standard attack, the target Glows until the end of the scene and can’t become Hidden. Attack rolls made against a Glowing target have advantage.

", + "description": "

When the Gorgon makes a successful standard attack, the target Glows until the end of the scene and can’t become Hidden. Attack rolls made against a Glowing target have advantage.

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

When the Gorgon makes a successful standard attack, the target Glows until the end of the scene and can’t become Hidden. Attack rolls made against a Glowing target have advantage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -337,14 +317,7 @@ "range": "melee" } }, - "changes": [ - { - "key": "system.rules.conditionImmunities.hidden", - "mode": 5, - "value": "1", - "priority": null - } - ], + "changes": [], "disabled": false, "duration": { "startTime": null, @@ -355,13 +328,21 @@ "startRound": null, "startTurn": null }, - "description": "

You Glow until the end of the scene and can’t become Hidden. Attack rolls made against you have advantage.

", + "description": "

You Glow until the end of the scene and can’t become Hidden. Attack rolls made against you have advantage.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754079525282, + "modifiedTime": 1754079558712, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!8mJYMpbLTb8qIOrr.NepVGKOo1lHYjA1F.bYBrgiSwHwYfQyjn" } @@ -374,7 +355,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754079448870, + "modifiedTime": 1754142654062, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8mJYMpbLTb8qIOrr.NepVGKOo1lHYjA1F" }, @@ -382,14 +371,14 @@ "name": "Crown of Serpents", "type": "feature", "system": { - "description": "

Make an attack roll against a target within Melee range using the @Lookup[@name]’s protective snakes. On a success, mark a Stress to deal 2d10+4 physical damage and the target must mark a Stress.

", + "description": "

Make an attack roll against a target within Melee range using the Gorgon’s protective snakes. On a success, mark a Stress to deal 2d10+4 physical damage and the target must mark a Stress.

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

Make an attack roll against a target within Melee range using the Gorgon’s protective snakes. On a success, mark a Stress to deal 2d10+4 physical damage and the target must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -485,8 +474,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "9SO2ov36lFH2YV0S", "img": "icons/creatures/reptiles/snake-fangs-bite-green.webp", @@ -499,7 +487,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754079563580, + "modifiedTime": 1754142664204, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8mJYMpbLTb8qIOrr.9SO2ov36lFH2YV0S" }, @@ -507,14 +503,14 @@ "name": "Petrifying Gaze", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes damage from an attack within Close range, you can spend a Fear to force the attacker to make an Instinct Reaction Roll. On a failure, they begin to turn to stone, marking a HP and starting a Petrification CountdownΒ (4). This countdown ticks down when the @Lookup[@name] is attacked. When it triggers, the target must make a death move. If the @Lookup[@name] is defeated, all petrification countdowns end.

", + "description": "

When the Gorgon takes damage from an attack within Close range, you can spend a Fear to force the attacker to make an Instinct Reaction Roll. On a failure, they begin to turn to stone, marking a HP and starting a Petrification CountdownΒ (4). This countdown ticks down when the Gorgon is attacked. When it triggers, the target must make a death move. If the Gorgon is defeated, all petrification countdowns end.

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

When the Gorgon takes damage from an attack within Close range, you can spend a Fear to force the attacker to make an Instinct Reaction Roll. On a failure, they begin to turn to stone, marking a HP and starting a Petrification CountdownΒ (4). This countdown ticks down when the Gorgon is attacked. When it triggers, the target must make a death move. If the Gorgon is defeated, all petrification countdowns end.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -522,6 +518,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -562,48 +559,10 @@ "name": "Spend Fear", "img": "icons/magic/earth/strike-body-stone-crumble.webp", "range": "" - }, - "ywZTs3D8ClT7tAsa": { - "type": "countdown", - "_id": "ywZTs3D8ClT7tAsa", - "systemPath": "actions", - "description": "

On a failure, they begin to turn to stone, marking a HP and starting a Petrification CountdownΒ (4). This countdown ticks down when the @Lookup[@name] is attacked. When it triggers, the target must make a death move. If the @Lookup[@name] is defeated, all petrification countdowns end.

", - "chatDisplay": false, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Petrifying Gaze", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/earth/strike-body-stone-crumble.webp", - "progress": { - "looping": "noLooping", - "type": "custom", - "start": 1, - "startFormula": "4", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/earth/strike-body-stone-crumble.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "047o6OtNlUwLG1H1", "img": "icons/magic/earth/strike-body-stone-crumble.webp", @@ -616,7 +575,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754079643285, + "modifiedTime": 1754142680813, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8mJYMpbLTb8qIOrr.047o6OtNlUwLG1H1" }, @@ -624,82 +591,11 @@ "name": "Momentum", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Gorgon makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "V6tkBYSjOt1LZCkp": { - "type": "healing", - "_id": "V6tkBYSjOt1LZCkp", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "IRIaFxFughjXVu0Y", "img": "icons/skills/melee/strike-weapons-orange.webp", @@ -712,7 +608,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754079744174, + "modifiedTime": 1754079759538, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8mJYMpbLTb8qIOrr.IRIaFxFughjXVu0Y" } diff --git a/src/packs/adversaries/adversary_Greater_Earth_Elemental_dsfB3YhoL5SudvS2.json b/src/packs/adversaries/adversary_Greater_Earth_Elemental_dsfB3YhoL5SudvS2.json index a20d80e6..e519b193 100644 --- a/src/packs/adversaries/adversary_Greater_Earth_Elemental_dsfB3YhoL5SudvS2.json +++ b/src/packs/adversaries/adversary_Greater_Earth_Elemental_dsfB3YhoL5SudvS2.json @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 93, - "artist": "" - }, - "size": "gargantuan" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784275, + "modifiedTime": 1755259462829, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "dsfB3YhoL5SudvS2", "sort": 3400000, "ownership": { @@ -221,7 +226,7 @@ "name": "Slow", "type": "feature", "system": { - "description": "

When you spotlight the @Lookup[@name] and they don’t have a token on their stat block, they can’t act yet. Place a token on their stat block and describe what they’re preparing to do. When you spotlight the @Lookup[@name] and they have a token on their stat block, clear the token and they can act.

", + "description": "

When you spotlight the Elemental and they don’t have a token on their stat block, they can’t act yet. Place a token on their stat block and describe what they’re preparing to do. When you spotlight the Elemental and they have a token on their stat block, clear the token and they can act.

", "resource": { "type": "simple", "value": 0, @@ -243,7 +248,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754127640770, + "modifiedTime": 1754127680130, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dsfB3YhoL5SudvS2.Lrgpyfc067a2JHCF" }, @@ -251,14 +264,14 @@ "name": "Crushing Blows", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack, the target must mark an Armor Slot without receiving its benefi ts (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", + "description": "

When the Elemental makes a successful attack, the target must mark an Armor Slot without receiving its benefi ts (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", "resource": null, "actions": { "0sXciTiPc30v8czv": { "type": "damage", "_id": "0sXciTiPc30v8czv", "systemPath": "actions", - "description": "", + "description": "

When the Elemental makes a successful attack, the target must mark an Armor Slot without receiving its benefi ts (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -321,7 +334,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754127683751, + "modifiedTime": 1754127795809, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dsfB3YhoL5SudvS2.NnCkXIuATO0s3tSR" }, @@ -329,7 +350,7 @@ "name": "Immovable Object", "type": "feature", "system": { - "description": "

An attack that would move the @Lookup[@name] moves them two fewer ranges (for example, Far becomes Very Close). When the @Lookup[@name] takes physical damage, reduce it by 7.

", + "description": "

An attack that would move the Elemental moves them two fewer ranges (for example, Far becomes Very Close). When the Elemental takes physical damage, reduce it by 7.

", "resource": null, "actions": {}, "originItemType": null, @@ -377,7 +398,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754127761245, + "modifiedTime": 1754127783182, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!dsfB3YhoL5SudvS2.PVdHySLhIJ8uDrmg.7V7qMq9in3AArwiM" } @@ -390,7 +419,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754127727248, + "modifiedTime": 1754127753280, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dsfB3YhoL5SudvS2.PVdHySLhIJ8uDrmg" }, @@ -398,14 +435,14 @@ "name": "Rockslide", "type": "feature", "system": { - "description": "

Mark a Stress to create a rockslide that buries the land in front of @Lookup[@name] within Close range with rockfall. All targets in this area must make an Agility Reaction Roll (19). Targets who fail take 2d12+5 physical damage and become Vulnerable until their next roll with Hope. Targets who succeed take half damage.

@Template[type:inFront|range:c]

", + "description": "

Mark a Stress to create a rockslide that buries the land in front of Elemental within Close range with rockfall. All targets in this area must make an Agility Reaction Roll (19). Targets who fail take 2d12+5 physical damage and become Vulnerable until their next roll with Hope. Targets who succeed take half damage.

@Template[type:inFront|range:c]

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

Mark a Stress to create a rockslide that buries the land in front of Elemental within Close range with rockfall. All targets in this area must make an Agility Reaction Roll (19). Targets who fail take 2d12+5 physical damage and become Vulnerable until their next roll with Hope. Targets who succeed take half damage.

@Template[type:inFront|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -413,6 +450,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -488,8 +526,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "q45DiEFlXqcXZ5hv", "img": "icons/magic/earth/barrier-stone-brown-green.webp", @@ -528,7 +565,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754127890908, + "modifiedTime": 1754127911008, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!dsfB3YhoL5SudvS2.q45DiEFlXqcXZ5hv.38MUzfbH64EMLVse" } @@ -541,7 +586,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754127802653, + "modifiedTime": 1754127890924, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dsfB3YhoL5SudvS2.q45DiEFlXqcXZ5hv" }, @@ -549,82 +602,11 @@ "name": "Momentum", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Elemental makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "FPIpslusIeVQGdnb": { - "type": "healing", - "_id": "FPIpslusIeVQGdnb", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "ag7t5EW358M0qiSL", "img": "icons/skills/melee/strike-weapons-orange.webp", @@ -637,7 +619,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754127921154, + "modifiedTime": 1754127937379, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dsfB3YhoL5SudvS2.ag7t5EW358M0qiSL" } diff --git a/src/packs/adversaries/adversary_Greater_Water_Elemental_xIICT6tEdnA7dKDV.json b/src/packs/adversaries/adversary_Greater_Water_Elemental_xIICT6tEdnA7dKDV.json index be037b10..57dbc48b 100644 --- a/src/packs/adversaries/adversary_Greater_Water_Elemental_xIICT6tEdnA7dKDV.json +++ b/src/packs/adversaries/adversary_Greater_Water_Elemental_xIICT6tEdnA7dKDV.json @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 93, - "artist": "" - }, - "size": "gargantuan" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784278, + "modifiedTime": 1755259462945, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "xIICT6tEdnA7dKDV", "sort": 3400000, "ownership": { @@ -228,7 +233,7 @@ "type": "attack", "_id": "Gk5tcqshtwP4JsKS", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to attack a target within Very Close range. On a success, deal 2d4+7 physical damage and the target’s next action has disadvantage. On a failure, the target must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -236,6 +241,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -311,8 +317,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "B8ZrtRCZrwwwWJOE", "img": "icons/magic/water/projectile-icecicle-glowing.webp", @@ -356,7 +361,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754128068382, + "modifiedTime": 1754128098949, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!xIICT6tEdnA7dKDV.B8ZrtRCZrwwwWJOE.WYqjt1tVqPEdVV5l" } @@ -369,7 +382,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754127986771, + "modifiedTime": 1754128068401, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!xIICT6tEdnA7dKDV.B8ZrtRCZrwwwWJOE" }, @@ -377,14 +398,14 @@ "name": "Drowning Embrace", "type": "feature", "system": { - "description": "

Spend a Fear to make an attack against all targets within Very Close range. Targets the @Lookup[@name] succeeds against become Restrained and Vulnerable as they begin drowning. A target can break free, ending both conditions, with a successful Strength or Instinct Roll.

@Template[type:emanation|range:vc]

", + "description": "

Spend a Fear to make an attack against all targets within Very Close range. Targets the Elemental succeeds against become Restrained and Vulnerable as they begin drowning. A target can break free, ending both conditions, with a successful Strength or Instinct Roll.

@Template[type:emanation|range:vc]

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

Spend a Fear to make an attack against all targets within Very Close range. Targets the Elemental succeeds against become Restrained and Vulnerable as they begin drowning. A target can break free, ending both conditions, with a successful Strength or Instinct Roll.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -392,6 +413,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -440,8 +462,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "bcwFQeuU6ZfIGjau", "img": "icons/magic/water/vortex-water-whirlpool-blue.webp", @@ -481,7 +502,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754128187997, + "modifiedTime": 1754128236862, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!xIICT6tEdnA7dKDV.bcwFQeuU6ZfIGjau.X8NF2OB23mSpDvlx" } @@ -494,7 +523,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754128102409, + "modifiedTime": 1754128188009, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!xIICT6tEdnA7dKDV.bcwFQeuU6ZfIGjau" }, @@ -502,14 +539,14 @@ "name": "High Tide", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful standard attack, you can mark a Stress to knock the target back to Close range.

", + "description": "

When the Elemental makes a successful standard attack, you can mark a Stress to knock the target back to Close range.

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

When the Elemental makes a successful standard attack, you can mark a Stress to knock the target back to Close range.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -517,6 +554,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -536,8 +574,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "BGE42W1XPd0vpimR", "img": "icons/magic/water/tendrils-ice-thorns.webp", @@ -550,7 +587,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754128249213, + "modifiedTime": 1754128316652, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!xIICT6tEdnA7dKDV.BGE42W1XPd0vpimR" } diff --git a/src/packs/adversaries/adversary_Green_Ooze_SHXedd9zZPVfUgUa.json b/src/packs/adversaries/adversary_Green_Ooze_SHXedd9zZPVfUgUa.json index c7446a11..253da042 100644 --- a/src/packs/adversaries/adversary_Green_Ooze_SHXedd9zZPVfUgUa.json +++ b/src/packs/adversaries/adversary_Green_Ooze_SHXedd9zZPVfUgUa.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 80, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784278, + "modifiedTime": 1755259726565, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "SHXedd9zZPVfUgUa", "sort": 3500000, "ownership": { @@ -229,7 +234,7 @@ "_id": "DquXi9yCNsPAFEmK", "img": "icons/magic/time/hourglass-brown-orange.webp", "system": { - "description": "

When you spotlight the @Lookup[@name] and they don’t have a token on their stat block, they can’t act yet. Place a token on their stat block and describe what they’re preparing to do. When you spotlight the @Lookup[@name] and they have a token on their stat block, clear the token and they can act.

", + "description": "

When you spotlight the Ooze and they don’t have a token on their stat block, they can’t act yet. Place a token on their stat block and describe what they’re preparing to do. When you spotlight the Ooze and they have a token on their stat block, clear the token and they can act.

", "resource": { "type": "simple", "value": 0, @@ -250,7 +255,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047494964, + "modifiedTime": 1754047536506, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!SHXedd9zZPVfUgUa.DquXi9yCNsPAFEmK" }, @@ -260,14 +273,14 @@ "_id": "gJWoUSTGwVsJwPmK", "img": "icons/skills/melee/shield-damaged-broken-gold.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful attack, the target must mark an Armor Slot without receiving its benefits (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", + "description": "

When the Ooze makes a successful attack, the target must mark an Armor Slot without receiving its benefits (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

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

When the Ooze makes a successful attack, the target must mark an Armor Slot without receiving its benefits (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -329,7 +342,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047544158, + "modifiedTime": 1754144332281, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!SHXedd9zZPVfUgUa.gJWoUSTGwVsJwPmK" }, @@ -339,14 +360,14 @@ "_id": "Sm9Sk4mSvcq6PkmR", "img": "icons/creatures/slimes/slime-face-melting-green.webp", "system": { - "description": "

Make a standard attack against a target within Melee range. On a success, the @Lookup[@name] envelops them and the target must mark 2 Stress. The target must mark an additional Stress when they make an action roll. If the @Lookup[@name] takes Severe damage, the target is freed.

", + "description": "

Make a standard attack against a target within Melee range. On a success, the Ooze envelops them and the target must mark 2 Stress. The target must mark an additional Stress when they make an action roll. If the Ooze takes Severe damage, the target is freed.

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

Make a standard attack against a target within Melee range. On a success, the Ooze envelops them and the target must mark 2 Stress. The target must mark an additional Stress when they make an action roll. If the Ooze takes Severe damage, the target is freed.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -448,8 +469,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -484,7 +504,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047680616, + "modifiedTime": 1754047701198, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!SHXedd9zZPVfUgUa.Sm9Sk4mSvcq6PkmR.yk5kR5OVLCgDWfgY" } @@ -497,7 +525,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047601843, + "modifiedTime": 1754144340446, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!SHXedd9zZPVfUgUa.Sm9Sk4mSvcq6PkmR" }, @@ -507,14 +543,14 @@ "_id": "qNhrEK2YF8e3ljU6", "img": "icons/creatures/slimes/slime-movement-pseudopods-green.webp", "system": { - "description": "

When the @Lookup[@name] has 3 or more HP marked, you can spend a Fear to split them into two @UUID[Compendium.daggerheart.adversaries.Actor.aLkLFuVoKz2NLoBK]{Tiny Green Oozes} (with no marked HP or Stress). Immediately spotlight both of them.

", + "description": "

When the Ooze has 3 or more HP marked, you can spend a Fear to split them into two @UUID[Compendium.daggerheart.adversaries.Actor.aLkLFuVoKz2NLoBK]{Tiny Green Oozes} (with no marked HP or Stress). Immediately spotlight both of them.

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

When the Ooze has 3 or more HP marked, you can spend a Fear to split them into two @UUID[Compendium.daggerheart.adversaries.Actor.aLkLFuVoKz2NLoBK]{Tiny Green Oozes} (with no marked HP or Stress). Immediately spotlight both of them.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -522,6 +558,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -542,8 +579,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -554,7 +590,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047707170, + "modifiedTime": 1754145255991, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!SHXedd9zZPVfUgUa.qNhrEK2YF8e3ljU6" } diff --git a/src/packs/adversaries/adversary_Hallowed_Archer_kabueAo6BALApWqp.json b/src/packs/adversaries/adversary_Hallowed_Archer_kabueAo6BALApWqp.json index 0abf1661..fe3f0050 100644 --- a/src/packs/adversaries/adversary_Hallowed_Archer_kabueAo6BALApWqp.json +++ b/src/packs/adversaries/adversary_Hallowed_Archer_kabueAo6BALApWqp.json @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 98, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784279, + "modifiedTime": 1755259462863, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "kabueAo6BALApWqp", "sort": 1500000, "ownership": { @@ -221,7 +226,7 @@ "name": "Punish the Guilty", "type": "feature", "system": { - "description": "

The @Lookup[@name] deals double damage to targets marked Guilty by a High Seraph.

", + "description": "

The Archer deals double damage to targets marked Guilty by a High Seraph.

", "resource": null, "actions": {}, "originItemType": null, @@ -238,7 +243,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136064879, + "modifiedTime": 1754136109783, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!kabueAo6BALApWqp.FGJTAeL38zTVd4fA" }, @@ -253,7 +266,7 @@ "type": "attack", "_id": "pQLfy0I6sZhgAoIm", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to make a standard attack against up to three targets.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -261,6 +274,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -331,8 +345,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "Ye35DuZroQfeFoNw", "img": "icons/skills/ranged/arrows-flying-salvo-yellow.webp", @@ -345,7 +358,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136114217, + "modifiedTime": 1754136177934, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!kabueAo6BALApWqp.Ye35DuZroQfeFoNw" } diff --git a/src/packs/adversaries/adversary_Hallowed_Soldier_VENwg7xEFcYObjmT.json b/src/packs/adversaries/adversary_Hallowed_Soldier_VENwg7xEFcYObjmT.json index cceed989..944e53aa 100644 --- a/src/packs/adversaries/adversary_Hallowed_Soldier_VENwg7xEFcYObjmT.json +++ b/src/packs/adversaries/adversary_Hallowed_Soldier_VENwg7xEFcYObjmT.json @@ -99,15 +99,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 98, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784279, + "modifiedTime": 1755266855456, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "VENwg7xEFcYObjmT", "sort": 1100000, "ownership": { @@ -214,7 +219,7 @@ "name": "Minion (13)", "type": "feature", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 13 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Soldier is defeated when they take any damage. For every 13 damage a PC deals to the Soldier, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -231,7 +236,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136226340, + "modifiedTime": 1754136243103, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!VENwg7xEFcYObjmT.3QmaqgI6imRUvb7M" }, @@ -239,14 +252,14 @@ "name": "Divine Flight", "type": "feature", "system": { - "description": "

While the @Lookup[@name] is flying, spend a Fear to move up to Far range instead of Close range before taking an action.

", + "description": "

While the Soldier is flying, spend a Fear to move up to Far range instead of Close range before taking an action.

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

While the Soldier is flying, spend a Fear to move up to Far range instead of Close range before taking an action.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -254,6 +267,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -286,7 +300,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136250453, + "modifiedTime": 1754136300583, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!VENwg7xEFcYObjmT.6CvDtMEazJ35y2AA" }, @@ -294,14 +316,14 @@ "name": "Group Attack", "type": "feature", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 10 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Hallowed Soldiers within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 10 physical damage each. Combine this damage.

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

Spend a Fear to choose a target and spotlight all Hallowed Soldiers within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 10 physical damage each. Combine this damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -309,6 +331,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -328,8 +351,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "ZpypjDbaurs1YSFb", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", @@ -342,7 +364,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136304256, + "modifiedTime": 1754136336717, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!VENwg7xEFcYObjmT.ZpypjDbaurs1YSFb" } diff --git a/src/packs/adversaries/adversary_Harrier_uRtghKE9mHlII4rs.json b/src/packs/adversaries/adversary_Harrier_uRtghKE9mHlII4rs.json index 89d82a0b..b0c3f125 100644 --- a/src/packs/adversaries/adversary_Harrier_uRtghKE9mHlII4rs.json +++ b/src/packs/adversaries/adversary_Harrier_uRtghKE9mHlII4rs.json @@ -111,15 +111,20 @@ "img": "icons/weapons/polearms/spear-hooked-rounded.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 77, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784281, + "modifiedTime": 1755259462930, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "uRtghKE9mHlII4rs", "sort": 5000000, "ownership": { @@ -228,7 +233,7 @@ "_id": "t9Fa5jKLhvjD8Ar2", "img": "icons/skills/movement/arrow-upward-blue.webp", "system": { - "description": "

After making a standard attack, the @Lookup[@name] can move anywhere within Far range.

", + "description": "

After making a standard attack, the Harrier can move anywhere within Far range.

", "resource": null, "actions": {}, "originItemType": null, @@ -244,7 +249,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047858708, + "modifiedTime": 1754047895621, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!uRtghKE9mHlII4rs.t9Fa5jKLhvjD8Ar2" }, @@ -261,7 +274,7 @@ "type": "attack", "_id": "FiuiLUbNUL0YKq7w", "systemPath": "actions", - "description": "", + "description": "

When a creature moves into Melee range to make an attack, you can mark a Stress before the attack roll to move anywhere within Close range and make an attack against that creature. On a success, deal 1d10+2 physical damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -269,6 +282,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -340,8 +354,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -352,7 +365,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047898040, + "modifiedTime": 1754144359975, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!uRtghKE9mHlII4rs.v8TMp5ATyAjrmJJM" } diff --git a/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json b/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json index 75afed49..a5ebb68c 100644 --- a/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json +++ b/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json @@ -117,15 +117,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 77, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784282, + "modifiedTime": 1755259874457, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "mK3A5FTx6k8iPU3F", "sort": 4600000, "ownership": { @@ -234,14 +239,14 @@ "_id": "SsgN2qSYpQLR43Cz", "img": "icons/skills/movement/arrows-up-trio-red.webp", "system": { - "description": "

Spend 2 Fear to spotlight the @Lookup[@name] and up to 2d4 allies within Far range.

@Template[type:emanation|range:f]

", + "description": "

Spend 2 Fear to spotlight the Head Guard and up to 2d4 allies within Far range.

@Template[type:emanation|range:f]

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

Spend 2 Fear to spotlight the Head Guard and up to 2d4 allies within Far range.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -249,6 +254,7 @@ "scalable": false, "key": "fear", "value": 2, + "keyIsID": false, "step": null } ], @@ -293,8 +299,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -305,7 +310,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048051353, + "modifiedTime": 1754144371623, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!mK3A5FTx6k8iPU3F.SsgN2qSYpQLR43Cz" }, @@ -315,51 +328,12 @@ "_id": "YeJ7eJVCKsRxG8mk", "img": "icons/skills/ranged/target-bullseye-arrow-blue.webp", "system": { - "description": "

Countdown (5). When the @Lookup[@name] is in the spotlight for the first time, activate the countdown. It ticks down when a PC makes an attack roll. When it triggers, all Archer Guards within Far range make a standard attack with advantage against the nearest target within their range. If any attacks succeed on the same target, combine their damage.

@Template[type:emanation|range:f]

", + "description": "

Countdown (5). When the Head Guard is in the spotlight for the fi rst time, activate the countdown. It ticks down when a PC makes an attack roll. When it triggers, all Archer Guards within Far range make a standard attack with advantage against the nearest target within their range. If any attacks succeed on the same target, combine their damage.

@Template[type:emanation|range:f]

", "resource": null, - "actions": { - "xyhaCmPGiVMsTViH": { - "type": "countdown", - "_id": "xyhaCmPGiVMsTViH", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "On My Signal", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/skills/ranged/target-bullseye-arrow-blue.webp", - "progress": { - "looping": "noLooping", - "type": "characterAttack", - "start": 1, - "startFormula": "5", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/skills/ranged/target-bullseye-arrow-blue.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -370,7 +344,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048119625, + "modifiedTime": 1754048254827, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!mK3A5FTx6k8iPU3F.YeJ7eJVCKsRxG8mk" }, @@ -380,83 +362,12 @@ "_id": "sd2OlhLchyoqeKke", "img": "icons/skills/melee/strike-weapons-orange.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Head Guard makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "tD1hAwP6scxXrouw": { - "type": "healing", - "_id": "tD1hAwP6scxXrouw", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -467,7 +378,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048263819, + "modifiedTime": 1754048279307, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!mK3A5FTx6k8iPU3F.sd2OlhLchyoqeKke" } diff --git a/src/packs/adversaries/adversary_Head_Vampire_i2UNbRvgyoSs07M6.json b/src/packs/adversaries/adversary_Head_Vampire_i2UNbRvgyoSs07M6.json index 9e948594..0abf7cdb 100644 --- a/src/packs/adversaries/adversary_Head_Vampire_i2UNbRvgyoSs07M6.json +++ b/src/packs/adversaries/adversary_Head_Vampire_i2UNbRvgyoSs07M6.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 95, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784283, + "modifiedTime": 1755266472641, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "i2UNbRvgyoSs07M6", "sort": 3400000, "ownership": { @@ -227,14 +232,14 @@ "name": "Terrifying", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

", + "description": "

When the Vampire makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

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

When the Vampire makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -297,7 +302,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754128368124, + "modifiedTime": 1754128576298, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!i2UNbRvgyoSs07M6.c30Cc5mofs2arb9j" }, @@ -305,14 +318,14 @@ "name": "Look into My Eyes", "type": "feature", "system": { - "description": "

A creature who moves into Melee range of the @Lookup[@name] must make an Instinct Reaction Roll. On a failure, you gain [[/r 1d4]] Fear.

", + "description": "

A creature who moves into Melee range of the Vampire must make an Instinct Reaction Roll. On a failure, you gain [[/r 1d4]] Fear.

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

A creature who moves into Melee range of the Vampire must make an Instinct Reaction Roll. On a failure, you gain [[/r 1d4]] Fear.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -369,7 +382,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754128418603, + "modifiedTime": 1754128564670, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!i2UNbRvgyoSs07M6.1RfqKn7gYbWbSl0A" }, @@ -377,14 +398,14 @@ "name": "Feed on Followers", "type": "feature", "system": { - "description": "

When the @Lookup[@name] is within Melee range of an ally, they can cause the ally to mark a HP. The @Lookup[@name] then clears a HP.

", + "description": "

When the Vampire is within Melee range of an ally, they can cause the ally to mark a HP. The Vampire then clears a HP.

", "resource": null, "actions": { "tM6TBTtmCXTnIzen": { "type": "healing", "_id": "tM6TBTtmCXTnIzen", "systemPath": "actions", - "description": "", + "description": "

When the Vampire is within Melee range of an ally, they can cause the ally to mark a HP. The Vampire then clears a HP.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -449,8 +470,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "Oj6qkLG1N6uqQHcx", "img": "icons/creatures/abilities/fang-tooth-blood-red.webp", @@ -463,7 +483,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1754128497673, + "modifiedTime": 1755266523384, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items!i2UNbRvgyoSs07M6.Oj6qkLG1N6uqQHcx" }, @@ -478,7 +506,7 @@ "type": "effect", "_id": "5Q6RMUTiauKw0tDj", "systemPath": "actions", - "description": "", + "description": "

Spend 2 Fear to summon [[/r 1d4]] @UUID[Compendium.daggerheart.adversaries.Actor.WWyUp6Mxl1S3KYUG]{Vampires}, who appear at Far range and immediately take the spotlight.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -486,6 +514,7 @@ "scalable": false, "key": "fear", "value": 2, + "keyIsID": false, "step": null } ], @@ -505,8 +534,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "IWtpuQCuV82lOSry", "img": "icons/creatures/mammals/bat-giant-tattered-purple.webp", @@ -519,7 +547,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754128578585, + "modifiedTime": 1754129057806, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!i2UNbRvgyoSs07M6.IWtpuQCuV82lOSry" }, @@ -527,14 +563,14 @@ "name": "Lifesuck", "type": "feature", "system": { - "description": "

When the @Lookup[@name] is spotlighted, roll a d8. On a result of 6 or higher, all targets within Very Close range must mark a HP.

@Template[type:emanation|range:vc]

", + "description": "

When the Vampire is spotlighted, roll a d8. On a result of 6 or higher, all targets within Very Close range must mark a HP.

@Template[type:emanation|range:vc]

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

When the Vampire is spotlighted, roll a d8. On a result of 6 or higher, all targets within Very Close range must mark a HP.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -604,8 +640,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "6FsQf339qGHnz3ZF", "img": "icons/magic/unholy/strike-beam-blood-small-red-purple.webp", @@ -618,7 +653,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754128664385, + "modifiedTime": 1754128847871, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!i2UNbRvgyoSs07M6.6FsQf339qGHnz3ZF" } diff --git a/src/packs/adversaries/adversary_High_Seraph_r1mbfSSwKWdcFdAU.json b/src/packs/adversaries/adversary_High_Seraph_r1mbfSSwKWdcFdAU.json index 0a952540..c2e5c886 100644 --- a/src/packs/adversaries/adversary_High_Seraph_r1mbfSSwKWdcFdAU.json +++ b/src/packs/adversaries/adversary_High_Seraph_r1mbfSSwKWdcFdAU.json @@ -112,15 +112,20 @@ "img": "icons/skills/melee/strike-blade-hooked-orange-blue.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 98, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784283, + "modifiedTime": 1755259462909, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "r1mbfSSwKWdcFdAU", "sort": 1800000, "ownership": { @@ -227,42 +232,9 @@ "name": "Relentless (3)", "type": "feature", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to threeΒ times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Seraph can be spotlighted up to threeΒ times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "7oqXSF66R2GlB17O": { - "type": "effect", - "_id": "7oqXSF66R2GlB17O", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "2", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "originId": null }, @@ -277,7 +249,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136398491, + "modifiedTime": 1754136414914, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!r1mbfSSwKWdcFdAU.jUu058IZwt4u2goM" }, @@ -285,14 +265,14 @@ "name": "Divine Flight", "type": "feature", "system": { - "description": "

While the @Lookup[@name] is flying, spend a Fear to move up to Far range instead of Close range before taking an action.

", + "description": "

While the Seraph is flying, spend a Fear to move up to Far range instead of Close range before taking an action.

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

While the Seraph is flying, spend a Fear to move up to Far range instead of Close range before taking an action.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -300,6 +280,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -332,7 +313,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136416539, + "modifiedTime": 1754136462078, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!r1mbfSSwKWdcFdAU.2AB3ouMpy2wWnGQm" }, @@ -340,14 +329,14 @@ "name": "Judgement", "type": "feature", "system": { - "description": "

Spend a Fear to make a target Guilty in the eyes of the Seraph’s god until the @Lookup[@name] is defeated. While Guilty, the target doesn’t gain Hope on a result with Hope. When the @Lookup[@name] succeeds on a standard attack against a Guilty target, they deal Severe damage instead of their standard damage. The @Lookup[@name] can only mark one target at a time.

", + "description": "

Spend a Fear to make a target Guilty in the eyes of the Seraph’s god until the Seraph is defeated. While Guilty, the target doesn’t gain Hope on a result with Hope. When the Seraph succeeds on a standard attack against a Guilty target, they deal Severe damage instead of their standard damage. The Seraph can only mark one target at a time.

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

Spend a Fear to make a target Guilty in the eyes of the Seraph’s god until the Seraph is defeated. While Guilty, the target doesn’t gain Hope on a result with Hope. When the Seraph succeeds on a standard attack against a Guilty target, they deal Severe damage instead of their standard damage. The Seraph can only mark one target at a time.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -372,8 +361,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "FilEB21L5q9XxKE1", "img": "icons/magic/light/beams-rays-orange-purple-small.webp", @@ -410,7 +398,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136534652, + "modifiedTime": 1754136581108, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!r1mbfSSwKWdcFdAU.FilEB21L5q9XxKE1.O8G0oOf9f3qzNOAT" } @@ -423,7 +419,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136464900, + "modifiedTime": 1754136534670, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!r1mbfSSwKWdcFdAU.FilEB21L5q9XxKE1" }, @@ -438,7 +442,7 @@ "type": "attack", "_id": "HwC75gazlN0k30AL", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to reflect a sliver of divinity as a searing beam of light that hits up to twenty targets within Very Far range. Targets must make a Presence Reaction Roll, with disadvantage if they are marked Guilty. Targets who fail take 4d6+12 magic damage. Targets who succeed take half damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -446,6 +450,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -516,8 +521,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "Vrb8dIJcOJ3ClwO5", "img": "icons/magic/light/beam-strike-orange-gold.webp", @@ -530,7 +534,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136588610, + "modifiedTime": 1754136679820, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!r1mbfSSwKWdcFdAU.Vrb8dIJcOJ3ClwO5" }, @@ -545,7 +557,7 @@ "type": "effect", "_id": "j6DmU9dtob5QStxY", "systemPath": "actions", - "description": "", + "description": "

Once per scene, spend a Fear to spotlight all other adversaries within Far range. Attacks they make while spotlighted in this way deal half damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -553,6 +565,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -572,8 +585,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "9LpLXpQBfQryJA60", "img": "icons/magic/holy/barrier-shield-winged-blue.webp", @@ -586,7 +598,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136685757, + "modifiedTime": 1754136726423, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!r1mbfSSwKWdcFdAU.9LpLXpQBfQryJA60" } diff --git a/src/packs/adversaries/adversary_Huge_Green_Ooze_6hbqmxDXFOzZJDk4.json b/src/packs/adversaries/adversary_Huge_Green_Ooze_6hbqmxDXFOzZJDk4.json index 6f64f883..af630cdd 100644 --- a/src/packs/adversaries/adversary_Huge_Green_Ooze_6hbqmxDXFOzZJDk4.json +++ b/src/packs/adversaries/adversary_Huge_Green_Ooze_6hbqmxDXFOzZJDk4.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 94, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784284, + "modifiedTime": 1755266545039, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "6hbqmxDXFOzZJDk4", "sort": 3400000, "ownership": { @@ -227,7 +232,7 @@ "name": "Slow", "type": "feature", "system": { - "description": "

When you spotlight the @Lookup[@name] and they don’t have a token on their stat block, they can’t act yet. Place a token on their stat block and describe what they’re preparing to do. When you spotlight the @Lookup[@name] and they have a token on their stat block, clear the token and they can act.

", + "description": "

When you spotlight the Ooze and they don’t have a token on their stat block, they can’t act yet. Place a token on their stat block and describe what they’re preparing to do. When you spotlight the Ooze and they have a token on their stat block, clear the token and they can act.

", "resource": { "type": "simple", "value": 0, @@ -249,7 +254,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754129117639, + "modifiedTime": 1754129147613, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!6hbqmxDXFOzZJDk4.k9VopaGHqefLVfUq" }, @@ -257,14 +270,14 @@ "name": "Acidic Form", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack, the target must mark an Armor Slot without receiving its benefi ts (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", + "description": "

When the Ooze makes a successful attack, the target must mark an Armor Slot without receiving its benefi ts (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

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

When the Ooze makes a successful attack, the target must mark an Armor Slot without receiving its benefi ts (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -327,7 +340,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754129153649, + "modifiedTime": 1754129204931, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!6hbqmxDXFOzZJDk4.BQsVuuwFYByKwesR" }, @@ -335,7 +356,7 @@ "name": "Envelop", "type": "feature", "system": { - "description": "

Make an attack against a target within Melee range. On a success, the @Lookup[@name] Envelops them and the target must mark 2 Stress. While Enveloped, the target must mark an additional Stress every time they make an action roll. When the @Lookup[@name] takes Severe damage, all Enveloped targets are freed and the condition is cleared.

", + "description": "

Make an attack against a target within Melee range. On a success, the Ooze Envelops them and the target must mark 2 Stress. While Enveloped, the target must mark an additional Stress every time they make an action roll. When the Ooze takes Severe damage, all Enveloped targets are freed and the condition is cleared.

", "resource": null, "actions": { "hQBYPagz5yuTcCQq": { @@ -417,8 +438,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "pfXYuH7rtsyVjSXh", "img": "icons/creatures/slimes/slime-face-melting-green.webp", @@ -455,7 +475,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754129265476, + "modifiedTime": 1754129295620, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!6hbqmxDXFOzZJDk4.pfXYuH7rtsyVjSXh.EwZ8owroJxFpg81e" } @@ -468,7 +496,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754129212910, + "modifiedTime": 1754129265484, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!6hbqmxDXFOzZJDk4.pfXYuH7rtsyVjSXh" }, @@ -476,14 +512,14 @@ "name": "Split", "type": "feature", "system": { - "description": "

When the @Lookup[@name] has 4 or more HP marked, you can spend a Fear to split them into two @UUID[Compendium.daggerheart.adversaries.Actor.SHXedd9zZPVfUgUa]{Green Oozes}(with no marked HP or Stress). Immediately spotlight both of them.

", + "description": "

When the Ooze has 4 or more HP marked, you can spend a Fear to split them into two @UUID[Compendium.daggerheart.adversaries.Actor.SHXedd9zZPVfUgUa]{Green Oozes}(with no marked HP or Stress). Immediately spotlight both of them.

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

When the Ooze has 4 or more HP marked, you can spend a Fear to split them into two @UUID[Compendium.daggerheart.adversaries.Actor.SHXedd9zZPVfUgUa]{Green Oozes}(with no marked HP or Stress). Immediately spotlight both of them.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -491,6 +527,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -510,8 +547,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "Mq90kFBM5ix2pzzh", "img": "icons/creatures/slimes/slime-movement-pseudopods-green.webp", @@ -524,7 +560,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754129303824, + "modifiedTime": 1754129396676, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!6hbqmxDXFOzZJDk4.Mq90kFBM5ix2pzzh" } diff --git a/src/packs/adversaries/adversary_Hydra_MI126iMOOobQ1Obn.json b/src/packs/adversaries/adversary_Hydra_MI126iMOOobQ1Obn.json index 4c6fd61f..170b55a1 100644 --- a/src/packs/adversaries/adversary_Hydra_MI126iMOOobQ1Obn.json +++ b/src/packs/adversaries/adversary_Hydra_MI126iMOOobQ1Obn.json @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 94, - "artist": "" - }, - "size": "huge" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784285, + "modifiedTime": 1755259462679, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "MI126iMOOobQ1Obn", "sort": 3400000, "ownership": { @@ -221,7 +226,7 @@ "name": "Many-Headed Menace", "type": "feature", "system": { - "description": "

The @Lookup[@name] begins with three heads and can have up to five. When the @Lookup[@name] takes Major or greater damage, they lose a head.

", + "description": "

The Hydra begins with three heads and can have up to five. When the Hydra takes Major or greater damage, they lose a head.

", "resource": { "type": "simple", "value": 3, @@ -243,7 +248,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754129476164, + "modifiedTime": 1754129519008, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!MI126iMOOobQ1Obn.Lg40vTEegQh2He7A" }, @@ -251,7 +264,7 @@ "name": "Relentless (X)", "type": "feature", "system": { - "description": "

The @Lookup[@name] can be spotlighted X times per GM turn, where X is the @Lookup[@name]’s number of heads. Spend Fear as usual to spotlight them.


Note: Automation is not added so manually spend fear as per text.

", + "description": "

The Hydra can be spotlighted X times per GM turn, where X is the Hydra’s number of heads. Spend Fear as usual to spotlight them.

", "resource": null, "actions": {}, "originItemType": null, @@ -268,7 +281,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754129556390, + "modifiedTime": 1754129579457, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!MI126iMOOobQ1Obn.nwIjDjpLGfuXNYvA" }, @@ -276,14 +297,14 @@ "name": "Regeneration", "type": "feature", "system": { - "description": "

If the @Lookup[@name] has any marked HP, spend a Fear to clear a HP and grow two heads.

", + "description": "

If the Hydra has any marked HP, spend a Fear to clear a HP and grow two heads.

", "resource": null, "actions": { "SsRtZwee1mYlPLUy": { "type": "healing", "_id": "SsRtZwee1mYlPLUy", "systemPath": "actions", - "description": "", + "description": "

If the Hydra has any marked HP, spend a Fear to clear a HP and grow two heads.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -291,6 +312,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -355,8 +377,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "b2KflqWoOxHMQf97", "img": "icons/magic/life/cross-beam-green.webp", @@ -369,7 +390,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1754129581504, + "modifiedTime": 1755266587320, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items!MI126iMOOobQ1Obn.b2KflqWoOxHMQf97" }, @@ -384,7 +413,7 @@ "type": "damage", "_id": "nJxpFR4Ul0e2RrL4", "systemPath": "actions", - "description": "", + "description": "

All PCs within Far range lose 2 Hope.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -434,8 +463,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "bCeCu8M25izOAsuY", "img": "icons/magic/death/skull-energy-light-white.webp", @@ -448,7 +476,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754129635867, + "modifiedTime": 1754129708942, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!MI126iMOOobQ1Obn.bCeCu8M25izOAsuY" }, @@ -456,7 +492,7 @@ "name": "Magical Weakness", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes magic damage, they become Dazed until the next roll with Fear. While Dazed, they can’t use their Regeneration action but are immune to magic damage.

", + "description": "

When the Hydra takes magic damage, they become Dazed until the next roll with Fear. While Dazed, they can’t use their Regeneration action but are immune to magic damage.

", "resource": null, "actions": { "heAkvOuQG1EJmVbb": { @@ -488,8 +524,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "sJzjcRBgYRp5f53E", "img": "icons/magic/symbols/star-rising-purple.webp", @@ -533,7 +568,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754129774770, + "modifiedTime": 1754129802903, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!MI126iMOOobQ1Obn.sJzjcRBgYRp5f53E.iBJ3YhEkVsGKEIVk" } @@ -546,7 +589,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754129711844, + "modifiedTime": 1754129774780, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!MI126iMOOobQ1Obn.sJzjcRBgYRp5f53E" } diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Bandit_5Lh1T0zaT8Pkr2U2.json b/src/packs/adversaries/adversary_Jagged_Knife_Bandit_5Lh1T0zaT8Pkr2U2.json index ae359eaf..1c8d59c6 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Bandit_5Lh1T0zaT8Pkr2U2.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Bandit_5Lh1T0zaT8Pkr2U2.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 77, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784290, + "modifiedTime": 1755259904640, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "5Lh1T0zaT8Pkr2U2", "sort": 900000, "ownership": { @@ -229,7 +234,7 @@ "_id": "5VPb3OJDv6Q5150r", "img": "icons/skills/movement/arrow-upward-white.webp", "system": { - "description": "

The @Lookup[@name] climbs just as easily as they run.

", + "description": "

The Bandit climbs just as easily as they run.

", "resource": null, "actions": {}, "originItemType": null, @@ -245,7 +250,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048330414, + "modifiedTime": 1754048348296, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!5Lh1T0zaT8Pkr2U2.5VPb3OJDv6Q5150r" }, @@ -255,14 +268,14 @@ "_id": "V7haVmSLm6vTeffc", "img": "icons/skills/movement/arrow-down-pink.webp", "system": { - "description": "

When the @Lookup[@name] succeeds on a standard attack from above a target, they deal 1d10+1 physical damage instead of their standard damage.

", + "description": "

When the Bandit succeeds on a standard attack from above a target, they deal 1d10+1 physical damage instead of their standard damage.

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

When the Bandit succeeds on a standard attack from above a target, they deal 1d10+1 physical damage instead of their standard damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -325,7 +338,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048351101, + "modifiedTime": 1754144389470, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!5Lh1T0zaT8Pkr2U2.V7haVmSLm6vTeffc" } diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Hexer_MbBPIOxaxXYNApXz.json b/src/packs/adversaries/adversary_Jagged_Knife_Hexer_MbBPIOxaxXYNApXz.json index 6ca9749c..6ecc3fdd 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Hexer_MbBPIOxaxXYNApXz.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Hexer_MbBPIOxaxXYNApXz.json @@ -111,15 +111,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 78, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784291, + "modifiedTime": 1755259462688, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "MbBPIOxaxXYNApXz", "sort": 3000000, "ownership": { @@ -235,7 +240,7 @@ "type": "effect", "_id": "yzjCJyfGzZrEd0G3", "systemPath": "actions", - "description": "", + "description": "

Choose a target within Far range and temporarily Curse them. While the target is Cursed, you can mark a Stress when that target rolls with Hope to make the roll be with Fear instead.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -261,8 +266,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -297,7 +301,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048512322, + "modifiedTime": 1754048550598, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!MbBPIOxaxXYNApXz.Bl8L0RCGOgVUzuXo.ihy3kvEGSOEKdNfT" } @@ -310,7 +322,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048453602, + "modifiedTime": 1754144401991, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!MbBPIOxaxXYNApXz.Bl8L0RCGOgVUzuXo" }, @@ -320,14 +340,14 @@ "_id": "d8uVdKpTm9yw6TZS", "img": "icons/magic/unholy/projectile-bolts-salvo-pink.webp", "system": { - "description": "

Make an attack against up to three targets within Very Close range. Mark a Stress to deal 2d6+3 magic damage to targets the @Lookup[@name] succeeded against.

", + "description": "

Make an attack against up to three targets within Very Close range. Mark a Stress to deal 2d6+3 magic damage to targets the Hexer succeeded against.

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

Make an attack against up to three targets within Very Close range. Mark a Stress to deal 2d6+3 magic damage to targets the Hexer succeeded against.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -399,8 +419,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -411,7 +430,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048558693, + "modifiedTime": 1754144410119, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!MbBPIOxaxXYNApXz.d8uVdKpTm9yw6TZS" } diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Kneebreaker_CBKixLH3yhivZZuL.json b/src/packs/adversaries/adversary_Jagged_Knife_Kneebreaker_CBKixLH3yhivZZuL.json index fc644604..0d5e2133 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Kneebreaker_CBKixLH3yhivZZuL.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Kneebreaker_CBKixLH3yhivZZuL.json @@ -117,15 +117,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 78, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784292, + "modifiedTime": 1755259941370, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "CBKixLH3yhivZZuL", "sort": 2300000, "ownership": { @@ -234,7 +239,7 @@ "_id": "vipYd2zMFs0i4Ock", "img": "icons/commodities/metal/chain-silver.webp", "system": { - "description": "

Creatures Restrained by the @Lookup[@name] take double damage from attacks by other adversaries.

", + "description": "

Creatures Restrained by the Kneebreaker take double damage from attacks by other adversaries.

", "resource": null, "actions": {}, "originItemType": null, @@ -250,7 +255,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048707079, + "modifiedTime": 1754048731065, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!CBKixLH3yhivZZuL.vipYd2zMFs0i4Ock" }, @@ -260,14 +273,14 @@ "_id": "Sa4Nt0eoDjirBKGf", "img": "icons/skills/melee/unarmed-punch-fist.webp", "system": { - "description": "

Make an attack against a target within Melee range. On a success, the target takes no damage but is Restrained and Vulnerable. The target can break free, clearing both conditions, with a successful Strength Roll or is freed automatically if the @Lookup[@name] takes Major or greater damage.

", + "description": "

Make an attack against a target within Melee range. On a success, the target takes no damage but is Restrained and Vulnerable. The target can break free, clearing both conditions, with a successful Strength Roll or is freed automatically if the Kneebreaker takes Major or greater damage.

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

Make an attack against a target within Melee range. On a success, the target takes no damage but is Restrained and Vulnerable. The target can break free, clearing both conditions, with a successful Strength Roll or is freed automatically if the Kneebreaker takes Major or greater damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -317,8 +330,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -356,7 +368,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048778047, + "modifiedTime": 1754048784601, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!CBKixLH3yhivZZuL.Sa4Nt0eoDjirBKGf.d7sB1Qa1kJMnglqu" } @@ -369,7 +389,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048736567, + "modifiedTime": 1754144425310, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!CBKixLH3yhivZZuL.Sa4Nt0eoDjirBKGf" } diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Lackey_C0OMQqV7pN6t7ouR.json b/src/packs/adversaries/adversary_Jagged_Knife_Lackey_C0OMQqV7pN6t7ouR.json index 1a95bf87..a7caeeee 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Lackey_C0OMQqV7pN6t7ouR.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Lackey_C0OMQqV7pN6t7ouR.json @@ -105,15 +105,20 @@ "stress": { "max": 1 } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 78, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784293, + "modifiedTime": 1755259961931, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "C0OMQqV7pN6t7ouR", "sort": 2100000, "ownership": { @@ -222,7 +227,7 @@ "_id": "hfP30YIlYDW9wkHe", "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 3 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Lackey is defeated when they take any damage. For every 3 damage a PC deals to the Lackey, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -238,7 +243,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048850501, + "modifiedTime": 1754048890330, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!C0OMQqV7pN6t7ouR.hfP30YIlYDW9wkHe" }, @@ -248,14 +261,14 @@ "_id": "1k5TmQIAunM7Bv32", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name] within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 2 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Jagged Knife Lackeys within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 2 physical damage each. Combine this damage.

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

Spend a Fear to choose a target and spotlight all Jagged Knife Lackeys within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 2 physical damage each. Combine this damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -263,6 +276,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -283,8 +297,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -295,7 +308,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048894188, + "modifiedTime": 1754144438393, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!C0OMQqV7pN6t7ouR.1k5TmQIAunM7Bv32" } diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json b/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json index 165bb160..c551f836 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json @@ -111,15 +111,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 78, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784294, + "modifiedTime": 1755259462803, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "aTljstqteGoLpCBq", "sort": 4000000, "ownership": { @@ -228,14 +233,14 @@ "_id": "LIAbel7pMzAHpgF3", "img": "icons/skills/movement/arrows-up-trio-red.webp", "system": { - "description": "

When you spotlight the @Lookup[@name], mark a Stress to also spotlight two allies within Close range.

", + "description": "

When you spotlight the Lieutenant, mark a Stress to also spotlight two allies within Close range.

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

When you spotlight the Lieutenant, mark a Stress to also spotlight two allies within Close range.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -243,6 +248,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -263,8 +269,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -275,7 +280,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048989987, + "modifiedTime": 1754144449897, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!aTljstqteGoLpCBq.LIAbel7pMzAHpgF3" }, @@ -285,13 +298,12 @@ "_id": "Mo91w4ccffcmBPt5", "img": "icons/magic/control/silhouette-hold-beam-blue.webp", "system": { - "description": "

Summon three @Compendium[daggerheart.adversaries.Actor.C0OMQqV7pN6t7ouR], who appear at Far range.

", + "description": "

Summon three Jagged Knife Lackeys, who appear at Far range.

", "resource": null, "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -302,7 +314,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049041008, + "modifiedTime": 1754049075688, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!aTljstqteGoLpCBq.Mo91w4ccffcmBPt5" }, @@ -319,7 +339,7 @@ "type": "attack", "_id": "fzVyO0DUwIVEUCtg", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to make an attack against a Vulnerable target within Close range. On a success, deal 2d6+12 physical damage and the target must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -327,6 +347,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -423,8 +444,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -435,7 +455,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049080786, + "modifiedTime": 1754144457672, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!aTljstqteGoLpCBq.qe94UdLZb0p3Gvxj" }, @@ -445,83 +473,12 @@ "_id": "uelnRgGStjJ27VtO", "img": "icons/skills/melee/strike-weapons-orange.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Lieutenant makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "GSjfSgBzyhbVcpbt": { - "type": "healing", - "_id": "GSjfSgBzyhbVcpbt", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -532,7 +489,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049157702, + "modifiedTime": 1754049175516, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!aTljstqteGoLpCBq.uelnRgGStjJ27VtO" } diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Shadow_XF4tYTq9nPJAy2ox.json b/src/packs/adversaries/adversary_Jagged_Knife_Shadow_XF4tYTq9nPJAy2ox.json index bca035c1..d3acab90 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Shadow_XF4tYTq9nPJAy2ox.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Shadow_XF4tYTq9nPJAy2ox.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 78, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784295, + "modifiedTime": 1755260040062, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "XF4tYTq9nPJAy2ox", "sort": 3700000, "ownership": { @@ -229,14 +234,14 @@ "_id": "dhycdSd4NYdPOYbP", "img": "icons/weapons/daggers/dagger-crooked-ice-blue.webp", "system": { - "description": "

When the @Lookup[@name] succeeds on a standard attack that has advantage, they deal 1d6+6 physical damage instead of their standard damage.

", + "description": "

When the Shadow succeeds on a standard attack that has advantage, they deal 1d6+6 physical damage instead of their standard damage.

", "resource": null, "actions": { "6G5Dasl1pP8pfYkZ": { "type": "attack", "_id": "6G5Dasl1pP8pfYkZ", "systemPath": "actions", - "description": "", + "description": "

When the Shadow succeeds on a standard attack that has advantage, they deal 1d6+6 physical damage instead of their standard damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -319,7 +324,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049227184, + "modifiedTime": 1754144471790, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!XF4tYTq9nPJAy2ox.dhycdSd4NYdPOYbP" }, @@ -329,14 +342,14 @@ "_id": "ILIogeKbYioPutRw", "img": "icons/magic/perception/silhouette-stealth-shadow.webp", "system": { - "description": "

Become Hidden until after the @Lookup[@name]’s next attack. Attacks made while Hidden from this feature have advantage.

", + "description": "

Become Hidden until after the Shadow’s next attack. Attacks made while Hidden from this feature have advantage.

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

Become Hidden until after the Shadow’s next attack. Attacks made while Hidden from this feature have advantage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -363,8 +376,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -408,7 +420,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1755263044332, + "modifiedTime": 1755263071114, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items.effects!XF4tYTq9nPJAy2ox.ILIogeKbYioPutRw.w5VTwlHmUjl8XCQ4" } @@ -421,7 +441,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1754049306353, + "modifiedTime": 1755263044345, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items!XF4tYTq9nPJAy2ox.ILIogeKbYioPutRw" } diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Sniper_1zuyof1XuIfi3aMG.json b/src/packs/adversaries/adversary_Jagged_Knife_Sniper_1zuyof1XuIfi3aMG.json index 166c521b..b08f3922 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Sniper_1zuyof1XuIfi3aMG.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Sniper_1zuyof1XuIfi3aMG.json @@ -39,8 +39,7 @@ "experiences": { "GLqSqPJcyKHQYMtO": { "name": "Stealth", - "value": 2, - "description": "" + "value": 2 } }, "bonuses": { @@ -71,7 +70,7 @@ }, "tier": 1, "description": "

A lanky bandit striking from cover with a shortbow.

", - "motivesAndTactics": "Ambush, hide, profit, reposition", + "motivesAndTactics": "Ambush, hide, profi t, reposition", "attack": { "name": "Shortbow", "img": "icons/weapons/bows/shortbow-leather.webp", @@ -112,15 +111,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 78, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784296, + "modifiedTime": 1755259462527, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "1zuyof1XuIfi3aMG", "sort": 300000, "ownership": { @@ -229,14 +233,14 @@ "_id": "adPXzpvLREjN3len", "img": "icons/skills/ranged/arrow-flying-spiral-blue.webp", "system": { - "description": "

If the @Lookup[@name] is Hidden when they make a successful standard attack against a target, they deal 1d10+4 physical damage instead of their standard damage.

", + "description": "

If the Sniper is Hidden when they make a successful standard attack against a target, they deal 1d10+4 physical damage instead of their standard damage.

", "resource": null, "actions": { "2eX7P0wSfbKKu8dJ": { "type": "attack", "_id": "2eX7P0wSfbKKu8dJ", "systemPath": "actions", - "description": "", + "description": "

If the Sniper is Hidden when they make a successful standard attack against a target, they deal 1d10+4 physical damage instead of their standard damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -319,7 +323,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049443033, + "modifiedTime": 1754144483728, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!1zuyof1XuIfi3aMG.adPXzpvLREjN3len" } diff --git a/src/packs/adversaries/adversary_Juvenile_Flickerfly_MYXmTx2FHcIjdfYZ.json b/src/packs/adversaries/adversary_Juvenile_Flickerfly_MYXmTx2FHcIjdfYZ.json index 86d69c37..51740ec5 100644 --- a/src/packs/adversaries/adversary_Juvenile_Flickerfly_MYXmTx2FHcIjdfYZ.json +++ b/src/packs/adversaries/adversary_Juvenile_Flickerfly_MYXmTx2FHcIjdfYZ.json @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 88, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784297, + "modifiedTime": 1755259462684, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "MYXmTx2FHcIjdfYZ", "sort": 1700000, "ownership": { @@ -221,42 +226,9 @@ "name": "Relentless (3)", "type": "feature", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to threeΒ times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Flickerfly can be spotlighted up to threeΒ times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "FgoP6tlMUxnv5k4Z": { - "type": "effect", - "_id": "FgoP6tlMUxnv5k4Z", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "2", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "originId": null }, @@ -271,7 +243,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754080169421, + "modifiedTime": 1754080186529, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!MYXmTx2FHcIjdfYZ.6SnqNCeSEY7Q2tSI" }, @@ -279,14 +259,14 @@ "name": "Peerless Accuracy", "type": "feature", "system": { - "description": "

Before the @Lookup[@name] makes an attack, roll a d6. On a result of 4 or higher, the target’s Evasion is halved against this attack.

", + "description": "

Before the Flickerfly makes an attack, roll a d6. On a result of 4 or higher, the target’s Evasion is halved against this attack.

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

Before the Flickerfly makes an attack, roll a d6. On a result of 4 or higher, the target’s Evasion is halved against this attack.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -379,7 +359,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754080259424, + "modifiedTime": 1754080309274, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!MYXmTx2FHcIjdfYZ.PHHEvM6IDFFZ8LSl.pZUEkMkCus4U7h8W" } @@ -392,7 +380,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754080188281, + "modifiedTime": 1754142700531, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!MYXmTx2FHcIjdfYZ.PHHEvM6IDFFZ8LSl" }, @@ -400,14 +396,14 @@ "name": "Mind Dance", "type": "feature", "system": { - "description": "

Mark a Stress to create a magically dazzling display that grapples the minds of nearby foes. All targets within Close range must make an Instinct Reaction Roll. For each target who failed, you gain a Fear and the @Lookup[@name] learns one of the target’s fears.

@Template[type:emanation|range:c]

", + "description": "

Mark a Stress to create a magically dazzling display that grapples the minds of nearby foes. All targets within Close range must make an Instinct Reaction Roll. For each target who failed, you gain a Fear and the Flickerfl y learns one of the target’s fears.

@Template[type:emanation|range:c]

", "resource": null, "actions": { "0wL3ieMrXEb2gcxe": { "type": "attack", "_id": "0wL3ieMrXEb2gcxe", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to create a magically dazzling display that grapples the minds of nearby foes. All targets within Close range must make an Instinct Reaction Roll. For each target who failed, you gain a Fear and the Flickerfl y learns one of the target’s fears.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -451,8 +447,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "Bt7MqMkPpPpzWksK", "img": "icons/magic/light/explosion-glow-spiral-yellow.webp", @@ -465,7 +460,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754080328898, + "modifiedTime": 1754142709272, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!MYXmTx2FHcIjdfYZ.Bt7MqMkPpPpzWksK" }, @@ -473,14 +476,14 @@ "name": "Hallucinatory Breath", "type": "feature", "system": { - "description": "

Countdown (Loop 1d6). When the @Lookup[@name] takes damage for the first time, activate the countdown. When it triggers, the @Lookup[@name] breathes hallucinatory gas on all targets in front of them up to Far range. Targets must succeed on an Instinct Reaction Roll or be tormented by fearful hallucinations. Targets whose fears are known to the @Lookup[@name] have disadvantage on this roll. Targets who fail must mark a Stress and lose a Hope.

@Template[type:inFront|range:f]

", + "description": "

Countdown (Loop 1d6). When the Flickerfl y takes damage for the fi rst time, activate the countdown. When it triggers, the Flickerfly breathes hallucinatory gas on all targets in front of them up to Far range. Targets must succeed on an Instinct Reaction Roll or be tormented by fearful hallucinations. Targets whose fears are known to the Flickerfl y have disadvantage on this roll. Targets who fail must mark a Stress and lose a Hope.

@Template[type:inFront|range:f]

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

Countdown (Loop 1d6). When the Flickerfl y takes damage for the fi rst time, activate the countdown. When it triggers, the Flickerfly breathes hallucinatory gas on all targets in front of them up to Far range. Targets must succeed on an Instinct Reaction Roll or be tormented by fearful hallucinations. Targets whose fears are known to the Flickerfl y have disadvantage on this roll. Targets who fail must mark a Stress and lose a Hope.

@Template[type:inFront|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -572,48 +575,10 @@ "name": "Roll Save", "img": "icons/magic/air/fog-gas-smoke-purple.webp", "range": "far" - }, - "n8ZuLjwTf2FJ7V6n": { - "type": "countdown", - "_id": "n8ZuLjwTf2FJ7V6n", - "systemPath": "actions", - "description": "

Countdown (Loop 1d6). When the @Lookup[@name] takes damage for the first time, activate the countdown.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Hallucinatory Breath", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/air/fog-gas-smoke-purple.webp", - "progress": { - "looping": "looping", - "type": "actionRoll", - "start": 1, - "startFormula": "1d6", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/air/fog-gas-smoke-purple.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "EjfM83eVCdcVGC3c", "img": "icons/magic/air/fog-gas-smoke-purple.webp", @@ -626,7 +591,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754080402680, + "modifiedTime": 1754142717997, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!MYXmTx2FHcIjdfYZ.EjfM83eVCdcVGC3c" } diff --git a/src/packs/adversaries/adversary_Knight_of_the_Realm_7ai2opemrclQe3VF.json b/src/packs/adversaries/adversary_Knight_of_the_Realm_7ai2opemrclQe3VF.json index 71cb7a8d..86757347 100644 --- a/src/packs/adversaries/adversary_Knight_of_the_Realm_7ai2opemrclQe3VF.json +++ b/src/packs/adversaries/adversary_Knight_of_the_Realm_7ai2opemrclQe3VF.json @@ -122,15 +122,20 @@ "range": "melee", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 88, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784302, + "modifiedTime": 1755265352331, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "7ai2opemrclQe3VF", "sort": 700000, "ownership": { @@ -237,7 +242,7 @@ "name": "Chevalier", "type": "feature", "system": { - "description": "

While the @Lookup[@name] is on a mount, they gain a +2 bonus to their Difficulty. When they take Severe damage, they’re knocked from their mount and lose this benefit until they’re next spotlighted.

", + "description": "

While the Knight is on a mount, they gain a +2 bonus to their Difficulty. When they take Severe damage, they’re knocked from their mount and lose this benefit until they’re next spotlighted.

", "resource": null, "actions": {}, "originItemType": null, @@ -285,7 +290,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754080622148, + "modifiedTime": 1755265361100, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items.effects!7ai2opemrclQe3VF.5ag5tOemPJToOoUq.w8wLcSsTiTU3mS7e" } @@ -298,7 +311,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754080584298, + "modifiedTime": 1754080618147, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!7ai2opemrclQe3VF.5ag5tOemPJToOoUq" }, @@ -306,7 +327,7 @@ "name": "Heavily Armored", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes physical damage, reduce it by 3.

", + "description": "

When the Knight takes physical damage, reduce it by 3.

", "resource": null, "actions": {}, "originItemType": null, @@ -354,7 +375,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754080680727, + "modifiedTime": 1754080709307, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!7ai2opemrclQe3VF.ErWO4lqni81aRo7k.xZjvrNRRjskY3n3j" } @@ -367,7 +396,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754080653053, + "modifiedTime": 1754080677886, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!7ai2opemrclQe3VF.ErWO4lqni81aRo7k" }, @@ -375,14 +412,14 @@ "name": "Cavalry Charge", "type": "feature", "system": { - "description": "

If the @Lookup[@name] is mounted, move up to Far range and make a standard attack against a target. On a success, deal 2d8+4 physical damage and the target must mark a Stress.

", + "description": "

If the Knight is mounted, move up to Far range and make a standard attack against a target. On a success, deal 2d8+4 physical damage and the target must mark a Stress.

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

If the Knight is mounted, move up to Far range and make a standard attack against a target. On a success, deal 2d8+4 physical damage and the target must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -476,8 +513,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "djKDZawLnGF1zkbY", "img": "icons/skills/movement/arrow-upward-yellow.webp", @@ -490,7 +526,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754080711147, + "modifiedTime": 1754142733317, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!7ai2opemrclQe3VF.djKDZawLnGF1zkbY" }, @@ -505,7 +549,7 @@ "type": "effect", "_id": "V5fLHHdTOita6u9f", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to spotlight [[/r 1d4+1]] allies. Attacks they make while spotlighted in this way deal half damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -513,6 +557,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -532,8 +577,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "RoxNNIn0m9rHQDH8", "img": "icons/environment/people/charge.webp", @@ -546,7 +590,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754080771017, + "modifiedTime": 1754142743842, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!7ai2opemrclQe3VF.RoxNNIn0m9rHQDH8" } diff --git a/src/packs/adversaries/adversary_Kraken_4nqv3ZwJGjnmic8j.json b/src/packs/adversaries/adversary_Kraken_4nqv3ZwJGjnmic8j.json index 3b84774e..d0b014eb 100644 --- a/src/packs/adversaries/adversary_Kraken_4nqv3ZwJGjnmic8j.json +++ b/src/packs/adversaries/adversary_Kraken_4nqv3ZwJGjnmic8j.json @@ -112,15 +112,20 @@ "img": "icons/creatures/tentacles/tentacles-octopus-black-pink.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 99, - "artist": "" - }, - "size": "gargantuan" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784303, + "modifiedTime": 1755259462553, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "4nqv3ZwJGjnmic8j", "sort": 600000, "ownership": { @@ -227,42 +232,9 @@ "name": "Relentless (3)", "type": "feature", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to threeΒ times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Kraken can be spotlighted up to threeΒ times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "420LQBs27zQTAXfY": { - "type": "effect", - "_id": "420LQBs27zQTAXfY", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "2", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "originId": null }, @@ -277,7 +249,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136773170, + "modifiedTime": 1754136792851, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!4nqv3ZwJGjnmic8j.1YxbPc8C0X64w1JN" }, @@ -285,7 +265,7 @@ "name": "Many Tentacles", "type": "feature", "system": { - "description": "

While the @Lookup[@name] has 7 or fewer marked HP, they can make their standard attack against two targets within range.

", + "description": "

While the Kraken has 7 or fewer marked HP, they can make their standard attack against two targets within range.

", "resource": null, "actions": {}, "originItemType": null, @@ -302,7 +282,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136795146, + "modifiedTime": 1754136817153, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!4nqv3ZwJGjnmic8j.z01hq9CKFTupyRwT" }, @@ -310,7 +298,7 @@ "name": "Grapple and Drown", "type": "feature", "system": { - "description": "

Make an attack roll against a target within Close range. On a success, mark a Stress to grab them with a tentacle and drag them beneath the water. The target is Restrained and Vulnerable until they break free with a successful Strength Roll or the @Lookup[@name] takes Major or greater damage. While Restrained and Vulnerable in this way, a target must mark a Stress when they make an action roll.

", + "description": "

Make an attack roll against a target within Close range. On a success, mark a Stress to grab them with a tentacle and drag them beneath the water. The target is Restrained and Vulnerable until they break free with a successful Strength Roll or the Kraken takes Major or greater damage. While Restrained and Vulnerable in this way, a target must mark a Stress when they make an action roll.

", "resource": null, "actions": { "SX2Y4OapGEawl17j": { @@ -366,8 +354,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "vz2BWhispgR7mSWF", "img": "icons/magic/water/orb-water-bubbles-blue.webp", @@ -401,13 +388,21 @@ "description": "

You are Restrained and Vulnerable until you break free with a successful Strength Roll or the Kraken takes Major or greater damage. While Restrained and Vulnerable in this way, you must mark a Stress when you make an action roll.

", "tint": "#ffffff", "statuses": [ - "restrained", + "restrain", "vulnerable" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136887881, + "modifiedTime": 1754136930002, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!4nqv3ZwJGjnmic8j.vz2BWhispgR7mSWF.Xes6ZIE01CCN67KF" } @@ -420,7 +415,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136819936, + "modifiedTime": 1754136887890, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!4nqv3ZwJGjnmic8j.vz2BWhispgR7mSWF" }, @@ -435,7 +438,7 @@ "type": "attack", "_id": "pHZUiZRSj4FuG0uK", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to spew a line of boiling water at any number of targets in a line up to Far range. All targets must succeed on an Agility Reaction Roll or take 4d6+9 physical damage. If a target marks an Armor Slot to reduce the damage, they must also mark a Stress.

@Template[type:ray|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -506,8 +509,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "eksa3E2ecBgdib6h", "img": "icons/magic/water/projectile-icecicle-glowing.webp", @@ -520,7 +522,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754136941716, + "modifiedTime": 1754137007877, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!4nqv3ZwJGjnmic8j.eksa3E2ecBgdib6h" }, @@ -528,82 +538,11 @@ "name": "Momentum", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Kraken makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "hXQtIGmSaWKMOuFB": { - "type": "healing", - "_id": "hXQtIGmSaWKMOuFB", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "m4aybzb8tXWHelDU", "img": "icons/skills/melee/strike-weapons-orange.webp", @@ -616,7 +555,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754137017535, + "modifiedTime": 1754137033162, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!4nqv3ZwJGjnmic8j.m4aybzb8tXWHelDU" } diff --git a/src/packs/adversaries/adversary_Masked_Thief_niBpVU7yeo5ccskE.json b/src/packs/adversaries/adversary_Masked_Thief_niBpVU7yeo5ccskE.json index 528df6a9..a316a402 100644 --- a/src/packs/adversaries/adversary_Masked_Thief_niBpVU7yeo5ccskE.json +++ b/src/packs/adversaries/adversary_Masked_Thief_niBpVU7yeo5ccskE.json @@ -112,15 +112,20 @@ "range": "melee", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 88, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784304, + "modifiedTime": 1755265377045, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "niBpVU7yeo5ccskE", "sort": 3000000, "ownership": { @@ -227,14 +232,14 @@ "name": "Quick Hands", "type": "feature", "system": { - "description": "

Make an attack against a target within Melee range. On a success, deal 1d8+2 physical damage and the @Lookup[@name] steals one item or consumable from the target’s inventory.

", + "description": "

Make an attack against a target within Melee range. On a success, deal 1d8+2 physical damage and the Thief steals one item or consumable from the target’s inventory.

", "resource": null, "actions": { "33xlM2ph77SSUfBs": { "type": "attack", "_id": "33xlM2ph77SSUfBs", "systemPath": "actions", - "description": "", + "description": "

Make an attack against a target within Melee range. On a success, deal 1d8+2 physical damage and the Thief steals one item or consumable from the target’s inventory.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -303,8 +308,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "Cgk36WXthA9LwOYb", "img": "icons/skills/melee/strike-sword-gray.webp", @@ -317,7 +321,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754080943420, + "modifiedTime": 1754142758679, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!niBpVU7yeo5ccskE.Cgk36WXthA9LwOYb" }, @@ -325,14 +337,14 @@ "name": "Escape Plan", "type": "feature", "system": { - "description": "

Mark a Stress to reveal a snare trap set anywhere on the battlefield by the @Lookup[@name]. All targets within Very Close range of the trap must succeed on an Agility Reaction Roll (13) or be pulled off their feet and suspended upside down. A target is Restrained and Vulnerable until they break free, ending both conditions, with a successful Finesse or Strength Roll (13).

@Template[type:rect|range:c]

", + "description": "

Mark a Stress to reveal a snare trap set anywhere on the battlefi eld by the Thief. All targets within Very Close range of the trap must succeed on an Agility Reaction Roll (13) or be pulled off their feet and suspended upside down. A target is Restrained and Vulnerable until they break free, ending both conditions, with a successful Finesse or Strength Roll (13).

@Template[type:rect|range:c]

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

Mark a Stress to reveal a snare trap set anywhere on the battlefi eld by the Thief. All targets within Very Close range of the trap must succeed on an Agility Reaction Roll (13) or be pulled off their feet and suspended upside down. A target is Restrained and Vulnerable until they break free, ending both conditions, with a successful Finesse or Strength Roll (13).

@Template[type:rect|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -381,8 +393,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "tP2DD751nOLxFVps", "img": "icons/environment/traps/trap-jaw-tan.webp", @@ -416,13 +427,21 @@ "description": "

You are Restrained and Vulnerable until you break free, ending both conditions, with a successful Finesse or Strength Roll (13).

[[/dr trait=finesse difficulty=13]]
[[/dr trait=strength difficulty=13]]

", "tint": "#ffffff", "statuses": [ - "restrained", + "restrain", "vulnerable" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754081140666, + "modifiedTime": 1754081194531, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!niBpVU7yeo5ccskE.tP2DD751nOLxFVps.zMut1PRphlwE0xOa" } @@ -435,7 +454,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754081025242, + "modifiedTime": 1754142767652, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!niBpVU7yeo5ccskE.tP2DD751nOLxFVps" } diff --git a/src/packs/adversaries/adversary_Master_Assassin_dNta0cUzr96xcFhf.json b/src/packs/adversaries/adversary_Master_Assassin_dNta0cUzr96xcFhf.json index 3cec6e0b..26b1374b 100644 --- a/src/packs/adversaries/adversary_Master_Assassin_dNta0cUzr96xcFhf.json +++ b/src/packs/adversaries/adversary_Master_Assassin_dNta0cUzr96xcFhf.json @@ -117,15 +117,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 84, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784305, + "modifiedTime": 1755259462821, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "dNta0cUzr96xcFhf", "sort": 2500000, "ownership": { @@ -232,91 +237,9 @@ "name": "Won't See it Coming", "type": "feature", "system": { - "description": "

The @Lookup[@name] deals direct damage while they’re Hidden.

", + "description": "

The Assassin deals direct damage while they’re Hidden.

", "resource": null, - "actions": { - "xFBE0jLf96fbCY7K": { - "type": "attack", - "_id": "xFBE0jLf96fbCY7K", - "systemPath": "actions", - "baseAction": false, - "description": "", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": false, - "formula": "" - }, - "flatMultiplier": 2, - "dice": "d10", - "bonus": 2, - "multiplier": "flat" - }, - "applyTo": "hitPoints", - "type": [ - "physical" - ], - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - } - } - ], - "includeBase": false, - "direct": true - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": "attack", - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "save": { - "trait": null, - "difficulty": null, - "damageMod": "none" - }, - "name": "Hidden attack", - "img": "icons/magic/perception/silhouette-stealth-shadow.webp", - "range": "close" - } - }, + "actions": {}, "originItemType": null, "originId": null }, @@ -331,7 +254,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754081391258, + "modifiedTime": 1754081419719, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dNta0cUzr96xcFhf.Pb3qWLBJmpOmoKq0" }, @@ -339,14 +270,14 @@ "name": "Strike as One", "type": "feature", "system": { - "description": "

Mark a Stress to spotlight a number of other Assassins equal to the @Lookup[@name]’s unmarked Stress.

", + "description": "

Mark a Stress to spotlight a number of other Assassins equal to the Assassin’s unmarked Stress.

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

Mark a Stress to spotlight a number of other Assassins equal to the Assassin’s unmarked Stress.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -354,6 +285,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -373,8 +305,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "za6Qr0CjI9Kb4I0U", "img": "icons/skills/movement/arrows-up-trio-red.webp", @@ -387,7 +318,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754081423583, + "modifiedTime": 1754142790359, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dNta0cUzr96xcFhf.za6Qr0CjI9Kb4I0U" }, @@ -395,14 +334,14 @@ "name": "The Subtle Blade", "type": "feature", "system": { - "description": "

When the @Lookup[@name] successfully makes a standard attack against a Vulnerable target, you can spend a Fear to deal Severe damage instead of their standard damage.

", + "description": "

When the Assassin successfully makes a standard attack against a Vulnerable target, you can spend a Fear to deal Severe damage instead of their standard damage.

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

When the Assassin successfully makes a standard attack against a Vulnerable target, you can spend a Fear to deal Severe damage instead of their standard damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -410,6 +349,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -429,8 +369,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "s0WcpK43WN2ptqNc", "img": "icons/skills/melee/strike-dagger-blood-red.webp", @@ -443,7 +382,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754081466397, + "modifiedTime": 1754142798924, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dNta0cUzr96xcFhf.s0WcpK43WN2ptqNc" }, @@ -451,82 +398,11 @@ "name": "Momentum", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Assassin makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "7EP5X5kodzMCBQZO": { - "type": "healing", - "_id": "7EP5X5kodzMCBQZO", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "PcNgHScmTd9l3exN", "img": "icons/skills/melee/strike-weapons-orange.webp", @@ -539,7 +415,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754081711789, + "modifiedTime": 1754081721415, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dNta0cUzr96xcFhf.PcNgHScmTd9l3exN" } diff --git a/src/packs/adversaries/adversary_Merchant_Al3w2CgjfdT3p9ma.json b/src/packs/adversaries/adversary_Merchant_Al3w2CgjfdT3p9ma.json index 880b1a6e..1f3826ca 100644 --- a/src/packs/adversaries/adversary_Merchant_Al3w2CgjfdT3p9ma.json +++ b/src/packs/adversaries/adversary_Merchant_Al3w2CgjfdT3p9ma.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 79, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784305, + "modifiedTime": 1755263103972, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "Al3w2CgjfdT3p9ma", "sort": 1900000, "ownership": { @@ -229,7 +234,7 @@ "_id": "3Fwj28UxUcdMifoi", "img": "icons/skills/social/diplomacy-handshake.webp", "system": { - "description": "

A PC who succeeds on a Presence Roll against the @Lookup[@name] gains a discount on purchases. A PC who fails on a Presence Roll against the @Lookup[@name] must pay more and has disadvantage on future Presence Rolls against the @Lookup[@name].

", + "description": "

A PC who succeeds on a Presence Roll against the Merchant gains a discount on purchases. A PC who fails on a Presence Roll against the Merchant must pay more and has disadvantage on future Presence Rolls against the Merchant.

", "resource": null, "actions": {}, "originItemType": null, @@ -245,7 +250,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049540890, + "modifiedTime": 1754049568257, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!Al3w2CgjfdT3p9ma.3Fwj28UxUcdMifoi" }, @@ -255,14 +268,14 @@ "_id": "Ksdgov6mYg7Og2ys", "img": "icons/skills/social/trading-justice-scale-yellow.webp", "system": { - "description": "

When a PC rolls a 14 or lower on a Presence Roll made against the @Lookup[@name], they must mark a Stress.

", + "description": "

When a PC rolls a 14 or lower on a Presence Roll made against the Merchant, they must mark a Stress.

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

When a PC rolls a 14 or lower on a Presence Roll made against the Merchant, they must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -324,7 +337,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049578056, + "modifiedTime": 1754144497139, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!Al3w2CgjfdT3p9ma.Ksdgov6mYg7Og2ys" } diff --git a/src/packs/adversaries/adversary_Merchant_Baron_Vy02IhGhkJLuezu4.json b/src/packs/adversaries/adversary_Merchant_Baron_Vy02IhGhkJLuezu4.json index 15c0aeb9..97f6a052 100644 --- a/src/packs/adversaries/adversary_Merchant_Baron_Vy02IhGhkJLuezu4.json +++ b/src/packs/adversaries/adversary_Merchant_Baron_Vy02IhGhkJLuezu4.json @@ -117,15 +117,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 88, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784306, + "modifiedTime": 1755265400782, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "Vy02IhGhkJLuezu4", "sort": 2100000, "ownership": { @@ -239,7 +244,7 @@ "type": "attack", "_id": "T7N9rDCaB5VOm6AY", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to offer a target a dangerous bargain for something they want or need. If used on a PC, they must make a Presence Reaction Roll (17). On a failure, they must mark 2 Stress or take the deal.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -309,8 +314,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "7dxToUpxOyISXXde", "img": "icons/commodities/currency/coins-plain-stack-gold-yellow.webp", @@ -323,7 +327,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754081872693, + "modifiedTime": 1754142812803, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!Vy02IhGhkJLuezu4.7dxToUpxOyISXXde" }, @@ -331,14 +343,14 @@ "name": "The Best Muscle Money Can Buy", "type": "feature", "system": { - "description": "

Once per scene, mark a Stress to summon 1d4+1 Tier 1 adversaries, who appear at Far range, to enforce the @Lookup[@name]’s will.

", + "description": "

Once per scene, mark a Stress to summon 1d4+1 Tier 1 adversaries, who appear at Far range, to enforce the Baron’s will.

", "resource": null, "actions": { "9NA6vgfsv0y2tX9v": { "type": "effect", "_id": "9NA6vgfsv0y2tX9v", "systemPath": "actions", - "description": "", + "description": "

Once per scene, mark a Stress to summon 1d4+1 Tier 1 adversaries, who appear at Far range, to enforce the Baron’s will.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -346,6 +358,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -365,8 +378,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "QnDvERcyaq3XLCjF", "img": "icons/environment/people/charge.webp", @@ -379,7 +391,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754081946463, + "modifiedTime": 1754142821841, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!Vy02IhGhkJLuezu4.QnDvERcyaq3XLCjF" } diff --git a/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json b/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json index b1732c71..810359dd 100644 --- a/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json +++ b/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json @@ -106,15 +106,20 @@ "range": "close", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 79, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784307, + "modifiedTime": 1755259462919, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "sRn4bqerfARvhgSV", "sort": 4800000, "ownership": { @@ -223,7 +228,7 @@ "_id": "4Rw5KC5klRseiLvn", "img": "icons/magic/defensive/shield-barrier-flaming-diamond-blue.webp", "system": { - "description": "

The @Lookup[@name] is resistant to magic damage.

", + "description": "

The Elemental is resistant to magic damage.

", "resource": null, "actions": {}, "originItemType": null, @@ -270,7 +275,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049715134, + "modifiedTime": 1754049734456, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!sRn4bqerfARvhgSV.4Rw5KC5klRseiLvn.vwc93gtzFoFZj4XT" } @@ -283,7 +296,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049689376, + "modifiedTime": 1754049704950, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!sRn4bqerfARvhgSV.4Rw5KC5klRseiLvn" }, @@ -300,7 +321,7 @@ "type": "damage", "_id": "g4CVwjDeJgTJ2oCw", "systemPath": "actions", - "description": "", + "description": "

Mark a HP to force all targets within Close range to mark a Stress and become Vulnerable until their next rest or they clear a HP.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -308,6 +329,7 @@ "scalable": false, "key": "hitPoints", "value": 1, + "keyIsID": false, "step": null } ], @@ -363,8 +385,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -401,7 +422,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049820090, + "modifiedTime": 1754049838876, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!sRn4bqerfARvhgSV.oAxhAawgcK7DAdpa.KIyV2eXDmmymXY5y" } @@ -414,7 +443,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049738720, + "modifiedTime": 1754144510716, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!sRn4bqerfARvhgSV.oAxhAawgcK7DAdpa" }, @@ -431,7 +468,7 @@ "type": "damage", "_id": "QzuQIAtSrgz9Zd5V", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to transform the area within Very Close range into a different biome. All targets within this area take 2d6+3 direct magic damage.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -439,6 +476,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -490,8 +528,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -502,7 +539,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049858342, + "modifiedTime": 1754144523565, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!sRn4bqerfARvhgSV.updQuIK8sybf4YmW" }, @@ -512,13 +557,12 @@ "_id": "dnVB2DxbpYtwt0S0", "img": "icons/magic/light/beam-impact-deflect-teal.webp", "system": { - "description": "

When the @Lookup[@name] takes damage from an attack within Close range, deal an amount of damage to the attacker equal to half the damage they dealt.

", + "description": "

When the Elemental takes damage from an attack within Close range, deal an amount of damage to the attacker equal to half the damage they dealt.

", "resource": null, "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -529,7 +573,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049966321, + "modifiedTime": 1754049998059, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!sRn4bqerfARvhgSV.dnVB2DxbpYtwt0S0" }, @@ -539,83 +591,12 @@ "_id": "JqRfb0IZ3aJrVazI", "img": "icons/skills/melee/strike-weapons-orange.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Elemental makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "zpQIB9z9kK2BlfqZ": { - "type": "healing", - "_id": "zpQIB9z9kK2BlfqZ", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -626,7 +607,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050010657, + "modifiedTime": 1754050027337, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!sRn4bqerfARvhgSV.JqRfb0IZ3aJrVazI" } diff --git a/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json b/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json index 3a330fdf..9b4e8594 100644 --- a/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json +++ b/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json @@ -105,15 +105,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 79, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784308, + "modifiedTime": 1755259462544, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "3tqCjDwJAQ7JKqMb", "sort": 700000, "ownership": { @@ -222,42 +227,9 @@ "_id": "4xoydX3YwsLujuaI", "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to twoΒ times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Demon can be spotlighted up to twoΒ times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "lfYFbb71wWaR8DJs": { - "type": "effect", - "_id": "lfYFbb71wWaR8DJs", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "1", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, "originId": null @@ -271,7 +243,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050072926, + "modifiedTime": 1754050089194, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!3tqCjDwJAQ7JKqMb.4xoydX3YwsLujuaI" }, @@ -281,14 +261,14 @@ "_id": "kD9kO92V7t3IqZu8", "img": "icons/magic/unholy/strike-hand-glow-pink.webp", "system": { - "description": "

When a PC rolls a failure with Fear while within Close range of the @Lookup[@name], they lose a Hope.

@Template[type:emanation|range:c]

", + "description": "

When a PC rolls a failure with Fear while within Close range of the Demon, they lose a Hope.

@Template[type:emanation|range:c]

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

When a PC rolls a failure with Fear while within Close range of the Demon, they lose a Hope.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -350,7 +330,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050091351, + "modifiedTime": 1754144539341, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!3tqCjDwJAQ7JKqMb.kD9kO92V7t3IqZu8" }, @@ -367,7 +355,7 @@ "type": "attack", "_id": "nOzLQ0NJzeB3vKiV", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to rain down hellfire within Far range. All targets within the area must make an Agility Reaction Roll. Targets who fail take 1d20+3 magic damage. Targets who succeed take half damage.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -375,6 +363,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -446,8 +435,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -458,7 +446,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050154885, + "modifiedTime": 1754144548850, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!3tqCjDwJAQ7JKqMb.lA7vcvS7oGT9NTSy" }, @@ -468,14 +464,14 @@ "_id": "bpLBGTW1DmXPgIcx", "img": "icons/magic/death/skull-energy-light-white.webp", "system": { - "description": "

Before rolling damage for the @Lookup[@name]’s attack, you can mark a Stress to gain a bonus to the damage roll equal to the @Lookup[@name]’s current number of marked HP.

", + "description": "

Before rolling damage for the Demon’s attack, you can mark a Stress to gain a bonus to the damage roll equal to the Demon’s current number of marked HP.

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

Before rolling damage for the Demon’s attack, you can mark a Stress to gain a bonus to the damage roll equal to the Demon’s current number of marked HP.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -483,6 +479,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -503,8 +500,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -515,7 +511,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050253435, + "modifiedTime": 1754144557513, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!3tqCjDwJAQ7JKqMb.bpLBGTW1DmXPgIcx" }, @@ -525,83 +529,12 @@ "_id": "w400aHTlADxDihpt", "img": "icons/skills/melee/strike-weapons-orange.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Demon makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "Cmd4f2gfxgOZsN6f": { - "type": "healing", - "_id": "Cmd4f2gfxgOZsN6f", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -612,7 +545,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050318009, + "modifiedTime": 1754050337233, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!3tqCjDwJAQ7JKqMb.w400aHTlADxDihpt" } diff --git a/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json b/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json index 2980a141..fa4b9828 100644 --- a/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json +++ b/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 79, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784308, + "modifiedTime": 1755259462650, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "DscWkNVoHak6P4hh", "sort": 2400000, "ownership": { @@ -223,33 +228,9 @@ "_id": "c1jcZZD616J5Y4Mb", "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to twoΒ times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Elemental can be spotlighted up to twoΒ times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "oFsBEbdXCpX9XLQy": { - "type": "effect", - "_id": "oFsBEbdXCpX9XLQy", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [], - "uses": { - "value": 0, - "max": "1", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, "originId": null @@ -263,7 +244,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050392983, + "modifiedTime": 1754050410908, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!DscWkNVoHak6P4hh.c1jcZZD616J5Y4Mb" }, @@ -273,14 +262,14 @@ "_id": "7AXE86WNd68OySkD", "img": "icons/magic/fire/explosion-flame-lightning-strike.webp", "system": { - "description": "

Mark a Stress to choose a point within Far range. The ground within Very Close range of that point immediately bursts into flames. All creatures within this area must make an Agility Reaction Roll. Targets who fail take 2d8 magic damage from the flames. Targets who succeed take half damage.

@Template[type:circle|range:vc]

", + "description": "

Mark a Stress to choose a point within Far range. The ground within Very Close range of that point immediately bursts into fl ames. All creatures within this area must make an Agility Reaction Roll. Targets who fail take 2d8 magic damage from the fl ames. Targets who succeed take half damage.

@Template[type:circle|range:vc]

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

Mark a Stress to choose a point within Far range. The ground within Very Close range of that point immediately bursts into fl ames. All creatures within this area must make an Agility Reaction Roll. Targets who fail take 2d8 magic damage from the fl ames. Targets who succeed take half damage.

@Template[type:circle|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -288,6 +277,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -359,8 +349,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -371,7 +360,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050413593, + "modifiedTime": 1754144579484, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!DscWkNVoHak6P4hh.7AXE86WNd68OySkD" }, @@ -396,6 +393,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -467,8 +465,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -479,7 +476,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050532131, + "modifiedTime": 1754144587890, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!DscWkNVoHak6P4hh.ESnu3I89BmUdBZEk" }, @@ -489,7 +494,7 @@ "_id": "3u6wvKPJAS2v5nWV", "img": "icons/magic/fire/elemental-fire-flying.webp", "system": { - "description": "

Three times per scene, when the @Lookup[@name] moves onto objects that are highly flammable, consume them to clear a HP or a Stress.

", + "description": "

Three times per scene, when the Elemental moves onto objects that are highly flammable, consume them to clear a HP or a Stress.

", "resource": { "type": "simple", "value": 0, @@ -501,7 +506,7 @@ "type": "healing", "_id": "CTWSVVisdgJgF7pd", "systemPath": "actions", - "description": "", + "description": "

Three times per scene, when the Elemental moves onto objects that are highly flammable, consume them to clear a HP or a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -568,7 +573,7 @@ "type": "healing", "_id": "e0fG0xtj6hOUp66o", "systemPath": "actions", - "description": "", + "description": "

Three times per scene, when the Elemental moves onto objects that are highly flammable, consume them to clear a HP or a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -634,8 +639,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -646,7 +650,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050626054, + "modifiedTime": 1754144608536, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!DscWkNVoHak6P4hh.3u6wvKPJAS2v5nWV" }, @@ -656,83 +668,12 @@ "_id": "kssnXljBaV31iX58", "img": "icons/skills/melee/strike-weapons-orange.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Elemental makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "rPj1Wf22Kai3eBCv": { - "type": "healing", - "_id": "rPj1Wf22Kai3eBCv", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -743,7 +684,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050716542, + "modifiedTime": 1754050733981, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!DscWkNVoHak6P4hh.kssnXljBaV31iX58" } diff --git a/src/packs/adversaries/adversary_Minor_Treant_G62k4oSkhkoXEs2D.json b/src/packs/adversaries/adversary_Minor_Treant_G62k4oSkhkoXEs2D.json index 0f1e7ded..8e05e6fe 100644 --- a/src/packs/adversaries/adversary_Minor_Treant_G62k4oSkhkoXEs2D.json +++ b/src/packs/adversaries/adversary_Minor_Treant_G62k4oSkhkoXEs2D.json @@ -99,15 +99,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 80, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784309, + "modifiedTime": 1755263168654, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "G62k4oSkhkoXEs2D", "sort": 2600000, "ownership": { @@ -216,7 +221,7 @@ "_id": "gOgqATDRzPP7Jzbh", "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 5 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Treant is defeated when they take any damage. For every 5 damage a PC deals to the Treant, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -232,7 +237,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050776443, + "modifiedTime": 1754050802444, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!G62k4oSkhkoXEs2D.gOgqATDRzPP7Jzbh" }, @@ -242,14 +255,14 @@ "_id": "K08WlZwGqzEo4idT", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 4 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Minor Treants within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 4 physical damage each. Combine this damage.

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

Spend a Fear to choose a target and spotlight all Minor Treants within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 4 physical damage each. Combine this damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -257,6 +270,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -277,8 +291,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -289,7 +302,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050805777, + "modifiedTime": 1754144625197, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!G62k4oSkhkoXEs2D.K08WlZwGqzEo4idT" } diff --git a/src/packs/adversaries/adversary_Minotaur_Wrecker_rM9qCIYeWg9I0B4l.json b/src/packs/adversaries/adversary_Minotaur_Wrecker_rM9qCIYeWg9I0B4l.json index 85981374..67cca4a4 100644 --- a/src/packs/adversaries/adversary_Minotaur_Wrecker_rM9qCIYeWg9I0B4l.json +++ b/src/packs/adversaries/adversary_Minotaur_Wrecker_rM9qCIYeWg9I0B4l.json @@ -106,15 +106,20 @@ "img": "icons/weapons/axes/axe-double.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 89, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784310, + "modifiedTime": 1755259462912, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "rM9qCIYeWg9I0B4l", "sort": 3200000, "ownership": { @@ -221,14 +226,14 @@ "name": "Ramp Up", "type": "feature", "system": { - "description": "

You must spend a Fear to spotlight the @Lookup[@name]. While spotlighted, they can make their standard attack against all targets within range.

", + "description": "

You must spend a Fear to spotlight the Minotaur. While spotlighted, they can make their standard attack against all targets within range.

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

You must spend a Fear to spotlight the Minotaur. While spotlighted, they can make their standard attack against all targets within range.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -236,6 +241,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -268,7 +274,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754082044045, + "modifiedTime": 1754142834839, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!rM9qCIYeWg9I0B4l.RxTetAI1hmmxzJTg" }, @@ -276,14 +290,14 @@ "name": "Charging Bull", "type": "feature", "system": { - "description": "

Mark a Stress to charge through a group within Close range and make an attack against all targets in the @Lookup[@name]’s path. Targets the @Lookup[@name] succeeds against take 2d6+8 physical damage and are knocked back to Very Far range. If a target is knocked into a solid object or another creature, they take an extra 1d6 damage (combine the damage).

", + "description": "

Mark a Stress to charge through a group within Close range and make an attack against all targets in the Minotaur’s path. Targets the Minotaur succeeds against take 2d6+8 physical damage and are knocked back to Very Far range. If a target is knocked into a solid object or another creature, they take an extra 1d6 damage (combine the damage).

", "resource": null, "actions": { "8fgkb7U2pxNyiHrB": { "type": "attack", "_id": "8fgkb7U2pxNyiHrB", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to charge through a group within Close range and make an attack against all targets in the Minotaur’s path. Targets the Minotaur succeeds against take 2d6+8 physical damage and are knocked back to Very Far range. If a target is knocked into a solid object or another creature, they take an extra 1d6 damage (combine the damage).

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -291,6 +305,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -415,8 +430,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "b2QvDYOq1nreI2uD", "img": "icons/creatures/mammals/bull-horned-blue.webp", @@ -429,7 +443,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754082167407, + "modifiedTime": 1754142855890, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!rM9qCIYeWg9I0B4l.b2QvDYOq1nreI2uD" }, @@ -480,8 +502,7 @@ } } ], - "includeBase": false, - "direct": true + "includeBase": false }, "target": { "type": "any", @@ -514,8 +535,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "WxbHcbaeb6L7g8qN", "img": "icons/skills/melee/strike-slashes-red.webp", @@ -528,7 +548,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754082306467, + "modifiedTime": 1754142873493, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!rM9qCIYeWg9I0B4l.WxbHcbaeb6L7g8qN" } diff --git a/src/packs/adversaries/adversary_Monarch_yx0vK2yfNVZKWUUi.json b/src/packs/adversaries/adversary_Monarch_yx0vK2yfNVZKWUUi.json index 5320a0ed..8e84e0ec 100644 --- a/src/packs/adversaries/adversary_Monarch_yx0vK2yfNVZKWUUi.json +++ b/src/packs/adversaries/adversary_Monarch_yx0vK2yfNVZKWUUi.json @@ -117,15 +117,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 94, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784312, + "modifiedTime": 1755266608082, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "yx0vK2yfNVZKWUUi", "sort": 3400000, "ownership": { @@ -236,8 +241,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "iYHCYTJzZbw5f0pF", "img": "icons/commodities/treasure/crown-gold-satin-gems-red.webp", @@ -250,7 +254,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754129882511, + "modifiedTime": 1754129956341, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!yx0vK2yfNVZKWUUi.iYHCYTJzZbw5f0pF" }, @@ -258,14 +270,14 @@ "name": "Crownsguard", "type": "feature", "system": { - "description": "

Once per scene, mark a Stress to summon six Tier 3 Minions, who appear at Close range to enforce the @Lookup[@name]’s will.

", + "description": "

Once per scene, mark a Stress to summon six Tier 3 Minions, who appear at Close range to enforce the Monarch’s will.

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

Once per scene, mark a Stress to summon six Tier 3 Minions, who appear at Close range to enforce the Monarch’s will.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -273,6 +285,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -292,8 +305,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "9K7C1PR4Q6QrUjjb", "img": "icons/environment/people/charge.webp", @@ -306,7 +318,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754129963290, + "modifiedTime": 1754130119045, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!yx0vK2yfNVZKWUUi.9K7C1PR4Q6QrUjjb" }, @@ -314,132 +334,42 @@ "name": "Casus Belli", "type": "feature", "system": { - "description": "

Long-Term Countdown (8). Spend a Fear to activate after the @Lookup[@name]’s desire for war is first revealed. When it triggers, the @Lookup[@name] has a reason to rally the nation to war and the support to act on that reason. You gain [[/r 1d4]] Fear.

", + "description": "

Long-Term Countdown (8). Spend a Fear to activate after the Monarch’s desire for war is first revealed. When it triggers, the Monarch has a reason to rally the nation to war and the support to act on that reason. You gain [[/r 1d4]] Fear.

", "resource": null, "actions": { - "CNEOOdPI4xVJ2JeP": { - "type": "countdown", - "_id": "CNEOOdPI4xVJ2JeP", + "X01RPfbvh3DUWcQY": { + "type": "effect", + "_id": "X01RPfbvh3DUWcQY", "systemPath": "actions", - "description": "

Long-Term Countdown (8). Spend a Fear to activate after the @Lookup[@name]’s desire for war is first revealed.

", + "description": "", "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, "actionType": "action", "cost": [ { "scalable": false, "key": "fear", "value": 1, - "itemId": null, - "step": null, - "consumeOnSuccess": false + "keyIsID": false, + "step": null } ], "uses": { "value": null, "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Casus Belli", - "type": "narrative", - "defaultOwnership": -1, - "img": "icons/sundries/scrolls/scroll-bound-sealed-red-tan.webp", - "progress": { - "looping": "noLooping", - "type": "custom", - "start": 1, - "startFormula": "8", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/sundries/scrolls/scroll-bound-sealed-red-tan.webp", - "range": "" - }, - "QnZoH9LjJvKl5YcF": { - "type": "healing", - "_id": "QnZoH9LjJvKl5YcF", - "systemPath": "actions", - "description": "

The @Lookup[@name] has a reason to rally the nation to war and the support to act on that reason. You gain 1d4 Fear.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": false, - "formula": "" - }, - "flatMultiplier": 1, - "dice": "d4", - "bonus": null, - "multiplier": "flat" - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false, - "direct": false + "recovery": null }, + "effects": [], "target": { "type": "any", "amount": null }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", + "name": "Spend Fear", "img": "icons/sundries/scrolls/scroll-bound-sealed-red-tan.webp", "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "kA5NZTdiknsh7wxp", "img": "icons/sundries/scrolls/scroll-bound-sealed-red-tan.webp", @@ -452,7 +382,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754130006163, + "modifiedTime": 1754130085276, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!yx0vK2yfNVZKWUUi.kA5NZTdiknsh7wxp" } diff --git a/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json b/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json index 8bc7fe10..fa72fea6 100644 --- a/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json +++ b/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json @@ -112,15 +112,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 89, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784313, + "modifiedTime": 1755259462879, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "mVV7a7KQAORoPMgZ", "sort": 2900000, "ownership": { @@ -227,14 +232,14 @@ "name": "Terrifying", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

", + "description": "

When the Hunter makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

", "resource": null, "actions": { "9T1g3FH38cnCRG8k": { "type": "damage", "_id": "9T1g3FH38cnCRG8k", "systemPath": "actions", - "description": "", + "description": "

When the Hunter makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -297,7 +302,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754082464443, + "modifiedTime": 1754142893376, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!mVV7a7KQAORoPMgZ.cID8rYBYealYs7mO" }, @@ -305,14 +318,14 @@ "name": "Deathlock", "type": "feature", "system": { - "description": "

Spend a Fear to curse a target within Very Close range with a necrotic Deathlock until the end of the scene. Attacks made by the @Lookup[@name] against a Deathlocked target deal direct damage. The @Lookup[@name] can only maintain one Deathlock at a time.

", + "description": "

Spend a Fear to curse a target within Very Close range with a necrotic Deathlock until the end of the scene. Attacks made by the Hunter against a Deathlocked target deal direct damage. The Hunter can only maintain one Deathlock at a time.

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

Spend a Fear to curse a target within Very Close range with a necrotic Deathlock until the end of the scene. Attacks made by the Hunter against a Deathlocked target deal direct damage. The Hunter can only maintain one Deathlock at a time.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -320,6 +333,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -341,92 +355,10 @@ "name": "Curse", "img": "icons/magic/unholy/hand-marked-pink.webp", "range": "veryClose" - }, - "zLKfwa8a2YBRLKAF": { - "type": "attack", - "_id": "zLKfwa8a2YBRLKAF", - "systemPath": "actions", - "baseAction": false, - "description": "

Attacks made by the @Lookup[@name] against a Deathlocked target deal direct damage.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": false, - "formula": "" - }, - "flatMultiplier": 2, - "dice": "d12", - "bonus": 1, - "multiplier": "flat" - }, - "applyTo": "hitPoints", - "type": [ - "physical" - ], - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - } - } - ], - "includeBase": false, - "direct": true - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": "attack", - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "save": { - "trait": null, - "difficulty": null, - "damageMod": "none" - }, - "name": "Deathlocked attack", - "img": "icons/magic/unholy/hand-marked-pink.webp", - "range": "veryClose" } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "r1T70u9n3bRfUTX5", "img": "icons/magic/unholy/hand-marked-pink.webp", @@ -463,7 +395,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754082586758, + "modifiedTime": 1754082601125, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!mVV7a7KQAORoPMgZ.r1T70u9n3bRfUTX5.YznseQP43jNrk07h" } @@ -476,7 +416,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754082532133, + "modifiedTime": 1754142902555, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!mVV7a7KQAORoPMgZ.r1T70u9n3bRfUTX5" }, @@ -491,7 +439,7 @@ "type": "attack", "_id": "wxOfNoEogH1EU0Jb", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to spotlight 1d4 allies. Attacks they make while spotlighted in this way deal half damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -499,6 +447,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -542,8 +491,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "5AQTqW1GDidHfU3a", "img": "icons/skills/movement/arrows-up-trio-red.webp", @@ -556,7 +504,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754082607409, + "modifiedTime": 1754142911016, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!mVV7a7KQAORoPMgZ.5AQTqW1GDidHfU3a" }, @@ -564,14 +520,36 @@ "name": "Rampage", "type": "feature", "system": { - "description": "

Countdown (Loop 1d6). When the @Lookup[@name] is in the spotlight for the first time, activate the countdown. When it triggers, move the @Lookup[@name] in a straight line to a point within Far range and make an attack against all targets in their path. Targets the @Lookup[@name] succeeds against take 2d8+2 physical damage.

@Template[type:ray|range:f]

", + "description": "

Countdown (Loop 1d6). When the Hunter is in the spotlight for the fi rst time, activate the countdown. When it triggers, move the Hunter in a straight line to a point within Far range and make an attack against all targets in their path. Targets the Hunter succeeds against take 2d8+2 physical damage.

@Template[type:ray|range:f]

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

Countdown (Loop 1d6). When the Hunter is in the spotlight for the first time, activate the countdown.

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdown", + "img": "icons/magic/movement/trail-streak-zigzag-yellow.webp", + "range": "" + }, "VjiFxuzfAaq5N1jy": { "type": "attack", "_id": "VjiFxuzfAaq5N1jy", "systemPath": "actions", - "description": "

Move the @Lookup[@name] in a straight line to a point within Far range and make an attack against all targets in their path. Targets the @Lookup[@name] succeeds against take 2d8+2 physical damage.

@Template[type:ray|range:f]

", + "description": "

When the countdown triggers, move the Hunter in a straight line to a point within Far range and make an attack against all targets in their path. Targets the Hunter succeeds against take 2d8+2 physical damage.

@Template[type:ray|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -639,48 +617,10 @@ "name": "Attack", "img": "icons/magic/movement/trail-streak-zigzag-yellow.webp", "range": "far" - }, - "BhA3vxCuMs4UbbQU": { - "type": "countdown", - "_id": "BhA3vxCuMs4UbbQU", - "systemPath": "actions", - "description": "

Countdown (Loop 1d6). When the @Lookup[@name] is in the spotlight for the first time, activate the countdown.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Rampage", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/movement/trail-streak-zigzag-yellow.webp", - "progress": { - "looping": "looping", - "type": "actionRoll", - "start": 1, - "startFormula": "1d6", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/movement/trail-streak-zigzag-yellow.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "IOCG3J20wUHvyvvh", "img": "icons/magic/movement/trail-streak-zigzag-yellow.webp", @@ -693,7 +633,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754082669471, + "modifiedTime": 1754142979339, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!mVV7a7KQAORoPMgZ.IOCG3J20wUHvyvvh" } diff --git a/src/packs/adversaries/adversary_Oak_Treant_XK78QUfY8c8Go8Uv.json b/src/packs/adversaries/adversary_Oak_Treant_XK78QUfY8c8Go8Uv.json index c0999e70..f32a9894 100644 --- a/src/packs/adversaries/adversary_Oak_Treant_XK78QUfY8c8Go8Uv.json +++ b/src/packs/adversaries/adversary_Oak_Treant_XK78QUfY8c8Go8Uv.json @@ -105,16 +105,20 @@ "img": "icons/skills/melee/blood-slash-foam-red.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 95, - "artist": "" - }, - "motivesAndTactics": "Hide in plain sight, preserve the forest, root down, swing branches", - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784314, + "modifiedTime": 1755259462770, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "XK78QUfY8c8Go8Uv", "sort": 3400000, "ownership": { @@ -216,233 +220,7 @@ "appendNumber": false, "prependAdjective": false }, - "items": [ - { - "name": "Just a Tree", - "type": "feature", - "system": { - "description": "

Before they make their first attack in a fight or after they become Hidden the @Lookup[@name] is indistinguishable from other trees until they next act or a PC succeeds on an Instinct Roll to identify them.

", - "resource": null, - "actions": {}, - "originItemType": null, - "multiclassOrigin": false - }, - "_id": "ERco8urSuHgrtnzL", - "img": "icons/environment/wilderness/tree-spruce-green.webp", - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "fBcTgyTzoARBvohY": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!actors.items!XK78QUfY8c8Go8Uv.ERco8urSuHgrtnzL" - }, - { - "name": "Seed Barrage", - "type": "feature", - "system": { - "description": "

Mark a Stress and make an attack against up to three targets within Close range pummeling them with giant acorns. Targets the @Lookup[@name] succeeds against take 2d10+5 physical damage.

", - "resource": null, - "actions": { - "cM5BBUSFxOHBsV2G": { - "type": "damage", - "_id": "cM5BBUSFxOHBsV2G", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "stress", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": false, - "formula": "" - }, - "flatMultiplier": 2, - "dice": "d10", - "bonus": 5, - "multiplier": "flat" - }, - "applyTo": "hitPoints", - "type": [ - "physical" - ], - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - } - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": 3 - }, - "effects": [], - "name": "Mark Stress", - "img": "icons/consumables/nuts/nut-spiked-shell.webp", - "range": "close" - } - }, - "originItemType": null, - "multiclassOrigin": false, - "featureForm": "action" - }, - "_id": "Q2slH9qkBO5SPw43", - "img": "icons/consumables/nuts/nut-spiked-shell.webp", - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "fBcTgyTzoARBvohY": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!actors.items!XK78QUfY8c8Go8Uv.Q2slH9qkBO5SPw43" - }, - { - "name": "Take Root", - "type": "feature", - "system": { - "description": "

Mark a Stress to Root the @Lookup[@name] in place. The @Lookup[@name] is Restrained while Rooted and can end this effect instead of moving while they are spotlighted. While Rooted the @Lookup[@name] has resistance to physical damage.

", - "resource": null, - "actions": { - "008EelRlcs6CKGvM": { - "type": "effect", - "_id": "008EelRlcs6CKGvM", - "systemPath": "actions", - "description": "

Mark a Stress to Root the Treant in place. The Treant is Restrained while Rooted and can end this effect instead of moving while they are spotlighted. While Rooted the Treant has resistance to physical damage.

", - "chatDisplay": true, - "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "stress", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [ - { - "_id": "3PY5KIG6d3dr3dty", - "onSave": false - } - ], - "target": { - "type": "any", - "amount": null - }, - "name": "Mark Stress", - "img": "icons/consumables/plants/thorned-stem-brown.webp", - "range": "self" - } - }, - "originItemType": null, - "multiclassOrigin": false, - "featureForm": "action" - }, - "_id": "sqkgw26P2KiQVtXT", - "img": "icons/consumables/plants/thorned-stem-brown.webp", - "effects": [ - { - "name": "Take Root", - "img": "icons/consumables/plants/thorned-stem-brown.webp", - "origin": "Compendium.daggerheart.adversaries.Actor.XK78QUfY8c8Go8Uv.Item.sqkgw26P2KiQVtXT", - "transfer": false, - "_id": "3PY5KIG6d3dr3dty", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "any", - "range": "self" - } - }, - "changes": [ - { - "key": "system.resistance.physical.resistance", - "mode": 2, - "value": "1", - "priority": null - } - ], - "disabled": false, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

Mark a Stress to Root the Treant in place. The Treant is Restrained while Rooted and can end this effect instead of moving while they are spotlighted. While Rooted the Treant has resistance to physical damage.

", - "tint": "#ffffff", - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!actors.items.effects!XK78QUfY8c8Go8Uv.sqkgw26P2KiQVtXT.3PY5KIG6d3dr3dty" - } - ], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "fBcTgyTzoARBvohY": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!actors.items!XK78QUfY8c8Go8Uv.sqkgw26P2KiQVtXT" - } - ], + "items": [], "effects": [], "_key": "!actors!XK78QUfY8c8Go8Uv" } diff --git a/src/packs/adversaries/adversary_Oracle_of_Doom_befIqd5IYKg6eUz2.json b/src/packs/adversaries/adversary_Oracle_of_Doom_befIqd5IYKg6eUz2.json index 66fa5ba1..ac8f7c34 100644 --- a/src/packs/adversaries/adversary_Oracle_of_Doom_befIqd5IYKg6eUz2.json +++ b/src/packs/adversaries/adversary_Oracle_of_Doom_befIqd5IYKg6eUz2.json @@ -112,15 +112,20 @@ "img": "icons/magic/symbols/rune-sigil-rough-white-teal.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 99, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784315, + "modifiedTime": 1755259462807, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "befIqd5IYKg6eUz2", "sort": 1400000, "ownership": { @@ -227,14 +232,14 @@ "name": "Terrifying", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

", + "description": "

When the Oracle makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

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

When the Oracle makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -297,7 +302,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754137087890, + "modifiedTime": 1754137137634, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!befIqd5IYKg6eUz2.mKSk2GBYLoATQlVT" }, @@ -305,14 +318,14 @@ "name": "Walls Closing In", "type": "feature", "system": { - "description": "

When a creature rolls a failure while within Very Far range of the @Lookup[@name], they must mark a Stress.

", + "description": "

When a creature rolls a failure while within Very Far range of the Oracle, they must mark a Stress.

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

When a creature rolls a failure while within Very Far range of the Oracle, they must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -375,7 +388,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754137140506, + "modifiedTime": 1754137203661, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!befIqd5IYKg6eUz2.8xbzF3kIC6vPF9ya" }, @@ -390,7 +411,7 @@ "type": "attack", "_id": "IiSgpy6Axfqo9f9V", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to present a target within Far range with a vision of their personal nightmare. The target must make a Knowledge Reaction Roll. On a failure, they lose all Hope and take 2d20+4 direct magic damage. On a success, they take half damage and lose a Hope.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -398,6 +419,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -468,8 +490,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "QoFecwKWBFzrk4Wp", "img": "icons/magic/death/skeleton-skull-soul-blue.webp", @@ -482,7 +503,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754137212582, + "modifiedTime": 1754137307375, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!befIqd5IYKg6eUz2.QoFecwKWBFzrk4Wp" }, @@ -497,7 +526,7 @@ "type": "attack", "_id": "71UnFo3CBBPtbao3", "systemPath": "actions", - "description": "", + "description": "

Once per day, spend 2 Fear to summon 2d4 Tier 2 or below Minions relevant to one of the PC’s personal nightmares. They appear at Close range relative to that PC.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -505,6 +534,7 @@ "scalable": false, "key": "fear", "value": 2, + "keyIsID": false, "step": null } ], @@ -548,8 +578,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "A4yI2RENCuLk6mg9", "img": "icons/magic/death/skull-horned-worn-fire-blue.webp", @@ -562,7 +591,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754137311950, + "modifiedTime": 1754137401633, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!befIqd5IYKg6eUz2.A4yI2RENCuLk6mg9" }, @@ -570,12 +607,11 @@ "name": "Ominous Knowledge", "type": "feature", "system": { - "description": "

When the @Lookup[@name] sees a mortal creature, they instantly know one of their personal nightmares.

", + "description": "

When the Oracle sees a mortal creature, they instantly know one of their personal nightmares.

", "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "IPoWZmSQ2kgWek5T", "img": "icons/magic/symbols/mask-yellow-orange.webp", @@ -588,7 +624,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754137408836, + "modifiedTime": 1754137442362, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!befIqd5IYKg6eUz2.IPoWZmSQ2kgWek5T" }, @@ -596,14 +640,14 @@ "name": "Vengeful Fate", "type": "feature", "system": { - "description": "

When the @Lookup[@name] marks HP from an attack within Very Close range, you can mark a Stress to knock the attacker back to Far range and deal 2d10+4 physical damage.

", + "description": "

When the Oracle marks HP from an attack within Very Close range, you can mark a Stress to knock the attacker back to Far range and deal 2d10+4 physical damage.

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

When the Oracle marks HP from an attack within Very Close range, you can mark a Stress to knock the attacker back to Far range and deal 2d10+4 physical damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -611,6 +655,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -661,8 +706,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "kuxTMjy8lOmNSa8e", "img": "icons/magic/control/sihouette-hold-beam-green.webp", @@ -675,7 +719,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754137445003, + "modifiedTime": 1754137522098, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!befIqd5IYKg6eUz2.kuxTMjy8lOmNSa8e" } diff --git a/src/packs/adversaries/adversary_Outer_Realms_Abomination_A0SeeDzwjvqOsyof.json b/src/packs/adversaries/adversary_Outer_Realms_Abomination_A0SeeDzwjvqOsyof.json index 5b565b8c..beedfcb5 100644 --- a/src/packs/adversaries/adversary_Outer_Realms_Abomination_A0SeeDzwjvqOsyof.json +++ b/src/packs/adversaries/adversary_Outer_Realms_Abomination_A0SeeDzwjvqOsyof.json @@ -106,15 +106,20 @@ "img": "icons/creatures/tentacles/tentacle-earth-green.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 99, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784319, + "modifiedTime": 1755259462626, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "A0SeeDzwjvqOsyof", "sort": 700000, "ownership": { @@ -221,7 +226,7 @@ "name": "Chaotic Form", "type": "feature", "system": { - "description": "

When the @Lookup[@name] attacks, roll 2d4 and use the result as their attack modifier.

", + "description": "

When the Abomination attacks, roll 2d4 and use the result as their attack modifi er.

", "resource": null, "actions": {}, "originItemType": null, @@ -238,7 +243,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754138249882, + "modifiedTime": 1754138281805, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!A0SeeDzwjvqOsyof.yGeHxe8Loe21QSgH" }, @@ -246,14 +259,14 @@ "name": "Disorienting Presence", "type": "feature", "system": { - "description": "

When a target takes damage from the @Lookup[@name], they must make an Instinct Reaction Roll. On a failure, they gain disadvantage on their next action roll and you gain a Fear.

", + "description": "

When a target takes damage from the Abomination, they must make an Instinct Reaction Roll. On a failure, they gain disadvantage on their next action roll and you gain a Fear.

", "resource": null, "actions": { "4diIu0AzPjitQ94k": { "type": "attack", "_id": "4diIu0AzPjitQ94k", "systemPath": "actions", - "description": "", + "description": "

When a target takes damage from the Abomination, they must make an Instinct Reaction Roll. On a failure, they gain disadvantage on their next action roll and you gain a Fear.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -346,7 +359,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754138344004, + "modifiedTime": 1754138374275, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!A0SeeDzwjvqOsyof.CoWjh12FkhDGYIie.rpkjVdlJYI5dB99B" } @@ -359,7 +380,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754138284433, + "modifiedTime": 1754138344015, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!A0SeeDzwjvqOsyof.CoWjh12FkhDGYIie" }, @@ -367,14 +396,14 @@ "name": "Reality Quake", "type": "feature", "system": { - "description": "

Spend a Fear to rattle the edges of reality within Far range of the @Lookup[@name]. All targets within that area must succeed on a Knowledge Reaction Roll or become Unstuck from reality until the end of the scene. When an Unstuck target spends Hope or marks Armor Slots, HP, or Stress, they must double the amount spent or marked.

@Template[type:emanation|range:f]

", + "description": "

Spend a Fear to rattle the edges of reality within Far range of the Abomination. All targets within that area must succeed on a Knowledge Reaction Roll or become Unstuck from reality until the end of the scene. When an Unstuck target spends Hope or marks Armor Slots, HP, or Stress, they must double the amount spent or marked.

@Template[type:emanation|range:f]

", "resource": null, "actions": { "7apNSLz8m7sxyLhU": { "type": "attack", "_id": "7apNSLz8m7sxyLhU", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to rattle the edges of reality within Far range of the Abomination. All targets within that area must succeed on a Knowledge Reaction Roll or become Unstuck from reality until the end of the scene. When an Unstuck target spends Hope or marks Armor Slots, HP, or Stress, they must double the amount spent or marked.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -423,8 +452,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "K3MQO1I42nmfM2F2", "img": "icons/magic/sonic/explosion-shock-sound-wave.webp", @@ -455,13 +483,21 @@ "startRound": null, "startTurn": null }, - "description": "

Unstuck from reality until the end of the scene. When you spend Hope or mark Armor Slots, HP, or Stress, you must double the amount spent or marked.

", + "description": "

Unstuck from reality until the end of the scene. When you spend Hope or mark Armor Slots, HP, or Stress, you must double the amount spent or marked.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754138721209, + "modifiedTime": 1754138748105, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!A0SeeDzwjvqOsyof.K3MQO1I42nmfM2F2.edEZER9ImWicMwRb" } @@ -474,7 +510,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754138378860, + "modifiedTime": 1754138721222, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!A0SeeDzwjvqOsyof.K3MQO1I42nmfM2F2" }, @@ -482,14 +526,14 @@ "name": "Unreal Form", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes damage, reduce it by 1d20. If the @Lookup[@name] marks 1 or fewer Hit Points from a successful attack against them, you gain a Fear.

", + "description": "

When the Abomination takes damage, reduce it by 1d20. If the Abomination marks 1 or fewer Hit Points from a successful attack against them, you gain a Fear.

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

When the Abomination takes damage, reduce it by 1d20. If the Abomination marks 1 or fewer Hit Points from a successful attack against them, you gain a Fear.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -533,8 +577,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "u9dR2Qh3swHZalXj", "img": "icons/magic/unholy/orb-contained-pink.webp", @@ -547,7 +590,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754138752915, + "modifiedTime": 1754138848011, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!A0SeeDzwjvqOsyof.u9dR2Qh3swHZalXj" } diff --git a/src/packs/adversaries/adversary_Outer_Realms_Corrupter_ms6nuOl3NFkhPj1k.json b/src/packs/adversaries/adversary_Outer_Realms_Corrupter_ms6nuOl3NFkhPj1k.json index 83fbf4fa..2c6b7623 100644 --- a/src/packs/adversaries/adversary_Outer_Realms_Corrupter_ms6nuOl3NFkhPj1k.json +++ b/src/packs/adversaries/adversary_Outer_Realms_Corrupter_ms6nuOl3NFkhPj1k.json @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 99, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784320, + "modifiedTime": 1755259462889, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "ms6nuOl3NFkhPj1k", "sort": 1600000, "ownership": { @@ -221,14 +226,14 @@ "name": "Will-Shattering Touch", "type": "feature", "system": { - "description": "

When a PC takes damage from the @Lookup[@name], they lose a Hope.

", + "description": "

When a PC takes damage from the Corrupter, they lose a Hope.

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

When a PC takes damage from the Corrupter, they lose a Hope.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -291,7 +296,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139029168, + "modifiedTime": 1754139080027, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ms6nuOl3NFkhPj1k.Z4R768thOzKWzqOo" }, @@ -306,7 +319,7 @@ "type": "attack", "_id": "6vX6VHpXX7OiGSWH", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to spew partially digested portions of consumed realities at all targets within Close range. Targets must succeed on a Knowledge Reaction Roll or mark 2 Stress.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -376,8 +389,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "gBLVvHbyekmIUITD", "img": "icons/magic/unholy/barrier-shield-glowing-pink.webp", @@ -390,7 +402,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139083282, + "modifiedTime": 1754139138917, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ms6nuOl3NFkhPj1k.gBLVvHbyekmIUITD" } diff --git a/src/packs/adversaries/adversary_Outer_Realms_Thrall_moJhHgKqTKPS2WYS.json b/src/packs/adversaries/adversary_Outer_Realms_Thrall_moJhHgKqTKPS2WYS.json index 370182a5..ac0380b5 100644 --- a/src/packs/adversaries/adversary_Outer_Realms_Thrall_moJhHgKqTKPS2WYS.json +++ b/src/packs/adversaries/adversary_Outer_Realms_Thrall_moJhHgKqTKPS2WYS.json @@ -99,15 +99,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 99, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784321, + "modifiedTime": 1755266968806, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "moJhHgKqTKPS2WYS", "sort": 1700000, "ownership": { @@ -214,7 +219,7 @@ "name": "Minion (13)", "type": "feature", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 13 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Thrall is defeated when they take any damage. For every 13 damage a PC deals to the Thrall, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -231,7 +236,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139186482, + "modifiedTime": 1754139202813, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!moJhHgKqTKPS2WYS.1jaA64hZ2OMdSPYK" }, @@ -239,14 +252,14 @@ "name": "Group Attack", "type": "feature", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 11 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Outer Realm Thralls within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 11 physical damage each. Combine this damage.

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

Spend a Fear to choose a target and spotlight all Outer Realm Thralls within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 11 physical damage each. Combine this damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -254,6 +267,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -273,8 +287,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "7DWNmxZvp1Fm3aq3", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", @@ -287,7 +300,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139206771, + "modifiedTime": 1754139242646, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!moJhHgKqTKPS2WYS.7DWNmxZvp1Fm3aq3" } diff --git a/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json b/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json index b63e8cb7..c6a5393b 100644 --- a/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json +++ b/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json @@ -40,13 +40,11 @@ "experiences": { "rLPEhboQmaD7QV7T": { "name": "Intimidation", - "value": 2, - "description": "" + "value": 2 }, "ejtjcqd5oW6eKnav": { "name": "Tear Things Apart", - "value": 2, - "description": "" + "value": 2 } }, "bonuses": { @@ -117,15 +115,20 @@ "img": "icons/commodities/biological/hand-clawed-blue.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 83, - "artist": "" - }, - "size": "huge" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784322, + "modifiedTime": 1755259462653, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "EQTOAOUrkIvS2z88", "sort": 2500000, "ownership": { @@ -234,90 +237,7 @@ "_id": "rEJ1kAfhHQZWhrZj", "img": "icons/commodities/biological/hand-clawed-tan.webp", "system": { - "description": "

When the @Lookup[@name] takes Major or greater damage, they mark an additional HP.

", - "resource": null, - "actions": { - "Y8LQe5TzbdK2mOG9": { - "type": "damage", - "_id": "Y8LQe5TzbdK2mOG9", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "hitPoints", - "type": [ - "physical" - ], - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - } - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "name": "Mark HP", - "img": "icons/commodities/biological/hand-clawed-tan.webp", - "range": "" - } - }, - "originItemType": null, - "subType": null, - "originId": null - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "MQSznptE5yLT7kj8": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!actors.items!EQTOAOUrkIvS2z88.rEJ1kAfhHQZWhrZj" - }, - { - "name": "Flailing Limbs", - "type": "feature", - "_id": "0fn7rVLwBnyCyvTA", - "img": "icons/skills/melee/strike-slashes-orange.webp", - "system": { - "description": "

When the @Lookup[@name] makes a standard attack, they can attack all targets within Very Close range.

@Template[type:emanation|range:vc]

", + "description": "

When the Zombie takes Major or greater damage, they mark an additional HP.

", "resource": null, "actions": {}, "originItemType": null, @@ -333,7 +253,49 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754051427428, + "modifiedTime": 1754051450294, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!EQTOAOUrkIvS2z88.rEJ1kAfhHQZWhrZj" + }, + { + "name": "Flailing Limbs", + "type": "feature", + "_id": "0fn7rVLwBnyCyvTA", + "img": "icons/skills/melee/strike-slashes-orange.webp", + "system": { + "description": "

When the Zombie makes a standard attack, they can attack all targets within Very Close range.

@Template[type:emanation|range:vc]

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754051453609, + "modifiedTime": 1754051485833, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!EQTOAOUrkIvS2z88.0fn7rVLwBnyCyvTA" }, @@ -343,14 +305,14 @@ "_id": "gw1Z2VazlRXYCiCK", "img": "icons/magic/death/skull-trio-badge-purple.webp", "system": { - "description": "

When the @Lookup[@name] is within Very Close range of a corpse, they can incorporate it into themselves, clearing a HP and a Stress.

", + "description": "

When the Zombie is within Very Close range of a corpse, they can incorporate it into themselves, clearing a HP and a Stress.

", "resource": null, "actions": { "PfaFRZKFnHGg6mU4": { "type": "healing", "_id": "PfaFRZKFnHGg6mU4", "systemPath": "actions", - "description": "", + "description": "

When the Zombie is within Very Close range of a corpse, they can incorporate it into themselves, clearing a HP and a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -441,8 +403,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -453,7 +414,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1754051528475, + "modifiedTime": 1755263257032, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items!EQTOAOUrkIvS2z88.gw1Z2VazlRXYCiCK" }, @@ -470,7 +439,7 @@ "type": "attack", "_id": "2NYC0D7wkBNrUAKl", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to cause all PCs within Far range to make a Presence Reaction Roll (13). Targets who fail lose a Hope and you gain a Fear for each. Targets who succeed must mark a Stress.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -478,6 +447,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -548,8 +518,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -560,7 +529,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754051580022, + "modifiedTime": 1754144651304, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!EQTOAOUrkIvS2z88.uTtQwNg46NAjgzuD" } diff --git a/src/packs/adversaries/adversary_Perfected_Zombie_CP6iRfHdyFWniTHY.json b/src/packs/adversaries/adversary_Perfected_Zombie_CP6iRfHdyFWniTHY.json index e3da56b6..2062fdb3 100644 --- a/src/packs/adversaries/adversary_Perfected_Zombie_CP6iRfHdyFWniTHY.json +++ b/src/packs/adversaries/adversary_Perfected_Zombie_CP6iRfHdyFWniTHY.json @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 101, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784323, + "modifiedTime": 1755267137806, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "CP6iRfHdyFWniTHY", "sort": 800000, "ownership": { @@ -221,14 +226,14 @@ "name": "Terrifying", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

", + "description": "

When the Zombie makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

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

When the Zombie makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -291,7 +296,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139298480, + "modifiedTime": 1754139349329, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!CP6iRfHdyFWniTHY.xyz5d7QISdB5X5ey" }, @@ -299,7 +312,7 @@ "name": "Fearsome Presence", "type": "feature", "system": { - "description": "

PCs can’t spend Hope to use features against the @Lookup[@name].

", + "description": "

PCs can’t spend Hope to use features against the Zombie.

", "resource": null, "actions": {}, "originItemType": null, @@ -316,7 +329,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139351642, + "modifiedTime": 1754139375207, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!CP6iRfHdyFWniTHY.0viJMAsPBNLq2azj" }, @@ -324,14 +345,14 @@ "name": "Perfect Strike", "type": "feature", "system": { - "description": "

Mark a Stress to make a standard attack against all targets within Very Close range. Targets the @Lookup[@name] succeeds against are Vulnerable until their next rest.

@Template[type:emanation|range:vc]

", + "description": "

Mark a Stress to make a standard attack against all targets within Very Close range. Targets the Zombie succeeds against are Vulnerable until their next rest.

@Template[type:emanation|range:vc]

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

Mark a Stress to make a standard attack against all targets within Very Close range. Targets the Zombie succeeds against are Vulnerable until their next rest.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -339,6 +360,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -414,8 +436,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "CKy2r6FguyTSO9Fm", "img": "icons/skills/melee/strike-axe-energy-pink.webp", @@ -446,7 +467,7 @@ "startRound": null, "startTurn": null }, - "description": "

Vulnerable until your next rest.

", + "description": "

Vulnerable until yournext rest.

", "tint": "#ffffff", "statuses": [ "vulnerable" @@ -454,7 +475,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139449846, + "modifiedTime": 1754139472356, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!CP6iRfHdyFWniTHY.CKy2r6FguyTSO9Fm.Q5eeh0B6qaXFS1Ck" } @@ -467,7 +496,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139377290, + "modifiedTime": 1754139449859, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!CP6iRfHdyFWniTHY.CKy2r6FguyTSO9Fm" }, @@ -475,14 +512,14 @@ "name": "Skilled Opportunist", "type": "feature", "system": { - "description": "

When another adversary deals damage to a target within Very Close range of the @Lookup[@name], you can spend a Fear to add the @Lookup[@name]’s standard attack damage to the damage roll.

", + "description": "

When another adversary deals damage to a target within Very Close range of the Zombie, you can spend a Fear to add the Zombie’s standard attack damage to the damage roll.

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

When another adversary deals damage to a target within Very Close range of the Zombie, you can spend a Fear to add the Zombie’s standard attack damage to the damage roll.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -502,8 +539,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "hWxjmdc1O5J1otLM", "img": "icons/magic/perception/shadow-stealth-eyes-purple.webp", @@ -516,7 +552,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139488307, + "modifiedTime": 1754139569536, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!CP6iRfHdyFWniTHY.hWxjmdc1O5J1otLM" } diff --git a/src/packs/adversaries/adversary_Petty_Noble_wycLpvebWdUqRhpP.json b/src/packs/adversaries/adversary_Petty_Noble_wycLpvebWdUqRhpP.json index 4ac7e746..673f9af5 100644 --- a/src/packs/adversaries/adversary_Petty_Noble_wycLpvebWdUqRhpP.json +++ b/src/packs/adversaries/adversary_Petty_Noble_wycLpvebWdUqRhpP.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 80, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784324, + "modifiedTime": 1755263279700, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "wycLpvebWdUqRhpP", "sort": 5200000, "ownership": { @@ -229,7 +234,7 @@ "_id": "Jbq36nElH6RDacLU", "img": "icons/skills/social/diplomacy-writing-letter.webp", "system": { - "description": "

All social actions made against the @Lookup[@name] on their land have disadvantage.

", + "description": "

All social actions made against the Noble on their land have disadvantage.

", "resource": null, "actions": {}, "originItemType": null, @@ -245,7 +250,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754051777072, + "modifiedTime": 1754051799611, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!wycLpvebWdUqRhpP.Jbq36nElH6RDacLU" }, @@ -255,7 +268,7 @@ "_id": "ebdAPBso5ROmdFNO", "img": "icons/environment/people/infantry-armored.webp", "system": { - "description": "

Once per scene, mark a Stress to summon 1d4 @UUID[Compendium.daggerheart.adversaries.Actor.B4LZcGuBAHzyVdzy]{Bladed Guards}, who appear at Far range to enforce the @Lookup[@name]’s will.

", + "description": "

Once per scene, mark a Stress to summon 1d4 @UUID[Compendium.daggerheart.adversaries.Actor.B4LZcGuBAHzyVdzy]{Bladed Guards}, who appear at Far range to enforce the Noble’s will.

", "resource": null, "actions": { "cUKwhq1imsTVru8D": { @@ -270,6 +283,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -314,8 +328,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -326,7 +339,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754051802091, + "modifiedTime": 1754144696400, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!wycLpvebWdUqRhpP.ebdAPBso5ROmdFNO" }, @@ -336,14 +357,14 @@ "_id": "xN09fSsg33nURqpk", "img": "icons/commodities/currency/coin-embossed-skull-gold.webp", "system": { - "description": "

Spend a Fear and target a PC. The @Lookup[@name] proclaims that the target and their allies are exiled from the @Lookup[@name]’s territory. While exiled, the target and their allies have disadvantage during social situations within the @Lookup[@name]’s domain.

", + "description": "

Spend a Fear and target a PC. The Noble proclaims that the target and their allies are exiled from the noble’s territory. While exiled, the target and their allies have disadvantage during social situations within the Noble’s domain.

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

Spend a Fear and target a PC. The Noble proclaims that the target and their allies are exiled from the noble’s territory. While exiled, the target and their allies have disadvantage during social situations within the Noble’s domain.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -351,6 +372,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -371,8 +393,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -383,7 +404,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754051901804, + "modifiedTime": 1754144705317, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!wycLpvebWdUqRhpP.xN09fSsg33nURqpk" } diff --git a/src/packs/adversaries/adversary_Pirate_Captain_OROJbjsqagVh7ECV.json b/src/packs/adversaries/adversary_Pirate_Captain_OROJbjsqagVh7ECV.json index 409d7698..e485ffb5 100644 --- a/src/packs/adversaries/adversary_Pirate_Captain_OROJbjsqagVh7ECV.json +++ b/src/packs/adversaries/adversary_Pirate_Captain_OROJbjsqagVh7ECV.json @@ -117,15 +117,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 81, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784325, + "modifiedTime": 1755263303289, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "OROJbjsqagVh7ECV", "sort": 3200000, "ownership": { @@ -234,14 +239,14 @@ "_id": "PsMA3x6giL8tixbf", "img": "icons/magic/control/mouth-smile-deception-purple.webp", "system": { - "description": "

When the @Lookup[@name] marks 2 or fewer HP from an attack within Melee range, the attacker must mark a Stress.

", + "description": "

When the Captain marks 2 or fewer HP from an attack within Melee range, the attacker must mark a Stress.

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

When the Captain marks 2 or fewer HP from an attack within Melee range, the attacker must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -303,7 +308,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052051501, + "modifiedTime": 1754144724207, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!OROJbjsqagVh7ECV.PsMA3x6giL8tixbf" }, @@ -320,7 +333,7 @@ "type": "effect", "_id": "NlgIp0KrmZoS27Xy", "systemPath": "actions", - "description": "", + "description": "

Once per scene, mark a Stress to summon a Pirate Raiders Horde, which appears at Far range.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -328,6 +341,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -348,8 +362,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -360,7 +373,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052100431, + "modifiedTime": 1754144730870, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!OROJbjsqagVh7ECV.WGEGO0DSOs5cF0EL" }, @@ -370,14 +391,14 @@ "_id": "brHnMc0TDiWVT4U6", "img": "icons/magic/death/skull-energy-light-purple.webp", "system": { - "description": "

Spend a Fear to choose a target who has three or more Pirates within Melee range of them. The @Lookup[@name] leads the Pirates in hurling threats and promises of a watery grave. The target must make a Presence Reaction Roll. On a failure, the target marks 1d4+1 Stress. On a success, they must mark a Stress.

", + "description": "

Spend a Fear to choose a target who has three or more Pirates within Melee range of them. The Captain leads the Pirates in hurling threats and promises of a watery grave. The target must make a Presence Reaction Roll. On a failure, the target marks 1d4+1 Stress. On a success, they must mark a Stress.

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

Spend a Fear to choose a target who has three or more Pirates within Melee range of them. The Captain leads the Pirates in hurling threats and promises of a watery grave. The target must make a Presence Reaction Roll. On a failure, the target marks 1d4+1 Stress. On a success, they must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -385,6 +406,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -454,8 +476,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -466,7 +487,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052150420, + "modifiedTime": 1754144738313, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!OROJbjsqagVh7ECV.brHnMc0TDiWVT4U6" }, @@ -476,83 +505,12 @@ "_id": "V4EcsqMd70BTrDNu", "img": "icons/skills/melee/strike-weapons-orange.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Captain makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "78Qphxjbs7cOYsNf": { - "type": "healing", - "_id": "78Qphxjbs7cOYsNf", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -563,7 +521,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052246000, + "modifiedTime": 1754052257935, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!OROJbjsqagVh7ECV.V4EcsqMd70BTrDNu" } diff --git a/src/packs/adversaries/adversary_Pirate_Raiders_5YgEajn0wa4i85kC.json b/src/packs/adversaries/adversary_Pirate_Raiders_5YgEajn0wa4i85kC.json index 7d3733ce..178883bf 100644 --- a/src/packs/adversaries/adversary_Pirate_Raiders_5YgEajn0wa4i85kC.json +++ b/src/packs/adversaries/adversary_Pirate_Raiders_5YgEajn0wa4i85kC.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 81, - "artist": "" - }, - "size": "huge" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784326, + "modifiedTime": 1755263339105, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "5YgEajn0wa4i85kC", "sort": 1000000, "ownership": { @@ -224,12 +229,12 @@ }, "items": [ { - "name": "Horde", + "name": "Horde (1d4+1)", "type": "feature", "_id": "Q7DRbWjHl64CNwag", "img": "icons/creatures/magical/humanoid-silhouette-aliens-green.webp", "system": { - "description": "

When the @Lookup[@name] have marked half or more of their HP, their standard attack deals 1d4+1 physical damage instead.

", + "description": "

When the Raiders have marked half or more of their HP, their standard attack deals 1d4+1 physical damage instead.

", "resource": null, "actions": {}, "originItemType": null, @@ -245,7 +250,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052315770, + "modifiedTime": 1754052347985, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!5YgEajn0wa4i85kC.Q7DRbWjHl64CNwag" }, @@ -255,14 +268,14 @@ "_id": "N401rF937fLXMuMA", "img": "icons/magic/control/mouth-smile-deception-purple.webp", "system": { - "description": "

When the @Lookup[@name] mark 2 or fewer HP from an attack within Melee range, the attacker must mark a Stress.

", + "description": "

When the Raiders mark 2 or fewer HP from an attack within Melee range, the attacker must mark a Stress.

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

When the Raiders mark 2 or fewer HP from an attack within Melee range, the attacker must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -324,7 +337,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052352218, + "modifiedTime": 1754144754380, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!5YgEajn0wa4i85kC.N401rF937fLXMuMA" } @@ -357,7 +378,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052272993, + "modifiedTime": 1754052272993, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.effects!5YgEajn0wa4i85kC.OU05YZwFQffawtna" } diff --git a/src/packs/adversaries/adversary_Pirate_Tough_mhcVkVFrzIJ18FDm.json b/src/packs/adversaries/adversary_Pirate_Tough_mhcVkVFrzIJ18FDm.json index 69b59211..8a3839f5 100644 --- a/src/packs/adversaries/adversary_Pirate_Tough_mhcVkVFrzIJ18FDm.json +++ b/src/packs/adversaries/adversary_Pirate_Tough_mhcVkVFrzIJ18FDm.json @@ -145,13 +145,7 @@ } } }, - "motivesAndTactics": "Plunder, raid, smash, terrorize", - "attribution": { - "source": "Daggerheart SRD", - "page": 81, - "artist": "" - }, - "size": "medium" + "motivesAndTactics": "Plunder, raid, smash, terrorize" }, "prototypeToken": { "name": "Pirate Tough", @@ -252,14 +246,14 @@ "name": "Swashbuckler", "type": "feature", "system": { - "description": "

When the @Lookup[@name] marks 2 or fewer HP from an attack within Melee range, the attacker must mark a Stress.

", + "description": "

When the Tough marks 2 or fewer HP from an attack within Melee range, the attacker must mark a Stress.

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

When the Tough marks 2 or fewer HP from an attack within Melee range, the attacker must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -322,7 +316,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754089918298, + "modifiedTime": 1754144768141, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!mhcVkVFrzIJ18FDm.Zz5ITZOmPdtoLaUH" }, @@ -337,7 +339,7 @@ "type": "attack", "_id": "uJl1NJQ55yd9oCwz", "systemPath": "actions", - "description": "", + "description": "

Make an attack against a target within Very Close range. On a success, mark a Stress to move into Melee range of the target, dealing 3d4 physical damage and knocking the target back to Close range.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -408,8 +410,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "uzlxE1Cxm9GGmrNs", "img": "icons/skills/melee/unarmed-punch-fist-blue.webp", @@ -422,7 +423,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754090005821, + "modifiedTime": 1754144783385, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!mhcVkVFrzIJ18FDm.uzlxE1Cxm9GGmrNs" } @@ -434,5 +443,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754089855172, + "modifiedTime": 1755259462883, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_key": "!actors!mhcVkVFrzIJ18FDm" } diff --git a/src/packs/adversaries/adversary_Red_Ooze_9rVlbJVrDNn1x7PS.json b/src/packs/adversaries/adversary_Red_Ooze_9rVlbJVrDNn1x7PS.json index 320b71af..f8656c9d 100644 --- a/src/packs/adversaries/adversary_Red_Ooze_9rVlbJVrDNn1x7PS.json +++ b/src/packs/adversaries/adversary_Red_Ooze_9rVlbJVrDNn1x7PS.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 80, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784338, + "modifiedTime": 1755263361677, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "9rVlbJVrDNn1x7PS", "sort": 1700000, "ownership": { @@ -229,7 +234,7 @@ "_id": "QGQTLWXIMMLUvm7c", "img": "icons/magic/fire/flame-burning-embers-yellow.webp", "system": { - "description": "

The @Lookup[@name] can only move within Very Close range as their normal movement. They light any flammable object they touch on fi re.

", + "description": "

The Ooze can only move within Very Close range as their normal movement. They light any flammable object they touch on fi re.

", "resource": null, "actions": {}, "originItemType": null, @@ -245,7 +250,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052613872, + "modifiedTime": 1754052642573, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!9rVlbJVrDNn1x7PS.QGQTLWXIMMLUvm7c" }, @@ -262,7 +275,7 @@ "type": "attack", "_id": "b4g8XUIKLhxDlUPy", "systemPath": "actions", - "description": "", + "description": "

Make an attack against a target within Very Close range. On a success, the target takes 1d8 magic damage and is Ignited until they’re extinguished with a successful Finesse Roll (14). While Ignited, the target takes 1d4 magic damage when they make an action roll.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -392,8 +405,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -428,7 +440,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052706000, + "modifiedTime": 1754052775735, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!9rVlbJVrDNn1x7PS.JU9uVwZSM0ItnZRq.9UBLk9M87VIUziAQ" } @@ -441,7 +461,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052646207, + "modifiedTime": 1754144810550, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!9rVlbJVrDNn1x7PS.JU9uVwZSM0ItnZRq" }, @@ -451,14 +479,14 @@ "_id": "M9gAcPrgKfSg9Tjb", "img": "icons/creatures/slimes/slime-movement-splashing-red.webp", "system": { - "description": "

When the @Lookup[@name] has 3 or more HP marked, you can spend a Fear to split them into two @UUID[Compendium.daggerheart.adversaries.Actor.1fkLQXVtmILqfJ44]{Tiny Red Oozes} (with no marked HP or Stress). Immediately spotlight both of them.

", + "description": "

When the Ooze has 3 or more HP marked, you can spend a Fear to split them into two @UUID[Compendium.daggerheart.adversaries.Actor.1fkLQXVtmILqfJ44]{Tiny Red Oozes} (with no marked HP or Stress). Immediately spotlight both of them.

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

When the Ooze has 3 or more HP marked, you can spend a Fear to split them into two @UUID[Compendium.daggerheart.adversaries.Actor.1fkLQXVtmILqfJ44]{Tiny Red Oozes} (with no marked HP or Stress). Immediately spotlight both of them.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -466,6 +494,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -486,8 +515,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -498,7 +526,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052809157, + "modifiedTime": 1754144839066, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!9rVlbJVrDNn1x7PS.M9gAcPrgKfSg9Tjb" } diff --git a/src/packs/adversaries/adversary_Rotted_Zombie_gP3fWTLzSFnpA8EJ.json b/src/packs/adversaries/adversary_Rotted_Zombie_gP3fWTLzSFnpA8EJ.json index a9bf3a67..3f566841 100644 --- a/src/packs/adversaries/adversary_Rotted_Zombie_gP3fWTLzSFnpA8EJ.json +++ b/src/packs/adversaries/adversary_Rotted_Zombie_gP3fWTLzSFnpA8EJ.json @@ -99,15 +99,20 @@ "stress": { "max": 1 } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 83, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784339, + "modifiedTime": 1755263398665, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "gP3fWTLzSFnpA8EJ", "sort": 4300000, "ownership": { @@ -216,7 +221,7 @@ "_id": "cwV1kNkNrrrHWEwX", "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 3 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Zombie is defeated when they take any damage. For every 3 damage a PC deals to the Zombie, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -232,7 +237,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052988161, + "modifiedTime": 1754053002555, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!gP3fWTLzSFnpA8EJ.cwV1kNkNrrrHWEwX" }, @@ -242,14 +255,14 @@ "_id": "R9vrwFNl5BD1YXJo", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 2 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Rotted Zombies within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 2 physical damage each. Combine this damage.

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

Spend a Fear to choose a target and spotlight all Rotted Zombies within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 2 physical damage each. Combine this damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -257,6 +270,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -277,8 +291,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -289,7 +302,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053004648, + "modifiedTime": 1754144884372, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!gP3fWTLzSFnpA8EJ.R9vrwFNl5BD1YXJo" } diff --git a/src/packs/adversaries/adversary_Royal_Advisor_EtLJiTsilPPZvLUX.json b/src/packs/adversaries/adversary_Royal_Advisor_EtLJiTsilPPZvLUX.json index 8593ec01..0632ca05 100644 --- a/src/packs/adversaries/adversary_Royal_Advisor_EtLJiTsilPPZvLUX.json +++ b/src/packs/adversaries/adversary_Royal_Advisor_EtLJiTsilPPZvLUX.json @@ -117,15 +117,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 89, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784339, + "modifiedTime": 1755259462657, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "EtLJiTsilPPZvLUX", "sort": 1600000, "ownership": { @@ -232,14 +237,14 @@ "name": "Devastating Retort", "type": "feature", "system": { - "description": "

A PC who rolls less than 17 on an action roll targeting the @Lookup[@name] must mark a Stress.

", + "description": "

A PC who rolls less than 17 on an action roll targeting the Advisor must mark a Stress.

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

A PC who rolls less than 17 on an action roll targeting the Advisor must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -302,7 +307,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754082801892, + "modifiedTime": 1754143000423, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!EtLJiTsilPPZvLUX.XFpF0FfTdqCjbHHF" }, @@ -310,14 +323,14 @@ "name": "Bend Ears", "type": "feature", "system": { - "description": "

Mark a Stress to influence an NPC within Melee range with whispered words. That target’s opinion on one matter shifts toward the @Lookup[@name]’s preference unless it is in direct opposition to the target’s motives.

", + "description": "

Mark a Stress to influence an NPC within Melee range with whispered words. That target’s opinion on one matter shifts toward the Advisor’s preference unless it is in direct opposition to the target’s motives.

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

Mark a Stress to influence an NPC within Melee range with whispered words. That target’s opinion on one matter shifts toward the Advisor’s preference unless it is in direct opposition to the target’s motives.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -325,6 +338,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -344,8 +358,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "lG6vMc0zUbijpvCM", "img": "icons/skills/social/diplomacy-handshake.webp", @@ -358,7 +371,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754082871968, + "modifiedTime": 1754143009436, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!EtLJiTsilPPZvLUX.lG6vMc0zUbijpvCM" }, @@ -373,7 +394,7 @@ "type": "effect", "_id": "6oaHwUVWTmF362vI", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to convince a crowd or notable individual that one person or group is responsible for some problem facing the target. The target becomes hostile to the scapegoat until convinced of their innocence with a successful Presence Roll (17).

[[/dr trait=presence difficulty=17]]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -381,6 +402,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -400,8 +422,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "iwNrNBbvm3RMgSw5", "img": "icons/skills/social/diplomacy-unity-alliance.webp", @@ -414,7 +435,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754082968228, + "modifiedTime": 1754143017351, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!EtLJiTsilPPZvLUX.iwNrNBbvm3RMgSw5" } diff --git a/src/packs/adversaries/adversary_Secret_Keeper_sLAccjvCWfeedbpI.json b/src/packs/adversaries/adversary_Secret_Keeper_sLAccjvCWfeedbpI.json index 0c8757c5..4791237c 100644 --- a/src/packs/adversaries/adversary_Secret_Keeper_sLAccjvCWfeedbpI.json +++ b/src/packs/adversaries/adversary_Secret_Keeper_sLAccjvCWfeedbpI.json @@ -117,15 +117,20 @@ "img": "icons/weapons/staves/staff-ornate-purple.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 89, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784341, + "modifiedTime": 1755259462915, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "sLAccjvCWfeedbpI", "sort": 3300000, "ownership": { @@ -239,7 +244,7 @@ "type": "attack", "_id": "e6DmGF9vOv27BJ6f", "systemPath": "actions", - "description": "", + "description": "

Spend 2 Fear to spotlight 1d4 allies. Attacks they make while spotlighted in this way deal half damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -247,6 +252,7 @@ "scalable": false, "key": "fear", "value": 2, + "keyIsID": false, "step": null } ], @@ -290,8 +296,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "WLnguxRo9egh2hfX", "img": "icons/skills/movement/arrows-up-trio-red.webp", @@ -304,7 +309,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754083063489, + "modifiedTime": 1754143030405, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!sLAccjvCWfeedbpI.WLnguxRo9egh2hfX" }, @@ -319,7 +332,7 @@ "type": "healing", "_id": "MUdqLSRIpEEk1Ujc", "systemPath": "actions", - "description": "", + "description": "

When you spotlight an ally within Far range, mark a Stress to gain a Fear.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -327,6 +340,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -391,8 +405,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "O5Nn1Slv8RJJpNeT", "img": "icons/magic/unholy/hand-claw-glow-orange.webp", @@ -405,7 +418,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754083166776, + "modifiedTime": 1754143039212, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!sLAccjvCWfeedbpI.O5Nn1Slv8RJJpNeT" }, @@ -413,14 +434,36 @@ "name": "Summoning Ritual", "type": "feature", "system": { - "description": "

Countdown (6). When the @Lookup[@name] is in the spotlight for the first time, activate the countdown. When they mark HP, tick down this countdown by the number of HP marked. When it triggers, summon a @UUID[Compendium.daggerheart.adversaries.Actor.3tqCjDwJAQ7JKqMb]{Minor Demon} who appears at Close range.

", + "description": "

Countdown (6). When the Secret-Keeper is in the spotlight for the first time, activate the countdown. When they mark HP, tick down this countdown by the number of HP marked. When it triggers, summon a @UUID[Compendium.daggerheart.adversaries.Actor.3tqCjDwJAQ7JKqMb]{Minor Demon} who appears at Close range.

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

Countdown (6). When the Secret-Keeper is in the spotlight for the first time, activate the countdown. When they mark HP, tick down this countdown by the number of HP marked.

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdown", + "img": "icons/magic/unholy/silhouette-light-fire-blue.webp", + "range": "" + }, "0rixG6jLRynAYNqA": { "type": "effect", "_id": "0rixG6jLRynAYNqA", "systemPath": "actions", - "description": "

Summon a @UUID[Compendium.daggerheart.adversaries.Actor.3tqCjDwJAQ7JKqMb]{Minor Demon} who appears at Close range.

", + "description": "

When the countdown triggers, summon a @UUID[Compendium.daggerheart.adversaries.Actor.3tqCjDwJAQ7JKqMb]{Minor Demon} who appears at Close range.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -437,48 +480,10 @@ "name": "Summon", "img": "icons/magic/unholy/silhouette-light-fire-blue.webp", "range": "close" - }, - "ZVXHY2fpomoKV7jG": { - "type": "countdown", - "_id": "ZVXHY2fpomoKV7jG", - "systemPath": "actions", - "description": "

Countdown (6). When the @Lookup[@name] is in the spotlight for the first time, activate the countdown.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Summoning Ritual", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/unholy/silhouette-light-fire-blue.webp", - "progress": { - "looping": "noLooping", - "type": "custom", - "start": 1, - "startFormula": "6", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/unholy/silhouette-light-fire-blue.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "4L7aM9NDLbjvuwI3", "img": "icons/magic/unholy/silhouette-light-fire-blue.webp", @@ -491,7 +496,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754083223957, + "modifiedTime": 1754143099523, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!sLAccjvCWfeedbpI.4L7aM9NDLbjvuwI3" }, @@ -499,14 +512,14 @@ "name": "Fallen Hounds", "type": "feature", "system": { - "description": "

Once per scene, when the @Lookup[@name] marks 2 or more HP, you can mark a Stress to summon a @UUID[Compendium.daggerheart.adversaries.Actor.NoRZ1PqB8N5wcIw0]{Demonic Hound Pack}, which appears at Close range and is immediately spotlighted.

", + "description": "

Once per scene, when the SecretKeeper marks 2 or more HP, you can mark a Stress to summon a @UUID[Compendium.daggerheart.adversaries.Actor.NoRZ1PqB8N5wcIw0]{Demonic Hound Pack}, which appears at Close range and is immediately spotlighted.

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

Once per scene, when the SecretKeeper marks 2 or more HP, you can mark a Stress to summon a @UUID[Compendium.daggerheart.adversaries.Actor.NoRZ1PqB8N5wcIw0]{Demonic Hound Pack}, which appears at Close range and is immediately spotlighted.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -514,6 +527,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -533,8 +547,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "Q28NPuSMccjzykib", "img": "icons/creatures/unholy/demon-fire-horned-clawed.webp", @@ -547,7 +560,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1754083283890, + "modifiedTime": 1755265493498, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items!sLAccjvCWfeedbpI.Q28NPuSMccjzykib" } diff --git a/src/packs/adversaries/adversary_Sellsword_bgreCaQ6ap2DVpCr.json b/src/packs/adversaries/adversary_Sellsword_bgreCaQ6ap2DVpCr.json index e26b48eb..7e92085f 100644 --- a/src/packs/adversaries/adversary_Sellsword_bgreCaQ6ap2DVpCr.json +++ b/src/packs/adversaries/adversary_Sellsword_bgreCaQ6ap2DVpCr.json @@ -99,15 +99,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 81, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784341, + "modifiedTime": 1755263436436, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "bgreCaQ6ap2DVpCr", "sort": 4100000, "ownership": { @@ -216,7 +221,7 @@ "_id": "nLlbuGTKAvsFRnUB", "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 4 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Sellsword is defeated when they take any damage. For every 4 damage a PC deals to the Sellsword, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -232,7 +237,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053090666, + "modifiedTime": 1754053105639, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!bgreCaQ6ap2DVpCr.nLlbuGTKAvsFRnUB" }, @@ -242,14 +255,14 @@ "_id": "CQZQiEiRH70Br5Ge", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 3 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Sellswords within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 3 physical damage each. Combine this damage.

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

Spend a Fear to choose a target and spotlight all Sellswords within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 3 physical damage each. Combine this damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -257,6 +270,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -277,8 +291,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -289,7 +302,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053107600, + "modifiedTime": 1754144897730, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!bgreCaQ6ap2DVpCr.CQZQiEiRH70Br5Ge" } diff --git a/src/packs/adversaries/adversary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json b/src/packs/adversaries/adversary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json index 7c3925ac..b2f19954 100644 --- a/src/packs/adversaries/adversary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json +++ b/src/packs/adversaries/adversary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json @@ -106,15 +106,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 84, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784342, + "modifiedTime": 1755263464581, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "2nXz4ilAY4xuhKLm", "sort": 600000, "ownership": { @@ -223,7 +228,7 @@ "_id": "IpUWqXjwP2Lp5Zhs", "img": "icons/magic/death/undead-zombie-grave-green.webp", "system": { - "description": "

When the @Lookup[@name] is within Melee range of a creature and at least one other @Lookup[@name] is within Close range, all attacks against that creature have advantage.

", + "description": "

When the Zombie is within Melee range of a creature and at least one other Zombie is within Close range, all attacks against that creature have advantage.

", "resource": null, "actions": {}, "originItemType": null, @@ -239,7 +244,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053211277, + "modifiedTime": 1754053245814, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2nXz4ilAY4xuhKLm.IpUWqXjwP2Lp5Zhs" }, @@ -249,14 +262,14 @@ "_id": "iiOjamlZIuhpDC8W", "img": "icons/magic/death/skull-energy-light-purple.webp", "system": { - "description": "

Targets who mark HP from the @Lookup[@name]’s attacks must also mark a Stress.

", + "description": "

Targets who mark HP from the Zombie’s attacks must also mark a Stress.

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

Targets who mark HP from the Zombie’s attacks must also mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -318,7 +331,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053249379, + "modifiedTime": 1754144921344, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2nXz4ilAY4xuhKLm.iiOjamlZIuhpDC8W" } diff --git a/src/packs/adversaries/adversary_Shark_YmVAkdNsyuXWTtYp.json b/src/packs/adversaries/adversary_Shark_YmVAkdNsyuXWTtYp.json index e385a6c5..9f29fea3 100644 --- a/src/packs/adversaries/adversary_Shark_YmVAkdNsyuXWTtYp.json +++ b/src/packs/adversaries/adversary_Shark_YmVAkdNsyuXWTtYp.json @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 90, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784342, + "modifiedTime": 1755259462790, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "YmVAkdNsyuXWTtYp", "sort": 2200000, "ownership": { @@ -221,14 +226,14 @@ "name": "Terrifying", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

", + "description": "

When the Shark makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

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

When the Shark makes a successful attack, all PCs within Far range lose a Hope and you gain a Fear.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -291,7 +296,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754083474532, + "modifiedTime": 1754143155459, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YmVAkdNsyuXWTtYp.w46d3D2gXUIJh2GH" }, @@ -299,14 +312,14 @@ "name": "Rending Bite", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack, the target must mark an Armor Slot without receiving its benefits (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", + "description": "

When the Shark makes a successful attack, the target must mark an Armor Slot without receiving its benefits (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

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

When the Shark makes a successful attack, the target must mark an Armor Slot without receiving its benefits (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -415,7 +428,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754083491482, + "modifiedTime": 1754143165634, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YmVAkdNsyuXWTtYp.zT4AOW20LPlDoncy" }, @@ -423,14 +444,14 @@ "name": "Blood in the Water", "type": "feature", "system": { - "description": "

When a creature within Close range of the @Lookup[@name] marks HP from another creature’s attack, you can mark a Stress to immediately spotlight the @Lookup[@name], moving them into Melee range of the target and making a standard attack.

", + "description": "

When a creature within Close range of the Shark marks HP from another creature’s attack, you can mark a Stress to immediately spotlight the Shark, moving them into Melee range of the target and making a standard attack.

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

When a creature within Close range of the Shark marks HP from another creature’s attack, you can mark a Stress to immediately spotlight the Shark, moving them into Melee range of the target and making a standard attack.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -438,6 +459,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -457,8 +479,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "LBKPfi8XktBAwbrt", "img": "icons/skills/wounds/blood-spurt-spray-red.webp", @@ -471,7 +492,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754083562494, + "modifiedTime": 1754143174466, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YmVAkdNsyuXWTtYp.LBKPfi8XktBAwbrt" } diff --git a/src/packs/adversaries/adversary_Siren_BK4jwyXSRx7IOQiO.json b/src/packs/adversaries/adversary_Siren_BK4jwyXSRx7IOQiO.json index a72c6d46..27592dd8 100644 --- a/src/packs/adversaries/adversary_Siren_BK4jwyXSRx7IOQiO.json +++ b/src/packs/adversaries/adversary_Siren_BK4jwyXSRx7IOQiO.json @@ -112,15 +112,20 @@ "range": "melee", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 90, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784344, + "modifiedTime": 1755265520298, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "BK4jwyXSRx7IOQiO", "sort": 1400000, "ownership": { @@ -227,14 +232,14 @@ "name": "Captive Audience", "type": "feature", "system": { - "description": "

If the @Lookup[@name] makes a standard attack against a target Entranced by their song, the attack deals 2d10+1 damage instead of their standard damage.

", + "description": "

If the Siren makes a standard attack against a target Entranced by their song, the attack deals 2d10+1 damage instead of their standard damage.

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

If the Siren makes a standard attack against a target Entranced by their song, the attack deals 2d10+1 damage instead of their standard damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -318,7 +323,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754083726966, + "modifiedTime": 1754143194449, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!BK4jwyXSRx7IOQiO.Zc3PFPTgKRX03Fx6" }, @@ -326,14 +339,14 @@ "name": "Enchanting Song", "type": "feature", "system": { - "description": "

Spend a Fear to sing a song that affects all targets within Close range. Targets must succeed on an Instinct Reaction Roll or become Entranced until they mark 2 Stress. Other @Lookup[@name]s within Close range of the target can mark a Stress to each add a +1 bonus to the Difficulty of the reaction roll. While Entranced, a target can’t act and is Vulnerable.

@Template[type:emanation|range:c]

", + "description": "

Spend a Fear to sing a song that affects all targets within Close range. Targets must succeed on an Instinct Reaction Roll or become Entranced until they mark 2 Stress. Other Sirens within Close range of the target can mark a Stress to each add a +1 bonus to the Difficulty of the reaction roll. While Entranced, a target can’t act and is Vulnerable.

@Template[type:emanation|range:c]

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

Spend a Fear to sing a song that affects all targets within Close range. Targets must succeed on an Instinct Reaction Roll or become Entranced until they mark 2 Stress. Other Sirens within Close range of the target can mark a Stress to each add a +1 bonus to the Difficulty of the reaction roll. While Entranced, a target can’t act and is Vulnerable.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -341,6 +354,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -389,8 +403,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "Ks3HpB4W1l5FqR7p", "img": "icons/magic/control/hypnosis-mesmerism-eye.webp", @@ -429,7 +442,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754083894601, + "modifiedTime": 1754083926838, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!BK4jwyXSRx7IOQiO.Ks3HpB4W1l5FqR7p.xrm5786ckKbMYHjn" } @@ -442,7 +463,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754083791012, + "modifiedTime": 1754143204465, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!BK4jwyXSRx7IOQiO.Ks3HpB4W1l5FqR7p" } diff --git a/src/packs/adversaries/adversary_Skeleton_Archer_7X5q7a6ueeHs5oA9.json b/src/packs/adversaries/adversary_Skeleton_Archer_7X5q7a6ueeHs5oA9.json index e5381f6f..29ab00ba 100644 --- a/src/packs/adversaries/adversary_Skeleton_Archer_7X5q7a6ueeHs5oA9.json +++ b/src/packs/adversaries/adversary_Skeleton_Archer_7X5q7a6ueeHs5oA9.json @@ -106,15 +106,20 @@ "img": "icons/weapons/bows/shortbow-leather.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 81, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784345, + "modifiedTime": 1755259462590, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "7X5q7a6ueeHs5oA9", "sort": 1300000, "ownership": { @@ -223,7 +228,7 @@ "_id": "6mL2FQ9pQdfoDNzG", "img": "icons/skills/targeting/crosshair-triple-strike-orange.webp", "system": { - "description": "

When two or more adversaries are within Very Close range of a creature, all damage the @Lookup[@name] deals to that creature is doubled.

", + "description": "

When two or more adversaries are within Very Close range of a creature, all damage the Archer deals to that creature is doubled.

", "resource": null, "actions": {}, "originItemType": null, @@ -239,7 +244,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053342962, + "modifiedTime": 1754053361998, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!7X5q7a6ueeHs5oA9.6mL2FQ9pQdfoDNzG" }, @@ -256,7 +269,7 @@ "type": "attack", "_id": "nKmxl3D7g4p7Zcub", "systemPath": "actions", - "description": "", + "description": "

Make an attack against a Vulnerable target within Far range. On a success, mark a Stress to deal 3d4+8 physical damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -328,8 +341,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -340,7 +352,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053364547, + "modifiedTime": 1754144936679, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!7X5q7a6ueeHs5oA9.4w20xpEo6L1fgro3" } diff --git a/src/packs/adversaries/adversary_Skeleton_Dredge_6l1a3Fazq8BoKIcc.json b/src/packs/adversaries/adversary_Skeleton_Dredge_6l1a3Fazq8BoKIcc.json index 5a973b17..9fccfbd6 100644 --- a/src/packs/adversaries/adversary_Skeleton_Dredge_6l1a3Fazq8BoKIcc.json +++ b/src/packs/adversaries/adversary_Skeleton_Dredge_6l1a3Fazq8BoKIcc.json @@ -99,15 +99,20 @@ "stress": { "max": 1 } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 81, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784347, + "modifiedTime": 1755264328739, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "6l1a3Fazq8BoKIcc", "sort": 1100000, "ownership": { @@ -216,7 +221,7 @@ "_id": "g9GQ9cMPNETxKXOz", "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 4 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Dredge is defeated when they take any damage. For every 4 damage a PC deals to the Dredge, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -232,7 +237,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053484913, + "modifiedTime": 1754053498438, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!6l1a3Fazq8BoKIcc.g9GQ9cMPNETxKXOz" }, @@ -242,14 +255,14 @@ "_id": "wl9KKEpVWDBu62hU", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 1 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Dredges within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 1 physical damage each. Combine this damage.

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

Spend a Fear to choose a target and spotlight all Dredges within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 1 physical damage each. Combine this damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -257,6 +270,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -277,8 +291,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -289,7 +302,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053501054, + "modifiedTime": 1754144949457, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!6l1a3Fazq8BoKIcc.wl9KKEpVWDBu62hU" } diff --git a/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json b/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json index 3c26dd28..4edf1b89 100644 --- a/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json +++ b/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json @@ -106,15 +106,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 82, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784348, + "modifiedTime": 1755264339964, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "Q9LaVTyXF9NF12C7", "sort": 3300000, "ownership": { @@ -223,14 +228,14 @@ "_id": "OZKEz4eK9h7zCbuf", "img": "icons/magic/death/skull-energy-light-purple.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful attack, all PCs within Close range lose a Hope and you gain a Fear.

", + "description": "

When the Knight makes a successful attack, all PCs within Close range lose a Hope and you gain a Fear.

", "resource": null, "actions": { "9EiPNrGzwLtuf9g0": { "type": "damage", "_id": "9EiPNrGzwLtuf9g0", "systemPath": "actions", - "description": "", + "description": "

When the Knight makes a successful attack, all PCs within Close range lose a Hope and you gain a Fear.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -292,7 +297,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053581860, + "modifiedTime": 1754144961490, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!Q9LaVTyXF9NF12C7.OZKEz4eK9h7zCbuf" }, @@ -302,14 +315,14 @@ "_id": "WdVLwy9RNkVlZnCL", "img": "icons/skills/melee/strike-sword-steel-yellow.webp", "system": { - "description": "

Mark a Stress to make an attack against all targets within Very Close range. Targets the @Lookup[@name] succeeds against take 1d8+2 physical damage and must mark a Stress.

@Template[type:emanation|range:vc]

", + "description": "

Mark a Stress to make an attack against all targets within Very Close range. Targets the Knight succeeds against take 1d8+2 physical damage and must mark a Stress.

@Template[type:emanation|range:vc]

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

Mark a Stress to make an attack against all targets within Very Close range. Targets the Knight succeeds against take 1d8+2 physical damage and must mark a Stress.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -317,6 +330,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -413,8 +427,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -425,7 +438,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053666861, + "modifiedTime": 1754144968936, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!Q9LaVTyXF9NF12C7.WdVLwy9RNkVlZnCL" }, @@ -435,14 +456,14 @@ "_id": "STesKV2KB61PlwCh", "img": "icons/magic/death/hand-undead-skeleton-fire-pink.webp", "system": { - "description": "

When the @Lookup[@name] is defeated, they make an attack against a target within Very Close range (prioritizing the creature who killed them). On a success, the target takes 1d4+8 physical damage and loses 1d4 Hope.

", + "description": "

When the Knight is defeated, they make an attack against a target within Very Close range (prioritizing the creature who killed them). On a success, the target takes 1d4+8 physical damage and loses 1d4 Hope.

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

When the Knight is defeated, they make an attack against a target within Very Close range (prioritizing the creature who killed them). On a success, the target takes 1d4+8 physical damage and loses 1d4 Hope.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -514,8 +535,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -526,7 +546,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053741722, + "modifiedTime": 1754144976680, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!Q9LaVTyXF9NF12C7.STesKV2KB61PlwCh" } diff --git a/src/packs/adversaries/adversary_Skeleton_Warrior_10YIQl0lvCJXZLfX.json b/src/packs/adversaries/adversary_Skeleton_Warrior_10YIQl0lvCJXZLfX.json index 28003d5c..55ab1fb4 100644 --- a/src/packs/adversaries/adversary_Skeleton_Warrior_10YIQl0lvCJXZLfX.json +++ b/src/packs/adversaries/adversary_Skeleton_Warrior_10YIQl0lvCJXZLfX.json @@ -106,15 +106,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 82, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784350, + "modifiedTime": 1755264406791, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "10YIQl0lvCJXZLfX", "sort": 100000, "ownership": { @@ -223,7 +228,7 @@ "_id": "ouvJweENF1kLYcOT", "img": "icons/magic/death/bones-crossed-orange.webp", "system": { - "description": "

The @Lookup[@name] is resistant to physical damage.

", + "description": "

The Warrior is resistant to physical damage.

", "resource": null, "actions": {}, "originItemType": null, @@ -270,7 +275,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053876673, + "modifiedTime": 1754053897442, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!10YIQl0lvCJXZLfX.ouvJweENF1kLYcOT.zTepuF1Z5OObQdSi" } @@ -283,7 +296,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053855030, + "modifiedTime": 1754053869442, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!10YIQl0lvCJXZLfX.ouvJweENF1kLYcOT" }, @@ -293,7 +314,7 @@ "_id": "hYl31ThCmZdc0MFa", "img": "icons/magic/death/hand-dirt-undead-zombie.webp", "system": { - "description": "

When the @Lookup[@name] is defeated, you can spotlight them and roll a d6. On a result of 6, if there are other adversaries on the battlefield, the @Lookup[@name] re-forms with no marked HP.

", + "description": "

When the Warrior is defeated, you can spotlight them and roll a d6. On a result of 6, if there are other adversaries on the battlefi eld, the Warrior re-forms with no marked HP.

", "resource": null, "actions": { "QnuFrptj8oARaA3i": { @@ -345,8 +366,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -357,7 +377,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053904083, + "modifiedTime": 1754144989858, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!10YIQl0lvCJXZLfX.hYl31ThCmZdc0MFa" } diff --git a/src/packs/adversaries/adversary_Spectral_Archer_5tCkhnBByUIN5UdG.json b/src/packs/adversaries/adversary_Spectral_Archer_5tCkhnBByUIN5UdG.json index e6cc30f7..e556640f 100644 --- a/src/packs/adversaries/adversary_Spectral_Archer_5tCkhnBByUIN5UdG.json +++ b/src/packs/adversaries/adversary_Spectral_Archer_5tCkhnBByUIN5UdG.json @@ -112,15 +112,20 @@ "range": "far", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 90, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784351, + "modifiedTime": 1755259462572, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "5tCkhnBByUIN5UdG", "sort": 500000, "ownership": { @@ -227,7 +232,7 @@ "name": "Ghost", "type": "feature", "system": { - "description": "

The @Lookup[@name] has resistance to physical damage. Mark a Stress to move up to Close range through solid objects.

", + "description": "

The Archer has resistance to physical damage. Mark a Stress to move up to Close range through solid objects.

", "resource": null, "actions": { "kkKfo1gwetxB3tFQ": { @@ -242,6 +247,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -305,7 +311,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754084011218, + "modifiedTime": 1754084035514, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!5tCkhnBByUIN5UdG.qvJRjKrdr6MG05iJ.xNkkl7nwKFkiB9Rv" } @@ -318,7 +332,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754083956529, + "modifiedTime": 1754143224652, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!5tCkhnBByUIN5UdG.qvJRjKrdr6MG05iJ" }, @@ -333,7 +355,7 @@ "type": "attack", "_id": "KahJnM94QQfy6oMK", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to make an attack within Far range against a PC who is within Very Close range of at least two other PCs. On a success, the target takes 2d8+12 physical damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -404,8 +426,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "0h4IVmCgWXyQngAw", "img": "icons/skills/targeting/crosshair-triple-strike-orange.webp", @@ -418,7 +439,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754084041991, + "modifiedTime": 1754143246296, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!5tCkhnBByUIN5UdG.0h4IVmCgWXyQngAw" } diff --git a/src/packs/adversaries/adversary_Spectral_Captain_65cSO3EQEh6ZH6Xk.json b/src/packs/adversaries/adversary_Spectral_Captain_65cSO3EQEh6ZH6Xk.json index b70a5d53..c1d3db63 100644 --- a/src/packs/adversaries/adversary_Spectral_Captain_65cSO3EQEh6ZH6Xk.json +++ b/src/packs/adversaries/adversary_Spectral_Captain_65cSO3EQEh6ZH6Xk.json @@ -112,15 +112,20 @@ "range": "far", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 90, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784352, + "modifiedTime": 1755259462575, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "65cSO3EQEh6ZH6Xk", "sort": 600000, "ownership": { @@ -227,7 +232,7 @@ "name": "Ghost", "type": "feature", "system": { - "description": "

The @Lookup[@name] has resistance to physical damage. Mark a Stress to move up to Close range through solid objects.

", + "description": "

The Captain has resistance to physical damage. Mark a Stress to move up to Close range through solid objects.

", "resource": null, "actions": { "k7RuXErgCsEBmhmk": { @@ -242,6 +247,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -305,7 +311,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754084251861, + "modifiedTime": 1754084272308, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!65cSO3EQEh6ZH6Xk.JU93RyfAB5XhZ6FN.kZhvwDvfcYQ10reO" } @@ -318,7 +332,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754084228113, + "modifiedTime": 1754143262316, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!65cSO3EQEh6ZH6Xk.JU93RyfAB5XhZ6FN" }, @@ -333,7 +355,7 @@ "type": "effect", "_id": "eHmbN4aPLUuEoDQt", "systemPath": "actions", - "description": "", + "description": "

Spend 2 Fear to return up to [[/r 1d4+1]] defeated Spectral allies to the battle at the points where they first appeared (with no marked HP or Stress).

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -341,6 +363,7 @@ "scalable": false, "key": "fear", "value": 2, + "keyIsID": false, "step": null } ], @@ -360,8 +383,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "7YVe4DfEWMNLXNvu", "img": "icons/magic/death/undead-skeleton-worn-blue.webp", @@ -374,7 +396,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754084289554, + "modifiedTime": 1754143273976, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!65cSO3EQEh6ZH6Xk.7YVe4DfEWMNLXNvu" }, @@ -382,14 +412,14 @@ "name": "Hold Fast", "type": "feature", "system": { - "description": "

When the @Lookup[@name]’s Spectral allies are forced to make a reaction roll, you can mark a Stress to give those allies a +2 bonus to the roll.

", + "description": "

When the Captain’s Spectral allies are forced to make a reaction roll, you can mark a Stress to give those allies a +2 bonus to the roll.

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

When the Captain’s Spectral allies are forced to make a reaction roll, you can mark a Stress to give those allies a +2 bonus to the roll.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -397,6 +427,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -416,8 +447,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "X0vtV30ACVVZ6NfF", "img": "icons/magic/defensive/shield-barrier-flaming-diamond-teal.webp", @@ -430,7 +460,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754084350199, + "modifiedTime": 1754143281444, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!65cSO3EQEh6ZH6Xk.X0vtV30ACVVZ6NfF" }, @@ -438,82 +476,11 @@ "name": "Momentum", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Captain makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "tZKpqKdehnPxRsOc": { - "type": "healing", - "_id": "tZKpqKdehnPxRsOc", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "b9wn9oVMne8E1OYx", "img": "icons/skills/melee/strike-weapons-orange.webp", @@ -526,7 +493,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754084396019, + "modifiedTime": 1754084409095, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!65cSO3EQEh6ZH6Xk.b9wn9oVMne8E1OYx" } diff --git a/src/packs/adversaries/adversary_Spectral_Guardian_UFVGl1osOsJTneLf.json b/src/packs/adversaries/adversary_Spectral_Guardian_UFVGl1osOsJTneLf.json index 577a7d25..cd4dc479 100644 --- a/src/packs/adversaries/adversary_Spectral_Guardian_UFVGl1osOsJTneLf.json +++ b/src/packs/adversaries/adversary_Spectral_Guardian_UFVGl1osOsJTneLf.json @@ -112,15 +112,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 90, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784353, + "modifiedTime": 1755259462734, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "UFVGl1osOsJTneLf", "sort": 2000000, "ownership": { @@ -227,7 +232,7 @@ "name": "Ghost", "type": "feature", "system": { - "description": "

The @Lookup[@name] has resistance to physical damage. Mark a Stress to move up to Close range through solid objects.

", + "description": "

The Guardian has resistance to physical damage. Mark a Stress to move up to Close range through solid objects.

", "resource": null, "actions": { "X1JlwWqyYHjahbpA": { @@ -242,6 +247,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -305,7 +311,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754084548483, + "modifiedTime": 1754084580744, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!UFVGl1osOsJTneLf.x3g1lM5S1W7DAKIc.QDXyAMk33kJGe6hU" } @@ -318,7 +332,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754084531966, + "modifiedTime": 1754143300180, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!UFVGl1osOsJTneLf.x3g1lM5S1W7DAKIc" }, @@ -333,7 +355,7 @@ "type": "attack", "_id": "AdfULyYsj9YPcCj6", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to make an attack against a target within Very Close range. On a success, deal 2d10+6 physical damage and the target must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -341,6 +363,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -436,8 +459,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "L48tQmj5O3s2pjBn", "img": "icons/weapons/swords/sword-flanged-lightning.webp", @@ -450,7 +472,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754084605936, + "modifiedTime": 1754143308994, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!UFVGl1osOsJTneLf.L48tQmj5O3s2pjBn" } diff --git a/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json b/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json index 13d6ed84..da7fd6d6 100644 --- a/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json +++ b/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json @@ -113,15 +113,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 82, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784353, + "modifiedTime": 1755264447203, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "ldbWEL7uZs84vyrR", "sort": 4500000, "ownership": { @@ -230,7 +235,7 @@ "_id": "BwuoAv3EWT0m1apk", "img": "icons/weapons/swords/sword-runed-glowing.webp", "system": { - "description": "

Damage dealt by the @Lookup[@name]’s standard attack is considered both physical and magic.

", + "description": "

Damage dealt by the Spellblade’s standard attack is considered both physical and magic.

", "resource": null, "actions": {}, "originItemType": null, @@ -246,7 +251,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054042580, + "modifiedTime": 1754054057217, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ldbWEL7uZs84vyrR.BwuoAv3EWT0m1apk" }, @@ -263,7 +276,7 @@ "type": "attack", "_id": "K4VnxigKTiu7hhZx", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress and target a group within Far range. All targets must succeed on an Agility Reaction Roll or take 1d8+2 magic damage. You gain a Fear for each target who marked HP from this attack.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -271,6 +284,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -342,8 +356,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -354,7 +367,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054061492, + "modifiedTime": 1754145003754, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ldbWEL7uZs84vyrR.a76dNCrcoZOH1RRT" }, @@ -364,14 +385,14 @@ "_id": "piyJhdHzztabmZ8I", "img": "icons/skills/movement/arrows-up-trio-red.webp", "system": { - "description": "

Spend 2 Fear to spotlight up to five allies within Far range.

", + "description": "

Spend 2 Fear to spotlight up to fi ve allies within Far range.

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

Spend 2 Fear to spotlight up to fi ve allies within Far range.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -379,6 +400,7 @@ "scalable": false, "key": "fear", "value": 2, + "keyIsID": false, "step": null } ], @@ -399,8 +421,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -411,7 +432,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054175855, + "modifiedTime": 1754145012244, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ldbWEL7uZs84vyrR.piyJhdHzztabmZ8I" }, @@ -421,83 +450,12 @@ "_id": "P9nD5K2ztkZGo2I8", "img": "icons/skills/melee/strike-weapons-orange.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Spellblade makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "f4AulN6MeMaEvqbk": { - "type": "healing", - "_id": "f4AulN6MeMaEvqbk", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -508,7 +466,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054217134, + "modifiedTime": 1754054233931, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ldbWEL7uZs84vyrR.P9nD5K2ztkZGo2I8" } diff --git a/src/packs/adversaries/adversary_Spy_8zlynOhnVA59KpKT.json b/src/packs/adversaries/adversary_Spy_8zlynOhnVA59KpKT.json index 5affdc44..fd4244f3 100644 --- a/src/packs/adversaries/adversary_Spy_8zlynOhnVA59KpKT.json +++ b/src/packs/adversaries/adversary_Spy_8zlynOhnVA59KpKT.json @@ -112,15 +112,20 @@ "range": "melee", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 90, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784354, + "modifiedTime": 1755265655362, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "8zlynOhnVA59KpKT", "sort": 1100000, "ownership": { @@ -227,14 +232,14 @@ "name": "Gathering Secrets", "type": "feature", "system": { - "description": "

Spend a Fear to describe how the @Lookup[@name] knows a secret about a PC in the scene.

", + "description": "

Spend a Fear to describe how the Spy knows a secret about a PC in the scene.

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

Spend a Fear to describe how the Spy knows a secret about a PC in the scene.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -242,6 +247,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -261,8 +267,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "csCWQuSqic5ckHeO", "img": "icons/magic/perception/orb-eye-scrying.webp", @@ -275,7 +280,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754084722024, + "modifiedTime": 1754143322352, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8zlynOhnVA59KpKT.csCWQuSqic5ckHeO" }, @@ -283,14 +296,14 @@ "name": "Fly on the Wall", "type": "feature", "system": { - "description": "

When a PC or group is discussing something sensitive, you can mark a Stress to reveal that the @Lookup[@name] is present in the scene, observing them. If the @Lookup[@name] escapes the scene to report their findings, you gain 1d4 Fear.

", + "description": "

When a PC or group is discussing something sensitive, you can mark a Stress to reveal that the Spy is present in the scene, observing them. If the Spy escapes the scene to report their findings, you gain 1d4 Fear.

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

When a PC or group is discussing something sensitive, you can mark a Stress to reveal that the Spy is present in the scene, observing them. If the Spy escapes the scene to report their findings, you gain 1d4 Fear.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -298,6 +311,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -319,7 +333,7 @@ "type": "healing", "_id": "qCA2hTMIYGW0FhGy", "systemPath": "actions", - "description": "

If the @Lookup[@name] escapes the scene to report their findings, you gain 1d4 Fear.

", + "description": "

If the Spy escapes the scene to report their findings, you gain 1d4 Fear.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -383,8 +397,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "UvgVDn0YjISLdKE4", "img": "icons/magic/perception/silhouette-stealth-shadow.webp", @@ -397,7 +410,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754084782425, + "modifiedTime": 1754143342129, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8zlynOhnVA59KpKT.UvgVDn0YjISLdKE4" } diff --git a/src/packs/adversaries/adversary_Stag_Knight_KGVwnLq85ywP9xvB.json b/src/packs/adversaries/adversary_Stag_Knight_KGVwnLq85ywP9xvB.json index 603182cc..13dc9a27 100644 --- a/src/packs/adversaries/adversary_Stag_Knight_KGVwnLq85ywP9xvB.json +++ b/src/packs/adversaries/adversary_Stag_Knight_KGVwnLq85ywP9xvB.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 94, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784355, + "modifiedTime": 1755266627287, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "KGVwnLq85ywP9xvB", "sort": 3400000, "ownership": { @@ -227,14 +232,14 @@ "name": "From Above", "type": "feature", "system": { - "description": "

When the @Lookup[@name] succeeds on a standard attack from above a target, they deal 3d12+3 physical damage instead of their standard damage.

", + "description": "

When the Knight succeeds on a standard attack from above a target, they deal 3d12+3 physical damage instead of their standard damage.

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

When the Knight succeeds on a standard attack from above a target, they deal 3d12+3 physical damage instead of their standard damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -298,7 +303,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754130179925, + "modifiedTime": 1754130244714, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!KGVwnLq85ywP9xvB.3Na2mDfKFB5Hqbqu" }, @@ -306,14 +319,14 @@ "name": "Blade of the Forest", "type": "feature", "system": { - "description": "

Spend a Fear to make an attack against all targets within Very Close range. Targets the @Lookup[@name] succeeds against take physical damage equal to [[/r 3d4]] + the target’s Major threshold.

@Template[type:emanation|range:vc]

", + "description": "

Spend a Fear to make an attack against all targets within Very Close range. Targets the Knight succeeds against take physical damage equal to [[/r 3d4]] + the target’s Major threshold.

@Template[type:emanation|range:vc]

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

Spend a Fear to make an attack against all targets within Very Close range. Targets the Knight succeeds against take physical damage equal to [[/r 3d4]] + the target’s Major threshold.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -321,6 +334,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -364,8 +378,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "CYaSykD9BUxpiOxg", "img": "icons/skills/melee/strike-blade-hooked-green-purple.webp", @@ -378,7 +391,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754130226375, + "modifiedTime": 1754130386766, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!KGVwnLq85ywP9xvB.CYaSykD9BUxpiOxg" }, @@ -386,14 +407,14 @@ "name": "Thorny Armor", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes damage from an attack within Melee range, you can mark a Stress to deal 1d10+5 physical damage to the attacker.

", + "description": "

When the Knight takes damage from an attack within Melee range, you can mark a Stress to deal 1d10+5 physical damage to the attacker.

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

When the Knight takes damage from an attack within Melee range, you can mark a Stress to deal 1d10+5 physical damage to the attacker.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -401,6 +422,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -449,8 +471,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "1LHHdn4ToSwSznuP", "img": "icons/magic/nature/root-vine-barrier-wall-brown.webp", @@ -463,7 +484,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754130391874, + "modifiedTime": 1754130462839, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!KGVwnLq85ywP9xvB.1LHHdn4ToSwSznuP" } diff --git a/src/packs/adversaries/adversary_Stonewraith_3aAS2Qm3R6cgaYfE.json b/src/packs/adversaries/adversary_Stonewraith_3aAS2Qm3R6cgaYfE.json index de3ef9f2..760e1c74 100644 --- a/src/packs/adversaries/adversary_Stonewraith_3aAS2Qm3R6cgaYfE.json +++ b/src/packs/adversaries/adversary_Stonewraith_3aAS2Qm3R6cgaYfE.json @@ -112,15 +112,20 @@ "range": "melee", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 91, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784355, + "modifiedTime": 1755265669682, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "3aAS2Qm3R6cgaYfE", "sort": 300000, "ownership": { @@ -227,7 +232,7 @@ "name": "Stonestrider", "type": "feature", "system": { - "description": "

The @Lookup[@name] can move through stone and earth as easily as air. While within stone or earth, they are Hidden and immune to all damage.

", + "description": "

The Stonewraith can move through stone and earth as easily as air. While within stone or earth, they are Hidden and immune to all damage.

", "resource": null, "actions": {}, "originItemType": null, @@ -244,7 +249,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754084916163, + "modifiedTime": 1754084942629, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!3aAS2Qm3R6cgaYfE.SL5JOOefJEeWJCSz" }, @@ -259,7 +272,7 @@ "type": "attack", "_id": "E8C2Nd4mwcGTXoXb", "systemPath": "actions", - "description": "", + "description": "

While Hidden, mark a Stress to leap into Melee range with a target within Very Close range. The target must succeed on an Agility or Instinct Reaction Roll (15) or take 2d8 physical damage and become temporarily Restrained.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -267,6 +280,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -340,8 +354,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "tQgxiSS48TJ3X1Dl", "img": "icons/creatures/abilities/mouth-teeth-rows-white.webp", @@ -380,7 +393,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754085052348, + "modifiedTime": 1754085055746, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!3aAS2Qm3R6cgaYfE.tQgxiSS48TJ3X1Dl.6UgMuuJ8ZygbCsDh" } @@ -393,12 +414,20 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754084946110, + "modifiedTime": 1754143356249, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!3aAS2Qm3R6cgaYfE.tQgxiSS48TJ3X1Dl" }, { - "name": "Avalanche Roar", + "name": "Avalance Roar", "type": "feature", "system": { "description": "

Spend a Fear to roar while within a cave and cause a cave-in. All targets within Close range must succeed on an Agility Reaction Roll (14) or take 2d10 physical damage. The rubble can be cleared with a Progress Countdown (8).

@Template[type:emanation|range:c]

", @@ -408,7 +437,7 @@ "type": "attack", "_id": "4UGEEuK9XY8leCBV", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to roar while within a cave and cause a cave-in. All targets within Close range must succeed on an Agility Reaction Roll (14) or take 2d10 physical damage. The rubble can be cleared with a Progress Countdown (8).

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -416,6 +445,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -483,48 +513,10 @@ "name": "Roll Save", "img": "icons/magic/sonic/projectile-sound-rings-wave.webp", "range": "close" - }, - "UurIzyyMRAJc2DUX": { - "type": "countdown", - "_id": "UurIzyyMRAJc2DUX", - "systemPath": "actions", - "description": "

The rubble can be cleared with a Progress Countdown (8).

", - "chatDisplay": false, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Avalanche Roar", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/sonic/projectile-sound-rings-wave.webp", - "progress": { - "looping": "noLooping", - "type": "custom", - "start": 1, - "startFormula": "8", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/sonic/projectile-sound-rings-wave.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "9Z0i0uURfBMVIapJ", "img": "icons/magic/sonic/projectile-sound-rings-wave.webp", @@ -537,7 +529,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754085059319, + "modifiedTime": 1754143365810, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!3aAS2Qm3R6cgaYfE.9Z0i0uURfBMVIapJ" }, @@ -545,82 +545,11 @@ "name": "Momentum", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Stonewraith makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "IIZPctjF4MJkWs4b": { - "type": "healing", - "_id": "IIZPctjF4MJkWs4b", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "faM1UzclP0X3ZrkJ", "img": "icons/skills/melee/strike-weapons-orange.webp", @@ -633,7 +562,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754085161530, + "modifiedTime": 1754085176471, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!3aAS2Qm3R6cgaYfE.faM1UzclP0X3ZrkJ" } diff --git a/src/packs/adversaries/adversary_Swarm_of_Rats_qNgs3AbLyJrY19nt.json b/src/packs/adversaries/adversary_Swarm_of_Rats_qNgs3AbLyJrY19nt.json index 33fe06d7..0e9cfa6d 100644 --- a/src/packs/adversaries/adversary_Swarm_of_Rats_qNgs3AbLyJrY19nt.json +++ b/src/packs/adversaries/adversary_Swarm_of_Rats_qNgs3AbLyJrY19nt.json @@ -106,15 +106,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 82, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784356, + "modifiedTime": 1755264462044, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "qNgs3AbLyJrY19nt", "sort": 4700000, "ownership": { @@ -223,7 +228,7 @@ "_id": "9Zuu892SO5NmtI4w", "img": "icons/creatures/magical/humanoid-silhouette-aliens-green.webp", "system": { - "description": "

When the @Lookup[@name] has marked half or more of their HP, their standard attack deals 1d4+1 physical damage instead.

", + "description": "

When the Swarm has marked half or more of their HP, their standard attack deals 1d4+1 physical damage instead.

", "resource": null, "actions": {}, "originItemType": null, @@ -239,7 +244,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054278838, + "modifiedTime": 1754054298798, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!qNgs3AbLyJrY19nt.9Zuu892SO5NmtI4w" }, @@ -249,7 +262,7 @@ "_id": "0O6ckwZE34RBnjpB", "img": "icons/creatures/mammals/rodent-rat-green.webp", "system": { - "description": "

All targets within Melee range have disadvantage on attacks against targets other than the @Lookup[@name].

", + "description": "

All targets within Melee range have disadvantage on attacks against targets other than the Swarm.

", "resource": null, "actions": {}, "originItemType": null, @@ -265,7 +278,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054301414, + "modifiedTime": 1754054322869, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!qNgs3AbLyJrY19nt.0O6ckwZE34RBnjpB" } @@ -298,7 +319,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054244649, + "modifiedTime": 1754054244649, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.effects!qNgs3AbLyJrY19nt.FOV6AzngiR0PZyuN" } diff --git a/src/packs/adversaries/adversary_Sylvan_Soldier_VtFBt9XBE0WrGGxP.json b/src/packs/adversaries/adversary_Sylvan_Soldier_VtFBt9XBE0WrGGxP.json index 2ec5e924..0c869376 100644 --- a/src/packs/adversaries/adversary_Sylvan_Soldier_VtFBt9XBE0WrGGxP.json +++ b/src/packs/adversaries/adversary_Sylvan_Soldier_VtFBt9XBE0WrGGxP.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 82, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784356, + "modifiedTime": 1755264471444, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "VtFBt9XBE0WrGGxP", "sort": 3600000, "ownership": { @@ -229,14 +234,14 @@ "_id": "uo5DbPuQQ018Pyfd", "img": "icons/creatures/abilities/wolf-howl-moon-purple.webp", "system": { - "description": "

If the @Lookup[@name] makes a standard attack and another @Lookup[@name] is within Melee range of the target, deal 1d8+5 physical damage instead of their standard damage.

", + "description": "

If the Soldier makes a standard attack and another Sylvan Soldier is within Melee range of the target, deal 1d8+5 physical damage instead of their standard damage.

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

If the Soldier makes a standard attack and another Sylvan Soldier is within Melee range of the target, deal 1d8+5 physical damage instead of their standard damage.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -319,7 +324,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054372208, + "modifiedTime": 1754145037925, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!VtFBt9XBE0WrGGxP.uo5DbPuQQ018Pyfd" }, @@ -336,7 +349,7 @@ "type": "attack", "_id": "UyL02IaAO3m8LgWI", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to pull down a tree within Close range. A creature hit by the tree must succeed on an Agility Reaction Roll (15) or take 1d10 physical damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -344,6 +357,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -415,8 +429,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -427,7 +440,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054421332, + "modifiedTime": 1754145046401, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!VtFBt9XBE0WrGGxP.phtxvgptyvT3WoeK" }, @@ -437,14 +458,14 @@ "_id": "1dmKoSnV82sLc8xZ", "img": "icons/magic/nature/root-vine-leaves-green.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful attack, you can mark a Stress to become Hidden until the @Lookup[@name]’s next attack or a PC succeeds on an Instinct Roll (14) to find them.

", + "description": "

When the Soldier makes a successful attack, you can mark a Stress to become Hidden until the Soldier’s next attack or a PC succeeds on an Instinct Roll (14) to find them.

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

When the Soldier makes a successful attack, you can mark a Stress to become Hidden until the Soldier’s next attack or a PC succeeds on an Instinct Roll (14) to find them.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -452,6 +473,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -477,8 +499,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [ { @@ -515,7 +536,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054562723, + "modifiedTime": 1754054581921, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!VtFBt9XBE0WrGGxP.1dmKoSnV82sLc8xZ.xyXPmPIOtqXYF1TJ" } @@ -528,7 +557,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1754054512042, + "modifiedTime": 1755261654355, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items!VtFBt9XBE0WrGGxP.1dmKoSnV82sLc8xZ" } diff --git a/src/packs/adversaries/adversary_Tangle_Bramble_Swarm_PKSXFuaIHUCoH63A.json b/src/packs/adversaries/adversary_Tangle_Bramble_Swarm_PKSXFuaIHUCoH63A.json index 639fa956..f1a00b34 100644 --- a/src/packs/adversaries/adversary_Tangle_Bramble_Swarm_PKSXFuaIHUCoH63A.json +++ b/src/packs/adversaries/adversary_Tangle_Bramble_Swarm_PKSXFuaIHUCoH63A.json @@ -143,15 +143,20 @@ "difficulty": null, "damageMod": "none" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 82, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054959791, + "modifiedTime": 1755259462711, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -259,7 +264,7 @@ "_id": "4dSzqtYvH385r9Ng", "img": "icons/creatures/magical/humanoid-silhouette-aliens-green.webp", "system": { - "description": "

When the @Lookup[@name] has marked half or more of their HP, their standard attack deals 1d4+2 physical damage instead.

", + "description": "

When the Swarm has marked half or more of their HP, their standard attack deals 1d4+2 physical damage instead.

", "resource": null, "actions": {}, "originItemType": null, @@ -275,7 +280,13 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!actors.items!PKSXFuaIHUCoH63A.4dSzqtYvH385r9Ng" }, @@ -292,7 +303,7 @@ "type": "damage", "_id": "CiA4K6py0eW6eihU", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to deal 2d6+8 direct physical damage to a target with 3 or more bramble tokens.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -300,6 +311,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -313,10 +325,9 @@ { "value": { "custom": { - "enabled": false, - "formula": "" + "enabled": false }, - "flatMultiplier": 2, + "flatMultiplier": 1, "dice": "d6", "bonus": 8, "multiplier": "flat" @@ -333,14 +344,12 @@ "dice": "d6", "bonus": null, "custom": { - "enabled": false, - "formula": "" + "enabled": false } } } ], - "includeBase": false, - "direct": true + "includeBase": false }, "target": { "type": "any", @@ -354,8 +363,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -366,7 +374,14 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754145096824 }, "_key": "!actors.items!PKSXFuaIHUCoH63A.2HlelvCZA00izcQa" }, @@ -376,14 +391,14 @@ "_id": "JRSGc3ozDnKCAvCj", "img": "icons/magic/nature/root-vine-entangled-hands.webp", "system": { - "description": "

When the @Lookup[@name] succeeds on an attack, give the target a bramble token. If a target has any bramble tokens, they are Restrained. If a target has 3 or more bramble tokens, they are also Vulnerable. All bramble tokens can be removed by succeeding on a Finesse Roll (12 + the number of bramble tokens) or dealing Major or greater damage to the Swarm. If bramble tokens are removed from a target using a Finesse Roll, a number of @Lookup[@name] Minions spawn within Melee range equal to the number of tokens removed.

", + "description": "

When the Swarm succeeds on an attack, give the target a bramble token. If a target has any bramble tokens, they are Restrained. If a target has 3 or more bramble tokens, they are also Vulnerable. All bramble tokens can be removed by succeeding on a Finesse Roll (12 + the number of bramble tokens) or dealing Major or greater damage to the Swarm. If bramble tokens are removed from a target using a Finesse Roll, a number of Tangle Bramble Minions spawn within Melee range equal to the number of tokens removed.

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

When the Swarm succeeds on an attack, give the target a bramble token. If a target has any bramble tokens, they are Restrained. If a target has 3 or more bramble tokens, they are also Vulnerable. All bramble tokens can be removed by succeeding on a Finesse Roll (12 + the number of bramble tokens) or dealing Major or greater damage to the Swarm. If bramble tokens are removed from a target using a Finesse Roll, a number of Tangle Bramble Minions spawn within Melee range equal to the number of tokens removed.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -409,8 +424,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [ { @@ -447,7 +461,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!actors.items.effects!PKSXFuaIHUCoH63A.JRSGc3ozDnKCAvCj.PdkhaTw2j15KJwBf" } @@ -460,7 +480,14 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754145109151 }, "_key": "!actors.items!PKSXFuaIHUCoH63A.JRSGc3ozDnKCAvCj" } @@ -493,7 +520,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!actors.effects!PKSXFuaIHUCoH63A.ki4vrzrFcEYtGeJu" } diff --git a/src/packs/adversaries/adversary_Tangle_Bramble_XcAGOSmtCFLT1unN.json b/src/packs/adversaries/adversary_Tangle_Bramble_XcAGOSmtCFLT1unN.json index a6e5ca17..c61f84aa 100644 --- a/src/packs/adversaries/adversary_Tangle_Bramble_XcAGOSmtCFLT1unN.json +++ b/src/packs/adversaries/adversary_Tangle_Bramble_XcAGOSmtCFLT1unN.json @@ -139,15 +139,20 @@ "difficulty": null, "damageMod": "none" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 83, - "artist": "" - }, - "size": "tiny" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055125822, + "modifiedTime": 1755259462779, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -255,7 +260,7 @@ "_id": "jH1VMpj4dCUhKVCJ", "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 4 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Bramble is defeated when they take any damage. For every 4 damage a PC deals to the Tangle Bramble, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -271,7 +276,13 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!actors.items!XcAGOSmtCFLT1unN.jH1VMpj4dCUhKVCJ" }, @@ -281,14 +292,14 @@ "_id": "WiobzuyvJ46zfsOv", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 2 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Tangle Brambles within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 2 physical damage each. Combine this damage.

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

Spend a Fear to choose a target and spotlight all Tangle Brambles within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 2 physical damage each. Combine this damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -296,6 +307,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -316,8 +328,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -328,7 +339,14 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754145071567 }, "_key": "!actors.items!XcAGOSmtCFLT1unN.WiobzuyvJ46zfsOv" }, @@ -338,13 +356,12 @@ "_id": "KBMf7oBfFSHoafKN", "img": "icons/magic/nature/root-vines-knot-brown.webp", "system": { - "description": "

When an attack from the @Lookup[@name] causes a target to mark HP and there are three or more @Lookup[@name] Minions within Close range, you can combine the Minions into a @UUID[Compendium.daggerheart.adversaries.Actor.PKSXFuaIHUCoH63A]{Tangle Bramble Swarm Horde}. The Horde’s HP is equal to the number of Minions combined.

", + "description": "

When an attack from the Bramble causes a target to mark HP and there are three or more Tangle Bramble Minions within Close range, you can combine the Minions into a @UUID[Compendium.daggerheart.adversaries.Actor.PKSXFuaIHUCoH63A]{Tangle Bramble Swarm Horde}. The Horde’s HP is equal to the number of Minions combined.

", "resource": null, "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -355,7 +372,14 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754145296974 }, "_key": "!actors.items!XcAGOSmtCFLT1unN.KBMf7oBfFSHoafKN" } diff --git a/src/packs/adversaries/adversary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json b/src/packs/adversaries/adversary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json index 6a984b3c..be94d1bd 100644 --- a/src/packs/adversaries/adversary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json +++ b/src/packs/adversaries/adversary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json @@ -102,15 +102,20 @@ "stress": { "max": 1 } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 80, - "artist": "" - }, - "size": "tiny" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784359, + "modifiedTime": 1755264530216, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "aLkLFuVoKz2NLoBK", "sort": 3900000, "ownership": { @@ -219,14 +224,14 @@ "_id": "WpOh5kHHx7lcTvEY", "img": "icons/magic/acid/dissolve-drip-droplet-smoke.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful attack, the target must mark an Armor Slot without receiving its benefi ts (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", + "description": "

When the Ooze makes a successful attack, the target must mark an Armor Slot without receiving its benefi ts (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

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

When the Ooze makes a successful attack, the target must mark an Armor Slot without receiving its benefi ts (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -288,7 +293,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055148507, + "modifiedTime": 1754145130460, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!aLkLFuVoKz2NLoBK.WpOh5kHHx7lcTvEY" } diff --git a/src/packs/adversaries/adversary_Tiny_Red_Ooze_1fkLQXVtmILqfJ44.json b/src/packs/adversaries/adversary_Tiny_Red_Ooze_1fkLQXVtmILqfJ44.json index 116fffba..6c4849d4 100644 --- a/src/packs/adversaries/adversary_Tiny_Red_Ooze_1fkLQXVtmILqfJ44.json +++ b/src/packs/adversaries/adversary_Tiny_Red_Ooze_1fkLQXVtmILqfJ44.json @@ -102,15 +102,20 @@ "damageThresholds": { "major": 5, "severe": 5 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 80, - "artist": "" - }, - "size": "tiny" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784359, + "modifiedTime": 1755264552312, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "1fkLQXVtmILqfJ44", "sort": 200000, "ownership": { @@ -219,7 +224,7 @@ "_id": "zsUMP2qNmNpVHwk0", "img": "icons/magic/fire/blast-jet-stream-splash.webp", "system": { - "description": "

When a creature within Melee range deals damage to the @Lookup[@name], they take 1d6 direct magic damage.

", + "description": "

When a creature within Melee range deals damage to the Ooze, they take 1d6 direct magic damage.

", "resource": null, "actions": { "cHaEnBwinVKmoS9s": { @@ -278,8 +283,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -290,7 +294,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055288007, + "modifiedTime": 1754145142986, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!1fkLQXVtmILqfJ44.zsUMP2qNmNpVHwk0" } diff --git a/src/packs/adversaries/adversary_Treant_Sapling_o63nS0k3wHu6EgKP.json b/src/packs/adversaries/adversary_Treant_Sapling_o63nS0k3wHu6EgKP.json index 8959f78a..a5c004b5 100644 --- a/src/packs/adversaries/adversary_Treant_Sapling_o63nS0k3wHu6EgKP.json +++ b/src/packs/adversaries/adversary_Treant_Sapling_o63nS0k3wHu6EgKP.json @@ -97,17 +97,21 @@ ] }, "type": "attack", - "chatDisplay": false, - "range": "" - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 95, - "artist": "" - }, - "size": "small" + "chatDisplay": false + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784360, + "modifiedTime": 1755259462897, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "o63nS0k3wHu6EgKP", "sort": 3400000, "ownership": { @@ -214,7 +218,7 @@ "name": "Minion (6)", "type": "feature", "system": { - "description": "

The @Lookup[@name] is defeated when they take any damage. For every 6 damage a PC deals to the @Lookup[@name], defeat an additional Minion within range the attack would succeed against.

", + "description": "

The Sapling is defeated when they take any damage. For every 6 damage a PC deals to the Sapling, defeat an additional Minion within range the attack would succeed against.

", "resource": null, "actions": {}, "originItemType": null, @@ -231,7 +235,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754127386305, + "modifiedTime": 1754127405741, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!o63nS0k3wHu6EgKP.OlJpLaFanzspeShi" }, @@ -239,7 +251,7 @@ "name": "Group Attack", "type": "feature", "system": { - "description": "

Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 8 physical damage each. Combine this damage.

", + "description": "

Spend a Fear to choose a target and spotlight all Treant Saplings within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 8 physical damage each. Combine this damage.

", "resource": null, "actions": { "euP8VA4wvfsCpwN1": { @@ -254,6 +266,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -273,8 +286,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "fh8ehANkVOnxEKVa", "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", @@ -287,7 +299,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754127407748, + "modifiedTime": 1754127448935, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!o63nS0k3wHu6EgKP.fh8ehANkVOnxEKVa" } diff --git a/src/packs/adversaries/adversary_Vampire_WWyUp6Mxl1S3KYUG.json b/src/packs/adversaries/adversary_Vampire_WWyUp6Mxl1S3KYUG.json index 4f51cd79..803934a6 100644 --- a/src/packs/adversaries/adversary_Vampire_WWyUp6Mxl1S3KYUG.json +++ b/src/packs/adversaries/adversary_Vampire_WWyUp6Mxl1S3KYUG.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 95, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784364, + "modifiedTime": 1755266648769, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "WWyUp6Mxl1S3KYUG", "sort": 3400000, "ownership": { @@ -227,14 +232,14 @@ "name": "Draining Bite", "type": "feature", "system": { - "description": "

Make an attack against a target within Melee range. On a success, deal 5d4 physical damage. A target who marks HP from this attack loses a Hope and must mark a Stress. The @Lookup[@name] then clears a HP.

", + "description": "

Make an attack against a target within Melee range. On a success, deal 5d4 physical damage. A target who marks HP from this attack loses a Hope and must mark a Stress. The Vampire then clears a HP.

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

Make an attack against a target within Melee range. On a success, deal 5d4 physical damage. A target who marks HP from this attack loses a Hope and must mark a Stress. The Vampire then clears a HP.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -353,8 +358,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "X0VgwJbK2n3mez0p", "img": "icons/creatures/abilities/fang-tooth-blood-red.webp", @@ -367,7 +371,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754128893875, + "modifiedTime": 1754128963746, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!WWyUp6Mxl1S3KYUG.X0VgwJbK2n3mez0p" }, @@ -375,14 +387,14 @@ "name": "Mistform", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes physical damage, you can spend a Fear to take half damage.

", + "description": "

When the Vampire takes physical damage, you can spend a Fear to take half damage.

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

When the Vampire takes physical damage, you can spend a Fear to take half damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -390,6 +402,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -409,8 +422,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "DKVB4rbX2M1CCVM7", "img": "icons/magic/air/fog-gas-smoke-blue-gray.webp", @@ -423,7 +435,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754128969880, + "modifiedTime": 1754129011436, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!WWyUp6Mxl1S3KYUG.DKVB4rbX2M1CCVM7" } diff --git a/src/packs/adversaries/adversary_Vault_Guardian_Gaoler_JqYraOqNmmhHk4Yy.json b/src/packs/adversaries/adversary_Vault_Guardian_Gaoler_JqYraOqNmmhHk4Yy.json index d1cca592..068ce832 100644 --- a/src/packs/adversaries/adversary_Vault_Guardian_Gaoler_JqYraOqNmmhHk4Yy.json +++ b/src/packs/adversaries/adversary_Vault_Guardian_Gaoler_JqYraOqNmmhHk4Yy.json @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 95, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784367, + "modifiedTime": 1755259462674, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "JqYraOqNmmhHk4Yy", "sort": 3400000, "ownership": { @@ -221,7 +226,7 @@ "name": "Blocking Shield", "type": "feature", "system": { - "description": "

Creatures within Melee range of the @Lookup[@name] have disadvantage on attack rolls against them. Creatures trapped inside the @Lookup[@name] are immune to this feature.

", + "description": "

Creatures within Melee range of the Gaoler have disadvantage on attack rolls against them. Creatures trapped inside the Gaoler are immune to this feature.

", "resource": null, "actions": {}, "originItemType": null, @@ -238,7 +243,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754130520190, + "modifiedTime": 1754130576902, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!JqYraOqNmmhHk4Yy.YiF0i85DeRoP4lEs" }, @@ -246,14 +259,14 @@ "name": "Lock Up", "type": "feature", "system": { - "description": "

Mark a Stress to make an attack against a target within Very Close range. On a success, the target is Restrained within the @Lookup[@name] until freed with a successful Strength Roll (18). While Restrained, the target can only attack the @Lookup[@name].

", + "description": "

Mark a Stress to make an attack against a target within Very Close range. On a success, the target is Restrained within the Gaoler until freed with a successful Strength Roll (18). While Restrained, the target can only attack the Gaoler.

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

Mark a Stress to make an attack against a target within Very Close range. On a success, the target is Restrained within the Gaoler until freed with a successful Strength Roll (18). While Restrained, the target can only attack the Gaoler.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -261,6 +274,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -309,8 +323,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "VlHp8RjHy7MK8rqC", "img": "icons/environment/traps/cage-grey-steel.webp", @@ -344,12 +357,20 @@ "description": "

You are Restrained within the Gaoler until freed with a successful Strength Roll (18). While Restrained, you can only attack the Gaoler.

", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754130637275, + "modifiedTime": 1754130664152, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!JqYraOqNmmhHk4Yy.VlHp8RjHy7MK8rqC.6TZlstmWJPbeoL7i" } @@ -362,7 +383,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754130579909, + "modifiedTime": 1754130667604, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!JqYraOqNmmhHk4Yy.VlHp8RjHy7MK8rqC" } diff --git a/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json b/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json index 67139669..992bb62e 100644 --- a/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json +++ b/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 96, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784368, + "modifiedTime": 1755259462659, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "FVgYb28fhxlVcGwA", "sort": 3400000, "ownership": { @@ -221,7 +226,7 @@ "name": "Kinetic Slam", "type": "feature", "system": { - "description": "

Targets who take damage from the @Lookup[@name]’s standard attack are knocked back to Very Close range.

", + "description": "

Targets who take damage from the Sentinel’s standard attack are knocked back to Very Close range.

", "resource": null, "actions": {}, "originItemType": null, @@ -238,7 +243,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754130738983, + "modifiedTime": 1754130764051, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!FVgYb28fhxlVcGwA.eXgcX8stbsTetuoU" }, @@ -246,14 +259,14 @@ "name": "Box In", "type": "feature", "system": { - "description": "

Mark a Stress to choose a target within Very Close range to focus on. That target has disadvantage on attack rolls when they’re within Very Close range of the @Lookup[@name]. The @Lookup[@name]Sentinel can only focus on one target at a time.

", + "description": "

Mark a Stress to choose a target within Very Close range to focus on. That target has disadvantage on attack rolls when they’re within Very Close range of the Sentinel. The Sentinel can only focus on one target at a time.

", "resource": null, "actions": { "4RQnBu4kcUs3PcPH": { "type": "effect", "_id": "4RQnBu4kcUs3PcPH", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to choose a target within Very Close range to focus on. That target has disadvantage on attack rolls when they’re within Very Close range of the Sentinel. The Sentinel can only focus on one target at a time.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -261,6 +274,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -285,8 +299,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "DLspoIclNJcTB3YJ", "img": "icons/magic/perception/eye-ringed-glow-angry-red.webp", @@ -330,7 +343,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754130820145, + "modifiedTime": 1754130875752, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!FVgYb28fhxlVcGwA.DLspoIclNJcTB3YJ.Fo5bLYlmYGtQFAGg" } @@ -343,7 +364,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754130767563, + "modifiedTime": 1754130885872, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!FVgYb28fhxlVcGwA.DLspoIclNJcTB3YJ" }, @@ -358,7 +387,7 @@ "type": "attack", "_id": "mI9i9iwrM48NjzeE", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to lob explosive magic at a point within Far range. All targets within Very Close range of that point must make an Agility Reaction Roll. Targets who fail take 2d8+20 magic damage and are knocked back to Close range. Targets who succeed take half damage and aren’t knocked back.

@Template[type:circle|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -366,6 +395,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -436,8 +466,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "LVFZ4AfVhS6Q9hRy", "img": "icons/magic/sonic/projectile-shock-wave-blue.webp", @@ -450,7 +479,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754130889642, + "modifiedTime": 1754130979603, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!FVgYb28fhxlVcGwA.LVFZ4AfVhS6Q9hRy" }, @@ -458,82 +495,11 @@ "name": "Momentum", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Sentinel makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "AtXg38fItOgiYUee": { - "type": "healing", - "_id": "AtXg38fItOgiYUee", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "N4446BxubUanUQHH", "img": "icons/skills/melee/strike-weapons-orange.webp", @@ -546,7 +512,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754130991279, + "modifiedTime": 1754131007959, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!FVgYb28fhxlVcGwA.N4446BxubUanUQHH" } diff --git a/src/packs/adversaries/adversary_Vault_Guardian_Turret_c5hGdvY5UnSjlHws.json b/src/packs/adversaries/adversary_Vault_Guardian_Turret_c5hGdvY5UnSjlHws.json index ab683607..9de89cce 100644 --- a/src/packs/adversaries/adversary_Vault_Guardian_Turret_c5hGdvY5UnSjlHws.json +++ b/src/packs/adversaries/adversary_Vault_Guardian_Turret_c5hGdvY5UnSjlHws.json @@ -106,15 +106,20 @@ "img": "icons/commodities/tech/metal-joint.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 96, - "artist": "" - }, - "size": "large" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784368, + "modifiedTime": 1755259462816, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "c5hGdvY5UnSjlHws", "sort": 3400000, "ownership": { @@ -221,7 +226,7 @@ "name": "Slow Firing", "type": "feature", "system": { - "description": "

When you spotlight the @Lookup[@name] and they don’t have a token on their stat block, they can’t make a standard attack. Place a token on their stat block and describe what they’re preparing to do. When you spotlight the @Lookup[@name] and they have a token on their stat block, clear the token and they can attack.

", + "description": "

When you spotlight the Turret and they don’t have a token on their stat block, they can’t make a standard attack. Place a token on their stat block and describe what they’re preparing to do. When you spotlight the Turret and they have a token on their stat block, clear the token and they can attack.

", "resource": { "type": "simple", "value": 0, @@ -243,7 +248,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131068287, + "modifiedTime": 1754131092978, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!c5hGdvY5UnSjlHws.TwVkBln6URoPHvlC" }, @@ -251,14 +264,14 @@ "name": "Mark Target", "type": "feature", "system": { - "description": "

Spend a Fear to Mark a target within Far range until the @Lookup[@name] is destroyed or the Marked target becomes Hidden. While the target is Marked, their Evasion is halved.

", + "description": "

Spend a Fear to Mark a target within Far range until the Turret is destroyed or the Marked target becomes Hidden. While the target is Marked, their Evasion is halved.

", "resource": null, "actions": { "1SfYAIIr5znuHCKX": { "type": "effect", "_id": "1SfYAIIr5znuHCKX", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to Mark a target within Far range until the Turret is destroyed or the Marked target becomes Hidden. While the target is Marked, their Evasion is halved.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -266,6 +279,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -290,8 +304,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "uwAr6wR4k7ppI2cW", "img": "icons/skills/targeting/crosshair-pointed-orange.webp", @@ -335,7 +348,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131163901, + "modifiedTime": 1754131219218, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!c5hGdvY5UnSjlHws.uwAr6wR4k7ppI2cW.yQ85C0JHRG1pwu8a" } @@ -348,7 +369,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131095685, + "modifiedTime": 1754131234992, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!c5hGdvY5UnSjlHws.uwAr6wR4k7ppI2cW" }, @@ -356,14 +385,14 @@ "name": "Concentrate Fire", "type": "feature", "system": { - "description": "

When another adversary deals damage to a target within Far range of the @Lookup[@name], you can mark a Stress to add the @Lookup[@name]’s standard attack damage to the damage roll.

", + "description": "

When another adversary deals damage to a target within Far range of the Turret, you can mark a Stress to add the Turret’s standard attack damage to the damage roll.

", "resource": null, "actions": { "3cqPKBRtwxtLwDpN": { "type": "effect", "_id": "3cqPKBRtwxtLwDpN", "systemPath": "actions", - "description": "", + "description": "

When another adversary deals damage to a target within Far range of the Turret, you can mark a Stress to add the Turret’s standard attack damage to the damage roll.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -371,6 +400,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -390,8 +420,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "G7qZ9RHPyNns3axX", "img": "icons/commodities/tech/cog-brass.webp", @@ -404,7 +433,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131239186, + "modifiedTime": 1754131338237, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!c5hGdvY5UnSjlHws.G7qZ9RHPyNns3axX" }, @@ -412,14 +449,14 @@ "name": "Detonation", "type": "feature", "system": { - "description": "

When the @Lookup[@name] is destroyed, they explode. All targets within Close range must make an Agility Reaction Roll. Targets who fail take 3d20 physical damage. Targets who succeed take half damage.

@Template[type:emanation|range:c]

", + "description": "

When the Turret is destroyed, they explode. All targets within Close range must make an Agility Reaction Roll. Targets who fail take 3d20 physical damage. Targets who succeed take half damage.

@Template[type:emanation|range:c]

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

When the Turret is destroyed, they explode. All targets within Close range must make an Agility Reaction Roll. Targets who fail take 3d20 physical damage. Targets who succeed take half damage.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -490,8 +527,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "ALDtQci3ktq9cajU", "img": "icons/magic/sonic/explosion-shock-wave-teal.webp", @@ -504,7 +540,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131341591, + "modifiedTime": 1754131415170, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!c5hGdvY5UnSjlHws.ALDtQci3ktq9cajU" } diff --git a/src/packs/adversaries/adversary_Volcanic_Dragon__Ashen_Tyrant_pMuXGCSOQaxpi5tb.json b/src/packs/adversaries/adversary_Volcanic_Dragon__Ashen_Tyrant_pMuXGCSOQaxpi5tb.json index 82bdd810..51a4cd52 100644 --- a/src/packs/adversaries/adversary_Volcanic_Dragon__Ashen_Tyrant_pMuXGCSOQaxpi5tb.json +++ b/src/packs/adversaries/adversary_Volcanic_Dragon__Ashen_Tyrant_pMuXGCSOQaxpi5tb.json @@ -145,13 +145,7 @@ } } }, - "motivesAndTactics": "Choke, fly, intimidate, kill or be killed", - "attribution": { - "source": "Daggerheart SRD", - "page": 101, - "artist": "" - }, - "size": "gargantuan" + "motivesAndTactics": "Choke, fly, intimidate, kill or be killed" }, "prototypeToken": { "name": "Volcanic Dragon: Ashen Tyrant", @@ -252,42 +246,9 @@ "name": "Relentless (4)", "type": "feature", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to four times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Ashen Tyrant can be spotlighted up to four times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "cvhKUhLycuEeloKH": { - "type": "effect", - "_id": "cvhKUhLycuEeloKH", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "3", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "originId": null }, @@ -302,7 +263,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139608923, + "modifiedTime": 1754139627030, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!pMuXGCSOQaxpi5tb.saz3Vr0xgfAl10tU" }, @@ -310,7 +279,7 @@ "name": "Cornered", "type": "feature", "system": { - "description": "

Mark a Stress instead of spending a Fear to spotlight the @Lookup[@name].

", + "description": "

Mark a Stress instead of spending a Fear to spotlight the Ashen Tyrant.

", "resource": null, "actions": { "nIBoqkOFWx0vpbnj": { @@ -325,6 +294,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -357,7 +327,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139630931, + "modifiedTime": 1754139718088, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!pMuXGCSOQaxpi5tb.8d4bCyFvNq3NymUK" }, @@ -365,7 +343,7 @@ "name": "Injured Wings", "type": "feature", "system": { - "description": "

While flying, the @Lookup[@name] gains a +1 bonus to their Difficulty.

", + "description": "

While flying, the Ashen Tyrant gains a +1 bonus to their Difficulty.

", "resource": null, "actions": {}, "originItemType": null, @@ -413,7 +391,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139762122, + "modifiedTime": 1755267046098, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items.effects!pMuXGCSOQaxpi5tb.jOojMjb779Kea1ZV.zCi90lgFAaA7yrJG" } @@ -426,7 +412,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139721728, + "modifiedTime": 1754139759338, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!pMuXGCSOQaxpi5tb.jOojMjb779Kea1ZV" }, @@ -434,14 +428,14 @@ "name": "Ashes to Ashes", "type": "feature", "system": { - "description": "

When a PC rolls a failure while within Close range of the @Lookup[@name], they lose a Hope and you gain a Fear. If the PC can’t lose a Hope, they must mark a HP.

", + "description": "

When a PC rolls a failure while within Close range of the Ashen Tyrant, they lose a Hope and you gain a Fear. If the PC can’t lose a Hope, they must mark a HP.

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

When a PC rolls a failure while within Close range of the Ashen Tyrant, they lose a Hope and you gain a Fear. If the PC can’t lose a Hope, they must mark a HP.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -504,7 +498,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139782372, + "modifiedTime": 1754139840839, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!pMuXGCSOQaxpi5tb.LeOYwp1GhN59NIHa" }, @@ -512,14 +514,14 @@ "name": "Desperate Rampage", "type": "feature", "system": { - "description": "

Mark a Stress to make an attack against all targets within Close range. Targets the @Lookup[@name] succeeds against take 2d20+2 physical damage, are knocked back to Close range of where they were, and must mark a Stress.

@Template[type:emanation|range:c]

", + "description": "

Mark a Stress to make an attack against all targets within Close range. Targets the Ashen Tyrant succeeds against take 2d20+2 physical damage, are knocked back to Close range of where they were, and must mark a Stress.

@Template[type:emanation|range:c]

", "resource": null, "actions": { "3glUQAcsLBcCumnS": { "type": "attack", "_id": "3glUQAcsLBcCumnS", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to make an attack against all targets within Close range. Targets the Ashen Tyrant succeeds against take 2d20+2 physical damage, are knocked back to Close range of where they were, and must mark a Stress.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -615,8 +617,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "AXhSVGL33i0j6DAw", "img": "icons/creatures/abilities/tail-swipe-green.webp", @@ -629,7 +630,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139845901, + "modifiedTime": 1754139932338, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!pMuXGCSOQaxpi5tb.AXhSVGL33i0j6DAw" }, @@ -644,7 +653,7 @@ "type": "effect", "_id": "UrD4A68IBJgyfvvt", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to smash the ground and kick up ash within Far range. While within the ash cloud, a target has disadvantage on action rolls. The ash cloud clears the next time an adversary is spotlighted.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -652,6 +661,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -671,8 +681,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "ggCol5LQ2ZpeQjly", "img": "icons/magic/air/fog-gas-smoke-brown.webp", @@ -685,7 +694,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754139936255, + "modifiedTime": 1754140008159, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!pMuXGCSOQaxpi5tb.ggCol5LQ2ZpeQjly" }, @@ -693,14 +710,36 @@ "name": "Apocalyptic Thrasing", "type": "feature", "system": { - "description": "

Countdown (1d12). Spend a Fear to activate. It ticks down when a PC rolls with Fear. When it triggers, the @Lookup[@name] thrashes about, causing environmental damage (such as an earthquake, avalanche, or collapsing walls). All targets within Far range must make a Strength Reaction Roll. Targets who fail take 2d10+10 physical damage and are Restrained by the rubble until they break free with a successful Strength Roll. Targets who succeed take half damage. If the @Lookup[@name] is defeated while this countdown is active, trigger the countdown immediately as the destruction caused by their death throes.

@Template[type:emanation|range:f]

", + "description": "

Countdown (1d12). Spend a Fear to activate. It ticks down when a PC rolls with Fear.

When it triggers, the Ashen Tyrant thrashes about, causing environmental damage (such as an earthquake, avalanche, or collapsing walls). All targets within Far range must make a Strength Reaction Roll. Targets who fail take 2d10+10 physical damage and are Restrained by the rubble until they break free with a successful Strength Roll. Targets who succeed take half damage. If the Ashen Tyrant is defeated while this countdown is active, trigger the countdown immediately as the destruction caused by their death throes.

@Template[type:emanation|range:f]

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

Countdown (1d12). Spend a Fear to activate. It ticks down when a PC rolls with Fear.

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdown", + "img": "icons/creatures/abilities/mouth-teeth-fire-orange.webp", + "range": "" + }, "OznXxmwiPwzuFPQZ": { "type": "attack", "_id": "OznXxmwiPwzuFPQZ", "systemPath": "actions", - "description": "

When the countdown triggers, the @Lookup[@name] thrashes about, causing environmental damage (such as an earthquake, avalanche, or collapsing walls). All targets within Far range must make a Strength Reaction Roll. Targets who fail take 2d10+10 physical damage and are Restrained by the rubble until they break free with a successful Strength Roll. Targets who succeed take half damage. If the @Lookup[@name] is defeated while this countdown is active, trigger the countdown immediately as the destruction caused by their death throes.

@Template[type:emanation|range:f]

", + "description": "

When the countdown triggers, the Ashen Tyrant thrashes about, causing environmental damage (such as an earthquake, avalanche, or collapsing walls). All targets within Far range must make a Strength Reaction Roll. Targets who fail take 2d10+10 physical damage and are Restrained by the rubble until they break free with a successful Strength Roll. Targets who succeed take half damage. If the Ashen Tyrant is defeated while this countdown is active, trigger the countdown immediately as the destruction caused by their death throes.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -773,57 +812,10 @@ "name": "Roll Save", "img": "icons/creatures/abilities/mouth-teeth-fire-orange.webp", "range": "" - }, - "rZ7IwBnDzw7VmBT6": { - "type": "countdown", - "_id": "rZ7IwBnDzw7VmBT6", - "systemPath": "actions", - "description": "

Countdown (1d12). Spend a Fear to activate. It ticks down when a PC rolls with Fear.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "itemId": null, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Apocalyptic Thrasing", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/creatures/abilities/mouth-teeth-fire-orange.webp", - "progress": { - "looping": "noLooping", - "type": "fear", - "start": 1, - "startFormula": "1d12", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/creatures/abilities/mouth-teeth-fire-orange.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "uWiyaJPXcoW06pOM", "img": "icons/creatures/abilities/mouth-teeth-fire-orange.webp", @@ -862,7 +854,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754140152911, + "modifiedTime": 1755267090918, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items.effects!pMuXGCSOQaxpi5tb.uWiyaJPXcoW06pOM.YUjdwrEZ4zn7WR9X" } @@ -875,7 +875,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754140011482, + "modifiedTime": 1754140152923, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!pMuXGCSOQaxpi5tb.uWiyaJPXcoW06pOM" } @@ -887,5 +895,16 @@ "99pQVoplilbkZnOk": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753929252617, + "modifiedTime": 1755267105169, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_key": "!actors!pMuXGCSOQaxpi5tb" } diff --git a/src/packs/adversaries/adversary_Volcanic_Dragon__Molten_Scourge_eArAPuB38CNR0ZIM.json b/src/packs/adversaries/adversary_Volcanic_Dragon__Molten_Scourge_eArAPuB38CNR0ZIM.json index b23da064..56e7a0e7 100644 --- a/src/packs/adversaries/adversary_Volcanic_Dragon__Molten_Scourge_eArAPuB38CNR0ZIM.json +++ b/src/packs/adversaries/adversary_Volcanic_Dragon__Molten_Scourge_eArAPuB38CNR0ZIM.json @@ -145,13 +145,7 @@ } } }, - "motivesAndTactics": "Douse with lava, incinerate, repel Invaders, reposition", - "attribution": { - "source": "Daggerheart SRD", - "page": 100, - "artist": "" - }, - "size": "gargantuan" + "motivesAndTactics": "Douse with lava, incinerate, repel Invaders, reposition" }, "prototypeToken": { "name": "Volcanic Dragon: Molten Scourge", @@ -252,42 +246,9 @@ "name": "Relentless (3)", "type": "feature", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to three times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Molten Scourge can be spotlighted up to three times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "ngzXlah4Lv3eK6i5": { - "type": "effect", - "_id": "ngzXlah4Lv3eK6i5", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "2", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "originId": null }, @@ -302,7 +263,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754140232475, + "modifiedTime": 1754140255711, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!eArAPuB38CNR0ZIM.DVtxHnbvNDz2POSD" }, @@ -310,7 +279,7 @@ "name": "Cracked Scales", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes damage, roll a number of d6s equal to HP marked. For each result of 4 or higher, you gain a Fear.

", + "description": "

When the Molten Scourge takes damage, roll a number of d6s equal to HP marked. For each result of 4 or higher, you gain a Fear.

", "resource": null, "actions": {}, "originItemType": null, @@ -327,7 +296,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754140257789, + "modifiedTime": 1754140294240, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!eArAPuB38CNR0ZIM.Tw3PBsg0Vo74N3pm" }, @@ -335,14 +312,14 @@ "name": "Shattering Might", "type": "feature", "system": { - "description": "

Mark a Stress to make an attack against a target within Very Close range. On a success, the target takes 4d8+1 physical damage, loses a Hope, and is knocked back to Close range. The @Lookup[@name] clears a Stress.

", + "description": "

Mark a Stress to make an attack against a target within Very Close range. On a success, the target takes 4d8+1 physical damage, loses a Hope, and is knocked back to Close range. The Molten Scourge clears a Stress.

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

Mark a Stress to make an attack against a target within Very Close range. On a success, the target takes 4d8+1 physical damage, loses a Hope, and is knocked back to Close range. The Molten Scourge clears a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -350,6 +327,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -420,8 +398,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "bpjpHxf6tj4i3H4r", "img": "icons/creatures/abilities/tail-swipe-green.webp", @@ -434,7 +411,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754140297853, + "modifiedTime": 1754140378198, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!eArAPuB38CNR0ZIM.bpjpHxf6tj4i3H4r" }, @@ -442,14 +427,14 @@ "name": "Eruption", "type": "feature", "system": { - "description": "

Spend a Fear to erupt lava from beneath the @Lookup[@name]’s scales, filling the area within Very Close range with molten lava. All targets in that area must succeed on an Agility Reaction Roll or take 4d6+6 physical damage and be knocked back to Close range. This area remains lava. When a creature other than the @Lookup[@name] enters that area or acts while inside of it, they must mark 6 HP.

@Template[type:emanation|range:vc]

", + "description": "

Spend a Fear to erupt lava from beneath the Molten Scourge’s scales, filling the area within Very Close range with molten lava. All targets in that area must succeed on an Agility Reaction Roll or take 4d6+6 physical damage and be knocked back to Close range. This area remains lava. When a creature other than the Molten Scourge enters that area or acts while inside of it, they must mark 6 HP.

@Template[type:emanation|range:vc]

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

Spend a Fear to erupt lava from beneath the Molten Scourge’s scales, filling the area within Very Close range with molten lava. All targets in that area must succeed on an Agility Reaction Roll or take 4d6+6 physical damage and be knocked back to Close range. This area remains lava. When a creature other than the Molten Scourge enters that area or acts while inside of it, they must mark 6 HP.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -520,8 +505,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "NuksKUrbf4yj4vR2", "img": "icons/magic/fire/blast-jet-stream-embers-red.webp", @@ -534,7 +518,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754140391422, + "modifiedTime": 1754140543080, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!eArAPuB38CNR0ZIM.NuksKUrbf4yj4vR2" }, @@ -542,14 +534,14 @@ "name": "Volcanic Breath", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes Major damage, roll a d10. On a result of 8 or higher, the @Lookup[@name] breathes a flow of lava in front of them within Far range. All targets in that area must make an Agility Reaction Roll. Targets who fail take 2d10+4 physical damage, mark 1d4 Stress, and are Vulnerable until they clear a Stress. Targets who succeed take half damage and must mark a Stress.

@Template[type:inFront|range:f]

", + "description": "

When the Molten Scourge takes Major damage, roll a d10. On a result of 8 or higher, the Molten Scourge breathes a flow of lava in front of them within Far range. All targets in that area must make an Agility Reaction Roll. Targets who fail take 2d10+4 physical damage, mark 1d4 Stress, and are Vulnerable until they clear a Stress. Targets who succeed take half damage and must mark a Stress.

@Template[type:inFront|range:f]

", "resource": null, "actions": { "OhrssSQhmciZt1Rm": { "type": "attack", "_id": "OhrssSQhmciZt1Rm", "systemPath": "actions", - "description": "

When the @Lookup[@name] takes Major damage, roll a d10. On a result of 8 or higher, the @Lookup[@name] breathes a flow of lava in front of them within Far range.

", + "description": "

When the Molten Scourge takes Major damage, roll a d10. On a result of 8 or higher, the Molten Scourge breathes a flow of lava in front of them within Far range.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -557,6 +549,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -602,7 +595,7 @@ "type": "attack", "_id": "LBNvfABGWcrygpQM", "systemPath": "actions", - "description": "

The @Lookup[@name] breathes a flow of lava in front of them within Far range. All targets in that area must make an Agility Reaction Roll. Targets who fail take 2d10+4 physical damage, mark 1d4 Stress, and are Vulnerable until they clear a Stress. Targets who succeed take half damage and must mark a Stress.

@Template[type:inFront|range:f]

", + "description": "

The Molten Scourge breathes a flow of lava in front of them within Far range. All targets in that area must make an Agility Reaction Roll. Targets who fail take 2d10+4 physical damage, mark 1d4 Stress, and are Vulnerable until they clear a Stress. Targets who succeed take half damage and must mark a Stress.

@Template[type:inFront|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -702,8 +695,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "2mK8kxfp2WBUeBri", "img": "icons/magic/fire/blast-jet-stream-embers-orange.webp", @@ -742,7 +734,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754140786179, + "modifiedTime": 1754140805212, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!eArAPuB38CNR0ZIM.2mK8kxfp2WBUeBri.xmzA6NC9zrulhzQs" } @@ -755,7 +755,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754140546944, + "modifiedTime": 1754140786191, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!eArAPuB38CNR0ZIM.2mK8kxfp2WBUeBri" }, @@ -763,14 +771,14 @@ "name": "Lava Splash", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes Severe damage from an attack within Very Close range, molten blood gushes from the wound and deals 2d10+4 direct physical damage to the attacker.

", + "description": "

When the Molten Scourge takes Severe damage from an attack within Very Close range, molten blood gushes from the wound and deals 2d10+4 direct physical damage to the attacker.

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

When the Molten Scourge takes Severe damage from an attack within Very Close range, molten blood gushes from the wound and deals 2d10+4 direct physical damage to the attacker.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -808,8 +816,7 @@ } } ], - "includeBase": false, - "direct": true + "includeBase": false }, "target": { "type": "any", @@ -822,8 +829,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "3VdQdUDULZCQPvLZ", "img": "icons/magic/fire/blast-jet-stream-embers-red.webp", @@ -836,7 +842,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754140813164, + "modifiedTime": 1754140859092, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!eArAPuB38CNR0ZIM.3VdQdUDULZCQPvLZ" }, @@ -844,12 +858,11 @@ "name": "Ashen Vengeance", "type": "feature", "system": { - "description": "

When the @Lookup[@name] marks their last HP, replace them with the @UUID[Compendium.daggerheart.adversaries.Actor.pMuXGCSOQaxpi5tb]{Ashen Tyrant} and immediately spotlight them.

", + "description": "

When the Molten Scourge marks their last HP, replace them with the @UUID[Compendium.daggerheart.adversaries.Actor.pMuXGCSOQaxpi5tb]{Ashen Tyrant} and immediately spotlight them.

", "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "qYFoyDSdZ5X2h245", "img": "icons/magic/fire/flame-burning-eye.webp", @@ -862,7 +875,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754140865887, + "modifiedTime": 1754141385999, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!eArAPuB38CNR0ZIM.qYFoyDSdZ5X2h245" } @@ -874,5 +895,16 @@ "99pQVoplilbkZnOk": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753929160832, + "modifiedTime": 1755259462833, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_key": "!actors!eArAPuB38CNR0ZIM" } diff --git a/src/packs/adversaries/adversary_Volcanic_Dragon__Obsidian_Predator_ladm7wykhZczYzrQ.json b/src/packs/adversaries/adversary_Volcanic_Dragon__Obsidian_Predator_ladm7wykhZczYzrQ.json index 2e2adbdd..b546dbc0 100644 --- a/src/packs/adversaries/adversary_Volcanic_Dragon__Obsidian_Predator_ladm7wykhZczYzrQ.json +++ b/src/packs/adversaries/adversary_Volcanic_Dragon__Obsidian_Predator_ladm7wykhZczYzrQ.json @@ -145,13 +145,7 @@ } } }, - "motivesAndTactics": "Defend lair, dive-bomb, fly, hunt, intimidate", - "attribution": { - "source": "Daggerheart SRD", - "page": 100, - "artist": "" - }, - "size": "gargantuan" + "motivesAndTactics": "Defend lair, dive-bomb, fly, hunt, intimidate" }, "prototypeToken": { "name": "Volcanic Dragon: Obsidian Predator", @@ -252,42 +246,9 @@ "name": "Relentless (2)", "type": "feature", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to two times per GM turn Spend Fear as usual to spotlight them

", + "description": "

When the Molten Scourge marks their last HP, replace them with the Ashen Tyrant and immediately spotlight them.

", "resource": null, - "actions": { - "XuhmupOVJj8ae6q0": { - "type": "effect", - "_id": "XuhmupOVJj8ae6q0", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "1", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "originId": null }, @@ -302,7 +263,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754140957019, + "modifiedTime": 1754140976241, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ladm7wykhZczYzrQ.hnr2drwGFJAXRJLo" }, @@ -310,7 +279,7 @@ "name": "Flying", "type": "feature", "system": { - "description": "

While flying, the @Lookup[@name] gains a +3 bonus to their Difficulty.

", + "description": "

While flying, the Obsidian Predator gains a +3 bonus to their Difficulty.

", "resource": null, "actions": {}, "originItemType": null, @@ -358,7 +327,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754141026641, + "modifiedTime": 1755266990654, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items.effects!ladm7wykhZczYzrQ.oN5za5NKi2qAXJ0e.8o8yG73ZfrZ3hb5i" } @@ -371,7 +348,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754140978212, + "modifiedTime": 1754141024668, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ladm7wykhZczYzrQ.oN5za5NKi2qAXJ0e" }, @@ -379,7 +364,7 @@ "name": "Obsidian Scales", "type": "feature", "system": { - "description": "

The @Lookup[@name] is resistant to physical damage.

", + "description": "

The Obsidian Predator is resistant to physical damage.

", "resource": null, "actions": {}, "originItemType": null, @@ -427,7 +412,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754141095630, + "modifiedTime": 1754141115583, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!ladm7wykhZczYzrQ.rh4cZ8EKTUmZ7Y6T.Jr9SlkRnkroulYhy" } @@ -440,7 +433,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754141047318, + "modifiedTime": 1754141092379, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ladm7wykhZczYzrQ.rh4cZ8EKTUmZ7Y6T" }, @@ -448,14 +449,14 @@ "name": "Avalanche Tail", "type": "feature", "system": { - "description": "

Mark a Stress to make an attack against all targets within Close range. Targets the @Lookup[@name] succeeds against take 4d6+4 physical damage and are knocked.

@Template[type:emanation|range:c]

", + "description": "

Mark a Stress to make an attack against all targets within Close range. Targets the Obsidian Predator succeeds against take 4d6+4 physical damage and are knocked.

@Template[type:emanation|range:c]

", "resource": null, "actions": { "23y0BoufIgNq62j9": { "type": "attack", "_id": "23y0BoufIgNq62j9", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to make an attack against all targets within Close range. Targets the Obsidian Predator succeeds against take 4d6+4 physical damage and are knocked.

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -529,8 +530,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "8bMOItTuL7PfAYcJ", "img": "icons/creatures/abilities/tail-swipe-green.webp", @@ -569,7 +569,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754141184131, + "modifiedTime": 1754141197126, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!ladm7wykhZczYzrQ.8bMOItTuL7PfAYcJ.qtIaAZDW8QsjILgb" } @@ -582,7 +590,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754141117400, + "modifiedTime": 1754141184144, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ladm7wykhZczYzrQ.8bMOItTuL7PfAYcJ" }, @@ -590,14 +606,14 @@ "name": "Dive-Bomb", "type": "feature", "system": { - "description": "

If the @Lookup[@name] is flying, mark a Stress to choose a point within Far range. Move to that point and make an attack against all targets within Very Close range. Targets the @Lookup[@name] succeeds against take 2d10+6 physical damage and must mark a Stress and lose a Hope.

@Template[type:emanation|range:vc]

", + "description": "

If the Obsidian Predator is flying, mark a Stress to choose a point within Far range. Move to that point and make an attack against all targets within Very Close range. Targets the Obsidian Predator succeeds against take 2d10+6 physical damage and must mark a Stress and lose a Hope.

@Template[type:emanation|range:vc]

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

If the Obsidian Predator is flying, mark a Stress to choose a point within Far range. Move to that point and make an attack against all targets within Very Close range. Targets the Obsidian Predator succeeds against take 2d10+6 physical damage and must mark a Stress and lose a Hope.

@Template[type:emanation|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -718,8 +734,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "5wLxyaWJuUhkx1EX", "img": "icons/creatures/reptiles/dragon-winged-blue.webp", @@ -732,7 +747,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754141201709, + "modifiedTime": 1754141315485, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ladm7wykhZczYzrQ.5wLxyaWJuUhkx1EX" }, @@ -740,12 +763,11 @@ "name": "Erupting Rage", "type": "feature", "system": { - "description": "

When the @Lookup[@name] marks their last HP, replace them with the @UUID[Compendium.daggerheart.adversaries.Actor.eArAPuB38CNR0ZIM]{Molten Scourge} and immediately spotlight them.

", + "description": "

When the Obsidian Predator marks their last HP, replace them with the @UUID[Compendium.daggerheart.adversaries.Actor.eArAPuB38CNR0ZIM]{Molten Scourge} and immediately spotlight them.

", "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "5llfnRwO7mfzDFgT", "img": "icons/magic/fire/flame-burning-eye.webp", @@ -758,7 +780,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754141322241, + "modifiedTime": 1754141358801, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ladm7wykhZczYzrQ.5llfnRwO7mfzDFgT" } @@ -770,5 +800,16 @@ "99pQVoplilbkZnOk": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753929001531, + "modifiedTime": 1755259462866, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_key": "!actors!ladm7wykhZczYzrQ" } diff --git a/src/packs/adversaries/adversary_War_Wizard_noDdT0tsN6FXSmC8.json b/src/packs/adversaries/adversary_War_Wizard_noDdT0tsN6FXSmC8.json index f087c63d..714c273e 100644 --- a/src/packs/adversaries/adversary_War_Wizard_noDdT0tsN6FXSmC8.json +++ b/src/packs/adversaries/adversary_War_Wizard_noDdT0tsN6FXSmC8.json @@ -117,15 +117,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 91, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784373, + "modifiedTime": 1755259462894, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "noDdT0tsN6FXSmC8", "sort": 3100000, "ownership": { @@ -239,7 +244,7 @@ "type": "effect", "_id": "39zC1I5DYozI47lP", "systemPath": "actions", - "description": "", + "description": "

Before or after making a standard attack, you can mark a Stress to teleport to a location within Far range.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -247,6 +252,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -279,7 +285,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754085243264, + "modifiedTime": 1754143380458, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!noDdT0tsN6FXSmC8.PUUz48dsObawcSgp" }, @@ -287,14 +301,14 @@ "name": "Refresh Warding Sphere", "type": "feature", "system": { - "description": "

Mark a Stress to refresh the @Lookup[@name]’s β€œWarding Sphere” reaction.

", + "description": "

Mark a Stress to refresh the Wizard’s β€œWarding Sphere” reaction.

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

Mark a Stress to refresh the Wizard’s β€œWarding Sphere” reaction.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -302,6 +316,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -321,8 +336,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "dI2MGjC7NFAru1Gd", "img": "icons/magic/defensive/shield-barrier-blades-teal.webp", @@ -335,7 +349,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754085287538, + "modifiedTime": 1754143388156, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!noDdT0tsN6FXSmC8.dI2MGjC7NFAru1Gd" }, @@ -350,7 +372,7 @@ "type": "attack", "_id": "vnMq4NuQO6GYxWhM", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear and choose a point within Far range. A Very Close area around that point erupts into impassable terrain. All targets within that area must make an Agility Reaction Roll (14). Targets who fail take 2d10 physical damage and are thrown out of the area. Targets who succeed take half damage and aren’t moved.

@Template[type:circle|range:vc]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -358,6 +380,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -428,8 +451,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "PnQ0m0FLnpht7oE4", "img": "icons/magic/earth/barrier-stone-explosion-red.webp", @@ -442,7 +464,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754085334993, + "modifiedTime": 1754143396761, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!noDdT0tsN6FXSmC8.PnQ0m0FLnpht7oE4" }, @@ -457,7 +487,7 @@ "type": "attack", "_id": "DFHR8LtvjZjHP6BL", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to unleash a precise hail of magical blasts. All targets in the scene must make an Agility Reaction Roll. Targets who fail take 2d12 magic damage. Targets who succeed take half damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -465,6 +495,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -535,8 +566,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "s2luvEVxJLZmOrdh", "img": "icons/magic/light/projectiles-trio-pink.webp", @@ -549,7 +579,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754085427830, + "modifiedTime": 1754143405896, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!noDdT0tsN6FXSmC8.s2luvEVxJLZmOrdh" }, @@ -557,19 +595,19 @@ "name": "Warding Sphere", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes damage from an attack within Close range, deal 2d6 magic damage to the attacker. This reaction can’t be used again until the @Lookup[@name] refreshes it with their β€œRefresh Warding Sphere” action.

", + "description": "

When the Wizard takes damage from an attack within Close range, deal 2d6 magic damage to the attacker. This reaction can’t be used again until the Wizard refreshes it with their β€œRefresh Warding Sphere” action.

", "resource": null, "actions": { "2fHrpaZW9toi6nin": { "type": "damage", "_id": "2fHrpaZW9toi6nin", "systemPath": "actions", - "description": "", + "description": "

When the Wizard takes damage from an attack within Close range, deal 2d6 magic damage to the attacker. This reaction can’t be used again until the Wizard refreshes it with their β€œRefresh Warding Sphere” action.

", "chatDisplay": true, "actionType": "action", "cost": [], "uses": { - "value": 0, + "value": null, "max": "1", "recovery": null }, @@ -615,8 +653,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "9cPigHRcUfJC9gD8", "img": "icons/magic/defensive/barrier-shield-dome-blue-purple.webp", @@ -629,7 +666,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1754085493649, + "modifiedTime": 1755265745660, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items!noDdT0tsN6FXSmC8.9cPigHRcUfJC9gD8" } diff --git a/src/packs/adversaries/adversary_Weaponmaster_ZNbQ2jg35LG4t9eH.json b/src/packs/adversaries/adversary_Weaponmaster_ZNbQ2jg35LG4t9eH.json index 2989468b..fef30f1b 100644 --- a/src/packs/adversaries/adversary_Weaponmaster_ZNbQ2jg35LG4t9eH.json +++ b/src/packs/adversaries/adversary_Weaponmaster_ZNbQ2jg35LG4t9eH.json @@ -65,7 +65,7 @@ }, "tier": 1, "description": "

A master-at-arms wielding a sword twice their size.

", - "motivesAndTactics": "Act first, aim for the weakest, intimidate", + "motivesAndTactics": "Act fi rst, aim for the weakest, intimidate", "attack": { "roll": { "bonus": 2, @@ -106,15 +106,20 @@ }, "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 83, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784373, + "modifiedTime": 1755259462796, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "ZNbQ2jg35LG4t9eH", "sort": 3800000, "ownership": { @@ -223,14 +228,14 @@ "_id": "tyGgOqQzDSIypoMz", "img": "icons/skills/melee/strike-sword-dagger-runes-gold.webp", "system": { - "description": "

Make a standard attack against a target. On a success, mark a Stress to Taunt the target until their next successful attack. The next time the Taunted target attacks, they have disadvantage against targets other than the @Lookup[@name].

", + "description": "

Make a standard attack against a target. On a success, mark a Stress to Taunt the target until their next successful attack. The next time the Taunted target attacks, they have disadvantage against targets other than the Weaponmaster.

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

Make a standard attack against a target. On a success, mark a Stress to Taunt the target until their next successful attack. The next time the Taunted target attacks, they have disadvantage against targets other than the Weaponmaster.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -307,8 +312,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -343,7 +347,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055665322, + "modifiedTime": 1754055678355, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!ZNbQ2jg35LG4t9eH.tyGgOqQzDSIypoMz.j2jYmYbtWXvq32yX" } @@ -356,7 +368,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055391558, + "modifiedTime": 1754145156618, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ZNbQ2jg35LG4t9eH.tyGgOqQzDSIypoMz" }, @@ -378,23 +398,23 @@ "type": "healing", "_id": "WQ067ZFiG2QMBo2n", "systemPath": "actions", - "description": "", + "description": "

Once per scene, spend a Fear to clear 2Β HP and 2 Stress.

", "chatDisplay": true, "actionType": "action", "cost": [ { - "key": "fear", - "itemId": null, - "value": 1, "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false }, { - "key": "resource", - "itemId": "UsC0vtOBbf9Kut4v", - "value": 1, "scalable": false, + "key": "UsC0vtOBbf9Kut4v", + "value": 1, + "keyIsID": true, "step": null, "consumeOnSuccess": false } @@ -486,8 +506,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -498,7 +517,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1754055703816, + "modifiedTime": 1755264604190, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!actors.items!ZNbQ2jg35LG4t9eH.UsC0vtOBbf9Kut4v" }, @@ -508,83 +535,12 @@ "_id": "oYNVPQOy5oQli5Il", "img": "icons/skills/melee/strike-weapons-orange.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Weaponmaster makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "jeKcXbdw8gPF4OQA": { - "type": "healing", - "_id": "jeKcXbdw8gPF4OQA", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -595,7 +551,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055804370, + "modifiedTime": 1754055820896, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!ZNbQ2jg35LG4t9eH.oYNVPQOy5oQli5Il" } diff --git a/src/packs/adversaries/adversary_Young_Dryad_8yUj2Mzvnifhxegm.json b/src/packs/adversaries/adversary_Young_Dryad_8yUj2Mzvnifhxegm.json index 446a4af3..8c89cd72 100644 --- a/src/packs/adversaries/adversary_Young_Dryad_8yUj2Mzvnifhxegm.json +++ b/src/packs/adversaries/adversary_Young_Dryad_8yUj2Mzvnifhxegm.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 83, - "artist": "" - }, - "size": "medium" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784374, + "modifiedTime": 1755264623824, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "8yUj2Mzvnifhxegm", "sort": 1600000, "ownership": { @@ -236,7 +241,7 @@ "type": "attack", "_id": "0VOUNQKNjwlLhnRW", "systemPath": "actions", - "description": "", + "description": "

Mark a Stress to spotlight 1d4 allies within range of a target they can attack without moving. On a success, their attacks deal half damage.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -244,6 +249,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -288,8 +294,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [], "folder": null, @@ -300,7 +305,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055838842, + "modifiedTime": 1754145187760, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8yUj2Mzvnifhxegm.lXhVuh31S2N4NVPG" }, @@ -317,7 +330,7 @@ "type": "effect", "_id": "cXOjhfMgKh2yD1mc", "systemPath": "actions", - "description": "", + "description": "

Spend a Fear to form a cage around a target within Very Close range and Restrain them until they’re freed with a successful Strength Roll. When a creature makes an action roll against the cage, they must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -325,6 +338,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -350,8 +364,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "effects": [ { @@ -383,12 +396,20 @@ "description": "

You are Restrained until you're freed with a successful Strength Roll. When a creature makes an action roll against the cage, they must mark a Stress.

", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754056038223, + "modifiedTime": 1754056077610, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!8yUj2Mzvnifhxegm.i8NoUGUTNY2C5NhC.k8LzBWRZo6VPqvpH" } @@ -401,7 +422,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055992231, + "modifiedTime": 1754145198821, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8yUj2Mzvnifhxegm.i8NoUGUTNY2C5NhC" }, @@ -411,83 +440,12 @@ "_id": "4f79icB7Dd1xLEZQ", "img": "icons/skills/melee/strike-weapons-orange.webp", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Dryad makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "9MGyAjWtLbDz8Znu": { - "type": "healing", - "_id": "9MGyAjWtLbDz8Znu", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -498,7 +456,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754056082977, + "modifiedTime": 1754056099954, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!8yUj2Mzvnifhxegm.4f79icB7Dd1xLEZQ" } diff --git a/src/packs/adversaries/adversary_Young_Ice_Dragon_UGPiPLJsPvMTSKEF.json b/src/packs/adversaries/adversary_Young_Ice_Dragon_UGPiPLJsPvMTSKEF.json index b0a3bded..48b1cd14 100644 --- a/src/packs/adversaries/adversary_Young_Ice_Dragon_UGPiPLJsPvMTSKEF.json +++ b/src/packs/adversaries/adversary_Young_Ice_Dragon_UGPiPLJsPvMTSKEF.json @@ -112,15 +112,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 96, - "artist": "" - }, - "size": "huge" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784374, + "modifiedTime": 1755266725295, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "UGPiPLJsPvMTSKEF", "sort": 3400000, "ownership": { @@ -227,42 +232,9 @@ "name": "Relentless (3)", "type": "feature", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to threeΒ times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Dragon can be spotlighted up to threeΒ times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "cmZsrUJa9FJ8gZKP": { - "type": "effect", - "_id": "cmZsrUJa9FJ8gZKP", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "2", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "originId": null }, @@ -277,7 +249,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131459641, + "modifiedTime": 1754131476300, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!UGPiPLJsPvMTSKEF.lsHoXHZ452axhyEr" }, @@ -285,14 +265,14 @@ "name": "Rend and Crush", "type": "feature", "system": { - "description": "

If a target damaged by the @Lookup[@name] doesn’t mark an Armor Slot to reduce the damage, they must mark a Stress.

", + "description": "

If a target damaged by the Dragon doesn’t mark an Armor Slot to reduce the damage, they must mark a Stress.

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

If a target damaged by the Dragon doesn’t mark an Armor Slot to reduce the damage, they must mark a Stress.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -355,7 +335,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131478290, + "modifiedTime": 1754131549587, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!UGPiPLJsPvMTSKEF.UHptE40G4tLBvKTN" }, @@ -363,7 +351,7 @@ "name": "No Hope", "type": "feature", "system": { - "description": "

When a PC rolls with Fear while within Far range of the @Lookup[@name], they lose a Hope.

", + "description": "

When a PC rolls with Fear while within Far range of the Dragon, they lose a Hope.

", "resource": null, "actions": {}, "originItemType": null, @@ -380,7 +368,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131553591, + "modifiedTime": 1754131580729, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!UGPiPLJsPvMTSKEF.JkazCieIEBNqytiy" }, @@ -388,14 +384,14 @@ "name": "Blizzard Breath", "type": "feature", "system": { - "description": "

Spend 2 Fear to release an icy whorl in front of the @Lookup[@name] within Close range. All targets in this area must make an Agility Reaction Roll. Targets who fail take 4d6+5 magic damage and are Restrained by ice until they break free with a successful Strength Roll. Targets who succeed must mark 2 Stress or take half damage.

@Template[type:inFront|range:c]

", + "description": "

Spend 2 Fear to release an icy whorl in front of the Dragon within Close range. All targets in this area must make an Agility Reaction Roll. Targets who fail take 4d6+5 magic damage and are Restrained by ice until they break free with a successful Strength Roll. Targets who succeed must mark 2 Stress or take half damage.

@Template[type:inFront|range:c]

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

Spend 2 Fear to release an icy whorl in front of the Dragon within Close range. All targets in this area must make an Agility Reaction Roll. Targets who fail take 4d6+5 magic damage and are Restrained by ice until they break free with a successful Strength Roll. Targets who succeed must mark 2 Stress or take half damage.

@Template[type:inFront|range:c]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -403,6 +399,7 @@ "scalable": false, "key": "fear", "value": 2, + "keyIsID": false, "step": null } ], @@ -478,8 +475,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "QV2ytK4b1VWF71OS", "img": "icons/magic/water/projectiles-ice-faceted-shard-salvo-blue.webp", @@ -518,7 +514,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131681871, + "modifiedTime": 1754131695646, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!UGPiPLJsPvMTSKEF.QV2ytK4b1VWF71OS.g9bUvmw3jet6T99e" } @@ -531,22 +535,30 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131582739, + "modifiedTime": 1754131681884, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!UGPiPLJsPvMTSKEF.QV2ytK4b1VWF71OS" }, { - "name": "Avalanche", + "name": "Avalance", "type": "feature", "system": { - "description": "

Spend a Fear to have the @Lookup[@name] unleash a huge downfall of snow and ice, covering all other creatures within Far range. All targets within this area must succeed on an Instinct Reaction Roll or be buried in snow and rocks, becoming Vulnerable until they dig themselves out from the debris. For each PC that fails the reaction roll, you gain a Fear.

@Template[type:emanation|range:f]

", + "description": "

Spend a Fear to have the Dragon unleash a huge downfall of snow and ice, covering all other creatures within Far range. All targets within this area must succeed on an Instinct Reaction Roll or be buried in snow and rocks, becoming Vulnerable until they dig themselves out from the debris. For each PC that fails the reaction roll, you gain a Fear.

@Template[type:emanation|range:f]

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

Spend a Fear to have the Dragon unleash a huge downfall of snow and ice, covering all other creatures within Far range. All targets within this area must succeed on an Instinct Reaction Roll or be buried in snow and rocks, becoming Vulnerable until they dig themselves out from the debris. For each PC that fails the reaction roll, you gain a Fear.

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -554,6 +566,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -602,8 +615,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "CcRTxCDCJskiu3fI", "img": "icons/magic/water/barrier-ice-wall-snow.webp", @@ -642,7 +654,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131790024, + "modifiedTime": 1754131815651, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!UGPiPLJsPvMTSKEF.CcRTxCDCJskiu3fI.40cFHuNdEvbUZ9rs" } @@ -655,7 +675,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131703390, + "modifiedTime": 1754131790034, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!UGPiPLJsPvMTSKEF.CcRTxCDCJskiu3fI" }, @@ -663,7 +691,7 @@ "name": "Frozen Scales", "type": "feature", "system": { - "description": "

When a creature makes a successful attack against the @Lookup[@name] from within Very Close range, they must mark a Stress and become Chilled until their next rest or they clear a Stress. While they are Chilled, they have disadvantage on attack rolls.

", + "description": "

When a creature makes a successful attack against the Dragon from within Very Close range, they must mark a Stress and become Chilled until their next rest or they clear a Stress. While they are Chilled, they have disadvantage on attack rolls.

", "resource": null, "actions": { "QZMpj1qEWI6Er7q2": { @@ -725,8 +753,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "nXZHOfcYvjg3YMNU", "img": "icons/commodities/leather/scales-blue.webp", @@ -770,7 +797,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131870508, + "modifiedTime": 1754131937311, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!UGPiPLJsPvMTSKEF.nXZHOfcYvjg3YMNU.1JlRxa07i8T1a9x6" } @@ -783,7 +818,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131821974, + "modifiedTime": 1754131911064, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!UGPiPLJsPvMTSKEF.nXZHOfcYvjg3YMNU" }, @@ -791,82 +834,11 @@ "name": "Momentum", "type": "feature", "system": { - "description": "

When the @Lookup[@name] makes a successful attack against a PC, you gain a Fear.

", + "description": "

When the Dragon makes a successful attack against a PC, you gain a Fear.

", "resource": null, - "actions": { - "5V5SDnUBg9dQOkLW": { - "type": "healing", - "_id": "5V5SDnUBg9dQOkLW", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "flat", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "fear", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - }, - "type": [] - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": null - }, - "effects": [], - "roll": { - "type": null, - "trait": null, - "difficulty": null, - "bonus": null, - "advState": "neutral", - "diceRolling": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "compare": null, - "treshold": null - }, - "useDefault": false - }, - "name": "Gain Fear", - "img": "icons/skills/melee/strike-weapons-orange.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "QHdJgT2fvwqquyf7", "img": "icons/skills/melee/strike-weapons-orange.webp", @@ -879,7 +851,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754131943438, + "modifiedTime": 1754131956104, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!UGPiPLJsPvMTSKEF.QHdJgT2fvwqquyf7" } diff --git a/src/packs/adversaries/adversary_Zombie_Legion_YhJrP7rTBiRdX5Fp.json b/src/packs/adversaries/adversary_Zombie_Legion_YhJrP7rTBiRdX5Fp.json index 1b2cce2a..ce880f7d 100644 --- a/src/packs/adversaries/adversary_Zombie_Legion_YhJrP7rTBiRdX5Fp.json +++ b/src/packs/adversaries/adversary_Zombie_Legion_YhJrP7rTBiRdX5Fp.json @@ -106,15 +106,20 @@ "img": "icons/creatures/tentacles/tentacles-octopus-black-pink.webp", "type": "attack", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 101, - "artist": "" - }, - "size": "huge" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784375, + "modifiedTime": 1755259462784, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "YhJrP7rTBiRdX5Fp", "sort": 1300000, "ownership": { @@ -221,7 +226,7 @@ "name": "Horde (2d6+5)", "type": "feature", "system": { - "description": "

When the @Lookup[@name] has marked half or more of their HP, their standard attack deals 2d6+5 physical damage instead.

", + "description": "

When the Legion has marked half or more of their HP, their standard attack deals 2d6+5 physical damage instead.

", "resource": null, "actions": {}, "originItemType": null, @@ -238,7 +243,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754132888419, + "modifiedTime": 1754132908676, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YhJrP7rTBiRdX5Fp.FYwMzXwULePzFyYJ" }, @@ -246,7 +259,7 @@ "name": "Unyielding", "type": "feature", "system": { - "description": "

The @Lookup[@name] has resistance to physical damage.

", + "description": "

The Legion has resistance to physical damage.

", "resource": null, "actions": {}, "originItemType": null, @@ -294,7 +307,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754132940804, + "modifiedTime": 1754132965456, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!YhJrP7rTBiRdX5Fp.o1qQhASA882Fn9HN.D1lCoe9WVr6vYuD9" } @@ -307,7 +328,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754132917153, + "modifiedTime": 1754132938367, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YhJrP7rTBiRdX5Fp.o1qQhASA882Fn9HN" }, @@ -315,42 +344,9 @@ "name": "Relentless (2)", "type": "feature", "system": { - "description": "

The @Lookup[@name] can be spotlighted up to twoΒ times per GM turn. Spend Fear as usual to spotlight them.

", + "description": "

The Legion can be spotlighted up to twoΒ times per GM turn. Spend Fear as usual to spotlight them.

", "resource": null, - "actions": { - "IACoLeO6VmnK0qkW": { - "type": "effect", - "_id": "IACoLeO6VmnK0qkW", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "passive", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": 0, - "max": "1", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Spotlight: Relentless", - "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, "originId": null }, @@ -365,7 +361,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754132968589, + "modifiedTime": 1754132983591, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YhJrP7rTBiRdX5Fp.fCYLZKeTn0YSpVDI" }, @@ -373,14 +377,14 @@ "name": "Overwhelm", "type": "feature", "system": { - "description": "

When the @Lookup[@name] takes Minor damage from an attack within Melee range, you can mark a Stress to make a standard attack with advantage against the attacker.

", + "description": "

When the Legion takes Minor damage from an attack within Melee range, you can mark a Stress to make a standard attack with advantage against the attacker.

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

When the Legion takes Minor damage from an attack within Melee range, you can mark a Stress to make a standard attack with advantage against the attacker.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -388,6 +392,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -407,8 +412,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "d5Vilu9cUub1O6TD", "img": "icons/skills/melee/strike-slashes-orange.webp", @@ -421,7 +425,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754132985193, + "modifiedTime": 1754133057137, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YhJrP7rTBiRdX5Fp.d5Vilu9cUub1O6TD" } @@ -454,7 +466,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754132798653, + "modifiedTime": 1754132798653, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.effects!YhJrP7rTBiRdX5Fp.9D6SteWlhbfMPhvt" } diff --git a/src/packs/adversaries/adversary_Zombie_Pack_Nf0v43rtflV56V2T.json b/src/packs/adversaries/adversary_Zombie_Pack_Nf0v43rtflV56V2T.json index 32519ac6..6f001b5c 100644 --- a/src/packs/adversaries/adversary_Zombie_Pack_Nf0v43rtflV56V2T.json +++ b/src/packs/adversaries/adversary_Zombie_Pack_Nf0v43rtflV56V2T.json @@ -106,15 +106,20 @@ "type": "attack", "range": "melee", "chatDisplay": false - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 84, - "artist": "" - }, - "size": "huge" + } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753922784375, + "modifiedTime": 1755264639582, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_id": "Nf0v43rtflV56V2T", "sort": 3100000, "ownership": { @@ -223,7 +228,7 @@ "_id": "nNJGAhWu0IuS2ybn", "img": "icons/creatures/magical/humanoid-silhouette-aliens-green.webp", "system": { - "description": "

When the @Lookup[@name] have marked half or more of their HP, their standard attack deals 1d4+2 physical damage instead.

", + "description": "

When the Zombies have marked half or more of their HP, their standard attack deals 1d4+2 physical damage instead.

", "resource": null, "actions": {}, "originItemType": null, @@ -239,7 +244,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754056157290, + "modifiedTime": 1754056175899, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!Nf0v43rtflV56V2T.nNJGAhWu0IuS2ybn" }, @@ -249,14 +262,14 @@ "_id": "jQmltra0ovHE33Nx", "img": "icons/magic/death/blood-corruption-vomit-red.webp", "system": { - "description": "

When the @Lookup[@name]s mark HP from an attack within Melee range, you can mark a Stress to make a standard attack against the attacker.

", + "description": "

When the Zombies mark HP from an attack within Melee range, you can mark a Stress to make a standard attack against the attacker.

", "resource": null, "actions": { "0Im5AEgp8gJaVJHh": { "type": "effect", "_id": "0Im5AEgp8gJaVJHh", "systemPath": "actions", - "description": "", + "description": "

When the Zombies mark HP from an attack within Melee range, you can mark a Stress to make a standard attack against the attacker.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -264,6 +277,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -284,8 +298,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "effects": [], "folder": null, @@ -296,7 +309,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754056184398, + "modifiedTime": 1754145211964, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!Nf0v43rtflV56V2T.jQmltra0ovHE33Nx" } @@ -329,7 +350,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754056113999, + "modifiedTime": 1754056113999, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.effects!Nf0v43rtflV56V2T.aWWZTlNS9zYoUay7" } diff --git a/src/packs/adversaries/folders_Tier_1_sxvlEwi25uAoB2C5.json b/src/packs/adversaries/folders_Tier_1_sxvlEwi25uAoB2C5.json index 3d1a0e49..8988fbbd 100644 --- a/src/packs/adversaries/folders_Tier_1_sxvlEwi25uAoB2C5.json +++ b/src/packs/adversaries/folders_Tier_1_sxvlEwi25uAoB2C5.json @@ -8,5 +8,13 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1" + }, "_key": "!folders!sxvlEwi25uAoB2C5" } diff --git a/src/packs/adversaries/folders_Tier_2_OgzrmfH1ZbpljX7k.json b/src/packs/adversaries/folders_Tier_2_OgzrmfH1ZbpljX7k.json index 4d2acd00..caa42284 100644 --- a/src/packs/adversaries/folders_Tier_2_OgzrmfH1ZbpljX7k.json +++ b/src/packs/adversaries/folders_Tier_2_OgzrmfH1ZbpljX7k.json @@ -8,5 +8,13 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1" + }, "_key": "!folders!OgzrmfH1ZbpljX7k" } diff --git a/src/packs/adversaries/folders_Tier_3_wTI7nZkPhKxl7Wwq.json b/src/packs/adversaries/folders_Tier_3_wTI7nZkPhKxl7Wwq.json index cc36ce68..78e05903 100644 --- a/src/packs/adversaries/folders_Tier_3_wTI7nZkPhKxl7Wwq.json +++ b/src/packs/adversaries/folders_Tier_3_wTI7nZkPhKxl7Wwq.json @@ -8,5 +8,13 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1" + }, "_key": "!folders!wTI7nZkPhKxl7Wwq" } diff --git a/src/packs/adversaries/folders_Tier_4_7XHlANCPz18yvl5L.json b/src/packs/adversaries/folders_Tier_4_7XHlANCPz18yvl5L.json index 2138e9ae..8baefd2a 100644 --- a/src/packs/adversaries/folders_Tier_4_7XHlANCPz18yvl5L.json +++ b/src/packs/adversaries/folders_Tier_4_7XHlANCPz18yvl5L.json @@ -8,5 +8,13 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1" + }, "_key": "!folders!7XHlANCPz18yvl5L" } diff --git a/src/packs/ancestries/ancestry_Clank_ed8BoLR4SHOpeV00.json b/src/packs/ancestries/ancestry_Clank_ed8BoLR4SHOpeV00.json index 1108fe2e..fe060a41 100644 --- a/src/packs/ancestries/ancestry_Clank_ed8BoLR4SHOpeV00.json +++ b/src/packs/ancestries/ancestry_Clank_ed8BoLR4SHOpeV00.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Clanks are sentient mechanical beings built from a variety of materials, including metal, wood, and stone. They can resemble humanoids, animals, or even inanimate objects. Like organic beings, their bodies come in a wide array of sizes. Because of their bespoke construction, many clanks have highly specialized physical configurations. Examples include clawed hands for grasping, wheels for movement, or built-in weaponry.

Many clanks embrace body modifications for style as well as function, and members of other ancestries often turn to clank artisans to construct customized mobility aids and physical adornments. Other ancestries can create clanks, even using their own physical characteristics as inspiration, but it’s also common for clanks to build one another. A clank’s lifespan extends as long as they’re able to acquire or craft new parts, making their physical form effectively immortal. That said, their minds are subject to the effects of time, and deteriorate as the magic that powers them loses potency.

ANCESTRY FEATURES

Purposeful Design: Decide who made you and for what purpose. At character creation, choose one of your Experiences that best aligns with this purpose and gain a permanent +1 bonus to it.

Efficient: When you take a short rest, you can choose a long rest move instead of a short rest move.

", + "description": "

Clanks are sentient mechanical beings built from a variety of materials, including metal, wood, and stone.

They can resemble humanoids, animals, or even inanimate objects. Like organic beings, their bodies come in a wide array of sizes. Because of their bespoke construction, many clanks have highly specialized physical configurations. Examples include clawed hands for grasping, wheels for movement, or built-in weaponry.

\n

Many clanks embrace body modifications for style as well as function, and members of other ancestries often turn to clank artisans to construct customized mobility aids and physical adornments. Other ancestries can create clanks, even using their own physical characteristics as inspiration, but it’s also common for clanks to build one another. A clank’s lifespan extends as long as they’re able to acquire or craft new parts, making their physical form effectively immortal. That said, their minds are subject to the effects of time, and deteriorate as the magic that powers them loses potency.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.2xlqKOkDxWHbuj4t" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 27, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784381, + "modifiedTime": 1753993914940, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "ed8BoLR4SHOpeV00", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Drakona_VLeOEqkLS0RbF0tB.json b/src/packs/ancestries/ancestry_Drakona_VLeOEqkLS0RbF0tB.json index 49229d1d..a3861a40 100644 --- a/src/packs/ancestries/ancestry_Drakona_VLeOEqkLS0RbF0tB.json +++ b/src/packs/ancestries/ancestry_Drakona_VLeOEqkLS0RbF0tB.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Drakona resemble wingless dragons in humanoid form and possess a powerful elemental breath. All drakona have thick scales that provide excellent natural armor against both attacks and the forces of nature. They are large in size, ranging from 5 feet to 7 feet on average, with long sharp teeth. New teeth grow throughout a Drakona’s approximately 350-year lifespan, so they are never in danger of permanently losing an incisor. Unlike their dragon ancestors, drakona don’t have wings and can’t fly without magical aid. Members of this ancestry pass down the element of their breath through generations, though in rare cases, a drakona’s elemental power will differ from the rest of their family’s.

ANCESTRY FEATURES

Scales: Your scales act as natural protection. When you would take Severe damage, you can mark a Stress to mark 1 fewer Hit Points.

Elemental Breath: Choose an element for your breath (such as electricity, fire, or ice). You can use this breath against a target or group of targets within Very Close range, treating it as an Instinct weapon that deals d8 magic damage using your Proficiency.

", + "description": "

Drakona resemble wingless dragons in humanoid form and possess a powerful elemental breath.

All drakona have thick scales that provide excellent natural armor against both attacks and the forces of nature. They are large in size, ranging from 5 feet to 7 feet on average, with long sharp teeth. New teeth grow throughout a Drakona’s approximately 350-year lifespan, so they are never in danger of permanently losing an incisor. Unlike their dragon ancestors, drakona don’t have wings and can’t fly without magical aid. Members of this ancestry pass down the element of their breath through generations, though in rare cases, a drakona’s elemental power will differ from the rest of their family’s.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.sRaE3CgkgjBF1UpV" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 27, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784382, + "modifiedTime": 1753994173339, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "VLeOEqkLS0RbF0tB", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Dwarf_pDt6fI6otv2E2odf.json b/src/packs/ancestries/ancestry_Dwarf_pDt6fI6otv2E2odf.json index 640ca729..8bdd2113 100644 --- a/src/packs/ancestries/ancestry_Dwarf_pDt6fI6otv2E2odf.json +++ b/src/packs/ancestries/ancestry_Dwarf_pDt6fI6otv2E2odf.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Dwarves are most easily recognized as short humanoids with square frames, dense musculature, and thick hair. Their average height ranges from 4 to 5 Β½ feet, and they are often broad in proportion to their stature. Their skin and nails contain a high amount of keratin, making them naturally resilient. This allows dwarves to embed gemstones into their bodies and decorate themselves with tattoos or piercings. Their hair grows thicklyβ€”usually on their heads, but some dwarves have thick hair across their bodies as well. Dwarves of all genders can grow facial hair, which they often style in elaborate arrangements. Typically, dwarves live up to 250 years of age, maintaining their muscle mass well into later life.

ANCESTRY FEATURES

Thick Skin: When you take Minor damage, you can mark 2 Stress instead of marking a Hit Point.

Increased Fortitude: Spend 3 Hope to halve incoming physical damage.

", + "description": "

Dwarves are most easily recognized as short humanoids with square frames, dense musculature, and thick hair.

Their average height ranges from 4 to 5 Β½ feet, and they are often broad in proportion to their stature. Their skin and nails contain a high amount of keratin, making them naturally resilient. This allows dwarves to embed gemstones into their bodies and decorate themselves with tattoos or piercings. Their hair grows thicklyβ€”usually on their heads, but some dwarves have thick hair across their bodies as well. Dwarves of all genders can grow facial hair, which they often style in elaborate arrangements. Typically, dwarves live up to 250 years of age, maintaining their muscle mass well into later life.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.0RN0baBxh95GT1cm" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 27, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784382, + "modifiedTime": 1753994478754, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "pDt6fI6otv2E2odf", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Elf_q2l6g3Ssa04K84GO.json b/src/packs/ancestries/ancestry_Elf_q2l6g3Ssa04K84GO.json index 32868972..84792663 100644 --- a/src/packs/ancestries/ancestry_Elf_q2l6g3Ssa04K84GO.json +++ b/src/packs/ancestries/ancestry_Elf_q2l6g3Ssa04K84GO.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Elves are typically tall humanoids with pointed ears and acutely attuned senses. Their ears vary in size and pointed shape, and as they age, the tips begin to droop. While elves come in a wide range of body types, they are all fairly tall, with heights ranging from about 6 to 6 Β½ feet. All elves have the ability to drop into a celestial trance, rather than sleep. This allows them to rest effectively in a short amount of time.

Some elves possess what is known as a β€œmystic form,” which occurs when an elf has dedicated themself to the study or protection of the natural world so deeply that their physical form changes. These characteristics can include celestial freckles, the presence of leaves, vines, or flowers in their hair, eyes that flicker like fire, and more. Sometimes these traits are inherited from parents, but if an elf changes their environment or magical focus, their appearance changes over time. Because elves live for about 350 years, these traits can shift more than once throughout their lifespan.

ANCESTRY FEATURES

Quick Reactions: Mark a Stress to gain advantage on a reaction roll.

Celestial Trance: During a rest, you can drop into a trance to choose an additional downtime move.

", + "description": "

Elves are typically tall humanoids with pointed ears and acutely attuned senses.

Their ears vary in size and pointed shape, and as they age, the tips begin to droop. While elves come in a wide range of body types, they are all fairly tall, with heights ranging from about 6 to 6 Β½ feet. All elves have the ability to drop into a celestial trance, rather than sleep. This allows them to rest effectively in a short amount of time.

\n

Some elves possess what is known as a β€œmystic form,” which occurs when an elf has dedicated themself to the study or protection of the natural world so deeply that their physical form changes. These characteristics can include celestial freckles, the presence of leaves, vines, or flowers in their hair, eyes that flicker like fire, and more. Sometimes these traits are inherited from parents, but if an elf changes their environment or magical focus, their appearance changes over time. Because elves live for about 350 years, these traits can shift more than once throughout their lifespan.

<

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.TfolXWFG2W2hx6sK" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 28, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784382, + "modifiedTime": 1753994623487, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "q2l6g3Ssa04K84GO", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Faerie_XzJVbb5NT9k79ykR.json b/src/packs/ancestries/ancestry_Faerie_XzJVbb5NT9k79ykR.json index 26e58162..250444de 100644 --- a/src/packs/ancestries/ancestry_Faerie_XzJVbb5NT9k79ykR.json +++ b/src/packs/ancestries/ancestry_Faerie_XzJVbb5NT9k79ykR.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Faeries are winged humanoid creatures with insectile features. These characteristics cover a broad spectrum from humanoid to insectoidβ€”some possess additional arms, compound eyes, lantern organs, chitinous exoskeletons, or stingers. Because of their close ties to the natural world, they also frequently possess attributes that allow them to blend in with various plants. The average height of a faerie ranges from about 2 feet to 5 feet, but some faeries grow up to 7 feet tall. All faeries possess membranous wings and they each go through a process of metamorphosis. The process and changes differ from faerie to faerie, but during this transformation each individual manifests the unique appearance they will carry throughout the rest of their approximately 50-year lifespan.

ANCESTRY FEATURE

Luckbender: Once per session, after you or a willing ally within Close range makes an action roll, you can spend 3 Hope to reroll the Duality Dice.

Wings: You can fly. While flying, you can mark a Stress after an adversary makes an attack against you to gain a +2 bonus to your Evasion against that attack.

", + "description": "

Faeries are winged humanoid creatures with insectile features.

These characteristics cover a broad spectrum from humanoid to insectoidβ€”some possess additional arms, compound eyes, lantern organs, chitinous exoskeletons, or stingers. Because of their close ties to the natural world, they also frequently possess attributes that allow them to blend in with various plants. The average height of a faerie ranges from about 2 feet to 5 feet, but some faeries grow up to 7 feet tall. All faeries possess membranous wings and they each go through a process of metamorphosis. The process and changes differ from faerie to faerie, but during this transformation each individual manifests the unique appearance they will carry throughout the rest of their approximately 50-year lifespan.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.WquAjoOcso8lwySW" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 28, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784383, + "modifiedTime": 1753994865178, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "XzJVbb5NT9k79ykR", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Faun_HaYhe6WqoXW5EbRl.json b/src/packs/ancestries/ancestry_Faun_HaYhe6WqoXW5EbRl.json index b4cf3c4a..628f4a6a 100644 --- a/src/packs/ancestries/ancestry_Faun_HaYhe6WqoXW5EbRl.json +++ b/src/packs/ancestries/ancestry_Faun_HaYhe6WqoXW5EbRl.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Fauns resemble humanoid goats with curving horns, square pupils, and cloven hooves. Though their appearances may vary, most fauns have a humanoid torso and a goatlike lower body covered in dense fur. Faun faces can be more caprine or more humanlike, and they have a wide variety of ear and horn shapes. Faun horns range from short with minimal curvature to much larger with a distinct curl. The average faun ranges from 4 feet to 6 Β½ feet tall, but their height can change dramatically from one moment to the next based on their stance. The majority of fauns have proportionately long limbs, no matter their size or shape, and are known for their ability to deliver powerful blows with their split hooves. Fauns live for roughly 225 years, and as they age, their appearance can become increasingly goatlike.

ANCESTRY FEATURES

Caprine Leap: You can leap anywhere within Close range as though you were using normal movement, allowing you to vault obstacles, jump across gaps, or scale barriers with ease.

Kick: When you succeed on an attack against a target within Melee range, you can mark a Stress to kick yourself off them, dealing an extra 2d6 damage and knocking back either yourself or the target to Very Close range.

", + "description": "

Fauns resemble humanoid goats with curving horns, square pupils, and cloven hooves.

Though their appearances may vary, most fauns have a humanoid torso and a goatlike lower body covered in dense fur. Faun faces can be more caprine or more humanlike, and they have a wide variety of ear and horn shapes. Faun horns range from short with minimal curvature to much larger with a distinct curl. The average faun ranges from 4 feet to 6 Β½ feet tall, but their height can change dramatically from one moment to the next based on their stance. The majority of fauns have proportionately long limbs, no matter their size or shape, and are known for their ability to deliver powerful blows with their split hooves. Fauns live for roughly 225 years, and as they age, their appearance can become increasingly goatlike.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.gpW19TfJk0WWFh1S" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 28, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784383, + "modifiedTime": 1753995403631, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "HaYhe6WqoXW5EbRl", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Firbolg_hzKmydI8sR3uk4CO.json b/src/packs/ancestries/ancestry_Firbolg_hzKmydI8sR3uk4CO.json index 0722517e..07cc9996 100644 --- a/src/packs/ancestries/ancestry_Firbolg_hzKmydI8sR3uk4CO.json +++ b/src/packs/ancestries/ancestry_Firbolg_hzKmydI8sR3uk4CO.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Firbolgs are bovine humanoids typically recognized by their broad noses and long, drooping ears. Some have faces that are a blend of humanoid and bison, ox, cow, or other bovine creatures. Others, often referred to as minotaurs, have heads that entirely resemble cattle. They are tall and muscular creatures, with heights ranging from around 5 feet to 7 feet, and possess remarkable strength no matter their age. Some firbolgs are known to use this strength to charge their adversaries, an action that is particuarly effective for those who have one of the many varieties of horn styles commonly found in this ancestry. Though their unique characteristics can vary, all firbolgs are covered in fur, which can be muted and earth-toned in color, or come in a variety of pastels, such as soft pinks and blues. On average, firbolgs live for about 150 years.

ANCESTRY FEATURES

Charge: When you succeed on an Agility Roll to move from Far or Very Far range into Melee range with one or more targets, you can mark a Stress to deal 1d12 physical damage to all targets within Melee range.

Unshakable: When you would mark a Stress, roll a d6. On a result of 6, don’t mark it.

", + "description": "

Firbolgs are bovine humanoids typically recognized by their broad noses and long, drooping ears.

Some have faces that are a blend of humanoid and bison, ox, cow, or other bovine creatures. Others, often referred to as minotaurs, have heads that entirely resemble cattle. They are tall and muscular creatures, with heights ranging from around 5 feet to 7 feet, and possess remarkable strength no matter their age. Some firbolgs are known to use this strength to charge their adversaries, an action that is particuarly effective for those who have one of the many varieties of horn styles commonly found in this ancestry. Though their unique characteristics can vary, all firbolgs are covered in fur, which can be muted and earth-toned in color, or come in a variety of pastels, such as soft pinks and blues. On average, firbolgs live for about 150 years.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.G5pE8FW94V1W9jJx" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 28, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784384, + "modifiedTime": 1753995720164, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "hzKmydI8sR3uk4CO", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Fungril_J1hX7nBBc5jQiHli.json b/src/packs/ancestries/ancestry_Fungril_J1hX7nBBc5jQiHli.json index 75e52c8c..06146d9c 100644 --- a/src/packs/ancestries/ancestry_Fungril_J1hX7nBBc5jQiHli.json +++ b/src/packs/ancestries/ancestry_Fungril_J1hX7nBBc5jQiHli.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Fungril resemble humanoid mushrooms. They can be either more humanoid or more fungal in appearance, and they come in an assortment of colors, from earth tones to bright reds, yellows, purples, and blues. Fungril display an incredible variety of bodies, faces, and limbs, as there’s no single common shape among them. Even their heights range from a tiny 2 feet tall to a staggering 7 feet tall. While the common lifespan of a fungril is about 300 years, some have been reported to live much longer. They can communicate nonverbally, and many members of this ancestry use a mycelial array to chemically exchange information with other fungril across long distances.

ANCESTRY FEATURES

Fungril Network: Make an Instinct Roll (12) to use your mycelial array to speak with others of your ancestry. On a success, you can communicate across any distance.

Death Connection: While touching a corpse that died recently, you can mark a Stress to extract one memory from the corpse related to a specific emotion or sensation of your choice.

", + "description": "

Fungril resemble humanoid mushrooms.

They can be either more humanoid or more fungal in appearance, and they come in an assortment of colors, from earth tones to bright reds, yellows, purples, and blues. Fungril display an incredible variety of bodies, faces, and limbs, as there’s no single common shape among them. Even their heights range from a tiny 2 feet tall to a staggering 7 feet tall. While the common lifespan of a fungril is about 300 years, some have been reported to live much longer. They can communicate nonverbally, and many members of this ancestry use a mycelial array to chemically exchange information with other fungril across long distances.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.WuwXH2r2uM9sDJtj" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784385, + "modifiedTime": 1753996282858, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "J1hX7nBBc5jQiHli", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Galapa_eZNG5Iv0yfbHs5CO.json b/src/packs/ancestries/ancestry_Galapa_eZNG5Iv0yfbHs5CO.json index b15fed89..5d6ca0ae 100644 --- a/src/packs/ancestries/ancestry_Galapa_eZNG5Iv0yfbHs5CO.json +++ b/src/packs/ancestries/ancestry_Galapa_eZNG5Iv0yfbHs5CO.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Galapa resemble anthropomorphic turtles with large, domed shells into which they can retract. On average, they range from 4 feet to 6 feet in height, and their head and body shapes can resemble any type of turtle. Galapa come in a variety of earth tonesβ€”most often shades of green and brownβ€” and possess unique patterns on their shells. Members of this ancestry can draw their head, arms, and legs into their shell for protection to use it as a natural shield when defensive measures are needed. Some supplement their shell's strength or appearance by attaching armor or carving unique designs, but the process is exceedingly painful. Most galapa move slowly no matter their age, and they can live approximately 150 years.

ANCESTRY FEATURES

Shell: Gain a bonus to your damage thresholds equal to your Proficiency.

Retract: Mark a Stress to retract into your shell. While in your shell, you have resistance to physical damage, you have disadvantage on action rolls, and you can’t move.

", + "description": "

Galapa resemble anthropomorphic turtles with large, domed shells into which they can retract.

On average, they range from 4 feet to 6 feet in height, and their head and body shapes can resemble any type of turtle. Galapa come in a variety of earth tonesβ€”most often shades of green and brownβ€” and possess unique patterns on their shells. Members of this ancestry can draw their head, arms, and legs into their shell for protection to use it as a natural shield when defensive measures are needed. Some supplement their shell's strength or appearance by attaching armor or carving unique designs, but the process is exceedingly painful. Most galapa move slowly no matter their age, and they can live approximately 150 years.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.UFR67BUOhNGLFyg9" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784385, + "modifiedTime": 1753996656622, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "eZNG5Iv0yfbHs5CO", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Giant_3U8CncG92a7ERIJ0.json b/src/packs/ancestries/ancestry_Giant_3U8CncG92a7ERIJ0.json index 2c0031dd..02b3fa63 100644 --- a/src/packs/ancestries/ancestry_Giant_3U8CncG92a7ERIJ0.json +++ b/src/packs/ancestries/ancestry_Giant_3U8CncG92a7ERIJ0.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Giants are towering humanoids with broad shoulders, long arms, and one to three eyes. Adult giants range from 6 Β½ to 8 Β½ feet tall and are naturally muscular, regardless of body type. They are easily recognized by their wide frames and elongated arms and necks. Though they can have up to three eyes, all giants are born with none and remain sightless for their first year of life. Until a giant reaches the age of 10 and their features fully develop, the formation of their eyes may fluctuate. Those with a single eye are commonly known as cyclops. The average giant lifespan is about 75 years.

ANCESTRY FEATURES

Endurance: Gain an additional Hit Point slot at character creation.

Reach: Treat any weapon, ability, spell, or other feature that has a Melee range as though it has a Very Close range instead.

", + "description": "

Giants are towering humanoids with broad shoulders, long arms, and one to three eyes.

Adult giants range from 6 Β½ to 8 Β½ feet tall and are naturally muscular, regardless of body type. They are easily recognized by their wide frames and elongated arms and necks. Though they can have up to three eyes, all giants are born with none and remain sightless for their first year of life. Until a giant reaches the age of 10 and their features fully develop, the formation of their eyes may fluctuate. Those with a single eye are commonly known as cyclops. The average giant lifespan is about 75 years.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.WRs2jvwM0STmkWIW" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784386, + "modifiedTime": 1753996849286, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "3U8CncG92a7ERIJ0", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Goblin_EKPEdIz9lA9grPqH.json b/src/packs/ancestries/ancestry_Goblin_EKPEdIz9lA9grPqH.json index 7b292343..0e1fb16e 100644 --- a/src/packs/ancestries/ancestry_Goblin_EKPEdIz9lA9grPqH.json +++ b/src/packs/ancestries/ancestry_Goblin_EKPEdIz9lA9grPqH.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Goblins are small humanoids easily recognizable by their large eyes and massive membranous ears. With keen hearing and sharp eyesight, they perceive details both at great distances and in darkness, allowing them to move through less-optimal environments with ease. Their skin and eye colors are incredibly varied, with no one hue, either vibrant or subdued, more dominant than another. A typical goblin stands between 3 feet and 4 feet tall, and each of their ears is about the size of their head. Goblins are known to use ear positions to very specific effect when communicating nonverbally. A goblin’s lifespan is roughly 100 years, and many maintain their keen hearing and sight well into advanced age.

ANCESTRY FEATURES

Surefooted: You ignore disadvantage on Agility Rolls.

Danger Sense: Once per rest, mark a Stress to force an adversary to reroll an attack against you or an ally within Very Close range.

", + "description": "

Goblins are small humanoids easily recognizable by their large eyes and massive membranous ears.

With keen hearing and sharp eyesight, they perceive details both at great distances and in darkness, allowing them to move through less-optimal environments with ease. Their skin and eye colors are incredibly varied, with no one hue, either vibrant or subdued, more dominant than another. A typical goblin stands between 3 feet and 4 feet tall, and each of their ears is about the size of their head. Goblins are known to use ear positions to very specific effect when communicating nonverbally. A goblin’s lifespan is roughly 100 years, and many maintain their keen hearing and sight well into advanced age.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.AXqcoxnRoWBbbKpK" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784386, + "modifiedTime": 1753997126174, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "EKPEdIz9lA9grPqH", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Halfling_CtL2jDjvPOJxNJKm.json b/src/packs/ancestries/ancestry_Halfling_CtL2jDjvPOJxNJKm.json index 4c694f1a..ea37196d 100644 --- a/src/packs/ancestries/ancestry_Halfling_CtL2jDjvPOJxNJKm.json +++ b/src/packs/ancestries/ancestry_Halfling_CtL2jDjvPOJxNJKm.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Halflings are small humanoids with large hairy feet and prominent rounded ears. On average, halflings are 3 to 4 feet in height, and their ears, nose, and feet are larger in proportion to the rest of their body. Members of this ancestry live for around 150 years, and a halfling’s appearance is likely to remain youthful even as they progress from adulthood into old age. Halflings are naturally attuned to the magnetic fields of the Mortal Realm, granting them a strong internal compass. They also possess acute senses of hearing and smell, and can often detect those who are familiar to them by the sound of their movements.

ANCESTRY FEATURES

Luckbringer: At the start of each session, everyone in your party gains a Hope.

Internal Compass: When you roll a 1 on your Hope Die, you can reroll it.

", + "description": "

Halflings are small humanoids with large hairy feet and prominent rounded ears.

On average, halflings are 3 to 4 feet in height, and their ears, nose, and feet are larger in proportion to the rest of their body. Members of this ancestry live for around 150 years, and a halfling’s appearance is likely to remain youthful even as they progress from adulthood into old age. Halflings are naturally attuned to the magnetic fields of the Mortal Realm, granting them a strong internal compass. They also possess acute senses of hearing and smell, and can often detect those who are familiar to them by the sound of their movements.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.e2Cu6exxtvfQzc1e" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784387, + "modifiedTime": 1753997257661, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "CtL2jDjvPOJxNJKm", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Human_wtJ5V5qRppLQn61n.json b/src/packs/ancestries/ancestry_Human_wtJ5V5qRppLQn61n.json index 553b2168..58310832 100644 --- a/src/packs/ancestries/ancestry_Human_wtJ5V5qRppLQn61n.json +++ b/src/packs/ancestries/ancestry_Human_wtJ5V5qRppLQn61n.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Humans are most easily recognized by their dexterous hands, rounded ears, and bodies built for endurance. Their average height ranges from just under 5 feet to about 6 Β½ feet. They have a wide variety of builds, with some being quite broad, others lithe, and many inhabiting the spectrum in between. Humans are physically adaptable and adjust to harsh climates with relative ease. In general, humans live to an age of about 100, with their bodies changing dramatically between their youngest and oldest years.

ANCESTRY FEATURES

High Stamina: Gain an additional Stress slot at character creation.

Adaptability: When you fail a roll that utilized one of your Experiences, you can mark a Stress to reroll.

", + "description": "

Humans are most easily recognized by their dexterous hands, rounded ears, and bodies built for endurance.

Their average height ranges from just under 5 feet to about 6 Β½ feet. They have a wide variety of builds, with some being quite broad, others lithe, and many inhabiting the spectrum in between. Humans are physically adaptable and adjust to harsh climates with relative ease. In general, humans live to an age of about 100, with their bodies changing dramatically between their youngest and oldest years.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.BNofV1UC4ZbdFTkb" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 30, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784388, + "modifiedTime": 1753997481487, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "wtJ5V5qRppLQn61n", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Infernis_hyxcuF2I0xcZSGkm.json b/src/packs/ancestries/ancestry_Infernis_hyxcuF2I0xcZSGkm.json index d5688721..67e95734 100644 --- a/src/packs/ancestries/ancestry_Infernis_hyxcuF2I0xcZSGkm.json +++ b/src/packs/ancestries/ancestry_Infernis_hyxcuF2I0xcZSGkm.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Infernis are humanoids who possess sharp canine teeth, pointed ears, and horns. They are the descendants of demons from the Circles Below. On average, infernis range in height from 5 feet to 7 feet and are known to have long fingers and pointed nails. Some have long, thin, and smooth tails that end in points, forks, or arrowheads. It’s common for infernis to have two or four hornsβ€”though some have crowns of many horns, or only one. These horns can also grow asymmetrically, forming unique, often curving, shapes that infernis enhance with carving and ornamentation. Their skin, hair, and horns come in an assortment of colors that can include soft pastels, stark tones, or vibrant hues, such as rosy scarlet, deep purple, and pitch black.

Infernis possess a β€œdread visage” that manifests both involuntarily, such as when they experience fear or other strong emotions, or purposefully, such as when they wish to intimidate an adversary. This visage can briefly modify their appearance in a variety of ways, including lengthening their teeth and nails, changing the colors of their eyes, twisting their horns, or enhancing their height. On average, infernis live up to 350 years, with some attributing this lifespan to their demonic lineage.

ANCESTRY FEATURES

Fearless: When you roll with Fear, you can mark 2 Stress to change it into a roll with Hope instead.

Dread Visage: You have advantage on rolls to intimidate hostile creatures.

", + "description": "

Infernis are humanoids who possess sharp canine teeth, pointed ears, and horns. They are the descendants of demons from the Circles Below.

On average, infernis range in height from 5 feet to 7 feet and are known to have long fingers and pointed nails. Some have long, thin, and smooth tails that end in points, forks, or arrowheads. It’s common for infernis to have two or four hornsβ€”though some have crowns of many horns, or only one. These horns can also grow asymmetrically, forming unique, often curving, shapes that infernis enhance with carving and ornamentation. Their skin, hair, and horns come in an assortment of colors that can include soft pastels, stark tones, or vibrant hues, such as rosy scarlet, deep purple, and pitch black.

\n

Infernis possess a β€œdread visage” that manifests both involuntarily, such as when they experience fear or other strong emotions, or purposefully, such as when they wish to intimidate an adversary. This visage can briefly modify their appearance in a variety of ways, including lengthening their teeth and nails, changing the colors of their eyes, twisting their horns, or enhancing their height. On average, infernis live up to 350 years, with some attributing this lifespan to their demonic lineage.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.i92lYjDhVB0LyPid" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 30, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784388, + "modifiedTime": 1754000194006, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "hyxcuF2I0xcZSGkm", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Katari_yyW0UM8srD9WuwW7.json b/src/packs/ancestries/ancestry_Katari_yyW0UM8srD9WuwW7.json index 7849f7ec..f3997143 100644 --- a/src/packs/ancestries/ancestry_Katari_yyW0UM8srD9WuwW7.json +++ b/src/packs/ancestries/ancestry_Katari_yyW0UM8srD9WuwW7.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Katari are feline humanoids with retractable claws, vertically slit pupils, and high, triangular ears. They can also have small, pointed canine teeth, soft fur, and long whiskers that assist their perception and navigation. Their ears can swivel nearly 180 degrees to detect sound, adding to their heightened senses. Katari may look more or less feline or humanoid, with catlike attributes in the form of hair, whiskers, and a muzzle. About half of the katari population have tails. Their skin and fur come in a wide range of hues and patterns, including solid colors, calico tones, tabby stripes, and an array of spots, patches, marbling, or bands. Their height ranges from about 3 feet to 6 Β½ feet, and they live to around 150 years.

ANCESTRY FEATURES

Feline Instincts: When you make an Agility Roll, you can spend 2 Hope to reroll your Hope Die.

Retracting Claws: Make an Agility Roll to scratch a target within Melee range. On a success, they become temporarily Vulnerable.

", + "description": "

Katari are feline humanoids with retractable claws, vertically slit pupils, and high, triangular ears.

They can also have small, pointed canine teeth, soft fur, and long whiskers that assist their perception and navigation. Their ears can swivel nearly 180 degrees to detect sound, adding to their heightened senses. Katari may look more or less feline or humanoid, with catlike attributes in the form of hair, whiskers, and a muzzle. About half of the katari population have tails. Their skin and fur come in a wide range of hues and patterns, including solid colors, calico tones, tabby stripes, and an array of spots, patches, marbling, or bands. Their height ranges from about 3 feet to 6 Β½ feet, and they live to around 150 years.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.Zj69cAeb3NjIa8Hn" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 30, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784388, + "modifiedTime": 1754000474970, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "yyW0UM8srD9WuwW7", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Orc_D1RbUsRV9HpTrPuF.json b/src/packs/ancestries/ancestry_Orc_D1RbUsRV9HpTrPuF.json index 264d3da3..0075cf94 100644 --- a/src/packs/ancestries/ancestry_Orc_D1RbUsRV9HpTrPuF.json +++ b/src/packs/ancestries/ancestry_Orc_D1RbUsRV9HpTrPuF.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Orcs are humanoids most easily recognized by their square features and boar-like tusks that protrude from their lower jaw. Tusks come in various sizes, and though they extend from the mouth, they aren’t used for consuming food. Instead, many orcs choose to decorate their tusks with significant ornamentation. Orcs typically live for 125 years, and unless altered, their tusks continue to grow throughout the course of their lives. Their ears are pointed, and their hair and skin typically have green, blue, pink, or gray tones. Orcs tend toward a muscular build, and their average height ranges from 5 feet to 6 Β½ feet.

ANCESTRY FEATURES

Sturdy: When you have 1 Hit Point remaining, attacks against you have disadvantage.

Tusks: When you succeed on an attack against a target within Melee range, you can spend a Hope to gore the target with your tusks, dealing an extra 1d6 damage.

", + "description": "

Orcs are humanoids most easily recognized by their square features and boar-like tusks that protrude from their lower jaw.

Tusks come in various sizes, and though they extend from the mouth, they aren’t used for consuming food. Instead, many orcs choose to decorate their tusks with significant ornamentation. Orcs typically live for 125 years, and unless altered, their tusks continue to grow throughout the course of their lives. Their ears are pointed, and their hair and skin typically have green, blue, pink, or gray tones. Orcs tend toward a muscular build, and their average height ranges from 5 feet to 6 Β½ feet.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.YhxD1ujZpftPu19w" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 30, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784389, + "modifiedTime": 1754000737849, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "D1RbUsRV9HpTrPuF", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Ribbet_HwOoBKXOL9Tf5j85.json b/src/packs/ancestries/ancestry_Ribbet_HwOoBKXOL9Tf5j85.json index 48400eaf..5624ba77 100644 --- a/src/packs/ancestries/ancestry_Ribbet_HwOoBKXOL9Tf5j85.json +++ b/src/packs/ancestries/ancestry_Ribbet_HwOoBKXOL9Tf5j85.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Ribbets resemble anthropomorphic frogs with protruding eyes and webbed hands and feet. They have smooth (though sometimes warty) moist skin and eyes positioned on either side of their head. Some ribbets have hind legs more than twice the length of their torso, while others have short limbs. No matter their size (which ranges from about 3 feet to 4 Β½ feet), ribbets primarily move by hopping. All ribbets have webbed appendages, allowing them to swim with ease. Some ribbets possess a natural green-and-brown camouflage, while others are vibrantly colored with bold patterns. No matter their appearance, all ribbets are born from eggs laid in the water, hatch into tadpoles, and after about 6 to 7 years, grow into amphibians that can move around on land. Ribbets live for approximately 100 years.

ANCESTRY FEATURES

Amphibious: You can breathe and move naturally underwater.

Long Tongue: You can use your long tongue to grab onto things within Close range. Mark a Stress to use your tongue as a Finesse Close weapon that deals d12 physical damage using your Proficiency.

", + "description": "

Ribbets resemble anthropomorphic frogs with protruding eyes and webbed hands and feet.

They have smooth (though sometimes warty) moist skin and eyes positioned on either side of their head. Some ribbets have hind legs more than twice the length of their torso, while others have short limbs. No matter their size (which ranges from about 3 feet to 4 Β½ feet), ribbets primarily move by hopping. All ribbets have webbed appendages, allowing them to swim with ease. Some ribbets possess a natural green-and-brown camouflage, while others are vibrantly colored with bold patterns. No matter their appearance, all ribbets are born from eggs laid in the water, hatch into tadpoles, and after about 6 to 7 years, grow into amphibians that can move around on land. Ribbets live for approximately 100 years.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.oWbdlh51ajn1Q5kL" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 31, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784389, + "modifiedTime": 1754000881040, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "HwOoBKXOL9Tf5j85", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/ancestry_Simiah_2yMLxxn7CHEvmShj.json b/src/packs/ancestries/ancestry_Simiah_2yMLxxn7CHEvmShj.json index d3f77f36..d09abcdd 100644 --- a/src/packs/ancestries/ancestry_Simiah_2yMLxxn7CHEvmShj.json +++ b/src/packs/ancestries/ancestry_Simiah_2yMLxxn7CHEvmShj.json @@ -4,7 +4,7 @@ "type": "ancestry", "folder": null, "system": { - "description": "

Simiah resemble anthropomorphic monkeys and apes with long limbs and prehensile feet. While their appearance reflects all simian creatures, from the largest gorilla to the smallest marmoset, their size does not align with their animal counterparts, and they can be anywhere from 2 to 6 feet tall. All simiah can use their dexterous feet for nonverbal communication, work, and combat. Additionally, some also have prehensile tails that can grasp objects or help with balance during difficult maneuvers. These traits grant members of this ancestry unique agility that aids them in a variety of physical tasks. In particular, simiah are skilled climbers and can easily transition from bipedal movement to knuckle-walking and climbing, and back again. On average, simiah live for about 100 years.

ANCESTRY FEATURES

Natural Climber: You have advantage on Agility Rolls that involve balancing and climbing.

Nimble: Gain a permanent +1 bonus to your Evasion at character creation.

", + "description": "

Simiah resemble anthropomorphic monkeys and apes with long limbs and prehensile feet.

While their appearance reflects all simian creatures, from the largest gorilla to the smallest marmoset, their size does not align with their animal counterparts, and they can be anywhere from 2 to 6 feet tall. All simiah can use their dexterous feet for nonverbal communication, work, and combat. Additionally, some also have prehensile tails that can grasp objects or help with balance during difficult maneuvers. These traits grant members of this ancestry unique agility that aids them in a variety of physical tasks. In particular, simiah are skilled climbers and can easily transition from bipedal movement to knuckle-walking and climbing, and back again. On average, simiah live for about 100 years.

", "features": [ { "type": "primary", @@ -14,14 +14,20 @@ "type": "secondary", "item": "Compendium.daggerheart.ancestries.Item.3lNqft3LmOlEIEkw" } - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 31, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784390, + "modifiedTime": 1754001185010, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "2yMLxxn7CHEvmShj", "sort": 3400000, "effects": [], diff --git a/src/packs/ancestries/feature_Adaptability_BNofV1UC4ZbdFTkb.json b/src/packs/ancestries/feature_Adaptability_BNofV1UC4ZbdFTkb.json index 119994f9..74d0396e 100644 --- a/src/packs/ancestries/feature_Adaptability_BNofV1UC4ZbdFTkb.json +++ b/src/packs/ancestries/feature_Adaptability_BNofV1UC4ZbdFTkb.json @@ -12,7 +12,7 @@ "type": "effect", "_id": "D7EE2L2Y96nfrfTW", "systemPath": "actions", - "description": "

When you fail a roll that utilized one of your Experiences, you can mark a Stress to reroll.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -40,12 +41,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 30, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -54,5 +50,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753997402776, + "modifiedTime": 1753997472141, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!BNofV1UC4ZbdFTkb" } diff --git a/src/packs/ancestries/feature_Amphibious_GVhmLouGq9GWCsN8.json b/src/packs/ancestries/feature_Amphibious_GVhmLouGq9GWCsN8.json index eda41284..fbc8de74 100644 --- a/src/packs/ancestries/feature_Amphibious_GVhmLouGq9GWCsN8.json +++ b/src/packs/ancestries/feature_Amphibious_GVhmLouGq9GWCsN8.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 31, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -24,5 +19,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754000764274, + "modifiedTime": 1754000778312, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!GVhmLouGq9GWCsN8" } diff --git a/src/packs/ancestries/feature_Caprine_Leap_nLL2zuDDDbbyxlrQ.json b/src/packs/ancestries/feature_Caprine_Leap_nLL2zuDDDbbyxlrQ.json index 5b0b3dec..db455164 100644 --- a/src/packs/ancestries/feature_Caprine_Leap_nLL2zuDDDbbyxlrQ.json +++ b/src/packs/ancestries/feature_Caprine_Leap_nLL2zuDDDbbyxlrQ.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 28, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -24,5 +19,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753995211408, + "modifiedTime": 1753995232467, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!nLL2zuDDDbbyxlrQ" } diff --git a/src/packs/ancestries/feature_Celestial_Trance_TfolXWFG2W2hx6sK.json b/src/packs/ancestries/feature_Celestial_Trance_TfolXWFG2W2hx6sK.json index 7cbe132e..e9a240ef 100644 --- a/src/packs/ancestries/feature_Celestial_Trance_TfolXWFG2W2hx6sK.json +++ b/src/packs/ancestries/feature_Celestial_Trance_TfolXWFG2W2hx6sK.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 28, - "artist": "" - } + "originId": null }, "effects": [ { @@ -55,7 +50,7 @@ "startRound": null, "startTurn": null }, - "description": "

During a rest, you can drop into a trance to choose an additional downtime move.

", + "description": "", "origin": null, "tint": "#ffffff", "transfer": true, @@ -63,7 +58,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753994586602, + "modifiedTime": 1753994613702, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!TfolXWFG2W2hx6sK.LqQvZJJLNMnFkt1D" } @@ -74,5 +77,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753994570602, + "modifiedTime": 1753994583518, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!TfolXWFG2W2hx6sK" } diff --git a/src/packs/ancestries/feature_Charge_AA2CZlJSWW8GPhrR.json b/src/packs/ancestries/feature_Charge_AA2CZlJSWW8GPhrR.json index f1f7ae35..319086a4 100644 --- a/src/packs/ancestries/feature_Charge_AA2CZlJSWW8GPhrR.json +++ b/src/packs/ancestries/feature_Charge_AA2CZlJSWW8GPhrR.json @@ -12,7 +12,7 @@ "type": "damage", "_id": "KLg0T6I1w24sfIbH", "systemPath": "actions", - "description": "

When you succeed on an Agility Roll to move from Far or Very Far range into Melee range with one or more targets, you can mark a Stress to deal 1d12 physical damage to all targets within Melee range.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -64,19 +65,14 @@ "amount": null }, "effects": [], - "name": "Deal Damage", + "name": "Damage", "img": "icons/magic/movement/trail-streak-impact-blue.webp", "range": "" } }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 28, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -85,5 +81,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753995559143, + "modifiedTime": 1753995629206, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!AA2CZlJSWW8GPhrR" } diff --git a/src/packs/ancestries/feature_Danger_Sense_AXqcoxnRoWBbbKpK.json b/src/packs/ancestries/feature_Danger_Sense_AXqcoxnRoWBbbKpK.json index 1e11f089..e8152918 100644 --- a/src/packs/ancestries/feature_Danger_Sense_AXqcoxnRoWBbbKpK.json +++ b/src/packs/ancestries/feature_Danger_Sense_AXqcoxnRoWBbbKpK.json @@ -12,7 +12,7 @@ "type": "effect", "_id": "V2K3pMWOCVwBUnjq", "systemPath": "actions", - "description": "

Once per rest, mark a Stress to force an adversary to reroll an attack against you or an ally within Very Close range.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -40,12 +41,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -54,5 +50,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753997061290, + "modifiedTime": 1754498245294, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!AXqcoxnRoWBbbKpK" } diff --git a/src/packs/ancestries/feature_Death_Connection_WuwXH2r2uM9sDJtj.json b/src/packs/ancestries/feature_Death_Connection_WuwXH2r2uM9sDJtj.json index 2aef31e4..cc2ba641 100644 --- a/src/packs/ancestries/feature_Death_Connection_WuwXH2r2uM9sDJtj.json +++ b/src/packs/ancestries/feature_Death_Connection_WuwXH2r2uM9sDJtj.json @@ -12,7 +12,7 @@ "type": "effect", "_id": "0RdKeWfbPRTHcAMf", "systemPath": "actions", - "description": "

While touching a corpse that died recently, you can mark a Stress to extract one memory from the corpse related to a specific emotion or sensation of your choice.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -40,12 +41,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -54,5 +50,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753996213198, + "modifiedTime": 1753996272048, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!WuwXH2r2uM9sDJtj" } diff --git a/src/packs/ancestries/feature_Dread_Visage_i92lYjDhVB0LyPid.json b/src/packs/ancestries/feature_Dread_Visage_i92lYjDhVB0LyPid.json index bbe35d19..23adb822 100644 --- a/src/packs/ancestries/feature_Dread_Visage_i92lYjDhVB0LyPid.json +++ b/src/packs/ancestries/feature_Dread_Visage_i92lYjDhVB0LyPid.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 30, - "artist": "" - } + "originId": null }, "effects": [ { @@ -35,7 +30,7 @@ { "key": "system.advantageSources", "mode": 2, - "value": "Dread Visage: Rolls to intimidate hostile creatures", + "value": "Rolls to intimidate hostile creatures", "priority": null } ], @@ -57,7 +52,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754000031619, + "modifiedTime": 1754000179466, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!i92lYjDhVB0LyPid.2Gd6iHQX521aAZqC" } @@ -68,5 +71,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753999985847, + "modifiedTime": 1754000026405, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!i92lYjDhVB0LyPid" } diff --git a/src/packs/ancestries/feature_Efficient_2xlqKOkDxWHbuj4t.json b/src/packs/ancestries/feature_Efficient_2xlqKOkDxWHbuj4t.json index 81f19a2f..5d946a88 100644 --- a/src/packs/ancestries/feature_Efficient_2xlqKOkDxWHbuj4t.json +++ b/src/packs/ancestries/feature_Efficient_2xlqKOkDxWHbuj4t.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 27, - "artist": "" - } + "originId": null }, "effects": [ { @@ -55,7 +50,7 @@ "startRound": null, "startTurn": null }, - "description": "

When you take a short rest, you can choose a long rest move instead of a short rest move.

", + "description": "

When you take a short rest, you can choose a long rest move instead of a short rest move.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -63,7 +58,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753993852553, + "modifiedTime": 1753993889097, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!2xlqKOkDxWHbuj4t.EEryWN2nE33ppGHi" } @@ -74,5 +77,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753993806761, + "modifiedTime": 1753993849345, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!2xlqKOkDxWHbuj4t" } diff --git a/src/packs/ancestries/feature_Elemental_Breath_sRaE3CgkgjBF1UpV.json b/src/packs/ancestries/feature_Elemental_Breath_sRaE3CgkgjBF1UpV.json index 71ac4438..9764c5b4 100644 --- a/src/packs/ancestries/feature_Elemental_Breath_sRaE3CgkgjBF1UpV.json +++ b/src/packs/ancestries/feature_Elemental_Breath_sRaE3CgkgjBF1UpV.json @@ -82,12 +82,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 27, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -96,5 +91,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1753994055921, + "modifiedTime": 1755938895948, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!sRaE3CgkgjBF1UpV" } diff --git a/src/packs/ancestries/feature_Endurance_tXWEMdLXafUSZTbK.json b/src/packs/ancestries/feature_Endurance_tXWEMdLXafUSZTbK.json index 3e64fece..1624957e 100644 --- a/src/packs/ancestries/feature_Endurance_tXWEMdLXafUSZTbK.json +++ b/src/packs/ancestries/feature_Endurance_tXWEMdLXafUSZTbK.json @@ -10,16 +10,11 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + "originId": null }, "effects": [ { - "name": "Endurance", + "name": "Base", "type": "base", "_id": "db8W2Q0Qty84XV0x", "img": "icons/magic/control/buff-strength-muscle-damage.webp", @@ -57,7 +52,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753996768847, + "modifiedTime": 1754310930764, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!tXWEMdLXafUSZTbK.db8W2Q0Qty84XV0x" } @@ -68,5 +71,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753996738047, + "modifiedTime": 1753996763700, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!tXWEMdLXafUSZTbK" } diff --git a/src/packs/ancestries/feature_Fearless_IlWvn5kCqCBMuUJn.json b/src/packs/ancestries/feature_Fearless_IlWvn5kCqCBMuUJn.json index 0b68ca81..bb8d790c 100644 --- a/src/packs/ancestries/feature_Fearless_IlWvn5kCqCBMuUJn.json +++ b/src/packs/ancestries/feature_Fearless_IlWvn5kCqCBMuUJn.json @@ -12,7 +12,7 @@ "type": "effect", "_id": "G1H7k5RdvS1EJgFu", "systemPath": "actions", - "description": "

When you roll with Fear, you can mark 2 Stress to change it into a roll with Hope instead.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 2, + "keyIsID": false, "step": null } ], @@ -40,12 +41,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 30, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -54,5 +50,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753999842518, + "modifiedTime": 1753999969945, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!IlWvn5kCqCBMuUJn" } diff --git a/src/packs/ancestries/feature_Feline_Instincts_lNgbbYnCKgrdvA85.json b/src/packs/ancestries/feature_Feline_Instincts_lNgbbYnCKgrdvA85.json index 08897662..c0547372 100644 --- a/src/packs/ancestries/feature_Feline_Instincts_lNgbbYnCKgrdvA85.json +++ b/src/packs/ancestries/feature_Feline_Instincts_lNgbbYnCKgrdvA85.json @@ -12,7 +12,7 @@ "type": "effect", "_id": "ALsGHOy0q5THGxz5", "systemPath": "actions", - "description": "

When you make an Agility Roll, you can spend 2 Hope to reroll your Hope Die.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -20,6 +20,7 @@ "scalable": false, "key": "hope", "value": 2, + "keyIsID": false, "step": null } ], @@ -40,12 +41,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 30, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -54,5 +50,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754000245487, + "modifiedTime": 1754000291789, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!lNgbbYnCKgrdvA85" } diff --git a/src/packs/ancestries/feature_Fungril_Network_9tmeXm623hl4Qnws.json b/src/packs/ancestries/feature_Fungril_Network_9tmeXm623hl4Qnws.json index 9d970a67..60a74cf4 100644 --- a/src/packs/ancestries/feature_Fungril_Network_9tmeXm623hl4Qnws.json +++ b/src/packs/ancestries/feature_Fungril_Network_9tmeXm623hl4Qnws.json @@ -12,7 +12,7 @@ "type": "attack", "_id": "ZYfigAyUdDUteczO", "systemPath": "actions", - "description": "

Make an Instinct Roll (12) to use your mycelial array to speak with others of your ancestry. On a success, you can communicate across any distance.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [], @@ -57,12 +57,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -71,5 +66,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753996087513, + "modifiedTime": 1753996189704, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!9tmeXm623hl4Qnws" } diff --git a/src/packs/ancestries/feature_High_Stamina_HMXNJZ7ynzajR2KT.json b/src/packs/ancestries/feature_High_Stamina_HMXNJZ7ynzajR2KT.json index 769bec96..81fd4b84 100644 --- a/src/packs/ancestries/feature_High_Stamina_HMXNJZ7ynzajR2KT.json +++ b/src/packs/ancestries/feature_High_Stamina_HMXNJZ7ynzajR2KT.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 30, - "artist": "" - } + "originId": null }, "effects": [ { @@ -57,7 +52,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753997348303, + "modifiedTime": 1754310946414, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!HMXNJZ7ynzajR2KT.Xl3TsKUJcl6vi1ly" } @@ -68,5 +71,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753997324366, + "modifiedTime": 1753997344417, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!HMXNJZ7ynzajR2KT" } diff --git a/src/packs/ancestries/feature_Increased_Fortitude_0RN0baBxh95GT1cm.json b/src/packs/ancestries/feature_Increased_Fortitude_0RN0baBxh95GT1cm.json index ef4f3c45..34de2d91 100644 --- a/src/packs/ancestries/feature_Increased_Fortitude_0RN0baBxh95GT1cm.json +++ b/src/packs/ancestries/feature_Increased_Fortitude_0RN0baBxh95GT1cm.json @@ -12,7 +12,7 @@ "type": "effect", "_id": "pFPbjyexOPx5gog6", "systemPath": "actions", - "description": "

Spend 3 Hope to halve incoming physical damage.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -20,6 +20,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null } ], @@ -40,12 +41,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 27, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -54,5 +50,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753994395837, + "modifiedTime": 1753994468110, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!0RN0baBxh95GT1cm" } diff --git a/src/packs/ancestries/feature_Internal_Compass_e2Cu6exxtvfQzc1e.json b/src/packs/ancestries/feature_Internal_Compass_e2Cu6exxtvfQzc1e.json index ac5692f9..00645109 100644 --- a/src/packs/ancestries/feature_Internal_Compass_e2Cu6exxtvfQzc1e.json +++ b/src/packs/ancestries/feature_Internal_Compass_e2Cu6exxtvfQzc1e.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -24,5 +19,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753997233606, + "modifiedTime": 1753997248375, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!e2Cu6exxtvfQzc1e" } diff --git a/src/packs/ancestries/feature_Kick_gpW19TfJk0WWFh1S.json b/src/packs/ancestries/feature_Kick_gpW19TfJk0WWFh1S.json index 89546ded..f9233e32 100644 --- a/src/packs/ancestries/feature_Kick_gpW19TfJk0WWFh1S.json +++ b/src/packs/ancestries/feature_Kick_gpW19TfJk0WWFh1S.json @@ -12,19 +12,10 @@ "type": "damage", "_id": "bXbQ57CB1Hfj5XrS", "systemPath": "actions", - "description": "

When you succeed on an attack against a target within Melee range, you can mark a Stress to kick yourself off them, dealing an extra 2d6 damage and knocking back either yourself or the target to Very Close range.

", + "description": "", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "stress", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -35,11 +26,11 @@ { "value": { "custom": { - "enabled": false, - "formula": "" + "enabled": true, + "formula": "2d6" }, - "multiplier": "flat", - "flatMultiplier": 2, + "multiplier": "prof", + "flatMultiplier": 1, "dice": "d6", "bonus": null }, @@ -53,8 +44,7 @@ "dice": "d6", "bonus": null, "custom": { - "enabled": false, - "formula": "" + "enabled": false } } } @@ -66,19 +56,14 @@ "amount": null }, "effects": [], - "name": "Deal Damage", + "name": "Damage", "img": "icons/skills/melee/shield-damaged-broken-gold.webp", "range": "melee" } }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 28, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -87,5 +72,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753995249173, + "modifiedTime": 1753995396728, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!gpW19TfJk0WWFh1S" } diff --git a/src/packs/ancestries/feature_Long_Tongue_oWbdlh51ajn1Q5kL.json b/src/packs/ancestries/feature_Long_Tongue_oWbdlh51ajn1Q5kL.json index aee64a9a..4c8cfc30 100644 --- a/src/packs/ancestries/feature_Long_Tongue_oWbdlh51ajn1Q5kL.json +++ b/src/packs/ancestries/feature_Long_Tongue_oWbdlh51ajn1Q5kL.json @@ -12,7 +12,7 @@ "type": "attack", "_id": "MhAWv7tuvkfOf7wQ", "systemPath": "actions", - "description": "

You can use your long tongue to grab onto things within Close range. Mark a Stress to use your tongue as a Finesse Close weapon that deals d12 physical damage using your Proficiency.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -82,19 +83,14 @@ "difficulty": null, "damageMod": "none" }, - "name": "Mark Stress", + "name": "Attack", "img": "icons/commodities/biological/tongue-violet.webp", "range": "close" } }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 31, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -103,5 +99,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754000791839, + "modifiedTime": 1754000854253, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!oWbdlh51ajn1Q5kL" } diff --git a/src/packs/ancestries/feature_Luckbender_U6iFjZgLYawlOlQZ.json b/src/packs/ancestries/feature_Luckbender_U6iFjZgLYawlOlQZ.json index d078c2c4..51b33024 100644 --- a/src/packs/ancestries/feature_Luckbender_U6iFjZgLYawlOlQZ.json +++ b/src/packs/ancestries/feature_Luckbender_U6iFjZgLYawlOlQZ.json @@ -12,7 +12,7 @@ "type": "effect", "_id": "l1wUmqMzG8YF9sqb", "systemPath": "actions", - "description": "

Once per session, after you or a willing ally within Close range makes an action roll, you can spend 3 Hope to reroll the Duality Dice.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -20,6 +20,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null } ], @@ -33,19 +34,14 @@ "type": "friendly", "amount": null }, - "name": "Spend Hope", + "name": "Use", "img": "icons/magic/control/buff-luck-fortune-green-gold.webp", "range": "close" } }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 28, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -54,5 +50,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753994658436, + "modifiedTime": 1754498186961, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!U6iFjZgLYawlOlQZ" } diff --git a/src/packs/ancestries/feature_Luckbringer_8O6SQQMxKWr430QA.json b/src/packs/ancestries/feature_Luckbringer_8O6SQQMxKWr430QA.json index 3c31d62d..01de5030 100644 --- a/src/packs/ancestries/feature_Luckbringer_8O6SQQMxKWr430QA.json +++ b/src/packs/ancestries/feature_Luckbringer_8O6SQQMxKWr430QA.json @@ -12,7 +12,7 @@ "type": "healing", "_id": "8sK3t73bFkpb999C", "systemPath": "actions", - "description": "

At the start of each session, everyone in your party gains a Hope.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [], @@ -78,12 +78,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -92,5 +87,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753997164653, + "modifiedTime": 1753997217376, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!8O6SQQMxKWr430QA" } diff --git a/src/packs/ancestries/feature_Natural_Climber_soQvPL0MrTLLcc31.json b/src/packs/ancestries/feature_Natural_Climber_soQvPL0MrTLLcc31.json index fd02b72f..9f36411f 100644 --- a/src/packs/ancestries/feature_Natural_Climber_soQvPL0MrTLLcc31.json +++ b/src/packs/ancestries/feature_Natural_Climber_soQvPL0MrTLLcc31.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 31, - "artist": "" - } + "originId": null }, "effects": [ { @@ -57,7 +52,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754001083828, + "modifiedTime": 1754001113548, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!soQvPL0MrTLLcc31.HQeQH9gUfrjlWWcg" } @@ -68,5 +71,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754001064223, + "modifiedTime": 1754001078029, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!soQvPL0MrTLLcc31" } diff --git a/src/packs/ancestries/feature_Nimble_3lNqft3LmOlEIEkw.json b/src/packs/ancestries/feature_Nimble_3lNqft3LmOlEIEkw.json index d56ab3ac..d3539a9f 100644 --- a/src/packs/ancestries/feature_Nimble_3lNqft3LmOlEIEkw.json +++ b/src/packs/ancestries/feature_Nimble_3lNqft3LmOlEIEkw.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 31, - "artist": "" - } + "originId": null }, "effects": [ { @@ -57,7 +52,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754001151008, + "modifiedTime": 1754001176435, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!3lNqft3LmOlEIEkw.zaxVYqKzUYDJ3SDq" } @@ -68,5 +71,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754001125989, + "modifiedTime": 1754001147782, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!3lNqft3LmOlEIEkw" } diff --git a/src/packs/ancestries/feature_Purposeful_Design_g6I4tRUQNgL4vZ6H.json b/src/packs/ancestries/feature_Purposeful_Design_g6I4tRUQNgL4vZ6H.json index 694de385..d805e240 100644 --- a/src/packs/ancestries/feature_Purposeful_Design_g6I4tRUQNgL4vZ6H.json +++ b/src/packs/ancestries/feature_Purposeful_Design_g6I4tRUQNgL4vZ6H.json @@ -5,17 +5,12 @@ "_id": "g6I4tRUQNgL4vZ6H", "img": "icons/tools/scribal/lens-blue.webp", "system": { - "description": "

Note: Automation not implemented for permanent bonus. Manually increase the experience in the respective editing field.


Decide who made you and for what purpose. At character creation, choose one of your Experiences that best aligns with this purpose and gain a permanent +1 bonus to it.

", + "description": "

Decide who made you and for what purpose. At character creation, choose one of your Experiences that best aligns with this purpose and gain a permanent +1 bonus to it.

", "resource": null, "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 27, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -24,5 +19,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753993755899, + "modifiedTime": 1753993791943, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!g6I4tRUQNgL4vZ6H" } diff --git a/src/packs/ancestries/feature_Quick_Reactions_0NSPSuB8KSEYTJIP.json b/src/packs/ancestries/feature_Quick_Reactions_0NSPSuB8KSEYTJIP.json index 9f3bef07..87c6ec96 100644 --- a/src/packs/ancestries/feature_Quick_Reactions_0NSPSuB8KSEYTJIP.json +++ b/src/packs/ancestries/feature_Quick_Reactions_0NSPSuB8KSEYTJIP.json @@ -12,7 +12,7 @@ "type": "effect", "_id": "6Av1Y8JXWDkteLhc", "systemPath": "actions", - "description": "

Mark a Stress to gain advantage on a reaction roll.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -40,12 +41,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 28, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -54,5 +50,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753994522468, + "modifiedTime": 1753994554455, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!0NSPSuB8KSEYTJIP" } diff --git a/src/packs/ancestries/feature_Reach_WRs2jvwM0STmkWIW.json b/src/packs/ancestries/feature_Reach_WRs2jvwM0STmkWIW.json index 86b9a10b..b6c974d0 100644 --- a/src/packs/ancestries/feature_Reach_WRs2jvwM0STmkWIW.json +++ b/src/packs/ancestries/feature_Reach_WRs2jvwM0STmkWIW.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -24,5 +19,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753996802591, + "modifiedTime": 1753996830453, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!WRs2jvwM0STmkWIW" } diff --git a/src/packs/ancestries/feature_Retract_UFR67BUOhNGLFyg9.json b/src/packs/ancestries/feature_Retract_UFR67BUOhNGLFyg9.json index b17cd7da..356f9283 100644 --- a/src/packs/ancestries/feature_Retract_UFR67BUOhNGLFyg9.json +++ b/src/packs/ancestries/feature_Retract_UFR67BUOhNGLFyg9.json @@ -5,7 +5,7 @@ "_id": "UFR67BUOhNGLFyg9", "img": "icons/magic/defensive/shield-barrier-flaming-diamond-teal.webp", "system": { - "description": "

Mark a Stress to retract into your shell. While in your shell, you have resistance to physical damage, you have disadvantage on action rolls, and you can’t move.

(When marked, manually enable the Retract effect to Active in effects tab and mark disadvantage when doing any action rolls. Manually disable the Retract effect to Inactive in the effects tab when no longer retracted into your shell.)

", + "description": "

Mark a Stress to retract into your shell. While in your shell, you have resistance to physical damage, you have disadvantage on action rolls, and you can’t move.

", "resource": null, "actions": { "HfiAg14hrYt7Yvnj": { @@ -15,53 +15,32 @@ "description": "", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "stress", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", "recovery": null }, - "effects": [ - { - "_id": "3V4FPoyjJUnFP9WS", - "onSave": false - } - ], + "effects": [], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Mark Stress", "img": "icons/magic/defensive/shield-barrier-flaming-diamond-teal.webp", - "range": "self" + "range": "" } }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + "originId": null }, "effects": [ { - "name": "Retract", - "img": "icons/magic/defensive/shield-barrier-flaming-diamond-teal.webp", - "origin": "Compendium.daggerheart.ancestries.Item.UFR67BUOhNGLFyg9", - "transfer": true, - "_id": "3V4FPoyjJUnFP9WS", + "name": "Base", "type": "base", + "_id": "KoHQg8KurugHlga0", + "img": "icons/magic/defensive/shield-barrier-flaming-diamond-teal.webp", "system": { "rangeDependence": { "enabled": false, @@ -80,7 +59,7 @@ { "key": "system.disadvantageSources", "mode": 2, - "value": "Retract", + "value": "Action Rolls", "priority": null } ], @@ -94,15 +73,25 @@ "startRound": null, "startTurn": null }, - "description": "

While in your shell, you have resistance to physical damage, you have disadvantage on action rolls, and you can’t move.

", + "description": "

While in your shell, you have resistance to physical damage, you have disadvantage on action rolls, and you can’t move.

", + "origin": null, "tint": "#ffffff", + "transfer": true, "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753996568678, + "modifiedTime": 1753996633306, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!UFR67BUOhNGLFyg9.3V4FPoyjJUnFP9WS" + "_key": "!items.effects!UFR67BUOhNGLFyg9.KoHQg8KurugHlga0" } ], "sort": 0, @@ -111,5 +100,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753996513763, + "modifiedTime": 1753996553192, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!UFR67BUOhNGLFyg9" } diff --git a/src/packs/ancestries/feature_Retracting_Claws_Zj69cAeb3NjIa8Hn.json b/src/packs/ancestries/feature_Retracting_Claws_Zj69cAeb3NjIa8Hn.json index 8e408ec6..01e909bb 100644 --- a/src/packs/ancestries/feature_Retracting_Claws_Zj69cAeb3NjIa8Hn.json +++ b/src/packs/ancestries/feature_Retracting_Claws_Zj69cAeb3NjIa8Hn.json @@ -12,7 +12,7 @@ "type": "attack", "_id": "LcFhDb3sJk8sraAc", "systemPath": "actions", - "description": "

Make an Agility Roll to scratch a target within Melee range. On a success, they become temporarily Vulnerable.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [], @@ -62,12 +62,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 30, - "artist": "" - } + "originId": null }, "effects": [ { @@ -104,7 +99,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754000434939, + "modifiedTime": 1754000461912, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!Zj69cAeb3NjIa8Hn.pO76svFkmWmZ6LjC" } @@ -115,5 +118,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754000306620, + "modifiedTime": 1754000434953, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!Zj69cAeb3NjIa8Hn" } diff --git a/src/packs/ancestries/feature_Scales_u8ZhV962rNmUlzkp.json b/src/packs/ancestries/feature_Scales_u8ZhV962rNmUlzkp.json index fbf63533..3b23d6b7 100644 --- a/src/packs/ancestries/feature_Scales_u8ZhV962rNmUlzkp.json +++ b/src/packs/ancestries/feature_Scales_u8ZhV962rNmUlzkp.json @@ -10,16 +10,11 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 27, - "artist": "" - } + "originId": null }, "effects": [ { - "name": "Scales", + "name": "Base", "type": "base", "_id": "b6Pkwwk7pgBeeUTe", "img": "icons/commodities/leather/scales-brown.webp", @@ -49,7 +44,7 @@ "startRound": null, "startTurn": null }, - "description": "

When you would take Severe damage, you can mark a Stress to mark 1 fewer Hit Points.

", + "description": "

When you would take Severe damage, you can mark a Stress to mark 1 fewer Hit Points.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -57,7 +52,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753993993682, + "modifiedTime": 1753994027257, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!u8ZhV962rNmUlzkp.b6Pkwwk7pgBeeUTe" } @@ -68,5 +71,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753993962796, + "modifiedTime": 1753993988373, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!u8ZhV962rNmUlzkp" } diff --git a/src/packs/ancestries/feature_Shell_A6a87OWA3tx16g9V.json b/src/packs/ancestries/feature_Shell_A6a87OWA3tx16g9V.json index f07fff69..65352d25 100644 --- a/src/packs/ancestries/feature_Shell_A6a87OWA3tx16g9V.json +++ b/src/packs/ancestries/feature_Shell_A6a87OWA3tx16g9V.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + "originId": null }, "effects": [ { @@ -36,13 +31,13 @@ "key": "system.damageThresholds.major", "mode": 2, "value": "@prof", - "priority": 21 + "priority": null }, { "key": "system.damageThresholds.severe", "mode": 2, "value": "@prof", - "priority": 21 + "priority": null } ], "disabled": false, @@ -63,7 +58,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753996434947, + "modifiedTime": 1753996492623, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!A6a87OWA3tx16g9V.41uiZKXzSSomf9YD" } @@ -74,5 +77,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753996421284, + "modifiedTime": 1753996433164, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!A6a87OWA3tx16g9V" } diff --git a/src/packs/ancestries/feature_Sturdy_60o3cKUZzxO9EDQF.json b/src/packs/ancestries/feature_Sturdy_60o3cKUZzxO9EDQF.json index b7fe7bf5..61ff446d 100644 --- a/src/packs/ancestries/feature_Sturdy_60o3cKUZzxO9EDQF.json +++ b/src/packs/ancestries/feature_Sturdy_60o3cKUZzxO9EDQF.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 30, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -24,5 +19,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754000559764, + "modifiedTime": 1754000590019, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!60o3cKUZzxO9EDQF" } diff --git a/src/packs/ancestries/feature_Surefooted_YsJticxv8OFndd4D.json b/src/packs/ancestries/feature_Surefooted_YsJticxv8OFndd4D.json index 35518f89..cc0fd804 100644 --- a/src/packs/ancestries/feature_Surefooted_YsJticxv8OFndd4D.json +++ b/src/packs/ancestries/feature_Surefooted_YsJticxv8OFndd4D.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 29, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -24,5 +19,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753997026520, + "modifiedTime": 1753997047297, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!YsJticxv8OFndd4D" } diff --git a/src/packs/ancestries/feature_Thick_Skin_S0Ww7pYOSREt8qKg.json b/src/packs/ancestries/feature_Thick_Skin_S0Ww7pYOSREt8qKg.json index 7bc10752..6b8aa900 100644 --- a/src/packs/ancestries/feature_Thick_Skin_S0Ww7pYOSREt8qKg.json +++ b/src/packs/ancestries/feature_Thick_Skin_S0Ww7pYOSREt8qKg.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 27, - "artist": "" - } + "originId": null }, "effects": [ { @@ -49,7 +44,7 @@ "startRound": null, "startTurn": null }, - "description": "

When you take Minor damage, you can mark 2 Stress instead of marking a Hit Point.

", + "description": "

When you take Minor damage, you can mark 2 Stress instead of marking a Hit Point.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -57,7 +52,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753994342724, + "modifiedTime": 1753994373197, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!S0Ww7pYOSREt8qKg.4Lc40mNnRInTKMC5" } @@ -68,5 +71,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753994247261, + "modifiedTime": 1753994338239, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!S0Ww7pYOSREt8qKg" } diff --git a/src/packs/ancestries/feature_Tusks_YhxD1ujZpftPu19w.json b/src/packs/ancestries/feature_Tusks_YhxD1ujZpftPu19w.json index 5bd72773..4078ca03 100644 --- a/src/packs/ancestries/feature_Tusks_YhxD1ujZpftPu19w.json +++ b/src/packs/ancestries/feature_Tusks_YhxD1ujZpftPu19w.json @@ -8,77 +8,40 @@ "description": "

When you succeed on an attack against a target within Melee range, you can spend a Hope to gore the target with your tusks, dealing an extra 1d6 damage.

", "resource": null, "actions": { - "ytSFDCONRi5L4THz": { - "type": "damage", - "_id": "ytSFDCONRi5L4THz", + "1n4ZsA6s2iBAL1tG": { + "type": "effect", + "_id": "1n4ZsA6s2iBAL1tG", "systemPath": "actions", - "description": "

When you succeed on an attack against a target within Melee range, you can spend a Hope to gore the target with your tusks, dealing an extra 1d6 damage.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "step": null } ], "uses": { "value": null, "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "damage": { - "parts": [ - { - "value": { - "custom": { - "enabled": false, - "formula": "" - }, - "multiplier": "flat", - "dice": "d6", - "bonus": null, - "flatMultiplier": 1 - }, - "applyTo": "hitPoints", - "type": [], - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false, - "formula": "" - } - } - } - ], - "includeBase": false - }, - "target": { - "type": "any", - "amount": 1 + "recovery": null }, "effects": [], + "target": { + "type": "self", + "amount": null + }, "name": "Spend Hope", "img": "icons/creatures/abilities/fang-tooth-blood-red.webp", - "range": "melee" + "range": "" } }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 30, - "artist": "" - } + "originId": null }, "effects": [ { @@ -118,7 +81,7 @@ "startRound": null, "startTurn": null }, - "description": "

You gore the target with your tusks, dealing an extra 1d6 damage on this attack.

", + "description": "

You gore the target with your tusks, dealing an extra 1d6 damage on this attack.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -126,7 +89,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754000662388, + "modifiedTime": 1754000724393, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!YhxD1ujZpftPu19w.klEyAxQa5YHXVnrl" } @@ -137,5 +108,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754000611682, + "modifiedTime": 1754000658375, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!YhxD1ujZpftPu19w" } diff --git a/src/packs/ancestries/feature_Unshakeable_G5pE8FW94V1W9jJx.json b/src/packs/ancestries/feature_Unshakeable_G5pE8FW94V1W9jJx.json index 195b10e8..5d534a67 100644 --- a/src/packs/ancestries/feature_Unshakeable_G5pE8FW94V1W9jJx.json +++ b/src/packs/ancestries/feature_Unshakeable_G5pE8FW94V1W9jJx.json @@ -57,12 +57,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 28, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -71,5 +66,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753995651913, + "modifiedTime": 1753995700360, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!G5pE8FW94V1W9jJx" } diff --git a/src/packs/ancestries/feature_Wings_WquAjoOcso8lwySW.json b/src/packs/ancestries/feature_Wings_WquAjoOcso8lwySW.json index 9941432e..56ffaacc 100644 --- a/src/packs/ancestries/feature_Wings_WquAjoOcso8lwySW.json +++ b/src/packs/ancestries/feature_Wings_WquAjoOcso8lwySW.json @@ -12,7 +12,7 @@ "type": "effect", "_id": "dpKxkDSjXsP8kHMI", "systemPath": "actions", - "description": "

You can fly. While flying, you can mark a Stress after an adversary makes an attack against you to gain a +2 bonus to your Evasion against that attack.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -30,22 +31,17 @@ }, "effects": [], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Mark Stress", "img": "icons/creatures/abilities/wing-batlike-white-blue.webp", - "range": "self" + "range": "" } }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 28, - "artist": "" - } + "originId": null }, "effects": [ { @@ -79,7 +75,7 @@ "startRound": null, "startTurn": null }, - "description": "

You to gain a +2 bonus to your Evasion against the Adversary's attack.

", + "description": "

You to gain a +2 bonus to your Evasion against the Adversary's attack.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -87,7 +83,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753994808408, + "modifiedTime": 1753994856171, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!WquAjoOcso8lwySW.zD3xVdwkEQi2ivOn" } @@ -98,5 +102,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753994723305, + "modifiedTime": 1753994805028, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!WquAjoOcso8lwySW" } diff --git a/src/packs/ancestries/folders_Ancestry_Features_dSAccOl5ccgXPyje.json b/src/packs/ancestries/folders_Ancestry_Features_dSAccOl5ccgXPyje.json index 7ebaba52..789ccbe4 100644 --- a/src/packs/ancestries/folders_Ancestry_Features_dSAccOl5ccgXPyje.json +++ b/src/packs/ancestries/folders_Ancestry_Features_dSAccOl5ccgXPyje.json @@ -8,5 +8,16 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1752680699271, + "modifiedTime": 1752680699271, + "lastModifiedBy": "binNpU8lWev6geDj" + }, "_key": "!folders!dSAccOl5ccgXPyje" } diff --git a/src/packs/beastforms/beastform_Agile_Scout_a9UoCwtrbgKk02mK.json b/src/packs/beastforms/beastform_Agile_Scout_a9UoCwtrbgKk02mK.json index 71018bc9..9ce4cea5 100644 --- a/src/packs/beastforms/beastform_Agile_Scout_a9UoCwtrbgKk02mK.json +++ b/src/packs/beastforms/beastform_Agile_Scout_a9UoCwtrbgKk02mK.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 1, - "tokenImg": "icons/creatures/mammals/rodent-rat-diseaed-gray.webp", - "tokenRingImg": "icons/creatures/mammals/rodent-rat-diseaed-gray.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "tiny" + "width": null }, "mainTrait": "agility", "advantageOn": { @@ -37,12 +36,7 @@ "advantages": 2, "features": 2 }, - "examples": "Fox, Mouse, Weasel, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 12, - "artist": "" - } + "examples": "Fox, Mouse, Weasel, etc." }, "effects": [ { @@ -104,7 +98,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753637028054 }, "_key": "!items.effects!a9UoCwtrbgKk02mK.ehfx2SUKMiM6f5Pd" } @@ -115,6 +116,17 @@ "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 index 5287de84..75c747ab 100644 --- a/src/packs/beastforms/beastform_Aquatic_Predator_ItBVeCl2u5uetgy7.json +++ b/src/packs/beastforms/beastform_Aquatic_Predator_ItBVeCl2u5uetgy7.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 3, - "tokenImg": "icons/creatures/fish/fish-marlin-swordfight-blue.webp", - "tokenRingImg": "icons/creatures/fish/fish-marlin-swordfight-blue.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "large" + "width": null }, "mainTrait": "agility", "advantageOn": { @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Dolphin, Orca, Shark, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "examples": "Dolphin, Orca, Shark, etc." }, "effects": [ { @@ -109,7 +103,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636850470 }, "_key": "!items.effects!ItBVeCl2u5uetgy7.7OTbmhQNtKhRAl59" } @@ -120,6 +121,17 @@ "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 index 95bea914..4b5c792c 100644 --- a/src/packs/beastforms/beastform_Aquatic_Scout_qqzdFCxyYupWZK23.json +++ b/src/packs/beastforms/beastform_Aquatic_Scout_qqzdFCxyYupWZK23.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 1, - "tokenImg": "icons/creatures/tentacles/tentacles-octopus-black-pink.webp", - "tokenRingImg": "icons/creatures/tentacles/tentacles-octopus-black-pink.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "tiny" + "width": null }, "mainTrait": "agility", "advantageOn": { @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Eel, Fish, Octopus, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 12, - "artist": "" - } + "examples": "Eel, Fish, Octopus, etc." }, "effects": [ { @@ -103,7 +97,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753637058698 }, "_key": "!items.effects!qqzdFCxyYupWZK23.TsXyfEOCk0ma5tp9" } @@ -114,6 +115,17 @@ "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 index ba18c05f..553fa9e9 100644 --- a/src/packs/beastforms/beastform_Armored_Sentry_8pUHJv3BYdjA4Qdf.json +++ b/src/packs/beastforms/beastform_Armored_Sentry_8pUHJv3BYdjA4Qdf.json @@ -5,23 +5,22 @@ "system": { "beastformType": "normal", "tier": 2, - "tokenImg": "icons/creatures/reptiles/turtle-shell-glowing-green.webp", - "tokenRingImg": "icons/creatures/reptiles/turtle-shell-glowing-green.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "small" + "width": null }, "mainTrait": "strength", "advantageOn": { - "4AbCgOZvyUFH9Pug": { - "value": "Dig" + "mX0DbTDuWAIpAGYq": { + "value": "Armadillo" }, - "8GsRyXaQnfsGNGW6": { - "value": "Locate" + "0VGGQOhVOoNpZfdJ": { + "value": "Pangolin" }, - "0ut15QizNIG254Vw": { - "value": "Protect" + "6v6bkfKevJrn3YHf": { + "value": "Turtle" } }, "features": [ @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Armadillo, Pangolin, Turtle, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "examples": "Armadillo, Pangolin, Turtle, etc." }, "effects": [ { @@ -109,7 +103,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636932760 }, "_key": "!items.effects!8pUHJv3BYdjA4Qdf.hd0uVl6ZZeyPJn9O" } @@ -120,6 +121,17 @@ "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 index 0dfe9c20..895a3467 100644 --- a/src/packs/beastforms/beastform_Epic_Aquatic_Beast_wT4xbF99I55yjKZV.json +++ b/src/packs/beastforms/beastform_Epic_Aquatic_Beast_wT4xbF99I55yjKZV.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 4, - "tokenImg": "icons/creatures/fish/squid-kraken-teal.webp", - "tokenRingImg": "icons/creatures/fish/squid-kraken-teal.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "gargantuan" + "width": null }, "mainTrait": "agility", "advantageOn": { @@ -39,12 +38,7 @@ "advantages": 2, "features": 2 }, - "examples": "Giant Squid, Whale, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 15, - "artist": "" - } + "examples": "Giant Squid, Whale, etc." }, "effects": [ { @@ -112,7 +106,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636776763 }, "_key": "!items.effects!wT4xbF99I55yjKZV.zYUexUr2e3k4kzhw" } @@ -123,6 +124,17 @@ "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 index 450a1312..e794abf2 100644 --- a/src/packs/beastforms/beastform_Great_Predator_afbMt4Ld6nY3mw0N.json +++ b/src/packs/beastforms/beastform_Great_Predator_afbMt4Ld6nY3mw0N.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 3, - "tokenImg": "icons/creatures/mammals/wolf-shadow-black.webp", - "tokenRingImg": "icons/creatures/mammals/wolf-shadow-black.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "large" + "width": null }, "mainTrait": "strength", "advantageOn": { @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Dire Wolf, Velociraptor, Sabertooth Tiger, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "examples": "Dire Wolf, Velociraptor, Sabertooth Tiger, etc." }, "effects": [ { @@ -109,7 +103,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636866636 }, "_key": "!items.effects!afbMt4Ld6nY3mw0N.TFzvHClwIAQUFxyP" } @@ -120,6 +121,17 @@ "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 index c04b2182..15eed972 100644 --- a/src/packs/beastforms/beastform_Great_Winged_Beast_b4BMnTbJ3iPPidSb.json +++ b/src/packs/beastforms/beastform_Great_Winged_Beast_b4BMnTbJ3iPPidSb.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 3, - "tokenImg": "icons/creatures/birds/corvid-flying-wings-purple.webp", - "tokenRingImg": "icons/creatures/birds/corvid-flying-wings-purple.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "large" + "width": null }, "mainTrait": "finesse", "advantageOn": { @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Giant Eagle, Falcon, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "examples": "Giant Eagle, Falcon, etc." }, "effects": [ { @@ -109,7 +103,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636883399 }, "_key": "!items.effects!b4BMnTbJ3iPPidSb.qGSm1QpICpxRZxLn" } @@ -120,6 +121,17 @@ "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 index cfb6aea7..57a1ecdf 100644 --- a/src/packs/beastforms/beastform_Household_Friend_iDmOtiHJJ80AIAVT.json +++ b/src/packs/beastforms/beastform_Household_Friend_iDmOtiHJJ80AIAVT.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 1, - "tokenImg": "icons/creatures/mammals/rabbit-movement-glowing-green.webp", - "tokenRingImg": "icons/creatures/mammals/rabbit-movement-glowing-green.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "tiny" + "width": null }, "mainTrait": "instinct", "advantageOn": { @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Cat, Dog, Rabbit, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 12, - "artist": "" - } + "examples": "Cat, Dog, Rabbit, etc." }, "effects": [ { @@ -103,7 +97,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753637069907 }, "_key": "!items.effects!iDmOtiHJJ80AIAVT.CzMAMg2q5gL15JrZ" } @@ -114,6 +115,17 @@ "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 index 60ba7cd0..a73b31d2 100644 --- a/src/packs/beastforms/beastform_Legendary_Beast_mqP6z4Wg4K3oDAom.json +++ b/src/packs/beastforms/beastform_Legendary_Beast_mqP6z4Wg4K3oDAom.json @@ -5,8 +5,8 @@ "system": { "beastformType": "evolved", "tier": 3, - "tokenImg": "icons/creatures/magical/humanoid-giant-forest-blue.webp", - "tokenRingImg": "icons/creatures/magical/humanoid-giant-forest-blue.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, "width": null @@ -23,12 +23,7 @@ "advantages": 2, "features": 2 }, - "examples": "", - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "examples": "" }, "effects": [ { @@ -78,7 +73,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753629435612 }, "_key": "!items.effects!mqP6z4Wg4K3oDAom.cL4kH57pf2nGIxaK" } @@ -89,6 +91,17 @@ "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 index 4575820e..aff94138 100644 --- a/src/packs/beastforms/beastform_Legendary_Hybrid_rRUtgcUjimlpPhnn.json +++ b/src/packs/beastforms/beastform_Legendary_Hybrid_rRUtgcUjimlpPhnn.json @@ -5,8 +5,8 @@ "system": { "beastformType": "hybrid", "tier": 3, - "tokenImg": "icons/creatures/magical/humanoid-silhouette-glowing-pink.webp", - "tokenRingImg": "icons/creatures/magical/humanoid-silhouette-glowing-pink.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, "width": null @@ -23,12 +23,7 @@ "features": 2, "maximumTier": 2 }, - "examples": "", - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "examples": "" }, "effects": [ { @@ -96,7 +91,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636904176 }, "_key": "!items.effects!rRUtgcUjimlpPhnn.RbZKFWATkfLZm67j" } @@ -107,6 +109,17 @@ "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 index 35715056..470cfffe 100644 --- a/src/packs/beastforms/beastform_Massive_Behemoth_qjwMzPn33aKZACkv.json +++ b/src/packs/beastforms/beastform_Massive_Behemoth_qjwMzPn33aKZACkv.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 4, - "tokenImg": "icons/creatures/mammals/beast-horned-scaled-glowing-orange.webp", - "tokenRingImg": "icons/creatures/mammals/beast-horned-scaled-glowing-orange.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "huge" + "width": null }, "mainTrait": "strength", "advantageOn": { @@ -40,12 +39,7 @@ "advantages": 2, "features": 2 }, - "examples": "Elephant, Mammoth, Rhinoceros, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "examples": "Elephant, Mammoth, Rhinoceros, etc." }, "effects": [ { @@ -113,7 +107,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636791070 }, "_key": "!items.effects!qjwMzPn33aKZACkv.RR6ySJU5zaC7ws6A" } @@ -124,6 +125,17 @@ "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 index 390bf054..374fc301 100644 --- a/src/packs/beastforms/beastform_Mighty_Lizard_94tvcC3D5Kp4lzuN.json +++ b/src/packs/beastforms/beastform_Mighty_Lizard_94tvcC3D5Kp4lzuN.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 3, - "tokenImg": "icons/creatures/reptiles/lizard-iguana-green.webp", - "tokenRingImg": "icons/creatures/reptiles/lizard-iguana-green.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "large" + "width": null }, "mainTrait": "instinct", "advantageOn": { @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Alligator, Crocodile, Gila Monster, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "examples": "Alligator, Crocodile, Gila Monster, etc." }, "effects": [ { @@ -109,7 +103,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636918241 }, "_key": "!items.effects!94tvcC3D5Kp4lzuN.d13EzuP8Co04Jk8K" } @@ -120,6 +121,17 @@ "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 index adb9627b..e44e01e9 100644 --- a/src/packs/beastforms/beastform_Mighty_Strider_zRLjqKx4Rn2TjivL.json +++ b/src/packs/beastforms/beastform_Mighty_Strider_zRLjqKx4Rn2TjivL.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 2, - "tokenImg": "icons/environment/creatures/horse-tan.webp", - "tokenRingImg": "icons/environment/creatures/horse-tan.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "large" + "width": null }, "mainTrait": "agility", "advantageOn": { @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Camel, Horse, Zebra, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "examples": "Camel, Horse, Zebra, etc." }, "effects": [ { @@ -109,7 +103,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636945655 }, "_key": "!items.effects!zRLjqKx4Rn2TjivL.IWg2cWUdvucUOLAL" } @@ -120,6 +121,17 @@ "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 index dc373c27..fbd60195 100644 --- a/src/packs/beastforms/beastform_Mythic_Aerial_Hunter_jV6EuEacyQlHW4SN.json +++ b/src/packs/beastforms/beastform_Mythic_Aerial_Hunter_jV6EuEacyQlHW4SN.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 4, - "tokenImg": "icons/creatures/reptiles/dragon-winged-blue.webp", - "tokenRingImg": "icons/creatures/reptiles/dragon-winged-blue.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "gargantuan" + "width": null }, "mainTrait": "finesse", "advantageOn": { @@ -39,12 +38,7 @@ "advantages": 2, "features": 2 }, - "examples": "Dragon, Pterodactyl, Roc, Wyvern, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 15, - "artist": "" - } + "examples": "Dragon, Pterodactyl, Roc, Wyvern, etc." }, "effects": [ { @@ -112,7 +106,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636808135 }, "_key": "!items.effects!jV6EuEacyQlHW4SN.hnKnaOaswWJdaYmf" } @@ -123,6 +124,17 @@ "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 index cd879ac0..d7d407a6 100644 --- a/src/packs/beastforms/beastform_Mythic_Beast_kObobka52JdpWBSu.json +++ b/src/packs/beastforms/beastform_Mythic_Beast_kObobka52JdpWBSu.json @@ -5,8 +5,8 @@ "system": { "beastformType": "evolved", "tier": 4, - "tokenImg": "icons/creatures/eyes/lizard-single-slit-pink.webp", - "tokenRingImg": "icons/creatures/eyes/lizard-single-slit-pink.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, "width": null @@ -23,12 +23,7 @@ "advantages": 2, "features": 2 }, - "examples": "", - "attribution": { - "source": "Daggerheart SRD", - "page": 15, - "artist": "" - } + "examples": "" }, "effects": [ { @@ -84,7 +79,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636223126 }, "_key": "!items.effects!kObobka52JdpWBSu.vhwbPQ2YT64qD1t1" } @@ -95,6 +97,17 @@ "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 index fa35eaac..c0be75db 100644 --- a/src/packs/beastforms/beastform_Mythic_Hybrid_WAbxCf2An8qmxyJ1.json +++ b/src/packs/beastforms/beastform_Mythic_Hybrid_WAbxCf2An8qmxyJ1.json @@ -5,8 +5,8 @@ "system": { "beastformType": "hybrid", "tier": 4, - "tokenImg": "icons/creatures/magical/spirit-undead-horned-blue.webp", - "tokenRingImg": "icons/creatures/magical/spirit-undead-horned-blue.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, "width": null @@ -23,12 +23,7 @@ "features": 3, "maximumTier": 3 }, - "examples": "", - "attribution": { - "source": "Daggerheart SRD", - "page": 15, - "artist": "" - } + "examples": "" }, "effects": [ { @@ -96,7 +91,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636821848 }, "_key": "!items.effects!WAbxCf2An8qmxyJ1.HutJQ9HGtr1Eoibp" } @@ -107,6 +109,17 @@ "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 index 183ad150..926b8739 100644 --- a/src/packs/beastforms/beastform_Nimble_Grazer_CItO8yX6amQaqyk7.json +++ b/src/packs/beastforms/beastform_Nimble_Grazer_CItO8yX6amQaqyk7.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 1, - "tokenImg": "icons/creatures/mammals/deer-antlers-glowing-blue.webp", - "tokenRingImg": "icons/creatures/mammals/deer-antlers-glowing-blue.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "medium" + "width": null }, "mainTrait": "agility", "advantageOn": { @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Deer, Gazelle, Goat, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 12, - "artist": "" - } + "examples": "Deer, Gazelle, Goat, etc." }, "effects": [ { @@ -103,7 +97,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753637082422 }, "_key": "!items.effects!CItO8yX6amQaqyk7.lIbJFb5XQ98Eaauu" } @@ -114,6 +115,17 @@ "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 index 834493bb..38150adb 100644 --- a/src/packs/beastforms/beastform_Pack_Predator_YLisKYYhAGca50WM.json +++ b/src/packs/beastforms/beastform_Pack_Predator_YLisKYYhAGca50WM.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 1, - "tokenImg": "icons/creatures/mammals/wolf-howl-moon-forest-blue.webp", - "tokenRingImg": "icons/creatures/mammals/wolf-howl-moon-forest-blue.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "medium" + "width": null }, "mainTrait": "strength", "advantageOn": { @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Coyote, Hyena, Wolf, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 12, - "artist": "" - } + "examples": "Coyote, Hyena, Wolf, etc." }, "effects": [ { @@ -109,7 +103,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753637098077 }, "_key": "!items.effects!YLisKYYhAGca50WM.amuFS9LlEnzZnaIN" } @@ -120,6 +121,17 @@ "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 index d172d8f3..9073bb23 100644 --- a/src/packs/beastforms/beastform_Pouncing_Predator_33oFSZ1PwFqInHPe.json +++ b/src/packs/beastforms/beastform_Pouncing_Predator_33oFSZ1PwFqInHPe.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 2, - "tokenImg": "icons/creatures/abilities/cougar-roar-rush-orange.webp", - "tokenRingImg": "icons/creatures/abilities/cougar-roar-rush-orange.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "medium" + "width": null }, "mainTrait": "instinct", "advantageOn": { @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Cheetah, Lion, Panther, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "examples": "Cheetah, Lion, Panther, etc." }, "effects": [ { @@ -109,7 +103,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636957124 }, "_key": "!items.effects!33oFSZ1PwFqInHPe.GSmW6nJ3kyIoEK2H" } @@ -120,6 +121,17 @@ "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 index 7fa832e6..17d55206 100644 --- a/src/packs/beastforms/beastform_Powerful_Beast_m8BVTuJI1wCvzTcf.json +++ b/src/packs/beastforms/beastform_Powerful_Beast_m8BVTuJI1wCvzTcf.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 2, - "tokenImg": "icons/creatures/abilities/bear-roar-bite-brown-green.webp", - "tokenRingImg": "icons/creatures/abilities/bear-roar-bite-brown-green.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "large" + "width": null }, "mainTrait": "strength", "advantageOn": { @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Bear, Bull, Moose, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "examples": "Bear, Bull, Moose, etc." }, "effects": [ { @@ -63,13 +57,13 @@ { "key": "system.traits.strength.value", "mode": 2, - "value": "3", + "value": "1", "priority": null }, { "key": "system.evasion", "mode": 2, - "value": "1", + "value": "3", "priority": null }, { @@ -109,7 +103,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636973034 }, "_key": "!items.effects!m8BVTuJI1wCvzTcf.AZGTvqzFVHa4wS1a" } @@ -120,6 +121,17 @@ "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 index 16520a9c..98a949ff 100644 --- a/src/packs/beastforms/beastform_Stalking_Arachnid_A4TVRY0D5r9EiVwA.json +++ b/src/packs/beastforms/beastform_Stalking_Arachnid_A4TVRY0D5r9EiVwA.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 1, - "tokenImg": "icons/creatures/invertebrates/spider-mandibles-brown.webp", - "tokenRingImg": "icons/creatures/invertebrates/spider-mandibles-brown.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "tiny" + "width": null }, "mainTrait": "finesse", "advantageOn": { @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Tarantula, Wolf Spider, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "examples": "Tarantula, Wolf Spider, etc." }, "effects": [ { @@ -109,7 +103,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753637113589 }, "_key": "!items.effects!A4TVRY0D5r9EiVwA.YkZX2yc2X0QDFPBG" } @@ -120,6 +121,17 @@ "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 index f78500c9..3f4a5dbb 100644 --- a/src/packs/beastforms/beastform_Striking_Serpent_1XrZWGDttBAAUxR1.json +++ b/src/packs/beastforms/beastform_Striking_Serpent_1XrZWGDttBAAUxR1.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 2, - "tokenImg": "icons/creatures/reptiles/serpent-horned-green.webp", - "tokenRingImg": "icons/creatures/reptiles/serpent-horned-green.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "small" + "width": null }, "mainTrait": "finesse", "advantageOn": { @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Cobra, Rattlesnake, Viper, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "examples": "Cobra, Rattlesnake, Viper, etc." }, "effects": [ { @@ -109,7 +103,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753635875178 }, "_key": "!items.effects!1XrZWGDttBAAUxR1.qGhLojWa5430zRd1" } @@ -120,6 +121,17 @@ "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 index 49818b74..0614d763 100644 --- a/src/packs/beastforms/beastform_Terrible_Lizard_5BABxRe2XVrYTj8N.json +++ b/src/packs/beastforms/beastform_Terrible_Lizard_5BABxRe2XVrYTj8N.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 4, - "tokenImg": "icons/creatures/abilities/dragon-breath-purple.webp", - "tokenRingImg": "icons/creatures/abilities/dragon-breath-purple.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "gargantuan" + "width": null }, "mainTrait": "strength", "advantageOn": { @@ -39,12 +38,7 @@ "advantages": 2, "features": 2 }, - "examples": "Brachiosaurus, Tyrannosaurus, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "examples": "Brachiosaurus, Tyrannosaurus, etc." }, "effects": [ { @@ -112,7 +106,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753636836057 }, "_key": "!items.effects!5BABxRe2XVrYTj8N.qPtjZIkRVm68TGHN" } @@ -123,6 +124,17 @@ "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 index 4ca44471..352b7124 100644 --- a/src/packs/beastforms/beastform_Winged_Beast_mZ4Wlqtss2FlNNvL.json +++ b/src/packs/beastforms/beastform_Winged_Beast_mZ4Wlqtss2FlNNvL.json @@ -5,12 +5,11 @@ "system": { "beastformType": "normal", "tier": 2, - "tokenImg": "icons/creatures/birds/raptor-owl-flying-moon.webp", - "tokenRingImg": "icons/creatures/birds/raptor-owl-flying-moon.webp", + "tokenImg": "icons/svg/mystery-man.svg", + "tokenRingImg": "icons/svg/mystery-man.svg", "tokenSize": { "height": null, - "width": null, - "size": "tiny" + "width": null }, "mainTrait": "finesse", "advantageOn": { @@ -36,12 +35,7 @@ "advantages": 2, "features": 2 }, - "examples": "Hawk, Owl, Raven, etc.", - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "examples": "Hawk, Owl, Raven, etc." }, "effects": [ { @@ -109,7 +103,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753637037576 }, "_key": "!items.effects!mZ4Wlqtss2FlNNvL.Ln3atrxiqtPA0Wi6" } @@ -120,6 +121,17 @@ "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 index 952ea345..d36699a4 100644 --- a/src/packs/beastforms/feature_Agile_xLS5YT1B6yeCiNTg.json +++ b/src/packs/beastforms/feature_Agile_xLS5YT1B6yeCiNTg.json @@ -10,11 +10,12 @@ "type": "effect", "_id": "4yQ56hSL5LBkzrV6", "systemPath": "actions", - "description": "

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

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -23,12 +24,12 @@ ], "uses": { "value": null, - "max": "", + "max": null, "recovery": null }, "effects": [], "target": { - "type": "", + "type": null, "amount": null }, "name": "Spend Hope", @@ -38,12 +39,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 12, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -52,6 +48,17 @@ "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 index 6d322478..fc8862c7 100644 --- a/src/packs/beastforms/feature_Aquatic_kQWWx9P3fCyGSVOI.json +++ b/src/packs/beastforms/feature_Aquatic_kQWWx9P3fCyGSVOI.json @@ -8,12 +8,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 12, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -22,6 +17,17 @@ "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 index 7aaefef8..5ff9b259 100644 --- a/src/packs/beastforms/feature_Armored_Shell_nDQZdIF2epKlhauX.json +++ b/src/packs/beastforms/feature_Armored_Shell_nDQZdIF2epKlhauX.json @@ -18,12 +18,13 @@ "scalable": false, "key": "armor", "value": 1, + "keyIsID": false, "step": null } ], "uses": { "value": null, - "max": "", + "max": null, "recovery": null }, "effects": [ @@ -38,17 +39,12 @@ }, "name": "Retract", "img": "icons/creatures/reptiles/turtle-shell-glowing-green.webp", - "range": "self" + "range": "" } }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "originId": null }, "effects": [ { @@ -83,7 +79,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!nDQZdIF2epKlhauX.XFmEC0kDQJNrGbtr" }, @@ -100,7 +102,7 @@ "key": "system.resistance.physical.reduction", "mode": 2, "value": "@system.armorScore", - "priority": 21 + "priority": null } ], "disabled": false, @@ -119,7 +121,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!nDQZdIF2epKlhauX.OY3lEB3vuDKNLzxv" } @@ -130,6 +138,17 @@ "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 index 11a62425..83fdfab1 100644 --- a/src/packs/beastforms/feature_Bird_s_Eye_View_FNKQlWQcArSorMPK.json +++ b/src/packs/beastforms/feature_Bird_s_Eye_View_FNKQlWQcArSorMPK.json @@ -31,12 +31,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -45,6 +40,17 @@ "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 index e5ba8e2e..7b714c75 100644 --- a/src/packs/beastforms/feature_Cannonball_jp5KpPRBFBOIs46Q.json +++ b/src/packs/beastforms/feature_Cannonball_jp5KpPRBFBOIs46Q.json @@ -37,6 +37,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -60,12 +61,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -74,6 +70,17 @@ "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 index 48fc19e2..4a0dcae2 100644 --- a/src/packs/beastforms/feature_Carrier_EVOJTskJYf4rpuga.json +++ b/src/packs/beastforms/feature_Carrier_EVOJTskJYf4rpuga.json @@ -8,12 +8,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -22,6 +17,17 @@ "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 index 1f06f697..b54e4a05 100644 --- a/src/packs/beastforms/feature_Companion_jhWSC5bNZyYUAA5Q.json +++ b/src/packs/beastforms/feature_Companion_jhWSC5bNZyYUAA5Q.json @@ -8,12 +8,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 12, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -22,6 +17,17 @@ "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 index 110a6a54..d21facf5 100644 --- a/src/packs/beastforms/feature_Deadly_Raptor_QQtQ77tos8ijTHag.json +++ b/src/packs/beastforms/feature_Deadly_Raptor_QQtQ77tos8ijTHag.json @@ -8,12 +8,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 15, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -22,6 +17,17 @@ "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 index b7d85ef1..4e683d9a 100644 --- a/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json +++ b/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json @@ -15,6 +15,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -92,12 +93,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "originId": null }, "effects": [ { @@ -127,7 +123,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!DfBXO8jTchwFG8dZ.FXdFgEgqVl5gIWJS" } @@ -138,6 +140,17 @@ "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 index 8f9702d6..1c792e95 100644 --- a/src/packs/beastforms/feature_Devastating_Strikes_HJbQcKWcFZ9NoFxs.json +++ b/src/packs/beastforms/feature_Devastating_Strikes_HJbQcKWcFZ9NoFxs.json @@ -18,6 +18,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -38,12 +39,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -52,6 +48,17 @@ "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 index d99a6ab7..1de48d46 100644 --- a/src/packs/beastforms/feature_Elusive_Prey_a7Qvmm14nx9BCysA.json +++ b/src/packs/beastforms/feature_Elusive_Prey_a7Qvmm14nx9BCysA.json @@ -10,7 +10,7 @@ "type": "attack", "_id": "9lvrqQKTEB3NRwvM", "systemPath": "actions", - "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.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -18,12 +18,13 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], "uses": { "value": null, - "max": "", + "max": null, "recovery": null }, "damage": { @@ -31,7 +32,7 @@ "includeBase": false }, "target": { - "type": "", + "type": null, "amount": null }, "effects": [], @@ -62,12 +63,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 12, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -76,6 +72,17 @@ "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 index 0520a650..cabc703d 100644 --- a/src/packs/beastforms/feature_Fleet_GhHsSHOa509cwCvr.json +++ b/src/packs/beastforms/feature_Fleet_GhHsSHOa509cwCvr.json @@ -15,6 +15,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -38,12 +39,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -52,6 +48,17 @@ "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 index e68b5355..e22b70b4 100644 --- a/src/packs/beastforms/feature_Fragile_QFg1hNCEoKVDd9Zo.json +++ b/src/packs/beastforms/feature_Fragile_QFg1hNCEoKVDd9Zo.json @@ -8,12 +8,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 12, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -22,6 +17,17 @@ "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 index 6a16f864..a46fd322 100644 --- a/src/packs/beastforms/feature_Hobbling_Strike_8u0HkK3WgtU9lWYs.json +++ b/src/packs/beastforms/feature_Hobbling_Strike_8u0HkK3WgtU9lWYs.json @@ -10,7 +10,7 @@ "type": "effect", "_id": "p8DESOMGA6dLwEMz", "systemPath": "actions", - "description": "

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

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -18,12 +18,13 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], "uses": { "value": null, - "max": "", + "max": null, "recovery": null }, "effects": [ @@ -33,7 +34,7 @@ } ], "target": { - "type": "", + "type": null, "amount": null }, "name": "Mark Stress", @@ -43,12 +44,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 12, - "artist": "" - } + "originId": null }, "effects": [ { @@ -78,7 +74,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "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" } @@ -89,6 +93,17 @@ "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 index d047a501..d358b416 100644 --- a/src/packs/beastforms/feature_Hollow_Bones_xVgmXhj2YgeqS1KK.json +++ b/src/packs/beastforms/feature_Hollow_Bones_xVgmXhj2YgeqS1KK.json @@ -8,12 +8,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "originId": null }, "effects": [ { @@ -54,7 +49,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!xVgmXhj2YgeqS1KK.RM8wHu5GIF6zfF7V" } @@ -65,6 +66,17 @@ "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 index 6d40d335..17812c9d 100644 --- a/src/packs/beastforms/feature_Massive_Stride_9QkZSeuEKgXtlpHc.json +++ b/src/packs/beastforms/feature_Massive_Stride_9QkZSeuEKgXtlpHc.json @@ -8,12 +8,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -22,6 +17,17 @@ "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 index a4431417..37716764 100644 --- a/src/packs/beastforms/feature_Ocean_Master_tGDdEH40wyOCsFmH.json +++ b/src/packs/beastforms/feature_Ocean_Master_tGDdEH40wyOCsFmH.json @@ -36,12 +36,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 15, - "artist": "" - } + "originId": null }, "effects": [ { @@ -71,7 +66,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!tGDdEH40wyOCsFmH.6GBczj8REkDmgX2Q" } @@ -82,6 +83,17 @@ "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 index 2eac4427..d6e58fcb 100644 --- a/src/packs/beastforms/feature_Pack_Hunting_d3q8lfeiEMyTjusT.json +++ b/src/packs/beastforms/feature_Pack_Hunting_d3q8lfeiEMyTjusT.json @@ -8,12 +8,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 12, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -22,6 +17,17 @@ "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 index f4c86b8c..effdc34f 100644 --- a/src/packs/beastforms/feature_Physical_Defense_StabkQ3BzWRZa8Tz.json +++ b/src/packs/beastforms/feature_Physical_Defense_StabkQ3BzWRZa8Tz.json @@ -8,12 +8,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "originId": null }, "effects": [ { @@ -54,7 +49,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!StabkQ3BzWRZa8Tz.hs9vWE92QQQx15ET" } @@ -65,6 +66,17 @@ "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 index ecc46058..0164d236 100644 --- a/src/packs/beastforms/feature_Rampage_8upqfcZvi7b5hRLE.json +++ b/src/packs/beastforms/feature_Rampage_8upqfcZvi7b5hRLE.json @@ -18,89 +18,52 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], "uses": { "value": null, - "max": "", + "max": null, "recovery": null }, "effects": [ { - "_id": "A7l4JEBC1FFQajsN", + "_id": "5TX0hHFKZHvBeWne", "onSave": false } ], "target": { - "type": "self", + "type": null, "amount": null }, - "name": "Mark Stress", + "name": "Gain Proficiency", "img": "icons/creatures/abilities/bear-roar-bite-brown.webp", - "range": "self" + "range": "" } }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "originId": null }, - "effects": [ - { - "name": "Rampage", - "img": "icons/creatures/claws/claw-bear-paw-swipe-red.webp", - "origin": "Compendium.daggerheart.beastforms.Item.8upqfcZvi7b5hRLE", - "transfer": false, - "_id": "A7l4JEBC1FFQajsN", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "changes": [ - { - "key": "system.proficiency", - "mode": 2, - "value": "1", - "priority": null - } - ], - "disabled": false, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

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

", - "tint": "#ffffff", - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!8upqfcZvi7b5hRLE.A7l4JEBC1FFQajsN" - } - ], + "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 index d79c9018..c22dad6e 100644 --- a/src/packs/beastforms/feature_Snapping_Strike_Ky3rZD3sJMXYZOBC.json +++ b/src/packs/beastforms/feature_Snapping_Strike_Ky3rZD3sJMXYZOBC.json @@ -15,6 +15,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -43,12 +44,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "originId": null }, "effects": [ { @@ -79,7 +75,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!Ky3rZD3sJMXYZOBC.y3EsJuInxE7juNXT" } @@ -90,6 +92,17 @@ "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 index 4dc2c0f7..13ffe145 100644 --- a/src/packs/beastforms/feature_Takedown_0ey4kM9ssj2otHvb.json +++ b/src/packs/beastforms/feature_Takedown_0ey4kM9ssj2otHvb.json @@ -18,12 +18,13 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], "uses": { "value": null, - "max": "", + "max": null, "recovery": null }, "damage": { @@ -33,7 +34,7 @@ "value": { "custom": { "enabled": true, - "formula": "(@prof+2)@basicAttackDamageDice + 6" + "formula": "(@prof+2)@basicAttackDamageDice" }, "multiplier": "prof", "flatMultiplier": 1, @@ -49,8 +50,7 @@ "dice": "d6", "bonus": null, "custom": { - "enabled": false, - "formula": "" + "enabled": false } } } @@ -58,8 +58,8 @@ "includeBase": false }, "target": { - "type": "hostile", - "amount": 1 + "type": "any", + "amount": null }, "effects": [], "roll": { @@ -84,24 +84,19 @@ }, "name": "Attack", "img": "icons/creatures/abilities/paw-print-orange.webp", - "range": "melee" + "range": "" } }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "originId": null }, "effects": [ { "name": "Takedown", "img": "icons/creatures/abilities/paw-print-orange.webp", "origin": "Item.okjlLUwEdNOKeUk3", - "transfer": true, + "transfer": false, "_id": "hE6ciIusvKEtUQ8U", "type": "base", "system": {}, @@ -113,7 +108,7 @@ "priority": null } ], - "disabled": true, + "disabled": false, "duration": { "startTime": null, "combat": null, @@ -123,13 +118,19 @@ "startRound": null, "startTurn": null }, - "description": "

You gain a +2 bonus to your Proficiency for this attack and the target must mark a Stress.

", + "description": "", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!0ey4kM9ssj2otHvb.hE6ciIusvKEtUQ8U" } @@ -140,6 +141,17 @@ "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 index 6eba9342..62e74afd 100644 --- a/src/packs/beastforms/feature_Thick_Hide_ZYbdXaWVj2zdcmaK.json +++ b/src/packs/beastforms/feature_Thick_Hide_ZYbdXaWVj2zdcmaK.json @@ -8,12 +8,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "originId": null }, "effects": [ { @@ -54,7 +49,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!ZYbdXaWVj2zdcmaK.ZoUJy8EOm9mVXuAw" } @@ -65,6 +66,17 @@ "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 index e9878f02..15dec8f3 100644 --- a/src/packs/beastforms/feature_Trample_A0lgd6eVEfX6oqSB.json +++ b/src/packs/beastforms/feature_Trample_A0lgd6eVEfX6oqSB.json @@ -18,6 +18,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -92,12 +93,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "originId": null }, "effects": [ { @@ -127,7 +123,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!A0lgd6eVEfX6oqSB.LkekG4IngVW9rFjI" } @@ -138,6 +140,17 @@ "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 index 092efe51..5137104d 100644 --- a/src/packs/beastforms/feature_Undaunted_ODudjX88Te4vDP57.json +++ b/src/packs/beastforms/feature_Undaunted_ODudjX88Te4vDP57.json @@ -8,12 +8,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "originId": null }, "effects": [ { @@ -54,7 +49,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!ODudjX88Te4vDP57.wVoUVQJ2Ik7CiUuV" } @@ -65,6 +66,17 @@ "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 index 6bfafa79..98fe5e15 100644 --- a/src/packs/beastforms/feature_Unyielding_vEAQ4cfsoPmOv2Gg.json +++ b/src/packs/beastforms/feature_Unyielding_vEAQ4cfsoPmOv2Gg.json @@ -55,12 +55,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 15, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -69,6 +64,17 @@ "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 index 00870086..bea17311 100644 --- a/src/packs/beastforms/feature_Venomous_Bite_2KlTnfzO03vneVS8.json +++ b/src/packs/beastforms/feature_Venomous_Bite_2KlTnfzO03vneVS8.json @@ -10,13 +10,13 @@ "type": "effect", "_id": "eow90DYK6cUWOk7g", "systemPath": "actions", - "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.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [], "uses": { "value": null, - "max": "", + "max": null, "recovery": null }, "effects": [ @@ -36,12 +36,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "originId": null }, "effects": [ { @@ -69,7 +64,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753576115749 }, "_key": "!items.effects!2KlTnfzO03vneVS8.TTyAKKoUCoYXSMs4" } @@ -80,6 +82,17 @@ "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 index 57d5bb56..11e60f58 100644 --- a/src/packs/beastforms/feature_Venomous_Strike_uW3853pViM9VAfHb.json +++ b/src/packs/beastforms/feature_Venomous_Strike_uW3853pViM9VAfHb.json @@ -60,12 +60,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "originId": null }, "effects": [ { @@ -93,7 +88,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!uW3853pViM9VAfHb.1iQPj96LqUNkRaxE" } @@ -104,6 +105,17 @@ "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 index 2bdad760..9c862f3e 100644 --- a/src/packs/beastforms/feature_Vicious_Maul_jYUBi7yLHap5ljpa.json +++ b/src/packs/beastforms/feature_Vicious_Maul_jYUBi7yLHap5ljpa.json @@ -15,6 +15,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -73,12 +74,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 14, - "artist": "" - } + "originId": null }, "effects": [ { @@ -108,7 +104,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!jYUBi7yLHap5ljpa.MIAh9XNwDXGDktCm" } @@ -119,6 +121,17 @@ "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 index 2e9aa569..5380f968 100644 --- a/src/packs/beastforms/feature_Warning_Hiss_cTlqpQZPy5TvdDAT.json +++ b/src/packs/beastforms/feature_Warning_Hiss_cTlqpQZPy5TvdDAT.json @@ -18,6 +18,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -38,12 +39,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "originId": null }, "effects": [], "folder": "uU8bIoZvXge0rLaU", @@ -52,6 +48,17 @@ "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 index 40adb28b..4f6e6717 100644 --- a/src/packs/beastforms/feature_Webslinger_D73fS1iM4SZPFimu.json +++ b/src/packs/beastforms/feature_Webslinger_D73fS1iM4SZPFimu.json @@ -10,13 +10,13 @@ "type": "attack", "_id": "vRU6xutkp3VYxZ0i", "systemPath": "actions", - "description": "

You can temporarily Restrain a target within Close range by succeeding on a Finesse Roll against them.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [], "uses": { "value": null, - "max": "", + "max": null, "recovery": null }, "damage": { @@ -60,12 +60,7 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 13, - "artist": "" - } + "originId": null }, "effects": [ { @@ -95,7 +90,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753576128082 }, "_key": "!items.effects!D73fS1iM4SZPFimu.cBJueH89gNvvDKfQ" } @@ -106,6 +108,17 @@ "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 index a959381f..74cd56a6 100644 --- a/src/packs/beastforms/folders_Beastform_Features_uU8bIoZvXge0rLaU.json +++ b/src/packs/beastforms/folders_Beastform_Features_uU8bIoZvXge0rLaU.json @@ -8,5 +8,16 @@ "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 index f448ed75..00e75d82 100644 --- a/src/packs/beastforms/folders_Tier_1_nhnRdZgSSrE9myIX.json +++ b/src/packs/beastforms/folders_Tier_1_nhnRdZgSSrE9myIX.json @@ -8,5 +8,16 @@ "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 index c2f65393..d8758630 100644 --- a/src/packs/beastforms/folders_Tier_2_Rd30i5G7Pg0HtEUT.json +++ b/src/packs/beastforms/folders_Tier_2_Rd30i5G7Pg0HtEUT.json @@ -8,5 +8,16 @@ "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 index aafa924e..7781983a 100644 --- a/src/packs/beastforms/folders_Tier_3_9uPPuDAUXrVYquTw.json +++ b/src/packs/beastforms/folders_Tier_3_9uPPuDAUXrVYquTw.json @@ -8,5 +8,16 @@ "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 index 4a73c65d..8ff6c2e9 100644 --- a/src/packs/beastforms/folders_Tier_4_UQEr5SAm2Z1Aih1S.json +++ b/src/packs/beastforms/folders_Tier_4_UQEr5SAm2Z1Aih1S.json @@ -8,5 +8,16 @@ "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/src/packs/classes/class_Bard_vegl3bFOq3pcFTWT.json b/src/packs/classes/class_Bard_vegl3bFOq3pcFTWT.json index b596d5c0..5ffd8a11 100644 --- a/src/packs/classes/class_Bard_vegl3bFOq3pcFTWT.json +++ b/src/packs/classes/class_Bard_vegl3bFOq3pcFTWT.json @@ -4,7 +4,7 @@ "type": "class", "img": "icons/tools/instruments/harp-red.webp", "system": { - "description": "

Note: At level 5 use Rally (Level 5) instead of Rally under class feature. (Automation will be implemented in a later release)


Bards are the most charismatic people in all the realms. Members of this class are masters of captivation and specialize in a variety of performance types, including singing, playing musical instruments, weaving tales, or telling jokes. Whether performing for an audience or speaking to an individual, bards thrive in social situations. Members of this profession bond and train at schools or guilds, but a current of egotism runs through those of the bardic persuasion. While they may be the most likely class to bring people together, a bard of ill temper can just as easily tear a party apart.

CLASS ITEMS

A romance novel or a letter never opened

BARD’S HOPE FEATURE

Make a Scene: Spend 3 Hope to temporarily Distract a target within Close range, giving them a -2 penalty to their Difficulty.

CLASS FEATURE

Rally

Once per session, describe how you rally the party and give yourself and each of your allies a Rally Die. At level 1, your Rally Die is a d6. A PC can spend their Rally Die to roll it, adding the result to their action roll, reaction roll, damage roll, or to clear a number of Stress equal to the result. At the end of each session, clear all unspent Rally Dice.

At level 5, your Rally Die increases to a d8.

", + "description": "

Note: At level 5 use Rally (Level 5) instead of Rally under class feature. (Automation will be implemented in a later release)


Bards are the most charismatic people in all the realms. Members of this class are masters of captivation and specialize in a variety of performance types, including singing, playing musical instruments, weaving tales, or telling jokes. Whether performing for an audience or speaking to an individual, bards thrive in social situations. Members of this profession bond and train at schools or guilds, but a current of egotism runs through those of the bardic persuasion. While they may be the most likely class to bring people together, a bard of ill temper can just as easily tear a party apart.

", "domains": [ "grace", "codex" @@ -58,22 +58,7 @@ "suggestedSecondaryWeapon": "Compendium.daggerheart.weapons.Item.wKklDxs5nkzILNp4", "suggestedArmor": "Compendium.daggerheart.armors.Item.yJFp1bfpecDcStVK" }, - "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 9, - "artist": "" - }, - "backgroundQuestions": [ - "Who from your community taught you to have such confidence in yourself?", - "You were in love once. Who did you adore, and how did they hurt you?", - "You’ve always looked up to another bard. Who are they, and why do you idolize them?" - ], - "connections": [ - "What made you realize we were going to be such good friends?", - "What do I do that annoys you?", - "Why do you grab my hand at night?" - ] + "isMulticlass": false }, "effects": [], "ownership": { @@ -81,6 +66,17 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754174600538, + "modifiedTime": 1755943467705, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_id": "vegl3bFOq3pcFTWT", "sort": 300000, "_key": "!items!vegl3bFOq3pcFTWT" diff --git a/src/packs/classes/class_Druid_ZNwUTCyGCEcidZFv.json b/src/packs/classes/class_Druid_ZNwUTCyGCEcidZFv.json index 09deb8e6..086d363e 100644 --- a/src/packs/classes/class_Druid_ZNwUTCyGCEcidZFv.json +++ b/src/packs/classes/class_Druid_ZNwUTCyGCEcidZFv.json @@ -4,7 +4,7 @@ "_id": "ZNwUTCyGCEcidZFv", "img": "icons/creatures/mammals/wolf-howl-moon-black.webp", "system": { - "description": "

Becoming a druid is more than an occupation; it’s a calling for those who wish to learn from and protect the magic of the wilderness. While one might underestimate a gentle druid who practices the often-quiet work of cultivating flora, druids who channel the untamed forces of nature are terrifying to behold. Druids cultivate their abilities in small groups, often connected by a specific ethos or locale, but some choose to work alone. Through years of study and dedication, druids can learn to transform into beasts and shape nature itself.

CLASS ITEMS

A small bag of rocks and bones or a strange pendant found in the dirt

DRUID’S HOPE FEATURE

Evolution: Spend 3 Hope to transform into a Beastform without marking a Stress. When you do, choose one trait to raise by +1 until you drop out of that Beastform.

CLASS FEATURES

Beastform: Mark a Stress to magically transform into a creature of your tier or lower from the Beastform list. You can drop out of this form at any time. While transformed, you can’t use weapons or cast spells from domain cards, but you can still use other features or abilities you have access to. Spells you cast before you transform stay active and last for their normal duration, and you can talk and communicate as normal. Additionally, you gain the Beastform’s features, add their Evasion bonus to your Evasion, and use the trait specified in their statistics for your attack. While you’re in a Beastform, your armor becomes part of your body and you mark Armor Slots as usual; when you drop out of a Beastform, those marked Armor Slots remain marked. If you mark your last Hit Point, you automatically drop out of this form.

Wildtouch: You can perform harmless, subtle effects that involve natureβ€”such as causing a flower to rapidly grow, summoning a slight gust of wind, or starting a campfireβ€”at will.

", + "description": "

Becoming a druid is more than an occupation; it’s a calling for those who wish to learn from and protect the magic of the wilderness. While one might underestimate a gentle druid who practices the often-quiet work of cultivating flora, druids who channel the untamed forces of nature are terrifying to behold. Druids cultivate their abilities in small groups, often connected by a specific ethos or locale, but some choose to work alone. Through years of study and dedication, druids can learn to transform into beasts and shape nature itself.

", "domains": [ "sage", "arcana" @@ -58,22 +58,7 @@ "suggestedSecondaryWeapon": "Compendium.daggerheart.weapons.Item.mxwWKDujgsRcZWPT", "suggestedArmor": "Compendium.daggerheart.armors.Item.nibfdNtp2PtxvbVz" }, - "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 10, - "artist": "" - }, - "backgroundQuestions": [ - "Why was the community you grew up in so reliant on nature and its creatures?", - "Who was the first wild animal you bonded with? Why did your bond end?", - "Who has been trying to hunt you down? What do they want from you?" - ], - "connections": [ - "What did you confide in me that makes me leap into danger for you every time?", - "What animal do I say you remind me of?", - "What affectionate nickname have you given me?" - ] + "isMulticlass": false }, "effects": [], "folder": null, @@ -83,5 +68,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754222247012, + "modifiedTime": 1755943479440, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!ZNwUTCyGCEcidZFv" } diff --git a/src/packs/classes/class_Guardian_nRAyoC0fOzXPDa4z.json b/src/packs/classes/class_Guardian_nRAyoC0fOzXPDa4z.json index eec4ba5a..b50f86ef 100644 --- a/src/packs/classes/class_Guardian_nRAyoC0fOzXPDa4z.json +++ b/src/packs/classes/class_Guardian_nRAyoC0fOzXPDa4z.json @@ -4,7 +4,7 @@ "_id": "nRAyoC0fOzXPDa4z", "img": "icons/equipment/shield/heater-wooden-sword-green.webp", "system": { - "description": "

The title of guardian represents an array of martial professions, speaking more to their moral compass and unshakeable fortitude than the means by which they fight. While many guardians join groups of militants for either a country or cause, they’re more likely to follow those few they truly care for, majority be damned. Guardians are known for fighting with remarkable ferocity even against overwhelming odds, defending their cohort above all else. Woe betide those who harm the ally of a guardian, as the guardian will answer this injury in kind.

CLASS ITEMS

A totem from your mentor or a secret key

GUARDIAN’S HOPE FEATURE

Frontline Tank: Spend 3 Hope to clear 2 Armor Slots.

CLASS FEATURE

Unstoppable: Once per long rest, you can become Unstoppable. You gain an Unstoppable Die. At level 1, your Unstoppable Die is a d4. Place it on your character sheet in the space provided, starting with the 1 value facing up. After you make a damage roll that deals 1 or more Hit Points to a target, increase the Unstoppable Die value by one. When the die’s value would exceed its maximum value or when the scene ends, remove the die and drop out of Unstoppable. At level 5, your Unstoppable Die increases to a d6.

While Unstoppable, you gain the following benefits:

β€’ You reduce the severity of physical damage by one threshold (Severe to Major, Major to Minor, Minor to None).

β€’ You add the current value of the Unstoppable Die to your damage roll.

β€’ You can’t be Restrained or Vulnerable.

", + "description": "

The title of guardian represents an array of martial professions, speaking more to their moral compass and unshakeable fortitude than the means by which they fight. While many guardians join groups of militants for either a country or cause, they’re more likely to follow those few they truly care for, majority be damned. Guardians are known for fighting with remarkable ferocity even against overwhelming odds, defending their cohort above all else. Woe betide those who harm the ally of a guardian, as the guardian will answer this injury in kind.

", "domains": [ "valor", "blade" @@ -54,22 +54,7 @@ "suggestedSecondaryWeapon": null, "suggestedArmor": "Compendium.daggerheart.armors.Item.haULhuEg37zUUvhb" }, - "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 15, - "artist": "" - }, - "backgroundQuestions": [ - "Who from your community did you fail to protect, and why do you still think of them?", - "You’ve been tasked with protecting something important and delivering\nit somewhere dangerous. What is it, and where does it need to go?", - "You consider an aspect of yourself to be a weakness. What is it, and how has it affected you?" - ], - "connections": [ - "How did I save your life the first time we met?", - "What small gift did you give me that you notice I always carry with me?", - "What lie have you told me about yourself that I absolutely believe?" - ] + "isMulticlass": false }, "effects": [], "folder": null, @@ -79,5 +64,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754246931974, + "modifiedTime": 1755943488697, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!nRAyoC0fOzXPDa4z" } diff --git a/src/packs/classes/class_Ranger_BTyfve69LKqoOi9S.json b/src/packs/classes/class_Ranger_BTyfve69LKqoOi9S.json index a0e16bf9..62e51c7d 100644 --- a/src/packs/classes/class_Ranger_BTyfve69LKqoOi9S.json +++ b/src/packs/classes/class_Ranger_BTyfve69LKqoOi9S.json @@ -4,7 +4,7 @@ "_id": "BTyfve69LKqoOi9S", "img": "icons/weapons/bows/shortbow-recurve-yellow-blue.webp", "system": { - "description": "

Rangers are highly skilled hunters who, despite their martial abilities, rarely lend their skills to an army. Through mastery of the body and a deep understanding of the wilderness, rangers become sly tacticians, pursuing their quarry with cunning and patience. Many rangers track and fight alongside an animal companion with whom they’ve forged a powerful spiritual bond. By honing their skills in the wild, rangers become expert trackers, as likely to ensnare their foes in a trap as they are to assail them head-on.

CLASS ITEMS

A trophy from your first kill or a seemingly broken compass

RANGER’S HOPE FEATURE

Hold Them Off: Spend 3 Hope when you succeed on an attack with a weapon to use that same roll against two additional adversaries within range of the attack.

CLASS FEATURE

Ranger’s Focus: Spend a Hope and make an attack against a target. On a success, deal your attack’s normal damage and temporarily make the attack’s target your Focus. Until this feature ends or you make a different creature your Focus, you gain the following benefits against your Focus:

β€’ You know precisely what direction they are in.

β€’ When you deal damage to them, they must mark a Stress.

β€’ When you fail an attack against them, you can end your Ranger’s Focus feature to reroll your Duality Dice.

", + "description": "

Rangers are highly skilled hunters who, despite their martial abilities, rarely lend their skills to an army. Through mastery of the body and a deep understanding of the wilderness, rangers become sly tacticians, pursuing their quarry with cunning and patience. Many rangers track and fight alongside an animal companion with whom they’ve forged a powerful spiritual bond. By honing their skills in the wild, rangers become expert trackers, as likely to ensnare their foes in a trap as they are to assail them head-on.

", "domains": [ "bone", "sage" @@ -54,22 +54,7 @@ "suggestedSecondaryWeapon": null, "suggestedArmor": "Compendium.daggerheart.armors.Item.nibfdNtp2PtxvbVz" }, - "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 16, - "artist": "" - }, - "backgroundQuestions": [ - "A terrible creature hurt your community, and you’ve vowed to hunt them down. What are they, and what unique trail or sign do they leave behind?", - "Your first kill almost killed you, too. What was it, and what part of you was never the same after that event?", - "You’ve traveled many dangerous lands, but what is the one place you refuse to go?" - ], - "connections": [ - "What friendly competition do we have?", - "Why do you act differently when we’re alone than when others are around?", - "What threat have you asked me to watch for, and why are you worried about it?" - ] + "isMulticlass": false }, "effects": [], "folder": null, @@ -79,5 +64,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754268869310, + "modifiedTime": 1755943505024, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!BTyfve69LKqoOi9S" } diff --git a/src/packs/classes/class_Rogue_CvHlkHZfpMiCz5uT.json b/src/packs/classes/class_Rogue_CvHlkHZfpMiCz5uT.json index 64602794..146ad340 100644 --- a/src/packs/classes/class_Rogue_CvHlkHZfpMiCz5uT.json +++ b/src/packs/classes/class_Rogue_CvHlkHZfpMiCz5uT.json @@ -4,7 +4,7 @@ "_id": "CvHlkHZfpMiCz5uT", "img": "icons/magic/defensive/shield-barrier-blades-teal.webp", "system": { - "description": "

Rogues are scoundrels, often in both attitude and practice. Broadly known as liars and thieves, the best among this class move through the world anonymously. Utilizing their sharp wits and blades, rogues trick their foes through social manipulation as easily as breaking locks, climbing through windows, or dealing underhanded blows. These masters of magical craft manipulate shadow and movement, adding an array of useful and deadly tools to their repertoire. Rogues frequently establish guilds to meet future accomplices, hire out jobs, and hone secret skills, proving that there’s honor among thieves for those who know where to look.

CLASS ITEMS

A set of forgery tools or a grappling hook

ROGUE’S HOPE FEATURE

Rogue’s Dodge: Spend 3 Hope to gain a +2 bonus to your Evasion until the next time an attack succeeds against you. Otherwise, this bonus lasts until your next rest.

CLASS FEATURES

Cloaked: Any time you would be Hidden, you are instead Cloaked. In addition to the benefits of the Hidden condition, while Cloaked you remain unseen if you are stationary when an adversary moves to where they would normally see you.

After you make an attack or end a move within line of sight of an adversary, you are no longer Cloaked.

Sneak Attack: When you succeed on an attack while Cloaked or while an ally is within Melee range of your target, add a number of d6s equal to your tier to your damage roll.

", + "description": "

Rogues are scoundrels, often in both attitude and practice. Broadly known as liars and thieves, the best among this class move through the world anonymously. Utilizing their sharp wits and blades, rogues trick their foes through social manipulation as easily as breaking locks, climbing through windows, or dealing underhanded blows. These masters of magical craft manipulate shadow and movement, adding an array of useful and deadly tools to their repertoire. Rogues frequently establish guilds to meet future accomplices, hire out jobs, and hone secret skills, proving that there’s honor among thieves for those who know where to look.

", "domains": [ "midnight", "grace" @@ -58,22 +58,7 @@ "suggestedSecondaryWeapon": "Compendium.daggerheart.weapons.Item.wKklDxs5nkzILNp4", "suggestedArmor": "Compendium.daggerheart.armors.Item.yJFp1bfpecDcStVK" }, - "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 19, - "artist": "" - }, - "backgroundQuestions": [ - "What did you get caught doing that got you exiled from your home community?", - "You used to have a different life, but you’ve tried to leave it behind. Who from your past is still chasing you?", - "Who from your past were you most sad to say goodbye to?" - ], - "connections": [ - "What did I recently convince you to do that got us both in trouble?", - "What have I discovered about your past that I hold secret from the others?", - "Who do you know from my past, and how have they influenced your feelings about me?" - ] + "isMulticlass": false }, "effects": [], "folder": null, @@ -83,5 +68,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754325275832, + "modifiedTime": 1755943515533, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!CvHlkHZfpMiCz5uT" } diff --git a/src/packs/classes/class_Seraph_5ZnlJ5bEoyOTkUJv.json b/src/packs/classes/class_Seraph_5ZnlJ5bEoyOTkUJv.json index 479aa70d..6a2b70a1 100644 --- a/src/packs/classes/class_Seraph_5ZnlJ5bEoyOTkUJv.json +++ b/src/packs/classes/class_Seraph_5ZnlJ5bEoyOTkUJv.json @@ -4,7 +4,7 @@ "_id": "5ZnlJ5bEoyOTkUJv", "img": "icons/magic/holy/barrier-shield-winged-cross.webp", "system": { - "description": "

Seraphs are divine fighters and healers imbued with sacred purpose. A wide array of deities exist within the realms, and thus numerous kinds of seraphs are appointed by these gods. Their ethos traditionally aligns with the domain or goals of their god, such as defending the weak, exacting vengeance, protecting a land or artifact, or upholding a particular faith. Some seraphs ally themselves with an army or locale, much to the satisfaction of their rulers, but other crusaders fight in opposition to the follies of the Mortal Realm. It is better to be a seraph’s ally than their enemy, as they are terrifying foes to those who defy their purpose.

CLASS ITEMS

A bundle of offerings or a sigil of your god

SERAPH’S HOPE FEATURE

Life Support: Spend 3 Hope to clear a Hit Point on an ally within Close range.

CLASS FEATURE

Prayer Dice: At the beginning of each session, roll a number of d4s equal to your subclass’s Spellcast trait and place them on your character sheet in the space provided. These are your Prayer Dice. You can spend any number of Prayer Dice to aid yourself or an ally within Far range. You can use a spent die’s value to reduce incoming damage, add to a roll’s result after the roll is made, or gain Hope equal to the result. At the end of each session, clear all unspent Prayer Dice.

", + "description": "

Seraphs are divine fighters and healers imbued with sacred purpose. A wide array of deities exist within the realms, and thus numerous kinds of seraphs are appointed by these gods. Their ethos traditionally aligns with the domain or goals of their god, such as defending the weak, exacting vengeance, protecting a land or artifact, or upholding a particular faith. Some seraphs ally themselves with an army or locale, much to the satisfaction of their rulers, but other crusaders fight in opposition to the follies of the Mortal Realm. It is better to be a seraph’s ally than their enemy, as they are terrifying foes to those who defy their purpose.

", "domains": [ "valor", "splendor" @@ -54,30 +54,26 @@ "suggestedSecondaryWeapon": "Compendium.daggerheart.weapons.Item.mxwWKDujgsRcZWPT", "suggestedArmor": "Compendium.daggerheart.armors.Item.haULhuEg37zUUvhb" }, - "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 20, - "artist": "" - }, - "backgroundQuestions": [ - "Which god did you devote yourself to? What incredible feat did they perform for you in a moment of desperation?", - "How did your appearance change after taking your oath?", - "In what strange or unique way do you communicate with your god?" - ], - "connections": [ - "What promise did you make me agree to, should you die on the battlefield?", - "Why do you ask me so many questions about my god?", - "You’ve told me to protect one member of our party above all others, even yourself. Who are they and why?" - ] + "isMulticlass": false }, "effects": [], "folder": null, - "sort": 737500, + "sort": 0, "ownership": { "default": 0, "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754351482530, + "modifiedTime": 1755943523935, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!5ZnlJ5bEoyOTkUJv" } diff --git a/src/packs/classes/class_Sorcerer_DchOzHcWIJE9FKcR.json b/src/packs/classes/class_Sorcerer_DchOzHcWIJE9FKcR.json index c2780c92..0d3d71ac 100644 --- a/src/packs/classes/class_Sorcerer_DchOzHcWIJE9FKcR.json +++ b/src/packs/classes/class_Sorcerer_DchOzHcWIJE9FKcR.json @@ -4,7 +4,7 @@ "_id": "DchOzHcWIJE9FKcR", "img": "icons/magic/symbols/rune-sigil-horned-white-purple.webp", "system": { - "description": "

Not all innate magic users choose to hone their craft, but those who do can become powerful sorcerers. The gifts of these wielders are passed down through families, even if the family is unaware of or reluctant to practice them. A sorcerer’s abilities can range from the elemental to the illusionary and beyond, and many practitioners band together into collectives based on their talents. The act of becoming a formidable sorcerer is not the practice of acquiring power, but learning to cultivate and control the power one already possesses. The magic of a misguided or undisciplined sorcerer is a dangerous force indeed.

CLASS ITEMS

A whispering orb or a family heirloom

SORCERER’S HOPE FEATURE

Volatile Magic: Spend 3 Hope to reroll any number of your damage dice on an attack that deals magic damage.

CLASS FEATURES

Arcane Sense: You can sense the presence of magical people and objects within Close range.

Minor Illusion: Make a Spellcast Roll (10). On a success, you create a minor visual illusion no larger than yourself

within Close range. This illusion is convincing to anyone at Close range or farther.

Channel Raw Power: Once per long rest, you can place a domain card from your loadout into your vault and choose to either:

β€’ Gain Hope equal to the level of the card.

β€’ Enhance a spell that deals damage, gaining a bonus to your damage roll equal to twice the level of the card.

", + "description": "

Not all innate magic users choose to hone their craft, but those who do can become powerful sorcerers. The gifts of these wielders are passed down through families, even if the family is unaware of or reluctant to practice them. A sorcerer’s abilities can range from the elemental to the illusionary and beyond, and many practitioners band together into collectives based on their talents. The act of becoming a formidable sorcerer is not the practice of acquiring power, but learning to cultivate and control the power one already possesses. The magic of a misguided or undisciplined sorcerer is a dangerous

force indeed.

", "domains": [ "arcana", "midnight" @@ -62,30 +62,26 @@ "suggestedSecondaryWeapon": null, "suggestedArmor": "Compendium.daggerheart.armors.Item.yJFp1bfpecDcStVK" }, - "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 22, - "artist": "" - }, - "backgroundQuestions": [ - "What did you do that made the people in your community wary of you?", - "What mentor taught you to control your untamed magic, and why are they no longer able to guide you?", - "You have a deep fear you hide from everyone. What is it, and why does it scare you?" - ], - "connections": [ - "Why do you trust me so deeply?", - "What did I do that makes you cautious around me?", - "Why do we keep our shared past a secret?" - ] + "isMulticlass": false }, "effects": [], "folder": null, - "sort": 743750, + "sort": 0, "ownership": { "default": 0, "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754349743129, + "modifiedTime": 1755943536635, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!DchOzHcWIJE9FKcR" } diff --git a/src/packs/classes/class_Warrior_xCUWwJz4WSthvLfy.json b/src/packs/classes/class_Warrior_xCUWwJz4WSthvLfy.json index 67ccade8..2d120f8e 100644 --- a/src/packs/classes/class_Warrior_xCUWwJz4WSthvLfy.json +++ b/src/packs/classes/class_Warrior_xCUWwJz4WSthvLfy.json @@ -4,7 +4,7 @@ "_id": "xCUWwJz4WSthvLfy", "img": "icons/weapons/swords/sword-broad-crystal-paired.webp", "system": { - "description": "

Becoming a warrior requires years, often a lifetime, of training and dedication to the mastery of weapons and violence. While many who seek to fight hone only their strength, warriors understand the importance of an agile body and mind, making them some of the most sought-after fighters across the realms. Frequently, warriors find employment within an army, a band of mercenaries, or even a royal guard, but their potential is wasted in any position where they cannot continue to improve and expand their skills. Warriors are known to have a favored weapon; to come between them and their blade would be a grievous mistake.

CLASS ITEMS

The drawing of a lover or a sharpening stone

WARRIOR’S HOPE FEATURE

No Mercy: Spend 3 Hope to gain a +1 bonus to your attack rolls until your next rest.

CLASS FEATURES

Attack of Opportunity: If an adversary within Melee range attempts to leave that range, make a reaction roll using a trait of your choice against their Difficulty. Choose one effect on a success, or two if you critically succeed:

β€’ They can’t move from where they are.

β€’ You deal damage to them equal to your primary weapon’s damage.

β€’ You move with them.

Combat Training: You ignore burden when equipping weapons. When you deal physical damage, you gain a bonus to your damage roll equal to your level.

", + "description": "

Becoming a warrior requires years, often a lifetime, of training and dedication to the mastery of weapons and violence. While many who seek to fight hone only their strength, warriors understand the importance of an agile body and mind, making them some of the most sought-after fighters across the realms. Frequently, warriors find employment within an army, a band of mercenaries, or even a royal guard, but their potential is wasted in any position where they cannot continue to improve and expand their skills. Warriors are known to have a favored weapon; to come between them and their blade would be a grievous mistake.

", "domains": [ "blade", "bone" @@ -58,22 +58,7 @@ "suggestedSecondaryWeapon": null, "suggestedArmor": "Compendium.daggerheart.armors.Item.haULhuEg37zUUvhb" }, - "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 23, - "artist": "" - }, - "backgroundQuestions": [ - "Who taught you to fight, and why did they stay behind when you left home?", - "Somebody defeated you in battle years ago and left you to die. Who was it, and how did they betray you?", - "What legendary place have you always wanted to visit, and why is it so special?" - ], - "connections": [ - "We knew each other long before this party came together. How?", - "What mundane task do you usually help me with off the battlefield?", - "What fear am I helping you overcome?" - ] + "isMulticlass": false }, "effects": [], "folder": null, @@ -83,5 +68,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754255776706, + "modifiedTime": 1755943545980, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!xCUWwJz4WSthvLfy" } diff --git a/src/packs/classes/class_Wizard_5LwX4m8ziY3F1ZGC.json b/src/packs/classes/class_Wizard_5LwX4m8ziY3F1ZGC.json index 7257ea38..0955e68a 100644 --- a/src/packs/classes/class_Wizard_5LwX4m8ziY3F1ZGC.json +++ b/src/packs/classes/class_Wizard_5LwX4m8ziY3F1ZGC.json @@ -4,7 +4,7 @@ "_id": "5LwX4m8ziY3F1ZGC", "img": "icons/magic/symbols/circled-gem-pink.webp", "system": { - "description": "

Whether through an institution or individual study, those known as wizards acquire and hone immense magical power over years of learning using a variety of tools, including books, stones, potions, and herbs. Some wizards dedicate their lives to mastering a particular school of magic, while others learn from a wide variety of disciplines. Many wizards become wise and powerful figures in their communities, advising rulers, providing medicines and healing, and even leading war councils. While these mages all work toward the common goal of collecting magical knowledge, wizards often have the most conflict within their own ranks, as the acquisition, keeping, and sharing of powerful secrets is a topic of intense debate that has resulted in innumerable deaths.

CLASS ITEMS

A book you’re trying to translate or a tiny, harmless elemental pet

WIZARD’S HOPE FEATURE

Not This Time: Spend 3 Hope to force an adversary within Far range to reroll an attack or damage roll.

CLASS FEATURES

Prestidigitation: You can perform harmless, subtle magical effects at will. For example, you can change an object’s color, create a smell, light a candle, cause a tiny object to float, illuminate a room, or repair a small object.

Strange Patterns: Choose a number between 1 and 12. When you roll that number on a Duality Die, gain a Hope or clear a Stress.

You can change this number when you take a long rest.

", + "description": "

Whether through an institution or individual study, those known as wizards acquire and hone immense magical power over years of learning using a variety of tools, including books, stones, potions, and herbs. Some wizards dedicate their lives to mastering a particular school of magic, while others learn from a wide variety of disciplines. Many wizards become wise and powerful figures in their communities, advising rulers, providing medicines and healing, and even leading war councils. While these mages all work toward the common goal of collecting magical knowledge, wizards often have the most conflict within their own ranks, as the acquisition, keeping, and sharing of powerful secrets is a topic of intense debate that has resulted in innumerable deaths.

", "domains": [ "codex", "splendor" @@ -58,22 +58,7 @@ "suggestedSecondaryWeapon": null, "suggestedArmor": "Compendium.daggerheart.armors.Item.nibfdNtp2PtxvbVz" }, - "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - }, - "backgroundQuestions": [ - "What responsibilities did your community once count on you for?\nHow did you let them down?", - "You’ve spent your life searching for a book or object of great\nsignificance. What is it, and why is it so important to you?", - "You have a powerful rival. Who are they, and why are you so determined to defeat them?" - ], - "connections": [ - "What favor have I asked of you that you’re not sure you can fulfill?", - "What weird hobby or strange fascination do we both share?", - "What secret about yourself have you entrusted only to me?" - ] + "isMulticlass": false }, "effects": [], "folder": null, @@ -83,5 +68,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754253505323, + "modifiedTime": 1755943555087, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!5LwX4m8ziY3F1ZGC" } diff --git a/src/packs/classes/feature_Arcane_Sense_CHK32dfCTTyuxV1A.json b/src/packs/classes/feature_Arcane_Sense_CHK32dfCTTyuxV1A.json index a3d16983..493a5336 100644 --- a/src/packs/classes/feature_Arcane_Sense_CHK32dfCTTyuxV1A.json +++ b/src/packs/classes/feature_Arcane_Sense_CHK32dfCTTyuxV1A.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 22, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754349703843, + "modifiedTime": 1754349703843, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!CHK32dfCTTyuxV1A" } diff --git a/src/packs/classes/feature_Attack_Of_Opportunity_3hNVqD1c0VIw2Nj5.json b/src/packs/classes/feature_Attack_Of_Opportunity_3hNVqD1c0VIw2Nj5.json index 5f7f9047..4fc8f904 100644 --- a/src/packs/classes/feature_Attack_Of_Opportunity_3hNVqD1c0VIw2Nj5.json +++ b/src/packs/classes/feature_Attack_Of_Opportunity_3hNVqD1c0VIw2Nj5.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 23, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754257407143, + "modifiedTime": 1754257470399, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!3hNVqD1c0VIw2Nj5" } diff --git a/src/packs/classes/feature_Beastform_P1K0jcnH2RiS6TLd.json b/src/packs/classes/feature_Beastform_P1K0jcnH2RiS6TLd.json index ba091341..c93225e2 100644 --- a/src/packs/classes/feature_Beastform_P1K0jcnH2RiS6TLd.json +++ b/src/packs/classes/feature_Beastform_P1K0jcnH2RiS6TLd.json @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -39,12 +40,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 10, - "artist": "" - } + "originId": null }, "effects": [], "sort": 200000, @@ -53,5 +49,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754221796297, + "modifiedTime": 1754246230370, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!P1K0jcnH2RiS6TLd" } diff --git a/src/packs/classes/feature_Channel_Raw_Power_P02cbN50LIoD662z.json b/src/packs/classes/feature_Channel_Raw_Power_P02cbN50LIoD662z.json index 1680bda6..f01b29b1 100644 --- a/src/packs/classes/feature_Channel_Raw_Power_P02cbN50LIoD662z.json +++ b/src/packs/classes/feature_Channel_Raw_Power_P02cbN50LIoD662z.json @@ -15,7 +15,16 @@ "description": "

Once per long rest, you can place a domain card from your loadout into your vault and choose to either:

  • Gain Hope equal to the level of the card.

  • Enhance a spell that deals damage, gaining a bonus to your damage roll equal to twice the level of the card.

", "chatDisplay": true, "actionType": "action", - "cost": [], + "cost": [ + { + "scalable": false, + "key": "hitPoints", + "value": 1, + "keyIsID": false, + "step": null, + "consumeOnSuccess": false + } + ], "uses": { "value": null, "max": "1", @@ -33,12 +42,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 22, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -47,5 +51,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754349703843, + "modifiedTime": 1754498040342, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!P02cbN50LIoD662z" } diff --git a/src/packs/classes/feature_Cloaked_5IT8wYa0m1EFw8Zp.json b/src/packs/classes/feature_Cloaked_5IT8wYa0m1EFw8Zp.json index 342d4af3..d5067bf7 100644 --- a/src/packs/classes/feature_Cloaked_5IT8wYa0m1EFw8Zp.json +++ b/src/packs/classes/feature_Cloaked_5IT8wYa0m1EFw8Zp.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 19, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754324132841, + "modifiedTime": 1754324172617, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!5IT8wYa0m1EFw8Zp" } diff --git a/src/packs/classes/feature_Combat_Training_eoSmuAJmgHUyULtp.json b/src/packs/classes/feature_Combat_Training_eoSmuAJmgHUyULtp.json index d28f360c..83121c84 100644 --- a/src/packs/classes/feature_Combat_Training_eoSmuAJmgHUyULtp.json +++ b/src/packs/classes/feature_Combat_Training_eoSmuAJmgHUyULtp.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 23, - "artist": "" - } + "originId": null }, "effects": [ { @@ -62,7 +57,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754257517884, + "modifiedTime": 1754257790010, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!eoSmuAJmgHUyULtp.Y7sTM0tw0VpgU6pC" } @@ -73,5 +76,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754257489875, + "modifiedTime": 1754257512503, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!eoSmuAJmgHUyULtp" } diff --git a/src/packs/classes/feature_Evolution_6rlxhrRwFaVgq9fe.json b/src/packs/classes/feature_Evolution_6rlxhrRwFaVgq9fe.json index 46380fe8..ed9b87e3 100644 --- a/src/packs/classes/feature_Evolution_6rlxhrRwFaVgq9fe.json +++ b/src/packs/classes/feature_Evolution_6rlxhrRwFaVgq9fe.json @@ -5,7 +5,7 @@ "_id": "6rlxhrRwFaVgq9fe", "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp", "system": { - "description": "

Spend 3 Hope to transform into a Beastform without marking a Stress. When you do, choose one trait to raise by +1 until you drop out of that Beastform.

Note: Toggle one of the Evolution Traits in the effects tab to raise a trait by 1, e.g. Evolution: Agility

", + "description": "

Spend 3 Hope to transform into a Beastform without marking a Stress. When you do, choose one trait to raise by +1 until you drop out of that Beastform.

Note: Manually increase your trait on character sheet if this is in effect.

", "resource": null, "actions": { "bj4m9E8ObFT0xDQ4": { @@ -20,6 +20,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null } ], @@ -39,278 +40,25 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 10, - "artist": "" - } + "originId": null }, - "effects": [ - { - "name": "Evolution: Agility", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "_id": "vQOqLZAxOltAzsVv", - "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp", - "changes": [ - { - "key": "system.traits.agility.value", - "mode": 2, - "value": "1", - "priority": null - } - ], - "disabled": true, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

Toggle this for +1 to Agility when using Evolution. Turn it off when you leave Beastform.

", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!6rlxhrRwFaVgq9fe.vQOqLZAxOltAzsVv" - }, - { - "name": "Evolution: Strength", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "_id": "cwEsO1NZpkQHuoTT", - "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp", - "changes": [ - { - "key": "system.traits.strength.value", - "mode": 2, - "value": "1", - "priority": null - } - ], - "disabled": true, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

Toggle this for +1 to Strength when using Evolution. Turn it off when you leave Beastform.

", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!6rlxhrRwFaVgq9fe.cwEsO1NZpkQHuoTT" - }, - { - "name": "Evolution: Finesse", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "_id": "8P0nwRHNsVnHVPjq", - "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp", - "changes": [ - { - "key": "system.traits.finesse.value", - "mode": 2, - "value": "1", - "priority": null - } - ], - "disabled": true, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

Toggle this for +1 to Finesse when using Evolution. Turn it off when you leave Beastform.

", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!6rlxhrRwFaVgq9fe.8P0nwRHNsVnHVPjq" - }, - { - "name": "Evolution: Instinct", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "_id": "i2GhNGo5TnGtLuA0", - "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp", - "changes": [ - { - "key": "system.traits.instinct.value", - "mode": 2, - "value": "1", - "priority": null - } - ], - "disabled": true, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

Toggle this for +1 to Instinct when using Evolution. Turn it off when you leave Beastform.

", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!6rlxhrRwFaVgq9fe.i2GhNGo5TnGtLuA0" - }, - { - "name": "Evolution: Presence", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "_id": "APQF1in1LXjBZh9n", - "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp", - "changes": [ - { - "key": "system.traits.presence.value", - "mode": 2, - "value": "1", - "priority": null - } - ], - "disabled": true, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

Toggle this for +1 to Presence when using Evolution. Turn it off when you leave Beastform.

", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!6rlxhrRwFaVgq9fe.APQF1in1LXjBZh9n" - }, - { - "name": "Evolution: Knowledge", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "_id": "WwOvGJYJb4d37cOy", - "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp", - "changes": [ - { - "key": "system.traits.knowledge.value", - "mode": 2, - "value": "1", - "priority": null - } - ], - "disabled": true, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

Toggle this for +1 to Knowledge when using Evolution. Turn it off when you leave Beastform.

", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!6rlxhrRwFaVgq9fe.WwOvGJYJb4d37cOy" - } - ], + "effects": [], "sort": 100000, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754221506611, + "modifiedTime": 1754353698203, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!6rlxhrRwFaVgq9fe" } diff --git a/src/packs/classes/feature_Frontline_Tank_YS1g7YdWwOaS629x.json b/src/packs/classes/feature_Frontline_Tank_YS1g7YdWwOaS629x.json index 7b7be61a..af403628 100644 --- a/src/packs/classes/feature_Frontline_Tank_YS1g7YdWwOaS629x.json +++ b/src/packs/classes/feature_Frontline_Tank_YS1g7YdWwOaS629x.json @@ -20,6 +20,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null } ], @@ -59,7 +60,7 @@ "includeBase": false }, "target": { - "type": "self", + "type": "any", "amount": null }, "effects": [], @@ -80,16 +81,11 @@ }, "name": "Spend Hope", "img": "icons/magic/defensive/shield-barrier-flaming-pentagon-orange.webp", - "range": "self" + "range": "" } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 15, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -98,5 +94,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754246687097, + "modifiedTime": 1754246740977, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!YS1g7YdWwOaS629x" } diff --git a/src/packs/classes/feature_Hold_Them_Off_2Cyb9ZeuAesf5Sb3.json b/src/packs/classes/feature_Hold_Them_Off_2Cyb9ZeuAesf5Sb3.json index 84a444fd..b99116da 100644 --- a/src/packs/classes/feature_Hold_Them_Off_2Cyb9ZeuAesf5Sb3.json +++ b/src/packs/classes/feature_Hold_Them_Off_2Cyb9ZeuAesf5Sb3.json @@ -5,14 +5,14 @@ "_id": "2Cyb9ZeuAesf5Sb3", "img": "icons/magic/defensive/barrier-shield-dome-deflect-teal.webp", "system": { - "description": "

Spend 3 Hope when you succeed on an attack with a weapon to use that same roll against two additional adversaries within range of the attack.

", + "description": "

Spend 3 Hope when you succeed on an attack with a weapon to use that same roll against two additional adversaries within range of the attack.

", "resource": null, "actions": { "yhVUna5biFAN0o2Y": { "type": "effect", "_id": "yhVUna5biFAN0o2Y", "systemPath": "actions", - "description": "

Spend 3 Hope when you succeed on an attack with a weapon to use that same roll against two additional adversaries within range of the attack.

", + "description": "

Spend 3 Hope when you succeed on an attack with a weapon to use that same roll against two additional adversaries within range of the attack.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -20,6 +20,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null } ], @@ -39,12 +40,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 16, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -53,5 +49,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754268431889, + "modifiedTime": 1754268481364, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!2Cyb9ZeuAesf5Sb3" } diff --git a/src/packs/classes/feature_Life_Support_lSlvSUHbOoX36q2j.json b/src/packs/classes/feature_Life_Support_lSlvSUHbOoX36q2j.json index 9c4fc450..289401df 100644 --- a/src/packs/classes/feature_Life_Support_lSlvSUHbOoX36q2j.json +++ b/src/packs/classes/feature_Life_Support_lSlvSUHbOoX36q2j.json @@ -20,6 +20,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -86,12 +87,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 20, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -100,5 +96,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754352191693, + "modifiedTime": 1754352366258, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!lSlvSUHbOoX36q2j" } diff --git a/src/packs/classes/feature_Make_a_Scene_N9E5skDDK2VgvohR.json b/src/packs/classes/feature_Make_a_Scene_N9E5skDDK2VgvohR.json index 1a444728..0b06f0f2 100644 --- a/src/packs/classes/feature_Make_a_Scene_N9E5skDDK2VgvohR.json +++ b/src/packs/classes/feature_Make_a_Scene_N9E5skDDK2VgvohR.json @@ -19,6 +19,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null } ], @@ -43,12 +44,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 9, - "artist": "" - } + "originId": null }, "effects": [ { @@ -90,12 +86,29 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!N9E5skDDK2VgvohR.8G9zDv1gac6dEHmS" } ], "flags": {}, + "_stats": { + "compendiumSource": "Compendium.daggerheart.classes.Item.OxmucTHHfuBSv2dn", + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174534518, + "modifiedTime": 1754246214305, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/classes/feature_Minor_Illusion_cshTYdtz9yoXYYB3.json b/src/packs/classes/feature_Minor_Illusion_cshTYdtz9yoXYYB3.json index fe18f68b..1bb9865b 100644 --- a/src/packs/classes/feature_Minor_Illusion_cshTYdtz9yoXYYB3.json +++ b/src/packs/classes/feature_Minor_Illusion_cshTYdtz9yoXYYB3.json @@ -57,12 +57,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 22, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -71,5 +66,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754349703843, + "modifiedTime": 1754349703843, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!cshTYdtz9yoXYYB3" } diff --git a/src/packs/classes/feature_No_Mercy_njj2C3tMDeCHHOoh.json b/src/packs/classes/feature_No_Mercy_njj2C3tMDeCHHOoh.json index 4d10c3b9..fd65ec54 100644 --- a/src/packs/classes/feature_No_Mercy_njj2C3tMDeCHHOoh.json +++ b/src/packs/classes/feature_No_Mercy_njj2C3tMDeCHHOoh.json @@ -20,6 +20,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -37,21 +38,16 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Spend Hope", "img": "icons/magic/holy/barrier-shield-winged-blue.webp", - "range": "self" + "range": "" } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 23, - "artist": "" - } + "originId": null }, "effects": [ { @@ -93,7 +89,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754257373200, + "modifiedTime": 1754257387570, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!njj2C3tMDeCHHOoh.XK4cCcz9sRGDJr0q" } @@ -104,5 +108,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754257270096, + "modifiedTime": 1754257373211, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!njj2C3tMDeCHHOoh" } diff --git a/src/packs/classes/feature_Not_This_Time_h3VE0jhcM5xHKBs4.json b/src/packs/classes/feature_Not_This_Time_h3VE0jhcM5xHKBs4.json index fc61adaa..43b53093 100644 --- a/src/packs/classes/feature_Not_This_Time_h3VE0jhcM5xHKBs4.json +++ b/src/packs/classes/feature_Not_This_Time_h3VE0jhcM5xHKBs4.json @@ -20,6 +20,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -41,12 +42,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -55,5 +51,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754254821288, + "modifiedTime": 1754254888546, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!h3VE0jhcM5xHKBs4" } diff --git a/src/packs/classes/feature_Prayer_Dice_Xd7RYhfTxIj9aWI2.json b/src/packs/classes/feature_Prayer_Dice_Xd7RYhfTxIj9aWI2.json index 824e709a..8203a246 100644 --- a/src/packs/classes/feature_Prayer_Dice_Xd7RYhfTxIj9aWI2.json +++ b/src/packs/classes/feature_Prayer_Dice_Xd7RYhfTxIj9aWI2.json @@ -15,12 +15,7 @@ }, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 20, - "artist": "" - } + "originId": null }, "effects": [], "sort": 100000, @@ -29,5 +24,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1754352649696, + "modifiedTime": 1754845640002, + "lastModifiedBy": "H02dtt2xvVJvYESk" + }, "_key": "!items!Xd7RYhfTxIj9aWI2" } diff --git a/src/packs/classes/feature_Prestidigitation_SG2uw8h5YuwDviCn.json b/src/packs/classes/feature_Prestidigitation_SG2uw8h5YuwDviCn.json index 611e9bcb..3757fde2 100644 --- a/src/packs/classes/feature_Prestidigitation_SG2uw8h5YuwDviCn.json +++ b/src/packs/classes/feature_Prestidigitation_SG2uw8h5YuwDviCn.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754254907799, + "modifiedTime": 1754254926599, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!SG2uw8h5YuwDviCn" } diff --git a/src/packs/classes/feature_Rally_PydiMnNCKpd44SGS.json b/src/packs/classes/feature_Rally_PydiMnNCKpd44SGS.json index e8d4c3c9..c5933ca8 100644 --- a/src/packs/classes/feature_Rally_PydiMnNCKpd44SGS.json +++ b/src/packs/classes/feature_Rally_PydiMnNCKpd44SGS.json @@ -36,12 +36,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 9, - "artist": "" - } + "originId": null }, "effects": [ { @@ -83,12 +78,29 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!PydiMnNCKpd44SGS.FrSJH9vzDHkFGYQL" } ], "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174497668, + "modifiedTime": 1754494820213, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/classes/feature_Rally__Level_5__TVeEyqmPPiRa2r3i.json b/src/packs/classes/feature_Rally__Level_5__TVeEyqmPPiRa2r3i.json index 46717fcb..da124244 100644 --- a/src/packs/classes/feature_Rally__Level_5__TVeEyqmPPiRa2r3i.json +++ b/src/packs/classes/feature_Rally__Level_5__TVeEyqmPPiRa2r3i.json @@ -36,12 +36,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 9, - "artist": "" - } + "originId": null }, "effects": [ { @@ -83,12 +78,29 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!TVeEyqmPPiRa2r3i.8CFxYJV8zE6Wabwj" } ], "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174499893, + "modifiedTime": 1754494835723, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/classes/feature_Ranger_s_Focus_ncLx2P8BOUtrAD38.json b/src/packs/classes/feature_Ranger_s_Focus_ncLx2P8BOUtrAD38.json index b744c4c5..a8b7fa77 100644 --- a/src/packs/classes/feature_Ranger_s_Focus_ncLx2P8BOUtrAD38.json +++ b/src/packs/classes/feature_Ranger_s_Focus_ncLx2P8BOUtrAD38.json @@ -17,6 +17,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -28,12 +29,7 @@ "max": "", "recovery": null }, - "effects": [ - { - "_id": "SXi2dQWqpwY9fap4", - "onSave": false - } - ], + "effects": [], "target": { "type": "any", "amount": null @@ -44,56 +40,25 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 17, - "artist": "" - } + "originId": null }, - "effects": [ - { - "name": "Ranger's Focus", - "img": "icons/magic/perception/eye-ringed-green.webp", - "origin": "Compendium.daggerheart.classes.Item.ncLx2P8BOUtrAD38", - "transfer": false, - "_id": "SXi2dQWqpwY9fap4", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "changes": [], - "disabled": false, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

Until this feature ends or the ranger makes a different creature their Focus, they gain the following benefits against this adversary:

  • They know precisely what direction they are in.

  • When they deal damage to them, the adverasry must mark a Stress.

  • When they fail an attack against them, they can end their Ranger’s Focus feature to reroll their Duality Dice.

", - "tint": "#ffffff", - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!ncLx2P8BOUtrAD38.SXi2dQWqpwY9fap4" - } - ], + "effects": [], "sort": 0, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754268505051, + "modifiedTime": 1754268589700, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!ncLx2P8BOUtrAD38" } diff --git a/src/packs/classes/feature_Rogue_s_Dodge_hVaaPIjxoextIgSL.json b/src/packs/classes/feature_Rogue_s_Dodge_hVaaPIjxoextIgSL.json index 231295fc..b544f70a 100644 --- a/src/packs/classes/feature_Rogue_s_Dodge_hVaaPIjxoextIgSL.json +++ b/src/packs/classes/feature_Rogue_s_Dodge_hVaaPIjxoextIgSL.json @@ -20,6 +20,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null } ], @@ -35,7 +36,7 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Spend Hope", @@ -44,12 +45,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 19, - "artist": "" - } + "originId": null }, "effects": [ { @@ -75,7 +71,7 @@ "priority": null } ], - "disabled": false, + "disabled": true, "duration": { "startTime": null, "combat": null, @@ -91,7 +87,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754323997794, + "modifiedTime": 1754351805065, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!hVaaPIjxoextIgSL.hhVjBro2osGDTT5g" } @@ -102,5 +106,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754323951411, + "modifiedTime": 1754324053728, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!hVaaPIjxoextIgSL" } diff --git a/src/packs/classes/feature_Sneak_Attack_5QqpEwmwkPfZHpMW.json b/src/packs/classes/feature_Sneak_Attack_5QqpEwmwkPfZHpMW.json index 505a96cb..ec203e9a 100644 --- a/src/packs/classes/feature_Sneak_Attack_5QqpEwmwkPfZHpMW.json +++ b/src/packs/classes/feature_Sneak_Attack_5QqpEwmwkPfZHpMW.json @@ -7,14 +7,37 @@ "system": { "description": "

When you succeed on an attack while Cloaked or while an ally is within Melee range of your target, add a number of d6s equal to your tier to your damage roll.

  • Level 1 -> Tier 1

  • Levels 2–4 -> Tier 2

  • Levels 5–7 -> Tier 3

  • Levels 8–10 -> Tier 4

", "resource": null, - "actions": {}, + "actions": { + "SfctrIW5KjH4nq5G": { + "type": "effect", + "_id": "SfctrIW5KjH4nq5G", + "systemPath": "actions", + "description": "

When you succeed on an attack while Cloaked or while an ally is within Melee range of your target, add a number of d6s equal to your tier to your damage roll.

  • Level 1 -> Tier 1

  • Levels 2–4 -> Tier 2

  • Levels 5–7 -> Tier 3

  • Levels 8–10 -> Tier 4

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [ + { + "_id": "380jFzw756qSy5ae", + "onSave": false + } + ], + "target": { + "type": "any", + "amount": null + }, + "name": "Use Sneak Attack", + "img": "icons/skills/melee/strike-dagger-skull-white.webp", + "range": "" + } + }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 19, - "artist": "" - } + "originId": null }, "effects": [ { @@ -62,7 +85,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754324821680, + "modifiedTime": 1754351786656, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!5QqpEwmwkPfZHpMW.380jFzw756qSy5ae" } @@ -73,5 +104,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754324216454, + "modifiedTime": 1754324890997, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!5QqpEwmwkPfZHpMW" } diff --git a/src/packs/classes/feature_Strange_Patterns_6YsfFjmCGuFYVhT4.json b/src/packs/classes/feature_Strange_Patterns_6YsfFjmCGuFYVhT4.json index bd364e6f..afe896de 100644 --- a/src/packs/classes/feature_Strange_Patterns_6YsfFjmCGuFYVhT4.json +++ b/src/packs/classes/feature_Strange_Patterns_6YsfFjmCGuFYVhT4.json @@ -84,12 +84,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -98,5 +93,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754254942995, + "modifiedTime": 1754498121727, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!6YsfFjmCGuFYVhT4" } diff --git a/src/packs/classes/feature_Unstoppable_PnD2UCgzIlwX6cY3.json b/src/packs/classes/feature_Unstoppable_PnD2UCgzIlwX6cY3.json index 9c9ecf61..5505ed44 100644 --- a/src/packs/classes/feature_Unstoppable_PnD2UCgzIlwX6cY3.json +++ b/src/packs/classes/feature_Unstoppable_PnD2UCgzIlwX6cY3.json @@ -5,128 +5,29 @@ "_id": "PnD2UCgzIlwX6cY3", "img": "icons/magic/defensive/shield-barrier-glowing-blue.webp", "system": { - "description": "

Once per long rest, you can become Unstoppable. You gain an Unstoppable Die. At level 1, your Unstoppable Die is a d4. Place it on your character sheet in the space provided, starting with the 1 value facing up. After you make a damage roll that deals 1 or more Hit Points to a target, increase the Unstoppable Die value by one. When the die’s value would exceed its maximum value or when the scene ends, remove the die and drop out of Unstoppable. At level 5, your Unstoppable Die increases to a d6. While Unstoppable, you gain the following benefits:

  • You reduce the severity of physical damage by one threshold (Severe to Major, Major to Minor, Minor to None).

  • You add the current value of the Unstoppable Die to your damage roll.

  • You can’t be Restrained or Vulnerable.

Tip: If your Unstoppable Die is a d4 and the 4 is currently facing up, you remove the die the next time you would increase it. However, if your Unstoppable Die has increased to a d6 and the 4 is currently facing up, you’ll turn it to 5 the next time you would increase it. In this case, you’ll remove the die after you would need to increase it higher than 6.

", - "resource": { - "type": "die", - "value": 0, - "max": "", - "icon": "" - }, - "actions": { - "KZiZ8m8uqH5iG96d": { - "type": "effect", - "_id": "KZiZ8m8uqH5iG96d", - "systemPath": "actions", - "description": "

Once per long rest, you can become Unstoppable. You gain an Unstoppable Die. At level 1, your Unstoppable Die is a d4. Place it on your character sheet in the space provided, starting with the 1 value facing up. After you make a damage roll that deals 1 or more Hit Points to a target, increase the Unstoppable Die value by one. When the die’s value would exceed its maximum value or when the scene ends, remove the die and drop out of Unstoppable. At level 5, your Unstoppable Die increases to a d6. While Unstoppable, you gain the following benefits:

  • You reduce the severity of physical damage by one threshold (Severe to Major, Major to Minor, Minor to None).

  • You add the current value of the Unstoppable Die to your damage roll.

  • You can’t be Restrained or Vulnerable.

Tip: If your Unstoppable Die is a d4 and the 4 is currently facing up, you remove the die the next time you would increase it. However, if your Unstoppable Die has increased to a d6 and the 4 is currently facing up, you’ll turn it to 5 the next time you would increase it. In this case, you’ll remove the die after you would need to increase it higher than 6.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "1", - "recovery": "longRest", - "consumeOnSuccess": false - }, - "effects": [ - { - "_id": "xzQtFSuDS48kUdAZ", - "onSave": false - } - ], - "target": { - "type": "self", - "amount": null - }, - "name": "Become Unstoppable", - "img": "icons/magic/defensive/shield-barrier-glowing-blue.webp", - "range": "" - } - }, + "description": "

(Note: This needs to be manually implemented. Unstoppable die feature is not implemented as of this time)

Once per long rest, you can become Unstoppable. You gain an Unstoppable Die. At level 1, your Unstoppable Die is a d4. Place it on your character sheet in the space provided, starting with the 1 value facing up. After you make a damage roll that deals 1 or more Hit Points to a target, increase the Unstoppable Die value by one. When the die’s value would exceed its maximum value or when the scene ends, remove the die and drop out of Unstoppable. At level 5, your Unstoppable Die increases to a d6. While Unstoppable, you gain the following benefits:

  • You reduce the severity of physical damage by one threshold (Severe to Major, Major to Minor, Minor to None).

  • You add the current value of the Unstoppable Die to your damage roll.

  • You can’t be Restrained or Vulnerable.

Tip: If your Unstoppable Die is a d4 and the 4 is currently facing up, you remove the die the next time you would increase it. However, if your Unstoppable Die has increased to a d6 and the 4 is currently facing up, you’ll turn it to 5 the next time you would increase it. In this case, you’ll remove the die after you would need to increase it higher than 6.

", + "resource": null, + "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 15, - "artist": "" - } + "originId": null }, - "effects": [ - { - "name": "Unstoppable", - "img": "icons/magic/defensive/shield-barrier-glowing-blue.webp", - "origin": "Compendium.daggerheart.classes.Item.PnD2UCgzIlwX6cY3", - "transfer": false, - "_id": "xzQtFSuDS48kUdAZ", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "changes": [ - { - "key": "system.bonuses.damage.physical.bonus", - "mode": 2, - "value": "ORIGIN.@item.resource.value", - "priority": null - }, - { - "key": "system.bonuses.damage.magical.bonus", - "mode": 2, - "value": "ORIGIN.@item.resource.value", - "priority": null - }, - { - "key": "system.rules.damageReduction.reduceSeverity.physical", - "mode": 2, - "value": "1", - "priority": null - }, - { - "key": "system.rules.conditionImmunities.vulnerable", - "mode": 5, - "value": "1", - "priority": null - }, - { - "key": "system.rules.conditionImmunities.restrained", - "mode": 5, - "value": "1", - "priority": null - } - ], - "disabled": false, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "", - "tint": "#ffffff", - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!PnD2UCgzIlwX6cY3.xzQtFSuDS48kUdAZ" - } - ], + "effects": [], "sort": 0, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754246498657, + "modifiedTime": 1754246649352, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!PnD2UCgzIlwX6cY3" } diff --git a/src/packs/classes/feature_Volatile_Magic_ieiQlD0joWSqt53D.json b/src/packs/classes/feature_Volatile_Magic_ieiQlD0joWSqt53D.json index 09338135..b6994b72 100644 --- a/src/packs/classes/feature_Volatile_Magic_ieiQlD0joWSqt53D.json +++ b/src/packs/classes/feature_Volatile_Magic_ieiQlD0joWSqt53D.json @@ -19,6 +19,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -40,12 +41,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 22, - "artist": "" - } + "originId": null }, "effects": [], "folder": "oNhnBt8HZ2oaSnSn", @@ -55,5 +51,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754349703843, + "modifiedTime": 1754349703843, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!ieiQlD0joWSqt53D" } diff --git a/src/packs/classes/feature_Wildtouch_fqSdfUYUK9QUcVE4.json b/src/packs/classes/feature_Wildtouch_fqSdfUYUK9QUcVE4.json index 70fb79e2..efdbe7e7 100644 --- a/src/packs/classes/feature_Wildtouch_fqSdfUYUK9QUcVE4.json +++ b/src/packs/classes/feature_Wildtouch_fqSdfUYUK9QUcVE4.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 10, - "artist": "" - } + "originId": null }, "effects": [], "sort": 300000, @@ -23,5 +18,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754221970100, + "modifiedTime": 1754246231149, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!fqSdfUYUK9QUcVE4" } diff --git a/src/packs/classes/folders_Bard_9mO4hIBDnL2RFUuz.json b/src/packs/classes/folders_Bard_9mO4hIBDnL2RFUuz.json index dba9a7e9..35ba2b58 100644 --- a/src/packs/classes/folders_Bard_9mO4hIBDnL2RFUuz.json +++ b/src/packs/classes/folders_Bard_9mO4hIBDnL2RFUuz.json @@ -8,5 +8,16 @@ "description": "", "sort": 150000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754246243478, + "modifiedTime": 1754325527819, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!9mO4hIBDnL2RFUuz" } diff --git a/src/packs/classes/folders_Bard_C9y59fIkq50d3SyD.json b/src/packs/classes/folders_Bard_C9y59fIkq50d3SyD.json index c9630f53..9e30324f 100644 --- a/src/packs/classes/folders_Bard_C9y59fIkq50d3SyD.json +++ b/src/packs/classes/folders_Bard_C9y59fIkq50d3SyD.json @@ -8,5 +8,16 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754246208911, + "modifiedTime": 1754266196369, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!C9y59fIkq50d3SyD" } diff --git a/src/packs/classes/folders_Class_Features_S4dTxJcuo1VW8o1E.json b/src/packs/classes/folders_Class_Features_S4dTxJcuo1VW8o1E.json index 6456d750..be839b66 100644 --- a/src/packs/classes/folders_Class_Features_S4dTxJcuo1VW8o1E.json +++ b/src/packs/classes/folders_Class_Features_S4dTxJcuo1VW8o1E.json @@ -8,5 +8,16 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1752680679705, + "modifiedTime": 1754246784051, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!S4dTxJcuo1VW8o1E" } diff --git a/src/packs/classes/folders_Class_Items_7v4rk8aUOc9l81kD.json b/src/packs/classes/folders_Class_Items_7v4rk8aUOc9l81kD.json index 97f7d45a..c65b68ee 100644 --- a/src/packs/classes/folders_Class_Items_7v4rk8aUOc9l81kD.json +++ b/src/packs/classes/folders_Class_Items_7v4rk8aUOc9l81kD.json @@ -8,5 +8,15 @@ "description": "", "sort": 100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754246775517 + }, "_key": "!folders!7v4rk8aUOc9l81kD" } diff --git a/src/packs/classes/folders_Druid_1gQpPaxdgvCxYlLs.json b/src/packs/classes/folders_Druid_1gQpPaxdgvCxYlLs.json index b6d0db8b..af9c65b4 100644 --- a/src/packs/classes/folders_Druid_1gQpPaxdgvCxYlLs.json +++ b/src/packs/classes/folders_Druid_1gQpPaxdgvCxYlLs.json @@ -8,5 +8,16 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754246252528, + "modifiedTime": 1754266190074, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!1gQpPaxdgvCxYlLs" } diff --git a/src/packs/classes/folders_Druid_GzNP2ejA3XoGSDRu.json b/src/packs/classes/folders_Druid_GzNP2ejA3XoGSDRu.json index 04bf00c5..444aafd0 100644 --- a/src/packs/classes/folders_Druid_GzNP2ejA3XoGSDRu.json +++ b/src/packs/classes/folders_Druid_GzNP2ejA3XoGSDRu.json @@ -8,5 +8,16 @@ "description": "", "sort": 300000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754246225128, + "modifiedTime": 1754266196369, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!GzNP2ejA3XoGSDRu" } diff --git a/src/packs/classes/folders_Guardian_RVUiPVdWhR4lQxmM.json b/src/packs/classes/folders_Guardian_RVUiPVdWhR4lQxmM.json index dd060c64..740cbd84 100644 --- a/src/packs/classes/folders_Guardian_RVUiPVdWhR4lQxmM.json +++ b/src/packs/classes/folders_Guardian_RVUiPVdWhR4lQxmM.json @@ -8,5 +8,16 @@ "description": "", "sort": 500000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754246818399, + "modifiedTime": 1754266190074, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!RVUiPVdWhR4lQxmM" } diff --git a/src/packs/classes/folders_Guardian_lddhMu0Dzts6eJc2.json b/src/packs/classes/folders_Guardian_lddhMu0Dzts6eJc2.json index 098bc202..0677f042 100644 --- a/src/packs/classes/folders_Guardian_lddhMu0Dzts6eJc2.json +++ b/src/packs/classes/folders_Guardian_lddhMu0Dzts6eJc2.json @@ -8,5 +8,16 @@ "description": "", "sort": 350000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754246276287, + "modifiedTime": 1754266201613, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!lddhMu0Dzts6eJc2" } diff --git a/src/packs/classes/folders_Ranger_onLJZkd7ZOMBaFMG.json b/src/packs/classes/folders_Ranger_onLJZkd7ZOMBaFMG.json index e25bfdce..d7e08e45 100644 --- a/src/packs/classes/folders_Ranger_onLJZkd7ZOMBaFMG.json +++ b/src/packs/classes/folders_Ranger_onLJZkd7ZOMBaFMG.json @@ -8,5 +8,15 @@ "description": "", "sort": 362500, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754268417806 + }, "_key": "!folders!onLJZkd7ZOMBaFMG" } diff --git a/src/packs/classes/folders_Ranger_zPuYycsLK2GlbLpO.json b/src/packs/classes/folders_Ranger_zPuYycsLK2GlbLpO.json index 86035461..65490b2f 100644 --- a/src/packs/classes/folders_Ranger_zPuYycsLK2GlbLpO.json +++ b/src/packs/classes/folders_Ranger_zPuYycsLK2GlbLpO.json @@ -8,5 +8,15 @@ "description": "", "sort": 525000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754268658179 + }, "_key": "!folders!zPuYycsLK2GlbLpO" } diff --git a/src/packs/classes/folders_Rogue_07ZMng4a2Z1kdqMq.json b/src/packs/classes/folders_Rogue_07ZMng4a2Z1kdqMq.json index 18c3e0c5..ad0c8cda 100644 --- a/src/packs/classes/folders_Rogue_07ZMng4a2Z1kdqMq.json +++ b/src/packs/classes/folders_Rogue_07ZMng4a2Z1kdqMq.json @@ -8,5 +8,15 @@ "description": "", "sort": 537500, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754325170902 + }, "_key": "!folders!07ZMng4a2Z1kdqMq" } diff --git a/src/packs/classes/folders_Rogue_5pExRcJAOymlMX9D.json b/src/packs/classes/folders_Rogue_5pExRcJAOymlMX9D.json index 9d6ad9bf..80d0c412 100644 --- a/src/packs/classes/folders_Rogue_5pExRcJAOymlMX9D.json +++ b/src/packs/classes/folders_Rogue_5pExRcJAOymlMX9D.json @@ -8,5 +8,15 @@ "description": "", "sort": 368750, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754323902514 + }, "_key": "!folders!5pExRcJAOymlMX9D" } diff --git a/src/packs/classes/folders_Seraph_e1YJUjmPjY0vZ6BJ.json b/src/packs/classes/folders_Seraph_e1YJUjmPjY0vZ6BJ.json index 0ee780ab..df39e038 100644 --- a/src/packs/classes/folders_Seraph_e1YJUjmPjY0vZ6BJ.json +++ b/src/packs/classes/folders_Seraph_e1YJUjmPjY0vZ6BJ.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!e1YJUjmPjY0vZ6BJ" } diff --git a/src/packs/classes/folders_Seraph_xIlwXYiea893J5HF.json b/src/packs/classes/folders_Seraph_xIlwXYiea893J5HF.json index 93993646..ec08c585 100644 --- a/src/packs/classes/folders_Seraph_xIlwXYiea893J5HF.json +++ b/src/packs/classes/folders_Seraph_xIlwXYiea893J5HF.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!xIlwXYiea893J5HF" } diff --git a/src/packs/classes/folders_Sorcerer_ZTh1tNA9cAwDhaJD.json b/src/packs/classes/folders_Sorcerer_ZTh1tNA9cAwDhaJD.json index a97d9e4b..452dce69 100644 --- a/src/packs/classes/folders_Sorcerer_ZTh1tNA9cAwDhaJD.json +++ b/src/packs/classes/folders_Sorcerer_ZTh1tNA9cAwDhaJD.json @@ -8,5 +8,15 @@ "description": "", "sort": 700000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "Q9NoTaEarn3VMS6Z", + "modifiedTime": 1754349932509 + }, "_key": "!folders!ZTh1tNA9cAwDhaJD" } diff --git a/src/packs/classes/folders_Sorcerer_oNhnBt8HZ2oaSnSn.json b/src/packs/classes/folders_Sorcerer_oNhnBt8HZ2oaSnSn.json index 534d5f65..bef9e910 100644 --- a/src/packs/classes/folders_Sorcerer_oNhnBt8HZ2oaSnSn.json +++ b/src/packs/classes/folders_Sorcerer_oNhnBt8HZ2oaSnSn.json @@ -8,5 +8,15 @@ "description": "", "sort": 500000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "Q9NoTaEarn3VMS6Z", + "modifiedTime": 1754349706650 + }, "_key": "!folders!oNhnBt8HZ2oaSnSn" } diff --git a/src/packs/classes/folders_Standard_Take_rY8M3uLGRwuLhzk0.json b/src/packs/classes/folders_Standard_Take_rY8M3uLGRwuLhzk0.json index 72b21a09..11e7811f 100644 --- a/src/packs/classes/folders_Standard_Take_rY8M3uLGRwuLhzk0.json +++ b/src/packs/classes/folders_Standard_Take_rY8M3uLGRwuLhzk0.json @@ -8,5 +8,16 @@ "description": "", "sort": 800000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174513416, + "modifiedTime": 1754351875141, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!folders!rY8M3uLGRwuLhzk0" } diff --git a/src/packs/classes/folders_Warrior_A7yYfCMQ8NMwDLX1.json b/src/packs/classes/folders_Warrior_A7yYfCMQ8NMwDLX1.json index 43c05a74..1cd2d5f0 100644 --- a/src/packs/classes/folders_Warrior_A7yYfCMQ8NMwDLX1.json +++ b/src/packs/classes/folders_Warrior_A7yYfCMQ8NMwDLX1.json @@ -8,5 +8,15 @@ "description": "", "sort": 375000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754266204830 + }, "_key": "!folders!A7yYfCMQ8NMwDLX1" } diff --git a/src/packs/classes/folders_Warrior_RAxu4Kr7NzexDJVb.json b/src/packs/classes/folders_Warrior_RAxu4Kr7NzexDJVb.json index c5577f09..1cdb40e5 100644 --- a/src/packs/classes/folders_Warrior_RAxu4Kr7NzexDJVb.json +++ b/src/packs/classes/folders_Warrior_RAxu4Kr7NzexDJVb.json @@ -8,5 +8,15 @@ "description": "", "sort": 550000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754266191979 + }, "_key": "!folders!RAxu4Kr7NzexDJVb" } diff --git a/src/packs/classes/folders_Wizard_SwEjiVLbnXT2x9Lz.json b/src/packs/classes/folders_Wizard_SwEjiVLbnXT2x9Lz.json index f0c7297c..509fbf76 100644 --- a/src/packs/classes/folders_Wizard_SwEjiVLbnXT2x9Lz.json +++ b/src/packs/classes/folders_Wizard_SwEjiVLbnXT2x9Lz.json @@ -8,5 +8,15 @@ "description": "", "sort": 400000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754266196369 + }, "_key": "!folders!SwEjiVLbnXT2x9Lz" } diff --git a/src/packs/classes/folders_Wizard_utPGR3Z1uORKlNQw.json b/src/packs/classes/folders_Wizard_utPGR3Z1uORKlNQw.json index 11b9334f..90f3612a 100644 --- a/src/packs/classes/folders_Wizard_utPGR3Z1uORKlNQw.json +++ b/src/packs/classes/folders_Wizard_utPGR3Z1uORKlNQw.json @@ -8,5 +8,15 @@ "description": "", "sort": 600000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754266190074 + }, "_key": "!folders!utPGR3Z1uORKlNQw" } diff --git a/src/packs/classes/loot_50ft_of_Rope_hMST9iizQP1yz0MG.json b/src/packs/classes/loot_50ft_of_Rope_hMST9iizQP1yz0MG.json index ec2f4a8b..50b63f32 100644 --- a/src/packs/classes/loot_50ft_of_Rope_hMST9iizQP1yz0MG.json +++ b/src/packs/classes/loot_50ft_of_Rope_hMST9iizQP1yz0MG.json @@ -10,6 +10,17 @@ }, "effects": [], "flags": {}, + "_stats": { + "compendiumSource": "Compendium.daggerheart.classes.Item.KF2oCpxX8s9jcvWT", + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174513423, + "modifiedTime": 1754174513423, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/classes/loot_A_Romance_Novel_Bvr6wjf44EvCdidC.json b/src/packs/classes/loot_A_Romance_Novel_Bvr6wjf44EvCdidC.json index c07dc427..2b16094d 100644 --- a/src/packs/classes/loot_A_Romance_Novel_Bvr6wjf44EvCdidC.json +++ b/src/packs/classes/loot_A_Romance_Novel_Bvr6wjf44EvCdidC.json @@ -10,6 +10,17 @@ }, "effects": [], "flags": {}, + "_stats": { + "compendiumSource": "Compendium.daggerheart.classes.Item.fkfn1pk4evHl9rsX", + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174513423, + "modifiedTime": 1754246245948, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/classes/loot_A_Sharpening_Stone_LoQH7wpfyKsuMJ5l.json b/src/packs/classes/loot_A_Sharpening_Stone_LoQH7wpfyKsuMJ5l.json index 20d54f09..c98abbb1 100644 --- a/src/packs/classes/loot_A_Sharpening_Stone_LoQH7wpfyKsuMJ5l.json +++ b/src/packs/classes/loot_A_Sharpening_Stone_LoQH7wpfyKsuMJ5l.json @@ -16,5 +16,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754255987604, + "modifiedTime": 1754256035640, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!LoQH7wpfyKsuMJ5l" } diff --git a/src/packs/classes/loot_Basic_Supplies_uoG5iq09mxJPXfmk.json b/src/packs/classes/loot_Basic_Supplies_uoG5iq09mxJPXfmk.json index e23fe8d8..d535d1df 100644 --- a/src/packs/classes/loot_Basic_Supplies_uoG5iq09mxJPXfmk.json +++ b/src/packs/classes/loot_Basic_Supplies_uoG5iq09mxJPXfmk.json @@ -10,6 +10,17 @@ }, "effects": [], "flags": {}, + "_stats": { + "compendiumSource": "Compendium.daggerheart.classes.Item.HYZsniIrzcaLfz15", + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174513423, + "modifiedTime": 1754174513423, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/classes/loot_Broken_Compass_8k76EgktQXFWHf8r.json b/src/packs/classes/loot_Broken_Compass_8k76EgktQXFWHf8r.json index 13c84aee..d4c1a7b9 100644 --- a/src/packs/classes/loot_Broken_Compass_8k76EgktQXFWHf8r.json +++ b/src/packs/classes/loot_Broken_Compass_8k76EgktQXFWHf8r.json @@ -16,5 +16,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754268744830, + "modifiedTime": 1754268763078, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!8k76EgktQXFWHf8r" } diff --git a/src/packs/classes/loot_Bundle_of_Offerings_aLvek22hb5kNg9MF.json b/src/packs/classes/loot_Bundle_of_Offerings_aLvek22hb5kNg9MF.json index 8aa04593..dd7f004a 100644 --- a/src/packs/classes/loot_Bundle_of_Offerings_aLvek22hb5kNg9MF.json +++ b/src/packs/classes/loot_Bundle_of_Offerings_aLvek22hb5kNg9MF.json @@ -16,5 +16,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754351899479, + "modifiedTime": 1754351912391, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!aLvek22hb5kNg9MF" } diff --git a/src/packs/classes/loot_Drawing_Of_A_Lover_KuPuEAbUK4VKpS2O.json b/src/packs/classes/loot_Drawing_Of_A_Lover_KuPuEAbUK4VKpS2O.json index 2d717a10..7ebf8be6 100644 --- a/src/packs/classes/loot_Drawing_Of_A_Lover_KuPuEAbUK4VKpS2O.json +++ b/src/packs/classes/loot_Drawing_Of_A_Lover_KuPuEAbUK4VKpS2O.json @@ -16,5 +16,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754255948731, + "modifiedTime": 1754255971356, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!KuPuEAbUK4VKpS2O" } diff --git a/src/packs/classes/loot_Family_Heirloom_Yum0uBtnEtTBcpax.json b/src/packs/classes/loot_Family_Heirloom_Yum0uBtnEtTBcpax.json index 2dee0552..e9c05457 100644 --- a/src/packs/classes/loot_Family_Heirloom_Yum0uBtnEtTBcpax.json +++ b/src/packs/classes/loot_Family_Heirloom_Yum0uBtnEtTBcpax.json @@ -16,5 +16,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754349932502, + "modifiedTime": 1754349932502, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!Yum0uBtnEtTBcpax" } diff --git a/src/packs/classes/loot_Grappling_Hook_J1c708r5L9TYckER.json b/src/packs/classes/loot_Grappling_Hook_J1c708r5L9TYckER.json index 0808debe..1fbe3f9c 100644 --- a/src/packs/classes/loot_Grappling_Hook_J1c708r5L9TYckER.json +++ b/src/packs/classes/loot_Grappling_Hook_J1c708r5L9TYckER.json @@ -16,5 +16,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754325228507, + "modifiedTime": 1754325249791, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!J1c708r5L9TYckER" } diff --git a/src/packs/classes/loot_Letter_Never_Opened__XGWVVkHlVrF5fGm6.json b/src/packs/classes/loot_Letter_Never_Opened__XGWVVkHlVrF5fGm6.json index 429956d2..684c78ad 100644 --- a/src/packs/classes/loot_Letter_Never_Opened__XGWVVkHlVrF5fGm6.json +++ b/src/packs/classes/loot_Letter_Never_Opened__XGWVVkHlVrF5fGm6.json @@ -10,6 +10,17 @@ }, "effects": [], "flags": {}, + "_stats": { + "compendiumSource": "Compendium.daggerheart.classes.Item.z5NCi87SkY5oCOwW", + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174513423, + "modifiedTime": 1754246246930, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/classes/loot_Secret_Key_VVvIPx1cduyAb8jr.json b/src/packs/classes/loot_Secret_Key_VVvIPx1cduyAb8jr.json index 0b40c1c8..41522bb4 100644 --- a/src/packs/classes/loot_Secret_Key_VVvIPx1cduyAb8jr.json +++ b/src/packs/classes/loot_Secret_Key_VVvIPx1cduyAb8jr.json @@ -16,5 +16,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754246887942, + "modifiedTime": 1754246914713, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!VVvIPx1cduyAb8jr" } diff --git a/src/packs/classes/loot_Set_of_Forgery_Tools_yqoO5aqDd4aD13pc.json b/src/packs/classes/loot_Set_of_Forgery_Tools_yqoO5aqDd4aD13pc.json index 13d3faa7..ba508b8b 100644 --- a/src/packs/classes/loot_Set_of_Forgery_Tools_yqoO5aqDd4aD13pc.json +++ b/src/packs/classes/loot_Set_of_Forgery_Tools_yqoO5aqDd4aD13pc.json @@ -16,5 +16,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754325190389, + "modifiedTime": 1754325209078, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!yqoO5aqDd4aD13pc" } diff --git a/src/packs/classes/loot_Sigil_of_Your_God_o3G6szWvPoz7fo6T.json b/src/packs/classes/loot_Sigil_of_Your_God_o3G6szWvPoz7fo6T.json index 6622b0a3..732bcf67 100644 --- a/src/packs/classes/loot_Sigil_of_Your_God_o3G6szWvPoz7fo6T.json +++ b/src/packs/classes/loot_Sigil_of_Your_God_o3G6szWvPoz7fo6T.json @@ -16,5 +16,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754351952157, + "modifiedTime": 1754351975883, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!o3G6szWvPoz7fo6T" } diff --git a/src/packs/classes/loot_Small_Bag__Rocks___Bones__todlyATSZzLPTqnU.json b/src/packs/classes/loot_Small_Bag__Rocks___Bones__todlyATSZzLPTqnU.json index e75c8943..6d7f71a4 100644 --- a/src/packs/classes/loot_Small_Bag__Rocks___Bones__todlyATSZzLPTqnU.json +++ b/src/packs/classes/loot_Small_Bag__Rocks___Bones__todlyATSZzLPTqnU.json @@ -16,5 +16,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754222078723, + "modifiedTime": 1754246253688, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!todlyATSZzLPTqnU" } diff --git a/src/packs/classes/loot_Strange_Dirty_Pendant_LriTeh9hkwzEaCr1.json b/src/packs/classes/loot_Strange_Dirty_Pendant_LriTeh9hkwzEaCr1.json index c2bcc434..3ca7b938 100644 --- a/src/packs/classes/loot_Strange_Dirty_Pendant_LriTeh9hkwzEaCr1.json +++ b/src/packs/classes/loot_Strange_Dirty_Pendant_LriTeh9hkwzEaCr1.json @@ -16,5 +16,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754222150005, + "modifiedTime": 1756136989085, + "lastModifiedBy": "HKcDBUU22bYKtQmH" + }, "_key": "!items!LriTeh9hkwzEaCr1" } diff --git a/src/packs/classes/loot_Tiny_Elemental_Pet_UUp0YGFj7E4x7Z6Z.json b/src/packs/classes/loot_Tiny_Elemental_Pet_UUp0YGFj7E4x7Z6Z.json index 553b43d4..944fec6e 100644 --- a/src/packs/classes/loot_Tiny_Elemental_Pet_UUp0YGFj7E4x7Z6Z.json +++ b/src/packs/classes/loot_Tiny_Elemental_Pet_UUp0YGFj7E4x7Z6Z.json @@ -16,5 +16,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754255336799, + "modifiedTime": 1754255356067, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!UUp0YGFj7E4x7Z6Z" } diff --git a/src/packs/classes/loot_Torch_zqeXrJTd1geX73Pw.json b/src/packs/classes/loot_Torch_zqeXrJTd1geX73Pw.json index 0b074eef..416b7393 100644 --- a/src/packs/classes/loot_Torch_zqeXrJTd1geX73Pw.json +++ b/src/packs/classes/loot_Torch_zqeXrJTd1geX73Pw.json @@ -10,6 +10,17 @@ }, "effects": [], "flags": {}, + "_stats": { + "compendiumSource": "Compendium.daggerheart.classes.Item.YCcnP3NsSEYh0jNh", + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174513423, + "modifiedTime": 1754174513423, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/classes/loot_Totem_from_Mentor_d3VdAtW65oO8j14Y.json b/src/packs/classes/loot_Totem_from_Mentor_d3VdAtW65oO8j14Y.json index f4d04f71..25c4557e 100644 --- a/src/packs/classes/loot_Totem_from_Mentor_d3VdAtW65oO8j14Y.json +++ b/src/packs/classes/loot_Totem_from_Mentor_d3VdAtW65oO8j14Y.json @@ -16,5 +16,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754246839143, + "modifiedTime": 1754246869476, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!d3VdAtW65oO8j14Y" } diff --git a/src/packs/classes/loot_Trophy_from_your_First_Kill_eslejbiZRH6ODh9U.json b/src/packs/classes/loot_Trophy_from_your_First_Kill_eslejbiZRH6ODh9U.json index 2ff84f31..213bb72d 100644 --- a/src/packs/classes/loot_Trophy_from_your_First_Kill_eslejbiZRH6ODh9U.json +++ b/src/packs/classes/loot_Trophy_from_your_First_Kill_eslejbiZRH6ODh9U.json @@ -16,5 +16,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754268684215, + "modifiedTime": 1754268716857, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!eslejbiZRH6ODh9U" } diff --git a/src/packs/classes/loot_Untranslated_Book_fhg3NK99tcgYQxdY.json b/src/packs/classes/loot_Untranslated_Book_fhg3NK99tcgYQxdY.json index 0b6b861d..cbf53a9e 100644 --- a/src/packs/classes/loot_Untranslated_Book_fhg3NK99tcgYQxdY.json +++ b/src/packs/classes/loot_Untranslated_Book_fhg3NK99tcgYQxdY.json @@ -16,5 +16,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754255288555, + "modifiedTime": 1754255319671, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!fhg3NK99tcgYQxdY" } diff --git a/src/packs/classes/loot_Whispering_Orb_9AM1YsPeuWSysdDo.json b/src/packs/classes/loot_Whispering_Orb_9AM1YsPeuWSysdDo.json index d9efdc73..5d513f5e 100644 --- a/src/packs/classes/loot_Whispering_Orb_9AM1YsPeuWSysdDo.json +++ b/src/packs/classes/loot_Whispering_Orb_9AM1YsPeuWSysdDo.json @@ -16,5 +16,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754349932502, + "modifiedTime": 1754349932502, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!9AM1YsPeuWSysdDo" } diff --git a/src/packs/communities/community_Highborne_DVw2mOCHB8i0XeBz.json b/src/packs/communities/community_Highborne_DVw2mOCHB8i0XeBz.json index dbb5ca78..be485d0b 100644 --- a/src/packs/communities/community_Highborne_DVw2mOCHB8i0XeBz.json +++ b/src/packs/communities/community_Highborne_DVw2mOCHB8i0XeBz.json @@ -4,17 +4,23 @@ "type": "community", "folder": null, "system": { - "description": "

Being part of a highborne community means you’re accustomed to a life of elegance, opulence, and prestige within the upper echelons of society. Traditionally, members of a highborne community possess incredible material wealth. While this can take a variety of forms depending on the communityβ€”including gold and other minerals, land, or controlling the means of productionβ€”this status always comes with power and influence. Highborne place great value on titles and possessions, and there is little social mobility within their ranks. Members of a highborne community often control the political and economic status of the areas in which they live due to their ability to influence people and the economy with their substantial wealth. The health and safety of the less affluent people who live in these locations often hinges on the ability of this highborne ruling class to prioritize the well-being of their subjects over profit.

Highborne are often amiable, candid, conniving, enterprising, ostentatious, and unflappable.

COMMUNITY FEATURE

Privilege: You have advantage on rolls to consort with nobles, negotiate prices, or leverage your reputation to get what you want.

", + "description": "

Being part of a highborne community means you’re accustomed to a life of elegance, opulence, and prestige within the upper echelons of society.

Traditionally, members of a highborne community possess incredible material wealth. While this can take a variety of forms depending on the communityβ€”including gold and other minerals, land, or controlling the means of productionβ€”this status always comes with power and influence. Highborne place great value on titles and possessions, and there is little social mobility within their ranks. Members of a highborne community often control the political and economic status of the areas in which they live due to their ability to influence people and the economy with their substantial wealth. The health and safety of the less affluent people who live in these locations often hinges on the ability of this highborne ruling class to prioritize the well-being of their subjects over profit.

\n

Highborne are often amiable, candid, conniving, enterprising, ostentatious, and unflappable.

", "features": [ "Compendium.daggerheart.communities.Item.C7NR6qRatawZusmg" - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 32, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784392, + "modifiedTime": 1754010352828, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "DVw2mOCHB8i0XeBz", "sort": 3400000, "effects": [], diff --git a/src/packs/communities/community_Loreborne_YsvlyqYoi8QQ8kwm.json b/src/packs/communities/community_Loreborne_YsvlyqYoi8QQ8kwm.json index ff7cae4e..50530aff 100644 --- a/src/packs/communities/community_Loreborne_YsvlyqYoi8QQ8kwm.json +++ b/src/packs/communities/community_Loreborne_YsvlyqYoi8QQ8kwm.json @@ -4,17 +4,23 @@ "type": "community", "folder": null, "system": { - "description": "

Being part of a loreborne community means you’re from a society that favors strong academic or political prowess. Loreborne communities highly value knowledge, frequently in the form of historical preservation, political advancement, scientific study, skill development, or lore and mythology compilation. Most members of these communities research in institutions built in bastions of civilization, while some eclectic few thrive in gathering information from the natural world. Some may be isolationists, operating in smaller enclaves, schools, or guilds and following their own unique ethos. Others still wield their knowledge on a larger scale, making deft political maneuvers across governmental landscapes.

Loreborne are often direct, eloquent, inquisitive, patient, rhapsodic, and witty.

COMMUNITY FEATURE

Well-Read: You have advantage on rolls that involve the history, culture, or politics of a prominent person or place.

", + "description": "

Being part of a loreborne community means you’re from a society that favors strong academic or political prowess.

Loreborne communities highly value knowledge, frequently in the form of historical preservation, political advancement, scientific study, skill development, or lore and mythology compilation. Most members of these communities research in institutions built in bastions of civilization, while some eclectic few thrive in gathering information from the natural world. Some may be isolationists, operating in smaller enclaves, schools, or guilds and following their own unique ethos. Others still wield their knowledge on a larger scale, making deft political maneuvers across governmental landscapes.

\n

Loreborne are often direct, eloquent, inquisitive, patient, rhapsodic, and witty.

", "features": [ "Compendium.daggerheart.communities.Item.JBZJmywisJg5X3tH" - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 32, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784392, + "modifiedTime": 1754010491764, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "YsvlyqYoi8QQ8kwm", "sort": 3400000, "effects": [], diff --git a/src/packs/communities/community_Orderborne_TY2TejenASXtS484.json b/src/packs/communities/community_Orderborne_TY2TejenASXtS484.json index 869d426a..7817a2ea 100644 --- a/src/packs/communities/community_Orderborne_TY2TejenASXtS484.json +++ b/src/packs/communities/community_Orderborne_TY2TejenASXtS484.json @@ -4,17 +4,23 @@ "type": "community", "folder": null, "system": { - "description": "

Being part of an orderborne community means you’re from a collective that focuses on discipline or faith, and you uphold a set of principles that reflect your experience there. Orderborne are frequently some of the most powerful among the surrounding communities. By aligning the members of their society around a common value or goal, such as a god, doctrine, ethos, or even a shared business or trade, the ruling bodies of these enclaves are able to mobilize larger populations with less effort. While orderborne communities take a variety of formsβ€”some even profoundly pacifisticβ€”perhaps the most feared are those that structure themselves around military prowess. In such a case, it’s not uncommon for orderborne to provide soldiers for hire to other cities or countries.

Orderborne are often ambitious, benevolent, pensive, prudent, sardonic, and stoic.

COMMUNITY FEATURE

Dedicated: Record three sayings or values your upbringing instilled in you. Once per rest, when you describe how you’re embodying one of these principles through your current action, you can roll a d20 as your Hope Die.

", + "description": "

Being part of an orderborne community means you’re from a collective that focuses on discipline or faith, and you uphold a set of principles that reflect your experience there.

Orderborne are frequently some of the most powerful among the surrounding communities. By aligning the members of their society around a common value or goal, such as a god, doctrine, ethos, or even a shared business or trade, the ruling bodies of these enclaves are able to mobilize larger populations with less effort. While orderborne communities take a variety of formsβ€”some even profoundly pacifisticβ€”perhaps the most feared are those that structure themselves around military prowess. In such a case, it’s not uncommon for orderborne to provide soldiers for hire to other cities or countries.

\n

Orderborne are often ambitious, benevolent, pensive, prudent, sardonic, and stoic.

", "features": [ "Compendium.daggerheart.communities.Item.7aXWdH3gzaYREK0X" - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 32, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784393, + "modifiedTime": 1754010626874, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "TY2TejenASXtS484", "sort": 3400000, "effects": [], diff --git a/src/packs/communities/community_Ridgeborne_WHLA4qrdszXQHOuo.json b/src/packs/communities/community_Ridgeborne_WHLA4qrdszXQHOuo.json index 60f82899..5971d311 100644 --- a/src/packs/communities/community_Ridgeborne_WHLA4qrdszXQHOuo.json +++ b/src/packs/communities/community_Ridgeborne_WHLA4qrdszXQHOuo.json @@ -4,17 +4,23 @@ "type": "community", "folder": null, "system": { - "description": "

Being part of a ridgeborne community means you’ve called the rocky peaks and sharp cliffs of the mountainside home. Those who’ve lived in the mountains often consider themselves hardier than most because they’ve thrived among the most dangerous terrain many continents have to offer. These groups are adept at adaptation, developing unique technologies and equipment to move both people and products across difficult terrain. As such, ridgeborne grow up scrambling and climbing, making them sturdy and strong-willed. Ridgeborne localities appear in a variety of formsβ€”some cities carve out entire cliff faces, others construct castles of stone, and still more live in small homes on windblown peaks. Outside forces often struggle to attack ridgeborne groups, as the small militias and large military forces of the mountains are adept at utilizing their high-ground advantage.

Ridgeborne are often bold, hardy, indomitable, loyal, reserved, and stubborn.

COMMUNITY FEATURE

Steady: You have advantage on rolls to traverse dangerous cliffs and ledges, navigate harsh environments, and use your survival knowledge.

", + "description": "

Being part of a ridgeborne community means you’ve called the rocky peaks and sharp cliffs of the mountainside home.

Those who’ve lived in the mountains often consider themselves hardier than most because they’ve thrived among the most dangerous terrain many continents have to offer. These groups are adept at adaptation, developing unique technologies and equipment to move both people and products across difficult terrain. As such, ridgeborne grow up scrambling and climbing, making them sturdy and strong-willed. Ridgeborne localities appear in a variety of formsβ€”some cities carve out entire cliff faces, others construct castles of stone, and still more live in small homes on windblown peaks. Outside forces often struggle to attack ridgeborne groups, as the small militias and large military forces of the mountains are adept at utilizing their high-ground advantage.

\n

Ridgeborne are often bold, hardy, indomitable, loyal, reserved, and stubborn.

", "features": [ "Compendium.daggerheart.communities.Item.DYmmr5CknLtHnwuj" - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 33, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784394, + "modifiedTime": 1754010655426, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "WHLA4qrdszXQHOuo", "sort": 3400000, "effects": [], diff --git a/src/packs/communities/community_Seaborne_o5AA5J05N7EvH1rN.json b/src/packs/communities/community_Seaborne_o5AA5J05N7EvH1rN.json index bb430a20..95798e66 100644 --- a/src/packs/communities/community_Seaborne_o5AA5J05N7EvH1rN.json +++ b/src/packs/communities/community_Seaborne_o5AA5J05N7EvH1rN.json @@ -4,17 +4,23 @@ "type": "community", "folder": null, "system": { - "description": "

Being part of a seaborne community means you lived on or near a large body of water. Seaborne communities are built, both physically and culturally, around the specific waters they call home. Some of these groups live along the shore, constructing ports for locals and travelers alike. These harbors function as centers of commerce, tourist attractions, or even just a safe place to lay down one’s head after weeks of travel. Other seaborne live on the water in small boats or large ships, with the idea of β€œhome” comprising a ship and its crew, rather than any one landmass. No matter their exact location, seaborne communities are closely tied to the ocean tides and the creatures who inhabit them. Seaborne learn to fish at a young age, and train from birth to hold their breath and swim in even the most tumultuous waters. Individuals from these groups are highly sought after for their sailing skills, and many become captains of vessels, whether within their own community, working for another, or even at the helm of a powerful naval operation.

Seaborne are often candid, cooperative, exuberant, fierce, resolute, and weathered.

COMMUNITY FEATURE

Know the Tide: You can sense the ebb and flow of life. When you roll with Fear, place a token on your community card. You can hold a number of tokens equal to your level. Before you make an action roll, you can spend any number of these tokens to gain a +1 bonus to the roll for each token spent. At the end of each session, clear all unspent tokens.

", + "description": "

Being part of a seaborne community means you lived on or near a large body of water.

Seaborne communities are built, both physically and culturally, around the specific waters they call home. Some of these groups live along the shore, constructing ports for locals and travelers alike. These harbors function as centers of commerce, tourist attractions, or even just a safe place to lay down one’s head after weeks of travel. Other seaborne live on the water in small boats or large ships, with the idea of β€œhome” comprising a ship and its crew, rather than any one landmass. No matter their exact location, seaborne communities are closely tied to the ocean tides and the creatures who inhabit them. Seaborne learn to fish at a young age, and train from birth to hold their breath and swim in even the most tumultuous waters. Individuals from these groups are highly sought after for their sailing skills, and many become captains of vessels, whether within their own community, working for another, or even at the helm of a powerful naval operation.

\n

Seaborne are often candid, cooperative, exuberant, fierce, resolute, and weathered.

", "features": [ "Compendium.daggerheart.communities.Item.07x6Qe6qMzDw2xN4" - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 33, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784395, + "modifiedTime": 1754010861330, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "o5AA5J05N7EvH1rN", "sort": 3400000, "effects": [], diff --git a/src/packs/communities/community_Slyborne_rGwCPMqZtky7SE6d.json b/src/packs/communities/community_Slyborne_rGwCPMqZtky7SE6d.json index fe69a8fe..c038fe90 100644 --- a/src/packs/communities/community_Slyborne_rGwCPMqZtky7SE6d.json +++ b/src/packs/communities/community_Slyborne_rGwCPMqZtky7SE6d.json @@ -4,17 +4,23 @@ "type": "community", "folder": null, "system": { - "description": "

Being part of a slyborne community means you come from a group that operates outside the law, including all manner of criminals, grifters, and con artists. Being part of a slyborne community means you come from a group that operates outside the law, including all manner of criminals, grifters, and con artists. Members of slyborne communities are brought together by their disreputable goals and their clever means of achieving them. Many people in these communities have an array of unscrupulous skills: forging, thievery, smuggling, and violence. People of any social class can be slyborne, from those who have garnered vast wealth and influence to those without a coin to their name. To the outside eye, slyborne might appear to be ruffians with no loyalty, but these communities possess some of the strictest codes of honor which, when broken, can result in a terrifying end for the transgressor.

Slyborne are often calculating, clever, formidable, perceptive, shrewd, and tenacious.

COMMUNITY FEATURE

Scoundrel: You have advantage on rolls to negotiate with criminals, detect lies, or find a safe place to hide.

", + "description": "

Being part of a slyborne community means you come from a group that operates outside the law, including all manner of criminals, grifters, and con artists.

Being part of a slyborne community means you come from a group that operates outside the law, including all manner of criminals, grifters, and con artists. Members of slyborne communities are brought together by their disreputable goals and their clever means of achieving them. Many people in these communities have an array of unscrupulous skills: forging, thievery, smuggling, and violence. People of any social class can be slyborne, from those who have garnered vast wealth and influence to those without a coin to their name. To the outside eye, slyborne might appear to be ruffians with no loyalty, but these communities possess some of the strictest codes of honor which, when broken, can result in a terrifying end for the transgressor.

\n

Slyborne are often calculating, clever, formidable, perceptive, shrewd, and tenacious.

", "features": [ "Compendium.daggerheart.communities.Item.ZmEuBdL0JrvuA8le" - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 33, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784396, + "modifiedTime": 1754011031727, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "rGwCPMqZtky7SE6d", "sort": 3400000, "effects": [], diff --git a/src/packs/communities/community_Underborne_eX0I1ZNMyD3nfaL1.json b/src/packs/communities/community_Underborne_eX0I1ZNMyD3nfaL1.json index 360adc3b..7bd276be 100644 --- a/src/packs/communities/community_Underborne_eX0I1ZNMyD3nfaL1.json +++ b/src/packs/communities/community_Underborne_eX0I1ZNMyD3nfaL1.json @@ -4,17 +4,23 @@ "type": "community", "folder": null, "system": { - "description": "

Being part of an underborne community means you’re from a subterranean society. Many underborne live right beneath the cities and villages of other collectives, while some live much deeper. These communities range from small family groups in burrows to massive metropolises in caverns of stone. In many locales, underborne are recognized for their incredible boldness and skill that enable great feats of architecture and engineering. Underborne are regularly hired for their bravery, as even the least daring among them has likely encountered formidable belowground beasts, and learning to dispatch such creatures is common practice amongst these societies. Because of the dangers of their environment, many underborne communities develop unique nonverbal languages that prove equally useful on the surface.

Underborne are often composed, elusive, indomitable, innovative, resourceful, and unpretentious.

COMMUNITY FEATURE

Low-Light Living: When you’re in an area with low light or heavy shadow, you have advantage on rolls to hide, investigate, or perceive details within that area.

", + "description": "

Being part of an underborne community means you’re from a subterranean society.

Many underborne live right beneath the cities and villages of other collectives, while some live much deeper. These communities range from small family groups in burrows to massive metropolises in caverns of stone. In many locales, underborne are recognized for their incredible boldness and skill that enable great feats of architecture and engineering. Underborne are regularly hired for their bravery, as even the least daring among them has likely encountered formidable belowground beasts, and learning to dispatch such creatures is common practice amongst these societies. Because of the dangers of their environment, many underborne communities develop unique nonverbal languages that prove equally useful on the surface.

\n

Underborne are often composed, elusive, indomitable, innovative, resourceful, and unpretentious.

", "features": [ "Compendium.daggerheart.communities.Item.aMla3xQuCHEwORGD" - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 33, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784398, + "modifiedTime": 1754011085731, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "eX0I1ZNMyD3nfaL1", "sort": 3400000, "effects": [], diff --git a/src/packs/communities/community_Wanderborne_82mDY2EIBfLkNwQj.json b/src/packs/communities/community_Wanderborne_82mDY2EIBfLkNwQj.json index 0adccad8..a1b03f93 100644 --- a/src/packs/communities/community_Wanderborne_82mDY2EIBfLkNwQj.json +++ b/src/packs/communities/community_Wanderborne_82mDY2EIBfLkNwQj.json @@ -4,17 +4,23 @@ "type": "community", "folder": null, "system": { - "description": "

Being part of a wanderborne community means you’ve lived as a nomad, forgoing a permanent home and experiencing a wide variety of cultures. Unlike many communities that are defined by their locale, wanderborne are defined by their traveling lifestyle. Because of their frequent migration, wanderborne put less value on the accumulation of material possessions in favor of acquiring information, skills, and connections. While some wanderborne are allied by a common ethos, such as a religion or a set of political or economic values, others come together after shared tragedy, such as the loss of their home or land. No matter the reason, the dangers posed by life on the road and the choice to continue down that road together mean that wanderborne are known for their unwavering loyalty.

Wanderborne are often inscrutable, magnanimous, mirthful, reliable, savvy, and unorthodox.

COMMUNITY FEATURE

Nomadic Pack: Add a Nomadic Pack to your inventory. Once per session, you can spend a Hope to reach into this pack and pull out a mundane item that’s useful to your situation. Work with the GM to figure out what item you take out.

", + "description": "

Being part of a wanderborne community means you’ve lived as a nomad, forgoing a permanent home and experiencing a wide variety of cultures.

Unlike many communities that are defined by their locale, wanderborne are defined by their traveling lifestyle. Because of their frequent migration, wanderborne put less value on the accumulation of material possessions in favor of acquiring information, skills, and connections. While some wanderborne are allied by a common ethos, such as a religion or a set of political or economic values, others come together after shared tragedy, such as the loss of their home or land. No matter the reason, the dangers posed by life on the road and the choice to continue down that road together mean that wanderborne are known for their unwavering loyalty.

\n

Wanderborne are often inscrutable, magnanimous, mirthful, reliable, savvy, and unorthodox.

", "features": [ "Compendium.daggerheart.communities.Item.2RSrQouA2zEJ5Xee" - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 34, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784398, + "modifiedTime": 1754011123332, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "82mDY2EIBfLkNwQj", "sort": 3400000, "effects": [], diff --git a/src/packs/communities/community_Wildborne_CRJ5pzJj4FjCtIlx.json b/src/packs/communities/community_Wildborne_CRJ5pzJj4FjCtIlx.json index 68787784..73032136 100644 --- a/src/packs/communities/community_Wildborne_CRJ5pzJj4FjCtIlx.json +++ b/src/packs/communities/community_Wildborne_CRJ5pzJj4FjCtIlx.json @@ -4,17 +4,23 @@ "type": "community", "folder": null, "system": { - "description": "

Being part of a wildborne community means you lived deep within the forest. Wildborne communities are defined by their dedication to the conservation of their homelands, and many have strong religious or cultural ties to the fauna they live among. This results in unique architectural and technological advancements that favor sustainability over short-term, high-yield results. It is a hallmark of wildborne societies to integrate their villages and cities with the natural environment and avoid disturbing the lives of the plants and animals. While some construct their lodgings high in the branches of trees, others establish their homes on the ground beneath the forest canopy. It’s not uncommon for wildborne to remain reclusive and hidden within their woodland homes.

Wildborne are often hardy, loyal, nurturing, reclusive, sagacious, and vibrant.

COMMUNITY FEATURE

Lightfoot: Your movement is naturally silent. You have advantage on rolls to move without being heard.

", + "description": "

Being part of a wildborne community means you lived deep within the forest.

Wildborne communities are defined by their dedication to the conservation of their homelands, and many have strong religious or cultural ties to the fauna they live among. This results in unique architectural and technological advancements that favor sustainability over short-term, high-yield results. It is a hallmark of wildborne societies to integrate their villages and cities with the natural environment and avoid disturbing the lives of the plants and animals. While some construct their lodgings high in the branches of trees, others establish their homes on the ground beneath the forest canopy. It’s not uncommon for wildborne to remain reclusive and hidden within their woodland homes.

\n

Wildborne are often hardy, loyal, nurturing, reclusive, sagacious, and vibrant.

", "features": [ "Compendium.daggerheart.communities.Item.TQ1AIQjndC4mYmmU" - ], - "attribution": { - "source": "Daggerheart SRD", - "page": 34, - "artist": "" - } + ] }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784398, + "modifiedTime": 1754011159389, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "CRJ5pzJj4FjCtIlx", "sort": 3400000, "effects": [], diff --git a/src/packs/communities/feature_Dedicated_7aXWdH3gzaYREK0X.json b/src/packs/communities/feature_Dedicated_7aXWdH3gzaYREK0X.json index 006b0f1d..11ac8208 100644 --- a/src/packs/communities/feature_Dedicated_7aXWdH3gzaYREK0X.json +++ b/src/packs/communities/feature_Dedicated_7aXWdH3gzaYREK0X.json @@ -33,15 +33,21 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 32, - "artist": "" - } + "originId": null }, "effects": [], "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754010247432, + "modifiedTime": 1755938935013, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "sort": 0, "ownership": { "default": 0, diff --git a/src/packs/communities/feature_Know_the_Tide_07x6Qe6qMzDw2xN4.json b/src/packs/communities/feature_Know_the_Tide_07x6Qe6qMzDw2xN4.json index 069fe6ba..d2c1c314 100644 --- a/src/packs/communities/feature_Know_the_Tide_07x6Qe6qMzDw2xN4.json +++ b/src/packs/communities/feature_Know_the_Tide_07x6Qe6qMzDw2xN4.json @@ -18,15 +18,21 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 33, - "artist": "" - } + "originId": null }, "effects": [], "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754498464092, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "sort": 0, "ownership": { "default": 0, diff --git a/src/packs/communities/feature_Lightfoot_TQ1AIQjndC4mYmmU.json b/src/packs/communities/feature_Lightfoot_TQ1AIQjndC4mYmmU.json index a18b4689..86d1ba97 100644 --- a/src/packs/communities/feature_Lightfoot_TQ1AIQjndC4mYmmU.json +++ b/src/packs/communities/feature_Lightfoot_TQ1AIQjndC4mYmmU.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 34, - "artist": "" - } + "originId": null }, "effects": [ { @@ -57,12 +52,31 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754020396302, + "modifiedTime": 1754020437585, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!TQ1AIQjndC4mYmmU.4my9X5XC3uwDSx7B" } ], "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "sort": 0, "ownership": { "default": 0, diff --git a/src/packs/communities/feature_Low_Light_Living_aMla3xQuCHEwORGD.json b/src/packs/communities/feature_Low_Light_Living_aMla3xQuCHEwORGD.json index f1ed3ace..27dde95c 100644 --- a/src/packs/communities/feature_Low_Light_Living_aMla3xQuCHEwORGD.json +++ b/src/packs/communities/feature_Low_Light_Living_aMla3xQuCHEwORGD.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 33, - "artist": "" - } + "originId": null }, "effects": [ { @@ -69,12 +64,31 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754020102118, + "modifiedTime": 1754020317730, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!aMla3xQuCHEwORGD.pCp32u7UwqxCI4WW" } ], "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "sort": 0, "ownership": { "default": 0, diff --git a/src/packs/communities/feature_Nomadic_Pack_2RSrQouA2zEJ5Xee.json b/src/packs/communities/feature_Nomadic_Pack_2RSrQouA2zEJ5Xee.json index 22b3b195..605c9d7d 100644 --- a/src/packs/communities/feature_Nomadic_Pack_2RSrQouA2zEJ5Xee.json +++ b/src/packs/communities/feature_Nomadic_Pack_2RSrQouA2zEJ5Xee.json @@ -17,6 +17,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -40,15 +41,21 @@ }, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 34, - "artist": "" - } + "originId": null }, "effects": [], "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "sort": 0, "ownership": { "default": 0, diff --git a/src/packs/communities/feature_Privilege_C7NR6qRatawZusmg.json b/src/packs/communities/feature_Privilege_C7NR6qRatawZusmg.json index 171f4d50..20f015b2 100644 --- a/src/packs/communities/feature_Privilege_C7NR6qRatawZusmg.json +++ b/src/packs/communities/feature_Privilege_C7NR6qRatawZusmg.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 32, - "artist": "" - } + "originId": null }, "effects": [ { @@ -69,12 +64,31 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754015237400, + "modifiedTime": 1754015289801, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!C7NR6qRatawZusmg.xgtjykfgvg142urA" } ], "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "sort": 0, "ownership": { "default": 0, diff --git a/src/packs/communities/feature_Scoundrel_ZmEuBdL0JrvuA8le.json b/src/packs/communities/feature_Scoundrel_ZmEuBdL0JrvuA8le.json index d91a7638..b5618477 100644 --- a/src/packs/communities/feature_Scoundrel_ZmEuBdL0JrvuA8le.json +++ b/src/packs/communities/feature_Scoundrel_ZmEuBdL0JrvuA8le.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 33, - "artist": "" - } + "originId": null }, "effects": [ { @@ -69,12 +64,31 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754020484740, + "modifiedTime": 1754020540768, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!ZmEuBdL0JrvuA8le.snkYmZ22Q8HHLY9M" } ], "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "sort": 0, "ownership": { "default": 0, diff --git a/src/packs/communities/feature_Steady_DYmmr5CknLtHnwuj.json b/src/packs/communities/feature_Steady_DYmmr5CknLtHnwuj.json index 497854ac..713f8f53 100644 --- a/src/packs/communities/feature_Steady_DYmmr5CknLtHnwuj.json +++ b/src/packs/communities/feature_Steady_DYmmr5CknLtHnwuj.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 33, - "artist": "" - } + "originId": null }, "effects": [ { @@ -69,12 +64,31 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754020582449, + "modifiedTime": 1754020663104, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!DYmmr5CknLtHnwuj.QDf9LD8Mhd0Cw0CB" } ], "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "sort": 0, "ownership": { "default": 0, diff --git a/src/packs/communities/feature_Well_Read_JBZJmywisJg5X3tH.json b/src/packs/communities/feature_Well_Read_JBZJmywisJg5X3tH.json index dd40b33b..7fd9e397 100644 --- a/src/packs/communities/feature_Well_Read_JBZJmywisJg5X3tH.json +++ b/src/packs/communities/feature_Well_Read_JBZJmywisJg5X3tH.json @@ -10,12 +10,7 @@ "actions": {}, "originItemType": null, "subType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 32, - "artist": "" - } + "originId": null }, "effects": [ { @@ -57,12 +52,31 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754020727223, + "modifiedTime": 1754020782488, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!JBZJmywisJg5X3tH.RwhxYOAAKKlYZiz0" } ], "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "sort": 0, "ownership": { "default": 0, diff --git a/src/packs/communities/folders_Community_Features_KA1VSGslxkbvVeMp.json b/src/packs/communities/folders_Community_Features_KA1VSGslxkbvVeMp.json index b3ac556c..42082b86 100644 --- a/src/packs/communities/folders_Community_Features_KA1VSGslxkbvVeMp.json +++ b/src/packs/communities/folders_Community_Features_KA1VSGslxkbvVeMp.json @@ -8,5 +8,16 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1752680707054, + "modifiedTime": 1752680707054, + "lastModifiedBy": "binNpU8lWev6geDj" + }, "_key": "!folders!KA1VSGslxkbvVeMp" } diff --git a/src/packs/domains/domainCard_A_Soldier_s_Bond_Y08dLFuPXsgeRrHi.json b/src/packs/domains/domainCard_A_Soldier_s_Bond_Y08dLFuPXsgeRrHi.json index d3da85b6..2177b496 100644 --- a/src/packs/domains/domainCard_A_Soldier_s_Bond_Y08dLFuPXsgeRrHi.json +++ b/src/packs/domains/domainCard_A_Soldier_s_Bond_Y08dLFuPXsgeRrHi.json @@ -78,14 +78,20 @@ "img": "icons/magic/light/beam-rays-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784407, + "modifiedTime": 1754304308103, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "Y08dLFuPXsgeRrHi", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Adjust_Reality_Zp2S2EnLS5Iv3XuT.json b/src/packs/domains/domainCard_Adjust_Reality_Zp2S2EnLS5Iv3XuT.json index b60038b2..142f6f42 100644 --- a/src/packs/domains/domainCard_Adjust_Reality_Zp2S2EnLS5Iv3XuT.json +++ b/src/packs/domains/domainCard_Adjust_Reality_Zp2S2EnLS5Iv3XuT.json @@ -22,6 +22,7 @@ "scalable": false, "key": "hope", "value": 5, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -41,14 +42,20 @@ "img": "icons/magic/fire/flame-burning-hand-purple.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 120, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784408, + "modifiedTime": 1754254353257, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "Zp2S2EnLS5Iv3XuT", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Arcana_Touched_5PvMQKCjrgSxzstn.json b/src/packs/domains/domainCard_Arcana_Touched_5PvMQKCjrgSxzstn.json index 80d9797f..64c03215 100644 --- a/src/packs/domains/domainCard_Arcana_Touched_5PvMQKCjrgSxzstn.json +++ b/src/packs/domains/domainCard_Arcana_Touched_5PvMQKCjrgSxzstn.json @@ -21,15 +21,15 @@ "type": "effect", "_id": "hBh4Lt0Bdd9CtJY7", "systemPath": "actions", - "description": "

Once per rest, you can switch the results of your Hope and Fear Dice.

", + "description": "

Once per rest, you can switch the results of your Hope and Fear Dice.

", "chatDisplay": true, "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "5PvMQKCjrgSxzstn", - "value": 1, "scalable": false, + "key": "5PvMQKCjrgSxzstn", + "value": 1, + "keyIsID": true, "step": null, "consumeOnSuccess": false } @@ -49,14 +49,20 @@ "img": "icons/commodities/gems/gem-faceted-octagon-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 120, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784408, + "modifiedTime": 1754253919218, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "5PvMQKCjrgSxzstn", "sort": 3400000, "effects": [ @@ -99,7 +105,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754245132384, + "modifiedTime": 1754254055998, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!5PvMQKCjrgSxzstn.vTW98Xha0HP8ITrs" } diff --git a/src/packs/domains/domainCard_Arcane_Reflection_JzSvxy9Mu3RJp1jV.json b/src/packs/domains/domainCard_Arcane_Reflection_JzSvxy9Mu3RJp1jV.json index e6d38e3f..1bf40321 100644 --- a/src/packs/domains/domainCard_Arcane_Reflection_JzSvxy9Mu3RJp1jV.json +++ b/src/packs/domains/domainCard_Arcane_Reflection_JzSvxy9Mu3RJp1jV.json @@ -23,6 +23,7 @@ "key": "hope", "value": 1, "step": 1, + "keyIsID": false, "consumeOnSuccess": false } ], @@ -65,14 +66,20 @@ "img": "icons/magic/defensive/barrier-shield-dome-deflect-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 120, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784409, + "modifiedTime": 1754254134197, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "JzSvxy9Mu3RJp1jV", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Armorer_cy8GjBPGc9w9RaGO.json b/src/packs/domains/domainCard_Armorer_cy8GjBPGc9w9RaGO.json index aa9910dc..cc33310b 100644 --- a/src/packs/domains/domainCard_Armorer_cy8GjBPGc9w9RaGO.json +++ b/src/packs/domains/domainCard_Armorer_cy8GjBPGc9w9RaGO.json @@ -77,14 +77,20 @@ "img": "icons/tools/hand/hammer-and-nail.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784409, + "modifiedTime": 1754241866049, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "cy8GjBPGc9w9RaGO", "sort": 3400000, "effects": [ @@ -119,7 +125,7 @@ "startRound": null, "startTurn": null }, - "description": "

While you’re wearing armor, gain a +1 bonus to your Armor Score.

", + "description": "

While you’re wearing armor, gain a +1 bonus to your Armor Score.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -127,7 +133,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754068477757, + "modifiedTime": 1754068518141, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!cy8GjBPGc9w9RaGO.cED730OjuMW5haJR" } diff --git a/src/packs/domains/domainCard_Astral_Projection_YNOCNmZ96sCp9NEr.json b/src/packs/domains/domainCard_Astral_Projection_YNOCNmZ96sCp9NEr.json index e05f086a..a82eb0e7 100644 --- a/src/packs/domains/domainCard_Astral_Projection_YNOCNmZ96sCp9NEr.json +++ b/src/packs/domains/domainCard_Astral_Projection_YNOCNmZ96sCp9NEr.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -39,14 +40,20 @@ "img": "icons/magic/perception/orb-crystal-ball-scrying.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 127, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784409, + "modifiedTime": 1754342271751, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "YNOCNmZ96sCp9NEr", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Banish_AIbHfryMA2Rvs1ut.json b/src/packs/domains/domainCard_Banish_AIbHfryMA2Rvs1ut.json index b637a622..403a8286 100644 --- a/src/packs/domains/domainCard_Banish_AIbHfryMA2Rvs1ut.json +++ b/src/packs/domains/domainCard_Banish_AIbHfryMA2Rvs1ut.json @@ -63,14 +63,20 @@ "max": "1", "icon": "fa-solid fa-hand-sparkles", "recovery": "shortRest" - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 125, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784411, + "modifiedTime": 1754240991601, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "AIbHfryMA2Rvs1ut", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Bare_Bones_l5D9kq901JDESaXw.json b/src/packs/domains/domainCard_Bare_Bones_l5D9kq901JDESaXw.json index 3b1ea76a..181e994a 100644 --- a/src/packs/domains/domainCard_Bare_Bones_l5D9kq901JDESaXw.json +++ b/src/packs/domains/domainCard_Bare_Bones_l5D9kq901JDESaXw.json @@ -11,14 +11,20 @@ "type": "ability", "resource": null, "actions": {}, - "inVault": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" - } + "inVault": false }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754067006722, + "modifiedTime": 1754337008196, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "effects": [], "ownership": { "default": 0, diff --git a/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json b/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json index 432f9992..e3c74f7e 100644 --- a/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json +++ b/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json @@ -108,14 +108,20 @@ "img": "icons/magic/control/buff-flight-wings-runes-purple.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784413, + "modifiedTime": 1754304622040, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "Ef1JsUG50LIoKx2F", "sort": 3400000, "effects": [ @@ -158,7 +164,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754247384148, + "modifiedTime": 1754247399500, + "lastModifiedBy": "l5jB3XmcVXOTQpRZ" }, "_key": "!items.effects!Ef1JsUG50LIoKx2F.s7ma4TNgAvt0ZgEW" } diff --git a/src/packs/domains/domainCard_Battle_Hardened_NeEOghgfyDUBTwBG.json b/src/packs/domains/domainCard_Battle_Hardened_NeEOghgfyDUBTwBG.json index dfd0c68d..ccd46389 100644 --- a/src/packs/domains/domainCard_Battle_Hardened_NeEOghgfyDUBTwBG.json +++ b/src/packs/domains/domainCard_Battle_Hardened_NeEOghgfyDUBTwBG.json @@ -78,14 +78,20 @@ "img": "icons/magic/life/heart-cross-green.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784415, + "modifiedTime": 1754304541810, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "NeEOghgfyDUBTwBG", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Battle_Monster_P0ezScyQ5t8ruByf.json b/src/packs/domains/domainCard_Battle_Monster_P0ezScyQ5t8ruByf.json index 6954c018..50cabbea 100644 --- a/src/packs/domains/domainCard_Battle_Monster_P0ezScyQ5t8ruByf.json +++ b/src/packs/domains/domainCard_Battle_Monster_P0ezScyQ5t8ruByf.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 4, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -41,14 +42,20 @@ "img": "icons/magic/control/silhouette-aura-energy.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 122, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784414, + "modifiedTime": 1754304799641, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "P0ezScyQ5t8ruByf", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Blade_Touched_Gb5bqpFSBiuBxUix.json b/src/packs/domains/domainCard_Blade_Touched_Gb5bqpFSBiuBxUix.json index d2d5dafc..82a13070 100644 --- a/src/packs/domains/domainCard_Blade_Touched_Gb5bqpFSBiuBxUix.json +++ b/src/packs/domains/domainCard_Blade_Touched_Gb5bqpFSBiuBxUix.json @@ -8,14 +8,20 @@ "domain": "blade", "recallCost": 1, "level": 7, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784416, + "modifiedTime": 1754304595818, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "Gb5bqpFSBiuBxUix", "sort": 3400000, "effects": [ @@ -64,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754246889363, + "modifiedTime": 1754246967549, + "lastModifiedBy": "l5jB3XmcVXOTQpRZ" }, "_key": "!items.effects!Gb5bqpFSBiuBxUix.fBpLkCWGsB8MbymR" } diff --git a/src/packs/domains/domainCard_Blink_Out_Qu0iA4s3Xov10Erd.json b/src/packs/domains/domainCard_Blink_Out_Qu0iA4s3Xov10Erd.json index 0b96d99c..67fe9335 100644 --- a/src/packs/domains/domainCard_Blink_Out_Qu0iA4s3Xov10Erd.json +++ b/src/packs/domains/domainCard_Blink_Out_Qu0iA4s3Xov10Erd.json @@ -23,6 +23,7 @@ "scalable": true, "key": "hope", "value": 1, + "keyIsID": false, "step": null } ], @@ -65,14 +66,20 @@ "img": "icons/magic/symbols/runes-star-orange-purple.webp", "range": "veryClose" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 119, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784416, + "modifiedTime": 1754253600839, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "Qu0iA4s3Xov10Erd", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Body_Basher_aQz8jKkCd8M9aKMA.json b/src/packs/domains/domainCard_Body_Basher_aQz8jKkCd8M9aKMA.json index f0d4c988..763a4fe0 100644 --- a/src/packs/domains/domainCard_Body_Basher_aQz8jKkCd8M9aKMA.json +++ b/src/packs/domains/domainCard_Body_Basher_aQz8jKkCd8M9aKMA.json @@ -11,14 +11,20 @@ "type": "ability", "resource": null, "actions": {}, - "inVault": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" - } + "inVault": false }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754067167343, + "modifiedTime": 1754241470721, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "effects": [ { "name": "Body Basher", @@ -38,13 +44,13 @@ "key": "system.bonuses.damage.primaryWeapon.bonus", "mode": 2, "value": "@system.traits.strength.value", - "priority": 21 + "priority": null }, { "key": "system.bonuses.damage.secondaryWeapon.bonus", "mode": 2, "value": "@system.traits.strength.value", - "priority": 21 + "priority": null } ], "disabled": false, @@ -65,7 +71,14 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754067425910 }, "_key": "!items.effects!aQz8jKkCd8M9aKMA.8uOMyEczlY2OrKau" } diff --git a/src/packs/domains/domainCard_Bold_Presence_tdsL00yTSLNgZWs6.json b/src/packs/domains/domainCard_Bold_Presence_tdsL00yTSLNgZWs6.json index 02698989..9c767f34 100644 --- a/src/packs/domains/domainCard_Bold_Presence_tdsL00yTSLNgZWs6.json +++ b/src/packs/domains/domainCard_Bold_Presence_tdsL00yTSLNgZWs6.json @@ -22,6 +22,7 @@ "scalable": false, "key": "hope", "value": 1, + "keyIsID": false, "step": null } ], @@ -42,7 +43,7 @@ }, "name": "Spend Hope", "img": "icons/magic/holy/barrier-shield-winged-blue.webp", - "range": "self" + "range": "" }, "OdRTXMOXhZFiZHES": { "type": "effect", @@ -66,14 +67,20 @@ "img": "icons/skills/wounds/blood-cells-disease-green.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784418, + "modifiedTime": 1754241531537, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "tdsL00yTSLNgZWs6", "sort": 3400000, "effects": [ @@ -81,7 +88,7 @@ "name": "Bold Presence", "img": "icons/magic/holy/barrier-shield-winged-blue.webp", "origin": "Compendium.daggerheart.domains.Item.tdsL00yTSLNgZWs6", - "transfer": false, + "transfer": true, "_id": "2XEYhuAcRGTtqvED", "type": "base", "system": { @@ -100,7 +107,7 @@ "priority": null } ], - "disabled": false, + "disabled": true, "duration": { "startTime": null, "combat": null, @@ -116,7 +123,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754241531511, + "modifiedTime": 1754241605959, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!tdsL00yTSLNgZWs6.2XEYhuAcRGTtqvED" } diff --git a/src/packs/domains/domainCard_Bolt_Beacon_BNevJyGk7hmN7XOY.json b/src/packs/domains/domainCard_Bolt_Beacon_BNevJyGk7hmN7XOY.json index eb053b27..aa4552c5 100644 --- a/src/packs/domains/domainCard_Bolt_Beacon_BNevJyGk7hmN7XOY.json +++ b/src/packs/domains/domainCard_Bolt_Beacon_BNevJyGk7hmN7XOY.json @@ -14,7 +14,7 @@ "type": "attack", "_id": "zrGLlwmpuUIBrSXy", "systemPath": "actions", - "description": "

Make a Spellcast Roll against a target within Far range. On a success, spend a Hope to send a bolt of shimmering light toward them, dealing d8+2 magic damage using your Proficiency. The target becomes temporarily Vulnerable and glows brightly until this condition is cleared.

", + "description": "

Make a Spellcast Roll against a target within Far range. On a success, spend a Hope to send a bolt of shimmering light toward them, dealing d8+2 magic damage using your Proficiency. The target becomes temporarily Vulnerable and glows brightly until this condition is cleared.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -23,6 +23,7 @@ "scalable": false, "key": "hope", "value": 1, + "keyIsID": false, "step": null } ], @@ -95,14 +96,20 @@ "img": "icons/magic/light/beam-horizon-strike-yellow.webp", "range": "far" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 132, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784418, + "modifiedTime": 1754269150878, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "BNevJyGk7hmN7XOY", "sort": 3400000, "effects": [ @@ -132,7 +139,7 @@ "startRound": null, "startTurn": null }, - "description": "

Temporarily Vulnerable and glows brightly until this condition is cleared.

", + "description": "

Temporarily Vulnerable and glows brightly until this condition is cleared.

", "tint": "#ffffff", "statuses": [ "vulnerable" @@ -140,7 +147,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754261444472, + "modifiedTime": 1754269172524, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!BNevJyGk7hmN7XOY.veZpnhnF8NRRhKG4" } diff --git a/src/packs/domains/domainCard_Bone_Touched_ON5bvnoQBy0SYc9Y.json b/src/packs/domains/domainCard_Bone_Touched_ON5bvnoQBy0SYc9Y.json index 770ddd63..5932c284 100644 --- a/src/packs/domains/domainCard_Bone_Touched_ON5bvnoQBy0SYc9Y.json +++ b/src/packs/domains/domainCard_Bone_Touched_ON5bvnoQBy0SYc9Y.json @@ -22,6 +22,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -41,14 +42,20 @@ "img": "icons/magic/holy/barrier-shield-winged-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 123, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784419, + "modifiedTime": 1754252494658, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "ON5bvnoQBy0SYc9Y", "sort": 3400000, "effects": [ @@ -91,7 +98,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754250944849, + "modifiedTime": 1754250980546, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!ON5bvnoQBy0SYc9Y.P6hYkkI64FqIcMoP" } diff --git a/src/packs/domains/domainCard_Book_of_Ava_YtZzYBtR0yLPPA93.json b/src/packs/domains/domainCard_Book_of_Ava_YtZzYBtR0yLPPA93.json index 4ed5bd63..2c18114e 100644 --- a/src/packs/domains/domainCard_Book_of_Ava_YtZzYBtR0yLPPA93.json +++ b/src/packs/domains/domainCard_Book_of_Ava_YtZzYBtR0yLPPA93.json @@ -92,6 +92,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -236,14 +237,20 @@ "img": "icons/magic/water/projectile-icecicle.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 124, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784419, + "modifiedTime": 1754228833533, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "YtZzYBtR0yLPPA93", "sort": 3400000, "effects": [ @@ -286,7 +293,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754226654731, + "modifiedTime": 1754226719950, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!YtZzYBtR0yLPPA93.LdcT1nrkd5ORCU4n" } diff --git a/src/packs/domains/domainCard_Book_of_Exota_oVs2MSC6Uf5GbgEG.json b/src/packs/domains/domainCard_Book_of_Exota_oVs2MSC6Uf5GbgEG.json index 032a2de2..a3808a31 100644 --- a/src/packs/domains/domainCard_Book_of_Exota_oVs2MSC6Uf5GbgEG.json +++ b/src/packs/domains/domainCard_Book_of_Exota_oVs2MSC6Uf5GbgEG.json @@ -66,6 +66,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -159,14 +160,20 @@ "img": "icons/creatures/magical/construct-golem-stone-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 124, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784420, + "modifiedTime": 1754240355163, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "oVs2MSC6Uf5GbgEG", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Book_of_Grynn_R0LNheiZycZlZzV3.json b/src/packs/domains/domainCard_Book_of_Grynn_R0LNheiZycZlZzV3.json index 05276707..4b04f076 100644 --- a/src/packs/domains/domainCard_Book_of_Grynn_R0LNheiZycZlZzV3.json +++ b/src/packs/domains/domainCard_Book_of_Grynn_R0LNheiZycZlZzV3.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "rUGDM9JvGfhh9a2Y", "system": { - "description": "

Arcane Deflection: Once per long rest, spend a Hope to negate the damage of an attack targeting you or an ally within Very Close range.

Time Lock: Target an object within Far range. That object stops in time and space exactly where it is until your next rest. If a creature tries to move it, make a Spellcast Roll against them to maintain this spell.

Wall of Flame: Make a Spellcast Roll (15). On a success, create a temporary wall of magical flame between two points within Far range. All creatures in its path must choose a side to be on, and anything that subsequently passes through the wall takes 4d10+3 magic damage.

", + "description": "

Arcane Deflection: Once per long rest, spend a Hope to negate the damage of an attack targeting you or an ally within Very Close range.

Time Lock: Target an object within Far range. That object stops in time and space exactly where it is until your next rest. If a creature tries to move it, make a Spellcast Roll against them to maintain this spell.

Wall of Flame: Make a Spellcast Roll (15). On a success, create a wall of magical flame between two points within Far range. All creatures in its path must choose a side to be on, and anything that subsequently passes through the wall takes 4d10+3 magic damage.

", "domain": "codex", "recallCost": 2, "level": 4, @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -66,7 +67,7 @@ "type": "attack", "_id": "K26kfjmTEH9zPMMO", "systemPath": "actions", - "description": "

Make a Spellcast Roll (15). On a success, create a temporary wall of magical flame between two points within Far range. All creatures in its path must choose a side to be on, and anything that subsequently passes through the wall takes 4d10+3 magic damage.

@Template[type:ray|range:f]

", + "description": "

Make a Spellcast Roll (15). On a success, create a wall of magical flame between two points within Far range. All creatures in its path must choose a side to be on, and anything that subsequently passes through the wall takes 4d10+3 magic damage.

@Template[type:ray|range:f]

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -135,14 +136,20 @@ "img": "icons/magic/fire/barrier-wall-flame-ring-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 125, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784420, + "modifiedTime": 1754240392592, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "R0LNheiZycZlZzV3", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Book_of_Homet_gFMx08ogQ8hS2Obi.json b/src/packs/domains/domainCard_Book_of_Homet_gFMx08ogQ8hS2Obi.json index a0102739..6869c1f0 100644 --- a/src/packs/domains/domainCard_Book_of_Homet_gFMx08ogQ8hS2Obi.json +++ b/src/packs/domains/domainCard_Book_of_Homet_gFMx08ogQ8hS2Obi.json @@ -105,14 +105,20 @@ "range": "" } }, - "resource": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 125, - "artist": "" - } + "resource": null }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784421, + "modifiedTime": 1754240751151, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "gFMx08ogQ8hS2Obi", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Book_of_Illiat_df4iRqQzRntrF6Qw.json b/src/packs/domains/domainCard_Book_of_Illiat_df4iRqQzRntrF6Qw.json index 5acec2fd..91943faf 100644 --- a/src/packs/domains/domainCard_Book_of_Illiat_df4iRqQzRntrF6Qw.json +++ b/src/packs/domains/domainCard_Book_of_Illiat_df4iRqQzRntrF6Qw.json @@ -73,7 +73,8 @@ "scalable": true, "key": "hope", "value": 1, - "step": 1 + "step": 1, + "keyIsID": false } ], "uses": { @@ -128,6 +129,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -153,14 +155,20 @@ "img": "icons/magic/perception/third-eye-blue-red.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 124, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784421, + "modifiedTime": 1754228842497, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "df4iRqQzRntrF6Qw", "sort": 3400000, "effects": [ @@ -196,7 +204,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754227245482, + "modifiedTime": 1754227273003, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!df4iRqQzRntrF6Qw.zAEaETYSOE2fmcyB" }, @@ -232,7 +248,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754227324774, + "modifiedTime": 1754227357678, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!df4iRqQzRntrF6Qw.gfZTHSgwYSDKsePW" } diff --git a/src/packs/domains/domainCard_Book_of_Korvax_cWRFHJdxEZ0M1dAg.json b/src/packs/domains/domainCard_Book_of_Korvax_cWRFHJdxEZ0M1dAg.json index 5bef4922..d3fdb94f 100644 --- a/src/packs/domains/domainCard_Book_of_Korvax_cWRFHJdxEZ0M1dAg.json +++ b/src/packs/domains/domainCard_Book_of_Korvax_cWRFHJdxEZ0M1dAg.json @@ -65,6 +65,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -121,6 +122,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -169,14 +171,20 @@ "img": "icons/magic/symbols/runes-star-pentagon-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 124, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784423, + "modifiedTime": 1754230131429, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "cWRFHJdxEZ0M1dAg", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Book_of_Norai_WtwSWXTRZa7QVvmo.json b/src/packs/domains/domainCard_Book_of_Norai_WtwSWXTRZa7QVvmo.json index 6581cd52..70d1fc79 100644 --- a/src/packs/domains/domainCard_Book_of_Norai_WtwSWXTRZa7QVvmo.json +++ b/src/packs/domains/domainCard_Book_of_Norai_WtwSWXTRZa7QVvmo.json @@ -160,14 +160,20 @@ "img": "icons/magic/fire/explosion-fireball-large-red-orange.webp", "range": "veryFar" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 124, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784423, + "modifiedTime": 1754231026933, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "WtwSWXTRZa7QVvmo", "sort": 3400000, "effects": [ @@ -200,12 +206,20 @@ "description": "", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754230873405, + "modifiedTime": 1754230914860, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!WtwSWXTRZa7QVvmo.iPnT02apql16Zhjf" } diff --git a/src/packs/domains/domainCard_Book_of_Ronin_SZMNR3uGNinJcN4N.json b/src/packs/domains/domainCard_Book_of_Ronin_SZMNR3uGNinJcN4N.json index c809a8e0..7c0ecab0 100644 --- a/src/packs/domains/domainCard_Book_of_Ronin_SZMNR3uGNinJcN4N.json +++ b/src/packs/domains/domainCard_Book_of_Ronin_SZMNR3uGNinJcN4N.json @@ -28,7 +28,7 @@ "includeBase": false }, "target": { - "type": "self", + "type": "any", "amount": null }, "effects": [ @@ -59,7 +59,7 @@ }, "name": "Transform", "img": "icons/containers/barrels/barrel-reinforced-cherry-brown.webp", - "range": "self" + "range": "" }, "h7i4ZuDYuYLnjze6": { "type": "attack", @@ -112,14 +112,20 @@ "img": "icons/magic/unholy/hand-light-green.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 126, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784424, + "modifiedTime": 1754233533128, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "SZMNR3uGNinJcN4N", "sort": 3400000, "effects": [ @@ -155,7 +161,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754233419584, + "modifiedTime": 1754233456124, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!SZMNR3uGNinJcN4N.ntQfpTcXyEL76vCK" }, @@ -193,7 +207,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754233533111, + "modifiedTime": 1754233559989, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!SZMNR3uGNinJcN4N.y44r3c91m06WKSiq" } diff --git a/src/packs/domains/domainCard_Book_of_Sitil_eq8VNqYMRHhF9xw9.json b/src/packs/domains/domainCard_Book_of_Sitil_eq8VNqYMRHhF9xw9.json index e88ccea9..594c34e1 100644 --- a/src/packs/domains/domainCard_Book_of_Sitil_eq8VNqYMRHhF9xw9.json +++ b/src/packs/domains/domainCard_Book_of_Sitil_eq8VNqYMRHhF9xw9.json @@ -30,12 +30,12 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Adjust Appearance", "img": "icons/magic/defensive/shield-barrier-blades-teal.webp", - "range": "self" + "range": "" }, "wBQkw3P4Esj6kOx2": { "type": "effect", @@ -49,6 +49,7 @@ "scalable": false, "key": "hope", "value": 2, + "keyIsID": false, "step": null } ], @@ -117,14 +118,20 @@ "img": "icons/magic/control/silhouette-hold-change-green.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 124, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784424, + "modifiedTime": 1754229292338, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "eq8VNqYMRHhF9xw9", "sort": 3400000, "effects": [ @@ -160,7 +167,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754229239795, + "modifiedTime": 1754229278238, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!eq8VNqYMRHhF9xw9.klUaU5KeQCu7KCBI" }, @@ -196,7 +211,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754229292323, + "modifiedTime": 1754229314018, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!eq8VNqYMRHhF9xw9.wnrHSvvB6pydTVcC" } diff --git a/src/packs/domains/domainCard_Book_of_Tyfar_1VXzwRbvbBj5bd5V.json b/src/packs/domains/domainCard_Book_of_Tyfar_1VXzwRbvbBj5bd5V.json index 5e5cb054..ed29fd87 100644 --- a/src/packs/domains/domainCard_Book_of_Tyfar_1VXzwRbvbBj5bd5V.json +++ b/src/packs/domains/domainCard_Book_of_Tyfar_1VXzwRbvbBj5bd5V.json @@ -176,14 +176,20 @@ "img": "icons/magic/air/fog-gas-smoke-dense-gray.webp", "range": "veryClose" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 124, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784426, + "modifiedTime": 1754241041570, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "1VXzwRbvbBj5bd5V", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Book_of_Vagras_aknDDYtN7EObv94t.json b/src/packs/domains/domainCard_Book_of_Vagras_aknDDYtN7EObv94t.json index eadd1550..a54f4c5f 100644 --- a/src/packs/domains/domainCard_Book_of_Vagras_aknDDYtN7EObv94t.json +++ b/src/packs/domains/domainCard_Book_of_Vagras_aknDDYtN7EObv94t.json @@ -70,6 +70,7 @@ "scalable": false, "key": "hope", "value": 1, + "keyIsID": false, "step": null } ], @@ -157,14 +158,20 @@ "img": "icons/magic/perception/orb-crystal-ball-scrying-blue.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 124, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784427, + "modifiedTime": 1754240299795, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "aknDDYtN7EObv94t", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Book_of_Vyola_VOIgm2j2Ijszwc5m.json b/src/packs/domains/domainCard_Book_of_Vyola_VOIgm2j2Ijszwc5m.json index b94cd702..e9c8dacf 100644 --- a/src/packs/domains/domainCard_Book_of_Vyola_VOIgm2j2Ijszwc5m.json +++ b/src/packs/domains/domainCard_Book_of_Vyola_VOIgm2j2Ijszwc5m.json @@ -65,6 +65,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -90,14 +91,20 @@ "img": "icons/magic/control/energy-stream-link-large-teal.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 125, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784427, + "modifiedTime": 1754233138291, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "VOIgm2j2Ijszwc5m", "sort": 3400000, "effects": [ @@ -133,7 +140,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754233138274, + "modifiedTime": 1754233173756, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!VOIgm2j2Ijszwc5m.6PPapwuwgKy23oHg" } diff --git a/src/packs/domains/domainCard_Book_of_Yarrow_J1ovx2FpNDvPq1o6.json b/src/packs/domains/domainCard_Book_of_Yarrow_J1ovx2FpNDvPq1o6.json index 2a48b31e..4e1cdaf6 100644 --- a/src/packs/domains/domainCard_Book_of_Yarrow_J1ovx2FpNDvPq1o6.json +++ b/src/packs/domains/domainCard_Book_of_Yarrow_J1ovx2FpNDvPq1o6.json @@ -68,6 +68,7 @@ "scalable": false, "key": "hope", "value": 5, + "keyIsID": false, "step": null } ], @@ -88,16 +89,22 @@ }, "name": "Magic Immunity", "img": "icons/magic/defensive/barrier-shield-dome-deflect-teal.webp", - "range": "self" + "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 126, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784429, + "modifiedTime": 1754234029921, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "J1ovx2FpNDvPq1o6", "sort": 3400000, "effects": [ @@ -140,7 +147,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754234029896, + "modifiedTime": 1754234059934, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!J1ovx2FpNDvPq1o6.HWJYhSegVLeAa3dE" } diff --git a/src/packs/domains/domainCard_Boost_VKAHS6eWz28ukcDs.json b/src/packs/domains/domainCard_Boost_VKAHS6eWz28ukcDs.json index 60b62c3b..d6438669 100644 --- a/src/packs/domains/domainCard_Boost_VKAHS6eWz28ukcDs.json +++ b/src/packs/domains/domainCard_Boost_VKAHS6eWz28ukcDs.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -41,14 +42,20 @@ "img": "icons/skills/movement/arrow-upward-yellow.webp", "range": "far" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 123, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784430, + "modifiedTime": 1754252472924, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "VKAHS6eWz28ukcDs", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Brace_QXs4vssSqNGQu5b8.json b/src/packs/domains/domainCard_Brace_QXs4vssSqNGQu5b8.json index bc2e59e5..4ac9fc40 100644 --- a/src/packs/domains/domainCard_Brace_QXs4vssSqNGQu5b8.json +++ b/src/packs/domains/domainCard_Brace_QXs4vssSqNGQu5b8.json @@ -8,14 +8,20 @@ "domain": "bone", "recallCost": 1, "level": 3, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 122, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784431, + "modifiedTime": 1754249663994, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "QXs4vssSqNGQu5b8", "sort": 3400000, "effects": [ @@ -58,7 +64,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754249569486, + "modifiedTime": 1754249622443, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!QXs4vssSqNGQu5b8.xSjqLOHfi5lImDHS" } diff --git a/src/packs/domains/domainCard_Breaking_Blow_8UANBgSdhMZ0sqfO.json b/src/packs/domains/domainCard_Breaking_Blow_8UANBgSdhMZ0sqfO.json index 24b3d661..8f440bd9 100644 --- a/src/packs/domains/domainCard_Breaking_Blow_8UANBgSdhMZ0sqfO.json +++ b/src/packs/domains/domainCard_Breaking_Blow_8UANBgSdhMZ0sqfO.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -40,20 +41,26 @@ ], "target": { "type": "any", - "amount": 1 + "amount": null }, "name": "Mark Stress", "img": "icons/skills/wounds/bone-broken-knee-beam.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 123, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784431, + "modifiedTime": 1754252500559, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "8UANBgSdhMZ0sqfO", "sort": 3400000, "effects": [ @@ -89,7 +96,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754251412535, + "modifiedTime": 1754251458020, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!8UANBgSdhMZ0sqfO.ETIeXRAib3DFBHpX" } diff --git a/src/packs/domains/domainCard_Chain_Lightning_0kAVO6rordCfZqYP.json b/src/packs/domains/domainCard_Chain_Lightning_0kAVO6rordCfZqYP.json index 682357cc..84704d27 100644 --- a/src/packs/domains/domainCard_Chain_Lightning_0kAVO6rordCfZqYP.json +++ b/src/packs/domains/domainCard_Chain_Lightning_0kAVO6rordCfZqYP.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 2, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -146,14 +147,20 @@ "img": "icons/magic/lightning/bolt-forked-large-magenta.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 119, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784433, + "modifiedTime": 1754253714828, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "0kAVO6rordCfZqYP", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Champion_s_Edge_rnejRbUQsNGX1GMC.json b/src/packs/domains/domainCard_Champion_s_Edge_rnejRbUQsNGX1GMC.json index be639515..f0ffe8f8 100644 --- a/src/packs/domains/domainCard_Champion_s_Edge_rnejRbUQsNGX1GMC.json +++ b/src/packs/domains/domainCard_Champion_s_Edge_rnejRbUQsNGX1GMC.json @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -95,6 +96,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -171,6 +173,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -225,14 +228,20 @@ "img": "icons/skills/melee/strike-axe-blood-red.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784433, + "modifiedTime": 1754304490701, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "rnejRbUQsNGX1GMC", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Chokehold_R5GYUalYXLLFRlNl.json b/src/packs/domains/domainCard_Chokehold_R5GYUalYXLLFRlNl.json index 587e7855..f68ba80c 100644 --- a/src/packs/domains/domainCard_Chokehold_R5GYUalYXLLFRlNl.json +++ b/src/packs/domains/domainCard_Chokehold_R5GYUalYXLLFRlNl.json @@ -14,7 +14,7 @@ "type": "effect", "_id": "QCMkze8rU0VB1VYL", "systemPath": "actions", - "description": "

When you position yourself behind a creature who’s about your size, you can mark a Stress to pull them into a chokehold, making them temporarily Vulnerable.

", + "description": "

When you position yourself behind a creature who’s about your size, you can mark a Stress to pull them into a chokehold, making them temporarily Vulnerable.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -56,6 +57,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -77,14 +79,20 @@ "img": "icons/magic/control/debuff-chains-shackle-movement-red.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 128, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784434, + "modifiedTime": 1754173330136, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "R5GYUalYXLLFRlNl", "sort": 3400000, "effects": [ @@ -122,7 +130,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754162879103, + "modifiedTime": 1754173350355, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!R5GYUalYXLLFRlNl.yzGem7IfViJdAv1H" } diff --git a/src/packs/domains/domainCard_Cinder_Grasp_5EP2Lgf7ojfrc0Is.json b/src/packs/domains/domainCard_Cinder_Grasp_5EP2Lgf7ojfrc0Is.json index 8ea51d7f..ce88eb60 100644 --- a/src/packs/domains/domainCard_Cinder_Grasp_5EP2Lgf7ojfrc0Is.json +++ b/src/packs/domains/domainCard_Cinder_Grasp_5EP2Lgf7ojfrc0Is.json @@ -143,14 +143,20 @@ "img": "icons/magic/fire/flame-burning-earth-orange.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 119, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784434, + "modifiedTime": 1754475145346, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "5EP2Lgf7ojfrc0Is", "sort": 3400000, "effects": [ @@ -188,7 +194,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754242497153, + "modifiedTime": 1754253449060, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!5EP2Lgf7ojfrc0Is.HNKkaWi507whJuYN" } diff --git a/src/packs/domains/domainCard_Cloaking_Blast_Zhw7PtK8nMPlsOqD.json b/src/packs/domains/domainCard_Cloaking_Blast_Zhw7PtK8nMPlsOqD.json index 67817fc1..6b5f9ee9 100644 --- a/src/packs/domains/domainCard_Cloaking_Blast_Zhw7PtK8nMPlsOqD.json +++ b/src/packs/domains/domainCard_Cloaking_Blast_Zhw7PtK8nMPlsOqD.json @@ -22,6 +22,7 @@ "scalable": true, "key": "hope", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -39,21 +40,27 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Become Cloaked", "img": "icons/magic/perception/shadow-stealth-eyes-purple.webp", - "range": "self" + "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 120, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784435, + "modifiedTime": 1754254076729, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "Zhw7PtK8nMPlsOqD", "sort": 3400000, "effects": [ @@ -89,7 +96,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754245983439, + "modifiedTime": 1754254085779, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!Zhw7PtK8nMPlsOqD.twCBqXytmRkMz0kV" } diff --git a/src/packs/domains/domainCard_Codex_Touched_7Pu83ABdMukTxu3e.json b/src/packs/domains/domainCard_Codex_Touched_7Pu83ABdMukTxu3e.json index 1e2d5de3..2e3caa80 100644 --- a/src/packs/domains/domainCard_Codex_Touched_7Pu83ABdMukTxu3e.json +++ b/src/packs/domains/domainCard_Codex_Touched_7Pu83ABdMukTxu3e.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -66,14 +67,20 @@ "img": "icons/magic/symbols/star-inverted-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 125, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784435, + "modifiedTime": 1754232995094, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "7Pu83ABdMukTxu3e", "sort": 3400000, "effects": [ @@ -116,7 +123,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754232846270, + "modifiedTime": 1754232933742, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!7Pu83ABdMukTxu3e.oWs00mBY3onxGjF9" } diff --git a/src/packs/domains/domainCard_Confusing_Aura_R8NDiJXJWmC48WSr.json b/src/packs/domains/domainCard_Confusing_Aura_R8NDiJXJWmC48WSr.json index 859635f3..ee91b2fc 100644 --- a/src/packs/domains/domainCard_Confusing_Aura_R8NDiJXJWmC48WSr.json +++ b/src/packs/domains/domainCard_Confusing_Aura_R8NDiJXJWmC48WSr.json @@ -61,7 +61,7 @@ "type": "attack", "_id": "oB5tyd2a7bmcJJmm", "systemPath": "actions", - "description": "

Mark any number of Stress to make that many additional layers.

", + "description": "

Mark any number of Stress to make that many additional layers.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -70,6 +70,7 @@ "key": "stress", "value": 1, "step": 1, + "keyIsID": false, "consumeOnSuccess": false } ], @@ -116,14 +117,20 @@ "resource": { "type": "simple", "value": 0 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 120, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784437, + "modifiedTime": 1754501480068, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "R8NDiJXJWmC48WSr", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Conjure_Swarm_rZPH0BY8Sznc9sFG.json b/src/packs/domains/domainCard_Conjure_Swarm_rZPH0BY8Sznc9sFG.json index ededde93..87226a85 100644 --- a/src/packs/domains/domainCard_Conjure_Swarm_rZPH0BY8Sznc9sFG.json +++ b/src/packs/domains/domainCard_Conjure_Swarm_rZPH0BY8Sznc9sFG.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -35,7 +36,7 @@ "includeBase": false }, "target": { - "type": "self", + "type": "any", "amount": null }, "effects": [ @@ -66,7 +67,7 @@ }, "name": "Tekaira's Armored Beetles: Stress", "img": "icons/creatures/invertebrates/wasp-swarm-attack.webp", - "range": "self" + "range": "" }, "533qzPIjcccpiMey": { "type": "effect", @@ -77,6 +78,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -110,6 +112,7 @@ "scalable": false, "key": "hope", "value": 1, + "keyIsID": false, "step": null } ], @@ -124,12 +127,11 @@ "resultBased": false, "value": { "custom": { - "enabled": false, - "formula": "" + "enabled": false }, "multiplier": "flat", "flatMultiplier": 2, - "dice": "d8", + "dice": "d6", "bonus": 3 }, "applyTo": "hitPoints", @@ -143,8 +145,7 @@ "dice": "d6", "bonus": null, "custom": { - "enabled": false, - "formula": "" + "enabled": false } } } @@ -180,14 +181,20 @@ "img": "icons/creatures/invertebrates/wasp-swarm-movement.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 130, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784438, + "modifiedTime": 1754338003443, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "rZPH0BY8Sznc9sFG", "sort": 3400000, "effects": [ @@ -208,13 +215,13 @@ }, "changes": [ { - "key": "system.rules.damageReduction.reduceSeverity.magical", + "key": "system.resistance.magical.reduction", "mode": 2, "value": "1", "priority": null }, { - "key": "system.rules.damageReduction.reduceSeverity.physical", + "key": "system.resistance.magical.reduction", "mode": 2, "value": "1", "priority": null @@ -236,7 +243,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754115061694, + "modifiedTime": 1754338023216, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!rZPH0BY8Sznc9sFG.dImnF8ZT2rVybiIP" } diff --git a/src/packs/domains/domainCard_Conjured_Steeds_Jkp6cMDiHHaBZQRS.json b/src/packs/domains/domainCard_Conjured_Steeds_Jkp6cMDiHHaBZQRS.json index 31ad8612..6c23ae92 100644 --- a/src/packs/domains/domainCard_Conjured_Steeds_Jkp6cMDiHHaBZQRS.json +++ b/src/packs/domains/domainCard_Conjured_Steeds_Jkp6cMDiHHaBZQRS.json @@ -22,7 +22,8 @@ "scalable": true, "key": "hope", "value": 1, - "step": 1 + "step": 1, + "keyIsID": false } ], "uses": { @@ -44,14 +45,20 @@ "img": "icons/creatures/mammals/deer-movement-leap-green.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 131, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784438, + "modifiedTime": 1754339195316, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "Jkp6cMDiHHaBZQRS", "sort": 3400000, "effects": [ @@ -100,13 +107,21 @@ "startRound": null, "startTurn": null }, - "description": "

Creatures riding a steed gain a βˆ’2 penalty to attack rolls and a +2 bonus to damage rolls.

", + "description": "

Creatures riding a steed gain a βˆ’2 penalty to attack rolls and a +2 bonus to damage rolls.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754118365665, + "modifiedTime": 1754339229433, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!Jkp6cMDiHHaBZQRS.cNSlGBGPKKBNnlH8" } diff --git a/src/packs/domains/domainCard_Copycat_3A7LZ1xmDEMGa165.json b/src/packs/domains/domainCard_Copycat_3A7LZ1xmDEMGa165.json index 723ed8aa..6e9762c6 100644 --- a/src/packs/domains/domainCard_Copycat_3A7LZ1xmDEMGa165.json +++ b/src/packs/domains/domainCard_Copycat_3A7LZ1xmDEMGa165.json @@ -34,14 +34,20 @@ "img": "icons/magic/perception/hand-eye-black.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 127, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784439, + "modifiedTime": 1754499898585, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "3A7LZ1xmDEMGa165", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Corrosive_Projectile_qJaSNTuDfbPVr8Lb.json b/src/packs/domains/domainCard_Corrosive_Projectile_qJaSNTuDfbPVr8Lb.json index 09dff08a..e5e4532f 100644 --- a/src/packs/domains/domainCard_Corrosive_Projectile_qJaSNTuDfbPVr8Lb.json +++ b/src/packs/domains/domainCard_Corrosive_Projectile_qJaSNTuDfbPVr8Lb.json @@ -93,7 +93,8 @@ "scalable": true, "key": "stress", "value": 0, - "step": 2 + "step": 2, + "keyIsID": false } ], "uses": { @@ -115,14 +116,20 @@ "img": "icons/magic/acid/dissolve-bone-white.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 130, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784439, + "modifiedTime": 1754338276907, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "qJaSNTuDfbPVr8Lb", "sort": 3400000, "effects": [ @@ -159,7 +166,7 @@ "startRound": null, "startTurn": null }, - "description": "

While a target is Corroded, they gain a βˆ’1 penalty to their Difficulty for every 2 Stress you spent. This condition can stack.

", + "description": "

While a target is Corroded, they gain a βˆ’1 penalty to their Difficulty for every 2 Stress you spent. This condition can stack.

", "tint": "#ffffff", "statuses": [ "corrode" @@ -167,7 +174,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754115900734, + "modifiedTime": 1754338294266, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!qJaSNTuDfbPVr8Lb.zB95bjSSdVlApQnR" } diff --git a/src/packs/domains/domainCard_Counterspell_6dhqo1kzGxejCjHa.json b/src/packs/domains/domainCard_Counterspell_6dhqo1kzGxejCjHa.json index 7d3a74c9..63ed214d 100644 --- a/src/packs/domains/domainCard_Counterspell_6dhqo1kzGxejCjHa.json +++ b/src/packs/domains/domainCard_Counterspell_6dhqo1kzGxejCjHa.json @@ -14,7 +14,7 @@ "type": "attack", "_id": "SeOcGdKAc7egwg9H", "systemPath": "actions", - "description": "

You can interrupt a magical effect taking place by making a reaction roll using your Spellcast trait. On a success, the effect stops and any consequences are avoided, and this card is placed in your vault.

", + "description": "

You can interrupt a magical effect taking place by making a reaction roll using your Spellcast trait. On a success, the effect stops and any consequences are avoided, and this card is placed in your vault.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -57,14 +57,20 @@ "img": "icons/magic/control/hypnosis-mesmerism-watch.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 119, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784440, + "modifiedTime": 1754253523353, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "6dhqo1kzGxejCjHa", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Critical_Inspiration_ABp9pUfBS69NomTD.json b/src/packs/domains/domainCard_Critical_Inspiration_ABp9pUfBS69NomTD.json index c8013a14..ba3c5685 100644 --- a/src/packs/domains/domainCard_Critical_Inspiration_ABp9pUfBS69NomTD.json +++ b/src/packs/domains/domainCard_Critical_Inspiration_ABp9pUfBS69NomTD.json @@ -51,14 +51,20 @@ "img": "icons/magic/light/hand-sparks-glow-yellow.webp", "range": "veryClose" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784441, + "modifiedTime": 1754241711823, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "ABp9pUfBS69NomTD", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Cruel_Precision_bap1eCWryPNowbyo.json b/src/packs/domains/domainCard_Cruel_Precision_bap1eCWryPNowbyo.json index 9e5c414e..8b142a56 100644 --- a/src/packs/domains/domainCard_Cruel_Precision_bap1eCWryPNowbyo.json +++ b/src/packs/domains/domainCard_Cruel_Precision_bap1eCWryPNowbyo.json @@ -8,14 +8,20 @@ "domain": "bone", "recallCost": 1, "level": 7, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 123, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784442, + "modifiedTime": 1754252496659, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "bap1eCWryPNowbyo", "sort": 3400000, "effects": [ @@ -37,13 +43,13 @@ "key": "system.bonuses.damage.primaryWeapon.bonus", "mode": 2, "value": "@system.traits.agility.value", - "priority": 21 + "priority": null }, { "key": "system.bonuses.damage.secondaryWeapon.bonus", "mode": 2, "value": "@system.traits.agility.value", - "priority": 21 + "priority": null } ], "disabled": true, @@ -64,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754251018030, + "modifiedTime": 1754251148008, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!bap1eCWryPNowbyo.t5D10AL2W9LMGsX4" }, @@ -113,7 +127,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754251104476, + "modifiedTime": 1754251149275, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!bap1eCWryPNowbyo.Ha7c4XgmN5zGMSHG" } diff --git a/src/packs/domains/domainCard_Dark_Whispers_yL2qrSWmTwXVOySH.json b/src/packs/domains/domainCard_Dark_Whispers_yL2qrSWmTwXVOySH.json index 390a2526..2e680a1a 100644 --- a/src/packs/domains/domainCard_Dark_Whispers_yL2qrSWmTwXVOySH.json +++ b/src/packs/domains/domainCard_Dark_Whispers_yL2qrSWmTwXVOySH.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -63,14 +64,20 @@ "img": "icons/magic/control/mouth-smile-deception-purple.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 129, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784442, + "modifiedTime": 1754331078647, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "yL2qrSWmTwXVOySH", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Deadly_Focus_xxZOXC4tiZQ6kg1e.json b/src/packs/domains/domainCard_Deadly_Focus_xxZOXC4tiZQ6kg1e.json index c559dfd9..62b40269 100644 --- a/src/packs/domains/domainCard_Deadly_Focus_xxZOXC4tiZQ6kg1e.json +++ b/src/packs/domains/domainCard_Deadly_Focus_xxZOXC4tiZQ6kg1e.json @@ -26,35 +26,41 @@ }, "effects": [ { - "_id": "TFWiAUDCfGaax5MU", + "_id": "6sR46Hd554DiLHy4", "onSave": false } ], "target": { - "type": "self", - "amount": 1 + "type": "any", + "amount": null }, "name": "Focus", "img": "icons/skills/targeting/crosshair-pointed-orange.webp", - "range": "self" + "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784443, + "modifiedTime": 1754304260916, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "xxZOXC4tiZQ6kg1e", "sort": 3400000, "effects": [ { "name": "Deadly Focus", - "img": "icons/skills/targeting/crosshair-pointed-orange.webp", + "img": "systems/daggerheart/assets/icons/domains/domain-card/blade.png", "origin": "Compendium.daggerheart.domains.Item.xxZOXC4tiZQ6kg1e", - "transfer": false, - "_id": "TFWiAUDCfGaax5MU", + "transfer": true, + "_id": "6sR46Hd554DiLHy4", "type": "base", "system": { "rangeDependence": { @@ -72,7 +78,7 @@ "priority": null } ], - "disabled": false, + "disabled": true, "duration": { "startTime": null, "combat": null, @@ -82,15 +88,23 @@ "startRound": null, "startTurn": null }, - "description": "

Until you attack another creature, you defeat the target, or the battle ends, gain a +1 bonus to your Proficiency.

", + "description": "", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754244951545, + "modifiedTime": 1754304242570, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!xxZOXC4tiZQ6kg1e.TFWiAUDCfGaax5MU" + "_key": "!items.effects!xxZOXC4tiZQ6kg1e.6sR46Hd554DiLHy4" } ], "ownership": { diff --git a/src/packs/domains/domainCard_Death_Grip_x0FVGE1YbfXalJiw.json b/src/packs/domains/domainCard_Death_Grip_x0FVGE1YbfXalJiw.json index 6e7c6b64..4341f03f 100644 --- a/src/packs/domains/domainCard_Death_Grip_x0FVGE1YbfXalJiw.json +++ b/src/packs/domains/domainCard_Death_Grip_x0FVGE1YbfXalJiw.json @@ -216,14 +216,20 @@ "img": "icons/magic/nature/root-vine-beanstalk-moon.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 130, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784444, + "modifiedTime": 1754338651654, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "x0FVGE1YbfXalJiw", "sort": 3400000, "effects": [ @@ -256,12 +262,20 @@ "description": "", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754116402812, + "modifiedTime": 1754338538962, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!x0FVGE1YbfXalJiw.wMXCIQxqLS9IbsEK" }, @@ -294,12 +308,20 @@ "description": "", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754116465068, + "modifiedTime": 1754338547840, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!x0FVGE1YbfXalJiw.bZ0xgZ6TT2099OYp" }, @@ -332,12 +354,20 @@ "description": "", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754117032244, + "modifiedTime": 1754338556070, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!x0FVGE1YbfXalJiw.Oe95zWWY41nH8y5l" } diff --git a/src/packs/domains/domainCard_Deathrun_xFOSn8IVVNizgHFq.json b/src/packs/domains/domainCard_Deathrun_xFOSn8IVVNizgHFq.json index bdc005da..4d415f76 100644 --- a/src/packs/domains/domainCard_Deathrun_xFOSn8IVVNizgHFq.json +++ b/src/packs/domains/domainCard_Deathrun_xFOSn8IVVNizgHFq.json @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -41,14 +42,20 @@ "img": "icons/magic/movement/trail-streak-zigzag-yellow.webp", "range": "far" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 123, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784445, + "modifiedTime": 1754252515126, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "xFOSn8IVVNizgHFq", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Deft_Deceiver_38znCh6kHTkaPwYi.json b/src/packs/domains/domainCard_Deft_Deceiver_38znCh6kHTkaPwYi.json index dd9c82a2..0ac724a6 100644 --- a/src/packs/domains/domainCard_Deft_Deceiver_38znCh6kHTkaPwYi.json +++ b/src/packs/domains/domainCard_Deft_Deceiver_38znCh6kHTkaPwYi.json @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -44,14 +45,20 @@ "img": "icons/magic/life/heart-pink.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 126, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784445, + "modifiedTime": 1754340779197, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "38znCh6kHTkaPwYi", "sort": 3400000, "effects": [ @@ -88,13 +95,21 @@ "startRound": null, "startTurn": null }, - "description": "

Gain advantage on a roll to deceive or trick someone into believing a lie you tell them.

", + "description": "

Gain advantage on a roll to deceive or trick someone into believing a lie you tell them.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754094114894, + "modifiedTime": 1754340806603, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!38znCh6kHTkaPwYi.qtHDKXJ1pH8Cu7by" } diff --git a/src/packs/domains/domainCard_Deft_Maneuvers_dc4rAXlv95srZUct.json b/src/packs/domains/domainCard_Deft_Maneuvers_dc4rAXlv95srZUct.json index 2b63b534..bdf4cbd0 100644 --- a/src/packs/domains/domainCard_Deft_Maneuvers_dc4rAXlv95srZUct.json +++ b/src/packs/domains/domainCard_Deft_Maneuvers_dc4rAXlv95srZUct.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -46,14 +47,20 @@ "img": "icons/skills/movement/arrow-upward-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 122, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784446, + "modifiedTime": 1754249648390, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "dc4rAXlv95srZUct", "sort": 3400000, "effects": [ @@ -96,7 +103,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754246649378, + "modifiedTime": 1754246697979, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!dc4rAXlv95srZUct.gEDGcbsgWY2D2nOo" } diff --git a/src/packs/domains/domainCard_Disintegration_Wave_kja5qvh4rdeDBB96.json b/src/packs/domains/domainCard_Disintegration_Wave_kja5qvh4rdeDBB96.json index 4e3c3083..cf5c2cc0 100644 --- a/src/packs/domains/domainCard_Disintegration_Wave_kja5qvh4rdeDBB96.json +++ b/src/packs/domains/domainCard_Disintegration_Wave_kja5qvh4rdeDBB96.json @@ -58,14 +58,20 @@ "range": "far" } }, - "resource": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 126, - "artist": "" - } + "resource": null }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784447, + "modifiedTime": 1754240832214, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "kja5qvh4rdeDBB96", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Divination_K8oFepK24UVsAX8B.json b/src/packs/domains/domainCard_Divination_K8oFepK24UVsAX8B.json index d4bd8279..0c7e5530 100644 --- a/src/packs/domains/domainCard_Divination_K8oFepK24UVsAX8B.json +++ b/src/packs/domains/domainCard_Divination_K8oFepK24UVsAX8B.json @@ -22,6 +22,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -41,14 +42,20 @@ "img": "icons/skills/trades/academics-astronomy-navigation-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 132, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784448, + "modifiedTime": 1754269593038, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "K8oFepK24UVsAX8B", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Earthquake_C0qLOwSSvZ6PG3Ws.json b/src/packs/domains/domainCard_Earthquake_C0qLOwSSvZ6PG3Ws.json index 57fc72db..6b8cc8b1 100644 --- a/src/packs/domains/domainCard_Earthquake_C0qLOwSSvZ6PG3Ws.json +++ b/src/packs/domains/domainCard_Earthquake_C0qLOwSSvZ6PG3Ws.json @@ -19,12 +19,12 @@ "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "C0qLOwSSvZ6PG3Ws", - "value": 1, + "consumeOnSuccess": true, "scalable": false, - "step": null, - "consumeOnSuccess": true + "key": "C0qLOwSSvZ6PG3Ws", + "value": 1, + "keyIsID": true, + "step": null } ], "uses": { @@ -99,14 +99,20 @@ "range": "veryFar" } }, - "resource": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 120, - "artist": "" - } + "resource": null }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784449, + "modifiedTime": 1754501560924, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "C0qLOwSSvZ6PG3Ws", "sort": 3400000, "effects": [ @@ -136,13 +142,21 @@ "startRound": null, "startTurn": null }, - "description": "

Temporarily Vulnerable.

", + "description": "

Temporarily Vulnerable.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754254262187, + "modifiedTime": 1754254297527, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!C0qLOwSSvZ6PG3Ws.Z31XqmGUKWYcZdMY" } diff --git a/src/packs/domains/domainCard_Eclipse_62Sj67PdPFzwWVe3.json b/src/packs/domains/domainCard_Eclipse_62Sj67PdPFzwWVe3.json index bd080f0d..855d336e 100644 --- a/src/packs/domains/domainCard_Eclipse_62Sj67PdPFzwWVe3.json +++ b/src/packs/domains/domainCard_Eclipse_62Sj67PdPFzwWVe3.json @@ -114,14 +114,20 @@ "img": "icons/skills/wounds/anatomy-organ-brain-pink-red.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 129, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784449, + "modifiedTime": 1754331279468, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "62Sj67PdPFzwWVe3", "sort": 3400000, "effects": [ @@ -158,13 +164,21 @@ "startRound": null, "startTurn": null }, - "description": "

Attack rolls have disadvantage when targeting you or an ally within this shadow.

", + "description": "

Attack rolls have disadvantage when targeting you or an ally within this shadow.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754170073534, + "modifiedTime": 1754173876127, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!62Sj67PdPFzwWVe3.ARMcw2FtKfaYr902" } diff --git a/src/packs/domains/domainCard_Encore_klahWDFwihqqEhXP.json b/src/packs/domains/domainCard_Encore_klahWDFwihqqEhXP.json index 23358d47..43b6cf22 100644 --- a/src/packs/domains/domainCard_Encore_klahWDFwihqqEhXP.json +++ b/src/packs/domains/domainCard_Encore_klahWDFwihqqEhXP.json @@ -56,14 +56,20 @@ "img": "icons/magic/light/explosion-impact-purple.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 127, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784450, + "modifiedTime": 1754342166865, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "klahWDFwihqqEhXP", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Endless_Charisma_tNzFNlVHghloKsFi.json b/src/packs/domains/domainCard_Endless_Charisma_tNzFNlVHghloKsFi.json index 47692d5e..a226b952 100644 --- a/src/packs/domains/domainCard_Endless_Charisma_tNzFNlVHghloKsFi.json +++ b/src/packs/domains/domainCard_Endless_Charisma_tNzFNlVHghloKsFi.json @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -39,14 +40,20 @@ "img": "icons/sundries/gaming/dice-runed-tan.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 127, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784450, + "modifiedTime": 1754341790725, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "tNzFNlVHghloKsFi", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Enrapture_a8lFiKX1o8T924ze.json b/src/packs/domains/domainCard_Enrapture_a8lFiKX1o8T924ze.json index fd27c8ce..fc87d922 100644 --- a/src/packs/domains/domainCard_Enrapture_a8lFiKX1o8T924ze.json +++ b/src/packs/domains/domainCard_Enrapture_a8lFiKX1o8T924ze.json @@ -73,6 +73,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -120,14 +121,20 @@ "img": "icons/commodities/gems/gem-faceted-navette-red.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 126, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784451, + "modifiedTime": 1754500747453, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "a8lFiKX1o8T924ze", "sort": 3400000, "effects": [ @@ -163,7 +170,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754500747406, + "modifiedTime": 1754500810477, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!a8lFiKX1o8T924ze.EYG5dLImk6GkmfRd" } diff --git a/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json b/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json index ee36e25d..fd032d37 100644 --- a/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json +++ b/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json @@ -23,7 +23,8 @@ "scalable": true, "key": "stress", "value": 1, - "step": 1 + "step": 1, + "keyIsID": false } ], "uses": { @@ -91,14 +92,20 @@ "img": "icons/magic/light/projectiles-star-purple.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 120, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784452, + "modifiedTime": 1754501517016, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "hZJp9mdkMnqKDROe", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Fane_of_the_Wilds_F2m9wvZ3v5c3yCtv.json b/src/packs/domains/domainCard_Fane_of_the_Wilds_F2m9wvZ3v5c3yCtv.json index 847def02..05477e79 100644 --- a/src/packs/domains/domainCard_Fane_of_the_Wilds_F2m9wvZ3v5c3yCtv.json +++ b/src/packs/domains/domainCard_Fane_of_the_Wilds_F2m9wvZ3v5c3yCtv.json @@ -15,14 +15,20 @@ "recovery": "longRest", "max": "", "icon": "" - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 131, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784452, + "modifiedTime": 1754336327302, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "F2m9wvZ3v5c3yCtv", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Ferocity_jSQsSP61CX4MhSN7.json b/src/packs/domains/domainCard_Ferocity_jSQsSP61CX4MhSN7.json index 9e46e6ba..feb74897 100644 --- a/src/packs/domains/domainCard_Ferocity_jSQsSP61CX4MhSN7.json +++ b/src/packs/domains/domainCard_Ferocity_jSQsSP61CX4MhSN7.json @@ -33,14 +33,20 @@ "img": "icons/skills/melee/maneuver-daggers-paired-orange.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 122, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784453, + "modifiedTime": 1754249658710, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "jSQsSP61CX4MhSN7", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Final_Words_Nbw6Jnh1vRZzwHQI.json b/src/packs/domains/domainCard_Final_Words_Nbw6Jnh1vRZzwHQI.json index 757a705a..61cd64e6 100644 --- a/src/packs/domains/domainCard_Final_Words_Nbw6Jnh1vRZzwHQI.json +++ b/src/packs/domains/domainCard_Final_Words_Nbw6Jnh1vRZzwHQI.json @@ -57,14 +57,20 @@ "img": "icons/magic/death/undead-skeleton-fire-green.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 132, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784454, + "modifiedTime": 1754269243084, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "Nbw6Jnh1vRZzwHQI", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Flight_54GUjNuBEy7xdzMz.json b/src/packs/domains/domainCard_Flight_54GUjNuBEy7xdzMz.json index bd8744f7..1b4970d2 100644 --- a/src/packs/domains/domainCard_Flight_54GUjNuBEy7xdzMz.json +++ b/src/packs/domains/domainCard_Flight_54GUjNuBEy7xdzMz.json @@ -14,7 +14,7 @@ "type": "attack", "_id": "sAE4ZDLyU9CmNzES", "systemPath": "actions", - "description": "

Make a Spellcast Roll (15). On a success, place a number of tokens equal to your Agility on this card (minimum 1).

", + "description": "

Make a Spellcast Roll (15). On a success, place a number of tokens equal to your Agility on this card (minimum 1).

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -66,15 +66,15 @@ "type": "effect", "_id": "2wzlrOPefdowBtRr", "systemPath": "actions", - "description": "

When you make an action roll while flying, spend a token from this card. After the action that spends the last token is resolved, you descend to the ground directly below you.

", + "description": "

When you make an action roll while flying, spend a token from this card. After the action that spends the last token is resolved, you descend to the ground directly below you.

", "chatDisplay": true, "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "54GUjNuBEy7xdzMz", - "value": 1, "scalable": false, + "key": "54GUjNuBEy7xdzMz", + "value": 1, + "keyIsID": true, "step": null, "consumeOnSuccess": false } @@ -100,14 +100,20 @@ "value": 0, "max": "", "icon": "" - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 119, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784454, + "modifiedTime": 1754253557569, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "54GUjNuBEy7xdzMz", "sort": 3400000, "effects": [ @@ -137,7 +143,7 @@ "startRound": null, "startTurn": null }, - "description": "

You can fly. When you make an action roll while flying, spend a token from this card.Β After the action that spends the last token is resolved, you descend to the ground directly below you.

", + "description": "

You can fly. When you make an action roll while flying, spend a token from this card.Β After the action that spends the last token is resolved, you descend to the ground directly below you.

", "tint": "#ffffff", "statuses": [ "fly" @@ -145,7 +151,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754244252788, + "modifiedTime": 1754253569038, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!54GUjNuBEy7xdzMz.gd8crfrvMGWXLWGP" } diff --git a/src/packs/domains/domainCard_Floating_Eye_wOQLu7nLMQ7v6Ogw.json b/src/packs/domains/domainCard_Floating_Eye_wOQLu7nLMQ7v6Ogw.json index 97e94563..62a36dcf 100644 --- a/src/packs/domains/domainCard_Floating_Eye_wOQLu7nLMQ7v6Ogw.json +++ b/src/packs/domains/domainCard_Floating_Eye_wOQLu7nLMQ7v6Ogw.json @@ -14,7 +14,7 @@ "type": "effect", "_id": "pO8E1Bf4GDAU0efI", "systemPath": "actions", - "description": "

Spend a Hope to create a single, small floating orb that you can move anywhere within Very Far range. While this spell is active, you can see through the orb as though you’re looking out from its position. You can transition between using your own senses and seeing through the orb freely. If the orb takes damage or moves out of range, the spell ends.

", + "description": "

Spend a Hope to create a single, small floating orb that you can move anywhere within Very Far range. While this spell is active, you can see through the orb as though you’re looking out from its position. You can transition between using your own senses and seeing through the orb freely. If the orb takes damage or moves out of range, the spell ends.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -38,14 +38,20 @@ "img": "icons/magic/perception/eye-tendrils-web-purple.webp", "range": "veryFar" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 119, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784455, + "modifiedTime": 1754253473206, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "wOQLu7nLMQ7v6Ogw", "sort": 3400000, "effects": [ @@ -75,13 +81,21 @@ "startRound": null, "startTurn": null }, - "description": "

While this spell is active, you can see through the orb as though you’re looking out from its position. You can transition between using your own senses and seeing through the orb freely. If the orb takes damage or moves out of range, the spell ends.

", + "description": "

While this spell is active, you can see through the orb as though you’re looking out from its position. You can transition between using your own senses and seeing through the orb freely. If the orb takes damage or moves out of range, the spell ends.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754242685645, + "modifiedTime": 1754253493198, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!wOQLu7nLMQ7v6Ogw.ahKlKAc9TuGgx9Zm" } diff --git a/src/packs/domains/domainCard_Forager_06UapZuaA5S6fAKl.json b/src/packs/domains/domainCard_Forager_06UapZuaA5S6fAKl.json index 292961b8..5e039fb9 100644 --- a/src/packs/domains/domainCard_Forager_06UapZuaA5S6fAKl.json +++ b/src/packs/domains/domainCard_Forager_06UapZuaA5S6fAKl.json @@ -238,14 +238,20 @@ "img": "icons/consumables/potions/bottle-bulb-corked-green.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 131, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784456, + "modifiedTime": 1754339631526, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "06UapZuaA5S6fAKl", "sort": 3400000, "effects": [ @@ -282,13 +288,21 @@ "startRound": null, "startTurn": null }, - "description": "

+2 to a Spellcast Roll

", + "description": "

+2 to a Spellcast Roll

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754118672156, + "modifiedTime": 1754339590891, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!06UapZuaA5S6fAKl.cTf5gEem5Gt4fLS4" } diff --git a/src/packs/domains/domainCard_Force_of_Nature_LzVpMkD5I4QeaIHf.json b/src/packs/domains/domainCard_Force_of_Nature_LzVpMkD5I4QeaIHf.json index 331d19b5..bf4a1e0d 100644 --- a/src/packs/domains/domainCard_Force_of_Nature_LzVpMkD5I4QeaIHf.json +++ b/src/packs/domains/domainCard_Force_of_Nature_LzVpMkD5I4QeaIHf.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -37,12 +38,12 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Transform", "img": "icons/magic/nature/elemental-plant-humanoid.webp", - "range": "self" + "range": "" }, "1rLoYS90AZizJujS": { "type": "effect", @@ -53,6 +54,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -73,14 +75,20 @@ "img": "icons/commodities/gems/gem-faceted-octagon-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 131, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784456, + "modifiedTime": 1754340347669, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "LzVpMkD5I4QeaIHf", "sort": 3400000, "effects": [ @@ -111,12 +119,6 @@ "mode": 2, "value": "10", "priority": null - }, - { - "key": "system.rules.conditionImmunities.restrained", - "mode": 5, - "value": "1", - "priority": null } ], "disabled": false, @@ -135,7 +137,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754120504134, + "modifiedTime": 1754340362524, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!LzVpMkD5I4QeaIHf.ptBC882plZW39Ld9" } diff --git a/src/packs/domains/domainCard_Forceful_Push_z8FFPhDh2SdFkFfS.json b/src/packs/domains/domainCard_Forceful_Push_z8FFPhDh2SdFkFfS.json index d77c8777..1943eac9 100644 --- a/src/packs/domains/domainCard_Forceful_Push_z8FFPhDh2SdFkFfS.json +++ b/src/packs/domains/domainCard_Forceful_Push_z8FFPhDh2SdFkFfS.json @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -47,14 +48,20 @@ } }, "resource": null, - "inVault": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" - } + "inVault": false }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754067019520, + "modifiedTime": 1754241411518, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "effects": [ { "name": "Forcefully Pushed", @@ -90,7 +97,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!z8FFPhDh2SdFkFfS.95oX6QYPySdyyh2v" } diff --git a/src/packs/domains/domainCard_Forest_Sprites_JrkUMTzaFmQNBHVm.json b/src/packs/domains/domainCard_Forest_Sprites_JrkUMTzaFmQNBHVm.json index feb095a2..6b812038 100644 --- a/src/packs/domains/domainCard_Forest_Sprites_JrkUMTzaFmQNBHVm.json +++ b/src/packs/domains/domainCard_Forest_Sprites_JrkUMTzaFmQNBHVm.json @@ -23,7 +23,8 @@ "scalable": true, "key": "hope", "value": 1, - "step": 1 + "step": 1, + "keyIsID": false } ], "uses": { @@ -69,14 +70,20 @@ "img": "icons/creatures/magical/humanoid-silhouette-dashing-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 131, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784457, + "modifiedTime": 1754339713793, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "JrkUMTzaFmQNBHVm", "sort": 3400000, "effects": [ @@ -113,13 +120,21 @@ "startRound": null, "startTurn": null }, - "description": "

Gain a +3 bonus to attack rolls against adversaries within Melee range of a sprite.

An ally who marks an Armor Slot while within Melee range of a sprite can mark an additional Armor Slot.

A sprite vanishes after granting a benefit or taking any damage.

", + "description": "

Gain a +3 bonus to attack rolls against adversaries within Melee range of a sprite.

An ally who marks an Armor Slot while within Melee range of a sprite can mark an additional Armor Slot.

A sprite vanishes after granting a benefit or taking any damage.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754335144302, + "modifiedTime": 1754335195819, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!JrkUMTzaFmQNBHVm.SuiUFAPyB37Qr6sO" } diff --git a/src/packs/domains/domainCard_Fortified_Armor_oVa49lI107eZILZr.json b/src/packs/domains/domainCard_Fortified_Armor_oVa49lI107eZILZr.json index e755bf8d..b48a2e09 100644 --- a/src/packs/domains/domainCard_Fortified_Armor_oVa49lI107eZILZr.json +++ b/src/packs/domains/domainCard_Fortified_Armor_oVa49lI107eZILZr.json @@ -8,14 +8,20 @@ "domain": "blade", "recallCost": 0, "level": 4, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784458, + "modifiedTime": 1754304268859, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "oVa49lI107eZILZr", "sort": 3400000, "effects": [ @@ -64,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754244979623, + "modifiedTime": 1754245026233, + "lastModifiedBy": "l5jB3XmcVXOTQpRZ" }, "_key": "!items.effects!oVa49lI107eZILZr.jx8KWAdyoPV2hV0s" } diff --git a/src/packs/domains/domainCard_Frenzy_MMl7abdGRLl7TJLO.json b/src/packs/domains/domainCard_Frenzy_MMl7abdGRLl7TJLO.json index 2de4be7e..d8718735 100644 --- a/src/packs/domains/domainCard_Frenzy_MMl7abdGRLl7TJLO.json +++ b/src/packs/domains/domainCard_Frenzy_MMl7abdGRLl7TJLO.json @@ -31,21 +31,27 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Frenzy", "img": "icons/magic/fire/projectile-wave-yellow.webp", - "range": "self" + "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 122, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784459, + "modifiedTime": 1754304635322, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "MMl7abdGRLl7TJLO", "sort": 3400000, "effects": [ @@ -106,7 +112,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754247528086, + "modifiedTime": 1754304880762, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!MMl7abdGRLl7TJLO.1POoAgObPOWDpUco" } diff --git a/src/packs/domains/domainCard_Full_Surge_SgvjJfMyubZowPxS.json b/src/packs/domains/domainCard_Full_Surge_SgvjJfMyubZowPxS.json index 43b4baf4..ca10655c 100644 --- a/src/packs/domains/domainCard_Full_Surge_SgvjJfMyubZowPxS.json +++ b/src/packs/domains/domainCard_Full_Surge_SgvjJfMyubZowPxS.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 3, + "keyIsID": false, "step": null } ], @@ -42,16 +43,22 @@ }, "name": "Mark Stress", "img": "icons/magic/control/buff-flight-wings-runes-purple.webp", - "range": "self" + "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 135, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784460, + "modifiedTime": 1754498928489, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "SgvjJfMyubZowPxS", "sort": 3400000, "effects": [ @@ -59,7 +66,7 @@ "name": "Full Surge", "img": "icons/magic/symbols/ring-circle-smoke-blue.webp", "origin": "Compendium.daggerheart.domains.Item.SgvjJfMyubZowPxS", - "transfer": false, + "transfer": true, "_id": "H5q5iYImr69TfZcp", "type": "base", "system": { @@ -108,7 +115,7 @@ "priority": null } ], - "disabled": false, + "disabled": true, "duration": { "startTime": null, "combat": null, @@ -118,13 +125,21 @@ "startRound": null, "startTurn": null }, - "description": "

Gain a +2 bonus to all of your character traits until your next rest.

", + "description": "

Gain a +2 bonus to all of your character traits until your next rest.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754242182511, + "modifiedTime": 1754242229676, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!SgvjJfMyubZowPxS.H5q5iYImr69TfZcp" } diff --git a/src/packs/domains/domainCard_Get_Back_Up_BFWN2cObMdlk9uVz.json b/src/packs/domains/domainCard_Get_Back_Up_BFWN2cObMdlk9uVz.json index ab74e805..91b55807 100644 --- a/src/packs/domains/domainCard_Get_Back_Up_BFWN2cObMdlk9uVz.json +++ b/src/packs/domains/domainCard_Get_Back_Up_BFWN2cObMdlk9uVz.json @@ -9,14 +9,20 @@ "recallCost": 1, "level": 1, "type": "ability", - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" - } + "actions": {} }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784460, + "modifiedTime": 1754304045807, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "BFWN2cObMdlk9uVz", "sort": 3400000, "effects": [ @@ -59,7 +65,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754304030600, + "modifiedTime": 1754304076699, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!BFWN2cObMdlk9uVz.aV3KUHtXXR86PRMh" } diff --git a/src/packs/domains/domainCard_Gifted_Tracker_VZ2b4zfRzV73XTuT.json b/src/packs/domains/domainCard_Gifted_Tracker_VZ2b4zfRzV73XTuT.json index 61d90f0c..a9e66110 100644 --- a/src/packs/domains/domainCard_Gifted_Tracker_VZ2b4zfRzV73XTuT.json +++ b/src/packs/domains/domainCard_Gifted_Tracker_VZ2b4zfRzV73XTuT.json @@ -22,7 +22,8 @@ "scalable": true, "key": "hope", "value": 1, - "step": 1 + "step": 1, + "keyIsID": false } ], "uses": { @@ -44,14 +45,20 @@ "img": "icons/magic/nature/stealth-hide-eyes-green.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 130, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784461, + "modifiedTime": 1754337461017, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "VZ2b4zfRzV73XTuT", "sort": 3400000, "effects": [ @@ -88,13 +95,21 @@ "startRound": null, "startTurn": null }, - "description": "

When you encounter creatures you’ve tracked in this way, gain a +1 bonus to your Evasion against them.

", + "description": "

When you encounter creatures you’ve tracked in this way, gain a +1 bonus to your Evasion against them.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754114056078, + "modifiedTime": 1754670410126, + "lastModifiedBy": "49DaecTcBSc5d0DA" }, "_key": "!items.effects!VZ2b4zfRzV73XTuT.47Oh2weCdmuvKHM9" } diff --git a/src/packs/domains/domainCard_Glancing_Blow_nCNCqSH7UgW4O3To.json b/src/packs/domains/domainCard_Glancing_Blow_nCNCqSH7UgW4O3To.json index 70338c03..b01a8e00 100644 --- a/src/packs/domains/domainCard_Glancing_Blow_nCNCqSH7UgW4O3To.json +++ b/src/packs/domains/domainCard_Glancing_Blow_nCNCqSH7UgW4O3To.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -45,14 +46,20 @@ "img": "systems/daggerheart/assets/icons/domains/domain-card/blade.png", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784462, + "modifiedTime": 1754304608102, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "nCNCqSH7UgW4O3To", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Glyph_of_Nightfall_B5HXqYRJiL3xMNKT.json b/src/packs/domains/domainCard_Glyph_of_Nightfall_B5HXqYRJiL3xMNKT.json index ef2b6df9..99b6b683 100644 --- a/src/packs/domains/domainCard_Glyph_of_Nightfall_B5HXqYRJiL3xMNKT.json +++ b/src/packs/domains/domainCard_Glyph_of_Nightfall_B5HXqYRJiL3xMNKT.json @@ -23,6 +23,7 @@ "scalable": false, "key": "hope", "value": 1, + "keyIsID": false, "step": null } ], @@ -69,14 +70,20 @@ "img": "icons/magic/symbols/runes-triangle-blue.webp", "range": "veryClose" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 128, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784463, + "modifiedTime": 1754330838174, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "B5HXqYRJiL3xMNKT", "sort": 3400000, "effects": [ @@ -113,13 +120,21 @@ "startRound": null, "startTurn": null }, - "description": "

Conjure a dark glyph upon their body that exposes their weak points, temporarily reducing the target’s Difficulty by a value equal to your Knowledge (minimum 1).

", + "description": "

Conjure a dark glyph upon their body that exposes their weak points, temporarily reducing the target’s Difficulty by a value equal to your Knowledge (minimum 1).

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754163343937, + "modifiedTime": 1754173437465, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!B5HXqYRJiL3xMNKT.st8Ji9ZNexvw64xM" }, @@ -156,13 +171,21 @@ "startRound": null, "startTurn": null }, - "description": "

Conjure a dark glyph upon their body that exposes their weak points, temporarily reducing the target’s Difficulty by a value equal to your Knowledge (minimum 1).

", + "description": "

Conjure a dark glyph upon their body that exposes their weak points, temporarily reducing the target’s Difficulty by a value equal to your Knowledge (minimum 1).

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754330719550, + "modifiedTime": 1754330762238, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!B5HXqYRJiL3xMNKT.X2w3kRHaETs8YWLO" } diff --git a/src/packs/domains/domainCard_Goad_Them_On_HufF5KzuNfEb9RTi.json b/src/packs/domains/domainCard_Goad_Them_On_HufF5KzuNfEb9RTi.json index 190028ed..03c1b5e0 100644 --- a/src/packs/domains/domainCard_Goad_Them_On_HufF5KzuNfEb9RTi.json +++ b/src/packs/domains/domainCard_Goad_Them_On_HufF5KzuNfEb9RTi.json @@ -87,14 +87,20 @@ "img": "icons/magic/control/mouth-smile-deception-purple.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784464, + "modifiedTime": 1754241738411, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "HufF5KzuNfEb9RTi", "sort": 3400000, "effects": [ @@ -131,13 +137,21 @@ "startRound": null, "startTurn": null }, - "description": "

The next time this Adversary isΒ spotlighted,Β they must target the Goading Character with an attack, which they make with disadvantage.

", + "description": "

The next time this Adversary isΒ spotlighted,Β they must target the Goading Character with an attack, which they make with disadvantage.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754068261219, + "modifiedTime": 1754068330770, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!HufF5KzuNfEb9RTi.Jccsuc48gmA6QAni" } diff --git a/src/packs/domains/domainCard_Gore_and_Glory_3zvjgZ5Od343wHzx.json b/src/packs/domains/domainCard_Gore_and_Glory_3zvjgZ5Od343wHzx.json index 8151beaa..6c8de699 100644 --- a/src/packs/domains/domainCard_Gore_and_Glory_3zvjgZ5Od343wHzx.json +++ b/src/packs/domains/domainCard_Gore_and_Glory_3zvjgZ5Od343wHzx.json @@ -146,14 +146,20 @@ "img": "icons/magic/holy/barrier-shield-winged-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 122, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784464, + "modifiedTime": 1754304753469, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "3zvjgZ5Od343wHzx", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Grace_Touched_KAuNb51AwhD8KEXk.json b/src/packs/domains/domainCard_Grace_Touched_KAuNb51AwhD8KEXk.json index b87ea24d..f1d82163 100644 --- a/src/packs/domains/domainCard_Grace_Touched_KAuNb51AwhD8KEXk.json +++ b/src/packs/domains/domainCard_Grace_Touched_KAuNb51AwhD8KEXk.json @@ -22,6 +22,7 @@ "scalable": false, "key": "armor", "value": 1, + "keyIsID": false, "step": null } ], @@ -91,14 +92,20 @@ "img": "icons/commodities/gems/gem-faceted-navette-red.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 127, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784465, + "modifiedTime": 1754341871438, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "KAuNb51AwhD8KEXk", "sort": 3400000, "effects": [ @@ -134,7 +141,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754327595635, + "modifiedTime": 1754327656807, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!KAuNb51AwhD8KEXk.KK5m2slpFuXDxFaL" } diff --git a/src/packs/domains/domainCard_Ground_Pound_WnGldYhJPDhx8v9X.json b/src/packs/domains/domainCard_Ground_Pound_WnGldYhJPDhx8v9X.json index 56387c50..4e603ff8 100644 --- a/src/packs/domains/domainCard_Ground_Pound_WnGldYhJPDhx8v9X.json +++ b/src/packs/domains/domainCard_Ground_Pound_WnGldYhJPDhx8v9X.json @@ -22,6 +22,7 @@ "scalable": false, "key": "hope", "value": 2, + "keyIsID": false, "step": null } ], @@ -90,14 +91,20 @@ "img": "icons/magic/earth/barrier-stone-brown-green.webp", "range": "veryClose" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 135, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784466, + "modifiedTime": 1754242257735, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "WnGldYhJPDhx8v9X", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json b/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json index 0f60cc32..a9b0561d 100644 --- a/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json +++ b/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json @@ -19,12 +19,11 @@ "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "GlRm1Dxlc0Z1b04o", - "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "GlRm1Dxlc0Z1b04o", + "value": 1, + "keyIsID": true, + "step": null } ], "uses": { @@ -95,20 +94,18 @@ "actionType": "action", "cost": [ { - "key": "hope", - "itemId": null, - "value": 2, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "hope", + "value": 2, + "keyIsID": false, + "step": null }, { - "key": "resource", - "itemId": "GlRm1Dxlc0Z1b04o", - "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "GlRm1Dxlc0Z1b04o", + "value": 1, + "keyIsID": true, + "step": null } ], "uses": { @@ -178,14 +175,20 @@ "max": "1", "icon": "", "progression": "decreasing" - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 130, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784466, + "modifiedTime": 1754499077474, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "GlRm1Dxlc0Z1b04o", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Healing_Hands_WTlhnQMajc1r8i50.json b/src/packs/domains/domainCard_Healing_Hands_WTlhnQMajc1r8i50.json index 1245fc4b..a7aeb6b2 100644 --- a/src/packs/domains/domainCard_Healing_Hands_WTlhnQMajc1r8i50.json +++ b/src/packs/domains/domainCard_Healing_Hands_WTlhnQMajc1r8i50.json @@ -66,7 +66,7 @@ "type": "healing", "_id": "vmWku5XYmakLdwX2", "systemPath": "actions", - "description": "

On a failure, mark a Stress to clear a Hit Point or a Stress on the target. You can’t heal the same target again until your next long rest.

", + "description": "

On a failure, mark a Stress to clear a Hit Point or a Stress on the target. You can’t heal the same target again until your next long rest.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -75,6 +75,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -142,7 +143,7 @@ "type": "healing", "_id": "FYHLuVtFCR9A6Nvt", "systemPath": "actions", - "description": "

On a success, mark a Stress to clear 2 Hit Points or 2 Stress on the target. You can’t heal the same target again until your next long rest.

", + "description": "

On a success, mark a Stress to clear 2 Hit Points or 2 Stress on the target. You can’t heal the same target again until your next long rest.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -150,6 +151,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -218,7 +220,7 @@ "type": "healing", "_id": "8ElTYMjIM7YI6Kb8", "systemPath": "actions", - "description": "

On a failure, mark a Stress to clear a Hit Point or a Stress on the target. You can’t heal the same target again until your next long rest.

", + "description": "

On a failure, mark a Stress to clear a Hit Point or a Stress on the target. You can’t heal the same target again until your next long rest.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -226,6 +228,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -294,7 +297,7 @@ "type": "healing", "_id": "lQMhidLodJn9Nj7e", "systemPath": "actions", - "description": "

On a success, mark a Stress to clear 2 Hit Points or 2 Stress on the target. You can’t heal the same target again until your next long rest.

", + "description": "

On a success, mark a Stress to clear 2 Hit Points or 2 Stress on the target. You can’t heal the same target again until your next long rest.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -302,6 +305,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -366,14 +370,20 @@ "img": "icons/commodities/gems/gem-faceted-navette-red.webp", "range": "melee" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 132, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784467, + "modifiedTime": 1754269408742, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "WTlhnQMajc1r8i50", "sort": 3400000, "effects": [ @@ -403,13 +413,21 @@ "startRound": null, "startTurn": null }, - "description": "

Can’t be healed again with Healing Hands by the caster of the Healing Hands until a long rest.

", + "description": "

Can’t be healed again with Healing Hands by the caster of the Healing Hands until a long rest.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754263407455, + "modifiedTime": 1754670504951, + "lastModifiedBy": "49DaecTcBSc5d0DA" }, "_key": "!items.effects!WTlhnQMajc1r8i50.sd5liP4ZcVeTMAoW" } diff --git a/src/packs/domains/domainCard_Healing_Strike_XtSc0jIJLOoMTMYS.json b/src/packs/domains/domainCard_Healing_Strike_XtSc0jIJLOoMTMYS.json index 26fab1a9..6c3dd4fd 100644 --- a/src/packs/domains/domainCard_Healing_Strike_XtSc0jIJLOoMTMYS.json +++ b/src/packs/domains/domainCard_Healing_Strike_XtSc0jIJLOoMTMYS.json @@ -22,6 +22,7 @@ "scalable": false, "key": "hope", "value": 2, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -86,14 +87,20 @@ "img": "icons/commodities/gems/gem-faceted-diamond-green.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 133, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784468, + "modifiedTime": 1754269824514, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "XtSc0jIJLOoMTMYS", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Hold_the_Line_kdFoLo3KXwn4LqTG.json b/src/packs/domains/domainCard_Hold_the_Line_kdFoLo3KXwn4LqTG.json index 5b3c95d3..0ab4d205 100644 --- a/src/packs/domains/domainCard_Hold_the_Line_kdFoLo3KXwn4LqTG.json +++ b/src/packs/domains/domainCard_Hold_the_Line_kdFoLo3KXwn4LqTG.json @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -42,7 +43,7 @@ }, "name": "Spend Hope", "img": "icons/magic/holy/barrier-shield-winged-blue.webp", - "range": "self" + "range": "" }, "SKG6Gu0uJZxtYTnz": { "type": "effect", @@ -72,14 +73,20 @@ "img": "icons/magic/defensive/shield-barrier-blue.webp", "range": "veryClose" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 135, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784468, + "modifiedTime": 1754242400496, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "kdFoLo3KXwn4LqTG", "sort": 3400000, "effects": [ @@ -87,7 +94,7 @@ "name": "Hold the Line", "img": "icons/magic/defensive/shield-barrier-blue.webp", "origin": "Compendium.daggerheart.domains.Item.kdFoLo3KXwn4LqTG", - "transfer": false, + "transfer": true, "_id": "y82y3nUStyL8DIJL", "type": "base", "system": { @@ -99,7 +106,7 @@ } }, "changes": [], - "disabled": false, + "disabled": true, "duration": { "startTime": null, "combat": null, @@ -115,13 +122,21 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754242295342, + "modifiedTime": 1754242434181, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!kdFoLo3KXwn4LqTG.y82y3nUStyL8DIJL" }, { "name": "Hold the Line", - "img": "icons/skills/melee/shield-block-bash-blue.webp", + "img": "systems/daggerheart/assets/icons/domains/domain-card/valor.png", "origin": "Compendium.daggerheart.domains.Item.kdFoLo3KXwn4LqTG", "transfer": false, "_id": "WTYg0b8nE1XbnMiA", @@ -153,7 +168,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754242400483, + "modifiedTime": 1754242409060, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!kdFoLo3KXwn4LqTG.WTYg0b8nE1XbnMiA" } diff --git a/src/packs/domains/domainCard_Hush_gwmYasmfgXZ7tFS6.json b/src/packs/domains/domainCard_Hush_gwmYasmfgXZ7tFS6.json index f49c4a83..93dfbf97 100644 --- a/src/packs/domains/domainCard_Hush_gwmYasmfgXZ7tFS6.json +++ b/src/packs/domains/domainCard_Hush_gwmYasmfgXZ7tFS6.json @@ -23,6 +23,7 @@ "scalable": false, "key": "hope", "value": 1, + "keyIsID": false, "step": null } ], @@ -69,14 +70,20 @@ "img": "icons/magic/unholy/orb-glowing-purple.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 128, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784470, + "modifiedTime": 1754331001689, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "gwmYasmfgXZ7tFS6", "sort": 3400000, "effects": [ @@ -106,7 +113,7 @@ "startRound": null, "startTurn": null }, - "description": "

Auppressive magic around the target that encompasses everything within Very Close range of them and follows them as they move.Β The target and anything within the area is Silenced until the GM spends a Fear on their turn to clear this condition, you cast Hush again, or you take Major damage. While Silenced, they can’t make noise and can’t cast spells.

", + "description": "

Auppressive magic around the target that encompasses everything within Very Close range of them and follows them as they move.Β The target and anything within the area is Silenced until the GM spends a Fear on their turn to clear this condition, you cast Hush again, or you take Major damage. While Silenced, they can’t make noise and can’t cast spells.

", "tint": "#ffffff", "statuses": [ "silence" @@ -114,7 +121,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754165807883, + "modifiedTime": 1754173508037, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!gwmYasmfgXZ7tFS6.5hzzPTFccUSSNHgp" }, @@ -144,13 +159,21 @@ "startRound": null, "startTurn": null }, - "description": "

Suppressive magic around the target that encompasses everything within Very Close range of them and follows them as they move.Β The target and anything within the area is Silenced until the GM spends a Fear on their turn to clear this condition, you cast Hush again, or you take Major damage. While Silenced, they can’t make noise and can’t cast spells.

", + "description": "

Suppressive magic around the target that encompasses everything within Very Close range of them and follows them as they move.Β The target and anything within the area is Silenced until the GM spends a Fear on their turn to clear this condition, you cast Hush again, or you take Major damage. While Silenced, they can’t make noise and can’t cast spells.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754330943061, + "modifiedTime": 1754330980172, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!gwmYasmfgXZ7tFS6.pZ5YpjKidaj48IYF" } diff --git a/src/packs/domains/domainCard_Hypnotic_Shimmer_2ZeuCGVatQdPOVC6.json b/src/packs/domains/domainCard_Hypnotic_Shimmer_2ZeuCGVatQdPOVC6.json index 67310781..a221859c 100644 --- a/src/packs/domains/domainCard_Hypnotic_Shimmer_2ZeuCGVatQdPOVC6.json +++ b/src/packs/domains/domainCard_Hypnotic_Shimmer_2ZeuCGVatQdPOVC6.json @@ -14,7 +14,7 @@ "type": "attack", "_id": "kLMAuyZktmohOSXa", "systemPath": "actions", - "description": "

Make a Spellcast Roll against all adversaries in front of you within Close range. Once per rest on a success, create an illusion of flashing colors and lights that temporarily Stuns targets you succeed against and forces them to mark a Stress. While Stunned, they can’t use reactions and can’t take any other actions until they clear this condition.

@Template[type:infront|range:c]

", + "description": "

Make a Spellcast Roll against all adversaries in front of you within Close range. Once per rest on a success, create an illusion of flashing colors and lights that temporarily Stuns targets you succeed against and forces them to mark a Stress. While Stunned, they can’t use reactions and can’t take any other actions until they clear this condition.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -88,14 +88,20 @@ "img": "icons/magic/control/hypnosis-mesmerism-swirl.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 126, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784471, + "modifiedTime": 1754341315075, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "2ZeuCGVatQdPOVC6", "sort": 3400000, "effects": [ @@ -125,7 +131,7 @@ "startRound": null, "startTurn": null }, - "description": "

An illusion of flashing colors and lights that temporarily Stuns targets. While Stunned, they can’t use reactions and can’t take any other actions until they clear this condition.

", + "description": "

An illusion of flashing colors and lights that temporarily Stuns targets. While Stunned, they can’t use reactions and can’t take any other actions until they clear this condition.

", "tint": "#ffffff", "statuses": [ "stun" @@ -133,7 +139,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754099673462, + "modifiedTime": 1754341332582, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!2ZeuCGVatQdPOVC6.xAG75UWUz3aDZH3m" } diff --git a/src/packs/domains/domainCard_I_Am_Your_Shield_KOf6LLpMRNwjezDx.json b/src/packs/domains/domainCard_I_Am_Your_Shield_KOf6LLpMRNwjezDx.json index 88197928..1699800f 100644 --- a/src/packs/domains/domainCard_I_Am_Your_Shield_KOf6LLpMRNwjezDx.json +++ b/src/packs/domains/domainCard_I_Am_Your_Shield_KOf6LLpMRNwjezDx.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -41,14 +42,20 @@ } }, "resource": null, - "inVault": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" - } + "inVault": false }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754067020844, + "modifiedTime": 1754241453261, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "effects": [], "ownership": { "default": 0, diff --git a/src/packs/domains/domainCard_I_See_It_Coming_Kp6RejHGimnuoBom.json b/src/packs/domains/domainCard_I_See_It_Coming_Kp6RejHGimnuoBom.json index 8d5f6536..0960839a 100644 --- a/src/packs/domains/domainCard_I_See_It_Coming_Kp6RejHGimnuoBom.json +++ b/src/packs/domains/domainCard_I_See_It_Coming_Kp6RejHGimnuoBom.json @@ -23,6 +23,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -65,14 +66,20 @@ "img": "icons/skills/melee/maneuver-sword-katana-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 122, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784472, + "modifiedTime": 1754249651973, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "Kp6RejHGimnuoBom", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Inevitable_XTT8c8uJ4D7fvtbL.json b/src/packs/domains/domainCard_Inevitable_XTT8c8uJ4D7fvtbL.json index fc083136..78718d6b 100644 --- a/src/packs/domains/domainCard_Inevitable_XTT8c8uJ4D7fvtbL.json +++ b/src/packs/domains/domainCard_Inevitable_XTT8c8uJ4D7fvtbL.json @@ -8,14 +8,20 @@ "domain": "valor", "recallCost": 1, "level": 6, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784472, + "modifiedTime": 1754242058119, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "XTT8c8uJ4D7fvtbL", "sort": 3400000, "effects": [ @@ -50,7 +56,7 @@ "startRound": null, "startTurn": null }, - "description": "

When you fail an action roll, your next action roll has advantage.

", + "description": "

When you fail an action roll, your next action roll has advantage.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -58,7 +64,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754068599229, + "modifiedTime": 1754068646401, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!XTT8c8uJ4D7fvtbL.wX4BFGaM0bdzHPn2" } diff --git a/src/packs/domains/domainCard_Inspirational_Words_cWu1o82ZF7GvnbXc.json b/src/packs/domains/domainCard_Inspirational_Words_cWu1o82ZF7GvnbXc.json index 0c28d499..424b08b7 100644 --- a/src/packs/domains/domainCard_Inspirational_Words_cWu1o82ZF7GvnbXc.json +++ b/src/packs/domains/domainCard_Inspirational_Words_cWu1o82ZF7GvnbXc.json @@ -27,12 +27,11 @@ "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "cWu1o82ZF7GvnbXc", - "value": 1, "scalable": false, + "key": "cWu1o82ZF7GvnbXc", + "value": 1, "step": null, - "consumeOnSuccess": false + "keyIsID": true } ], "uses": { @@ -98,17 +97,16 @@ "type": "healing", "_id": "QKS3vo3Nf5CK8rkF", "systemPath": "actions", - "description": "

Spend a token from this card to give them the following:

  • Your ally clears a Hit Point.

", + "description": "

Spend a token from this card to give them the following:

  • Your ally clears a Hit Point.

", "chatDisplay": true, "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "cWu1o82ZF7GvnbXc", - "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "cWu1o82ZF7GvnbXc", + "value": 1, + "keyIsID": true, + "step": null } ], "uses": { @@ -174,17 +172,16 @@ "type": "healing", "_id": "5xn70wYZW7k9aiVl", "systemPath": "actions", - "description": "

Spend a token from this card to give them the following:

  • Your ally gains a Hope.

", + "description": "

Spend a token from this card to give them the following:

  • Your ally gains a Hope.

", "chatDisplay": true, "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "cWu1o82ZF7GvnbXc", - "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "cWu1o82ZF7GvnbXc", + "value": 1, + "keyIsID": true, + "step": null } ], "uses": { @@ -246,14 +243,20 @@ "img": "icons/commodities/gems/gem-faceted-octagon-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 126, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784473, + "modifiedTime": 1754499693699, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "cWu1o82ZF7GvnbXc", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Invigoration_X8OfkEoI5gLTRf1B.json b/src/packs/domains/domainCard_Invigoration_X8OfkEoI5gLTRf1B.json index 658e12fd..9bdf44e7 100644 --- a/src/packs/domains/domainCard_Invigoration_X8OfkEoI5gLTRf1B.json +++ b/src/packs/domains/domainCard_Invigoration_X8OfkEoI5gLTRf1B.json @@ -23,6 +23,7 @@ "key": "hope", "value": 1, "step": 1, + "keyIsID": false, "consumeOnSuccess": false } ], @@ -65,14 +66,20 @@ "img": "icons/commodities/gems/gem-faceted-octagon-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 133, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784474, + "modifiedTime": 1754270049868, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "X8OfkEoI5gLTRf1B", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Invisibility_KHkzA4Zrw8EWN1CH.json b/src/packs/domains/domainCard_Invisibility_KHkzA4Zrw8EWN1CH.json index be46b1c3..a0bff97c 100644 --- a/src/packs/domains/domainCard_Invisibility_KHkzA4Zrw8EWN1CH.json +++ b/src/packs/domains/domainCard_Invisibility_KHkzA4Zrw8EWN1CH.json @@ -23,6 +23,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -75,14 +76,20 @@ "value": 0, "max": "@cast", "icon": "" - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 126, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784475, + "modifiedTime": 1754341402828, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "KHkzA4Zrw8EWN1CH", "sort": 3400000, "effects": [ @@ -112,13 +119,21 @@ "startRound": null, "startTurn": null }, - "description": "

An Invisible creature can’t be seen except through magical means and attack rolls against them are made with disadvantage. Place a number of tokens on this card equal to your Spellcast trait. When the Invisible creature takes an action, spend a token from this card. After the action that spends the last token is resolved, the effect ends.

", + "description": "

An Invisible creature can’t be seen except through magical means and attack rolls against them are made with disadvantage. Place a number of tokens on this card equal to your Spellcast trait. When the Invisible creature takes an action, spend a token from this card. After the action that spends the last token is resolved, the effect ends.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754326859615, + "modifiedTime": 1754341442791, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!KHkzA4Zrw8EWN1CH.bRJy0MoIPQEQOMzZ" } diff --git a/src/packs/domains/domainCard_Know_Thy_Enemy_O38MQMhJWdZnXi6b.json b/src/packs/domains/domainCard_Know_Thy_Enemy_O38MQMhJWdZnXi6b.json index 12308e6b..53ef85a7 100644 --- a/src/packs/domains/domainCard_Know_Thy_Enemy_O38MQMhJWdZnXi6b.json +++ b/src/packs/domains/domainCard_Know_Thy_Enemy_O38MQMhJWdZnXi6b.json @@ -23,6 +23,7 @@ "scalable": false, "key": "hope", "value": 1, + "keyIsID": false, "step": null } ], @@ -77,6 +78,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -96,14 +98,20 @@ "img": "icons/magic/perception/eye-ringed-glow-angry-small-teal.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 123, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784475, + "modifiedTime": 1754252480391, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "O38MQMhJWdZnXi6b", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Lead_by_Example_YWCRplmtwpCjpq5i.json b/src/packs/domains/domainCard_Lead_by_Example_YWCRplmtwpCjpq5i.json index a29b021f..67f8e04c 100644 --- a/src/packs/domains/domainCard_Lead_by_Example_YWCRplmtwpCjpq5i.json +++ b/src/packs/domains/domainCard_Lead_by_Example_YWCRplmtwpCjpq5i.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -38,20 +39,26 @@ ], "target": { "type": "any", - "amount": 1 + "amount": null }, "name": "Mark Stress", "img": "icons/magic/control/buff-flight-wings-runes-purple.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 135, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784475, + "modifiedTime": 1754242464667, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "YWCRplmtwpCjpq5i", "sort": 3400000, "effects": [ @@ -87,7 +94,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754242464653, + "modifiedTime": 1754242487314, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!YWCRplmtwpCjpq5i.BbBs2XYXMsLwkHKh" } diff --git a/src/packs/domains/domainCard_Lean_on_Me_BdePs1ZWpZTZvY1Z.json b/src/packs/domains/domainCard_Lean_on_Me_BdePs1ZWpZTZvY1Z.json index 883e2522..aecbe898 100644 --- a/src/packs/domains/domainCard_Lean_on_Me_BdePs1ZWpZTZvY1Z.json +++ b/src/packs/domains/domainCard_Lean_on_Me_BdePs1ZWpZTZvY1Z.json @@ -77,14 +77,20 @@ "img": "icons/magic/life/heart-cross-strong-purple-orange.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784477, + "modifiedTime": 1754241703151, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "BdePs1ZWpZTZvY1Z", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Life_Ward_OszbCj0jTqq2ADx9.json b/src/packs/domains/domainCard_Life_Ward_OszbCj0jTqq2ADx9.json index 19a6fda6..78b2ec5e 100644 --- a/src/packs/domains/domainCard_Life_Ward_OszbCj0jTqq2ADx9.json +++ b/src/packs/domains/domainCard_Life_Ward_OszbCj0jTqq2ADx9.json @@ -22,6 +22,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -46,14 +47,20 @@ "img": "icons/magic/defensive/shield-barrier-deflect-gold.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 132, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784478, + "modifiedTime": 1754269642386, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "OszbCj0jTqq2ADx9", "sort": 3400000, "effects": [ @@ -89,7 +96,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754264687962, + "modifiedTime": 1754670535710, + "lastModifiedBy": "49DaecTcBSc5d0DA" }, "_key": "!items.effects!OszbCj0jTqq2ADx9.E7Ou4OMEy3TeK1Gf" } diff --git a/src/packs/domains/domainCard_Manifest_Wall_TtGOtWkbr23VhHfH.json b/src/packs/domains/domainCard_Manifest_Wall_TtGOtWkbr23VhHfH.json index 6e4b4654..acb35822 100644 --- a/src/packs/domains/domainCard_Manifest_Wall_TtGOtWkbr23VhHfH.json +++ b/src/packs/domains/domainCard_Manifest_Wall_TtGOtWkbr23VhHfH.json @@ -23,6 +23,7 @@ "scalable": false, "key": "hope", "value": 1, + "keyIsID": false, "step": null } ], @@ -65,14 +66,20 @@ "img": "icons/magic/symbols/ring-circle-smoke-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 125, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784479, + "modifiedTime": 1754240697822, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "TtGOtWkbr23VhHfH", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Mass_Disguise_dT95m0Jam8sWbeuC.json b/src/packs/domains/domainCard_Mass_Disguise_dT95m0Jam8sWbeuC.json index b9fbaed9..76ea0d6b 100644 --- a/src/packs/domains/domainCard_Mass_Disguise_dT95m0Jam8sWbeuC.json +++ b/src/packs/domains/domainCard_Mass_Disguise_dT95m0Jam8sWbeuC.json @@ -36,52 +36,21 @@ "name": "Cast", "img": "icons/skills/social/diplomacy-unity-alliance.webp", "range": "close" - }, - "ZM96wFu3YuAeUXel": { - "type": "countdown", - "_id": "ZM96wFu3YuAeUXel", - "systemPath": "actions", - "description": "

Activate a Countdown (8). It ticks down as a consequence the GM chooses. When it triggers, the disguise drops.

", - "chatDisplay": false, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Mass Disguise", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/time/hourglass-brown-orange.webp", - "progress": { - "looping": "noLooping", - "type": "custom", - "start": 1, - "startFormula": "8", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/time/hourglass-brown-orange.webp", - "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 129, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784480, + "modifiedTime": 1754331105670, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "dT95m0Jam8sWbeuC", "sort": 3400000, "effects": [ @@ -118,13 +87,21 @@ "startRound": null, "startTurn": null }, - "description": "

A disguised creature has advantage on Presence Rolls to avoid scrutiny.

", + "description": "

A disguised creature has advantage on Presence Rolls to avoid scrutiny.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754167439284, + "modifiedTime": 1754167471244, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!dT95m0Jam8sWbeuC.HgF4n0idPcdz8Bi7" } diff --git a/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json b/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json index da64f16e..2713e2c7 100644 --- a/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json +++ b/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json @@ -73,6 +73,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -120,14 +121,20 @@ "img": "icons/commodities/gems/gem-faceted-navette-red.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 127, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784481, + "modifiedTime": 1754499825008, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "ubpixIgZrJXKyM3b", "sort": 3400000, "effects": [ @@ -157,13 +164,21 @@ "startRound": null, "startTurn": null }, - "description": "

While Enraptured, a target’s attention is fixed on you, narrowing their field of view and drowning out any sound but your voice.

", + "description": "

While Enraptured, a target’s attention is fixed on you, narrowing their field of view and drowning out any sound but your voice.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754106766101, + "modifiedTime": 1754342055429, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!ubpixIgZrJXKyM3b.QNbnelRylVB0yCm0" } diff --git a/src/packs/domains/domainCard_Master_of_the_Craft_yAGTwXHUC3qxpTeK.json b/src/packs/domains/domainCard_Master_of_the_Craft_yAGTwXHUC3qxpTeK.json index 118c529d..8ab75989 100644 --- a/src/packs/domains/domainCard_Master_of_the_Craft_yAGTwXHUC3qxpTeK.json +++ b/src/packs/domains/domainCard_Master_of_the_Craft_yAGTwXHUC3qxpTeK.json @@ -8,14 +8,20 @@ "domain": "grace", "recallCost": 0, "level": 9, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 127, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784482, + "modifiedTime": 1754229084018, + "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + }, "_id": "yAGTwXHUC3qxpTeK", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Mending_Touch_TGjR4vJVNbQRV8zr.json b/src/packs/domains/domainCard_Mending_Touch_TGjR4vJVNbQRV8zr.json index 4cb8c2a2..437adffc 100644 --- a/src/packs/domains/domainCard_Mending_Touch_TGjR4vJVNbQRV8zr.json +++ b/src/packs/domains/domainCard_Mending_Touch_TGjR4vJVNbQRV8zr.json @@ -14,7 +14,7 @@ "type": "healing", "_id": "sDoL9p1cpIx8Vdbb", "systemPath": "actions", - "description": "

When you can take a few minutes to focus on the target you’re helping, you can spend 2 Hope to clear a Hit Point or a Stress on them.

", + "description": "

When you can take a few minutes to focus on the target you’re helping, you can spend 2 Hope to clear a Hit Point or a Stress on them.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -22,6 +22,7 @@ "scalable": false, "key": "hope", "value": 2, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -98,6 +99,7 @@ "scalable": false, "key": "hope", "value": 2, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -171,18 +173,18 @@ "actionType": "action", "cost": [ { - "key": "hope", - "itemId": null, - "value": 2, "scalable": false, + "key": "hope", + "value": 2, + "keyIsID": false, "step": null, "consumeOnSuccess": false }, { - "key": "resource", - "itemId": "TGjR4vJVNbQRV8zr", - "value": 1, "scalable": false, + "key": "TGjR4vJVNbQRV8zr", + "value": 1, + "keyIsID": true, "step": null, "consumeOnSuccess": false } @@ -256,18 +258,18 @@ "actionType": "action", "cost": [ { - "key": "hope", - "itemId": null, - "value": 2, "scalable": false, + "key": "hope", + "value": 2, + "keyIsID": false, "step": null, "consumeOnSuccess": false }, { - "key": "resource", - "itemId": "TGjR4vJVNbQRV8zr", - "value": 1, "scalable": false, + "key": "TGjR4vJVNbQRV8zr", + "value": 1, + "keyIsID": true, "step": null, "consumeOnSuccess": false } @@ -340,14 +342,20 @@ "max": "1", "icon": "fa-solid fa-hands-praying", "recovery": "longRest" - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 132, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784482, + "modifiedTime": 1754498631054, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "TGjR4vJVNbQRV8zr", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Midnight_Spirit_FXLsB3QbQvTtqX5B.json b/src/packs/domains/domainCard_Midnight_Spirit_FXLsB3QbQvTtqX5B.json index f97fe53d..701f912d 100644 --- a/src/packs/domains/domainCard_Midnight_Spirit_FXLsB3QbQvTtqX5B.json +++ b/src/packs/domains/domainCard_Midnight_Spirit_FXLsB3QbQvTtqX5B.json @@ -14,11 +14,12 @@ "type": "effect", "_id": "BDKCP4FvntHkYqXp", "systemPath": "actions", - "description": "

Spend a Hope to summon a humanoid-sized spirit that can move or carry things for you until your next rest.

", + "description": "

Spend a Hope to summon a humanoid-sized spirit that can move or carry things for you until your next rest.

", "chatDisplay": true, "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -43,11 +44,12 @@ "type": "attack", "_id": "YVSMa2Igxp6DhNpG", "systemPath": "actions", - "description": "

You can also send it to attack an adversary. When you do, make a Spellcast Roll against a target within Very Far range. On a success, the spirit moves into Melee range with that target. Roll a number of d6s equal to your Spellcast trait and deal that much magic damage to the target. The spirit then dissipates. You can only have one spirit at a time.

", + "description": "

You can also send it to attack an adversary. When you do, make a Spellcast Roll against a target within Very Far range. On a success, the spirit moves into Melee range with that target. Roll a number of d6s equal to your Spellcast trait and deal that much magic damage to the target. The spirit then dissipates. You can only have one spirit at a time.

", "chatDisplay": true, "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -119,14 +121,20 @@ "img": "icons/creatures/magical/spirit-undead-ghost-purple.webp", "range": "veryFar" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 128, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784482, + "modifiedTime": 1754330630881, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "FXLsB3QbQvTtqX5B", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Midnight_Touched_uSyGKVxOJcnp28po.json b/src/packs/domains/domainCard_Midnight_Touched_uSyGKVxOJcnp28po.json index 3370c30e..7a06e78e 100644 --- a/src/packs/domains/domainCard_Midnight_Touched_uSyGKVxOJcnp28po.json +++ b/src/packs/domains/domainCard_Midnight_Touched_uSyGKVxOJcnp28po.json @@ -14,7 +14,7 @@ "type": "healing", "_id": "ksl1CcxcuwYxObiS", "systemPath": "actions", - "description": "

Once per rest, when you have 0 Hope and the GM would gain a Fear, you can gain a Hope instead.

", + "description": "

Once per rest, when you have 0 Hope and the GM would gain a Fear, you can gain a Hope instead.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -81,7 +81,7 @@ "type": "effect", "_id": "Ky5wcwBqgm5bJCK1", "systemPath": "actions", - "description": "

When you make a successful attack, you can mark a Stress to add the result of your Fear Die to your damage roll.

", + "description": "

When you make a successful attack, you can mark a Stress to add the result of your Fear Die to your damage roll.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -89,6 +89,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -106,14 +107,20 @@ "img": "icons/skills/wounds/anatomy-organ-brain-pink-red.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 129, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784484, + "modifiedTime": 1754331118511, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "uSyGKVxOJcnp28po", "sort": 3400000, "effects": [ @@ -149,7 +156,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754331127864, + "modifiedTime": 1754331154078, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!uSyGKVxOJcnp28po.sNBuI2xIZAI4RgZy" } diff --git a/src/packs/domains/domainCard_Natural_Familiar_Tag303LoRNC5zGgl.json b/src/packs/domains/domainCard_Natural_Familiar_Tag303LoRNC5zGgl.json index 7aa85b0f..97da5875 100644 --- a/src/packs/domains/domainCard_Natural_Familiar_Tag303LoRNC5zGgl.json +++ b/src/packs/domains/domainCard_Natural_Familiar_Tag303LoRNC5zGgl.json @@ -22,6 +22,7 @@ "scalable": true, "key": "hope", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -103,6 +104,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -120,14 +122,20 @@ "img": "icons/magic/perception/eye-ringed-green.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 130, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784485, + "modifiedTime": 1754338204263, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "Tag303LoRNC5zGgl", "sort": 3400000, "effects": [ @@ -176,7 +184,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754115507909, + "modifiedTime": 1754338087104, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!Tag303LoRNC5zGgl.0BumAWKw2aK4A5al" } diff --git a/src/packs/domains/domainCard_Nature_s_Tongue_atWLorlCOxcrq8WB.json b/src/packs/domains/domainCard_Nature_s_Tongue_atWLorlCOxcrq8WB.json index c722954b..ed754e5c 100644 --- a/src/packs/domains/domainCard_Nature_s_Tongue_atWLorlCOxcrq8WB.json +++ b/src/packs/domains/domainCard_Nature_s_Tongue_atWLorlCOxcrq8WB.json @@ -65,6 +65,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -90,14 +91,20 @@ "img": "icons/magic/nature/beam-hand-leaves-green.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 130, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784485, + "modifiedTime": 1754337595015, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "atWLorlCOxcrq8WB", "sort": 3400000, "effects": [ @@ -140,7 +147,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754114564455, + "modifiedTime": 1754337611599, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!atWLorlCOxcrq8WB.0JYDk5CQ66bHGQO0" } diff --git a/src/packs/domains/domainCard_Never_Upstaged_McdncxmO9K1YNP7Y.json b/src/packs/domains/domainCard_Never_Upstaged_McdncxmO9K1YNP7Y.json index aaa2c60e..b53b635d 100644 --- a/src/packs/domains/domainCard_Never_Upstaged_McdncxmO9K1YNP7Y.json +++ b/src/packs/domains/domainCard_Never_Upstaged_McdncxmO9K1YNP7Y.json @@ -25,20 +25,18 @@ "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "McdncxmO9K1YNP7Y", - "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "McdncxmO9K1YNP7Y", + "value": 1, + "keyIsID": true, + "step": null }, { - "key": "stress", - "itemId": null, - "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null } ], "uses": { @@ -69,20 +67,18 @@ "actionType": "action", "cost": [ { - "key": "stress", - "itemId": null, - "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null }, { - "key": "resource", - "itemId": "McdncxmO9K1YNP7Y", - "value": 2, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "McdncxmO9K1YNP7Y", + "value": 2, + "keyIsID": true, + "step": null } ], "uses": { @@ -113,20 +109,18 @@ "actionType": "action", "cost": [ { - "key": "stress", - "itemId": null, - "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null }, { - "key": "resource", - "itemId": "McdncxmO9K1YNP7Y", - "value": 3, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "McdncxmO9K1YNP7Y", + "value": 3, + "keyIsID": true, + "step": null } ], "uses": { @@ -157,20 +151,18 @@ "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "McdncxmO9K1YNP7Y", - "value": 4, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "McdncxmO9K1YNP7Y", + "value": 4, + "keyIsID": true, + "step": null }, { - "key": "stress", - "itemId": null, - "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null } ], "uses": { @@ -192,14 +184,20 @@ "img": "icons/commodities/gems/gem-faceted-navette-red.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 127, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784486, + "modifiedTime": 1754341729669, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "McdncxmO9K1YNP7Y", "sort": 3400000, "effects": [ @@ -242,13 +240,21 @@ "startRound": null, "startTurn": null }, - "description": "

Gain a +5 bonus to your damage roll

", + "description": "

Gain a +5 bonus to your damage roll

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754105163050, + "modifiedTime": 1754341739158, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!McdncxmO9K1YNP7Y.C6e1T2oEx6PFoRUP" }, @@ -291,13 +297,21 @@ "startRound": null, "startTurn": null }, - "description": "

Gain a +10 bonus to your damage roll

", + "description": "

Gain a +10 bonus to your damage roll

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754105390279, + "modifiedTime": 1754341744140, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!McdncxmO9K1YNP7Y.bMMxsBungVYB1rI8" }, @@ -340,13 +354,21 @@ "startRound": null, "startTurn": null }, - "description": "

Gain a +15 bonus to your damage roll

", + "description": "

Gain a +15 bonus to your damage roll

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754105499913, + "modifiedTime": 1754341749450, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!McdncxmO9K1YNP7Y.tsQRbrurzi8iqs0o" }, @@ -389,13 +411,21 @@ "startRound": null, "startTurn": null }, - "description": "

Gain a +20 bonus to your damage roll

", + "description": "

Gain a +20 bonus to your damage roll

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754105577012, + "modifiedTime": 1754341754574, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!McdncxmO9K1YNP7Y.3eTaSgHlmNDcymnW" } diff --git a/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json b/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json index 6ffddbe7..cb538eb1 100644 --- a/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json +++ b/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json @@ -65,17 +65,16 @@ "type": "damage", "_id": "ELzQvftGxZigPkBH", "systemPath": "actions", - "description": "

Steal a number of Fear from the GM equal to the number of targets that are Horrified (up to the number of Fear in the GM’s pool). Roll a number of d6s equal to the number of stolen Fear and deal the total damage to each Horrified target. Discard the stolen Fear.

", + "description": "

Steal a number of Fear from the GM equal to the number of targets that are Horrified (up to the number of Fear in the GM’s pool). Roll a number of d6s equal to the number of stolen Fear and deal the total damage to each Horrified target. Discard the stolen Fear.

", "chatDisplay": true, "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "zcldCuqOg3dphUVI", - "value": 1, "scalable": true, + "key": "zcldCuqOg3dphUVI", + "value": 1, "step": 1, - "consumeOnSuccess": false + "keyIsID": true } ], "uses": { @@ -122,14 +121,20 @@ "range": "" } }, - "resource": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 129, - "artist": "" - } + "resource": null }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784487, + "modifiedTime": 1754499654051, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "zcldCuqOg3dphUVI", "sort": 3400000, "effects": [ @@ -159,7 +164,7 @@ "startRound": null, "startTurn": null }, - "description": "

While Horrified, they’re Vulnerable.

", + "description": "

While Horrified, they’re Vulnerable.

", "tint": "#ffffff", "statuses": [ "vulnerable" @@ -167,7 +172,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754168606907, + "modifiedTime": 1754173815871, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!zcldCuqOg3dphUVI.32j3ZeNMMCk1QLlM" } diff --git a/src/packs/domains/domainCard_Not_Good_Enough_xheQZOIYp0ERQhT9.json b/src/packs/domains/domainCard_Not_Good_Enough_xheQZOIYp0ERQhT9.json index 2673845e..56abe99f 100644 --- a/src/packs/domains/domainCard_Not_Good_Enough_xheQZOIYp0ERQhT9.json +++ b/src/packs/domains/domainCard_Not_Good_Enough_xheQZOIYp0ERQhT9.json @@ -8,14 +8,20 @@ "domain": "blade", "recallCost": 1, "level": 1, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784487, + "modifiedTime": 1754244517328, + "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + }, "_id": "xheQZOIYp0ERQhT9", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Notorious_IqxzvvjZiYbgx21A.json b/src/packs/domains/domainCard_Notorious_IqxzvvjZiYbgx21A.json index dfb581e7..aad731ff 100644 --- a/src/packs/domains/domainCard_Notorious_IqxzvvjZiYbgx21A.json +++ b/src/packs/domains/domainCard_Notorious_IqxzvvjZiYbgx21A.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -39,14 +40,20 @@ "img": "icons/magic/light/explosion-star-glow-silhouette.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 127, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784489, + "modifiedTime": 1754342229231, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "IqxzvvjZiYbgx21A", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_On_the_Brink_zbxPl81kbWEegKQN.json b/src/packs/domains/domainCard_On_the_Brink_zbxPl81kbWEegKQN.json index e5f90fe4..b6f6548f 100644 --- a/src/packs/domains/domainCard_On_the_Brink_zbxPl81kbWEegKQN.json +++ b/src/packs/domains/domainCard_On_the_Brink_zbxPl81kbWEegKQN.json @@ -8,14 +8,20 @@ "domain": "bone", "recallCost": 1, "level": 9, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 123, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784489, + "modifiedTime": 1754252507659, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "zbxPl81kbWEegKQN", "sort": 3400000, "effects": [ @@ -58,7 +64,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754303484332, + "modifiedTime": 1754670012467, + "lastModifiedBy": "49DaecTcBSc5d0DA" }, "_key": "!items.effects!zbxPl81kbWEegKQN.UJTsJlnhi5Zi0XQ2" } diff --git a/src/packs/domains/domainCard_Onslaught_I7pNsQ9Yx6mRJX4V.json b/src/packs/domains/domainCard_Onslaught_I7pNsQ9Yx6mRJX4V.json index d2d7361d..0d924ef2 100644 --- a/src/packs/domains/domainCard_Onslaught_I7pNsQ9Yx6mRJX4V.json +++ b/src/packs/domains/domainCard_Onslaught_I7pNsQ9Yx6mRJX4V.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -45,14 +46,20 @@ "img": "icons/skills/melee/strike-axe-blood-red.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 122, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784490, + "modifiedTime": 1754304817948, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "I7pNsQ9Yx6mRJX4V", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Overwhelming_Aura_iEBLySZD9z8CLdz7.json b/src/packs/domains/domainCard_Overwhelming_Aura_iEBLySZD9z8CLdz7.json index cc04c9c9..68abefea 100644 --- a/src/packs/domains/domainCard_Overwhelming_Aura_iEBLySZD9z8CLdz7.json +++ b/src/packs/domains/domainCard_Overwhelming_Aura_iEBLySZD9z8CLdz7.json @@ -14,7 +14,7 @@ "type": "attack", "_id": "r2XblKJyZyamOOXq", "systemPath": "actions", - "description": "

Make a Spellcast Roll (15) to magically empower your aura. On a success, spend 2 Hope to make your Presence equal to your Spellcast trait until your next long rest.While this spell is active, an adversary must mark a Stress when they target you with an attack.

", + "description": "

Make a Spellcast Roll (15) to magically empower your aura. On a success, spend 2 Hope to make your Presence equal to your Spellcast trait until your next long rest.While this spell is active, an adversary must mark a Stress when they target you with an attack.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -23,6 +23,7 @@ "scalable": false, "key": "hope", "value": 2, + "keyIsID": false, "step": null } ], @@ -37,7 +38,7 @@ "includeBase": false }, "target": { - "type": "self", + "type": "any", "amount": null }, "effects": [ @@ -68,16 +69,22 @@ }, "name": "Cast", "img": "icons/magic/holy/angel-winged-humanoid-blue.webp", - "range": "self" + "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 133, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784491, + "modifiedTime": 1754270006714, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "iEBLySZD9z8CLdz7", "sort": 3400000, "effects": [ @@ -101,7 +108,7 @@ "key": "system.traits.presence.value", "mode": 5, "value": "@cast", - "priority": 51 + "priority": null } ], "disabled": false, @@ -120,7 +127,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754267815179, + "modifiedTime": 1754270016603, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!iEBLySZD9z8CLdz7.ba9GO4NtQHYkaRR9" } diff --git a/src/packs/domains/domainCard_Phantom_Retreat_0vdpIn06ifF3xxqZ.json b/src/packs/domains/domainCard_Phantom_Retreat_0vdpIn06ifF3xxqZ.json index 9d6b0069..7e58df93 100644 --- a/src/packs/domains/domainCard_Phantom_Retreat_0vdpIn06ifF3xxqZ.json +++ b/src/packs/domains/domainCard_Phantom_Retreat_0vdpIn06ifF3xxqZ.json @@ -14,11 +14,12 @@ "type": "effect", "_id": "SE2C9Andtlw3OQLL", "systemPath": "actions", - "description": "

Spend a Hope to activate Phantom Retreat where you’re currently standing.

", + "description": "

Spend a Hope to activate Phantom Retreat where you’re currently standing.

", "chatDisplay": true, "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -48,6 +49,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -68,14 +70,20 @@ "img": "icons/magic/control/silhouette-hold-beam-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 128, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784491, + "modifiedTime": 1754331063221, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "0vdpIn06ifF3xxqZ", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Pick_and_Pull_HdgZUfWd7Hyj7nBW.json b/src/packs/domains/domainCard_Pick_and_Pull_HdgZUfWd7Hyj7nBW.json index 35ac6ce4..23e477a9 100644 --- a/src/packs/domains/domainCard_Pick_and_Pull_HdgZUfWd7Hyj7nBW.json +++ b/src/packs/domains/domainCard_Pick_and_Pull_HdgZUfWd7Hyj7nBW.json @@ -8,14 +8,20 @@ "domain": "midnight", "recallCost": 0, "level": 1, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 128, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784492, + "modifiedTime": 1754330601777, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "HdgZUfWd7Hyj7nBW", "sort": 3400000, "effects": [ @@ -62,7 +68,7 @@ "startRound": null, "startTurn": null }, - "description": "

You have advantage on action rolls to pick nonmagical locks, disarm nonmagical traps, or steal items from a target (either through stealth or by force).

", + "description": "

You have advantage on action rolls to pick nonmagical locks, disarm nonmagical traps, or steal items from a target (either through stealth or by force).

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -70,7 +76,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754158749088, + "modifiedTime": 1754172908254, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!HdgZUfWd7Hyj7nBW.6IkjF8qNR0NVvvv8" } diff --git a/src/packs/domains/domainCard_Plant_Dominion_9a6xP5pxhVvdugk9.json b/src/packs/domains/domainCard_Plant_Dominion_9a6xP5pxhVvdugk9.json index 64b1e1c2..8176850e 100644 --- a/src/packs/domains/domainCard_Plant_Dominion_9a6xP5pxhVvdugk9.json +++ b/src/packs/domains/domainCard_Plant_Dominion_9a6xP5pxhVvdugk9.json @@ -57,14 +57,20 @@ "img": "icons/magic/nature/tree-elm-roots-brown.webp", "range": "far" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 131, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784493, + "modifiedTime": 1754499238543, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "9a6xP5pxhVvdugk9", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Premonition_aC43NiFQLpOADyjO.json b/src/packs/domains/domainCard_Premonition_aC43NiFQLpOADyjO.json index 8a37e002..8a590089 100644 --- a/src/packs/domains/domainCard_Premonition_aC43NiFQLpOADyjO.json +++ b/src/packs/domains/domainCard_Premonition_aC43NiFQLpOADyjO.json @@ -19,10 +19,10 @@ "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "aC43NiFQLpOADyjO", - "value": 1, "scalable": false, + "key": "aC43NiFQLpOADyjO", + "value": 1, + "keyIsID": true, "step": null, "consumeOnSuccess": false } @@ -49,14 +49,20 @@ "recovery": "longRest", "max": "1", "icon": "" - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 120, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784494, + "modifiedTime": 1754253731528, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "aC43NiFQLpOADyjO", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Preservation_Blast_1p1cOmbnRd5CoKBp.json b/src/packs/domains/domainCard_Preservation_Blast_1p1cOmbnRd5CoKBp.json index 46dc2bdb..2460130f 100644 --- a/src/packs/domains/domainCard_Preservation_Blast_1p1cOmbnRd5CoKBp.json +++ b/src/packs/domains/domainCard_Preservation_Blast_1p1cOmbnRd5CoKBp.json @@ -84,14 +84,20 @@ "img": "icons/magic/air/air-pressure-shield-blue.webp", "range": "melee" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 119, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784495, + "modifiedTime": 1754253657439, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "1p1cOmbnRd5CoKBp", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Rage_Up_GRL0cvs96vrTDckZ.json b/src/packs/domains/domainCard_Rage_Up_GRL0cvs96vrTDckZ.json index 6f8b481d..b11bd6f9 100644 --- a/src/packs/domains/domainCard_Rage_Up_GRL0cvs96vrTDckZ.json +++ b/src/packs/domains/domainCard_Rage_Up_GRL0cvs96vrTDckZ.json @@ -14,7 +14,7 @@ "type": "effect", "_id": "LmjwPg03xLnoGTHm", "systemPath": "actions", - "description": "

You can mark a Stress to gain a bonus to your damage roll equal to twice your Strength.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -22,7 +22,8 @@ "scalable": false, "key": "stress", "value": 1, - "step": null, + "step": 1, + "keyIsID": false, "consumeOnSuccess": false } ], @@ -39,18 +40,18 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Mark 1 Stress", "img": "icons/magic/control/silhouette-aura-energy.webp", - "range": "self" + "range": "" }, "fKY9NcYBwCFwMsgV": { "type": "effect", "_id": "fKY9NcYBwCFwMsgV", "systemPath": "actions", - "description": "

You can mark a Stress to gain a bonus to your damage roll equal to twice your Strength.

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ @@ -58,6 +59,7 @@ "scalable": false, "key": "stress", "value": 2, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -75,21 +77,27 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Mark 2 Stress", "img": "icons/magic/control/silhouette-aura-energy.webp", - "range": "self" + "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784496, + "modifiedTime": 1754445106667, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "GRL0cvs96vrTDckZ", "sort": 3400000, "effects": [ @@ -113,13 +121,13 @@ "key": "system.bonuses.damage.magical.bonus", "mode": 2, "value": "2*@system.traits.strength.value", - "priority": 21 + "priority": null }, { "key": "system.bonuses.damage.physical.bonus", "mode": 2, "value": "2*@system.traits.strength.value", - "priority": 21 + "priority": null } ], "disabled": false, @@ -138,7 +146,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754246159246, + "modifiedTime": 1754446417671, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!GRL0cvs96vrTDckZ.bq1MhcmoP6Wo5CXF" }, @@ -162,13 +178,13 @@ "key": "system.bonuses.damage.magical.bonus", "mode": 2, "value": "4*@system.traits.strength.value", - "priority": 21 + "priority": null }, { "key": "system.bonuses.damage.physical.bonus", "mode": 2, "value": "4*@system.traits.strength.value", - "priority": 21 + "priority": null } ], "disabled": false, @@ -187,7 +203,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754246675511, + "modifiedTime": 1754446412834, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!GRL0cvs96vrTDckZ.t6SIjQxB6UBUJ98f" } diff --git a/src/packs/domains/domainCard_Rain_of_Blades_Ucenef6JpjQxwXni.json b/src/packs/domains/domainCard_Rain_of_Blades_Ucenef6JpjQxwXni.json index 839dc2c2..7327a44e 100644 --- a/src/packs/domains/domainCard_Rain_of_Blades_Ucenef6JpjQxwXni.json +++ b/src/packs/domains/domainCard_Rain_of_Blades_Ucenef6JpjQxwXni.json @@ -14,11 +14,12 @@ "type": "attack", "_id": "WTnjKQs2uI1TuF9r", "systemPath": "actions", - "description": "

Spend a Hope to make a Spellcast Roll and conjure throwing blades that strike out at all targets within Very Close range.Β Targets you succeed against take d8+2 magic damage using your Proficiency.

@Template[type:emanation|range:vc]

", + "description": "

Spend a Hope to make a Spellcast Roll and conjure throwing blades that strike out at all targets within Very Close range.Β Targets you succeed against take d8+2 magic damage using your Proficiency.

", "chatDisplay": true, "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -139,14 +140,20 @@ "img": "icons/skills/melee/spear-tips-three-purple.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 128, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784497, + "modifiedTime": 1754330607042, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "Ucenef6JpjQxwXni", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Rapid_Riposte_tceJDcCUefrMS2Ov.json b/src/packs/domains/domainCard_Rapid_Riposte_tceJDcCUefrMS2Ov.json index 3480b538..e2f248c7 100644 --- a/src/packs/domains/domainCard_Rapid_Riposte_tceJDcCUefrMS2Ov.json +++ b/src/packs/domains/domainCard_Rapid_Riposte_tceJDcCUefrMS2Ov.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -41,14 +42,20 @@ "img": "icons/skills/melee/maneuver-greatsword-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 123, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784497, + "modifiedTime": 1754252487558, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "tceJDcCUefrMS2Ov", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Reaper_s_Strike_MCgNRlh0s5XUPCfl.json b/src/packs/domains/domainCard_Reaper_s_Strike_MCgNRlh0s5XUPCfl.json index f4feebbb..201005a1 100644 --- a/src/packs/domains/domainCard_Reaper_s_Strike_MCgNRlh0s5XUPCfl.json +++ b/src/packs/domains/domainCard_Reaper_s_Strike_MCgNRlh0s5XUPCfl.json @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -65,14 +66,20 @@ "img": "icons/skills/melee/strike-axe-red.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 122, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784498, + "modifiedTime": 1754304768446, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "MCgNRlh0s5XUPCfl", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Reassurance_iYNVTB7uAD1FTCZu.json b/src/packs/domains/domainCard_Reassurance_iYNVTB7uAD1FTCZu.json index 7f9a9be5..43c17e96 100644 --- a/src/packs/domains/domainCard_Reassurance_iYNVTB7uAD1FTCZu.json +++ b/src/packs/domains/domainCard_Reassurance_iYNVTB7uAD1FTCZu.json @@ -33,14 +33,20 @@ "img": "icons/sundries/gaming/dice-pair-white-green.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 132, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784499, + "modifiedTime": 1754498645559, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "iYNVTB7uAD1FTCZu", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Reckless_2ooUo2yoilGifY81.json b/src/packs/domains/domainCard_Reckless_2ooUo2yoilGifY81.json index 6f2fc71a..7e6d927a 100644 --- a/src/packs/domains/domainCard_Reckless_2ooUo2yoilGifY81.json +++ b/src/packs/domains/domainCard_Reckless_2ooUo2yoilGifY81.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -41,14 +42,20 @@ "img": "icons/magic/control/silhouette-aura-energy.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784500, + "modifiedTime": 1754304322191, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "2ooUo2yoilGifY81", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Recovery_gsiQFT6q3WOgqerJ.json b/src/packs/domains/domainCard_Recovery_gsiQFT6q3WOgqerJ.json index 4cfd0b19..8b491d49 100644 --- a/src/packs/domains/domainCard_Recovery_gsiQFT6q3WOgqerJ.json +++ b/src/packs/domains/domainCard_Recovery_gsiQFT6q3WOgqerJ.json @@ -38,14 +38,20 @@ "img": "icons/magic/life/cross-beam-green.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 123, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784500, + "modifiedTime": 1754252490411, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "gsiQFT6q3WOgqerJ", "sort": 3400000, "effects": [ @@ -94,7 +100,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754250766595, + "modifiedTime": 1754250875891, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!gsiQFT6q3WOgqerJ.smTjINqIldErFD3q" }, @@ -143,7 +157,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754250835881, + "modifiedTime": 1754250863883, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!gsiQFT6q3WOgqerJ.7GsHTQCtNB8PEVgr" } diff --git a/src/packs/domains/domainCard_Redirect_faU0XkJCbar69PiN.json b/src/packs/domains/domainCard_Redirect_faU0XkJCbar69PiN.json index 4adb8240..85a952c3 100644 --- a/src/packs/domains/domainCard_Redirect_faU0XkJCbar69PiN.json +++ b/src/packs/domains/domainCard_Redirect_faU0XkJCbar69PiN.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -41,14 +42,20 @@ "img": "icons/skills/melee/sword-twirl-orange.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 123, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784500, + "modifiedTime": 1754252475141, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "faU0XkJCbar69PiN", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json b/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json index 25c991c2..4d910604 100644 --- a/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json +++ b/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json @@ -82,14 +82,20 @@ "img": "icons/magic/nature/leaf-hand-green.webp", "range": "veryClose" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 131, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784502, + "modifiedTime": 1754499308449, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "HtWx5IIemCoorMj2", "sort": 3400000, "effects": [ @@ -126,13 +132,21 @@ "startRound": null, "startTurn": null }, - "description": "

While the barrier is up, the caster and all allies within have resistance to physical damage from outside the barrier. When the caster moves, the barrier follows them.

", + "description": "

While the barrier is up, the caster and all allies within have resistance to physical damage from outside the barrier. When the caster moves, the barrier follows them.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754336272258, + "modifiedTime": 1754340200301, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!HtWx5IIemCoorMj2.obul9k0P4CjFuxJD" } diff --git a/src/packs/domains/domainCard_Restoration_wUQFsRtww18naYaq.json b/src/packs/domains/domainCard_Restoration_wUQFsRtww18naYaq.json index 8d4d7695..c75e8ca6 100644 --- a/src/packs/domains/domainCard_Restoration_wUQFsRtww18naYaq.json +++ b/src/packs/domains/domainCard_Restoration_wUQFsRtww18naYaq.json @@ -22,16 +22,16 @@ "type": "healing", "_id": "udmHKUtCDClxeB4h", "systemPath": "actions", - "description": "

Touch a creature and spend any number of tokens to clear 2 Hit Points or 2 Stress for each token spent.

", + "description": "

Touch a creature and spend any number of tokens to clear 2 Hit Points or 2 Stress for each token spent.

", "chatDisplay": true, "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "wUQFsRtww18naYaq", - "value": 1, "scalable": true, + "key": "wUQFsRtww18naYaq", + "value": 1, "step": null, + "keyIsID": true, "consumeOnSuccess": false } ], @@ -99,16 +99,16 @@ "type": "healing", "_id": "TvF88tS5x3Yof8Q1", "systemPath": "actions", - "description": "

Touch a creature and spend any number of tokens to clear 2 Hit Points or 2 Stress for each token spent.

", + "description": "

Touch a creature and spend any number of tokens to clear 2 Hit Points or 2 Stress for each token spent.

", "chatDisplay": true, "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "wUQFsRtww18naYaq", - "value": 1, "scalable": true, + "key": "wUQFsRtww18naYaq", + "value": 1, "step": 1, + "keyIsID": true, "consumeOnSuccess": false } ], @@ -181,11 +181,11 @@ "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "wUQFsRtww18naYaq", - "value": 1, "scalable": true, + "key": "wUQFsRtww18naYaq", + "value": 1, "step": null, + "keyIsID": true, "consumeOnSuccess": false } ], @@ -204,14 +204,20 @@ "img": "icons/magic/light/beam-rays-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 133, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784502, + "modifiedTime": 1754498742091, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "wUQFsRtww18naYaq", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Resurrection_z30ciOwQI7g3tHla.json b/src/packs/domains/domainCard_Resurrection_z30ciOwQI7g3tHla.json index 82b1b4fa..7d580ff9 100644 --- a/src/packs/domains/domainCard_Resurrection_z30ciOwQI7g3tHla.json +++ b/src/packs/domains/domainCard_Resurrection_z30ciOwQI7g3tHla.json @@ -14,7 +14,7 @@ "type": "attack", "_id": "znSDInMjOlFZn7Vp", "systemPath": "actions", - "description": "

Make a Spellcast Roll (20). On a success, restore one creature who has been dead no longer than 100 years to full strength.

", + "description": "

Make a Spellcast Roll (20). On a success, restore one creature who has been dead no longer than 100 years to full strength.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -61,7 +61,7 @@ "type": "attack", "_id": "NurXUfoPDSVptejR", "systemPath": "actions", - "description": "

Then roll a d6. On a result of 5 or lower, place this card in your vault permanently. On a failure, you can’t cast Resurrection again for a week.

", + "description": "

Then roll a d6. On a result of 5 or lower, place this card in your vault permanently. On a failure, you can’t cast Resurrection again for a week.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -104,14 +104,20 @@ "img": "icons/sundries/gaming/dice-runed-brown.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 133, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784503, + "modifiedTime": 1754270120120, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "z30ciOwQI7g3tHla", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Rift_Walker_vd5STqX29RpYbGxa.json b/src/packs/domains/domainCard_Rift_Walker_vd5STqX29RpYbGxa.json index c112e373..476e9534 100644 --- a/src/packs/domains/domainCard_Rift_Walker_vd5STqX29RpYbGxa.json +++ b/src/packs/domains/domainCard_Rift_Walker_vd5STqX29RpYbGxa.json @@ -57,14 +57,20 @@ "img": "icons/magic/earth/projectile-stone-bullet-pink.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 120, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784503, + "modifiedTime": 1754253784334, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "vd5STqX29RpYbGxa", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Rise_Up_oDIZoC4l19Nli0Fj.json b/src/packs/domains/domainCard_Rise_Up_oDIZoC4l19Nli0Fj.json index 38c900b2..d7c8c618 100644 --- a/src/packs/domains/domainCard_Rise_Up_oDIZoC4l19Nli0Fj.json +++ b/src/packs/domains/domainCard_Rise_Up_oDIZoC4l19Nli0Fj.json @@ -77,14 +77,20 @@ "img": "icons/magic/life/heart-cross-strong-purple-orange.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784504, + "modifiedTime": 1754242078238, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "oDIZoC4l19Nli0Fj", "sort": 3400000, "effects": [ @@ -106,7 +112,7 @@ "key": "system.damageThresholds.severe", "mode": 2, "value": "@system.proficiency", - "priority": 21 + "priority": null } ], "disabled": false, @@ -127,7 +133,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754068687045, + "modifiedTime": 1754068747521, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!oDIZoC4l19Nli0Fj.ulQpnnRFwW4BwMlE" } diff --git a/src/packs/domains/domainCard_Rousing_Strike_pcbYD33rBBdAo5f9.json b/src/packs/domains/domainCard_Rousing_Strike_pcbYD33rBBdAo5f9.json index 648a6600..47aa96d1 100644 --- a/src/packs/domains/domainCard_Rousing_Strike_pcbYD33rBBdAo5f9.json +++ b/src/packs/domains/domainCard_Rousing_Strike_pcbYD33rBBdAo5f9.json @@ -32,14 +32,20 @@ "img": "icons/magic/light/hand-sparks-glow-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784506, + "modifiedTime": 1754242030472, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "pcbYD33rBBdAo5f9", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Rune_Ward_GEhBUmv9Bj7oJfHk.json b/src/packs/domains/domainCard_Rune_Ward_GEhBUmv9Bj7oJfHk.json index 54b0edbb..ea33cfcb 100644 --- a/src/packs/domains/domainCard_Rune_Ward_GEhBUmv9Bj7oJfHk.json +++ b/src/packs/domains/domainCard_Rune_Ward_GEhBUmv9Bj7oJfHk.json @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -46,7 +47,7 @@ "bonus": null, "advState": "neutral", "diceRolling": { - "multiplier": "flat", + "multiplier": "prof", "flatMultiplier": 1, "dice": "d8", "compare": null, @@ -63,14 +64,20 @@ "img": "icons/commodities/gems/gem-faceted-diamond-pink-gold.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 119, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784506, + "modifiedTime": 1754253212120, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "GEhBUmv9Bj7oJfHk", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Safe_Haven_lmBLMPuR8qLbuzNf.json b/src/packs/domains/domainCard_Safe_Haven_lmBLMPuR8qLbuzNf.json index 0d98c1f9..3f84099c 100644 --- a/src/packs/domains/domainCard_Safe_Haven_lmBLMPuR8qLbuzNf.json +++ b/src/packs/domains/domainCard_Safe_Haven_lmBLMPuR8qLbuzNf.json @@ -22,6 +22,7 @@ "scalable": false, "key": "hope", "value": 2, + "keyIsID": false, "step": null } ], @@ -44,14 +45,20 @@ "img": "icons/environment/settlement/watchtower-moonlit-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 125, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784506, + "modifiedTime": 1754233292265, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "lmBLMPuR8qLbuzNf", "sort": 3400000, "effects": [ @@ -100,7 +107,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754233292243, + "modifiedTime": 1754233349982, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!lmBLMPuR8qLbuzNf.UaqohKZnokIPLeYf" } diff --git a/src/packs/domains/domainCard_Sage_Touched_VOSFaQHZbmhMyXwi.json b/src/packs/domains/domainCard_Sage_Touched_VOSFaQHZbmhMyXwi.json index dc9ac3d3..3f172c21 100644 --- a/src/packs/domains/domainCard_Sage_Touched_VOSFaQHZbmhMyXwi.json +++ b/src/packs/domains/domainCard_Sage_Touched_VOSFaQHZbmhMyXwi.json @@ -19,12 +19,11 @@ "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "VOSFaQHZbmhMyXwi", - "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "VOSFaQHZbmhMyXwi", + "value": 1, + "keyIsID": true, + "step": null } ], "uses": { @@ -55,12 +54,11 @@ "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "VOSFaQHZbmhMyXwi", - "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "VOSFaQHZbmhMyXwi", + "value": 1, + "keyIsID": true, + "step": null } ], "uses": { @@ -89,14 +87,20 @@ "max": "1", "icon": "", "recovery": "shortRest" - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 131, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784507, + "modifiedTime": 1754339963905, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "VOSFaQHZbmhMyXwi", "sort": 3400000, "effects": [ @@ -131,7 +135,7 @@ "startRound": null, "startTurn": null }, - "description": "

While you’re in a natural environment, you gain a +2 bonus to your Spellcast Rolls.

", + "description": "

While you’re in a natural environment, you gain a +2 bonus to your Spellcast Rolls.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -139,7 +143,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754118827696, + "modifiedTime": 1754334543508, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!VOSFaQHZbmhMyXwi.7zMpgedPII5GIYUl" }, @@ -182,7 +194,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754118919916, + "modifiedTime": 1754334559295, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!VOSFaQHZbmhMyXwi.Mmax64mlLPYxJPB7" }, @@ -219,13 +239,21 @@ "startRound": null, "startTurn": null }, - "description": "

Once per rest, you can double your Agility or Instinct when making a roll that uses that trait. You must choose to do this before you roll.

", + "description": "

Once per rest, you can double your Agility or Instinct when making a roll that uses that trait. You must choose to do this before you roll.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754119059577, + "modifiedTime": 1754334563219, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!VOSFaQHZbmhMyXwi.p03IjcyigL4b2WD1" } diff --git a/src/packs/domains/domainCard_Salvation_Beam_4uAFGp3LxiC07woC.json b/src/packs/domains/domainCard_Salvation_Beam_4uAFGp3LxiC07woC.json index d637f611..0d799f82 100644 --- a/src/packs/domains/domainCard_Salvation_Beam_4uAFGp3LxiC07woC.json +++ b/src/packs/domains/domainCard_Salvation_Beam_4uAFGp3LxiC07woC.json @@ -14,7 +14,7 @@ "type": "healing", "_id": "dmnB4ZMSk8lsB8Lg", "systemPath": "actions", - "description": "

Make a Spellcast Roll (16). On a success, mark any number of Stress to target a line of allies within Far range. You can clear Hit Points on the targets equal to the number of Stress marked, divided among them however you’d like.

@Template[type:ray|range:f]

", + "description": "

Make a Spellcast Roll (16). On a success, mark any number of Stress to target a line of allies within Far range. You can clear Hit Points on the targets equal to the number of Stress marked, divided among them however you’d like.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -23,7 +23,8 @@ "scalable": true, "key": "stress", "value": 1, - "step": null + "step": null, + "keyIsID": false } ], "uses": { @@ -86,14 +87,20 @@ "img": "icons/magic/light/beams-rays-orange-purple-large.webp", "range": "far" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 133, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784508, + "modifiedTime": 1754270031835, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "4uAFGp3LxiC07woC", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Scramble_5bBU9jWHOuOY12lR.json b/src/packs/domains/domainCard_Scramble_5bBU9jWHOuOY12lR.json index 8a557181..5ca6fc07 100644 --- a/src/packs/domains/domainCard_Scramble_5bBU9jWHOuOY12lR.json +++ b/src/packs/domains/domainCard_Scramble_5bBU9jWHOuOY12lR.json @@ -33,14 +33,20 @@ "img": "icons/skills/movement/feet-winged-boots-brown.webp", "range": "melee" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784509, + "modifiedTime": 1754304188850, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "5bBU9jWHOuOY12lR", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Second_Wind_ffPbSEvLuFrFsMxl.json b/src/packs/domains/domainCard_Second_Wind_ffPbSEvLuFrFsMxl.json index a8a21ec3..07b037d6 100644 --- a/src/packs/domains/domainCard_Second_Wind_ffPbSEvLuFrFsMxl.json +++ b/src/packs/domains/domainCard_Second_Wind_ffPbSEvLuFrFsMxl.json @@ -19,10 +19,10 @@ "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "ffPbSEvLuFrFsMxl", - "value": 1, "scalable": false, + "key": "ffPbSEvLuFrFsMxl", + "value": 1, + "keyIsID": true, "step": null, "consumeOnSuccess": false } @@ -96,10 +96,10 @@ "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "ffPbSEvLuFrFsMxl", - "value": 1, "scalable": false, + "key": "ffPbSEvLuFrFsMxl", + "value": 1, + "keyIsID": true, "step": null, "consumeOnSuccess": false } @@ -171,14 +171,20 @@ "recovery": "shortRest", "max": "1", "icon": "" - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 132, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784509, + "modifiedTime": 1754269533170, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "ffPbSEvLuFrFsMxl", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Sensory_Projection_gZOMzskSOfeiXn54.json b/src/packs/domains/domainCard_Sensory_Projection_gZOMzskSOfeiXn54.json index 2701b0ce..227ab463 100644 --- a/src/packs/domains/domainCard_Sensory_Projection_gZOMzskSOfeiXn54.json +++ b/src/packs/domains/domainCard_Sensory_Projection_gZOMzskSOfeiXn54.json @@ -57,14 +57,20 @@ "img": "icons/magic/control/debuff-energy-hold-pink.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 120, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784511, + "modifiedTime": 1754254316744, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "gZOMzskSOfeiXn54", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json b/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json index cd906eaa..000a1b1f 100644 --- a/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json +++ b/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json @@ -61,14 +61,20 @@ "img": "icons/magic/control/debuff-energy-snare-blue.webp", "range": "veryClose" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 128, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784512, + "modifiedTime": 1754499502570, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "kguhWlidhxe2GbT0", "sort": 3400000, "effects": [ @@ -101,12 +107,20 @@ "description": "", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754162763257, + "modifiedTime": 1754173285450, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!kguhWlidhxe2GbT0.RFB4V0V4bDJ6vCL2" } diff --git a/src/packs/domains/domainCard_Shadowhunter_A0XzD6MmBXYdk7Ps.json b/src/packs/domains/domainCard_Shadowhunter_A0XzD6MmBXYdk7Ps.json index a3d98039..1b1639fd 100644 --- a/src/packs/domains/domainCard_Shadowhunter_A0XzD6MmBXYdk7Ps.json +++ b/src/packs/domains/domainCard_Shadowhunter_A0XzD6MmBXYdk7Ps.json @@ -9,14 +9,20 @@ "recallCost": 2, "level": 8, "type": "ability", - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 129, - "artist": "" - } + "actions": {} }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784513, + "modifiedTime": 1754331190370, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "A0XzD6MmBXYdk7Ps", "sort": 3400000, "effects": [ @@ -44,7 +50,7 @@ "startRound": null, "startTurn": null }, - "description": "

While you’re shrouded in low light or darkness, you gain a +1 bonus to your Evasion and make attack rolls with advantage.

", + "description": "

While you’re shrouded in low light or darkness, you gain a +1 bonus to your Evasion and make attack rolls with advantage.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -52,7 +58,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754167964426, + "modifiedTime": 1754173673528, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!A0XzD6MmBXYdk7Ps.A6gMv7TbMu3nV3NT" }, @@ -95,7 +109,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754168154541, + "modifiedTime": 1754173683534, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!A0XzD6MmBXYdk7Ps.a1hDCNYDvF4dWt58" } diff --git a/src/packs/domains/domainCard_Shape_Material_db4xV3YErHRslbVE.json b/src/packs/domains/domainCard_Shape_Material_db4xV3YErHRslbVE.json index 0b3901fb..c4eb21a0 100644 --- a/src/packs/domains/domainCard_Shape_Material_db4xV3YErHRslbVE.json +++ b/src/packs/domains/domainCard_Shape_Material_db4xV3YErHRslbVE.json @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -41,14 +42,20 @@ "img": "icons/commodities/stone/geode-raw-white.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 133, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784514, + "modifiedTime": 1754269669897, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "db4xV3YErHRslbVE", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Share_the_Burden_8nRle10pw1HO8QVu.json b/src/packs/domains/domainCard_Share_the_Burden_8nRle10pw1HO8QVu.json index 93325cc3..62c4de86 100644 --- a/src/packs/domains/domainCard_Share_the_Burden_8nRle10pw1HO8QVu.json +++ b/src/packs/domains/domainCard_Share_the_Burden_8nRle10pw1HO8QVu.json @@ -33,14 +33,20 @@ "img": "systems/daggerheart/assets/icons/domains/domain-card/grace.png", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 127, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784515, + "modifiedTime": 1754499760780, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "8nRle10pw1HO8QVu", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Shield_Aura_rfIv6lln40Fh6EIl.json b/src/packs/domains/domainCard_Shield_Aura_rfIv6lln40Fh6EIl.json index 64544f76..ea63ca5a 100644 --- a/src/packs/domains/domainCard_Shield_Aura_rfIv6lln40Fh6EIl.json +++ b/src/packs/domains/domainCard_Shield_Aura_rfIv6lln40Fh6EIl.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -46,14 +47,20 @@ "img": "icons/magic/defensive/shield-barrier-flaming-diamond-orange.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 133, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784516, + "modifiedTime": 1754269891393, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "rfIv6lln40Fh6EIl", "sort": 3400000, "effects": [ @@ -90,13 +97,21 @@ "startRound": null, "startTurn": null }, - "description": "

When the target marks an Armor Slot, they reduce the severity of the attack by an additional threshold. If this spell causes a creature who would be damaged to instead mark no Hit Points, the effect ends.

", + "description": "

When the target marks an Armor Slot, they reduce the severity of the attack by an additional threshold. If this spell causes a creature who would be damaged to instead mark no Hit Points, the effect ends.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754267028648, + "modifiedTime": 1754269905777, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!rfIv6lln40Fh6EIl.OQreUqdAfIt3V6uq" } diff --git a/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json b/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json index 7cabf19d..2b7ccf04 100644 --- a/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json +++ b/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json @@ -23,6 +23,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -64,14 +65,20 @@ "img": "icons/magic/defensive/shield-barrier-deflect-teal.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784516, + "modifiedTime": 1754242112465, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "JwfhtgmmuRxg4zhI", "sort": 3400000, "effects": [ @@ -114,7 +121,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754306645903, + "modifiedTime": 1754306703368, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!JwfhtgmmuRxg4zhI.5DTQDVU8Jy5Nnp5V" } diff --git a/src/packs/domains/domainCard_Sigil_of_Retribution_RiuN0lMlfoTAhLJz.json b/src/packs/domains/domainCard_Sigil_of_Retribution_RiuN0lMlfoTAhLJz.json index a368edad..cd3e81b3 100644 --- a/src/packs/domains/domainCard_Sigil_of_Retribution_RiuN0lMlfoTAhLJz.json +++ b/src/packs/domains/domainCard_Sigil_of_Retribution_RiuN0lMlfoTAhLJz.json @@ -44,14 +44,20 @@ "img": "icons/magic/symbols/triangle-glow-purple.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 125, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784517, + "modifiedTime": 1754232249140, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "RiuN0lMlfoTAhLJz", "sort": 3400000, "effects": [ @@ -87,7 +93,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754232137303, + "modifiedTime": 1754232174373, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!RiuN0lMlfoTAhLJz.pJntjutNO7bYX6td" } diff --git a/src/packs/domains/domainCard_Signature_Move_LWRkhNY968Cu2Zl5.json b/src/packs/domains/domainCard_Signature_Move_LWRkhNY968Cu2Zl5.json index 08e6007c..29ab1f5c 100644 --- a/src/packs/domains/domainCard_Signature_Move_LWRkhNY968Cu2Zl5.json +++ b/src/packs/domains/domainCard_Signature_Move_LWRkhNY968Cu2Zl5.json @@ -8,14 +8,20 @@ "domain": "bone", "recallCost": 1, "level": 5, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 123, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784518, + "modifiedTime": 1754252482524, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "LWRkhNY968Cu2Zl5", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Smite_U1uWJE94HZVudujz.json b/src/packs/domains/domainCard_Smite_U1uWJE94HZVudujz.json index 23786540..939fff19 100644 --- a/src/packs/domains/domainCard_Smite_U1uWJE94HZVudujz.json +++ b/src/packs/domains/domainCard_Smite_U1uWJE94HZVudujz.json @@ -22,6 +22,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -39,21 +40,27 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Charge Smite", "img": "icons/skills/melee/sword-winged-holy-orange.webp", - "range": "self" + "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 133, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784519, + "modifiedTime": 1754498725946, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "U1uWJE94HZVudujz", "sort": 3400000, "effects": [ @@ -89,7 +96,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754264891117, + "modifiedTime": 1754269718941, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!U1uWJE94HZVudujz.mqZSae8J9d7o3lon" } diff --git a/src/packs/domains/domainCard_Soothing_Speech_QED2PDYePOSTbLtC.json b/src/packs/domains/domainCard_Soothing_Speech_QED2PDYePOSTbLtC.json index daecba3b..73bef395 100644 --- a/src/packs/domains/domainCard_Soothing_Speech_QED2PDYePOSTbLtC.json +++ b/src/packs/domains/domainCard_Soothing_Speech_QED2PDYePOSTbLtC.json @@ -144,14 +144,20 @@ "img": "icons/commodities/gems/gem-faceted-diamond-green.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 126, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784519, + "modifiedTime": 1754341467905, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "QED2PDYePOSTbLtC", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Specter_of_the_Dark_iQhgqmLwhcSTYnvr.json b/src/packs/domains/domainCard_Specter_of_the_Dark_iQhgqmLwhcSTYnvr.json index 18af0877..a5ba7cae 100644 --- a/src/packs/domains/domainCard_Specter_of_the_Dark_iQhgqmLwhcSTYnvr.json +++ b/src/packs/domains/domainCard_Specter_of_the_Dark_iQhgqmLwhcSTYnvr.json @@ -14,7 +14,7 @@ "type": "effect", "_id": "K91pB8O1ak8fikUj", "systemPath": "actions", - "description": "

Mark a Stress to become Spectral until you make an action roll targeting another creature. While Spectral, you’re immune to physical damage and can float and pass through solid objects. Other creatures can still see you while you’re in this form.

", + "description": "

Mark a Stress to become Spectral until you make an action roll targeting another creature. While Spectral, you’re immune to physical damage and can float and pass through solid objects. Other creatures can still see you while you’re in this form.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -37,21 +38,27 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Become Spectral", "img": "icons/magic/unholy/silhouette-light-fire-blue.webp", - "range": "self" + "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 129, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784520, + "modifiedTime": 1754331335651, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "iQhgqmLwhcSTYnvr", "sort": 3400000, "effects": [ @@ -94,7 +101,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754171482370, + "modifiedTime": 1754173903772, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!iQhgqmLwhcSTYnvr.d9bZJl0yZnvOe2f3" } diff --git a/src/packs/domains/domainCard_Spellcharge_ewhIzXQ2h9fS9I8c.json b/src/packs/domains/domainCard_Spellcharge_ewhIzXQ2h9fS9I8c.json index 69379b5d..651fe897 100644 --- a/src/packs/domains/domainCard_Spellcharge_ewhIzXQ2h9fS9I8c.json +++ b/src/packs/domains/domainCard_Spellcharge_ewhIzXQ2h9fS9I8c.json @@ -20,17 +20,16 @@ "type": "effect", "_id": "jCgZ0yCoIhSAVEw3", "systemPath": "actions", - "description": "

When you make a successful attack against a target, you can spend any number of tokens to add a d6 for each token spent to your damage roll.

", + "description": "

When you make a successful attack against a target, you can spend any number of tokens to add a d6 for each token spent to your damage roll.

", "chatDisplay": true, "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "ewhIzXQ2h9fS9I8c", - "value": 1, "scalable": true, - "step": null, - "consumeOnSuccess": false + "key": "ewhIzXQ2h9fS9I8c", + "value": 1, + "keyIsID": true, + "step": null } ], "uses": { @@ -47,14 +46,20 @@ "img": "icons/commodities/gems/gem-faceted-diamond-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 129, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784521, + "modifiedTime": 1754331207737, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "ewhIzXQ2h9fS9I8c", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Splendor_Touched_JT5dM3gVL6chDBYU.json b/src/packs/domains/domainCard_Splendor_Touched_JT5dM3gVL6chDBYU.json index 45d0dc96..0772f92b 100644 --- a/src/packs/domains/domainCard_Splendor_Touched_JT5dM3gVL6chDBYU.json +++ b/src/packs/domains/domainCard_Splendor_Touched_JT5dM3gVL6chDBYU.json @@ -8,14 +8,20 @@ "domain": "splendor", "recallCost": 2, "level": 7, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 133, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784522, + "modifiedTime": 1754268980895, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "JT5dM3gVL6chDBYU", "sort": 3400000, "effects": [ @@ -58,7 +64,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754266508752, + "modifiedTime": 1754269874537, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!JT5dM3gVL6chDBYU.u13fiOMD8B36PkiZ" } diff --git a/src/packs/domains/domainCard_Splintering_Strike_TYKfM3H9vBXyWiH4.json b/src/packs/domains/domainCard_Splintering_Strike_TYKfM3H9vBXyWiH4.json index e36c744c..ed3d5f4c 100644 --- a/src/packs/domains/domainCard_Splintering_Strike_TYKfM3H9vBXyWiH4.json +++ b/src/packs/domains/domainCard_Splintering_Strike_TYKfM3H9vBXyWiH4.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "eg2vM8j9xhya9Rwa", "system": { - "description": "

Spend a Hope and make an attack against all adversaries within your weapon’s range. Once per long rest, on a success against any targets, roll your weapon’s damage and distribute that damage however you wish between the targets you succeeded against. Before you deal damage to each target, roll an additional damage die and add its result to the damage you deal to them.

", + "description": "

Spend a Hope and make an attack against all adversaries within your weapon’s range. Once per long rest, on a success against any targets, add up the damage dealt, then redistribute that damage however you wish between the targets you succeeded against. When you deal damage to a target, roll an additional damage die and add its result to the damage you deal to that target.

", "domain": "bone", "recallCost": 3, "level": 9, @@ -14,11 +14,12 @@ "type": "attack", "_id": "yjEcSlzsWGX79gpB", "systemPath": "actions", - "description": "", + "description": "

Spend a Hope and make an attack against all adversaries within your weapon’s range. Once per long rest, on a success against any targets, add up the damage dealt, then redistribute that damage however you wish between the targets you succeeded against. When you deal damage to a target, roll an additional damage die and add its result to the damage you deal to that target.

", "chatDisplay": true, "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -65,14 +66,20 @@ "img": "icons/skills/melee/strike-sword-steel-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 123, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784522, + "modifiedTime": 1754501075258, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "TYKfM3H9vBXyWiH4", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Stealth_Expertise_NIUhmuQGwbb3UClZ.json b/src/packs/domains/domainCard_Stealth_Expertise_NIUhmuQGwbb3UClZ.json index fc6c524e..a19143c9 100644 --- a/src/packs/domains/domainCard_Stealth_Expertise_NIUhmuQGwbb3UClZ.json +++ b/src/packs/domains/domainCard_Stealth_Expertise_NIUhmuQGwbb3UClZ.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -39,14 +40,20 @@ "img": "icons/commodities/gems/gem-faceted-octagon-yellow.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 128, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784523, + "modifiedTime": 1754330848539, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "NIUhmuQGwbb3UClZ", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Strategic_Approach_5b1awkgTmMp3FVrm.json b/src/packs/domains/domainCard_Strategic_Approach_5b1awkgTmMp3FVrm.json index d939d7db..ae4ab09d 100644 --- a/src/packs/domains/domainCard_Strategic_Approach_5b1awkgTmMp3FVrm.json +++ b/src/packs/domains/domainCard_Strategic_Approach_5b1awkgTmMp3FVrm.json @@ -27,10 +27,10 @@ "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "5b1awkgTmMp3FVrm", - "value": 1, "scalable": false, + "key": "5b1awkgTmMp3FVrm", + "value": 1, + "keyIsID": true, "step": null, "consumeOnSuccess": false } @@ -50,14 +50,20 @@ "img": "icons/skills/targeting/crosshair-arrowhead-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 122, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784523, + "modifiedTime": 1754501630846, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "5b1awkgTmMp3FVrm", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Stunning_Sunlight_lRHo6ZkK1zybeEoG.json b/src/packs/domains/domainCard_Stunning_Sunlight_lRHo6ZkK1zybeEoG.json index 6fde5d18..b601a08d 100644 --- a/src/packs/domains/domainCard_Stunning_Sunlight_lRHo6ZkK1zybeEoG.json +++ b/src/packs/domains/domainCard_Stunning_Sunlight_lRHo6ZkK1zybeEoG.json @@ -23,7 +23,8 @@ "scalable": true, "key": "hope", "value": 1, - "step": null + "step": null, + "keyIsID": false } ], "uses": { @@ -151,14 +152,20 @@ "img": "icons/magic/light/beam-strike-village-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 133, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784524, + "modifiedTime": 1754269929319, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "lRHo6ZkK1zybeEoG", "sort": 3400000, "effects": [ @@ -188,7 +195,7 @@ "startRound": null, "startTurn": null }, - "description": "

Temporarily Stunned. While Stunned, they can’t use reactions and can’t take any other actions until they clear this condition.

", + "description": "

Temporarily Stunned. While Stunned, they can’t use reactions and can’t take any other actions until they clear this condition.

", "tint": "#ffffff", "statuses": [ "stun" @@ -196,7 +203,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754267322034, + "modifiedTime": 1754269990023, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!lRHo6ZkK1zybeEoG.kSLuGSI6FLhOJaGp" } diff --git a/src/packs/domains/domainCard_Support_Tank_stId5syX7YpP2JGz.json b/src/packs/domains/domainCard_Support_Tank_stId5syX7YpP2JGz.json index 2d80237a..04c3c64c 100644 --- a/src/packs/domains/domainCard_Support_Tank_stId5syX7YpP2JGz.json +++ b/src/packs/domains/domainCard_Support_Tank_stId5syX7YpP2JGz.json @@ -22,6 +22,7 @@ "scalable": false, "key": "hope", "value": 2, + "keyIsID": false, "step": null } ], @@ -39,14 +40,20 @@ "img": "icons/magic/holy/barrier-shield-winged-blue.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784525, + "modifiedTime": 1754241759840, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "stId5syX7YpP2JGz", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Swift_Step_H6TqCJBaa1eWEQ1z.json b/src/packs/domains/domainCard_Swift_Step_H6TqCJBaa1eWEQ1z.json index bd153045..0dc8c2c9 100644 --- a/src/packs/domains/domainCard_Swift_Step_H6TqCJBaa1eWEQ1z.json +++ b/src/packs/domains/domainCard_Swift_Step_H6TqCJBaa1eWEQ1z.json @@ -146,14 +146,20 @@ "img": "icons/magic/life/cross-beam-green.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 123, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784526, + "modifiedTime": 1754252518993, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "H6TqCJBaa1eWEQ1z", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Tactician_WChWEH36lUpXAC0K.json b/src/packs/domains/domainCard_Tactician_WChWEH36lUpXAC0K.json index 9e66e0aa..bcd56d25 100644 --- a/src/packs/domains/domainCard_Tactician_WChWEH36lUpXAC0K.json +++ b/src/packs/domains/domainCard_Tactician_WChWEH36lUpXAC0K.json @@ -8,14 +8,20 @@ "domain": "bone", "recallCost": 1, "level": 3, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 122, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784526, + "modifiedTime": 1754249669078, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "WChWEH36lUpXAC0K", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Telekinesis_FgzBppvLjXr0UbUI.json b/src/packs/domains/domainCard_Telekinesis_FgzBppvLjXr0UbUI.json index f80954e7..22a7d347 100644 --- a/src/packs/domains/domainCard_Telekinesis_FgzBppvLjXr0UbUI.json +++ b/src/packs/domains/domainCard_Telekinesis_FgzBppvLjXr0UbUI.json @@ -131,14 +131,20 @@ "img": "icons/magic/control/energy-stream-link-spiral-blue.webp", "range": "far" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 120, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784527, + "modifiedTime": 1754253886885, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "FgzBppvLjXr0UbUI", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Teleport_HnPwVrWblYa9hwSt.json b/src/packs/domains/domainCard_Teleport_HnPwVrWblYa9hwSt.json index b4563eac..e1569b1a 100644 --- a/src/packs/domains/domainCard_Teleport_HnPwVrWblYa9hwSt.json +++ b/src/packs/domains/domainCard_Teleport_HnPwVrWblYa9hwSt.json @@ -56,14 +56,20 @@ "img": "icons/magic/movement/pinwheel-turning-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 125, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784528, + "modifiedTime": 1754231629691, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "HnPwVrWblYa9hwSt", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Tell_No_Lies_HTv9QEPS466WsstP.json b/src/packs/domains/domainCard_Tell_No_Lies_HTv9QEPS466WsstP.json index f1056dfc..f25819c7 100644 --- a/src/packs/domains/domainCard_Tell_No_Lies_HTv9QEPS466WsstP.json +++ b/src/packs/domains/domainCard_Tell_No_Lies_HTv9QEPS466WsstP.json @@ -82,14 +82,20 @@ "img": "icons/magic/control/voodoo-doll-pain-damage-red.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 126, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784529, + "modifiedTime": 1754341185897, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "HTv9QEPS466WsstP", "sort": 3400000, "effects": [ @@ -117,7 +123,7 @@ "startRound": null, "startTurn": null }, - "description": "

Can’t lie to you while they remain within Close range, but they are not compelled to speak. If you ask them a question and they refuse to answer, they must mark a Stress and the effect ends. The target is typically unaware this spell has been cast on them until it causes them to utter the truth.

", + "description": "

Can’t lie to you while they remain within Close range, but they are not compelled to speak. If you ask them a question and they refuse to answer, they must mark a Stress and the effect ends. The target is typically unaware this spell has been cast on them until it causes them to utter the truth.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -125,7 +131,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754098358492, + "modifiedTime": 1754341203961, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!HTv9QEPS466WsstP.5L6fC80VfbPfGmcA" } diff --git a/src/packs/domains/domainCard_Tempest_X7YaZgFieBlqaPdZ.json b/src/packs/domains/domainCard_Tempest_X7YaZgFieBlqaPdZ.json index d82dd9fa..71d1dc6a 100644 --- a/src/packs/domains/domainCard_Tempest_X7YaZgFieBlqaPdZ.json +++ b/src/packs/domains/domainCard_Tempest_X7YaZgFieBlqaPdZ.json @@ -244,14 +244,20 @@ "img": "icons/magic/air/air-wave-gust-smoke-yellow.webp", "range": "far" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 132, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784530, + "modifiedTime": 1754340540933, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "X7YaZgFieBlqaPdZ", "sort": 3400000, "effects": [ @@ -289,7 +295,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754120695927, + "modifiedTime": 1754340645104, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!X7YaZgFieBlqaPdZ.oqPY3I9oO9J6l5Aj" }, @@ -319,13 +333,21 @@ "startRound": null, "startTurn": null }, - "description": "

Targets can’t move against the wind.

", + "description": "

Targets can’t move against the wind.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754120821648, + "modifiedTime": 1754340673117, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!X7YaZgFieBlqaPdZ.tB7AyDy0pbE9q5hM" }, @@ -355,13 +377,21 @@ "startRound": null, "startTurn": null }, - "description": "

Attacks made from beyond Melee range have disadvantage.

", + "description": "

Attacks made from beyond Melee range have disadvantage.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754120893069, + "modifiedTime": 1754340693972, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!X7YaZgFieBlqaPdZ.S4Vpgf3FMmq8MGrb" } diff --git a/src/packs/domains/domainCard_Thorn_Skin_oUipGK84E2KjoKqh.json b/src/packs/domains/domainCard_Thorn_Skin_oUipGK84E2KjoKqh.json index 2f97dd84..6aca1471 100644 --- a/src/packs/domains/domainCard_Thorn_Skin_oUipGK84E2KjoKqh.json +++ b/src/packs/domains/domainCard_Thorn_Skin_oUipGK84E2KjoKqh.json @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -32,12 +33,12 @@ }, "effects": [], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Spend Hope", "img": "icons/magic/nature/thorns-hand-glow-green.webp", - "range": "self" + "range": "" }, "IVAyyVf8gqFWB7bP": { "type": "effect", @@ -48,12 +49,11 @@ "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "oUipGK84E2KjoKqh", - "value": 1, "scalable": true, + "key": "oUipGK84E2KjoKqh", + "value": 1, "step": 1, - "consumeOnSuccess": false + "keyIsID": true } ], "uses": { @@ -78,14 +78,20 @@ "max": "@cast", "icon": "", "dieFaces": "d6" - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 130, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784531, + "modifiedTime": 1754338832102, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "oUipGK84E2KjoKqh", "sort": 3400000, "effects": [ @@ -121,7 +127,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754117446751, + "modifiedTime": 1754338809617, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!oUipGK84E2KjoKqh.KPA1okccsR7AQH0x" } diff --git a/src/packs/domains/domainCard_Thought_Delver_B4choj481tqajWb9.json b/src/packs/domains/domainCard_Thought_Delver_B4choj481tqajWb9.json index 0dbc078d..3717b810 100644 --- a/src/packs/domains/domainCard_Thought_Delver_B4choj481tqajWb9.json +++ b/src/packs/domains/domainCard_Thought_Delver_B4choj481tqajWb9.json @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -48,7 +49,7 @@ "type": "attack", "_id": "nuYCkANsYDtZJO6f", "systemPath": "actions", - "description": "

Make a Spellcast Roll against the target to delve for deeper, more hidden thoughts. On a roll with Fear, the target might, at the GM’s discretion, become aware that you’re reading their thoughts.

", + "description": "

Make a Spellcast Roll against the target to delve for deeper, more hidden thoughts. On a roll with Fear, the target might, at the GM’s discretion, become aware that you’re reading their thoughts.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -90,14 +91,20 @@ "img": "icons/magic/control/fear-fright-shadow-monster-purple.webp", "range": "far" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 127, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784532, + "modifiedTime": 1754341613759, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "B4choj481tqajWb9", "sort": 3400000, "effects": [ @@ -127,13 +134,21 @@ "startRound": null, "startTurn": null }, - "description": "

Read the vague surface thoughts of a target within Far range. Make a Spellcast Roll against the target to delve for deeper, more hidden thoughts.

", + "description": "

Read the vague surface thoughts of a target within Far range. Make a Spellcast Roll against the target to delve for deeper, more hidden thoughts.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754104058616, + "modifiedTime": 1754341581728, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!B4choj481tqajWb9.obbNjDhwN60YhH1s" } diff --git a/src/packs/domains/domainCard_Through_Your_Eyes_7b0mzV5QMPjVPT4o.json b/src/packs/domains/domainCard_Through_Your_Eyes_7b0mzV5QMPjVPT4o.json index ed01392d..4c3d2611 100644 --- a/src/packs/domains/domainCard_Through_Your_Eyes_7b0mzV5QMPjVPT4o.json +++ b/src/packs/domains/domainCard_Through_Your_Eyes_7b0mzV5QMPjVPT4o.json @@ -37,14 +37,20 @@ "img": "icons/magic/perception/eye-slit-pink.webp", "range": "veryFar" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 127, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784533, + "modifiedTime": 1754341493606, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "7b0mzV5QMPjVPT4o", "sort": 3400000, "effects": [ @@ -74,13 +80,21 @@ "startRound": null, "startTurn": null }, - "description": "

Can see through their eyes and hear through their ears.

", + "description": "

Can see through their eyes and hear through their ears.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754103458332, + "modifiedTime": 1754341504675, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!7b0mzV5QMPjVPT4o.TCOHV7tWpunCZDxn" } diff --git a/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json b/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json index d7d984d1..124144a8 100644 --- a/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json +++ b/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json @@ -19,20 +19,18 @@ "actionType": "action", "cost": [ { - "key": "stress", - "itemId": null, - "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null }, { - "key": "resource", - "itemId": "n0P3VS1WfxvmXbB6", - "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "n0P3VS1WfxvmXbB6", + "value": 1, + "keyIsID": true, + "step": null } ], "uses": { @@ -112,6 +110,7 @@ "scalable": false, "key": "hitPoints", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -131,14 +130,20 @@ "range": "" } }, - "resource": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 130, - "artist": "" - } + "resource": null }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784534, + "modifiedTime": 1754499113867, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "n0P3VS1WfxvmXbB6", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Transcendent_Union_kVkoCLBXLAIifqpz.json b/src/packs/domains/domainCard_Transcendent_Union_kVkoCLBXLAIifqpz.json index 7d8d9bbe..10ef5d47 100644 --- a/src/packs/domains/domainCard_Transcendent_Union_kVkoCLBXLAIifqpz.json +++ b/src/packs/domains/domainCard_Transcendent_Union_kVkoCLBXLAIifqpz.json @@ -22,6 +22,7 @@ "scalable": false, "key": "hope", "value": 5, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -46,14 +47,20 @@ "img": "icons/magic/light/explosion-beam-impact-silhouette.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 126, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784534, + "modifiedTime": 1754240901607, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "kVkoCLBXLAIifqpz", "sort": 3400000, "effects": [ @@ -89,7 +96,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754240901572, + "modifiedTime": 1754240925089, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!kVkoCLBXLAIifqpz.kMcvp2QKmBP4uinB" } diff --git a/src/packs/domains/domainCard_Troublemaker_JrdZedm1BFKeV7Yb.json b/src/packs/domains/domainCard_Troublemaker_JrdZedm1BFKeV7Yb.json index 9d740283..5bcd3482 100644 --- a/src/packs/domains/domainCard_Troublemaker_JrdZedm1BFKeV7Yb.json +++ b/src/packs/domains/domainCard_Troublemaker_JrdZedm1BFKeV7Yb.json @@ -83,14 +83,20 @@ "img": "icons/magic/control/fear-fright-monster-purple-blue.webp", "range": "far" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 126, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784535, + "modifiedTime": 1754341260325, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "JrdZedm1BFKeV7Yb", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Twilight_Toll_SDjjV61TC1NceV1m.json b/src/packs/domains/domainCard_Twilight_Toll_SDjjV61TC1NceV1m.json index a6a987dd..c4c06be8 100644 --- a/src/packs/domains/domainCard_Twilight_Toll_SDjjV61TC1NceV1m.json +++ b/src/packs/domains/domainCard_Twilight_Toll_SDjjV61TC1NceV1m.json @@ -21,17 +21,16 @@ "type": "damage", "_id": "hdMFgH17KyxENDAJ", "systemPath": "actions", - "description": "

When you deal damage to this target, spend any number of tokens to add a d12 for each token spent to your damage roll. You can only hold Twilight Toll on one creature at a time.When you choose a new target or take a rest, clear all unspent tokens.

", + "description": "

When you deal damage to this target, spend any number of tokens to add a d12 for each token spent to your damage roll. You can only hold Twilight Toll on one creature at a time.When you choose a new target or take a rest, clear all unspent tokens.

", "chatDisplay": true, "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "SDjjV61TC1NceV1m", - "value": 1, "scalable": true, + "key": "SDjjV61TC1NceV1m", + "value": 1, "step": 1, - "consumeOnSuccess": false + "keyIsID": true } ], "uses": { @@ -77,14 +76,20 @@ "img": "icons/commodities/gems/gem-faceted-diamond-blue.webp", "range": "far" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 129, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784535, + "modifiedTime": 1754331253303, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "SDjjV61TC1NceV1m", "sort": 3400000, "effects": [ @@ -120,7 +125,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754169397485, + "modifiedTime": 1754173791629, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!SDjjV61TC1NceV1m.65UMKq0epBx5DbMC" } diff --git a/src/packs/domains/domainCard_Unbreakable_CUIQmrPjf9VCHmwJ.json b/src/packs/domains/domainCard_Unbreakable_CUIQmrPjf9VCHmwJ.json index e4847ee4..3d06e736 100644 --- a/src/packs/domains/domainCard_Unbreakable_CUIQmrPjf9VCHmwJ.json +++ b/src/packs/domains/domainCard_Unbreakable_CUIQmrPjf9VCHmwJ.json @@ -56,14 +56,20 @@ "img": "icons/magic/life/heart-cross-strong-flame-purple-orange.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 135, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784536, + "modifiedTime": 1754242513278, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "CUIQmrPjf9VCHmwJ", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Uncanny_Disguise_TV56wSysbU5xAlOa.json b/src/packs/domains/domainCard_Uncanny_Disguise_TV56wSysbU5xAlOa.json index 46d9c472..a90187c0 100644 --- a/src/packs/domains/domainCard_Uncanny_Disguise_TV56wSysbU5xAlOa.json +++ b/src/packs/domains/domainCard_Uncanny_Disguise_TV56wSysbU5xAlOa.json @@ -14,7 +14,7 @@ "type": "damage", "_id": "Rncq6VD6B9ugC0AO", "systemPath": "actions", - "description": "

When you have a few minutes to prepare, you can mark a Stress to don the facade of any humanoid you can picture clearly in your mind. While disguised, you have advantage on Presence Rolls to avoid scrutiny.

", + "description": "

When you have a few minutes to prepare, you can mark a Stress to don the facade of any humanoid you can picture clearly in your mind. While disguised, you have advantage on Presence Rolls to avoid scrutiny.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -28,7 +28,7 @@ "includeBase": false }, "target": { - "type": "self", + "type": "any", "amount": null }, "effects": [ @@ -39,7 +39,7 @@ ], "name": "Don Facade", "img": "icons/magic/control/debuff-energy-hold-pink.webp", - "range": "self" + "range": "" }, "OoNND7VcWoBQdtFK": { "type": "effect", @@ -50,12 +50,11 @@ "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "TV56wSysbU5xAlOa", - "value": 1, "scalable": false, - "step": null, - "consumeOnSuccess": false + "key": "TV56wSysbU5xAlOa", + "value": 1, + "keyIsID": true, + "step": null } ], "uses": { @@ -78,14 +77,20 @@ "value": 0, "max": "@cast", "icon": "" - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 128, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784537, + "modifiedTime": 1754330615594, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "TV56wSysbU5xAlOa", "sort": 3400000, "effects": [ @@ -122,13 +127,21 @@ "startRound": null, "startTurn": null }, - "description": "

Don the facade of any humanoid you can picture clearly in your mind. While disguised, you have advantage on Presence Rolls to avoid scrutiny.

", + "description": "

Don the facade of any humanoid you can picture clearly in your mind. While disguised, you have advantage on Presence Rolls to avoid scrutiny.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754161815542, + "modifiedTime": 1754173051633, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!TV56wSysbU5xAlOa.ZMDyDwI5RHe427O4" } diff --git a/src/packs/domains/domainCard_Unleash_Chaos_o62i0QdbUDIiAhSq.json b/src/packs/domains/domainCard_Unleash_Chaos_o62i0QdbUDIiAhSq.json index 62bd00a0..17f934d6 100644 --- a/src/packs/domains/domainCard_Unleash_Chaos_o62i0QdbUDIiAhSq.json +++ b/src/packs/domains/domainCard_Unleash_Chaos_o62i0QdbUDIiAhSq.json @@ -22,16 +22,16 @@ "type": "attack", "_id": "MWvrKuwejWcQm7N1", "systemPath": "actions", - "description": "

Make a Spellcast Roll against a target within Far range and spend any number of tokens to channel raw energy from within yourself to unleash against them. On a success, roll a number of d10s equal to the tokens you spent and deal that much magic damage to the target.

", + "description": "

Make a Spellcast Roll against a target within Far range and spend any number of tokens to channel raw energy from within yourself to unleash against them. On a success, roll a number of d10s equal to the tokens you spent and deal that much magic damage to the target.

", "chatDisplay": true, "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "o62i0QdbUDIiAhSq", - "value": 1, "scalable": true, + "key": "o62i0QdbUDIiAhSq", + "value": 1, "step": 1, + "keyIsID": true, "consumeOnSuccess": false } ], @@ -113,6 +113,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -125,21 +126,27 @@ }, "effects": [], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Replenish Tokens", "img": "icons/commodities/gems/gem-faceted-diamond-blue.webp", - "range": "self" + "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 119, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784537, + "modifiedTime": 1754501257508, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "o62i0QdbUDIiAhSq", "sort": 3400000, "effects": [ @@ -170,7 +177,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754241865446, + "modifiedTime": 1754241865446, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!o62i0QdbUDIiAhSq.F2yHIwHeZmLlrkkS" } diff --git a/src/packs/domains/domainCard_Untouchable_9QElncQUDSakuSdR.json b/src/packs/domains/domainCard_Untouchable_9QElncQUDSakuSdR.json index 11a1a841..89b4cbee 100644 --- a/src/packs/domains/domainCard_Untouchable_9QElncQUDSakuSdR.json +++ b/src/packs/domains/domainCard_Untouchable_9QElncQUDSakuSdR.json @@ -8,14 +8,20 @@ "domain": "bone", "recallCost": 1, "level": 1, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 122, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784538, + "modifiedTime": 1754249654207, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "9QElncQUDSakuSdR", "sort": 3400000, "effects": [ @@ -37,7 +43,7 @@ "key": "system.evasion", "mode": 2, "value": "ceil(@system.traits.agility.value / 2)", - "priority": 21 + "priority": null } ], "disabled": false, @@ -58,7 +64,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754247027320, + "modifiedTime": 1754403424797, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!9QElncQUDSakuSdR.H8hazlQe4Wj4JFO6" } diff --git a/src/packs/domains/domainCard_Unyielding_Armor_s3zRsOMeUkuDwgd8.json b/src/packs/domains/domainCard_Unyielding_Armor_s3zRsOMeUkuDwgd8.json index 359a4696..a5b3ed83 100644 --- a/src/packs/domains/domainCard_Unyielding_Armor_s3zRsOMeUkuDwgd8.json +++ b/src/packs/domains/domainCard_Unyielding_Armor_s3zRsOMeUkuDwgd8.json @@ -8,14 +8,20 @@ "domain": "valor", "recallCost": 1, "level": 10, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 135, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784538, + "modifiedTime": 1754242525301, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "s3zRsOMeUkuDwgd8", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Valor_Touched_k1AtYd3lSchIymBr.json b/src/packs/domains/domainCard_Valor_Touched_k1AtYd3lSchIymBr.json index 99546d6f..ec66bbd6 100644 --- a/src/packs/domains/domainCard_Valor_Touched_k1AtYd3lSchIymBr.json +++ b/src/packs/domains/domainCard_Valor_Touched_k1AtYd3lSchIymBr.json @@ -77,14 +77,20 @@ "img": "icons/equipment/chest/breastplate-collared-steel-grey.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 134, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784539, + "modifiedTime": 1754242143242, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "k1AtYd3lSchIymBr", "sort": 3400000, "effects": [ @@ -127,7 +133,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754068979141, + "modifiedTime": 1754069022363, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!k1AtYd3lSchIymBr.H9lgIqqp1imSNOv9" } diff --git a/src/packs/domains/domainCard_Vanishing_Dodge_GBMIElIpk4cvk1Bd.json b/src/packs/domains/domainCard_Vanishing_Dodge_GBMIElIpk4cvk1Bd.json index f95c8814..1d9e2108 100644 --- a/src/packs/domains/domainCard_Vanishing_Dodge_GBMIElIpk4cvk1Bd.json +++ b/src/packs/domains/domainCard_Vanishing_Dodge_GBMIElIpk4cvk1Bd.json @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -37,21 +38,27 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Vanish", "img": "icons/magic/perception/shadow-stealth-eyes-purple.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 129, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784539, + "modifiedTime": 1754331169719, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "GBMIElIpk4cvk1Bd", "sort": 3400000, "effects": [ @@ -81,7 +88,7 @@ "startRound": null, "startTurn": null }, - "description": "

Envelop yourself in shadow, becoming Hidden and teleporting to a point within Close range of the attacker. You remain Hidden until the next time you make an action roll.

", + "description": "

Envelop yourself in shadow, becoming Hidden and teleporting to a point within Close range of the attacker. You remain Hidden until the next time you make an action roll.

", "tint": "#ffffff", "statuses": [ "hidden" @@ -89,7 +96,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754167817592, + "modifiedTime": 1754173638400, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!GBMIElIpk4cvk1Bd.kxal5WfDr3hTHYpb" } diff --git a/src/packs/domains/domainCard_Veil_of_Night_gV4L5ZZmfPrEbIDh.json b/src/packs/domains/domainCard_Veil_of_Night_gV4L5ZZmfPrEbIDh.json index a6263afe..917c2e93 100644 --- a/src/packs/domains/domainCard_Veil_of_Night_gV4L5ZZmfPrEbIDh.json +++ b/src/packs/domains/domainCard_Veil_of_Night_gV4L5ZZmfPrEbIDh.json @@ -14,7 +14,7 @@ "type": "attack", "_id": "br6UQ0toK4ZYpP2s", "systemPath": "actions", - "description": "

Make a Spellcast Roll (13). On a success, you can create a temporary curtain of darkness between two points within Far range. Only you can see through this darkness. You’re considered Hidden to adversaries on the other side of the veil, and you have advantage on attacks you make through the darkness. The veil remains until you cast another spell.

", + "description": "

Make a Spellcast Roll (13). On a success, you can create a temporary curtain of darkness between two points within Far range. Only you can see through this darkness. You’re considered Hidden to adversaries on the other side of the veil, and you have advantage on attacks you make through the darkness. The veil remains until you cast another spell.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -28,7 +28,7 @@ "includeBase": false }, "target": { - "type": "self", + "type": "any", "amount": null }, "effects": [ @@ -59,16 +59,22 @@ }, "name": "Cast", "img": "icons/magic/unholy/barrier-shield-glowing-pink.webp", - "range": "self" + "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 128, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784541, + "modifiedTime": 1754173368653, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "gV4L5ZZmfPrEbIDh", "sort": 3400000, "effects": [ @@ -113,7 +119,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754163142386, + "modifiedTime": 1754173384037, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!gV4L5ZZmfPrEbIDh.eSfBBZ7IP8qirLu7" } diff --git a/src/packs/domains/domainCard_Versatile_Fighter_wQ53ImDswEHv5SGQ.json b/src/packs/domains/domainCard_Versatile_Fighter_wQ53ImDswEHv5SGQ.json index fe398fb8..c8134c0c 100644 --- a/src/packs/domains/domainCard_Versatile_Fighter_wQ53ImDswEHv5SGQ.json +++ b/src/packs/domains/domainCard_Versatile_Fighter_wQ53ImDswEHv5SGQ.json @@ -22,6 +22,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -41,14 +42,20 @@ "img": "icons/magic/control/silhouette-aura-energy.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784541, + "modifiedTime": 1754304293769, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "wQ53ImDswEHv5SGQ", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Vicious_Entangle_qvpvTnkAoRn9vYO4.json b/src/packs/domains/domainCard_Vicious_Entangle_qvpvTnkAoRn9vYO4.json index dae448e9..cedcec36 100644 --- a/src/packs/domains/domainCard_Vicious_Entangle_qvpvTnkAoRn9vYO4.json +++ b/src/packs/domains/domainCard_Vicious_Entangle_qvpvTnkAoRn9vYO4.json @@ -97,6 +97,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -122,14 +123,20 @@ "img": "icons/commodities/gems/gem-faceted-octagon-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 130, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784541, + "modifiedTime": 1754338467256, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "qvpvTnkAoRn9vYO4", "sort": 3400000, "effects": [ @@ -162,12 +169,20 @@ "description": "", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754114720468, + "modifiedTime": 1754337816677, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!qvpvTnkAoRn9vYO4.Xh0wrgRUuYpwChBU" }, @@ -200,12 +215,20 @@ "description": "", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754114785336, + "modifiedTime": 1754337833036, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!qvpvTnkAoRn9vYO4.2xzOqTaPJQzGqFJv" } diff --git a/src/packs/domains/domainCard_Vitality_sWUlSPOJEaXyQLCj.json b/src/packs/domains/domainCard_Vitality_sWUlSPOJEaXyQLCj.json index 729aa251..3e41ae1a 100644 --- a/src/packs/domains/domainCard_Vitality_sWUlSPOJEaXyQLCj.json +++ b/src/packs/domains/domainCard_Vitality_sWUlSPOJEaXyQLCj.json @@ -46,14 +46,20 @@ "img": "systems/daggerheart/assets/icons/domains/domain-card/blade.png", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784542, + "modifiedTime": 1754304501280, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "sWUlSPOJEaXyQLCj", "sort": 3400000, "effects": [ @@ -74,7 +80,7 @@ }, "changes": [ { - "key": "system.resources.hitPoints.max", + "key": "system.resources.hitPoints", "mode": 2, "value": "1", "priority": null @@ -96,7 +102,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754245866724, + "modifiedTime": 1754246004543, + "lastModifiedBy": "l5jB3XmcVXOTQpRZ" }, "_key": "!items.effects!sWUlSPOJEaXyQLCj.1jtgIyFvDpTb0asZ" }, @@ -117,7 +131,7 @@ }, "changes": [ { - "key": "system.resources.stress.max", + "key": "system.resources.stress", "mode": 2, "value": "1", "priority": null @@ -139,7 +153,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754245912530, + "modifiedTime": 1754245972468, + "lastModifiedBy": "l5jB3XmcVXOTQpRZ" }, "_key": "!items.effects!sWUlSPOJEaXyQLCj.vj9rm1tLqqsSFOXF" }, @@ -188,7 +210,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754245974802, + "modifiedTime": 1754246033724, + "lastModifiedBy": "l5jB3XmcVXOTQpRZ" }, "_key": "!items.effects!sWUlSPOJEaXyQLCj.BcqCG9yF6l1LRYqm" } diff --git a/src/packs/domains/domainCard_Voice_of_Reason_t3RRGH6mMYYJJCcF.json b/src/packs/domains/domainCard_Voice_of_Reason_t3RRGH6mMYYJJCcF.json index 748adec3..481caddf 100644 --- a/src/packs/domains/domainCard_Voice_of_Reason_t3RRGH6mMYYJJCcF.json +++ b/src/packs/domains/domainCard_Voice_of_Reason_t3RRGH6mMYYJJCcF.json @@ -8,14 +8,20 @@ "domain": "splendor", "recallCost": 1, "level": 3, - "type": "ability", - "attribution": { - "source": "Daggerheart SRD", - "page": 132, - "artist": "" - } + "type": "ability" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784542, + "modifiedTime": 1754268954870, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "t3RRGH6mMYYJJCcF", "sort": 3400000, "effects": [ @@ -56,7 +62,7 @@ "startRound": null, "startTurn": null }, - "description": "

You have advantage on action rolls to de-escalate violent situations or convince someone to follow your lead.

", + "description": "

You have advantage on action rolls to de-escalate violent situations or convince someone to follow your lead.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -64,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754264027993, + "modifiedTime": 1754269567750, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!t3RRGH6mMYYJJCcF.qWDojebJXMPIP629" }, @@ -99,7 +113,7 @@ "startRound": null, "startTurn": null }, - "description": "

When all of your Stress slots are marked, you gain a +1 bonus to your Proficiency for damage rolls.

", + "description": "

When all of your Stress slots are marked, you gain a +1 bonus to your Proficiency for damage rolls.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -107,7 +121,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754264126158, + "modifiedTime": 1754269579439, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!t3RRGH6mMYYJJCcF.i5dnpOxTtWV1J46k" } diff --git a/src/packs/domains/domainCard_Wall_Walk_1ROT08E1UVBwHLAS.json b/src/packs/domains/domainCard_Wall_Walk_1ROT08E1UVBwHLAS.json index 066600b1..e4c48b0e 100644 --- a/src/packs/domains/domainCard_Wall_Walk_1ROT08E1UVBwHLAS.json +++ b/src/packs/domains/domainCard_Wall_Walk_1ROT08E1UVBwHLAS.json @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -46,14 +47,20 @@ "img": "icons/creatures/invertebrates/spider-pink-purple.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 119, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784543, + "modifiedTime": 1754253399849, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "1ROT08E1UVBwHLAS", "sort": 3400000, "effects": [ @@ -83,13 +90,21 @@ "startRound": null, "startTurn": null }, - "description": "

Can climb on walls and ceilings as easily as walking on the ground.Β This lasts until the end of the scene or you cast Wall Walk again.

", + "description": "

Can climb on walls and ceilings as easily as walking on the ground.Β This lasts until the end of the scene or you cast Wall Walk again.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754242138461, + "modifiedTime": 1754242179921, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!1ROT08E1UVBwHLAS.s1q4O65vtoEDvvUF" } diff --git a/src/packs/domains/domainCard_Whirlwind_anO0arioUy7I5zBg.json b/src/packs/domains/domainCard_Whirlwind_anO0arioUy7I5zBg.json index 237e5736..a6013aa6 100644 --- a/src/packs/domains/domainCard_Whirlwind_anO0arioUy7I5zBg.json +++ b/src/packs/domains/domainCard_Whirlwind_anO0arioUy7I5zBg.json @@ -19,6 +19,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -41,14 +42,20 @@ "img": "icons/magic/control/buff-flight-wings-runes-purple-orange.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 121, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784545, + "modifiedTime": 1754304354572, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "anO0arioUy7I5zBg", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Wild_Fortress_9dFvcM1i3bxG3BSA.json b/src/packs/domains/domainCard_Wild_Fortress_9dFvcM1i3bxG3BSA.json index 655f0c2b..69bc5bc8 100644 --- a/src/packs/domains/domainCard_Wild_Fortress_9dFvcM1i3bxG3BSA.json +++ b/src/packs/domains/domainCard_Wild_Fortress_9dFvcM1i3bxG3BSA.json @@ -23,6 +23,7 @@ "scalable": false, "key": "hope", "value": 2, + "keyIsID": false, "step": null } ], @@ -70,14 +71,20 @@ "value": 0, "max": "3", "icon": "" - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 131, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784546, + "modifiedTime": 1754339127606, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "9dFvcM1i3bxG3BSA", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Wild_Surge_DjnKlZQYaWdQGKcK.json b/src/packs/domains/domainCard_Wild_Surge_DjnKlZQYaWdQGKcK.json index e9f9b0d2..269139cf 100644 --- a/src/packs/domains/domainCard_Wild_Surge_DjnKlZQYaWdQGKcK.json +++ b/src/packs/domains/domainCard_Wild_Surge_DjnKlZQYaWdQGKcK.json @@ -28,6 +28,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -45,14 +46,20 @@ "img": "icons/magic/control/debuff-energy-hold-levitate-green.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 131, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784547, + "modifiedTime": 1754499199811, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "DjnKlZQYaWdQGKcK", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Words_of_Discord_ZjAdi1FSNCDDHI3X.json b/src/packs/domains/domainCard_Words_of_Discord_ZjAdi1FSNCDDHI3X.json index fb3c6611..b1e6aaa2 100644 --- a/src/packs/domains/domainCard_Words_of_Discord_ZjAdi1FSNCDDHI3X.json +++ b/src/packs/domains/domainCard_Words_of_Discord_ZjAdi1FSNCDDHI3X.json @@ -87,14 +87,20 @@ "img": "icons/skills/melee/strike-axe-energy-pink.webp", "range": "melee" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 127, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784548, + "modifiedTime": 1754341685992, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_id": "ZjAdi1FSNCDDHI3X", "sort": 3400000, "effects": [ @@ -124,13 +130,21 @@ "startRound": null, "startTurn": null }, - "description": "

The target must make an attack against another adversary instead of against you or your allies. Once this attack is over, the target realizes what happened. The next time you cast Words of Discord on them, gain a βˆ’5 penalty to the Spellcast Roll.

", + "description": "

The target must make an attack against another adversary instead of against you or your allies. Once this attack is over, the target realizes what happened. The next time you cast Words of Discord on them, gain a βˆ’5 penalty to the Spellcast Roll.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754104486214, + "modifiedTime": 1754341697328, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!ZjAdi1FSNCDDHI3X.DGp7TSriFWotAvP6" } diff --git a/src/packs/domains/domainCard_Wrangle_9DwSxHoUwl8Kxj3n.json b/src/packs/domains/domainCard_Wrangle_9DwSxHoUwl8Kxj3n.json index 8cdb62b0..76b17134 100644 --- a/src/packs/domains/domainCard_Wrangle_9DwSxHoUwl8Kxj3n.json +++ b/src/packs/domains/domainCard_Wrangle_9DwSxHoUwl8Kxj3n.json @@ -57,14 +57,20 @@ "img": "icons/skills/melee/sword-engraved-glow-purple.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 123, - "artist": "" } }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784549, + "modifiedTime": 1754252503293, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "9DwSxHoUwl8Kxj3n", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/domainCard_Zone_of_Protection_lOZaRb4fCVgQsWB5.json b/src/packs/domains/domainCard_Zone_of_Protection_lOZaRb4fCVgQsWB5.json index 5669173d..c712284d 100644 --- a/src/packs/domains/domainCard_Zone_of_Protection_lOZaRb4fCVgQsWB5.json +++ b/src/packs/domains/domainCard_Zone_of_Protection_lOZaRb4fCVgQsWB5.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "OwsbTSWzKq2WJmQN", "system": { - "description": "

Make a Spellcast Roll (16). Once per long rest on a success, choose a point within Far range and create a visible zone of protection there for all allies within Very Close range of that point. When you do, place a d6 on this card with the 1 value facing up. When an ally in this zone takes damage, they reduce it by the die’s value. You then increase the die’s value by one. When the die’s value would exceed 6, this effect ends.

@Template[type:emanation|range:vc]

", + "description": "

Make a Spellcast Roll (16). Once per long rest on a success, choose a point within Far range and create a visible zone of protection there for all allies within Very Close range of that point. When you do, place a d6 on this card with the 1 value facing up. When an ally in this zone takes damage, they reduce it by the die’s value. You then increase the die’s value by one. When the die’s value would exceed 6, this effect ends.

@Template[type:emanation|range:vc]

", "domain": "splendor", "recallCost": 2, "level": 6, @@ -58,14 +58,20 @@ "range": "far" } }, - "resource": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 133, - "artist": "" - } + "resource": null }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784549, + "modifiedTime": 1754498786877, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "lOZaRb4fCVgQsWB5", "sort": 3400000, "effects": [], diff --git a/src/packs/domains/folders_Arcana_jc1HbSpJmjAsq9GX.json b/src/packs/domains/folders_Arcana_jc1HbSpJmjAsq9GX.json index 1a31aad7..7b23e2fc 100644 --- a/src/packs/domains/folders_Arcana_jc1HbSpJmjAsq9GX.json +++ b/src/packs/domains/folders_Arcana_jc1HbSpJmjAsq9GX.json @@ -8,5 +8,16 @@ "description": "", "sort": 100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717088692, + "modifiedTime": 1752681421845, + "lastModifiedBy": "YNJ4HgHtFrTI89mx" + }, "_key": "!folders!jc1HbSpJmjAsq9GX" } diff --git a/src/packs/domains/folders_Blade_gXc5zPwSyZXqrC6D.json b/src/packs/domains/folders_Blade_gXc5zPwSyZXqrC6D.json index 74dcd111..e778cb25 100644 --- a/src/packs/domains/folders_Blade_gXc5zPwSyZXqrC6D.json +++ b/src/packs/domains/folders_Blade_gXc5zPwSyZXqrC6D.json @@ -8,5 +8,16 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717097962, + "modifiedTime": 1752681424426, + "lastModifiedBy": "YNJ4HgHtFrTI89mx" + }, "_key": "!folders!gXc5zPwSyZXqrC6D" } diff --git a/src/packs/domains/folders_Bone_IMRfDo5DDrpniKKv.json b/src/packs/domains/folders_Bone_IMRfDo5DDrpniKKv.json index 15b230bb..8c42be51 100644 --- a/src/packs/domains/folders_Bone_IMRfDo5DDrpniKKv.json +++ b/src/packs/domains/folders_Bone_IMRfDo5DDrpniKKv.json @@ -8,5 +8,16 @@ "description": "", "sort": 300000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717103209, + "modifiedTime": 1752681427007, + "lastModifiedBy": "YNJ4HgHtFrTI89mx" + }, "_key": "!folders!IMRfDo5DDrpniKKv" } diff --git a/src/packs/domains/folders_Codex_q9VsNwg9r0bTn2ll.json b/src/packs/domains/folders_Codex_q9VsNwg9r0bTn2ll.json index 8136a56e..b8213451 100644 --- a/src/packs/domains/folders_Codex_q9VsNwg9r0bTn2ll.json +++ b/src/packs/domains/folders_Codex_q9VsNwg9r0bTn2ll.json @@ -8,5 +8,16 @@ "description": "", "sort": 400000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717109630, + "modifiedTime": 1752681430282, + "lastModifiedBy": "YNJ4HgHtFrTI89mx" + }, "_key": "!folders!q9VsNwg9r0bTn2ll" } diff --git a/src/packs/domains/folders_Grace_c380soh7Z1YAqzOT.json b/src/packs/domains/folders_Grace_c380soh7Z1YAqzOT.json index b5df43af..75a539c9 100644 --- a/src/packs/domains/folders_Grace_c380soh7Z1YAqzOT.json +++ b/src/packs/domains/folders_Grace_c380soh7Z1YAqzOT.json @@ -8,5 +8,16 @@ "description": "", "sort": 500000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717115983, + "modifiedTime": 1752681433948, + "lastModifiedBy": "YNJ4HgHtFrTI89mx" + }, "_key": "!folders!c380soh7Z1YAqzOT" } diff --git a/src/packs/domains/folders_Level_10_7Cs44YADBTmmtCw6.json b/src/packs/domains/folders_Level_10_7Cs44YADBTmmtCw6.json index 768837b4..808a8615 100644 --- a/src/packs/domains/folders_Level_10_7Cs44YADBTmmtCw6.json +++ b/src/packs/domains/folders_Level_10_7Cs44YADBTmmtCw6.json @@ -8,5 +8,15 @@ "description": "", "sort": 1000000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681455565 + }, "_key": "!folders!7Cs44YADBTmmtCw6" } diff --git a/src/packs/domains/folders_Level_10_7pKKYgRQAKlQAksV.json b/src/packs/domains/folders_Level_10_7pKKYgRQAKlQAksV.json index 613aa993..95aa1bc7 100644 --- a/src/packs/domains/folders_Level_10_7pKKYgRQAKlQAksV.json +++ b/src/packs/domains/folders_Level_10_7pKKYgRQAKlQAksV.json @@ -8,5 +8,15 @@ "description": "", "sort": 1000000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681470475 + }, "_key": "!folders!7pKKYgRQAKlQAksV" } diff --git a/src/packs/domains/folders_Level_10_8qr1Y2tW3vLwNZOg.json b/src/packs/domains/folders_Level_10_8qr1Y2tW3vLwNZOg.json index 2be37c32..6e0e913d 100644 --- a/src/packs/domains/folders_Level_10_8qr1Y2tW3vLwNZOg.json +++ b/src/packs/domains/folders_Level_10_8qr1Y2tW3vLwNZOg.json @@ -8,5 +8,15 @@ "description": "", "sort": 1100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681528546 + }, "_key": "!folders!8qr1Y2tW3vLwNZOg" } diff --git a/src/packs/domains/folders_Level_10_D1MFCYakdFIKDmcD.json b/src/packs/domains/folders_Level_10_D1MFCYakdFIKDmcD.json index 43e82f39..560564ec 100644 --- a/src/packs/domains/folders_Level_10_D1MFCYakdFIKDmcD.json +++ b/src/packs/domains/folders_Level_10_D1MFCYakdFIKDmcD.json @@ -8,5 +8,15 @@ "description": "", "sort": 1000000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754303642814 + }, "_key": "!folders!D1MFCYakdFIKDmcD" } diff --git a/src/packs/domains/folders_Level_10_Hs6POmXKThDXQJBn.json b/src/packs/domains/folders_Level_10_Hs6POmXKThDXQJBn.json index b0794c84..0b355d75 100644 --- a/src/packs/domains/folders_Level_10_Hs6POmXKThDXQJBn.json +++ b/src/packs/domains/folders_Level_10_Hs6POmXKThDXQJBn.json @@ -8,5 +8,15 @@ "description": "", "sort": 900000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681484833 + }, "_key": "!folders!Hs6POmXKThDXQJBn" } diff --git a/src/packs/domains/folders_Level_10_IIVaYseNJbA2ta1B.json b/src/packs/domains/folders_Level_10_IIVaYseNJbA2ta1B.json index d75358bd..9f27401d 100644 --- a/src/packs/domains/folders_Level_10_IIVaYseNJbA2ta1B.json +++ b/src/packs/domains/folders_Level_10_IIVaYseNJbA2ta1B.json @@ -8,5 +8,15 @@ "description": "", "sort": 700000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681499124 + }, "_key": "!folders!IIVaYseNJbA2ta1B" } diff --git a/src/packs/domains/folders_Level_10_nZr2hsu6Q6TlFXQn.json b/src/packs/domains/folders_Level_10_nZr2hsu6Q6TlFXQn.json index a025cdc5..481bfa2d 100644 --- a/src/packs/domains/folders_Level_10_nZr2hsu6Q6TlFXQn.json +++ b/src/packs/domains/folders_Level_10_nZr2hsu6Q6TlFXQn.json @@ -8,5 +8,15 @@ "description": "", "sort": 1000000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681560360 + }, "_key": "!folders!nZr2hsu6Q6TlFXQn" } diff --git a/src/packs/domains/folders_Level_10_pPzU9WOQNv3ckO1w.json b/src/packs/domains/folders_Level_10_pPzU9WOQNv3ckO1w.json index 39b7dea3..1f1931b2 100644 --- a/src/packs/domains/folders_Level_10_pPzU9WOQNv3ckO1w.json +++ b/src/packs/domains/folders_Level_10_pPzU9WOQNv3ckO1w.json @@ -8,5 +8,15 @@ "description": "", "sort": 2000000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499337594 + }, "_key": "!folders!pPzU9WOQNv3ckO1w" } diff --git a/src/packs/domains/folders_Level_10_wdhWWqWlPiBxtsvr.json b/src/packs/domains/folders_Level_10_wdhWWqWlPiBxtsvr.json index d1250a53..2f663e1a 100644 --- a/src/packs/domains/folders_Level_10_wdhWWqWlPiBxtsvr.json +++ b/src/packs/domains/folders_Level_10_wdhWWqWlPiBxtsvr.json @@ -8,5 +8,15 @@ "description": "", "sort": 1000000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681517285 + }, "_key": "!folders!wdhWWqWlPiBxtsvr" } diff --git a/src/packs/domains/folders_Level_1_9Xc6KzNyjDtTGZkp.json b/src/packs/domains/folders_Level_1_9Xc6KzNyjDtTGZkp.json index 095ff6fb..938db4f2 100644 --- a/src/packs/domains/folders_Level_1_9Xc6KzNyjDtTGZkp.json +++ b/src/packs/domains/folders_Level_1_9Xc6KzNyjDtTGZkp.json @@ -8,5 +8,15 @@ "description": "", "sort": 100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681470475 + }, "_key": "!folders!9Xc6KzNyjDtTGZkp" } diff --git a/src/packs/domains/folders_Level_1_EJoXzO85rG5EiZsh.json b/src/packs/domains/folders_Level_1_EJoXzO85rG5EiZsh.json index bc89e481..9423f226 100644 --- a/src/packs/domains/folders_Level_1_EJoXzO85rG5EiZsh.json +++ b/src/packs/domains/folders_Level_1_EJoXzO85rG5EiZsh.json @@ -8,5 +8,15 @@ "description": "", "sort": 1100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499330683 + }, "_key": "!folders!EJoXzO85rG5EiZsh" } diff --git a/src/packs/domains/folders_Level_1_LlWJaBZOKh0Ot2kD.json b/src/packs/domains/folders_Level_1_LlWJaBZOKh0Ot2kD.json index b13ddae8..8e95ba32 100644 --- a/src/packs/domains/folders_Level_1_LlWJaBZOKh0Ot2kD.json +++ b/src/packs/domains/folders_Level_1_LlWJaBZOKh0Ot2kD.json @@ -8,5 +8,15 @@ "description": "", "sort": 100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681560360 + }, "_key": "!folders!LlWJaBZOKh0Ot2kD" } diff --git a/src/packs/domains/folders_Level_1_PeeIjbkBv41613yZ.json b/src/packs/domains/folders_Level_1_PeeIjbkBv41613yZ.json index e1fcedc0..c922aaea 100644 --- a/src/packs/domains/folders_Level_1_PeeIjbkBv41613yZ.json +++ b/src/packs/domains/folders_Level_1_PeeIjbkBv41613yZ.json @@ -8,5 +8,15 @@ "description": "", "sort": 100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681481088 + }, "_key": "!folders!PeeIjbkBv41613yZ" } diff --git a/src/packs/domains/folders_Level_1_QpOL7jPbMBzH96qR.json b/src/packs/domains/folders_Level_1_QpOL7jPbMBzH96qR.json index 230f944e..adecc370 100644 --- a/src/packs/domains/folders_Level_1_QpOL7jPbMBzH96qR.json +++ b/src/packs/domains/folders_Level_1_QpOL7jPbMBzH96qR.json @@ -8,5 +8,15 @@ "description": "", "sort": 100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754303642814 + }, "_key": "!folders!QpOL7jPbMBzH96qR" } diff --git a/src/packs/domains/folders_Level_1_nVCKcZkcoEivYJaF.json b/src/packs/domains/folders_Level_1_nVCKcZkcoEivYJaF.json index 1e4f6b0e..35d900eb 100644 --- a/src/packs/domains/folders_Level_1_nVCKcZkcoEivYJaF.json +++ b/src/packs/domains/folders_Level_1_nVCKcZkcoEivYJaF.json @@ -8,5 +8,15 @@ "description": "", "sort": 100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681517285 + }, "_key": "!folders!nVCKcZkcoEivYJaF" } diff --git a/src/packs/domains/folders_Level_1_o7kvw9NRGvDZSce2.json b/src/packs/domains/folders_Level_1_o7kvw9NRGvDZSce2.json index 2ebf44eb..18139555 100644 --- a/src/packs/domains/folders_Level_1_o7kvw9NRGvDZSce2.json +++ b/src/packs/domains/folders_Level_1_o7kvw9NRGvDZSce2.json @@ -8,5 +8,15 @@ "description": "", "sort": 100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681455565 + }, "_key": "!folders!o7kvw9NRGvDZSce2" } diff --git a/src/packs/domains/folders_Level_1_sCiN7DoysdKceIMd.json b/src/packs/domains/folders_Level_1_sCiN7DoysdKceIMd.json index c0d534e1..e51846c2 100644 --- a/src/packs/domains/folders_Level_1_sCiN7DoysdKceIMd.json +++ b/src/packs/domains/folders_Level_1_sCiN7DoysdKceIMd.json @@ -8,5 +8,15 @@ "description": "", "sort": 100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681523539 + }, "_key": "!folders!sCiN7DoysdKceIMd" } diff --git a/src/packs/domains/folders_Level_1_tqhasjtHBX0F20lN.json b/src/packs/domains/folders_Level_1_tqhasjtHBX0F20lN.json index c7e24b43..8bc43a0c 100644 --- a/src/packs/domains/folders_Level_1_tqhasjtHBX0F20lN.json +++ b/src/packs/domains/folders_Level_1_tqhasjtHBX0F20lN.json @@ -8,5 +8,15 @@ "description": "", "sort": 100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681499124 + }, "_key": "!folders!tqhasjtHBX0F20lN" } diff --git a/src/packs/domains/folders_Level_2_2yh8wuYprOyswf0r.json b/src/packs/domains/folders_Level_2_2yh8wuYprOyswf0r.json index 87b69517..8a8272a7 100644 --- a/src/packs/domains/folders_Level_2_2yh8wuYprOyswf0r.json +++ b/src/packs/domains/folders_Level_2_2yh8wuYprOyswf0r.json @@ -8,5 +8,15 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681560360 + }, "_key": "!folders!2yh8wuYprOyswf0r" } diff --git a/src/packs/domains/folders_Level_2_Abn46nCQst6kpGeA.json b/src/packs/domains/folders_Level_2_Abn46nCQst6kpGeA.json index 0aecde2a..5b1720b1 100644 --- a/src/packs/domains/folders_Level_2_Abn46nCQst6kpGeA.json +++ b/src/packs/domains/folders_Level_2_Abn46nCQst6kpGeA.json @@ -8,5 +8,15 @@ "description": "", "sort": 150000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681524974 + }, "_key": "!folders!Abn46nCQst6kpGeA" } diff --git a/src/packs/domains/folders_Level_2_Q9rmrfeKqcqBNnWc.json b/src/packs/domains/folders_Level_2_Q9rmrfeKqcqBNnWc.json index 8d6645af..ccb0f8c9 100644 --- a/src/packs/domains/folders_Level_2_Q9rmrfeKqcqBNnWc.json +++ b/src/packs/domains/folders_Level_2_Q9rmrfeKqcqBNnWc.json @@ -8,5 +8,15 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681481088 + }, "_key": "!folders!Q9rmrfeKqcqBNnWc" } diff --git a/src/packs/domains/folders_Level_2_j9i2Q6Z7Z82udHn1.json b/src/packs/domains/folders_Level_2_j9i2Q6Z7Z82udHn1.json index b9412ac4..76b20c20 100644 --- a/src/packs/domains/folders_Level_2_j9i2Q6Z7Z82udHn1.json +++ b/src/packs/domains/folders_Level_2_j9i2Q6Z7Z82udHn1.json @@ -8,5 +8,15 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681499124 + }, "_key": "!folders!j9i2Q6Z7Z82udHn1" } diff --git a/src/packs/domains/folders_Level_2_o7t2fsAmRxKLoHrO.json b/src/packs/domains/folders_Level_2_o7t2fsAmRxKLoHrO.json index b242e121..7b7d4808 100644 --- a/src/packs/domains/folders_Level_2_o7t2fsAmRxKLoHrO.json +++ b/src/packs/domains/folders_Level_2_o7t2fsAmRxKLoHrO.json @@ -8,5 +8,15 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681470475 + }, "_key": "!folders!o7t2fsAmRxKLoHrO" } diff --git a/src/packs/domains/folders_Level_2_pk4xXE8D3vTawrqj.json b/src/packs/domains/folders_Level_2_pk4xXE8D3vTawrqj.json index 878ba9ef..d9a97198 100644 --- a/src/packs/domains/folders_Level_2_pk4xXE8D3vTawrqj.json +++ b/src/packs/domains/folders_Level_2_pk4xXE8D3vTawrqj.json @@ -8,5 +8,15 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754303642814 + }, "_key": "!folders!pk4xXE8D3vTawrqj" } diff --git a/src/packs/domains/folders_Level_2_pu3xD4rEkdfdAvGc.json b/src/packs/domains/folders_Level_2_pu3xD4rEkdfdAvGc.json index 09447d59..59464076 100644 --- a/src/packs/domains/folders_Level_2_pu3xD4rEkdfdAvGc.json +++ b/src/packs/domains/folders_Level_2_pu3xD4rEkdfdAvGc.json @@ -8,5 +8,15 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681517285 + }, "_key": "!folders!pu3xD4rEkdfdAvGc" } diff --git a/src/packs/domains/folders_Level_2_u8Yz2hUTaF3N2fFT.json b/src/packs/domains/folders_Level_2_u8Yz2hUTaF3N2fFT.json index cd5666c7..783374ab 100644 --- a/src/packs/domains/folders_Level_2_u8Yz2hUTaF3N2fFT.json +++ b/src/packs/domains/folders_Level_2_u8Yz2hUTaF3N2fFT.json @@ -8,5 +8,15 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681455565 + }, "_key": "!folders!u8Yz2hUTaF3N2fFT" } diff --git a/src/packs/domains/folders_Level_2_xZrCYAd05ayNu1yW.json b/src/packs/domains/folders_Level_2_xZrCYAd05ayNu1yW.json index 30a80b55..7a56682e 100644 --- a/src/packs/domains/folders_Level_2_xZrCYAd05ayNu1yW.json +++ b/src/packs/domains/folders_Level_2_xZrCYAd05ayNu1yW.json @@ -8,5 +8,15 @@ "description": "", "sort": 1200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499331503 + }, "_key": "!folders!xZrCYAd05ayNu1yW" } diff --git a/src/packs/domains/folders_Level_3_7XeaYZPMB0SopAfo.json b/src/packs/domains/folders_Level_3_7XeaYZPMB0SopAfo.json index b7482c5b..6ae67cf4 100644 --- a/src/packs/domains/folders_Level_3_7XeaYZPMB0SopAfo.json +++ b/src/packs/domains/folders_Level_3_7XeaYZPMB0SopAfo.json @@ -8,5 +8,15 @@ "description": "", "sort": 300000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681499124 + }, "_key": "!folders!7XeaYZPMB0SopAfo" } diff --git a/src/packs/domains/folders_Level_3_8ZfL09F8MiOEUzzw.json b/src/packs/domains/folders_Level_3_8ZfL09F8MiOEUzzw.json index fd9baebd..ba79f93a 100644 --- a/src/packs/domains/folders_Level_3_8ZfL09F8MiOEUzzw.json +++ b/src/packs/domains/folders_Level_3_8ZfL09F8MiOEUzzw.json @@ -8,5 +8,15 @@ "description": "", "sort": 300000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681560360 + }, "_key": "!folders!8ZfL09F8MiOEUzzw" } diff --git a/src/packs/domains/folders_Level_3_GhLhMfmSgGqS9bwU.json b/src/packs/domains/folders_Level_3_GhLhMfmSgGqS9bwU.json index bfff7ce3..35ce3d60 100644 --- a/src/packs/domains/folders_Level_3_GhLhMfmSgGqS9bwU.json +++ b/src/packs/domains/folders_Level_3_GhLhMfmSgGqS9bwU.json @@ -8,5 +8,15 @@ "description": "", "sort": 300000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681517285 + }, "_key": "!folders!GhLhMfmSgGqS9bwU" } diff --git a/src/packs/domains/folders_Level_3_Oo9EkkF7CDD3QZEG.json b/src/packs/domains/folders_Level_3_Oo9EkkF7CDD3QZEG.json index 40ea261e..88442df9 100644 --- a/src/packs/domains/folders_Level_3_Oo9EkkF7CDD3QZEG.json +++ b/src/packs/domains/folders_Level_3_Oo9EkkF7CDD3QZEG.json @@ -8,5 +8,15 @@ "description": "", "sort": 300000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754303642814 + }, "_key": "!folders!Oo9EkkF7CDD3QZEG" } diff --git a/src/packs/domains/folders_Level_3_eR7sP5jQwfCLORUe.json b/src/packs/domains/folders_Level_3_eR7sP5jQwfCLORUe.json index 88cea30c..93800da2 100644 --- a/src/packs/domains/folders_Level_3_eR7sP5jQwfCLORUe.json +++ b/src/packs/domains/folders_Level_3_eR7sP5jQwfCLORUe.json @@ -8,5 +8,15 @@ "description": "", "sort": 300000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681481088 + }, "_key": "!folders!eR7sP5jQwfCLORUe" } diff --git a/src/packs/domains/folders_Level_3_hoDIPBzwYPxiSXGU.json b/src/packs/domains/folders_Level_3_hoDIPBzwYPxiSXGU.json index 60e6751e..3c0d10f6 100644 --- a/src/packs/domains/folders_Level_3_hoDIPBzwYPxiSXGU.json +++ b/src/packs/domains/folders_Level_3_hoDIPBzwYPxiSXGU.json @@ -8,5 +8,15 @@ "description": "", "sort": 175000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681526153 + }, "_key": "!folders!hoDIPBzwYPxiSXGU" } diff --git a/src/packs/domains/folders_Level_3_mOv6BGhJAeGrzA84.json b/src/packs/domains/folders_Level_3_mOv6BGhJAeGrzA84.json index 361e0652..4e2a9f34 100644 --- a/src/packs/domains/folders_Level_3_mOv6BGhJAeGrzA84.json +++ b/src/packs/domains/folders_Level_3_mOv6BGhJAeGrzA84.json @@ -8,5 +8,15 @@ "description": "", "sort": 300000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681455565 + }, "_key": "!folders!mOv6BGhJAeGrzA84" } diff --git a/src/packs/domains/folders_Level_3_uXGugK72AffddFdH.json b/src/packs/domains/folders_Level_3_uXGugK72AffddFdH.json index 9c48615f..63c28dc7 100644 --- a/src/packs/domains/folders_Level_3_uXGugK72AffddFdH.json +++ b/src/packs/domains/folders_Level_3_uXGugK72AffddFdH.json @@ -8,5 +8,15 @@ "description": "", "sort": 1300000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499332151 + }, "_key": "!folders!uXGugK72AffddFdH" } diff --git a/src/packs/domains/folders_Level_3_wWL9mV6i2EGX5xHS.json b/src/packs/domains/folders_Level_3_wWL9mV6i2EGX5xHS.json index 3a4b0055..84efe707 100644 --- a/src/packs/domains/folders_Level_3_wWL9mV6i2EGX5xHS.json +++ b/src/packs/domains/folders_Level_3_wWL9mV6i2EGX5xHS.json @@ -8,5 +8,15 @@ "description": "", "sort": 300000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681470475 + }, "_key": "!folders!wWL9mV6i2EGX5xHS" } diff --git a/src/packs/domains/folders_Level_4_1e5Sn8OXxEQ57GSD.json b/src/packs/domains/folders_Level_4_1e5Sn8OXxEQ57GSD.json index 4b5d2f1e..3b46d220 100644 --- a/src/packs/domains/folders_Level_4_1e5Sn8OXxEQ57GSD.json +++ b/src/packs/domains/folders_Level_4_1e5Sn8OXxEQ57GSD.json @@ -8,5 +8,15 @@ "description": "", "sort": 400000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681455565 + }, "_key": "!folders!1e5Sn8OXxEQ57GSD" } diff --git a/src/packs/domains/folders_Level_4_3e8kCsLzLxiACJDb.json b/src/packs/domains/folders_Level_4_3e8kCsLzLxiACJDb.json index 7b4543ac..ec28b419 100644 --- a/src/packs/domains/folders_Level_4_3e8kCsLzLxiACJDb.json +++ b/src/packs/domains/folders_Level_4_3e8kCsLzLxiACJDb.json @@ -8,5 +8,15 @@ "description": "", "sort": 400000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681481088 + }, "_key": "!folders!3e8kCsLzLxiACJDb" } diff --git a/src/packs/domains/folders_Level_4_BJIiOIWAQUz5zuqo.json b/src/packs/domains/folders_Level_4_BJIiOIWAQUz5zuqo.json index a59c97e4..7a709b1b 100644 --- a/src/packs/domains/folders_Level_4_BJIiOIWAQUz5zuqo.json +++ b/src/packs/domains/folders_Level_4_BJIiOIWAQUz5zuqo.json @@ -8,5 +8,15 @@ "description": "", "sort": 1400000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499332813 + }, "_key": "!folders!BJIiOIWAQUz5zuqo" } diff --git a/src/packs/domains/folders_Level_4_WTdOLLkQyPdg0KWU.json b/src/packs/domains/folders_Level_4_WTdOLLkQyPdg0KWU.json index 46b6fc9e..36bd9b1b 100644 --- a/src/packs/domains/folders_Level_4_WTdOLLkQyPdg0KWU.json +++ b/src/packs/domains/folders_Level_4_WTdOLLkQyPdg0KWU.json @@ -8,5 +8,15 @@ "description": "", "sort": 187500, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681531244 + }, "_key": "!folders!WTdOLLkQyPdg0KWU" } diff --git a/src/packs/domains/folders_Level_4_cOZgzLQRGNnBzsHT.json b/src/packs/domains/folders_Level_4_cOZgzLQRGNnBzsHT.json index a2b4135b..20f61024 100644 --- a/src/packs/domains/folders_Level_4_cOZgzLQRGNnBzsHT.json +++ b/src/packs/domains/folders_Level_4_cOZgzLQRGNnBzsHT.json @@ -8,5 +8,15 @@ "description": "", "sort": 400000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754303642814 + }, "_key": "!folders!cOZgzLQRGNnBzsHT" } diff --git a/src/packs/domains/folders_Level_4_rUGDM9JvGfhh9a2Y.json b/src/packs/domains/folders_Level_4_rUGDM9JvGfhh9a2Y.json index eeb9e8cf..2a777dba 100644 --- a/src/packs/domains/folders_Level_4_rUGDM9JvGfhh9a2Y.json +++ b/src/packs/domains/folders_Level_4_rUGDM9JvGfhh9a2Y.json @@ -8,5 +8,15 @@ "description": "", "sort": 400000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681499124 + }, "_key": "!folders!rUGDM9JvGfhh9a2Y" } diff --git a/src/packs/domains/folders_Level_4_thP6nUk0nkrNcpXY.json b/src/packs/domains/folders_Level_4_thP6nUk0nkrNcpXY.json index 26cb7e73..43a43018 100644 --- a/src/packs/domains/folders_Level_4_thP6nUk0nkrNcpXY.json +++ b/src/packs/domains/folders_Level_4_thP6nUk0nkrNcpXY.json @@ -8,5 +8,15 @@ "description": "", "sort": 400000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681517285 + }, "_key": "!folders!thP6nUk0nkrNcpXY" } diff --git a/src/packs/domains/folders_Level_4_vAZKNDtAafd7HDWV.json b/src/packs/domains/folders_Level_4_vAZKNDtAafd7HDWV.json index 94e53c2e..f9440b6d 100644 --- a/src/packs/domains/folders_Level_4_vAZKNDtAafd7HDWV.json +++ b/src/packs/domains/folders_Level_4_vAZKNDtAafd7HDWV.json @@ -8,5 +8,15 @@ "description": "", "sort": 400000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681560360 + }, "_key": "!folders!vAZKNDtAafd7HDWV" } diff --git a/src/packs/domains/folders_Level_4_yalAnCU3SndrYImF.json b/src/packs/domains/folders_Level_4_yalAnCU3SndrYImF.json index ab0ba963..c3588172 100644 --- a/src/packs/domains/folders_Level_4_yalAnCU3SndrYImF.json +++ b/src/packs/domains/folders_Level_4_yalAnCU3SndrYImF.json @@ -8,5 +8,15 @@ "description": "", "sort": 400000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681470475 + }, "_key": "!folders!yalAnCU3SndrYImF" } diff --git a/src/packs/domains/folders_Level_5_6gA7SmNIblkMaYgr.json b/src/packs/domains/folders_Level_5_6gA7SmNIblkMaYgr.json index 94410399..dcd919f7 100644 --- a/src/packs/domains/folders_Level_5_6gA7SmNIblkMaYgr.json +++ b/src/packs/domains/folders_Level_5_6gA7SmNIblkMaYgr.json @@ -8,5 +8,15 @@ "description": "", "sort": 500000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681517285 + }, "_key": "!folders!6gA7SmNIblkMaYgr" } diff --git a/src/packs/domains/folders_Level_5_8erksbTp7ic6in4I.json b/src/packs/domains/folders_Level_5_8erksbTp7ic6in4I.json index 74061ecc..d726c6d4 100644 --- a/src/packs/domains/folders_Level_5_8erksbTp7ic6in4I.json +++ b/src/packs/domains/folders_Level_5_8erksbTp7ic6in4I.json @@ -8,5 +8,15 @@ "description": "", "sort": 193750, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681532576 + }, "_key": "!folders!8erksbTp7ic6in4I" } diff --git a/src/packs/domains/folders_Level_5_BQ1L4EiwOs84Xysp.json b/src/packs/domains/folders_Level_5_BQ1L4EiwOs84Xysp.json index 601e04b7..9abfd232 100644 --- a/src/packs/domains/folders_Level_5_BQ1L4EiwOs84Xysp.json +++ b/src/packs/domains/folders_Level_5_BQ1L4EiwOs84Xysp.json @@ -8,5 +8,15 @@ "description": "", "sort": 500000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681481088 + }, "_key": "!folders!BQ1L4EiwOs84Xysp" } diff --git a/src/packs/domains/folders_Level_5_Emnx4o1DWGTVKoAg.json b/src/packs/domains/folders_Level_5_Emnx4o1DWGTVKoAg.json index 0a821a2d..d47108d4 100644 --- a/src/packs/domains/folders_Level_5_Emnx4o1DWGTVKoAg.json +++ b/src/packs/domains/folders_Level_5_Emnx4o1DWGTVKoAg.json @@ -8,5 +8,15 @@ "description": "", "sort": 500000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681470475 + }, "_key": "!folders!Emnx4o1DWGTVKoAg" } diff --git a/src/packs/domains/folders_Level_5_Jbw6Teaha6So9tym.json b/src/packs/domains/folders_Level_5_Jbw6Teaha6So9tym.json index 6f1de7dd..faf5c3c1 100644 --- a/src/packs/domains/folders_Level_5_Jbw6Teaha6So9tym.json +++ b/src/packs/domains/folders_Level_5_Jbw6Teaha6So9tym.json @@ -8,5 +8,15 @@ "description": "", "sort": 450000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681561395 + }, "_key": "!folders!Jbw6Teaha6So9tym" } diff --git a/src/packs/domains/folders_Level_5_XDSp0FdiYDVO0tfw.json b/src/packs/domains/folders_Level_5_XDSp0FdiYDVO0tfw.json index a46c721a..0895c2eb 100644 --- a/src/packs/domains/folders_Level_5_XDSp0FdiYDVO0tfw.json +++ b/src/packs/domains/folders_Level_5_XDSp0FdiYDVO0tfw.json @@ -8,5 +8,15 @@ "description": "", "sort": 500000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754303642814 + }, "_key": "!folders!XDSp0FdiYDVO0tfw" } diff --git a/src/packs/domains/folders_Level_5_ZZHIbaynhzVArA1p.json b/src/packs/domains/folders_Level_5_ZZHIbaynhzVArA1p.json index 47196747..ae30d6cf 100644 --- a/src/packs/domains/folders_Level_5_ZZHIbaynhzVArA1p.json +++ b/src/packs/domains/folders_Level_5_ZZHIbaynhzVArA1p.json @@ -8,5 +8,15 @@ "description": "", "sort": 1500000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499333460 + }, "_key": "!folders!ZZHIbaynhzVArA1p" } diff --git a/src/packs/domains/folders_Level_5_l387HKojhqcDAV0b.json b/src/packs/domains/folders_Level_5_l387HKojhqcDAV0b.json index ad53623c..5d511b9b 100644 --- a/src/packs/domains/folders_Level_5_l387HKojhqcDAV0b.json +++ b/src/packs/domains/folders_Level_5_l387HKojhqcDAV0b.json @@ -8,5 +8,15 @@ "description": "", "sort": 500000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681455565 + }, "_key": "!folders!l387HKojhqcDAV0b" } diff --git a/src/packs/domains/folders_Level_5_pDtffkb0SMv1O8pL.json b/src/packs/domains/folders_Level_5_pDtffkb0SMv1O8pL.json index 34149c7f..e82949a4 100644 --- a/src/packs/domains/folders_Level_5_pDtffkb0SMv1O8pL.json +++ b/src/packs/domains/folders_Level_5_pDtffkb0SMv1O8pL.json @@ -8,5 +8,15 @@ "description": "", "sort": 450000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681500549 + }, "_key": "!folders!pDtffkb0SMv1O8pL" } diff --git a/src/packs/domains/folders_Level_6_EiP5dLozOFZKIeWN.json b/src/packs/domains/folders_Level_6_EiP5dLozOFZKIeWN.json index 5a58c052..8cdfbace 100644 --- a/src/packs/domains/folders_Level_6_EiP5dLozOFZKIeWN.json +++ b/src/packs/domains/folders_Level_6_EiP5dLozOFZKIeWN.json @@ -8,5 +8,15 @@ "description": "", "sort": 600000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681470475 + }, "_key": "!folders!EiP5dLozOFZKIeWN" } diff --git a/src/packs/domains/folders_Level_6_FcMclsLDy86EicA6.json b/src/packs/domains/folders_Level_6_FcMclsLDy86EicA6.json index ee9d0ab8..59e4094b 100644 --- a/src/packs/domains/folders_Level_6_FcMclsLDy86EicA6.json +++ b/src/packs/domains/folders_Level_6_FcMclsLDy86EicA6.json @@ -8,5 +8,15 @@ "description": "", "sort": 475000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681502395 + }, "_key": "!folders!FcMclsLDy86EicA6" } diff --git a/src/packs/domains/folders_Level_6_OwsbTSWzKq2WJmQN.json b/src/packs/domains/folders_Level_6_OwsbTSWzKq2WJmQN.json index 301b511a..2d8173ba 100644 --- a/src/packs/domains/folders_Level_6_OwsbTSWzKq2WJmQN.json +++ b/src/packs/domains/folders_Level_6_OwsbTSWzKq2WJmQN.json @@ -8,5 +8,15 @@ "description": "", "sort": 475000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681562673 + }, "_key": "!folders!OwsbTSWzKq2WJmQN" } diff --git a/src/packs/domains/folders_Level_6_VgADdqYn9nS9G1Us.json b/src/packs/domains/folders_Level_6_VgADdqYn9nS9G1Us.json index e25ebd7b..16c445eb 100644 --- a/src/packs/domains/folders_Level_6_VgADdqYn9nS9G1Us.json +++ b/src/packs/domains/folders_Level_6_VgADdqYn9nS9G1Us.json @@ -8,5 +8,15 @@ "description": "", "sort": 600000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681517285 + }, "_key": "!folders!VgADdqYn9nS9G1Us" } diff --git a/src/packs/domains/folders_Level_6_gqnmAgerh7HhNo7t.json b/src/packs/domains/folders_Level_6_gqnmAgerh7HhNo7t.json index 8d2db98c..55b84aa3 100644 --- a/src/packs/domains/folders_Level_6_gqnmAgerh7HhNo7t.json +++ b/src/packs/domains/folders_Level_6_gqnmAgerh7HhNo7t.json @@ -8,5 +8,15 @@ "description": "", "sort": 550000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681457358 + }, "_key": "!folders!gqnmAgerh7HhNo7t" } diff --git a/src/packs/domains/folders_Level_6_nKCmeAn7ESsb4byE.json b/src/packs/domains/folders_Level_6_nKCmeAn7ESsb4byE.json index d5ba409f..f9a7e7f3 100644 --- a/src/packs/domains/folders_Level_6_nKCmeAn7ESsb4byE.json +++ b/src/packs/domains/folders_Level_6_nKCmeAn7ESsb4byE.json @@ -8,5 +8,15 @@ "description": "", "sort": 600000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754303642814 + }, "_key": "!folders!nKCmeAn7ESsb4byE" } diff --git a/src/packs/domains/folders_Level_6_pYEavNqteiQepvvD.json b/src/packs/domains/folders_Level_6_pYEavNqteiQepvvD.json index c738af55..a63237d5 100644 --- a/src/packs/domains/folders_Level_6_pYEavNqteiQepvvD.json +++ b/src/packs/domains/folders_Level_6_pYEavNqteiQepvvD.json @@ -8,5 +8,15 @@ "description": "", "sort": 600000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681481088 + }, "_key": "!folders!pYEavNqteiQepvvD" } diff --git a/src/packs/domains/folders_Level_6_u5Lq2kfC8LlDAGDC.json b/src/packs/domains/folders_Level_6_u5Lq2kfC8LlDAGDC.json index 51c0f209..cf8ffd59 100644 --- a/src/packs/domains/folders_Level_6_u5Lq2kfC8LlDAGDC.json +++ b/src/packs/domains/folders_Level_6_u5Lq2kfC8LlDAGDC.json @@ -8,5 +8,15 @@ "description": "", "sort": 1600000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499335115 + }, "_key": "!folders!u5Lq2kfC8LlDAGDC" } diff --git a/src/packs/domains/folders_Level_6_xuGz0QPNlkTOV0rV.json b/src/packs/domains/folders_Level_6_xuGz0QPNlkTOV0rV.json index 3ea55e7c..4b94f340 100644 --- a/src/packs/domains/folders_Level_6_xuGz0QPNlkTOV0rV.json +++ b/src/packs/domains/folders_Level_6_xuGz0QPNlkTOV0rV.json @@ -8,5 +8,15 @@ "description": "", "sort": 196875, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681533952 + }, "_key": "!folders!xuGz0QPNlkTOV0rV" } diff --git a/src/packs/domains/folders_Level_7_HAGbPLHwm0UozDeG.json b/src/packs/domains/folders_Level_7_HAGbPLHwm0UozDeG.json index 233e3756..f120077d 100644 --- a/src/packs/domains/folders_Level_7_HAGbPLHwm0UozDeG.json +++ b/src/packs/domains/folders_Level_7_HAGbPLHwm0UozDeG.json @@ -8,5 +8,15 @@ "description": "", "sort": 700000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681470475 + }, "_key": "!folders!HAGbPLHwm0UozDeG" } diff --git a/src/packs/domains/folders_Level_7_ML2JusN36oJoR8QA.json b/src/packs/domains/folders_Level_7_ML2JusN36oJoR8QA.json index 800babd6..2850c4a7 100644 --- a/src/packs/domains/folders_Level_7_ML2JusN36oJoR8QA.json +++ b/src/packs/domains/folders_Level_7_ML2JusN36oJoR8QA.json @@ -8,5 +8,15 @@ "description": "", "sort": 198438, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681534831 + }, "_key": "!folders!ML2JusN36oJoR8QA" } diff --git a/src/packs/domains/folders_Level_7_W81LnTWzwmoaycTl.json b/src/packs/domains/folders_Level_7_W81LnTWzwmoaycTl.json index d27cedd6..1f5dacd2 100644 --- a/src/packs/domains/folders_Level_7_W81LnTWzwmoaycTl.json +++ b/src/packs/domains/folders_Level_7_W81LnTWzwmoaycTl.json @@ -8,5 +8,15 @@ "description": "", "sort": 650000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681518169 + }, "_key": "!folders!W81LnTWzwmoaycTl" } diff --git a/src/packs/domains/folders_Level_7_Z6oglw8LIOrtBcN6.json b/src/packs/domains/folders_Level_7_Z6oglw8LIOrtBcN6.json index 88272128..1705b312 100644 --- a/src/packs/domains/folders_Level_7_Z6oglw8LIOrtBcN6.json +++ b/src/packs/domains/folders_Level_7_Z6oglw8LIOrtBcN6.json @@ -8,5 +8,15 @@ "description": "", "sort": 487500, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681563535 + }, "_key": "!folders!Z6oglw8LIOrtBcN6" } diff --git a/src/packs/domains/folders_Level_7_bCjkysrofWPiZqNh.json b/src/packs/domains/folders_Level_7_bCjkysrofWPiZqNh.json index 80de81a9..a472a860 100644 --- a/src/packs/domains/folders_Level_7_bCjkysrofWPiZqNh.json +++ b/src/packs/domains/folders_Level_7_bCjkysrofWPiZqNh.json @@ -8,5 +8,15 @@ "description": "", "sort": 575000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681458374 + }, "_key": "!folders!bCjkysrofWPiZqNh" } diff --git a/src/packs/domains/folders_Level_7_gEVGjjPrjqxxZkb5.json b/src/packs/domains/folders_Level_7_gEVGjjPrjqxxZkb5.json index b746f008..1b10b32e 100644 --- a/src/packs/domains/folders_Level_7_gEVGjjPrjqxxZkb5.json +++ b/src/packs/domains/folders_Level_7_gEVGjjPrjqxxZkb5.json @@ -8,5 +8,15 @@ "description": "", "sort": 1700000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499335821 + }, "_key": "!folders!gEVGjjPrjqxxZkb5" } diff --git a/src/packs/domains/folders_Level_7_hh2vkggcAQ0QUE6C.json b/src/packs/domains/folders_Level_7_hh2vkggcAQ0QUE6C.json index d81ab209..80495f9e 100644 --- a/src/packs/domains/folders_Level_7_hh2vkggcAQ0QUE6C.json +++ b/src/packs/domains/folders_Level_7_hh2vkggcAQ0QUE6C.json @@ -8,5 +8,15 @@ "description": "", "sort": 487500, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681503815 + }, "_key": "!folders!hh2vkggcAQ0QUE6C" } diff --git a/src/packs/domains/folders_Level_7_i5iDLXMZLc0ckWI5.json b/src/packs/domains/folders_Level_7_i5iDLXMZLc0ckWI5.json index 28170190..cd1ca369 100644 --- a/src/packs/domains/folders_Level_7_i5iDLXMZLc0ckWI5.json +++ b/src/packs/domains/folders_Level_7_i5iDLXMZLc0ckWI5.json @@ -8,5 +8,15 @@ "description": "", "sort": 650000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681482227 + }, "_key": "!folders!i5iDLXMZLc0ckWI5" } diff --git a/src/packs/domains/folders_Level_7_kj3gwg5bmCqwFYze.json b/src/packs/domains/folders_Level_7_kj3gwg5bmCqwFYze.json index bcadf53c..f4ca4b03 100644 --- a/src/packs/domains/folders_Level_7_kj3gwg5bmCqwFYze.json +++ b/src/packs/domains/folders_Level_7_kj3gwg5bmCqwFYze.json @@ -8,5 +8,15 @@ "description": "", "sort": 700000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754303642814 + }, "_key": "!folders!kj3gwg5bmCqwFYze" } diff --git a/src/packs/domains/folders_Level_8_7O1tTswJMNdPgLsx.json b/src/packs/domains/folders_Level_8_7O1tTswJMNdPgLsx.json index ec1e0ae3..cc14a272 100644 --- a/src/packs/domains/folders_Level_8_7O1tTswJMNdPgLsx.json +++ b/src/packs/domains/folders_Level_8_7O1tTswJMNdPgLsx.json @@ -8,5 +8,15 @@ "description": "", "sort": 700000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681517285 + }, "_key": "!folders!7O1tTswJMNdPgLsx" } diff --git a/src/packs/domains/folders_Level_8_8bWpGblWODdf8mDR.json b/src/packs/domains/folders_Level_8_8bWpGblWODdf8mDR.json index 063b9396..fe6135bf 100644 --- a/src/packs/domains/folders_Level_8_8bWpGblWODdf8mDR.json +++ b/src/packs/domains/folders_Level_8_8bWpGblWODdf8mDR.json @@ -8,5 +8,15 @@ "description": "", "sort": 500000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681499124 + }, "_key": "!folders!8bWpGblWODdf8mDR" } diff --git a/src/packs/domains/folders_Level_8_A00z8Q8B3aKApKzI.json b/src/packs/domains/folders_Level_8_A00z8Q8B3aKApKzI.json index 71112291..6a82a99d 100644 --- a/src/packs/domains/folders_Level_8_A00z8Q8B3aKApKzI.json +++ b/src/packs/domains/folders_Level_8_A00z8Q8B3aKApKzI.json @@ -8,5 +8,15 @@ "description": "", "sort": 500000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681560360 + }, "_key": "!folders!A00z8Q8B3aKApKzI" } diff --git a/src/packs/domains/folders_Level_8_FUzQxkv4gFc46SIs.json b/src/packs/domains/folders_Level_8_FUzQxkv4gFc46SIs.json index e52120b8..a9acdf99 100644 --- a/src/packs/domains/folders_Level_8_FUzQxkv4gFc46SIs.json +++ b/src/packs/domains/folders_Level_8_FUzQxkv4gFc46SIs.json @@ -8,5 +8,15 @@ "description": "", "sort": 800000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754303642814 + }, "_key": "!folders!FUzQxkv4gFc46SIs" } diff --git a/src/packs/domains/folders_Level_8_KmaX6wNBLzkFevaG.json b/src/packs/domains/folders_Level_8_KmaX6wNBLzkFevaG.json index 726020a3..ca233ba0 100644 --- a/src/packs/domains/folders_Level_8_KmaX6wNBLzkFevaG.json +++ b/src/packs/domains/folders_Level_8_KmaX6wNBLzkFevaG.json @@ -8,5 +8,15 @@ "description": "", "sort": 600000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681455565 + }, "_key": "!folders!KmaX6wNBLzkFevaG" } diff --git a/src/packs/domains/folders_Level_8_me7ywrVh38j6T8Sm.json b/src/packs/domains/folders_Level_8_me7ywrVh38j6T8Sm.json index 2b125f0d..8da0084f 100644 --- a/src/packs/domains/folders_Level_8_me7ywrVh38j6T8Sm.json +++ b/src/packs/domains/folders_Level_8_me7ywrVh38j6T8Sm.json @@ -8,5 +8,15 @@ "description": "", "sort": 800000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681470475 + }, "_key": "!folders!me7ywrVh38j6T8Sm" } diff --git a/src/packs/domains/folders_Level_8_n7pgTBYSItMzCX0s.json b/src/packs/domains/folders_Level_8_n7pgTBYSItMzCX0s.json index 731243d6..dd95882c 100644 --- a/src/packs/domains/folders_Level_8_n7pgTBYSItMzCX0s.json +++ b/src/packs/domains/folders_Level_8_n7pgTBYSItMzCX0s.json @@ -8,5 +8,15 @@ "description": "", "sort": 750000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681483315 + }, "_key": "!folders!n7pgTBYSItMzCX0s" } diff --git a/src/packs/domains/folders_Level_8_qY4Zqc1Ch6p317uK.json b/src/packs/domains/folders_Level_8_qY4Zqc1Ch6p317uK.json index f1a8eefb..6b91dfe3 100644 --- a/src/packs/domains/folders_Level_8_qY4Zqc1Ch6p317uK.json +++ b/src/packs/domains/folders_Level_8_qY4Zqc1Ch6p317uK.json @@ -8,5 +8,15 @@ "description": "", "sort": 1800000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499336356 + }, "_key": "!folders!qY4Zqc1Ch6p317uK" } diff --git a/src/packs/domains/folders_Level_8_taM81THa8h6Bv2Xa.json b/src/packs/domains/folders_Level_8_taM81THa8h6Bv2Xa.json index c7f9aef0..dfb9779f 100644 --- a/src/packs/domains/folders_Level_8_taM81THa8h6Bv2Xa.json +++ b/src/packs/domains/folders_Level_8_taM81THa8h6Bv2Xa.json @@ -8,5 +8,15 @@ "description": "", "sort": 199219, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681535744 + }, "_key": "!folders!taM81THa8h6Bv2Xa" } diff --git a/src/packs/domains/folders_Level_9_2rqOUxEglhhPKk2j.json b/src/packs/domains/folders_Level_9_2rqOUxEglhhPKk2j.json index 85196c10..6e22743f 100644 --- a/src/packs/domains/folders_Level_9_2rqOUxEglhhPKk2j.json +++ b/src/packs/domains/folders_Level_9_2rqOUxEglhhPKk2j.json @@ -8,5 +8,15 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681523539 + }, "_key": "!folders!2rqOUxEglhhPKk2j" } diff --git a/src/packs/domains/folders_Level_9_8DOVMjTtZFKtwX4p.json b/src/packs/domains/folders_Level_9_8DOVMjTtZFKtwX4p.json index 4b43fc55..20d3fbb5 100644 --- a/src/packs/domains/folders_Level_9_8DOVMjTtZFKtwX4p.json +++ b/src/packs/domains/folders_Level_9_8DOVMjTtZFKtwX4p.json @@ -8,5 +8,15 @@ "description": "", "sort": 900000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754303642814 + }, "_key": "!folders!8DOVMjTtZFKtwX4p" } diff --git a/src/packs/domains/folders_Level_9_KwZYrsSUYnHiNtPl.json b/src/packs/domains/folders_Level_9_KwZYrsSUYnHiNtPl.json index dae06027..73b5ab46 100644 --- a/src/packs/domains/folders_Level_9_KwZYrsSUYnHiNtPl.json +++ b/src/packs/domains/folders_Level_9_KwZYrsSUYnHiNtPl.json @@ -8,5 +8,15 @@ "description": "", "sort": 600000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681505029 + }, "_key": "!folders!KwZYrsSUYnHiNtPl" } diff --git a/src/packs/domains/folders_Level_9_QYdeGsmVYIF34kZR.json b/src/packs/domains/folders_Level_9_QYdeGsmVYIF34kZR.json index c7984fb9..75671f95 100644 --- a/src/packs/domains/folders_Level_9_QYdeGsmVYIF34kZR.json +++ b/src/packs/domains/folders_Level_9_QYdeGsmVYIF34kZR.json @@ -8,5 +8,15 @@ "description": "", "sort": 900000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681470475 + }, "_key": "!folders!QYdeGsmVYIF34kZR" } diff --git a/src/packs/domains/folders_Level_9_R5afi5bhq9ccnYY2.json b/src/packs/domains/folders_Level_9_R5afi5bhq9ccnYY2.json index 8b0cda29..6e3657b4 100644 --- a/src/packs/domains/folders_Level_9_R5afi5bhq9ccnYY2.json +++ b/src/packs/domains/folders_Level_9_R5afi5bhq9ccnYY2.json @@ -8,5 +8,15 @@ "description": "", "sort": 1900000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754499336949 + }, "_key": "!folders!R5afi5bhq9ccnYY2" } diff --git a/src/packs/domains/folders_Level_9_eg2vM8j9xhya9Rwa.json b/src/packs/domains/folders_Level_9_eg2vM8j9xhya9Rwa.json index 7d965207..5b63ab8c 100644 --- a/src/packs/domains/folders_Level_9_eg2vM8j9xhya9Rwa.json +++ b/src/packs/domains/folders_Level_9_eg2vM8j9xhya9Rwa.json @@ -8,5 +8,15 @@ "description": "", "sort": 800000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681481088 + }, "_key": "!folders!eg2vM8j9xhya9Rwa" } diff --git a/src/packs/domains/folders_Level_9_fucNnucgoUjbzvcA.json b/src/packs/domains/folders_Level_9_fucNnucgoUjbzvcA.json index d7101480..d55c92ce 100644 --- a/src/packs/domains/folders_Level_9_fucNnucgoUjbzvcA.json +++ b/src/packs/domains/folders_Level_9_fucNnucgoUjbzvcA.json @@ -8,5 +8,15 @@ "description": "", "sort": 800000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681455565 + }, "_key": "!folders!fucNnucgoUjbzvcA" } diff --git a/src/packs/domains/folders_Level_9_sGCKwmomutMTv0Xs.json b/src/packs/domains/folders_Level_9_sGCKwmomutMTv0Xs.json index 76435c2e..b36fa92e 100644 --- a/src/packs/domains/folders_Level_9_sGCKwmomutMTv0Xs.json +++ b/src/packs/domains/folders_Level_9_sGCKwmomutMTv0Xs.json @@ -8,5 +8,15 @@ "description": "", "sort": 900000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681560360 + }, "_key": "!folders!sGCKwmomutMTv0Xs" } diff --git a/src/packs/domains/folders_Level_9_yFcD1LOM3xKbkNYl.json b/src/packs/domains/folders_Level_9_yFcD1LOM3xKbkNYl.json index 848c2324..ef98abd9 100644 --- a/src/packs/domains/folders_Level_9_yFcD1LOM3xKbkNYl.json +++ b/src/packs/domains/folders_Level_9_yFcD1LOM3xKbkNYl.json @@ -8,5 +8,15 @@ "description": "", "sort": 900000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "YNJ4HgHtFrTI89mx", + "modifiedTime": 1752681517285 + }, "_key": "!folders!yFcD1LOM3xKbkNYl" } diff --git a/src/packs/domains/folders_Midnight_tgwSE1t5B0Ka10Xh.json b/src/packs/domains/folders_Midnight_tgwSE1t5B0Ka10Xh.json index 466a895c..c4c4df1a 100644 --- a/src/packs/domains/folders_Midnight_tgwSE1t5B0Ka10Xh.json +++ b/src/packs/domains/folders_Midnight_tgwSE1t5B0Ka10Xh.json @@ -8,5 +8,16 @@ "description": "", "sort": 600000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717122329, + "modifiedTime": 1752681436562, + "lastModifiedBy": "YNJ4HgHtFrTI89mx" + }, "_key": "!folders!tgwSE1t5B0Ka10Xh" } diff --git a/src/packs/domains/folders_Sage_io1DZ9MMMDfuNf8b.json b/src/packs/domains/folders_Sage_io1DZ9MMMDfuNf8b.json index fc719e1b..da55393e 100644 --- a/src/packs/domains/folders_Sage_io1DZ9MMMDfuNf8b.json +++ b/src/packs/domains/folders_Sage_io1DZ9MMMDfuNf8b.json @@ -8,5 +8,16 @@ "description": "", "sort": 700000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717128125, + "modifiedTime": 1752681438783, + "lastModifiedBy": "YNJ4HgHtFrTI89mx" + }, "_key": "!folders!io1DZ9MMMDfuNf8b" } diff --git a/src/packs/domains/folders_Splendor_TL1TutmbeCVJ06nR.json b/src/packs/domains/folders_Splendor_TL1TutmbeCVJ06nR.json index d7032288..c0870ecf 100644 --- a/src/packs/domains/folders_Splendor_TL1TutmbeCVJ06nR.json +++ b/src/packs/domains/folders_Splendor_TL1TutmbeCVJ06nR.json @@ -6,7 +6,18 @@ "sorting": "m", "_id": "TL1TutmbeCVJ06nR", "description": "", - "sort": 900000, + "sort": 800000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717133557, + "modifiedTime": 1752681441081, + "lastModifiedBy": "YNJ4HgHtFrTI89mx" + }, "_key": "!folders!TL1TutmbeCVJ06nR" } diff --git a/src/packs/domains/folders_Valor_yPVeShe47ETIqs9q.json b/src/packs/domains/folders_Valor_yPVeShe47ETIqs9q.json index f12a9d75..0a65d51f 100644 --- a/src/packs/domains/folders_Valor_yPVeShe47ETIqs9q.json +++ b/src/packs/domains/folders_Valor_yPVeShe47ETIqs9q.json @@ -6,7 +6,18 @@ "sorting": "m", "_id": "yPVeShe47ETIqs9q", "description": "", - "sort": 800000, + "sort": 900000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717138700, + "modifiedTime": 1752681443619, + "lastModifiedBy": "YNJ4HgHtFrTI89mx" + }, "_key": "!folders!yPVeShe47ETIqs9q" } diff --git a/src/packs/environments/environment_Abandoned_Grove_pGEdzdLkqYtBhxnG.json b/src/packs/environments/environment_Abandoned_Grove_pGEdzdLkqYtBhxnG.json index c1006da4..1f1d5722 100644 --- a/src/packs/environments/environment_Abandoned_Grove_pGEdzdLkqYtBhxnG.json +++ b/src/packs/environments/environment_Abandoned_Grove_pGEdzdLkqYtBhxnG.json @@ -1,6 +1,6 @@ { "name": "Abandoned Grove", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "GQ0VnOLrKBIHR6Us", "system": { @@ -27,14 +27,20 @@ "tier": 1, "description": "

A former druidic grove lying fallow and fully reclaimed by nature.

", "type": "exploration", - "impulses": "Draw in the curious, echo the past", - "attribution": { - "source": "Daggerheart SRD", - "page": 103, - "artist": "" - } + "impulses": "Draw in the curious, echo the past" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784553, + "modifiedTime": 1754208922163, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "pGEdzdLkqYtBhxnG", "sort": 3400000, "ownership": { @@ -49,7 +55,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -67,10 +73,10 @@ "disposition": -1, "displayBars": 0, "bar1": { - "attribute": null + "attribute": "resources.hitPoints" }, "bar2": { - "attribute": null + "attribute": "resources.stress" }, "light": { "negative": false, @@ -118,7 +124,7 @@ "ring": null, "background": null }, - "effects": 0, + "effects": 1, "subject": { "scale": 1, "texture": null @@ -158,7 +164,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754207888492, + "modifiedTime": 1754208774573, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!pGEdzdLkqYtBhxnG.MX4q2xxuWts9gBfT" }, @@ -249,8 +263,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "maK5OyfrOxcjCoPt", "img": "icons/magic/nature/root-vine-spiral-thorns-teal.webp", @@ -284,12 +297,20 @@ "description": "

Restrained lasts until you’re freed with a successful Finesse or Strength roll or by dealing at least 6 damage to the vines.

", "tint": "#ffffff", "statuses": [ - "restrained" + "restrain" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754208174079, + "modifiedTime": 1754208199002, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!pGEdzdLkqYtBhxnG.maK5OyfrOxcjCoPt.LSeftEwgBbXXkLw3" } @@ -302,7 +323,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754207991518, + "modifiedTime": 1754208789740, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!pGEdzdLkqYtBhxnG.maK5OyfrOxcjCoPt" }, @@ -314,8 +343,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "uG5A2XQuUcPsXzgP", "img": "icons/magic/nature/hand-weapon-wood-bark-brown.webp", @@ -328,7 +356,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754208209059, + "modifiedTime": 1754208803157, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!pGEdzdLkqYtBhxnG.uG5A2XQuUcPsXzgP" }, @@ -363,8 +399,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "3kkkbnWEvXk5TPK8", "img": "icons/magic/unholy/strike-hand-glow-pink.webp", @@ -377,7 +412,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754208338191, + "modifiedTime": 1754208475513, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!pGEdzdLkqYtBhxnG.3kkkbnWEvXk5TPK8" } diff --git a/src/packs/environments/environment_Ambushed_uGEdNYERCTJBEjc5.json b/src/packs/environments/environment_Ambushed_uGEdNYERCTJBEjc5.json index b0ccd435..a705fa2d 100644 --- a/src/packs/environments/environment_Ambushed_uGEdNYERCTJBEjc5.json +++ b/src/packs/environments/environment_Ambushed_uGEdNYERCTJBEjc5.json @@ -1,6 +1,6 @@ { "name": "Ambushed", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "GQ0VnOLrKBIHR6Us", "system": { @@ -10,14 +10,20 @@ "tier": 1, "description": "

An ambush is set to catch an unsuspecting party off-guard.

", "type": "event", - "impulses": "Overwhelm, scatter, surround", - "attribution": { - "source": "Daggerheart SRD", - "page": 103, - "artist": "" - } + "impulses": "Overwhelm, scatter, surround" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784553, + "modifiedTime": 1754211171895, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "uGEdNYERCTJBEjc5", "sort": 3400000, "ownership": { @@ -32,7 +38,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -141,7 +147,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754211181916, + "modifiedTime": 1754211255101, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!uGEdNYERCTJBEjc5.NMErq9B4NS3NSiMy" }, @@ -221,8 +235,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "HfuVxgVidIVsapvI", "img": "icons/magic/perception/shadow-stealth-eyes-purple.webp", @@ -235,7 +248,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754211260197, + "modifiedTime": 1754211363725, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!uGEdNYERCTJBEjc5.HfuVxgVidIVsapvI" } diff --git a/src/packs/environments/environment_Ambushers_uXZpebPR77YQ1oXI.json b/src/packs/environments/environment_Ambushers_uXZpebPR77YQ1oXI.json index e8ba889a..3a8e3092 100644 --- a/src/packs/environments/environment_Ambushers_uXZpebPR77YQ1oXI.json +++ b/src/packs/environments/environment_Ambushers_uXZpebPR77YQ1oXI.json @@ -1,6 +1,6 @@ { "name": "Ambushers", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "GQ0VnOLrKBIHR6Us", "system": { @@ -10,14 +10,20 @@ "tier": 1, "description": "

An ambush is set by the PCs to catch unsuspecting adversaries off-guard.

", "type": "event", - "impulses": "Escape, group up, protect the most vulnerable", - "attribution": { - "source": "Daggerheart SRD", - "page": 103, - "artist": "" - } + "impulses": "Escape, group up, protect the most vulnerable" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784554, + "modifiedTime": 1754211550898, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "uXZpebPR77YQ1oXI", "sort": 3400000, "ownership": { @@ -32,7 +38,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -141,7 +147,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754211397542, + "modifiedTime": 1754211438795, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!uXZpebPR77YQ1oXI.hAGzlRjI3lpadVs7" }, @@ -164,6 +178,7 @@ "scalable": false, "key": "fear", "value": 2, + "keyIsID": false, "step": null } ], @@ -183,8 +198,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "b6Qviz1ANG8OrAYq", "img": "icons/skills/wounds/injury-face-impact-orange.webp", @@ -197,7 +211,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754211447389, + "modifiedTime": 1754211535270, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!uXZpebPR77YQ1oXI.b6Qviz1ANG8OrAYq" } diff --git a/src/packs/environments/environment_Burning_Heart_of_the_Woods_oY69NN4rYxoRE4hl.json b/src/packs/environments/environment_Burning_Heart_of_the_Woods_oY69NN4rYxoRE4hl.json index dc42fb07..a1949373 100644 --- a/src/packs/environments/environment_Burning_Heart_of_the_Woods_oY69NN4rYxoRE4hl.json +++ b/src/packs/environments/environment_Burning_Heart_of_the_Woods_oY69NN4rYxoRE4hl.json @@ -1,6 +1,6 @@ { "name": "Burning Heart of the Woods", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "MfrIkJK12PAEfbPL", "system": { @@ -32,14 +32,20 @@ "tier": 3, "description": "

Thick indigo ash fills the air around a towering moss-covered tree that burns eternally with flames a sickly shade of blue.

", "type": "exploration", - "impulses": "Beat out an uncanny rhythm for all to follow, corrupt the woods", - "attribution": { - "source": "Daggerheart SRD", - "page": 108, - "artist": "" - } + "impulses": "Beat out an uncanny rhythm for all to follow, corrupt the woods" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784554, + "modifiedTime": 1754218065764, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "oY69NN4rYxoRE4hl", "sort": 3400000, "ownership": { @@ -54,7 +60,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -163,7 +169,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754217336906, + "modifiedTime": 1754217370049, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!oY69NN4rYxoRE4hl.hU32a8QZy62gdLGc" }, @@ -188,7 +202,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754217372731, + "modifiedTime": 1754217438977, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!oY69NN4rYxoRE4hl.nrwEMjdl5F86oES9" }, @@ -252,8 +274,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "1aOeMMX0XuDtZbbB", "img": "icons/magic/nature/root-vine-spiral-thorns-teal.webp", @@ -287,13 +308,21 @@ "description": "

Restrained and Vulnerable until you break free, clearing both conditions, with a successful Finesse or Strength Roll or by dealing 10 damage to the vines. When the target makes a roll to escape, they take 1d8+4 physical damage and lose a Hope.

What painful memories do the vines bring to the surface as they pierce flesh?

", "tint": "#ffffff", "statuses": [ - "restrained", + "restrain", "vulnerable" ], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754217554200, + "modifiedTime": 1754217633393, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!oY69NN4rYxoRE4hl.1aOeMMX0XuDtZbbB.gCkqvBUljsOsYacB" } @@ -306,7 +335,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754217444916, + "modifiedTime": 1754217641252, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!oY69NN4rYxoRE4hl.1aOeMMX0XuDtZbbB" }, @@ -392,8 +429,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "JKFkDvwUOP35Tsr1", "img": "icons/creatures/magical/construct-face-stone-pink.webp", @@ -406,7 +442,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754217643959, + "modifiedTime": 1754217885657, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!oY69NN4rYxoRE4hl.JKFkDvwUOP35Tsr1" }, @@ -414,14 +458,36 @@ "name": "Choking Ash", "type": "feature", "system": { - "description": "

Countdown (Loop 6). When the PCs enter the Burning Heart of the Woods, activate the countdown. When it triggers, all characters must make a Strength or Instinct Reaction Roll. Targets who fail take 4d6+5 direct physical damage. Targets who succeed take half damage. Protective masks or clothes give advantage on the reaction roll.

What hallucinations does the ash induce? What incongruous taste does it possess?

", + "description": "

Countdown (Loop 6). When the PCs enter the Burning Heart of the Woods, activate the countdown. When it triggers, all characters must make a Strength or Instinct Reaction Roll. Targets who fail take 4d6+5 direct physical damage. Targets who succeed take half damage. Protective masks or clothes give advantage on the reaction roll.

What hallucinations does the ash induce? What incongruous taste does it possess?

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

Countdown (Loop 6). When the PCs enter the Burning Heart of the Woods, activate the countdown.

What hallucinations does the ash induce? What incongruous taste does it possess?

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdown", + "img": "icons/magic/air/fog-gas-smoke-brown.webp", + "range": "" + }, "4XVdHOzycOXM5bh9": { "type": "damage", "_id": "4XVdHOzycOXM5bh9", "systemPath": "actions", - "description": "

All characters must make a Strength or Instinct Reaction Roll. Targets who fail take 4d6+5 direct physical damage. Targets who succeed take half damage. Protective masks or clothes give advantage on the reaction roll.

What hallucinations does the ash induce? What incongruous taste does it possess?

", + "description": "

When the countdown triggers, all characters must make a Strength or Instinct Reaction Roll. Targets who fail take 4d6+5 direct physical damage. Targets who succeed take half damage. Protective masks or clothes give advantage on the reaction roll.

What hallucinations does the ash induce? What incongruous taste does it possess?

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -459,8 +525,7 @@ } } ], - "includeBase": false, - "direct": true + "includeBase": false }, "target": { "type": "any", @@ -470,48 +535,10 @@ "name": "Damage", "img": "icons/magic/air/fog-gas-smoke-brown.webp", "range": "" - }, - "3L0T97ZzTqZU6BE6": { - "type": "countdown", - "_id": "3L0T97ZzTqZU6BE6", - "systemPath": "actions", - "description": "

Countdown (Loop 6). When the PCs enter the Burning Heart of the Woods, activate the countdown.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Choking Ash", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/air/fog-gas-smoke-brown.webp", - "progress": { - "looping": "looping", - "type": "actionRoll", - "start": 1, - "startFormula": "6", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/air/fog-gas-smoke-brown.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "kYxuTZjH7HDUGeWh", "img": "icons/magic/air/fog-gas-smoke-brown.webp", @@ -524,7 +551,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754217910442, + "modifiedTime": 1754217995895, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!oY69NN4rYxoRE4hl.kYxuTZjH7HDUGeWh" } diff --git a/src/packs/environments/environment_Bustling_Marketplace_HZKA7hkej7JJY503.json b/src/packs/environments/environment_Bustling_Marketplace_HZKA7hkej7JJY503.json index ad96108b..f68ad8fd 100644 --- a/src/packs/environments/environment_Bustling_Marketplace_HZKA7hkej7JJY503.json +++ b/src/packs/environments/environment_Bustling_Marketplace_HZKA7hkej7JJY503.json @@ -1,6 +1,6 @@ { "name": "Bustling Marketplace", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "GQ0VnOLrKBIHR6Us", "system": { @@ -25,14 +25,20 @@ "tier": 1, "description": "

The economic heart of the settlement, with local artisans, traveling merchants, and patrons across social classes.

", "type": "social", - "impulses": "Buy low, and sell high, tempt and tantalize with wares from near and far", - "attribution": { - "source": "Daggerheart SRD", - "page": 104, - "artist": "" - } + "impulses": "Buy low, and sell high, tempt and tantalize with wares from near and far" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784554, + "modifiedTime": 1754212085334, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "HZKA7hkej7JJY503", "sort": 3400000, "ownership": { @@ -47,7 +53,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -156,7 +162,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754211580192, + "modifiedTime": 1754211631995, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!HZKA7hkej7JJY503.w8YmhoWPGc66Wrx3" }, @@ -168,8 +182,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "60uDqt9omFifZ7xd", "img": "icons/commodities/treasure/brooch-jeweled-pink.webp", @@ -182,7 +195,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754211636824, + "modifiedTime": 1754211680840, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!HZKA7hkej7JJY503.60uDqt9omFifZ7xd" }, @@ -190,7 +211,7 @@ "name": "Sticky Fingers", "type": "feature", "system": { - "description": "

A thief tries to steal something from a PC. The PC must succeed on an Instinct Roll to notice the thief or lose an item of the GM’s choice as the thief escapes to a Close distance. To retrieve the stolen item, the PCs must complete a Progress Countdown (6) to chase down the thief before the thief completes a Consequence Countdown (4) and escapes to their hideout.

What drove this person to pickpocketing? Where is the thief’s hideout and how has it avoided notice?

", + "description": "

A thief tries to steal something from a PC. The PC must succeed on an Instinct Roll to notice the thief or lose an item of the GM’s choice as the thief escapes to a Close distance. To retrieve the stolen item, the PCs must complete a Progress Countdown (6) to chase down the thief before the thief completes a Consequence Countdown (4) and escapes to their hideout.

What drove this person to pickpocketing? Where is the thief’s hideout and how has it avoided notice?

", "resource": null, "actions": { "GMy6OcMQnNJDDmtV": { @@ -239,61 +260,31 @@ "img": "icons/skills/social/theft-pickpocket-bribery-brown.webp", "range": "" }, - "L2TFexCvxvuCOCXe": { - "type": "countdown", - "_id": "L2TFexCvxvuCOCXe", + "0V36HDEb9gpLubGL": { + "type": "effect", + "_id": "0V36HDEb9gpLubGL", "systemPath": "actions", - "description": "", - "chatDisplay": false, - "originItem": { - "type": "itemCollection" - }, + "description": "

To retrieve the stolen item, the PCs must complete a Progress Countdown (6) to chase down the thief before the thief completes a Consequence Countdown (4) and escapes to their hideout.

", + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { "value": null, "max": "", - "recovery": null, - "consumeOnSuccess": false + "recovery": null }, - "countdown": [ - { - "name": "Chase Thief", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/skills/movement/feet-winged-boots-brown.webp", - "progress": { - "looping": "noLooping", - "type": "custom", - "start": 1, - "startFormula": "6", - "current": 1 - }, - "ownership": {} - }, - { - "name": "Escape To Hideout", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/perception/silhouette-stealth-shadow.webp", - "progress": { - "looping": "noLooping", - "type": "custom", - "start": 1, - "startFormula": "4", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdowns", - "img": "icons/skills/social/theft-pickpocket-bribery-brown.webp", + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdowns", + "img": "icons/magic/time/hourglass-tilted-glowing-gold.webp", "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "56qjiKMoN6S9riI6", "img": "icons/skills/social/theft-pickpocket-bribery-brown.webp", @@ -306,7 +297,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754211683813, + "modifiedTime": 1754211879643, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!HZKA7hkej7JJY503.56qjiKMoN6S9riI6" }, @@ -318,8 +317,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "l2FzZpR2reVmlkdp", "img": "icons/skills/movement/arrow-upward-blue.webp", @@ -332,7 +330,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754211886933, + "modifiedTime": 1754211933545, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!HZKA7hkej7JJY503.l2FzZpR2reVmlkdp" } diff --git a/src/packs/environments/environment_Castle_Siege_1eZ32Esq7rfZOjlu.json b/src/packs/environments/environment_Castle_Siege_1eZ32Esq7rfZOjlu.json index 411a10c7..1739e6bd 100644 --- a/src/packs/environments/environment_Castle_Siege_1eZ32Esq7rfZOjlu.json +++ b/src/packs/environments/environment_Castle_Siege_1eZ32Esq7rfZOjlu.json @@ -1,6 +1,6 @@ { "name": "Castle Siege", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "MfrIkJK12PAEfbPL", "system": { @@ -29,14 +29,20 @@ "tier": 3, "description": "

An active siege with an attacking force fighting to gain entry to a fortified castle.

", "type": "event", - "impulses": "Bleed out the will to fi ght, breach the walls, build tension", - "attribution": { - "source": "Daggerheart SRD", - "page": 109, - "artist": "" - } + "impulses": "Bleed out the will to fi ght, breach the walls, build tension" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784555, + "modifiedTime": 1754218654354, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "1eZ32Esq7rfZOjlu", "sort": 3400000, "ownership": { @@ -51,7 +57,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -160,7 +166,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754218169441, + "modifiedTime": 1754218198936, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!1eZ32Esq7rfZOjlu.2qUw5c3e22eywSwg" }, @@ -168,14 +182,36 @@ "name": "Siege Weapons (Environment Change)", "type": "feature", "system": { - "description": "

Consequence Countdown (6). The attacking force deploys siege weapons to try to raze the defenders’ fortifi cations. Activate the countdown when the siege begins (for a protracted siege, make this a long-term countdown instead). When it triggers, the defenders’ fortifications have been breached and the attackers fl ood inside. You gain 2 Fear, then shift to the Pitched Battle environment and spotlight it.

What siege weapons are being deployed? Are they magical mundane or a mixture of both? What defenses must the characters overcome to storm the castle?

", + "description": "

Consequence Countdown (6). The attacking force deploys siege weapons to try to raze the defenders’ fortifi cations. Activate the countdown when the siege begins (for a protracted siege, make this a long-term countdown instead). When it triggers, the defenders’ fortifi cations have been breached and the attackers fl ood inside. You gain 2 Fear, then shift to the Pitched Battle environment and spotlight it.

What siege weapons are being deployed? Are they magical mundane or a mixture of both? What defenses must the characters overcome to storm the castle?

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

Consequence Countdown (6). The attacking force deploys siege weapons to try to raze the defenders’ fortifi cations. Activate the countdown when the siege begins (for a protracted siege, make this a long-term countdown instead).

What siege weapons are being deployed? Are they magical mundane or a mixture of both? What defenses must the characters overcome to storm the castle?

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdown", + "img": "icons/weapons/artillery/catapult-simple.webp", + "range": "" + }, "TGWI1Kvw4ZEP3QEo": { "type": "healing", "_id": "TGWI1Kvw4ZEP3QEo", "systemPath": "actions", - "description": "

The defenders’ fortifications have been breached and the attackers flood inside. You gain 2 Fear, then shift to the Pitched Battle environment and spotlight it.

", + "description": "

When the cooldown triggers, the defenders’ fortifications have been breached and the attackers flood inside. You gain 2 Fear, then shift to the Pitched Battle environment and spotlight it.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -237,48 +273,10 @@ "name": "Gain Fear", "img": "icons/weapons/artillery/catapult-simple.webp", "range": "" - }, - "udKS3ME8VKuayEyO": { - "type": "countdown", - "_id": "udKS3ME8VKuayEyO", - "systemPath": "actions", - "description": "

Consequence Countdown (6). The attacking force deploys siege weapons to try to raze the defenders’ fortifications. Activate the countdown when the siege begins (for a protracted siege, make this a long-term countdown instead).

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Siege Weapons (Environment Change)", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/weapons/artillery/catapult-simple.webp", - "progress": { - "looping": "noLooping", - "type": "custom", - "start": 1, - "startFormula": "6", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/weapons/artillery/catapult-simple.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "eSTq8Y0v4Dwd13XU", "img": "icons/weapons/artillery/catapult-simple.webp", @@ -291,7 +289,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754218202018, + "modifiedTime": 1754218357097, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!1eZ32Esq7rfZOjlu.eSTq8Y0v4Dwd13XU" }, @@ -303,8 +309,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "U59K0WKVjwbgzMZU", "img": "icons/environment/people/charge.webp", @@ -317,7 +322,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754218361531, + "modifiedTime": 1754218426936, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!1eZ32Esq7rfZOjlu.U59K0WKVjwbgzMZU" }, @@ -403,8 +416,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "bemKmwjBtbEFVWXM", "img": "icons/magic/earth/projectile-stone-boulder-brown.webp", @@ -417,7 +429,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754218429103, + "modifiedTime": 1754218591250, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!1eZ32Esq7rfZOjlu.bemKmwjBtbEFVWXM" } diff --git a/src/packs/environments/environment_Chaos_Realm_2Z1mKc65LxNk2PqR.json b/src/packs/environments/environment_Chaos_Realm_2Z1mKc65LxNk2PqR.json index 77781de0..fe3f3349 100644 --- a/src/packs/environments/environment_Chaos_Realm_2Z1mKc65LxNk2PqR.json +++ b/src/packs/environments/environment_Chaos_Realm_2Z1mKc65LxNk2PqR.json @@ -1,6 +1,6 @@ { "name": "Chaos Realm", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "IKumu5HTLqONLYqb", "system": { @@ -19,14 +19,20 @@ "tier": 4, "description": "

An otherworldly space where the laws of reality are unstable and dangerous.

", "type": "traversal", - "impulses": "Annihilate certainty, consume power, defy logic", - "attribution": { - "source": "Daggerheart SRD", - "page": 110, - "artist": "" - } + "impulses": "Annihilate certainty, consume power, defy logic" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784556, + "modifiedTime": 1754219630584, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "2Z1mKc65LxNk2PqR", "sort": 3400000, "ownership": { @@ -41,7 +47,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -133,14 +139,14 @@ "name": "Impossible Architecture", "type": "feature", "system": { - "description": "

Up is down, down is right, right is starward. Gravity and directionality themselves are in flux, and any attempt to move through this realm is an odyssey unto itself, requiring a Progress Countdown (8). On a failure, a PC must mark a Stress in addition to the roll’s other consequences.

What does it feel like to move in a space so alien to the Mortal Realm? What landmark or point do you fixate on to maintain your balance? What bizarre landmarks do you traverse on your journey?

", + "description": "

Up is down, down is right, right is starward. Gravity and directionality themselves are in fl ux, and any attempt to move through this realm is an odyssey unto itself, requiring a Progress Countdown (8). On a failure, a PC must mark a Stress in addition to the roll’s other consequences.

What does it feel like to move in a space so alien to the Mortal Realm? What landmark or point do you fi xate on to maintain your balance? What bizarre landmarks do you traverse on your journey?

", "resource": null, "actions": { "hli84bleKqYoU7YL": { "type": "damage", "_id": "hli84bleKqYoU7YL", "systemPath": "actions", - "description": "

On a failure, a PC must mark a Stress in addition to the roll’s other consequences.

", + "description": "

On a failure, a PC must mark a Stress in addition to the roll’s other consequences.

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -187,43 +193,6 @@ "name": "Mark Stress", "img": "icons/magic/symbols/squares-3d-green.webp", "range": "" - }, - "uZgtjZJVCedm93aJ": { - "type": "countdown", - "_id": "uZgtjZJVCedm93aJ", - "systemPath": "actions", - "description": "

Up is down, down is right, right is starward. Gravity and directionality themselves are in flux, and any attempt to move through this realm is an odyssey unto itself, requiring a Progress Countdown (8).

What does it feel like to move in a space so alien to the Mortal Realm? What landmark or point do you fixate on to maintain your balance? What bizarre landmarks do you traverse on your journey?

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "passive", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Impossible Architecture", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/symbols/squares-3d-green.webp", - "progress": { - "looping": "noLooping", - "type": "custom", - "start": 1, - "startFormula": "8", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/symbols/squares-3d-green.webp", - "range": "" } }, "originItemType": null, @@ -240,7 +209,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754219060775, + "modifiedTime": 1754219140788, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2Z1mKc65LxNk2PqR.yXCBy1MQuh5GwH5Q" }, @@ -248,14 +225,60 @@ "name": "Everything You Are This Place Will Take from You", "type": "feature", "system": { - "description": "

Countdown (Loop 1d4). Activate the countdown. When it triggers, all PCs must succeed on a Presence Reaction Roll or their highest trait is temporarily reduced by [[/r 1d4]] unless they mark a number of Stress equal to its value. Any lost trait points are regained if the PC critically succeeds or escapes the Chaos Realm.

How does this place try to steal from you that which makes you legendary? What does it feel like to have this power taken from you?

", + "description": "

Countdown (Loop 1d4). Activate the countdown. When it triggers, all PCs must succeed on a Presence Reaction Roll or their highest trait is temporarily reduced by [[/r 1d4]] unless they mark a number of Stress equal to its value. Any lost trait points are regained if the PC critically succeeds or escapes the Chaos Realm.

How does this place try to steal from you that which makes you legendary? What does it feel like to have this power taken from you?

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

Countdown (Loop 1d4). Activate the countdown.

How does this place try to steal from you that which makes you legendary? What does it feel like to have this power taken from you?

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": null, + "damageMod": "none" + }, + "name": "Countdown", + "img": "icons/magic/control/sihouette-hold-beam-green.webp", + "range": "" + }, "zOQMo13vSiX3QReJ": { "type": "attack", "_id": "zOQMo13vSiX3QReJ", "systemPath": "actions", - "description": "

All PCs must succeed on a Presence Reaction Roll or their highest trait is temporarily reduced by [[/r 1d4]] unless they mark a number of Stress equal to its value. Any lost trait points are regained if the PC critically succeeds or escapes the Chaos Realm.

How does this place try to steal from you that which makes you legendary? What does it feel like to have this power taken from you?

", + "description": "

When the countdown triggers, all PCs must succeed on a Presence Reaction Roll or their highest trait is temporarily reduced by [[/r 1d4]] unless they mark a number of Stress equal to its value. Any lost trait points are regained if the PC critically succeeds or escapes the Chaos Realm.

How does this place try to steal from you that which makes you legendary? What does it feel like to have this power taken from you?

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -296,47 +319,10 @@ "name": "Roll Save", "img": "icons/magic/control/sihouette-hold-beam-green.webp", "range": "" - }, - "FxAFpgPbGcmi3nlh": { - "type": "countdown", - "_id": "FxAFpgPbGcmi3nlh", - "systemPath": "actions", - "description": "

Countdown (Loop 1d4). Activate the countdown.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Everything You Are This Place Will Take from You", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/control/sihouette-hold-beam-green.webp", - "progress": { - "looping": "looping", - "type": "actionRoll", - "startValue": "4", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/control/sihouette-hold-beam-green.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "0OYHJZqT0DlVz5be", "img": "icons/magic/control/sihouette-hold-beam-green.webp", @@ -349,7 +335,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754219142956, + "modifiedTime": 1754219278386, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2Z1mKc65LxNk2PqR.0OYHJZqT0DlVz5be" }, @@ -372,6 +366,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -442,8 +437,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "RNbAdBZM6gDNaRPn", "img": "icons/magic/unholy/energy-smoke-pink.webp", @@ -456,7 +450,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754219294860, + "modifiedTime": 1754219400958, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2Z1mKc65LxNk2PqR.RNbAdBZM6gDNaRPn" }, @@ -479,6 +481,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -498,8 +501,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "SZpUJeJETVQtZwae", "img": "icons/creatures/unholy/demons-horned-glowing-pink.webp", @@ -512,7 +514,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754219403831, + "modifiedTime": 1754219531293, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2Z1mKc65LxNk2PqR.SZpUJeJETVQtZwae" }, @@ -577,8 +587,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "MyIh4CJsDnkjmeYs", "img": "icons/magic/perception/hand-eye-pink.webp", @@ -591,7 +600,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754219535744, + "modifiedTime": 1754219607245, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!2Z1mKc65LxNk2PqR.MyIh4CJsDnkjmeYs" } diff --git a/src/packs/environments/environment_Cliffside_Ascent_LPpfdlNKqiZIl04w.json b/src/packs/environments/environment_Cliffside_Ascent_LPpfdlNKqiZIl04w.json index 548cf7c4..67a6e7ea 100644 --- a/src/packs/environments/environment_Cliffside_Ascent_LPpfdlNKqiZIl04w.json +++ b/src/packs/environments/environment_Cliffside_Ascent_LPpfdlNKqiZIl04w.json @@ -1,6 +1,6 @@ { "name": "Cliffside Ascent", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "GQ0VnOLrKBIHR6Us", "system": { @@ -20,14 +20,20 @@ "tier": 1, "description": "

A steep, rocky cliffside tall enough to make traversal dangerous.

", "type": "traversal", - "impulses": "Cast the unready down to a rocky doom, draw people in with promise of what lies at the top", - "attribution": { - "source": "Daggerheart SRD", - "page": 104, - "artist": "" - } + "impulses": "Cast the unready down to a rocky doom, draw people in with promise of what lies at the top" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784557, + "modifiedTime": 1754212638870, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "LPpfdlNKqiZIl04w", "sort": 3400000, "ownership": { @@ -42,7 +48,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -134,43 +140,28 @@ "name": "The Climb", "type": "feature", "system": { - "description": "

Climbing up the cliff side uses a Progress Countdown (12). It ticks down according to the following criteria when the PCs make an action roll to climb:

  • Critical Success: Tick down 3

  • Success with Hope: Tick down 2

  • Success with Fear: Tick down 1

  • Failure with Hope: No Advancement

  • Failure with Fear: Tick up 1

When the countdown triggers, the party has made it to the top of the cliff .

What strange formations are the stones arranged in? What ominous warnings did previous adventurers leave?

", + "description": "

Climbing up the cliff side uses a Progress Countdown (12). It ticks down according to the following criteria when the PCs make an action roll to climb:

  • Critical Success: Tick down 3

  • Success with Hope: Tick down 2

  • Success with Fear: Tick down 1

  • Failure with Hope: No Advancement

  • Failure with Fear: Tick up 1

When the countdown triggers, the party has made it to the top of the cliff .

What strange formations are the stones arranged in? What ominous warnings did previous adventurers leave?

", "resource": null, "actions": { - "TMEBwqlfvL3mb3hQ": { - "type": "countdown", - "_id": "TMEBwqlfvL3mb3hQ", + "6GVdM7pIOpieLRA8": { + "type": "effect", + "_id": "6GVdM7pIOpieLRA8", "systemPath": "actions", - "description": "

Climbing up the cliff side uses a Progress Countdown (12). It ticks down according to the following criteria when the PCs make an action roll to climb:

  • Critical Success: Tick down 3

  • Success with Hope: Tick down 2

  • Success with Fear: Tick down 1

  • Failure with Hope: No Advancement

  • Failure with Fear: Tick up 1

When the countdown triggers, the party has made it to the top of the cliff .

What strange formations are the stones arranged in? What ominous warnings did previous adventurers leave?

", + "description": "

Climbing up the cliff side uses a Progress Countdown (12). It ticks down according to the following criteria when the PCs make an action roll to climb:

  • Critical Success: Tick down 3

  • Success with Hope: Tick down 2

  • Success with Fear: Tick down 1

  • Failure with Hope: No Advancement

  • Failure with Fear: Tick up 1

When the countdown triggers, the party has made it to the top of the cliff .

What strange formations are the stones arranged in? What ominous warnings did previous adventurers leave?

", "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, "actionType": "action", "cost": [], "uses": { "value": null, "max": "", - "recovery": null, - "consumeOnSuccess": false + "recovery": null }, - "countdown": [ - { - "name": "The Climb", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/environment/wilderness/terrain-rocks-brown.webp", - "progress": { - "looping": "noLooping", - "type": "custom", - "start": 1, - "startFormula": "12", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdown", "img": "icons/environment/wilderness/terrain-rocks-brown.webp", "range": "" } @@ -189,7 +180,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754212143089, + "modifiedTime": 1754212255805, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!LPpfdlNKqiZIl04w.bKBwM72OwVnlsHG6" }, @@ -267,7 +266,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754212267542, + "modifiedTime": 1754212368613, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!LPpfdlNKqiZIl04w.t8ZbtlGiYC8MKqqu" }, @@ -443,6 +450,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -462,8 +470,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "EP4FXeQqbqFGQoIX", "img": "icons/skills/movement/arrow-down-pink.webp", @@ -476,7 +483,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754212373011, + "modifiedTime": 1754212589500, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!LPpfdlNKqiZIl04w.EP4FXeQqbqFGQoIX" } diff --git a/src/packs/environments/environment_Cult_Ritual_QAXXiOKBDmCTauHD.json b/src/packs/environments/environment_Cult_Ritual_QAXXiOKBDmCTauHD.json index 705c9585..a1d1ed38 100644 --- a/src/packs/environments/environment_Cult_Ritual_QAXXiOKBDmCTauHD.json +++ b/src/packs/environments/environment_Cult_Ritual_QAXXiOKBDmCTauHD.json @@ -1,6 +1,6 @@ { "name": "Cult Ritual", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "XMeecO3IRvu5ck6F", "system": { @@ -20,14 +20,20 @@ "tier": 2, "description": "

A Fallen cult assembles around a sigil of the defeated gods and a bonfire that burns a sickly shade of green.

", "type": "event", - "impulses": "Profane the land, unite the Mortal Realm with the Circles Below", - "attribution": { - "source": "Daggerheart SRD", - "page": 106, - "artist": "" - } + "impulses": "Profane the land, unite the Mortal Realm with the Circles Below" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784557, + "modifiedTime": 1754215595854, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "QAXXiOKBDmCTauHD", "sort": 3400000, "ownership": { @@ -42,7 +48,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -151,7 +157,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754215115407, + "modifiedTime": 1754215176068, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!QAXXiOKBDmCTauHD.iiHjguQG2aBn9g8i" }, @@ -195,8 +209,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "0Rgqw1kUPeJ11ldd", "img": "icons/magic/unholy/orb-swirling-teal.webp", @@ -233,7 +246,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754215336818, + "modifiedTime": 1754215365748, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!QAXXiOKBDmCTauHD.0Rgqw1kUPeJ11ldd.dYQBQq1xIysM0qLo" }, @@ -282,7 +303,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754215384942, + "modifiedTime": 1754215453061, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!QAXXiOKBDmCTauHD.0Rgqw1kUPeJ11ldd.Hxw5lXE77bGzuaOu" } @@ -295,7 +324,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754215180426, + "modifiedTime": 1754215384953, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!QAXXiOKBDmCTauHD.0Rgqw1kUPeJ11ldd" }, @@ -303,76 +340,11 @@ "name": "The Summoning", "type": "feature", "system": { - "description": "

Countdown (6). When the PCs enter the scene or the cult begins the ritual to summon a demon, activate the countdown. Designate one adversary to lead the ritual. The countdown ticks down when a PC rolls with Fear. When it triggers, summon a @UUID[Compendium.daggerheart.adversaries.Actor.3tqCjDwJAQ7JKqMb]{Minor Demon} within Very Close range of the ritual’s leader. If the leader is defeated, the countdown ends with no effect as the ritual fails.

What will the cult do with this leashed demon if they succeed? What will they try to summon next?

", + "description": "

Countdown (6). When the PCs enter the scene or the cult begins the ritual to summon a demon, activate the countdown. Designate one adversary to lead the ritual. The countdown ticks down when a PC rolls with Fear. When it triggers, summon a Minor Demon within Very Close range of the ritual’s leader. If the leader is defeated, the countdown ends with no effect as the ritual fails.

What will the cult do with this leashed demon if they succeed? What will they try to summon next?

", "resource": null, - "actions": { - "bUIfzuWd1VfiV8sc": { - "type": "countdown", - "_id": "bUIfzuWd1VfiV8sc", - "systemPath": "actions", - "description": "

Countdown (6). When the PCs enter the scene or the cult begins the ritual to summon a demon, activate the countdown. Designate one adversary to lead the ritual. The countdown ticks down when a PC rolls with Fear.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "The Summoning", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/unholy/barrier-fire-pink.webp", - "progress": { - "looping": "noLooping", - "type": "fear", - "start": 1, - "startFormula": "6", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/unholy/barrier-fire-pink.webp", - "range": "" - }, - "suFEnfpOfeVRvnJF": { - "type": "effect", - "_id": "suFEnfpOfeVRvnJF", - "systemPath": "actions", - "description": "

Summon a @UUID[Compendium.daggerheart.adversaries.Actor.3tqCjDwJAQ7JKqMb]{Minor Demon} within Very Close range of the ritual’s leader.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Summon Demon", - "img": "icons/magic/unholy/barrier-fire-pink.webp", - "range": "" - } - }, + "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "oFfu3hUhp4ta4qwT", "img": "icons/magic/unholy/barrier-fire-pink.webp", @@ -385,7 +357,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754215458731, + "modifiedTime": 1754215511070, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!QAXXiOKBDmCTauHD.oFfu3hUhp4ta4qwT" }, @@ -397,8 +377,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "WltEUhtYwfnX8WCc", "img": "icons/skills/wounds/blood-drip-droplet-red.webp", @@ -411,7 +390,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754215513249, + "modifiedTime": 1754215561317, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!QAXXiOKBDmCTauHD.WltEUhtYwfnX8WCc" } diff --git a/src/packs/environments/environment_Divine_Usurpation_4DLYez7VbMCFDAuZ.json b/src/packs/environments/environment_Divine_Usurpation_4DLYez7VbMCFDAuZ.json index aacf87e9..c0b9e8e8 100644 --- a/src/packs/environments/environment_Divine_Usurpation_4DLYez7VbMCFDAuZ.json +++ b/src/packs/environments/environment_Divine_Usurpation_4DLYez7VbMCFDAuZ.json @@ -1,6 +1,6 @@ { "name": "Divine Usurpation", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "IKumu5HTLqONLYqb", "system": { @@ -21,14 +21,20 @@ "tier": 4, "description": "

A massive ritual designed to breach the gates of the Hallows Above and unseat the New Gods themselves.

", "type": "event", - "impulses": "Collect power, overawe, silence dissent", - "attribution": { - "source": "Daggerheart SRD", - "page": 110, - "artist": "" - } + "impulses": "Collect power, overawe, silence dissent" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784558, + "modifiedTime": 1754220432059, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "4DLYez7VbMCFDAuZ", "sort": 3400000, "ownership": { @@ -43,7 +49,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -135,14 +141,36 @@ "name": "Final Preparations", "type": "feature", "system": { - "description": "

When the environment first takes the spotlight, designate one adversary as the Usurper seeking to overthrow the gods. Activate a Long-Term Countdown (8) as the Usurper assembles what they need to conduct the ritual. When it triggers, spotlight this environment to use the β€œBeginning of the End” feature. While this environment remains in play, you can hold up to 15 Fear.

What does the Usurper still require: The heart of a High Seraph? The lodestone of an ancient waygate? The loyalty of two archenemies? The heartbroken tears of a pure soul?

", + "description": "

When the environment first takes the spotlight, designate one adversary as the Usurper seeking to overthrow the gods. Activate a Long-Term Countdown (8) as the Usurper assembles what they need to conduct the ritual. When it triggers, spotlight this environment to use the β€œBeginning of the End” feature. While this environment remains in play, you can hold up to 15 Fear.

What does the Usurper still require: The heart of a High Seraph? The lodestone of an ancient waygate? The loyalty of two archenemies? The heartbroken tears of a pure soul?

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

When the environment first takes the spotlight, designate one adversary as the Usurper seeking to overthrow the gods. Activate a Long-Term Countdown (8) as the Usurper assembles what they need to conduct the ritual. While this environment remains in play, you can hold up to 15 Fear.

What does the Usurper still require: The heart of a High Seraph? The lodestone of an ancient waygate? The loyalty of two archenemies? The heartbroken tears of a pure soul?

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdown", + "img": "icons/magic/unholy/hands-circle-light-green.webp", + "range": "" + }, "UMGyEHdQhYXyGEss": { "type": "effect", "_id": "UMGyEHdQhYXyGEss", "systemPath": "actions", - "description": "

Spotlight this environment to use the β€œBeginning of the End” feature.

", + "description": "

When the countdown triggers, spotlight this environment to use the β€œBeginning of the End” feature.

What does the Usurper still require: The heart of a High Seraph? The lodestone of an ancient waygate? The loyalty of two archenemies? The heartbroken tears of a pure soul?

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -159,43 +187,6 @@ "name": "Trigger Countdown", "img": "icons/magic/unholy/hands-circle-light-green.webp", "range": "" - }, - "uJSaDLFcrtvIPFaD": { - "type": "countdown", - "_id": "uJSaDLFcrtvIPFaD", - "systemPath": "actions", - "description": "

When the environment first takes the spotlight, designate one adversary as the Usurper seeking to overthrow the gods. Activate a Long-Term Countdown (8) as the Usurper assembles what they need to conduct the ritual.

What does the Usurper still require: The heart of a High Seraph? The lodestone of an ancient waygate? The loyalty of two archenemies? The heartbroken tears of a pure soul?

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Final Preparations", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/unholy/hands-circle-light-green.webp", - "progress": { - "looping": "noLooping", - "type": "custom", - "start": 1, - "startFormula": "8", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/unholy/hands-circle-light-green.webp", - "range": "" } }, "originItemType": null, @@ -212,7 +203,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754219653852, + "modifiedTime": 1754219787730, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!4DLYez7VbMCFDAuZ.IHLJjpOQyWjmCLAL" }, @@ -237,7 +236,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754219794596, + "modifiedTime": 1754219836707, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!4DLYez7VbMCFDAuZ.fA2wVTxpDPaTlP9v" }, @@ -260,6 +267,7 @@ "scalable": false, "key": "fear", "value": 2, + "keyIsID": false, "step": null } ], @@ -279,8 +287,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "OWUM3eFiZrIn0Bjd", "img": "icons/magic/unholy/orb-hands-pink.webp", @@ -293,7 +300,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754219844342, + "modifiedTime": 1754219926878, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!4DLYez7VbMCFDAuZ.OWUM3eFiZrIn0Bjd" }, @@ -316,6 +331,7 @@ "scalable": false, "key": "fear", "value": 3, + "keyIsID": false, "step": null } ], @@ -385,8 +401,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "CL3wPZNOtw6m5WVT", "img": "icons/magic/unholy/hand-light-pink.webp", @@ -418,7 +433,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754220033956, + "modifiedTime": 1754220033956, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!4DLYez7VbMCFDAuZ.CL3wPZNOtw6m5WVT.znFFS76Nopwb8Yi7" }, @@ -479,7 +502,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754220072322, + "modifiedTime": 1754220136670, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!4DLYez7VbMCFDAuZ.CL3wPZNOtw6m5WVT.i3KYskkA9D4GHbXi" } @@ -492,7 +523,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754219934348, + "modifiedTime": 1754220072337, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!4DLYez7VbMCFDAuZ.CL3wPZNOtw6m5WVT" }, @@ -500,14 +539,14 @@ "name": "Beginning of the End", "type": "feature", "system": { - "description": "

When the β€œFinal Preparations” long-term countdown triggers, the Usurper begins hammering on the gates of the Hallows themselves. Activate a Divine Siege Countdown (10). Spotlight the Usurper to describe the Usurper’s assault and tick down this countdown by 1. If the Usurper takes Major or greater damage, tick up the countdown by 1. When it triggers, the Usurper shatters the barrier between the Mortal Realm and the Hallows Above to slay the gods and take their place. You gain a Fear for each unmarked HP the Usurper has. You can immediately use the β€œGodslayer” feature without spending Fear to make an additional GM move.

How does the Mortal Realm writhe as the natural order is violated? What mortals witness this blasphemy from afar?

", + "description": "

When the β€œFinal Preparations” long-term countdown triggers, the Usurper begins hammering on the gates of the Hallows themselves. Activate a Divine Siege Countdown (10). Spotlight the Usurper to describe the Usurper’s assault and tick down this countdown by 1. If the Usurper takes Major or greater damage, tick up the countdown by 1. When it triggers, the Usurper shatters the barrier between the Mortal Realm and the Hallows Above to slay the gods and take their place. You gain a Fear for each unmarked HP the Usurper has. You can immediately use the β€œGodslayer” feature without spending Fear to make an additional GM move.

How does the Mortal Realm writhe as the natural order is violated? What mortals witness this blasphemy from afar?

", "resource": null, "actions": { - "N83u4SKOlCfLvdYI": { + "lUTJqI8Z9AR7t4B2": { "type": "effect", - "_id": "N83u4SKOlCfLvdYI", + "_id": "lUTJqI8Z9AR7t4B2", "systemPath": "actions", - "description": "

The Usurper shatters the barrier between the Mortal Realm and the Hallows Above to slay the gods and take their place. You gain a Fear for each unmarked HP the Usurper has. You can immediately use the β€œGodslayer” feature without spending Fear to make an additional GM move.

", + "description": "

When the β€œFinal Preparations” long-term countdown triggers, the Usurper begins hammering on the gates of the Hallows themselves. Activate a Divine Siege Countdown (10).

How does the Mortal Realm writhe as the natural order is violated? What mortals witness this blasphemy from afar?

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -521,50 +560,35 @@ "type": "any", "amount": null }, - "name": "Trigger Countdown", + "name": "Countdown", "img": "icons/magic/unholy/silhouette-robe-evil-glow.webp", "range": "" }, - "KNWpWnJboRIaZ3Yu": { - "type": "countdown", - "_id": "KNWpWnJboRIaZ3Yu", + "N83u4SKOlCfLvdYI": { + "type": "effect", + "_id": "N83u4SKOlCfLvdYI", "systemPath": "actions", - "description": "

When the β€œFinal Preparations” long-term countdown triggers, the Usurper begins hammering on the gates of the Hallows themselves. Activate a Divine Siege Countdown (10). Spotlight the Usurper to describe the Usurper’s assault and tick down this countdown by 1. If the Usurper takes Major or greater damage, tick up the countdown by 1.

How does the Mortal Realm writhe as the natural order is violated? What mortals witness this blasphemy from afar?

", + "description": "

Spotlight the Usurper to describe the Usurper’s assault and tick down the countdown by 1.

How does the Mortal Realm writhe as the natural order is violated? What mortals witness this blasphemy from afar?

", "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, "actionType": "action", "cost": [], "uses": { "value": null, "max": "", - "recovery": null, - "consumeOnSuccess": false + "recovery": null }, - "countdown": [ - { - "name": "Beginning of the End", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/unholy/silhouette-robe-evil-glow.webp", - "progress": { - "looping": "noLooping", - "type": "custom", - "startValue": "10", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Countdown", + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Spotlight Usurper", "img": "icons/magic/unholy/silhouette-robe-evil-glow.webp", "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "AJdG1krRvixBFCZG", "img": "icons/magic/unholy/silhouette-robe-evil-glow.webp", @@ -577,7 +601,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754220141696, + "modifiedTime": 1754220317609, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!4DLYez7VbMCFDAuZ.AJdG1krRvixBFCZG" }, @@ -641,8 +673,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "GUAo44cJCnS1GE9p", "img": "icons/magic/unholy/barrier-fire-pink.webp", @@ -655,7 +686,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754220330287, + "modifiedTime": 1754220393787, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!4DLYez7VbMCFDAuZ.GUAo44cJCnS1GE9p" } diff --git a/src/packs/environments/environment_Hallowed_Temple_dsA6j69AnaJhUyqH.json b/src/packs/environments/environment_Hallowed_Temple_dsA6j69AnaJhUyqH.json index f005fa59..745414dc 100644 --- a/src/packs/environments/environment_Hallowed_Temple_dsA6j69AnaJhUyqH.json +++ b/src/packs/environments/environment_Hallowed_Temple_dsA6j69AnaJhUyqH.json @@ -1,6 +1,6 @@ { "name": "Hallowed Temple", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "XMeecO3IRvu5ck6F", "system": { @@ -19,14 +19,20 @@ "tier": 2, "description": "

A bustling but well-kept temple that provides healing and hosts regular services, overseen by a priest or seraph.

", "type": "social", - "impulses": "Connect the Mortal Realm with the Hallows Above, display the power of the divine, provide aid and succor to the faithful", - "attribution": { - "source": "Daggerheart SRD", - "page": 107, - "artist": "" - } + "impulses": "Connect the Mortal Realm with the Hallows Above, display the power of the divine, provide aid and succor to the faithful" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784558, + "modifiedTime": 1754216032747, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "dsA6j69AnaJhUyqH", "sort": 3400000, "ownership": { @@ -41,7 +47,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -218,7 +224,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754215631233, + "modifiedTime": 1754215723867, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dsA6j69AnaJhUyqH.hgHpS2k1sVxHKiG1" }, @@ -226,7 +240,7 @@ "name": "Divine Guidance", "type": "feature", "system": { - "description": "

A PC who prays to a deity while in the Hallowed Temple can make an Instinct Roll to receive answers. If the god they beseech isn’t welcome in this temple, the roll is made with disadvantage.

  • Critical Success: The PC gains clear information. Additionally, they gain [[/r 1d4]] Hope, which can be distributed between the party if they share the vision and guidance they received.

  • Success with Hope: The PC receives clear information.

  • Success with Fear: The PC receives brief flashes of insight and an emotional impression conveying an answer.

  • Any Failure: The PC receives only vague flashes. They can mark a Stress to receive one clear image without context.

What does it feel like as you are touched by this vision? What feeling lingers after the images have passed?

", + "description": "

A PC who prays to a deity while in the Hallowed Temple can make an Instinct Roll to receive answers. If the god they beseech isn’t welcome in this temple, the roll is made with disadvantage.

  • Critical Success: The PC gains clear information. Additionally, they gain [[/r 1d4]] Hope, which can be distributed between the party if they share the vision and guidance they received.

  • Success with Hope: The PC receives clear information.

  • Success with Fear: The PC receives brief flashes of insight and an emotional impression conveying an answer.

  • Any Failure: The PC receives only vague flashes. They can mark a Stress to receive one clear image without context.

What does it feel like as you are touched by this vision? What feeling lingers after the images have passed?
", "resource": null, "actions": {}, "originItemType": null, @@ -243,7 +257,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754215727707, + "modifiedTime": 1754215816007, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dsA6j69AnaJhUyqH.uqV1mTkJmXJwMYue" }, @@ -308,8 +330,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "vICfHK2urDQ2Jm8s", "img": "icons/magic/holy/barrier-shield-winged-blue.webp", @@ -322,7 +343,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754215819086, + "modifiedTime": 1754215871949, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dsA6j69AnaJhUyqH.vICfHK2urDQ2Jm8s" }, @@ -345,6 +374,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -364,8 +394,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "8tGAuFRyM4onvQ2o", "img": "icons/magic/holy/projectiles-blades-salvo-yellow.webp", @@ -378,7 +407,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754215874972, + "modifiedTime": 1754216002924, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!dsA6j69AnaJhUyqH.8tGAuFRyM4onvQ2o" } diff --git a/src/packs/environments/environment_Haunted_City_OzYbizKraK92FDiI.json b/src/packs/environments/environment_Haunted_City_OzYbizKraK92FDiI.json index 1bd07a57..11c98e66 100644 --- a/src/packs/environments/environment_Haunted_City_OzYbizKraK92FDiI.json +++ b/src/packs/environments/environment_Haunted_City_OzYbizKraK92FDiI.json @@ -1,6 +1,6 @@ { "name": "Haunted City", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "XMeecO3IRvu5ck6F", "system": { @@ -19,14 +19,20 @@ "tier": 2, "description": "

An abandoned city populated by the restless spirits of eras past.

", "type": "exploration", - "impulses": "Misdirect and disorient, replay apocalypses both public and personal", - "attribution": { - "source": "Daggerheart SRD", - "page": 107, - "artist": "" - } + "impulses": "Misdirect and disorient, replay apocalypses both public and personal" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784559, + "modifiedTime": 1754216926766, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "OzYbizKraK92FDiI", "sort": 3400000, "ownership": { @@ -41,7 +47,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -150,7 +156,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754216528212, + "modifiedTime": 1754216614619, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!OzYbizKraK92FDiI.h8Dv8pToiCVklPhv" }, @@ -234,7 +248,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754216708580, + "modifiedTime": 1754216728509, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!OzYbizKraK92FDiI.gRpkBU3CLJvDnB7I.S9gl4jqdrziC1F0h" } @@ -247,7 +269,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754216627238, + "modifiedTime": 1754216708590, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!OzYbizKraK92FDiI.gRpkBU3CLJvDnB7I" }, @@ -259,8 +289,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "ZA2RzxH5FlnrcYLN", "img": "icons/magic/death/undead-ghosts-trio-blue.webp", @@ -273,7 +302,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754216732561, + "modifiedTime": 1754216779367, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!OzYbizKraK92FDiI.ZA2RzxH5FlnrcYLN" }, @@ -281,59 +318,34 @@ "name": "Apocalypse Then", "type": "feature", "system": { - "description": "

Spend a Fear to manifest the echo of a past disaster that ravaged the city. Activate a Progress Countdown (5) as the disaster replays around the PCs. To complete the countdown and escape the catastrophe, the PCs must overcome threats such as rampaging fires, stampeding civilians, collapsing buildings, or crumbling streets, while recalling history and finding clues to escape the inevitable.

Is this the disaster that led the city to be abandoned? What is known about this disaster and how could that help the PCs escape?

", + "description": "

Spend a Fear to manifest the echo of a past disaster that ravaged the city. Activate a Progress Countdown (5) as the disaster replays around the PCs. To complete the countdown and escape the catastrophe, the PCs must overcome threats such as rampaging fires, stampeding civilians, collapsing buildings, or crumbling streets, while recalling history and finding clues to escape the inevitable.

Is this the disaster that led the city to be abandoned? What is known about this disaster and how could that help the PCs escape?

", "resource": null, "actions": { - "VhqZKDA4032i8zY3": { - "type": "countdown", - "_id": "VhqZKDA4032i8zY3", + "7H16PYHHgK0Z34NU": { + "type": "effect", + "_id": "7H16PYHHgK0Z34NU", "systemPath": "actions", - "description": "

Spend a Fear to manifest the echo of a past disaster that ravaged the city. Activate a Progress Countdown (5) as the disaster replays around the PCs. To complete the countdown and escape the catastrophe, the PCs must overcome threats such as rampaging fires, stampeding civilians, collapsing buildings, or crumbling streets, while recalling history and finding clues to escape the inevitable.

Is this the disaster that led the city to be abandoned? What is known about this disaster and how could that help the PCs escape?

", + "description": "

Spend a Fear to manifest the echo of a past disaster that ravaged the city. Activate a Progress Countdown (5) as the disaster replays around the PCs.

", "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "fear", - "value": 1, - "itemId": null, - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", - "recovery": null, - "consumeOnSuccess": false + "recovery": null }, - "countdown": [ - { - "name": "Apocalypse Then", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/death/skull-weapon-staff-glow-pink.webp", - "progress": { - "looping": "noLooping", - "type": "custom", - "start": 1, - "startFormula": "5", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdown", "img": "icons/magic/death/skull-weapon-staff-glow-pink.webp", "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "i0FV2Djaq0vB57cq", "img": "icons/magic/death/skull-weapon-staff-glow-pink.webp", @@ -346,7 +358,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754216782337, + "modifiedTime": 1754216854366, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!OzYbizKraK92FDiI.i0FV2Djaq0vB57cq" } diff --git a/src/packs/environments/environment_Imperial_Court_jr1xAoXzVwVblzxI.json b/src/packs/environments/environment_Imperial_Court_jr1xAoXzVwVblzxI.json index 4b49c341..ab2c1ef8 100644 --- a/src/packs/environments/environment_Imperial_Court_jr1xAoXzVwVblzxI.json +++ b/src/packs/environments/environment_Imperial_Court_jr1xAoXzVwVblzxI.json @@ -1,6 +1,6 @@ { "name": "Imperial Court", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "IKumu5HTLqONLYqb", "system": { @@ -21,14 +21,20 @@ "tier": 4, "description": "

The majestic domain of a powerful empire, lavishly appointed with stolen treasures.

", "type": "social", - "impulses": "Justify and perpetuate imperial rule, seduce rivals with promises of power and comfort", - "attribution": { - "source": "Daggerheart SRD", - "page": 111, - "artist": "" - } + "impulses": "Justify and perpetuate imperial rule, seduce rivals with promises of power and comfort" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784559, + "modifiedTime": 1754220962410, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "jr1xAoXzVwVblzxI", "sort": 3400000, "ownership": { @@ -43,7 +49,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -152,7 +158,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754220483586, + "modifiedTime": 1754220544408, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!jr1xAoXzVwVblzxI.OXUbWRt1Dj0vk7mW" }, @@ -177,7 +191,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754220547291, + "modifiedTime": 1754220594074, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!jr1xAoXzVwVblzxI.LURReixasmMbiP2C" }, @@ -200,6 +222,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -268,8 +291,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "tm9FL5gJF7Oheu21", "img": "icons/magic/death/skull-energy-light-white.webp", @@ -282,7 +304,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754220597682, + "modifiedTime": 1754220717476, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!jr1xAoXzVwVblzxI.tm9FL5gJF7Oheu21" }, @@ -341,8 +371,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "HwSKX5r40ux0OfJN", "img": "icons/sundries/documents/document-sealed-red-white.webp", @@ -355,7 +384,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754220719710, + "modifiedTime": 1754220802876, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!jr1xAoXzVwVblzxI.HwSKX5r40ux0OfJN" }, @@ -378,6 +415,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -421,8 +459,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "YPMgWUagVq1Hicqo", "img": "icons/magic/perception/orb-eye-scrying.webp", @@ -435,7 +472,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754220808435, + "modifiedTime": 1754220919535, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!jr1xAoXzVwVblzxI.YPMgWUagVq1Hicqo" } diff --git a/src/packs/environments/environment_Local_Tavern_cM4X81DOyvxNIi52.json b/src/packs/environments/environment_Local_Tavern_cM4X81DOyvxNIi52.json index 105f230f..cb440aab 100644 --- a/src/packs/environments/environment_Local_Tavern_cM4X81DOyvxNIi52.json +++ b/src/packs/environments/environment_Local_Tavern_cM4X81DOyvxNIi52.json @@ -1,6 +1,6 @@ { "name": "Local Tavern", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "GQ0VnOLrKBIHR6Us", "system": { @@ -33,14 +33,20 @@ "tier": 1, "description": "

A lively tavern that serves as the social hub for its town.

", "type": "social", - "impulses": "Provide opportunities for adventurers, nurture community", - "attribution": { - "source": "Daggerheart SRD", - "page": 105, - "artist": "" - } + "impulses": "Provide opportunities for adventurers, nurture community" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784561, + "modifiedTime": 1754213299544, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "cM4X81DOyvxNIi52", "sort": 3400000, "ownership": { @@ -55,7 +61,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -164,7 +170,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754212687286, + "modifiedTime": 1754212809812, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!cM4X81DOyvxNIi52.7to5Zu0lNycExCQi" }, @@ -189,7 +203,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754212837626, + "modifiedTime": 1754212910714, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!cM4X81DOyvxNIi52.oLn3co1mN83OiFWo" }, @@ -201,8 +223,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "cAbSo5VQHxJqJPKm", "img": "icons/magic/unholy/silhouette-robe-evil-power.webp", @@ -215,7 +236,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754212913527, + "modifiedTime": 1754212942862, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!cM4X81DOyvxNIi52.cAbSo5VQHxJqJPKm" }, @@ -223,12 +252,11 @@ "name": "Someone Comes to Town", "type": "feature", "system": { - "description": "

Introduce a significant NPC who wants to hire the party for something or who relates to a PC’s background.

Did they know the PCs were here? What do they want in this town?

", + "description": "

Introduce a signifi cant NPC who wants to hire the party for something or who relates to a PC’s background.

Did they know the PCs were here? What do they want in this town?

", "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "QPezCAC18vIc5xRC", "img": "icons/environment/people/commoner.webp", @@ -241,7 +269,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754212945860, + "modifiedTime": 1754212975536, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!cM4X81DOyvxNIi52.QPezCAC18vIc5xRC" }, @@ -305,8 +341,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "H3LNvVrUbsAkgjni", "img": "icons/skills/melee/unarmed-punch-fist-white.webp", @@ -319,7 +354,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754212978783, + "modifiedTime": 1754213065125, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!cM4X81DOyvxNIi52.H3LNvVrUbsAkgjni" } diff --git a/src/packs/environments/environment_Mountain_Pass_acMu9wJrMZZzLSTJ.json b/src/packs/environments/environment_Mountain_Pass_acMu9wJrMZZzLSTJ.json index 8e7cf1c8..e2a31c41 100644 --- a/src/packs/environments/environment_Mountain_Pass_acMu9wJrMZZzLSTJ.json +++ b/src/packs/environments/environment_Mountain_Pass_acMu9wJrMZZzLSTJ.json @@ -1,6 +1,6 @@ { "name": "Mountain Pass", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "XMeecO3IRvu5ck6F", "system": { @@ -27,14 +27,20 @@ "tier": 2, "description": "

Stony peaks that pierce the clouds, with a twisting path winding its way up and over through many switchbacks.

", "type": "traversal", - "impulses": "Exact a chilling toll in supplies and stamina, reveal magical tampering, slow down travel", - "attribution": { - "source": "Daggerheart SRD", - "page": 108, - "artist": "" - } + "impulses": "Exact a chilling toll in supplies and stamina, reveal magical tampering, slow down travel" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784562, + "modifiedTime": 1754217303533, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "acMu9wJrMZZzLSTJ", "sort": 3400000, "ownership": { @@ -49,7 +55,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -158,12 +164,20 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754216971017, + "modifiedTime": 1754217016445, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!acMu9wJrMZZzLSTJ.cIAMenvMXHPTpOFn" }, { - "name": "Avalanche", + "name": "Avalance", "type": "feature", "system": { "description": "

Spend a Fear to carve the mountain with an icy torrent, causing an avalanche. All PCs in its path must succeed on an Agility or Strength Reaction Roll or be bowled over and carried down the mountain. A PC using rope, pitons, or other climbing gear gains advantage on this roll. Targets who fail are knocked down the mountain to Far range, take 2d20 physical damage, and must mark a Stress. Targets who succeed must mark a Stress.

How do the PCs try to weather the avalanche? What approach do the characters take to fi nd one another when their companions go hurtling down the mountainside?

", @@ -222,8 +236,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "jkm03DXYYajsRk2j", "img": "icons/magic/earth/projectile-boulder-dust.webp", @@ -236,7 +249,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754217019442, + "modifiedTime": 1754217102897, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!acMu9wJrMZZzLSTJ.jkm03DXYYajsRk2j" }, @@ -248,8 +269,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "hkZVEduCWJFR0h2S", "img": "icons/creatures/birds/corvid-flying-wings-purple.webp", @@ -262,7 +282,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754217106960, + "modifiedTime": 1754217151815, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!acMu9wJrMZZzLSTJ.hkZVEduCWJFR0h2S" }, @@ -270,14 +298,36 @@ "name": "Icy Winds", "type": "feature", "system": { - "description": "

Countdown (Loop 4). When the PCs enter the mountain pass, activate the countdown. When it triggers, all characters traveling through the pass must succeed on a Strength Reaction Roll or mark a Stress. A PC wearing clothes appropriate for extreme cold gains advantage on these rolls.

What parts of the PC’s bodies go numb fi rst? How do they try to keep warm as they press forward?

", + "description": "

Countdown (Loop 4). When the PCs enter the mountain pass, activate the countdown. When it triggers, all characters traveling through the pass must succeed on a Strength Reaction Roll or mark a Stress. A PC wearing clothes appropriate for extreme cold gains advantage on these rolls.

What parts of the PC’s bodies go numb fi rst? How do they try to keep warm as they press forward?

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

Countdown (Loop 4). When the PCs enter the mountain pass, activate the countdown.

What parts of the PC’s bodies go numb fi rst? How do they try to keep warm as they press forward?

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdown", + "img": "icons/magic/water/snowflake-ice-blue-white.webp", + "range": "" + }, "kDV2h9DhO6fEDcjl": { "type": "attack", "_id": "kDV2h9DhO6fEDcjl", "systemPath": "actions", - "description": "

All characters traveling through the pass must succeed on a Strength Reaction Roll or mark a Stress. A PC wearing clothes appropriate for extreme cold gains advantage on these rolls.

What parts of the PC’s bodies go numb fi rst? How do they try to keep warm as they press forward?

", + "description": "

When the countdown triggers, all characters traveling through the pass must succeed on a Strength Reaction Roll or mark a Stress. A PC wearing clothes appropriate for extreme cold gains advantage on these rolls.

What parts of the PC’s bodies go numb fi rst? How do they try to keep warm as they press forward?

", "chatDisplay": true, "actionType": "action", "cost": [], @@ -344,48 +394,10 @@ "name": "Roll Save", "img": "icons/magic/water/snowflake-ice-blue-white.webp", "range": "" - }, - "yJj6IsNNTEyKndvO": { - "type": "countdown", - "_id": "yJj6IsNNTEyKndvO", - "systemPath": "actions", - "description": "

Countdown (Loop 4). When the PCs enter the mountain pass, activate the countdown.

", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "reaction", - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "countdown": [ - { - "name": "Icy Winds", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/water/snowflake-ice-blue-white.webp", - "progress": { - "looping": "looping", - "type": "actionRoll", - "start": 1, - "startFormula": "4", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", - "img": "icons/magic/water/snowflake-ice-blue-white.webp", - "range": "" } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "K8ld4m5yTA6WZwUs", "img": "icons/magic/water/snowflake-ice-blue-white.webp", @@ -398,7 +410,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754217155443, + "modifiedTime": 1754217244471, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!acMu9wJrMZZzLSTJ.K8ld4m5yTA6WZwUs" } diff --git a/src/packs/environments/environment_Necromancer_s_Ossuary_h3KyRL7AshhLAmcH.json b/src/packs/environments/environment_Necromancer_s_Ossuary_h3KyRL7AshhLAmcH.json index e96b9177..5afc9db6 100644 --- a/src/packs/environments/environment_Necromancer_s_Ossuary_h3KyRL7AshhLAmcH.json +++ b/src/packs/environments/environment_Necromancer_s_Ossuary_h3KyRL7AshhLAmcH.json @@ -1,6 +1,6 @@ { "name": "Necromancer’s Ossuary", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "IKumu5HTLqONLYqb", "system": { @@ -18,14 +18,20 @@ "tier": 4, "description": "

A dusty crypt with a library, twisting corridors, and abundant sarcophagi, spattered with the blood of ill-fated invaders.

", "type": "exploration", - "impulses": "Confound intruders, delve into secrets best left buried, manifest unlife, unleash a tide of undead", - "attribution": { - "source": "Daggerheart SRD", - "page": 111, - "artist": "" - } + "impulses": "Confound intruders, delve into secrets best left buried, manifest unlife, unleash a tide of undead" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784563, + "modifiedTime": 1754221404218, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "h3KyRL7AshhLAmcH", "sort": 3400000, "ownership": { @@ -40,7 +46,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -202,7 +208,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754220983196, + "modifiedTime": 1754221063808, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!h3KyRL7AshhLAmcH.SJo1Pw0fE4vKnisr" }, @@ -227,7 +241,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754221066722, + "modifiedTime": 1754221105396, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!h3KyRL7AshhLAmcH.Egi337jsYlldHzEH" }, @@ -311,8 +333,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "asSGMUdf4gG4PO8F", "img": "icons/magic/death/bones-crossed-gray.webp", @@ -325,7 +346,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754221109411, + "modifiedTime": 1754221197023, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!h3KyRL7AshhLAmcH.asSGMUdf4gG4PO8F" }, @@ -384,8 +413,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "mnpqMpYCjdlwtvBp", "img": "icons/magic/death/skull-weapon-staff-glow-pink.webp", @@ -398,7 +426,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754221206511, + "modifiedTime": 1754221265522, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!h3KyRL7AshhLAmcH.mnpqMpYCjdlwtvBp" }, @@ -421,6 +457,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -440,8 +477,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "chJRXNg5zyTGbcG5", "img": "icons/magic/death/undead-zombie-grave-green.webp", @@ -454,7 +490,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754221271110, + "modifiedTime": 1754221379341, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!h3KyRL7AshhLAmcH.chJRXNg5zyTGbcG5" } diff --git a/src/packs/environments/environment_Outpost_Town_YezryR32uo39xRxW.json b/src/packs/environments/environment_Outpost_Town_YezryR32uo39xRxW.json index bc3c211d..8e58b6a8 100644 --- a/src/packs/environments/environment_Outpost_Town_YezryR32uo39xRxW.json +++ b/src/packs/environments/environment_Outpost_Town_YezryR32uo39xRxW.json @@ -1,6 +1,6 @@ { "name": "Outpost Town", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "GQ0VnOLrKBIHR6Us", "system": { @@ -29,14 +29,20 @@ "tier": 1, "description": "

A small town on the outskirts of a nation or region, close to a dungeon, tombs, or other adventuring destinations.

", "type": "social", - "impulses": "Drive the desperate to certain doom, profi t off of ragged hope", - "attribution": { - "source": "Daggerheart SRD", - "page": 105, - "artist": "" - } + "impulses": "Drive the desperate to certain doom, profi t off of ragged hope" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784564, + "modifiedTime": 1754213845896, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "YezryR32uo39xRxW", "sort": 3400000, "ownership": { @@ -51,7 +57,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -160,7 +166,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754213333976, + "modifiedTime": 1754213421967, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YezryR32uo39xRxW.whN2Ztn2wMqD7uW3" }, @@ -185,7 +199,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754213424615, + "modifiedTime": 1754213478312, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YezryR32uo39xRxW.nhf2TK7HSkuAgIi8" }, @@ -210,7 +232,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754213485012, + "modifiedTime": 1754213525172, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YezryR32uo39xRxW.cPozA1iT4NLwsWqB" }, @@ -222,8 +252,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "uxu8YrvYVxP3Qc2y", "img": "icons/skills/melee/unarmed-punch-fist-yellow-red.webp", @@ -236,7 +265,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754213528534, + "modifiedTime": 1754213582252, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YezryR32uo39xRxW.uxu8YrvYVxP3Qc2y" }, @@ -259,6 +296,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -278,8 +316,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "reaction" + "originId": null }, "_id": "21tdueq5Wgvj3vG4", "img": "icons/environment/settlement/watchtower-moonlit-blue.webp", @@ -292,7 +329,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754213584705, + "modifiedTime": 1754213779920, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!YezryR32uo39xRxW.21tdueq5Wgvj3vG4" } diff --git a/src/packs/environments/environment_Pitched_Battle_EWD3ZsLoK6VMVOf7.json b/src/packs/environments/environment_Pitched_Battle_EWD3ZsLoK6VMVOf7.json index 7be27924..3db3d3b6 100644 --- a/src/packs/environments/environment_Pitched_Battle_EWD3ZsLoK6VMVOf7.json +++ b/src/packs/environments/environment_Pitched_Battle_EWD3ZsLoK6VMVOf7.json @@ -1,6 +1,6 @@ { "name": "Pitched Battle", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "MfrIkJK12PAEfbPL", "system": { @@ -29,14 +29,20 @@ "tier": 3, "description": "

A massive combat between two large groups of armed combatants.

", "type": "event", - "impulses": "Seize people, land, and wealth, spill blood for greed and glory", - "attribution": { - "source": "Daggerheart SRD", - "page": 109, - "artist": "" - } + "impulses": "Seize people, land, and wealth, spill blood for greed and glory" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784565, + "modifiedTime": 1754219040722, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "EWD3ZsLoK6VMVOf7", "sort": 3400000, "ownership": { @@ -51,7 +57,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -160,7 +166,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754218688227, + "modifiedTime": 1754218745084, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!EWD3ZsLoK6VMVOf7.HG9GwIZoCDcqOEOc" }, @@ -172,8 +186,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "fnvOiHKsd34EaLqG", "img": "icons/magic/fire/flame-burning-building.webp", @@ -186,7 +199,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754218761813, + "modifiedTime": 1754218807876, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!EWD3ZsLoK6VMVOf7.fnvOiHKsd34EaLqG" }, @@ -209,6 +230,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -279,8 +301,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "r9kkodHghWm01mje", "img": "icons/magic/fire/explosion-flame-lightning-strike.webp", @@ -293,7 +314,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754218810456, + "modifiedTime": 1754218947511, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!EWD3ZsLoK6VMVOf7.r9kkodHghWm01mje" }, @@ -305,8 +334,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "ZAIvH5CfhehW48EY", "img": "icons/environment/people/charge.webp", @@ -319,7 +347,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754218951527, + "modifiedTime": 1754218992671, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!EWD3ZsLoK6VMVOf7.ZAIvH5CfhehW48EY" } diff --git a/src/packs/environments/environment_Raging_River_t4cdqTfzcqP3H1vJ.json b/src/packs/environments/environment_Raging_River_t4cdqTfzcqP3H1vJ.json index 5c973fa6..211c619a 100644 --- a/src/packs/environments/environment_Raging_River_t4cdqTfzcqP3H1vJ.json +++ b/src/packs/environments/environment_Raging_River_t4cdqTfzcqP3H1vJ.json @@ -1,6 +1,6 @@ { "name": "Raging River", - "img": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "img": "icons/svg/mystery-man.svg", "type": "environment", "folder": "GQ0VnOLrKBIHR6Us", "system": { @@ -29,14 +29,20 @@ "tier": 1, "description": "

A swift-moving river without a bridge crossing, deep enough to sweep away most people.

", "type": "traversal", - "impulses": "Bar crossing, carry away the unready, divide the land", - "attribution": { - "source": "Daggerheart SRD", - "page": 106, - "artist": "" - } + "impulses": "Bar crossing, carry away the unready, divide the land" }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753922784565, + "modifiedTime": 1754214189395, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_id": "t4cdqTfzcqP3H1vJ", "sort": 3400000, "ownership": { @@ -51,7 +57,7 @@ "width": 1, "height": 1, "texture": { - "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", + "src": "icons/svg/mystery-man.svg", "anchorX": 0.5, "anchorY": 0.5, "offsetX": 0, @@ -143,43 +149,28 @@ "name": "Dangerous Crossing", "type": "feature", "system": { - "description": "

Crossing the river requires the party to complete a Progress Countdown (4).

A PC who rolls a failure with Fear is immediately targeted by the β€œUndertow” action without requiring a Fear to be spent on the feature.

Have any of the PCs forded rivers like this before? Are any of them afraid of drowning?

", + "description": "

Crossing the river requires the party to complete a Progress Countdown (4).

A PC who rolls a failure with Fear is immediately targeted by the β€œUndertow” action without requiring a Fear to be spent on the feature.

Have any of the PCs forded rivers like this before? Are any of them afraid of drowning?

", "resource": null, "actions": { - "91HPIEEcVKPQ5qqn": { - "type": "countdown", - "_id": "91HPIEEcVKPQ5qqn", + "miodf3TMFrGRCvj6": { + "type": "effect", + "_id": "miodf3TMFrGRCvj6", "systemPath": "actions", - "description": "

Crossing the river requires the party to complete a Progress Countdown (4).

A PC who rolls a failure with Fear is immediately targeted by the β€œUndertow” action without requiring a Fear to be spent on the feature.

Have any of the PCs forded rivers like this before? Are any of them afraid of drowning?

", + "description": "

Crossing the river requires the party to complete a Progress Countdown (4).

A PC who rolls a failure with Fear is immediately targeted by the β€œUndertow” action without requiring a Fear to be spent on the feature.

Have any of the PCs forded rivers like this before? Are any of them afraid of drowning?

", "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, "actionType": "action", "cost": [], "uses": { "value": null, "max": "", - "recovery": null, - "consumeOnSuccess": false + "recovery": null }, - "countdown": [ - { - "name": "Dangerous Crossing", - "type": "encounter", - "defaultOwnership": -1, - "img": "icons/magic/water/wave-water-blue.webp", - "progress": { - "looping": "noLooping", - "type": "custom", - "start": 1, - "startFormula": "4", - "current": 1 - }, - "ownership": {} - } - ], - "name": "Start Countdown", + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Countdown", "img": "icons/magic/water/wave-water-blue.webp", "range": "" } @@ -198,7 +189,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754213872081, + "modifiedTime": 1754214257220, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!t4cdqTfzcqP3H1vJ.4ILX7BCinmsGqrJM" }, @@ -221,6 +220,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -296,8 +296,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "WsNoSwwtv0r80BMj", "img": "icons/magic/water/wave-water-teal.webp", @@ -336,7 +335,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754214052231, + "modifiedTime": 1754214071300, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items.effects!t4cdqTfzcqP3H1vJ.WsNoSwwtv0r80BMj.T0ouSQyR8cVpAn79" } @@ -349,7 +356,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754213973393, + "modifiedTime": 1754214052244, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!t4cdqTfzcqP3H1vJ.WsNoSwwtv0r80BMj" }, @@ -372,6 +387,7 @@ "scalable": false, "key": "fear", "value": 1, + "keyIsID": false, "step": null } ], @@ -391,8 +407,7 @@ } }, "originItemType": null, - "originId": null, - "featureForm": "action" + "originId": null }, "_id": "SDTS3LOPMVJOt1S1", "img": "icons/creatures/reptiles/snake-fangs-bite-green-yellow.webp", @@ -405,7 +420,15 @@ }, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754214076107, + "modifiedTime": 1754214146772, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!actors.items!t4cdqTfzcqP3H1vJ.SDTS3LOPMVJOt1S1" } diff --git a/src/packs/environments/folders_Tier_1_GQ0VnOLrKBIHR6Us.json b/src/packs/environments/folders_Tier_1_GQ0VnOLrKBIHR6Us.json index 7e6595b9..04e5dc10 100644 --- a/src/packs/environments/folders_Tier_1_GQ0VnOLrKBIHR6Us.json +++ b/src/packs/environments/folders_Tier_1_GQ0VnOLrKBIHR6Us.json @@ -8,5 +8,16 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1752684241225, + "modifiedTime": 1752684241225, + "lastModifiedBy": "k0gmQFlvrPvlTtbh" + }, "_key": "!folders!GQ0VnOLrKBIHR6Us" } diff --git a/src/packs/environments/folders_Tier_2_XMeecO3IRvu5ck6F.json b/src/packs/environments/folders_Tier_2_XMeecO3IRvu5ck6F.json index 9a77a641..8457c30f 100644 --- a/src/packs/environments/folders_Tier_2_XMeecO3IRvu5ck6F.json +++ b/src/packs/environments/folders_Tier_2_XMeecO3IRvu5ck6F.json @@ -8,5 +8,16 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1752684244562, + "modifiedTime": 1752684244562, + "lastModifiedBy": "k0gmQFlvrPvlTtbh" + }, "_key": "!folders!XMeecO3IRvu5ck6F" } diff --git a/src/packs/environments/folders_Tier_3_MfrIkJK12PAEfbPL.json b/src/packs/environments/folders_Tier_3_MfrIkJK12PAEfbPL.json index 1ae0a609..3c0fd3b7 100644 --- a/src/packs/environments/folders_Tier_3_MfrIkJK12PAEfbPL.json +++ b/src/packs/environments/folders_Tier_3_MfrIkJK12PAEfbPL.json @@ -8,5 +8,16 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1752684247120, + "modifiedTime": 1752684247120, + "lastModifiedBy": "k0gmQFlvrPvlTtbh" + }, "_key": "!folders!MfrIkJK12PAEfbPL" } diff --git a/src/packs/environments/folders_Tier_4_IKumu5HTLqONLYqb.json b/src/packs/environments/folders_Tier_4_IKumu5HTLqONLYqb.json index ed5b9f0a..66442727 100644 --- a/src/packs/environments/folders_Tier_4_IKumu5HTLqONLYqb.json +++ b/src/packs/environments/folders_Tier_4_IKumu5HTLqONLYqb.json @@ -8,5 +8,16 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1752684249751, + "modifiedTime": 1752684249751, + "lastModifiedBy": "k0gmQFlvrPvlTtbh" + }, "_key": "!folders!IKumu5HTLqONLYqb" } diff --git a/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json b/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json index 174f20c8..96a2edd7 100644 --- a/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json +++ b/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 13, "severe": 31 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [ @@ -60,7 +55,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753807844639, + "modifiedTime": 1753807844639, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!LzLOJ9EVaHWAjoq9.qlzHOAnpBYzosQxK" } @@ -71,5 +74,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753807810859, + "modifiedTime": 1753807844642, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!LzLOJ9EVaHWAjoq9" } diff --git a/src/packs/items/armors/armor_Advanced_Full_Plate_Armor_crIbCb9NZ4K0VpoU.json b/src/packs/items/armors/armor_Advanced_Full_Plate_Armor_crIbCb9NZ4K0VpoU.json index dbc9d29f..4d97b8bb 100644 --- a/src/packs/items/armors/armor_Advanced_Full_Plate_Armor_crIbCb9NZ4K0VpoU.json +++ b/src/packs/items/armors/armor_Advanced_Full_Plate_Armor_crIbCb9NZ4K0VpoU.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 15, "severe": 35 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [ @@ -65,7 +60,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809243346, + "modifiedTime": 1753809243346, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!crIbCb9NZ4K0VpoU.awdHgEaM54G3emOU" } @@ -76,5 +79,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809204693, + "modifiedTime": 1753809243349, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!crIbCb9NZ4K0VpoU" } diff --git a/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json b/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json index c9ffc8a3..032ebe6d 100644 --- a/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json +++ b/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 9, "severe": 23 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [ @@ -60,7 +55,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753807740227, + "modifiedTime": 1753807740227, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!epkAmlZVk7HOfUUT.Fq9Q93IHCchhfSss" } @@ -71,5 +74,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753807704469, + "modifiedTime": 1753807740230, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!epkAmlZVk7HOfUUT" } diff --git a/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json b/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json index 4e1927e3..ef9d64f9 100644 --- a/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json +++ b/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json @@ -18,11 +18,6 @@ "baseThresholds": { "major": 11, "severe": 27 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [], @@ -32,5 +27,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753807744573, + "modifiedTime": 1753807795515, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!itSOp2GCyem0f7oM" } diff --git a/src/packs/items/armors/armor_Bare_Bones_ITAjcigTcUw5pMCN.json b/src/packs/items/armors/armor_Bare_Bones_ITAjcigTcUw5pMCN.json index 5158b100..1cddd977 100644 --- a/src/packs/items/armors/armor_Bare_Bones_ITAjcigTcUw5pMCN.json +++ b/src/packs/items/armors/armor_Bare_Bones_ITAjcigTcUw5pMCN.json @@ -39,7 +39,7 @@ "key": "system.armorScore", "mode": 2, "value": "@system.traits.strength.value", - "priority": 21 + "priority": null } ], "disabled": false, @@ -60,7 +60,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754064108601, + "modifiedTime": 1754066366849, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!ITAjcigTcUw5pMCN.8ze88zUwdkQSKKJq" } @@ -71,5 +79,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754064058934, + "modifiedTime": 1754066349542, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!ITAjcigTcUw5pMCN" } diff --git a/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json b/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json index ce4e35fd..fb4bad0e 100644 --- a/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json +++ b/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 11, "severe": 27 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [ @@ -60,7 +55,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753807887679, + "modifiedTime": 1753807887679, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!WuoVwZA53XRAIt6d.Hy0sNtFS1JAXxgwC" } @@ -71,5 +74,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753807855787, + "modifiedTime": 1753807887685, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!WuoVwZA53XRAIt6d" } diff --git a/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json b/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json index 8b276d5f..60521ffc 100644 --- a/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json +++ b/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 16, "severe": 39 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [ @@ -60,7 +55,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753808769033, + "modifiedTime": 1753808769033, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!mNN6pvcsS10ChrWF.s8KtTIngTjnOlaTP" } @@ -71,5 +74,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753808752024, + "modifiedTime": 1753808787752, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!mNN6pvcsS10ChrWF" } diff --git a/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json b/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json index f7526e96..f7d07f32 100644 --- a/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json +++ b/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 7, "severe": 15 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 56, - "artist": "" } }, "effects": [ @@ -60,7 +55,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805298651, + "modifiedTime": 1753805298651, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!haULhuEg37zUUvhb.ZfO5NjpqEIzZVlPq" } @@ -71,5 +74,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805286605, + "modifiedTime": 1753805329039, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!haULhuEg37zUUvhb" } diff --git a/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json b/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json index a4bd0fea..3d795985 100644 --- a/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json +++ b/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 13, "severe": 36 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [ @@ -60,7 +55,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809448084, + "modifiedTime": 1753809448084, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!vMJxEWz1srfwMsoj.8bwf1Ri3jYkjphEv" } @@ -71,5 +74,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809433880, + "modifiedTime": 1753809460722, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!vMJxEWz1srfwMsoj" } diff --git a/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json b/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json index 5b39e41d..52002171 100644 --- a/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json +++ b/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json @@ -23,6 +23,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -55,11 +56,6 @@ "baseThresholds": { "major": 11, "severe": 27 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [], @@ -69,5 +65,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753807902750, + "modifiedTime": 1753809495490, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!mdQ69eFHyAQUDmE7" } diff --git a/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json b/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json index df692143..9a6b1baa 100644 --- a/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json +++ b/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json @@ -16,12 +16,11 @@ "img": "icons/magic/time/hourglass-brown-orange.webp", "cost": [ { - "key": "resource", - "itemId": "armorSlot", + "key": "armorSlot", "value": 1, + "keyIsID": false, "scalable": false, - "step": null, - "consumeOnSuccess": false + "step": null } ], "roll": { @@ -81,11 +80,6 @@ "baseThresholds": { "major": 13, "severe": 36 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [], @@ -95,5 +89,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809264956, + "modifiedTime": 1753809422818, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!hAY6UgdGT7dj22Pr" } diff --git a/src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json b/src/packs/items/armors/armor_Elundrian_Chain_Mail_Q6LxmtFetDDkoZVZ.json similarity index 67% rename from src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json rename to src/packs/items/armors/armor_Elundrian_Chain_Mail_Q6LxmtFetDDkoZVZ.json index d63ce4df..0825a7a1 100644 --- a/src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json +++ b/src/packs/items/armors/armor_Elundrian_Chain_Mail_Q6LxmtFetDDkoZVZ.json @@ -1,6 +1,6 @@ { "folder": "hLn0v6ov6KuFgptu", - "name": "Elundrian Chain Armor", + "name": "Elundrian Chain Mail", "type": "armor", "_id": "Q6LxmtFetDDkoZVZ", "img": "icons/equipment/chest/breastplate-sculpted-green.webp", @@ -26,11 +26,6 @@ "baseThresholds": { "major": 9, "severe": 21 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 56, - "artist": "" } }, "effects": [ @@ -42,8 +37,7 @@ { "key": "system.resistance.magical.reduction", "mode": 2, - "value": "@system.armorScore", - "priority": 21 + "value": "@system.armorScore" } ], "_id": "xGxqTCO8MjNq5Cw6", @@ -61,7 +55,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805566171, + "modifiedTime": 1753805566171, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!Q6LxmtFetDDkoZVZ.xGxqTCO8MjNq5Cw6" } @@ -72,5 +74,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805557786, + "modifiedTime": 1753805605453, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!Q6LxmtFetDDkoZVZ" } diff --git a/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json b/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json index 8ccc27e3..3c471a93 100644 --- a/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json +++ b/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json @@ -79,11 +79,6 @@ "baseThresholds": { "major": 13, "severe": 36 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [], @@ -93,5 +88,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753809470138, + "modifiedTime": 1754853048367, + "lastModifiedBy": "7zAk0CoP90J7ebn0" + }, "_key": "!items!bcQUh4QG3qFX0Vx6" } diff --git a/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json b/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json index 8eb964cc..73ecfc96 100644 --- a/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json +++ b/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 15, "severe": 40 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [ @@ -60,7 +55,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809671654, + "modifiedTime": 1753809671654, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!7emTSt6nhZuTlvt5.QIefVb73cm9gYju8" } @@ -71,5 +74,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809653710, + "modifiedTime": 1753809691935, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!7emTSt6nhZuTlvt5" } diff --git a/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json b/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json index 1ea120ed..4b45cf7e 100644 --- a/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json +++ b/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 8, "severe": 17 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 56, - "artist": "" } }, "effects": [ @@ -65,7 +60,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805351522, + "modifiedTime": 1753805351522, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!UdUJNa31WxFW2noa.mfKMW9SX3Mnos1nY" } @@ -76,5 +79,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805338471, + "modifiedTime": 1753805365355, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!UdUJNa31WxFW2noa" } diff --git a/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json b/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json index 1c775402..c51838e0 100644 --- a/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json +++ b/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 5, "severe": 11 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 56, - "artist": "" } }, "effects": [ @@ -60,7 +55,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805133921, + "modifiedTime": 1753805133921, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!yJFp1bfpecDcStVK.v1FNEsypRF5W6vVc" } @@ -71,5 +74,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753804995685, + "modifiedTime": 1753805399875, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!yJFp1bfpecDcStVK" } diff --git a/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json b/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json index 61d1fed7..85dd7864 100644 --- a/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json +++ b/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json @@ -72,11 +72,6 @@ "baseThresholds": { "major": 9, "severe": 21 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 56, - "artist": "" } }, "effects": [], @@ -86,5 +81,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805616349, + "modifiedTime": 1753807254838, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!dvyQeUVRLc9y6rnt" } diff --git a/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json b/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json index 96e320d1..62648557 100644 --- a/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json +++ b/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 11, "severe": 24 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 56, - "artist": "" } }, "effects": [ @@ -60,7 +55,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805503527, + "modifiedTime": 1753805503527, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!K5WkjS0NGqHYmhU3.JHupzYULxdQzFzuj" } @@ -71,5 +74,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805490635, + "modifiedTime": 1753805512828, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!K5WkjS0NGqHYmhU3" } diff --git a/src/packs/items/armors/armor_Improved_Full_Plate_Armor_9f7RozpPTqrzJS1m.json b/src/packs/items/armors/armor_Improved_Full_Plate_Armor_9f7RozpPTqrzJS1m.json index ee63a774..7e5e36df 100644 --- a/src/packs/items/armors/armor_Improved_Full_Plate_Armor_9f7RozpPTqrzJS1m.json +++ b/src/packs/items/armors/armor_Improved_Full_Plate_Armor_9f7RozpPTqrzJS1m.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 13, "severe": 28 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 56, - "artist": "" } }, "effects": [ @@ -65,7 +60,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805533549, + "modifiedTime": 1753805533549, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!9f7RozpPTqrzJS1m.wstJ1aKKtmXgCwxB" } @@ -76,5 +79,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805522506, + "modifiedTime": 1753805544375, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!9f7RozpPTqrzJS1m" } diff --git a/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json b/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json index 6f4ea1c3..8c6a8f2c 100644 --- a/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json +++ b/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 7, "severe": 16 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 56, - "artist": "" } }, "effects": [ @@ -60,7 +55,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805414375, + "modifiedTime": 1753805414375, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!jphnMZjnS2FkOH3s.BFwU3ErPaajUSMUz" } @@ -71,5 +74,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805377869, + "modifiedTime": 1753805418921, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!jphnMZjnS2FkOH3s" } diff --git a/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json b/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json index a4f38cc6..4d225093 100644 --- a/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json +++ b/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json @@ -18,11 +18,6 @@ "baseThresholds": { "major": 9, "severe": 20 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 56, - "artist": "" } }, "effects": [], @@ -32,5 +27,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805428821, + "modifiedTime": 1753805482906, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!t91M61pSCMKStTNt" } diff --git a/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json b/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json index a9e9eaca..71ad95a9 100644 --- a/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json +++ b/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 9, "severe": 20 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 56, - "artist": "" } }, "effects": [ @@ -72,7 +67,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753807455490, + "modifiedTime": 1754297884536, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!tzZntboNtHL5C6VM.P3aCN8PQgPXP4C9M" } @@ -83,5 +86,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753807283589, + "modifiedTime": 1753807455497, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!tzZntboNtHL5C6VM" } diff --git a/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json b/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json index 37a13f2b..1d87a030 100644 --- a/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json +++ b/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json @@ -18,11 +18,6 @@ "baseThresholds": { "major": 6, "severe": 13 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 56, - "artist": "" } }, "effects": [], @@ -32,5 +27,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753805219679, + "modifiedTime": 1753805275427, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!nibfdNtp2PtxvbVz" } diff --git a/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json b/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json index 4bee5e4f..1192b4d5 100644 --- a/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json +++ b/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 15, "severe": 40 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [ @@ -60,7 +55,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809139589, + "modifiedTime": 1753809139589, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!EsIN5OLKe9ZYFNXZ.8Oa6Y375X8UpcPph" } @@ -71,5 +74,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809118507, + "modifiedTime": 1753809151454, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!EsIN5OLKe9ZYFNXZ" } diff --git a/src/packs/items/armors/armor_Legendary_Full_Plate_Armor_SXWjUR2aUR6bYvdl.json b/src/packs/items/armors/armor_Legendary_Full_Plate_Armor_SXWjUR2aUR6bYvdl.json index baf544c2..5b2d4a97 100644 --- a/src/packs/items/armors/armor_Legendary_Full_Plate_Armor_SXWjUR2aUR6bYvdl.json +++ b/src/packs/items/armors/armor_Legendary_Full_Plate_Armor_SXWjUR2aUR6bYvdl.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 17, "severe": 44 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [ @@ -65,7 +60,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809171374, + "modifiedTime": 1753809171374, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!SXWjUR2aUR6bYvdl.zvzkRX2Uevemmbz4" } @@ -76,5 +79,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809163051, + "modifiedTime": 1753809225793, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!SXWjUR2aUR6bYvdl" } diff --git a/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json b/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json index 338c85e8..e05e5f32 100644 --- a/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json +++ b/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 11, "severe": 32 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [ @@ -60,7 +55,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809044811, + "modifiedTime": 1753809044811, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!c6tMXz4rPf9ioQrf.3AUNxBoj7mp1ziJQ" } @@ -71,5 +74,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809031184, + "modifiedTime": 1753809064934, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!c6tMXz4rPf9ioQrf" } diff --git a/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json b/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json index 42334dc4..9dc82529 100644 --- a/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json +++ b/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json @@ -18,11 +18,6 @@ "baseThresholds": { "major": 13, "severe": 36 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [], @@ -32,5 +27,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809078323, + "modifiedTime": 1753809106203, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!Tptgl5WOj76TyFn7" } diff --git a/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json b/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json index 9a8e1f22..0cc3415d 100644 --- a/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json +++ b/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 16, "severe": 39 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [ @@ -60,7 +55,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753808812589, + "modifiedTime": 1753808812589, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!AQzU2RsqS5V5bd1v.3n4O7PyAWMEFdr5p" } @@ -71,5 +74,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753808797896, + "modifiedTime": 1753808820623, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!AQzU2RsqS5V5bd1v" } diff --git a/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json b/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json index 0f0f6430..a0cb99f1 100644 --- a/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json +++ b/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json @@ -48,11 +48,6 @@ "baseThresholds": { "major": 11, "severe": 23 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 56, - "artist": "" } }, "effects": [], @@ -62,5 +57,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753807654078, + "modifiedTime": 1753807692793, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!tN8kAeBvNKM3EBFo" } diff --git a/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json b/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json index 240a4f3e..33fef2f5 100644 --- a/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json +++ b/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -55,11 +56,6 @@ "baseThresholds": { "major": 17, "severe": 43 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [], @@ -69,5 +65,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753808832397, + "modifiedTime": 1753809018449, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!P4qAEDJUoNLgVRsA" } diff --git a/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json b/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json index 8d4af425..df5cb28f 100644 --- a/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json +++ b/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -55,11 +56,6 @@ "baseThresholds": { "major": 9, "severe": 20 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 56, - "artist": "" } }, "effects": [], @@ -69,5 +65,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753807528637, + "modifiedTime": 1753808232404, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!tHlBUDQC24YMZqd6" } diff --git a/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json b/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json index 714e8592..4d8ccfa6 100644 --- a/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json +++ b/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 18, "severe": 48 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [ @@ -90,7 +85,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809744697, + "modifiedTime": 1753809744697, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!8X16lJQ3xltTwynm.rkrqlwqtR9REgRx7" } @@ -101,5 +104,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809733405, + "modifiedTime": 1753809762536, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!8X16lJQ3xltTwynm" } diff --git a/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json b/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json index cb5fc720..07536704 100644 --- a/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json +++ b/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json @@ -26,11 +26,6 @@ "baseThresholds": { "major": 10, "severe": 25 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [ @@ -65,7 +60,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753808658514, + "modifiedTime": 1753808658514, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!QjwsIhXKqnlvRBMv.V8CcTcVAIxHq8KNd" } @@ -76,5 +79,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753808464678, + "modifiedTime": 1753808691813, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!QjwsIhXKqnlvRBMv" } diff --git a/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json b/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json index da640830..ae9c849b 100644 --- a/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json +++ b/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json @@ -48,11 +48,6 @@ "baseThresholds": { "major": 8, "severe": 18 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 56, - "artist": "" } }, "effects": [], @@ -62,5 +57,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753807607742, + "modifiedTime": 1753807646156, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!PSW3BxCGmtLeWOxM" } diff --git a/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json b/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json index 08a1b573..44f644b0 100644 --- a/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json +++ b/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json @@ -48,11 +48,6 @@ "baseThresholds": { "major": 13, "severe": 36 - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 57, - "artist": "" } }, "effects": [], @@ -62,5 +57,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753809706360, + "modifiedTime": 1753809725217, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!OvzgUTYy2RCN85vV" } diff --git a/src/packs/items/armors/folders_Special_tI3bfr6Sgi16Z7zm.json b/src/packs/items/armors/folders_Special_tI3bfr6Sgi16Z7zm.json index 65c4eca8..ec736244 100644 --- a/src/packs/items/armors/folders_Special_tI3bfr6Sgi16Z7zm.json +++ b/src/packs/items/armors/folders_Special_tI3bfr6Sgi16Z7zm.json @@ -8,5 +8,16 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754064033683, + "modifiedTime": 1754064033683, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!folders!tI3bfr6Sgi16Z7zm" } diff --git a/src/packs/items/armors/folders_Tier_1_h4QgrovjVZ1oee7O.json b/src/packs/items/armors/folders_Tier_1_h4QgrovjVZ1oee7O.json index bc39b03a..5c18c463 100644 --- a/src/packs/items/armors/folders_Tier_1_h4QgrovjVZ1oee7O.json +++ b/src/packs/items/armors/folders_Tier_1_h4QgrovjVZ1oee7O.json @@ -8,5 +8,16 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717612711, + "modifiedTime": 1748717612711, + "lastModifiedBy": "WafZqd6qLGpBRGTt" + }, "_key": "!folders!h4QgrovjVZ1oee7O" } diff --git a/src/packs/items/armors/folders_Tier_2_hLn0v6ov6KuFgptu.json b/src/packs/items/armors/folders_Tier_2_hLn0v6ov6KuFgptu.json index f8eeef5d..4f745426 100644 --- a/src/packs/items/armors/folders_Tier_2_hLn0v6ov6KuFgptu.json +++ b/src/packs/items/armors/folders_Tier_2_hLn0v6ov6KuFgptu.json @@ -8,5 +8,16 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717616591, + "modifiedTime": 1748717616591, + "lastModifiedBy": "WafZqd6qLGpBRGTt" + }, "_key": "!folders!hLn0v6ov6KuFgptu" } diff --git a/src/packs/items/armors/folders_Tier_3_rkSdPu86ybLz6aKF.json b/src/packs/items/armors/folders_Tier_3_rkSdPu86ybLz6aKF.json index ec9b07e8..792e637b 100644 --- a/src/packs/items/armors/folders_Tier_3_rkSdPu86ybLz6aKF.json +++ b/src/packs/items/armors/folders_Tier_3_rkSdPu86ybLz6aKF.json @@ -8,5 +8,16 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717619406, + "modifiedTime": 1748717619406, + "lastModifiedBy": "WafZqd6qLGpBRGTt" + }, "_key": "!folders!rkSdPu86ybLz6aKF" } diff --git a/src/packs/items/armors/folders_Tier_4_Hbjp64XzuyJs2hOs.json b/src/packs/items/armors/folders_Tier_4_Hbjp64XzuyJs2hOs.json index a63ec938..a0a93e39 100644 --- a/src/packs/items/armors/folders_Tier_4_Hbjp64XzuyJs2hOs.json +++ b/src/packs/items/armors/folders_Tier_4_Hbjp64XzuyJs2hOs.json @@ -8,5 +8,16 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717622303, + "modifiedTime": 1748717622303, + "lastModifiedBy": "WafZqd6qLGpBRGTt" + }, "_key": "!folders!Hbjp64XzuyJs2hOs" } diff --git a/src/packs/items/consumables/consumable_Acidpaste_cfVFmS8vT9dbq9s1.json b/src/packs/items/consumables/consumable_Acidpaste_cfVFmS8vT9dbq9s1.json index 7c2d113d..78da26af 100644 --- a/src/packs/items/consumables/consumable_Acidpaste_cfVFmS8vT9dbq9s1.json +++ b/src/packs/items/consumables/consumable_Acidpaste_cfVFmS8vT9dbq9s1.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "cfVFmS8vT9dbq9s1", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -39,13 +30,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -55,5 +40,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590344700, + "modifiedTime": 1754394373835, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!cfVFmS8vT9dbq9s1" } diff --git a/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json b/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json index 58efc3cc..20aeeb50 100644 --- a/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json +++ b/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json @@ -20,16 +20,7 @@ "key": "hope", "value": 1, "step": 1, - "itemId": null, - "consumeOnSuccess": false - }, - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "VlbsCjvvLNfTzNXb", - "step": null, - "consumeOnSuccess": false + "keyIsID": false } ], "uses": { @@ -39,21 +30,15 @@ }, "effects": [], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Stitch", "img": "icons/skills/trades/textiles-stitching-leather-brown.webp", - "range": "self" + "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -63,5 +48,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588973384, + "modifiedTime": 1754394381368, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!VlbsCjvvLNfTzNXb" } diff --git a/src/packs/items/consumables/consumable_Attune_Potion_JGD3M9hBHtVAA8XP.json b/src/packs/items/consumables/consumable_Attune_Potion_JGD3M9hBHtVAA8XP.json index f19c55c3..39f74078 100644 --- a/src/packs/items/consumables/consumable_Attune_Potion_JGD3M9hBHtVAA8XP.json +++ b/src/packs/items/consumables/consumable_Attune_Potion_JGD3M9hBHtVAA8XP.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "JGD3M9hBHtVAA8XP", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -41,16 +32,10 @@ }, "name": "Drink", "img": "icons/consumables/potions/bottle-conical-corked-purple.webp", - "range": "self" + "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -85,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587072840, + "modifiedTime": 1753991772642, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!JGD3M9hBHtVAA8XP.I5vgALTNDVApxy9d" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587033468, + "modifiedTime": 1754394388974, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!JGD3M9hBHtVAA8XP" } diff --git a/src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json b/src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json index 94a6671b..0913fb6d 100644 --- a/src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json +++ b/src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json @@ -14,16 +14,7 @@ "description": "

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

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "eAXHdzA5qNPldOpn", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "close" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 62, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -72,7 +57,7 @@ "startRound": null, "startTurn": null }, - "description": "

You are Vulnerable until you mark a Hit Point.

", + "description": "

You are Vulnerable until you mark a Hit Point.

", "tint": "#ffffff", "statuses": [ "vulnerable" @@ -80,7 +65,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592689854, + "modifiedTime": 1753991240756, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!eAXHdzA5qNPldOpn.nryJhrF26hyFQUxH" } @@ -92,5 +85,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592512731, + "modifiedTime": 1754394410769, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!eAXHdzA5qNPldOpn" } diff --git a/src/packs/items/consumables/consumable_Blood_of_the_Yorgi_pDGzmczoTlKGmKgd.json b/src/packs/items/consumables/consumable_Blood_of_the_Yorgi_pDGzmczoTlKGmKgd.json index 6a84b89b..103b102f 100644 --- a/src/packs/items/consumables/consumable_Blood_of_the_Yorgi_pDGzmczoTlKGmKgd.json +++ b/src/packs/items/consumables/consumable_Blood_of_the_Yorgi_pDGzmczoTlKGmKgd.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "pDGzmczoTlKGmKgd", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -31,21 +22,15 @@ }, "effects": [], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Drink", "img": "icons/consumables/potions/potion-tube-corked-bat-gold-red.webp", - "range": "veryFar" + "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -55,5 +40,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589954973, + "modifiedTime": 1754394423870, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!pDGzmczoTlKGmKgd" } diff --git a/src/packs/items/consumables/consumable_Bolster_Potion_FOPQNqXbiVO0ilYL.json b/src/packs/items/consumables/consumable_Bolster_Potion_FOPQNqXbiVO0ilYL.json index c6241a9c..0c33a50e 100644 --- a/src/packs/items/consumables/consumable_Bolster_Potion_FOPQNqXbiVO0ilYL.json +++ b/src/packs/items/consumables/consumable_Bolster_Potion_FOPQNqXbiVO0ilYL.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "FOPQNqXbiVO0ilYL", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -41,16 +32,10 @@ }, "name": "Drink", "img": "icons/consumables/potions/potion-vial-tube-yellow.webp", - "range": "self" + "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -85,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753586918808, + "modifiedTime": 1753991761053, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!FOPQNqXbiVO0ilYL.HVCJp9Tkhr1i4Oc1" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753586850134, + "modifiedTime": 1754394431654, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!FOPQNqXbiVO0ilYL" } diff --git a/src/packs/items/consumables/consumable_Bonding_Honey_PfQvqopXgvroBklL.json b/src/packs/items/consumables/consumable_Bonding_Honey_PfQvqopXgvroBklL.json index 4240ae2e..61b0fb2f 100644 --- a/src/packs/items/consumables/consumable_Bonding_Honey_PfQvqopXgvroBklL.json +++ b/src/packs/items/consumables/consumable_Bonding_Honey_PfQvqopXgvroBklL.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "PfQvqopXgvroBklL", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -39,13 +30,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 62, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -55,5 +40,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592033119, + "modifiedTime": 1754394442471, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!PfQvqopXgvroBklL" } diff --git a/src/packs/items/consumables/consumable_Bridge_Seed_RrIasiMCt6mqVTps.json b/src/packs/items/consumables/consumable_Bridge_Seed_RrIasiMCt6mqVTps.json index a80481d5..a03ba6fe 100644 --- a/src/packs/items/consumables/consumable_Bridge_Seed_RrIasiMCt6mqVTps.json +++ b/src/packs/items/consumables/consumable_Bridge_Seed_RrIasiMCt6mqVTps.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "RrIasiMCt6mqVTps", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -39,13 +30,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -55,5 +40,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591685990, + "modifiedTime": 1754394450971, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!RrIasiMCt6mqVTps" } diff --git a/src/packs/items/consumables/consumable_Channelstone_IKMVQ6VwtapwoUim.json b/src/packs/items/consumables/consumable_Channelstone_IKMVQ6VwtapwoUim.json index f4ec4476..c93bb512 100644 --- a/src/packs/items/consumables/consumable_Channelstone_IKMVQ6VwtapwoUim.json +++ b/src/packs/items/consumables/consumable_Channelstone_IKMVQ6VwtapwoUim.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "IKMVQ6VwtapwoUim", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -39,13 +30,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -55,5 +40,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590192533, + "modifiedTime": 1754394463123, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!IKMVQ6VwtapwoUim" } diff --git a/src/packs/items/consumables/consumable_Charm_Potion_CVBbFfOY75YwyQsp.json b/src/packs/items/consumables/consumable_Charm_Potion_CVBbFfOY75YwyQsp.json index 48303854..26e03cb2 100644 --- a/src/packs/items/consumables/consumable_Charm_Potion_CVBbFfOY75YwyQsp.json +++ b/src/packs/items/consumables/consumable_Charm_Potion_CVBbFfOY75YwyQsp.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "CVBbFfOY75YwyQsp", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -85,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587164842, + "modifiedTime": 1753991748543, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!CVBbFfOY75YwyQsp.COrKb7gBin4Ro6r6" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587097370, + "modifiedTime": 1754394471027, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!CVBbFfOY75YwyQsp" } diff --git a/src/packs/items/consumables/consumable_Circle_of_the_Void_elsyP6VhHw1JjGSl.json b/src/packs/items/consumables/consumable_Circle_of_the_Void_elsyP6VhHw1JjGSl.json index 159a1381..cdbae661 100644 --- a/src/packs/items/consumables/consumable_Circle_of_the_Void_elsyP6VhHw1JjGSl.json +++ b/src/packs/items/consumables/consumable_Circle_of_the_Void_elsyP6VhHw1JjGSl.json @@ -17,11 +17,10 @@ "cost": [ { "scalable": false, - "key": "quantity", + "key": "stress", "value": 1, - "itemId": "elsyP6VhHw1JjGSl", - "step": null, - "consumeOnSuccess": false + "keyIsID": false, + "step": null } ], "uses": { @@ -39,13 +38,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -55,5 +48,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590692159, + "modifiedTime": 1754394477728, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!elsyP6VhHw1JjGSl" } diff --git a/src/packs/items/consumables/consumable_Control_Potion_eeBhZSGLjuNZuJuI.json b/src/packs/items/consumables/consumable_Control_Potion_eeBhZSGLjuNZuJuI.json index 9523cdce..f158628e 100644 --- a/src/packs/items/consumables/consumable_Control_Potion_eeBhZSGLjuNZuJuI.json +++ b/src/packs/items/consumables/consumable_Control_Potion_eeBhZSGLjuNZuJuI.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "eeBhZSGLjuNZuJuI", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -85,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587008395, + "modifiedTime": 1753993225233, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!eeBhZSGLjuNZuJuI.1VAQYZ1YYc9ew9UR" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753586944889, + "modifiedTime": 1754394484407, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!eeBhZSGLjuNZuJuI" } diff --git a/src/packs/items/consumables/consumable_Death_Tea_xDnJeF1grkmKck8Q.json b/src/packs/items/consumables/consumable_Death_Tea_xDnJeF1grkmKck8Q.json index 1a7ae1a5..b7d636bc 100644 --- a/src/packs/items/consumables/consumable_Death_Tea_xDnJeF1grkmKck8Q.json +++ b/src/packs/items/consumables/consumable_Death_Tea_xDnJeF1grkmKck8Q.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "xDnJeF1grkmKck8Q", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -36,21 +27,15 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Drink", "img": "icons/consumables/drinks/wine-amphora-clay-gray.webp", - "range": "self" + "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 62, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -79,13 +64,21 @@ "startRound": null, "startTurn": null }, - "description": "

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

", + "description": "

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

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753993240647, + "modifiedTime": 1753993244347, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!xDnJeF1grkmKck8Q.IqlpqsgurXsUEQhs" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592717630, + "modifiedTime": 1754394494474, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!xDnJeF1grkmKck8Q" } diff --git a/src/packs/items/consumables/consumable_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json b/src/packs/items/consumables/consumable_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json index f484f3c9..da89cf7a 100644 --- a/src/packs/items/consumables/consumable_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json +++ b/src/packs/items/consumables/consumable_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json @@ -11,22 +11,13 @@ "type": "attack", "_id": "rcHEz3ImUDwo6lPC", "systemPath": "actions", - "description": "

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

@Template[type:emanation|range:c]

", + "description": "", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "consumeOnSuccess": false, - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "wM18PWWW2Ami4fBG", - "step": null - } - ], + "cost": [], "uses": { "value": null, - "max": "", + "max": null, "recovery": null }, "damage": { @@ -88,13 +79,7 @@ "range": "close" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -104,5 +89,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591525829, + "modifiedTime": 1753591674720, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!wM18PWWW2Ami4fBG" } diff --git a/src/packs/items/consumables/consumable_Dripfang_Poison_eU8VpbWB2NHIL47n.json b/src/packs/items/consumables/consumable_Dripfang_Poison_eU8VpbWB2NHIL47n.json index 70070ab2..fa9da4cf 100644 --- a/src/packs/items/consumables/consumable_Dripfang_Poison_eU8VpbWB2NHIL47n.json +++ b/src/packs/items/consumables/consumable_Dripfang_Poison_eU8VpbWB2NHIL47n.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "eU8VpbWB2NHIL47n", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -70,13 +61,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -86,5 +71,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590938047, + "modifiedTime": 1754394503675, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!eU8VpbWB2NHIL47n" } diff --git a/src/packs/items/consumables/consumable_Enlighten_Potion_aWHSO2AqDufi7nL4.json b/src/packs/items/consumables/consumable_Enlighten_Potion_aWHSO2AqDufi7nL4.json index 02ffa6d9..08ba032e 100644 --- a/src/packs/items/consumables/consumable_Enlighten_Potion_aWHSO2AqDufi7nL4.json +++ b/src/packs/items/consumables/consumable_Enlighten_Potion_aWHSO2AqDufi7nL4.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "aWHSO2AqDufi7nL4", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -85,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588649848, + "modifiedTime": 1753588661474, + "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items.effects!aWHSO2AqDufi7nL4.QNzVrDW73jF1d5wE" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587185754, + "modifiedTime": 1754394512375, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!aWHSO2AqDufi7nL4" } diff --git a/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json b/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json index f98d86f1..79a7a676 100644 --- a/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json +++ b/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "aX6NyxkNzu0LcJpt", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -133,13 +124,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 62, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -149,5 +134,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591925502, + "modifiedTime": 1754394521825, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!aX6NyxkNzu0LcJpt" } diff --git a/src/packs/items/consumables/consumable_Featherbone_DpxEMpwfasEBpORU.json b/src/packs/items/consumables/consumable_Featherbone_DpxEMpwfasEBpORU.json index dbf5b19a..7b4816a5 100644 --- a/src/packs/items/consumables/consumable_Featherbone_DpxEMpwfasEBpORU.json +++ b/src/packs/items/consumables/consumable_Featherbone_DpxEMpwfasEBpORU.json @@ -14,82 +14,25 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "DpxEMpwfasEBpORU", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", "recovery": null }, - "effects": [ - { - "_id": "VfJIJBW96e45xQHY", - "onSave": false - } - ], + "effects": [], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Use", "img": "icons/commodities/bones/bones-stack-worn-brown.webp", - "range": "self" + "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, - "effects": [ - { - "name": "Featherbone", - "img": "icons/commodities/bones/bones-stack-worn-brown.webp", - "origin": "Compendium.daggerheart.consumables.Item.DpxEMpwfasEBpORU", - "transfer": false, - "_id": "VfJIJBW96e45xQHY", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "changes": [], - "disabled": false, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

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

", - "tint": "#ffffff", - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!DpxEMpwfasEBpORU.VfJIJBW96e45xQHY" - } - ], + "effects": [], "folder": null, "sort": 0, "ownership": { @@ -97,5 +40,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590624634, + "modifiedTime": 1754394529842, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!DpxEMpwfasEBpORU" } diff --git a/src/packs/items/consumables/consumable_Gill_Salve_Nvbb9mze6o5D0AEg.json b/src/packs/items/consumables/consumable_Gill_Salve_Nvbb9mze6o5D0AEg.json index e69c440c..33130fd2 100644 --- a/src/packs/items/consumables/consumable_Gill_Salve_Nvbb9mze6o5D0AEg.json +++ b/src/packs/items/consumables/consumable_Gill_Salve_Nvbb9mze6o5D0AEg.json @@ -14,82 +14,25 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "Nvbb9mze6o5D0AEg", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", "recovery": null }, - "effects": [ - { - "_id": "5rL9CY5GO9SJcEZq", - "onSave": false - } - ], + "effects": [], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Apply", "img": "icons/commodities/materials/bowl-powder-blue.webp", - "range": "self" + "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, - "effects": [ - { - "name": "Gill Salve", - "img": "icons/commodities/materials/bowl-powder-blue.webp", - "origin": "Compendium.daggerheart.consumables.Item.Nvbb9mze6o5D0AEg", - "transfer": false, - "_id": "5rL9CY5GO9SJcEZq", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "changes": [], - "disabled": false, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

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

", - "tint": "#ffffff", - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!Nvbb9mze6o5D0AEg.5rL9CY5GO9SJcEZq" - } - ], + "effects": [], "folder": null, "sort": 0, "ownership": { @@ -97,5 +40,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589241094, + "modifiedTime": 1754394537845, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!Nvbb9mze6o5D0AEg" } diff --git a/src/packs/items/consumables/consumable_Grindletooth_Venom_8WkhvSzeOmLdnoLJ.json b/src/packs/items/consumables/consumable_Grindletooth_Venom_8WkhvSzeOmLdnoLJ.json index 75d19c32..ba7fd727 100644 --- a/src/packs/items/consumables/consumable_Grindletooth_Venom_8WkhvSzeOmLdnoLJ.json +++ b/src/packs/items/consumables/consumable_Grindletooth_Venom_8WkhvSzeOmLdnoLJ.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "8WkhvSzeOmLdnoLJ", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -86,13 +71,21 @@ "startRound": null, "startTurn": null }, - "description": "

You deal 1d6 additionalΒ physical damageΒ on your next damage roll with the weapon the venom was applied to.

", + "description": "

You deal 1d6 additionalΒ physical damageΒ on your next damage roll with the weapon the venom was applied to.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753991894209, + "modifiedTime": 1753992577548, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!8WkhvSzeOmLdnoLJ.yx4ZkXeuXgw2KvV4" } @@ -104,5 +97,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587386639, + "modifiedTime": 1754394547827, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!8WkhvSzeOmLdnoLJ" } diff --git a/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json b/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json index e4493348..ad36fe3e 100644 --- a/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json +++ b/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "fl2f3ees8RFMze9t", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 62, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -91,7 +76,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592211848, + "modifiedTime": 1753592229488, + "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items.effects!fl2f3ees8RFMze9t.YEGd74Lssj7rCmpF" } @@ -103,5 +96,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592174440, + "modifiedTime": 1754394557196, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!fl2f3ees8RFMze9t" } diff --git a/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json b/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json index 8c620942..4279f73c 100644 --- a/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json +++ b/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json @@ -14,16 +14,7 @@ "description": "

Clear 1d4+1 HP.

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "Aruc2NLutWuVIjP1", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -83,13 +74,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -99,5 +84,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588839527, + "modifiedTime": 1754394566378, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!Aruc2NLutWuVIjP1" } diff --git a/src/packs/items/consumables/consumable_Homet_s_Secret_Potion_VSwa1LpQ9PjZKsWF.json b/src/packs/items/consumables/consumable_Homet_s_Secret_Potion_VSwa1LpQ9PjZKsWF.json index 8ee6f171..7aa146d4 100644 --- a/src/packs/items/consumables/consumable_Homet_s_Secret_Potion_VSwa1LpQ9PjZKsWF.json +++ b/src/packs/items/consumables/consumable_Homet_s_Secret_Potion_VSwa1LpQ9PjZKsWF.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "VSwa1LpQ9PjZKsWF", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -79,13 +64,21 @@ "startRound": null, "startTurn": null }, - "description": "

The next successful attack you make critically succeeds.

", + "description": "

The next successful attack you make critically succeeds.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753992037102, + "modifiedTime": 1753992049261, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!VSwa1LpQ9PjZKsWF.QyzXAnvho7lVQQtP" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589998065, + "modifiedTime": 1754394576928, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!VSwa1LpQ9PjZKsWF" } diff --git a/src/packs/items/consumables/consumable_Hopehold_Flare_EhaQCPJ8oiqpRIwB.json b/src/packs/items/consumables/consumable_Hopehold_Flare_EhaQCPJ8oiqpRIwB.json index 809ad08e..9747d8d2 100644 --- a/src/packs/items/consumables/consumable_Hopehold_Flare_EhaQCPJ8oiqpRIwB.json +++ b/src/packs/items/consumables/consumable_Hopehold_Flare_EhaQCPJ8oiqpRIwB.json @@ -14,16 +14,7 @@ "description": "

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

@Template[type:emanation|range:c]

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "EhaQCPJ8oiqpRIwB", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -39,13 +30,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -55,5 +40,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590388618, + "modifiedTime": 1754394599463, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!EhaQCPJ8oiqpRIwB" } diff --git a/src/packs/items/consumables/consumable_Improved_Arcane_Shard_nQTo6mNoPTEVBtkm.json b/src/packs/items/consumables/consumable_Improved_Arcane_Shard_nQTo6mNoPTEVBtkm.json index 2081f33b..dc86564b 100644 --- a/src/packs/items/consumables/consumable_Improved_Arcane_Shard_nQTo6mNoPTEVBtkm.json +++ b/src/packs/items/consumables/consumable_Improved_Arcane_Shard_nQTo6mNoPTEVBtkm.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "consumeOnSuccess": false, - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "nQTo6mNoPTEVBtkm", - "step": null - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -90,13 +81,7 @@ "range": "far" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -106,5 +91,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589403341, + "modifiedTime": 1754394607830, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!nQTo6mNoPTEVBtkm" } diff --git a/src/packs/items/consumables/consumable_Improved_Grindletooth_Venom_BqBWXXe9T07AMV4u.json b/src/packs/items/consumables/consumable_Improved_Grindletooth_Venom_BqBWXXe9T07AMV4u.json index 904c4675..9b1ac237 100644 --- a/src/packs/items/consumables/consumable_Improved_Grindletooth_Venom_BqBWXXe9T07AMV4u.json +++ b/src/packs/items/consumables/consumable_Improved_Grindletooth_Venom_BqBWXXe9T07AMV4u.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "BqBWXXe9T07AMV4u", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -86,13 +71,21 @@ "startRound": null, "startTurn": null }, - "description": "

You deal 1d8 additionalΒ physical damageΒ on your next damage roll with the weapon the venom was applied to.

", + "description": "

You deal 1d8 additionalΒ physical damageΒ on your next damage roll with the weapon the venom was applied to.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753992123122, + "modifiedTime": 1753992593459, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!BqBWXXe9T07AMV4u.P7tbNjq58bQ9R1Cc" } @@ -104,5 +97,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588170670, + "modifiedTime": 1754394620213, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!BqBWXXe9T07AMV4u" } diff --git a/src/packs/items/consumables/consumable_Jar_of_Lost_Voices_yUol6M5b8jsbk9za.json b/src/packs/items/consumables/consumable_Jar_of_Lost_Voices_yUol6M5b8jsbk9za.json index c655f7ca..df45fcf2 100644 --- a/src/packs/items/consumables/consumable_Jar_of_Lost_Voices_yUol6M5b8jsbk9za.json +++ b/src/packs/items/consumables/consumable_Jar_of_Lost_Voices_yUol6M5b8jsbk9za.json @@ -14,16 +14,7 @@ "description": "

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

@Template[type:emanation|range:f]

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "yUol6M5b8jsbk9za", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -70,13 +61,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -86,5 +71,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591372075, + "modifiedTime": 1754394648049, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!yUol6M5b8jsbk9za" } diff --git a/src/packs/items/consumables/consumable_Jumping_Root_c2putn9apuurJhWX.json b/src/packs/items/consumables/consumable_Jumping_Root_c2putn9apuurJhWX.json index dec72da8..bbe9e1a4 100644 --- a/src/packs/items/consumables/consumable_Jumping_Root_c2putn9apuurJhWX.json +++ b/src/packs/items/consumables/consumable_Jumping_Root_c2putn9apuurJhWX.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "c2putn9apuurJhWX", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -39,13 +30,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -55,5 +40,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588566489, + "modifiedTime": 1754394659649, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!c2putn9apuurJhWX" } diff --git a/src/packs/items/consumables/consumable_Knowledge_Stone_nL9IALzm9BNi5oSt.json b/src/packs/items/consumables/consumable_Knowledge_Stone_nL9IALzm9BNi5oSt.json index 19f273ed..02a13b6c 100644 --- a/src/packs/items/consumables/consumable_Knowledge_Stone_nL9IALzm9BNi5oSt.json +++ b/src/packs/items/consumables/consumable_Knowledge_Stone_nL9IALzm9BNi5oSt.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "nL9IALzm9BNi5oSt", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -39,13 +30,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 62, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -55,5 +40,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592240392, + "modifiedTime": 1754394668583, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!nL9IALzm9BNi5oSt" } diff --git a/src/packs/items/consumables/consumable_Major_Arcane_Shard_AA7bmiwv00lshPrC.json b/src/packs/items/consumables/consumable_Major_Arcane_Shard_AA7bmiwv00lshPrC.json index b9293362..ff722381 100644 --- a/src/packs/items/consumables/consumable_Major_Arcane_Shard_AA7bmiwv00lshPrC.json +++ b/src/packs/items/consumables/consumable_Major_Arcane_Shard_AA7bmiwv00lshPrC.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "consumeOnSuccess": false, - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "AA7bmiwv00lshPrC", - "step": null - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -88,13 +79,7 @@ "range": "far" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -104,5 +89,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590515261, + "modifiedTime": 1754394676288, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!AA7bmiwv00lshPrC" } diff --git a/src/packs/items/consumables/consumable_Major_Attune_Potion_CCPFm5iXXwvyYYwR.json b/src/packs/items/consumables/consumable_Major_Attune_Potion_CCPFm5iXXwvyYYwR.json index 6090c631..63b3dfbf 100644 --- a/src/packs/items/consumables/consumable_Major_Attune_Potion_CCPFm5iXXwvyYYwR.json +++ b/src/packs/items/consumables/consumable_Major_Attune_Potion_CCPFm5iXXwvyYYwR.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "CCPFm5iXXwvyYYwR", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -85,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589791269, + "modifiedTime": 1753589801620, + "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items.effects!CCPFm5iXXwvyYYwR.v2EXGXbJaewaMxFC" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589747286, + "modifiedTime": 1754394684950, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!CCPFm5iXXwvyYYwR" } diff --git a/src/packs/items/consumables/consumable_Major_Bolster_Potion_mnyQDRtngWWQeRXF.json b/src/packs/items/consumables/consumable_Major_Bolster_Potion_mnyQDRtngWWQeRXF.json index 98329c78..58b988f9 100644 --- a/src/packs/items/consumables/consumable_Major_Bolster_Potion_mnyQDRtngWWQeRXF.json +++ b/src/packs/items/consumables/consumable_Major_Bolster_Potion_mnyQDRtngWWQeRXF.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "mnyQDRtngWWQeRXF", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -85,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589654978, + "modifiedTime": 1753589663303, + "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items.effects!mnyQDRtngWWQeRXF.3PfXBJy0ZjLBDAIn" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589623872, + "modifiedTime": 1754394694337, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!mnyQDRtngWWQeRXF" } diff --git a/src/packs/items/consumables/consumable_Major_Charm_Potion_IJLAUlQymbSjzsri.json b/src/packs/items/consumables/consumable_Major_Charm_Potion_IJLAUlQymbSjzsri.json index aebb9435..65c01549 100644 --- a/src/packs/items/consumables/consumable_Major_Charm_Potion_IJLAUlQymbSjzsri.json +++ b/src/packs/items/consumables/consumable_Major_Charm_Potion_IJLAUlQymbSjzsri.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "IJLAUlQymbSjzsri", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -85,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589854495, + "modifiedTime": 1753589862607, + "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items.effects!IJLAUlQymbSjzsri.3iXv9QiuLGOfDCi2" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589816684, + "modifiedTime": 1754394702935, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!IJLAUlQymbSjzsri" } diff --git a/src/packs/items/consumables/consumable_Major_Control_Potion_80s1FLmTLtohZ5GH.json b/src/packs/items/consumables/consumable_Major_Control_Potion_80s1FLmTLtohZ5GH.json index 76d4ea3c..ff85d8ed 100644 --- a/src/packs/items/consumables/consumable_Major_Control_Potion_80s1FLmTLtohZ5GH.json +++ b/src/packs/items/consumables/consumable_Major_Control_Potion_80s1FLmTLtohZ5GH.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "80s1FLmTLtohZ5GH", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -85,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589723372, + "modifiedTime": 1753589738716, + "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items.effects!80s1FLmTLtohZ5GH.YOgojNdjARXUUrky" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589675185, + "modifiedTime": 1754394710253, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!80s1FLmTLtohZ5GH" } diff --git a/src/packs/items/consumables/consumable_Major_Enlighten_Potion_SDdv1G2veMLKrxcJ.json b/src/packs/items/consumables/consumable_Major_Enlighten_Potion_SDdv1G2veMLKrxcJ.json index 9bbd4290..d2b26b03 100644 --- a/src/packs/items/consumables/consumable_Major_Enlighten_Potion_SDdv1G2veMLKrxcJ.json +++ b/src/packs/items/consumables/consumable_Major_Enlighten_Potion_SDdv1G2veMLKrxcJ.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "SDdv1G2veMLKrxcJ", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -85,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589930774, + "modifiedTime": 1753589937684, + "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items.effects!SDdv1G2veMLKrxcJ.Ul5brgnx88npVGNj" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589874661, + "modifiedTime": 1754394718504, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!SDdv1G2veMLKrxcJ" } diff --git a/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json b/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json index 201233ce..454373f8 100644 --- a/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json +++ b/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json @@ -14,16 +14,7 @@ "description": "

Clear 1d4+2 HP.

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "cM7pHe8bBAxSZ2xR", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -83,13 +74,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -99,5 +84,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591046168, + "modifiedTime": 1754394726288, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!cM7pHe8bBAxSZ2xR" } diff --git a/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json b/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json index 3f7d2a00..12ce1a3d 100644 --- a/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json +++ b/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json @@ -14,16 +14,7 @@ "description": "

Clear 1d4+2 Stress.

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "I4cQ03xbxnc81EGa", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -83,13 +74,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -99,5 +84,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591113317, + "modifiedTime": 1754394330048, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!I4cQ03xbxnc81EGa" } diff --git a/src/packs/items/consumables/consumable_Major_Stride_Potion_yK6eEDUrsPbZA8G0.json b/src/packs/items/consumables/consumable_Major_Stride_Potion_yK6eEDUrsPbZA8G0.json index 320a77a3..a88a1c48 100644 --- a/src/packs/items/consumables/consumable_Major_Stride_Potion_yK6eEDUrsPbZA8G0.json +++ b/src/packs/items/consumables/consumable_Major_Stride_Potion_yK6eEDUrsPbZA8G0.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "yK6eEDUrsPbZA8G0", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -85,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589592477, + "modifiedTime": 1753589609592, + "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items.effects!yK6eEDUrsPbZA8G0.L9dAw8pws1o02XkE" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589545730, + "modifiedTime": 1754394734536, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!yK6eEDUrsPbZA8G0" } diff --git a/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json b/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json index 1e1e31f1..8e6ebe0a 100644 --- a/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json +++ b/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json @@ -14,16 +14,7 @@ "description": "

Clear 1d4 HP.

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "tPfKtKRRjv8qdSqy", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -83,13 +74,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -99,5 +84,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587253431, + "modifiedTime": 1754394742922, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!tPfKtKRRjv8qdSqy" } diff --git a/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json b/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json index 9895b3ef..b8944384 100644 --- a/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json +++ b/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json @@ -14,16 +14,7 @@ "description": "

Clear 1d4 Stress.

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "b6vGSPFWOlzZZDLO", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -83,13 +74,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -99,5 +84,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587324465, + "modifiedTime": 1754394346717, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!b6vGSPFWOlzZZDLO" } diff --git a/src/packs/items/consumables/consumable_Mirror_of_Marigold_UFQVwgYOUZ88UxcH.json b/src/packs/items/consumables/consumable_Mirror_of_Marigold_UFQVwgYOUZ88UxcH.json index ba3a3f17..caa7a36d 100644 --- a/src/packs/items/consumables/consumable_Mirror_of_Marigold_UFQVwgYOUZ88UxcH.json +++ b/src/packs/items/consumables/consumable_Mirror_of_Marigold_UFQVwgYOUZ88UxcH.json @@ -16,12 +16,11 @@ "actionType": "action", "cost": [ { - "scalable": false, - "key": "quantity", + "keyIsID": false, + "key": "hope", "value": 1, - "itemId": "UFQVwgYOUZ88UxcH", - "step": null, - "consumeOnSuccess": false + "scalable": false, + "step": null } ], "uses": { @@ -39,13 +38,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 62, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -55,5 +48,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592792213, + "modifiedTime": 1754394753189, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!UFQVwgYOUZ88UxcH" } diff --git a/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json b/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json index 970cabd4..5c6bfa94 100644 --- a/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json +++ b/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json @@ -16,12 +16,11 @@ "actionType": "action", "cost": [ { - "scalable": false, - "key": "quantity", + "keyIsID": false, + "key": "hope", "value": 1, - "itemId": "f1NHVSIHJJCIOaBl", - "step": null, - "consumeOnSuccess": false + "scalable": false, + "step": null } ], "uses": { @@ -44,13 +43,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -79,13 +72,21 @@ "startRound": null, "startTurn": null }, - "description": "

Your face is unrecognizable until your next rest.

", + "description": "

Your face is unrecognizable until your next rest.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753992314196, + "modifiedTime": 1753992340780, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!f1NHVSIHJJCIOaBl.rMno0zO5Cbwlu4zn" } @@ -97,5 +98,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588254032, + "modifiedTime": 1754394761890, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!f1NHVSIHJJCIOaBl" } diff --git a/src/packs/items/consumables/consumable_Mythic_Dust_Zsh2AvZr8EkGtLyw.json b/src/packs/items/consumables/consumable_Mythic_Dust_Zsh2AvZr8EkGtLyw.json index e281399e..1201b838 100644 --- a/src/packs/items/consumables/consumable_Mythic_Dust_Zsh2AvZr8EkGtLyw.json +++ b/src/packs/items/consumables/consumable_Mythic_Dust_Zsh2AvZr8EkGtLyw.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "Zsh2AvZr8EkGtLyw", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -86,13 +71,21 @@ "startRound": null, "startTurn": null }, - "description": "

You deal 1d12 additionalΒ magical damageΒ on your next damage roll with the weapon the venom was applied to.

", + "description": "

You deal 1d12 additionalΒ magical damageΒ on your next damage roll with the weapon the venom was applied to.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753992360178, + "modifiedTime": 1753992538796, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!Zsh2AvZr8EkGtLyw.L68lFhuWdS3ppDxR" } @@ -104,5 +97,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590241722, + "modifiedTime": 1754394769155, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!Zsh2AvZr8EkGtLyw" } diff --git a/src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json b/src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json index 874072cc..2e3f60d4 100644 --- a/src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json +++ b/src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "qr1bosjFcUfuwq4B", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -79,13 +64,21 @@ "startRound": null, "startTurn": null }, - "description": "

You cannot be tracked by mundane or magical means until your next rest.

", + "description": "

You cannot be tracked by mundane or magical means until your next rest.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753992438445, + "modifiedTime": 1753992468525, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!qr1bosjFcUfuwq4B.n73d0J4oMCBIPWHN" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591168468, + "modifiedTime": 1754394777490, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!qr1bosjFcUfuwq4B" } diff --git a/src/packs/items/consumables/consumable_Potion_of_Stability_dvL8oaxpEF6jKvYN.json b/src/packs/items/consumables/consumable_Potion_of_Stability_dvL8oaxpEF6jKvYN.json index ba2f2b30..990cb6eb 100644 --- a/src/packs/items/consumables/consumable_Potion_of_Stability_dvL8oaxpEF6jKvYN.json +++ b/src/packs/items/consumables/consumable_Potion_of_Stability_dvL8oaxpEF6jKvYN.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "dvL8oaxpEF6jKvYN", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -91,7 +76,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753616591279, + "modifiedTime": 1753616612536, + "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items.effects!dvL8oaxpEF6jKvYN.PjjGC4TpzjSz9z8s" } @@ -103,5 +96,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588038000, + "modifiedTime": 1754394786974, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!dvL8oaxpEF6jKvYN" } diff --git a/src/packs/items/consumables/consumable_Redthorn_Saliva_s2Exl2XFuoOhtIov.json b/src/packs/items/consumables/consumable_Redthorn_Saliva_s2Exl2XFuoOhtIov.json index 654470db..41408713 100644 --- a/src/packs/items/consumables/consumable_Redthorn_Saliva_s2Exl2XFuoOhtIov.json +++ b/src/packs/items/consumables/consumable_Redthorn_Saliva_s2Exl2XFuoOhtIov.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "s2Exl2XFuoOhtIov", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -86,13 +71,21 @@ "startRound": null, "startTurn": null }, - "description": "

You deal 1d12 additional physical damageΒ on your next damage roll with the weapon the saliva was applied to.

", + "description": "

You deal 1d12 additional physical damageΒ on your next damage roll with the weapon the saliva was applied to.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753992517609, + "modifiedTime": 1753992565438, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!s2Exl2XFuoOhtIov.tWf00ezdpxQQLuZ1" } @@ -104,5 +97,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590061810, + "modifiedTime": 1754394793758, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!s2Exl2XFuoOhtIov" } diff --git a/src/packs/items/consumables/consumable_Replication_Parchment_yJkwz4AP6yhGo8Vj.json b/src/packs/items/consumables/consumable_Replication_Parchment_yJkwz4AP6yhGo8Vj.json index c2176ca0..8488df22 100644 --- a/src/packs/items/consumables/consumable_Replication_Parchment_yJkwz4AP6yhGo8Vj.json +++ b/src/packs/items/consumables/consumable_Replication_Parchment_yJkwz4AP6yhGo8Vj.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "yJkwz4AP6yhGo8Vj", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -39,13 +30,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -55,5 +40,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753589306667, + "modifiedTime": 1754394802909, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!yJkwz4AP6yhGo8Vj" } diff --git a/src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json b/src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json index 7bf8c686..95e84b30 100644 --- a/src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json +++ b/src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "HGixKenQwhyRAYNk", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 62, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -91,7 +76,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592138957, + "modifiedTime": 1753592163296, + "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items.effects!HGixKenQwhyRAYNk.yaRLd7eHWYm2MHRM" } @@ -103,5 +96,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592077792, + "modifiedTime": 1754394810891, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!HGixKenQwhyRAYNk" } diff --git a/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json b/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json index 74fbf749..9ac76466 100644 --- a/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json +++ b/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "XZavUVlHEvE2srEt", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -84,13 +75,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 62, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -100,5 +85,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591837472, + "modifiedTime": 1754394819077, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!XZavUVlHEvE2srEt" } diff --git a/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json b/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json index adcf8a31..5edcef3d 100644 --- a/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json +++ b/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json @@ -17,11 +17,10 @@ "cost": [ { "scalable": false, - "key": "quantity", + "key": "stress", "value": 1, - "itemId": "cg6VtQ0eVZjDdcK0", - "step": null, - "consumeOnSuccess": false + "keyIsID": false, + "step": null } ], "uses": { @@ -84,13 +83,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -100,5 +93,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588752841, + "modifiedTime": 1754394825942, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!cg6VtQ0eVZjDdcK0" } diff --git a/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json b/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json index 9cb4716e..3fc1c15d 100644 --- a/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json +++ b/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json @@ -14,16 +14,7 @@ "description": "

Clear 1d4+1 Stress.

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "hf3k1POoVSooJyN2", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -83,13 +74,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -99,5 +84,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588904835, + "modifiedTime": 1754394357617, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!hf3k1POoVSooJyN2" } diff --git a/src/packs/items/consumables/consumable_Stardrop_y4c1jrlHrf0wBWOq.json b/src/packs/items/consumables/consumable_Stardrop_y4c1jrlHrf0wBWOq.json index 1a8800cd..cd30d320 100644 --- a/src/packs/items/consumables/consumable_Stardrop_y4c1jrlHrf0wBWOq.json +++ b/src/packs/items/consumables/consumable_Stardrop_y4c1jrlHrf0wBWOq.json @@ -4,7 +4,7 @@ "_id": "y4c1jrlHrf0wBWOq", "img": "icons/magic/light/projectiles-star-purple.webp", "system": { - "description": "

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

", + "description": "

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

@Template[type:emanation|range:vf]

", "quantity": 1, "actions": { "pt5U6hlyx4T7MUOa": { @@ -14,16 +14,7 @@ "description": "

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

@Template[type:emanation|range:vf]

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "y4c1jrlHrf0wBWOq", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -70,13 +61,7 @@ "range": "veryFar" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 62, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -86,5 +71,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592933782, + "modifiedTime": 1754394853714, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!y4c1jrlHrf0wBWOq" } diff --git a/src/packs/items/consumables/consumable_Stride_Potion_lNtcrkgFGOJNaroE.json b/src/packs/items/consumables/consumable_Stride_Potion_lNtcrkgFGOJNaroE.json index 94baa901..b28dd0c7 100644 --- a/src/packs/items/consumables/consumable_Stride_Potion_lNtcrkgFGOJNaroE.json +++ b/src/packs/items/consumables/consumable_Stride_Potion_lNtcrkgFGOJNaroE.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "lNtcrkgFGOJNaroE", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -85,7 +70,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753586060323, + "modifiedTime": 1753586326926, + "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items.effects!lNtcrkgFGOJNaroE.xQ0xPDxskzZH4jeK" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753585993187, + "modifiedTime": 1754394862377, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!lNtcrkgFGOJNaroE" } diff --git a/src/packs/items/consumables/consumable_Sun_Tree_Sap_kwexUzdM9wm1Qums.json b/src/packs/items/consumables/consumable_Sun_Tree_Sap_kwexUzdM9wm1Qums.json index 48a61a28..d9e28567 100644 --- a/src/packs/items/consumables/consumable_Sun_Tree_Sap_kwexUzdM9wm1Qums.json +++ b/src/packs/items/consumables/consumable_Sun_Tree_Sap_kwexUzdM9wm1Qums.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "consumeOnSuccess": false, - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "kwexUzdM9wm1Qums", - "step": null - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -63,13 +54,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -79,5 +64,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753590791260, + "modifiedTime": 1754394871161, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!kwexUzdM9wm1Qums" } diff --git a/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json b/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json index f8b6fbb7..25780390 100644 --- a/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json +++ b/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "GrDrRqWgv7gvl9vn", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -89,16 +80,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "GrDrRqWgv7gvl9vn", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -158,13 +140,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 62, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -174,5 +150,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753592391195, + "modifiedTime": 1754394899780, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!GrDrRqWgv7gvl9vn" } diff --git a/src/packs/items/consumables/consumable_Unstable_Arcane_Shard_mUepnLbkvFk0ha4Z.json b/src/packs/items/consumables/consumable_Unstable_Arcane_Shard_mUepnLbkvFk0ha4Z.json index 96b83780..33e77c66 100644 --- a/src/packs/items/consumables/consumable_Unstable_Arcane_Shard_mUepnLbkvFk0ha4Z.json +++ b/src/packs/items/consumables/consumable_Unstable_Arcane_Shard_mUepnLbkvFk0ha4Z.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "consumeOnSuccess": false, - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "mUepnLbkvFk0ha4Z", - "step": null - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -90,13 +81,7 @@ "range": "far" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -106,5 +91,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587732694, + "modifiedTime": 1754394908763, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!mUepnLbkvFk0ha4Z" } diff --git a/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json b/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json index 79f4d11e..20d2ddea 100644 --- a/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json +++ b/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "hvy5BkG3F6iOIXTx", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -84,13 +75,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -100,5 +85,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587484164, + "modifiedTime": 1754394924546, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!hvy5BkG3F6iOIXTx" } diff --git a/src/packs/items/consumables/consumable_Vial_of_Darksmoke_Nwv5ydGf0MWnzq1n.json b/src/packs/items/consumables/consumable_Vial_of_Darksmoke_Nwv5ydGf0MWnzq1n.json index 9de41467..b65c1dec 100644 --- a/src/packs/items/consumables/consumable_Vial_of_Darksmoke_Nwv5ydGf0MWnzq1n.json +++ b/src/packs/items/consumables/consumable_Vial_of_Darksmoke_Nwv5ydGf0MWnzq1n.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "reaction", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "Nwv5ydGf0MWnzq1n", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -39,13 +30,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [], "folder": null, @@ -55,5 +40,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753588345314, + "modifiedTime": 1754394933247, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!Nwv5ydGf0MWnzq1n" } diff --git a/src/packs/items/consumables/consumable_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json b/src/packs/items/consumables/consumable_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json index 42359fe8..3f318842 100644 --- a/src/packs/items/consumables/consumable_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json +++ b/src/packs/items/consumables/consumable_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "VqEX5YwK5oL3r1t6", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -79,13 +64,21 @@ "startRound": null, "startTurn": null }, - "description": "

You can see in total darkness until your next rest.

", + "description": "

You can see in total darkness until your next rest.

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753992869479, + "modifiedTime": 1753992876165, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!VqEX5YwK5oL3r1t6.548KAUPcSbQLsivh" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753587590537, + "modifiedTime": 1754394940997, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!VqEX5YwK5oL3r1t6" } diff --git a/src/packs/items/consumables/consumable_Wingsprout_n10vozlmosVR6lo4.json b/src/packs/items/consumables/consumable_Wingsprout_n10vozlmosVR6lo4.json index 7196b296..f07a6fc9 100644 --- a/src/packs/items/consumables/consumable_Wingsprout_n10vozlmosVR6lo4.json +++ b/src/packs/items/consumables/consumable_Wingsprout_n10vozlmosVR6lo4.json @@ -14,16 +14,7 @@ "description": "

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

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "quantity", - "value": 1, - "itemId": "n10vozlmosVR6lo4", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -44,13 +35,7 @@ "range": "" } }, - "consumeOnUse": true, - "destroyOnEmpty": true, - "attribution": { - "source": "Daggerheart SRD", - "page": 61, - "artist": "" - } + "consumeOnUse": true }, "effects": [ { @@ -79,13 +64,21 @@ "startRound": null, "startTurn": null }, - "description": "

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

", + "description": "

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

", "tint": "#ffffff", "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753992894565, + "modifiedTime": 1753992898781, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!n10vozlmosVR6lo4.80F8gAn7ejhhNL7R" } @@ -97,5 +90,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753591283853, + "modifiedTime": 1754394949465, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!n10vozlmosVR6lo4" } diff --git a/src/packs/items/loot/loot_Airblade_Charm_cTYvyaSKBxosM9Y9.json b/src/packs/items/loot/loot_Airblade_Charm_cTYvyaSKBxosM9Y9.json index 0fefded2..fbfe3800 100644 --- a/src/packs/items/loot/loot_Airblade_Charm_cTYvyaSKBxosM9Y9.json +++ b/src/packs/items/loot/loot_Airblade_Charm_cTYvyaSKBxosM9Y9.json @@ -29,11 +29,6 @@ "img": "icons/equipment/neck/amulet-carved-stone-spiral-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" } }, "effects": [], @@ -44,5 +39,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753638435202, + "modifiedTime": 1753638500393, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!cTYvyaSKBxosM9Y9" } diff --git a/src/packs/items/loot/loot_Alistair_s_Torch_MeEg57T6MKpw3sme.json b/src/packs/items/loot/loot_Alistair_s_Torch_MeEg57T6MKpw3sme.json index f2086aff..8e77f2bb 100644 --- a/src/packs/items/loot/loot_Alistair_s_Torch_MeEg57T6MKpw3sme.json +++ b/src/packs/items/loot/loot_Alistair_s_Torch_MeEg57T6MKpw3sme.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625181140, + "modifiedTime": 1753625205417, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!MeEg57T6MKpw3sme" } diff --git a/src/packs/items/loot/loot_Arcane_Cloak_4STt98biZwjFoKOe.json b/src/packs/items/loot/loot_Arcane_Cloak_4STt98biZwjFoKOe.json index 9719dec0..c8b3c168 100644 --- a/src/packs/items/loot/loot_Arcane_Cloak_4STt98biZwjFoKOe.json +++ b/src/packs/items/loot/loot_Arcane_Cloak_4STt98biZwjFoKOe.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625371758, + "modifiedTime": 1753625392529, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!4STt98biZwjFoKOe" } diff --git a/src/packs/items/loot/loot_Arcane_Prism_Mn1eo2Mdtu1kzyxB.json b/src/packs/items/loot/loot_Arcane_Prism_Mn1eo2Mdtu1kzyxB.json index 016c7262..b1fa3700 100644 --- a/src/packs/items/loot/loot_Arcane_Prism_Mn1eo2Mdtu1kzyxB.json +++ b/src/packs/items/loot/loot_Arcane_Prism_Mn1eo2Mdtu1kzyxB.json @@ -34,11 +34,6 @@ "img": "icons/commodities/gems/gem-faceted-trillion-blue.webp", "range": "close" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" } }, "effects": [ @@ -74,7 +69,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626610878, + "modifiedTime": 1753626628337, + "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items.effects!Mn1eo2Mdtu1kzyxB.Ee3Z0PnyERiNFgjU" } @@ -86,5 +89,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626536923, + "modifiedTime": 1753989088942, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!Mn1eo2Mdtu1kzyxB" } diff --git a/src/packs/items/loot/loot_Attune_Relic_vK6bKyQTT3m8WvMh.json b/src/packs/items/loot/loot_Attune_Relic_vK6bKyQTT3m8WvMh.json index abed8a55..59909fa7 100644 --- a/src/packs/items/loot/loot_Attune_Relic_vK6bKyQTT3m8WvMh.json +++ b/src/packs/items/loot/loot_Attune_Relic_vK6bKyQTT3m8WvMh.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [ { @@ -38,7 +33,7 @@ "startRound": null, "startTurn": null }, - "description": "

You gain a +1 bonus to your Instinct.

", + "description": "

You gain a +1 bonus to your Instinct.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -46,7 +41,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639655271, + "modifiedTime": 1753989634795, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!vK6bKyQTT3m8WvMh.KmoJVnCQJUGyrZIk" } @@ -58,5 +61,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639587267, + "modifiedTime": 1753639733198, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!vK6bKyQTT3m8WvMh" } diff --git a/src/packs/items/loot/loot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json b/src/packs/items/loot/loot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json index c083e7ca..767dc8e0 100644 --- a/src/packs/items/loot/loot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json +++ b/src/packs/items/loot/loot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json @@ -58,11 +58,6 @@ "img": "icons/containers/bags/pouch-cloth-tan.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" } }, "effects": [ @@ -100,7 +95,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753989248179, + "modifiedTime": 1753989257670, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!v758j4FwNVAurhYK.Ouq3xWzj5rf6olVs" } @@ -112,5 +115,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637946114, + "modifiedTime": 1753989248198, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!v758j4FwNVAurhYK" } diff --git a/src/packs/items/loot/loot_Belt_of_Unity_gFzkUGCjkRJtyoe9.json b/src/packs/items/loot/loot_Belt_of_Unity_gFzkUGCjkRJtyoe9.json index 63d13728..717f4024 100644 --- a/src/packs/items/loot/loot_Belt_of_Unity_gFzkUGCjkRJtyoe9.json +++ b/src/packs/items/loot/loot_Belt_of_Unity_gFzkUGCjkRJtyoe9.json @@ -19,6 +19,7 @@ "scalable": false, "key": "hope", "value": 5, + "keyIsID": false, "step": null } ], @@ -36,11 +37,6 @@ "img": "icons/equipment/waist/belt-buckle-ornate-steel.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" } }, "effects": [], @@ -51,5 +47,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640971116, + "modifiedTime": 1753641065768, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!gFzkUGCjkRJtyoe9" } diff --git a/src/packs/items/loot/loot_Bloodstone_oMd78vhL2x2NO8Mg.json b/src/packs/items/loot/loot_Bloodstone_oMd78vhL2x2NO8Mg.json index ab015265..f5a19dff 100644 --- a/src/packs/items/loot/loot_Bloodstone_oMd78vhL2x2NO8Mg.json +++ b/src/packs/items/loot/loot_Bloodstone_oMd78vhL2x2NO8Mg.json @@ -6,12 +6,7 @@ "system": { "description": "

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

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637532005, + "modifiedTime": 1753637570344, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!oMd78vhL2x2NO8Mg" } diff --git a/src/packs/items/loot/loot_Bolster_Relic_m3EpxlDgxn2tCDDR.json b/src/packs/items/loot/loot_Bolster_Relic_m3EpxlDgxn2tCDDR.json index d45af6dc..695b8a1c 100644 --- a/src/packs/items/loot/loot_Bolster_Relic_m3EpxlDgxn2tCDDR.json +++ b/src/packs/items/loot/loot_Bolster_Relic_m3EpxlDgxn2tCDDR.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [ { @@ -38,7 +33,7 @@ "startRound": null, "startTurn": null }, - "description": "

You gain a +1 bonus to your Strength.

", + "description": "

You gain a +1 bonus to your Strength.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -46,7 +41,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639476499, + "modifiedTime": 1753989646651, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!m3EpxlDgxn2tCDDR.ByYXvJNr5YbXqn8I" } @@ -58,5 +61,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639461783, + "modifiedTime": 1753639473676, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!m3EpxlDgxn2tCDDR" } diff --git a/src/packs/items/loot/loot_Box_of_Many_Goods_bZyT7Qw7iafswlTY.json b/src/packs/items/loot/loot_Box_of_Many_Goods_bZyT7Qw7iafswlTY.json index 1090323f..3112c665 100644 --- a/src/packs/items/loot/loot_Box_of_Many_Goods_bZyT7Qw7iafswlTY.json +++ b/src/packs/items/loot/loot_Box_of_Many_Goods_bZyT7Qw7iafswlTY.json @@ -53,11 +53,6 @@ "img": "icons/containers/boxes/crate-heavy-yellow.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" } }, "effects": [], @@ -68,5 +63,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753638361357, + "modifiedTime": 1753989365853, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!bZyT7Qw7iafswlTY" } diff --git a/src/packs/items/loot/loot_Calming_Pendant_tgFFMxpuRSiRrrEB.json b/src/packs/items/loot/loot_Calming_Pendant_tgFFMxpuRSiRrrEB.json index 3d5b9651..82a1078a 100644 --- a/src/packs/items/loot/loot_Calming_Pendant_tgFFMxpuRSiRrrEB.json +++ b/src/packs/items/loot/loot_Calming_Pendant_tgFFMxpuRSiRrrEB.json @@ -53,11 +53,6 @@ "img": "icons/equipment/neck/amulet-round-blue.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" } }, "effects": [], @@ -68,5 +63,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637842111, + "modifiedTime": 1753989405747, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!tgFFMxpuRSiRrrEB" } diff --git a/src/packs/items/loot/loot_Charging_Quiver_gsUDP90d4SRtLEUn.json b/src/packs/items/loot/loot_Charging_Quiver_gsUDP90d4SRtLEUn.json index ee7d7a10..19ef04c7 100644 --- a/src/packs/items/loot/loot_Charging_Quiver_gsUDP90d4SRtLEUn.json +++ b/src/packs/items/loot/loot_Charging_Quiver_gsUDP90d4SRtLEUn.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [ { @@ -59,7 +54,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753989433725, + "modifiedTime": 1753989574054, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!gsUDP90d4SRtLEUn.0zebbOsyjkm9IqE6" } @@ -71,5 +74,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625025089, + "modifiedTime": 1753989432098, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!gsUDP90d4SRtLEUn" } diff --git a/src/packs/items/loot/loot_Charm_Relic_9P9jqGSlxVCbTdLe.json b/src/packs/items/loot/loot_Charm_Relic_9P9jqGSlxVCbTdLe.json index f3313941..a1c80a2b 100644 --- a/src/packs/items/loot/loot_Charm_Relic_9P9jqGSlxVCbTdLe.json +++ b/src/packs/items/loot/loot_Charm_Relic_9P9jqGSlxVCbTdLe.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [ { @@ -38,7 +33,7 @@ "startRound": null, "startTurn": null }, - "description": "

You gain a +1 bonus to your Presence.

", + "description": "

You gain a +1 bonus to your Presence.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -46,7 +41,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639698545, + "modifiedTime": 1753989621310, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!9P9jqGSlxVCbTdLe.2yr8Ps6wvaG3b1qy" } @@ -58,5 +61,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639686831, + "modifiedTime": 1753639719586, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!9P9jqGSlxVCbTdLe" } diff --git a/src/packs/items/loot/loot_Clay_Companion_lGIk9vBNz0jvskXD.json b/src/packs/items/loot/loot_Clay_Companion_lGIk9vBNz0jvskXD.json index db1ecbf2..d60c928c 100644 --- a/src/packs/items/loot/loot_Clay_Companion_lGIk9vBNz0jvskXD.json +++ b/src/packs/items/loot/loot_Clay_Companion_lGIk9vBNz0jvskXD.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640057300, + "modifiedTime": 1753640276057, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!lGIk9vBNz0jvskXD" } diff --git a/src/packs/items/loot/loot_Companion_Case_V25uXkAQvK3hUta4.json b/src/packs/items/loot/loot_Companion_Case_V25uXkAQvK3hUta4.json index 3f64133f..65854d4c 100644 --- a/src/packs/items/loot/loot_Companion_Case_V25uXkAQvK3hUta4.json +++ b/src/packs/items/loot/loot_Companion_Case_V25uXkAQvK3hUta4.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625898190, + "modifiedTime": 1753625935379, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!V25uXkAQvK3hUta4" } diff --git a/src/packs/items/loot/loot_Control_Relic_QPGBDItjrRhXU6iJ.json b/src/packs/items/loot/loot_Control_Relic_QPGBDItjrRhXU6iJ.json index 254f4017..9245934b 100644 --- a/src/packs/items/loot/loot_Control_Relic_QPGBDItjrRhXU6iJ.json +++ b/src/packs/items/loot/loot_Control_Relic_QPGBDItjrRhXU6iJ.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [ { @@ -38,7 +33,7 @@ "startRound": null, "startTurn": null }, - "description": "

You gain a +1 bonus to your Finesse.

", + "description": "

You gain a +1 bonus to your Finesse.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -46,7 +41,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639502481, + "modifiedTime": 1753989714746, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!QPGBDItjrRhXU6iJ.OwjK2TqOizTiRGxD" } @@ -58,5 +61,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639492071, + "modifiedTime": 1753639541446, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!QPGBDItjrRhXU6iJ" } diff --git a/src/packs/items/loot/loot_Corrector_Sprite_G0RktbmtnuAlKCRH.json b/src/packs/items/loot/loot_Corrector_Sprite_G0RktbmtnuAlKCRH.json index dc4183d3..4a1a0848 100644 --- a/src/packs/items/loot/loot_Corrector_Sprite_G0RktbmtnuAlKCRH.json +++ b/src/packs/items/loot/loot_Corrector_Sprite_G0RktbmtnuAlKCRH.json @@ -29,11 +29,6 @@ "img": "icons/magic/light/orbs-smoke-pink.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" } }, "effects": [], @@ -44,5 +39,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637155361, + "modifiedTime": 1753637366036, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!G0RktbmtnuAlKCRH" } diff --git a/src/packs/items/loot/loot_Dual_Flask_HCvcAu3sdHCspGMP.json b/src/packs/items/loot/loot_Dual_Flask_HCvcAu3sdHCspGMP.json index 4e4e0cf0..f99220c9 100644 --- a/src/packs/items/loot/loot_Dual_Flask_HCvcAu3sdHCspGMP.json +++ b/src/packs/items/loot/loot_Dual_Flask_HCvcAu3sdHCspGMP.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637893309, + "modifiedTime": 1753637932763, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!HCvcAu3sdHCspGMP" } diff --git a/src/packs/items/loot/loot_Elusive_Amulet_PkmTZXRMZL022O75.json b/src/packs/items/loot/loot_Elusive_Amulet_PkmTZXRMZL022O75.json index a027ea5c..6b007a29 100644 --- a/src/packs/items/loot/loot_Elusive_Amulet_PkmTZXRMZL022O75.json +++ b/src/packs/items/loot/loot_Elusive_Amulet_PkmTZXRMZL022O75.json @@ -34,11 +34,6 @@ "img": "icons/equipment/neck/pendant-rough-silver-purple.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" } }, "effects": [ @@ -61,7 +56,7 @@ "startRound": null, "startTurn": null }, - "description": "

You are Hidden until you move. While Hidden in this way, you remain unseen even if an adversary moves to where they would normally see you.

", + "description": "

You are Hidden until you move. While Hidden in this way, you remain unseen even if an adversary moves to where they would normally see you.

", "tint": "#ffffff", "statuses": [ "hidden" @@ -69,7 +64,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639111583, + "modifiedTime": 1753989796129, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!PkmTZXRMZL022O75.YBkYjxU0Vn5JEsMK" } @@ -81,5 +84,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753638931971, + "modifiedTime": 1753989758225, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!PkmTZXRMZL022O75" } diff --git a/src/packs/items/loot/loot_Empty_Chest_p2yy61uKsyIsl8cU.json b/src/packs/items/loot/loot_Empty_Chest_p2yy61uKsyIsl8cU.json index ccf40e74..bb6ca519 100644 --- a/src/packs/items/loot/loot_Empty_Chest_p2yy61uKsyIsl8cU.json +++ b/src/packs/items/loot/loot_Empty_Chest_p2yy61uKsyIsl8cU.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625859659, + "modifiedTime": 1753625887033, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!p2yy61uKsyIsl8cU" } diff --git a/src/packs/items/loot/loot_Enlighten_Relic_vSGx1f9SYUiA29L3.json b/src/packs/items/loot/loot_Enlighten_Relic_vSGx1f9SYUiA29L3.json index a6ca361e..0f992ddf 100644 --- a/src/packs/items/loot/loot_Enlighten_Relic_vSGx1f9SYUiA29L3.json +++ b/src/packs/items/loot/loot_Enlighten_Relic_vSGx1f9SYUiA29L3.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [ { @@ -38,7 +33,7 @@ "startRound": null, "startTurn": null }, - "description": "

You gain a +1 bonus to your Knowledge.

", + "description": "

You gain a +1 bonus to your Knowledge.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -46,7 +41,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639757883, + "modifiedTime": 1753989839297, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!vSGx1f9SYUiA29L3.aWOGlmqC9l86GlFV" } @@ -58,5 +61,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639753586, + "modifiedTime": 1753639789835, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!vSGx1f9SYUiA29L3" } diff --git a/src/packs/items/loot/loot_Fire_Jar_X6RMkIt89wf7qX2E.json b/src/packs/items/loot/loot_Fire_Jar_X6RMkIt89wf7qX2E.json index 5c5c4a33..bcdda979 100644 --- a/src/packs/items/loot/loot_Fire_Jar_X6RMkIt89wf7qX2E.json +++ b/src/packs/items/loot/loot_Fire_Jar_X6RMkIt89wf7qX2E.json @@ -29,11 +29,6 @@ "img": "icons/containers/kitchenware/jug-wrapped-red.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" } }, "effects": [], @@ -44,5 +39,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625575791, + "modifiedTime": 1753625617382, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!X6RMkIt89wf7qX2E" } diff --git a/src/packs/items/loot/loot_Flickerfly_Pendant_9VKYSBQxN9XFWlAm.json b/src/packs/items/loot/loot_Flickerfly_Pendant_9VKYSBQxN9XFWlAm.json index 3617beb3..bb7f8495 100644 --- a/src/packs/items/loot/loot_Flickerfly_Pendant_9VKYSBQxN9XFWlAm.json +++ b/src/packs/items/loot/loot_Flickerfly_Pendant_9VKYSBQxN9XFWlAm.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639935227, + "modifiedTime": 1753639964153, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!9VKYSBQxN9XFWlAm" } diff --git a/src/packs/items/loot/loot_Gecko_Gloves_CGzjBpHJRG8KSt5Y.json b/src/packs/items/loot/loot_Gecko_Gloves_CGzjBpHJRG8KSt5Y.json index 96d23f78..3dbdae76 100644 --- a/src/packs/items/loot/loot_Gecko_Gloves_CGzjBpHJRG8KSt5Y.json +++ b/src/packs/items/loot/loot_Gecko_Gloves_CGzjBpHJRG8KSt5Y.json @@ -6,12 +6,7 @@ "system": { "description": "

You can climb up vertical surfaces and across ceilings.

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637390470, + "modifiedTime": 1753637455936, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!CGzjBpHJRG8KSt5Y" } diff --git a/src/packs/items/loot/loot_Gem_of_Alacrity_zecFwBUSWtB3HW8X.json b/src/packs/items/loot/loot_Gem_of_Alacrity_zecFwBUSWtB3HW8X.json index e207bb4c..86b17e74 100644 --- a/src/packs/items/loot/loot_Gem_of_Alacrity_zecFwBUSWtB3HW8X.json +++ b/src/packs/items/loot/loot_Gem_of_Alacrity_zecFwBUSWtB3HW8X.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640285473, + "modifiedTime": 1753640317903, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!zecFwBUSWtB3HW8X" } diff --git a/src/packs/items/loot/loot_Gem_of_Audacity_hMu9It3ThCLCXuCA.json b/src/packs/items/loot/loot_Gem_of_Audacity_hMu9It3ThCLCXuCA.json index 1479030b..07d44a2c 100644 --- a/src/packs/items/loot/loot_Gem_of_Audacity_hMu9It3ThCLCXuCA.json +++ b/src/packs/items/loot/loot_Gem_of_Audacity_hMu9It3ThCLCXuCA.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640590771, + "modifiedTime": 1753640602606, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!hMu9It3ThCLCXuCA" } diff --git a/src/packs/items/loot/loot_Gem_of_Insight_TbgeT9ZxKHqFqJSN.json b/src/packs/items/loot/loot_Gem_of_Insight_TbgeT9ZxKHqFqJSN.json index 9765c7f3..03743b23 100644 --- a/src/packs/items/loot/loot_Gem_of_Insight_TbgeT9ZxKHqFqJSN.json +++ b/src/packs/items/loot/loot_Gem_of_Insight_TbgeT9ZxKHqFqJSN.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640563344, + "modifiedTime": 1753640580953, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!TbgeT9ZxKHqFqJSN" } diff --git a/src/packs/items/loot/loot_Gem_of_Might_rtSInNPc4B3ChBUZ.json b/src/packs/items/loot/loot_Gem_of_Might_rtSInNPc4B3ChBUZ.json index 2e20c998..8395388f 100644 --- a/src/packs/items/loot/loot_Gem_of_Might_rtSInNPc4B3ChBUZ.json +++ b/src/packs/items/loot/loot_Gem_of_Might_rtSInNPc4B3ChBUZ.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640512721, + "modifiedTime": 1753640527143, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!rtSInNPc4B3ChBUZ" } diff --git a/src/packs/items/loot/loot_Gem_of_Precision_CrvJ7vb4s40YgEcy.json b/src/packs/items/loot/loot_Gem_of_Precision_CrvJ7vb4s40YgEcy.json index 990e08f9..6dc57398 100644 --- a/src/packs/items/loot/loot_Gem_of_Precision_CrvJ7vb4s40YgEcy.json +++ b/src/packs/items/loot/loot_Gem_of_Precision_CrvJ7vb4s40YgEcy.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640535939, + "modifiedTime": 1753640553552, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!CrvJ7vb4s40YgEcy" } diff --git a/src/packs/items/loot/loot_Gem_of_Sagacity_ua351S7CsH22X1x2.json b/src/packs/items/loot/loot_Gem_of_Sagacity_ua351S7CsH22X1x2.json index 0b822d2e..4128007b 100644 --- a/src/packs/items/loot/loot_Gem_of_Sagacity_ua351S7CsH22X1x2.json +++ b/src/packs/items/loot/loot_Gem_of_Sagacity_ua351S7CsH22X1x2.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640610217, + "modifiedTime": 1753640623916, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!ua351S7CsH22X1x2" } diff --git a/src/packs/items/loot/loot_Glamour_Stone_Pj17cvdJ1XG1jv6I.json b/src/packs/items/loot/loot_Glamour_Stone_Pj17cvdJ1XG1jv6I.json index 424d7a04..dacc4376 100644 --- a/src/packs/items/loot/loot_Glamour_Stone_Pj17cvdJ1XG1jv6I.json +++ b/src/packs/items/loot/loot_Glamour_Stone_Pj17cvdJ1XG1jv6I.json @@ -11,11 +11,12 @@ "type": "effect", "_id": "ATQgH12mufTOQLKs", "systemPath": "actions", - "description": "

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

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -24,68 +25,21 @@ ], "uses": { "value": null, - "max": "", + "max": null, "recovery": null }, - "effects": [ - { - "_id": "K5SB6tfuDkdVaQYe", - "onSave": false - } - ], + "effects": [], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Create Illusion", "img": "icons/commodities/treasure/token-engraved-purple-glowing.webp", - "range": "self" + "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" } }, - "effects": [ - { - "name": "Glamour Stone", - "img": "icons/commodities/treasure/token-engraved-purple-glowing.webp", - "origin": "Compendium.daggerheart.loot.Item.Pj17cvdJ1XG1jv6I", - "transfer": false, - "_id": "K5SB6tfuDkdVaQYe", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "changes": [], - "disabled": false, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

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

", - "tint": "#ffffff", - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!Pj17cvdJ1XG1jv6I.K5SB6tfuDkdVaQYe" - } - ], + "effects": [], "folder": null, "sort": 0, "ownership": { @@ -93,5 +47,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625773657, + "modifiedTime": 1753625847459, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!Pj17cvdJ1XG1jv6I" } diff --git a/src/packs/items/loot/loot_Glider_CiXwelozmBDcPY48.json b/src/packs/items/loot/loot_Glider_CiXwelozmBDcPY48.json index 94d5ea72..799e170f 100644 --- a/src/packs/items/loot/loot_Glider_CiXwelozmBDcPY48.json +++ b/src/packs/items/loot/loot_Glider_CiXwelozmBDcPY48.json @@ -19,6 +19,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -36,11 +37,6 @@ "img": "icons/commodities/leather/leather-patch-red.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" } }, "effects": [], @@ -51,5 +47,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637642501, + "modifiedTime": 1753989923053, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!CiXwelozmBDcPY48" } diff --git a/src/packs/items/loot/loot_Greatstone_y7zABzR0Q2fRskTw.json b/src/packs/items/loot/loot_Greatstone_y7zABzR0Q2fRskTw.json index 7c4eda2c..e19ac9a6 100644 --- a/src/packs/items/loot/loot_Greatstone_y7zABzR0Q2fRskTw.json +++ b/src/packs/items/loot/loot_Greatstone_y7zABzR0Q2fRskTw.json @@ -6,12 +6,7 @@ "system": { "description": "

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

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637596921, + "modifiedTime": 1753637633941, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!y7zABzR0Q2fRskTw" } diff --git a/src/packs/items/loot/loot_Homing_Compasses_yrAGYlDyoe4OYl7d.json b/src/packs/items/loot/loot_Homing_Compasses_yrAGYlDyoe4OYl7d.json index 1c3eb75b..be6e9ad5 100644 --- a/src/packs/items/loot/loot_Homing_Compasses_yrAGYlDyoe4OYl7d.json +++ b/src/packs/items/loot/loot_Homing_Compasses_yrAGYlDyoe4OYl7d.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637089789, + "modifiedTime": 1753637129113, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!yrAGYlDyoe4OYl7d" } diff --git a/src/packs/items/loot/loot_Honing_Relic_SAAnEAeXDnhBbLjB.json b/src/packs/items/loot/loot_Honing_Relic_SAAnEAeXDnhBbLjB.json index 37bcb3e6..4fb5b0de 100644 --- a/src/packs/items/loot/loot_Honing_Relic_SAAnEAeXDnhBbLjB.json +++ b/src/packs/items/loot/loot_Honing_Relic_SAAnEAeXDnhBbLjB.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639799902, + "modifiedTime": 1753639815534, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!SAAnEAeXDnhBbLjB" } diff --git a/src/packs/items/loot/loot_Hopekeeper_Locket_9DcFR75tsnBYIp6Z.json b/src/packs/items/loot/loot_Hopekeeper_Locket_9DcFR75tsnBYIp6Z.json index 774c1f50..6899908f 100644 --- a/src/packs/items/loot/loot_Hopekeeper_Locket_9DcFR75tsnBYIp6Z.json +++ b/src/packs/items/loot/loot_Hopekeeper_Locket_9DcFR75tsnBYIp6Z.json @@ -16,6 +16,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -98,11 +99,6 @@ "img": "icons/equipment/neck/amulet-round-engraved-spiral-gold.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" } }, "effects": [], @@ -113,5 +109,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639224510, + "modifiedTime": 1753639329411, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!9DcFR75tsnBYIp6Z" } diff --git a/src/packs/items/loot/loot_Infinite_Bag_Iedjw1LVWEozVh0J.json b/src/packs/items/loot/loot_Infinite_Bag_Iedjw1LVWEozVh0J.json index 3479002c..83044c0f 100644 --- a/src/packs/items/loot/loot_Infinite_Bag_Iedjw1LVWEozVh0J.json +++ b/src/packs/items/loot/loot_Infinite_Bag_Iedjw1LVWEozVh0J.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639339762, + "modifiedTime": 1753639361505, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!Iedjw1LVWEozVh0J" } diff --git a/src/packs/items/loot/loot_Lakestrider_Boots_NgvmrJYKpA2PrRSo.json b/src/packs/items/loot/loot_Lakestrider_Boots_NgvmrJYKpA2PrRSo.json index 28a3a8ee..b64c2faf 100644 --- a/src/packs/items/loot/loot_Lakestrider_Boots_NgvmrJYKpA2PrRSo.json +++ b/src/packs/items/loot/loot_Lakestrider_Boots_NgvmrJYKpA2PrRSo.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639975496, + "modifiedTime": 1753639999823, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!NgvmrJYKpA2PrRSo" } diff --git a/src/packs/items/loot/loot_Lorekeeper_JsPYzrqpITqGj23I.json b/src/packs/items/loot/loot_Lorekeeper_JsPYzrqpITqGj23I.json index 29713ceb..8a1fd26e 100644 --- a/src/packs/items/loot/loot_Lorekeeper_JsPYzrqpITqGj23I.json +++ b/src/packs/items/loot/loot_Lorekeeper_JsPYzrqpITqGj23I.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637467427, + "modifiedTime": 1753637489198, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!JsPYzrqpITqGj23I" } diff --git a/src/packs/items/loot/loot_Manacles_GkmATIuemyFtQX1D.json b/src/packs/items/loot/loot_Manacles_GkmATIuemyFtQX1D.json index 0811058a..cbeb9f38 100644 --- a/src/packs/items/loot/loot_Manacles_GkmATIuemyFtQX1D.json +++ b/src/packs/items/loot/loot_Manacles_GkmATIuemyFtQX1D.json @@ -6,12 +6,7 @@ "system": { "description": "

This pair of locking cuffs comes with a key.

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625337217, + "modifiedTime": 1753625362038, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!GkmATIuemyFtQX1D" } diff --git a/src/packs/items/loot/loot_Minor_Health_Potion_Recipe_PQxvxAVBbkt0TleC.json b/src/packs/items/loot/loot_Minor_Health_Potion_Recipe_PQxvxAVBbkt0TleC.json index 592f166f..2d8c286b 100644 --- a/src/packs/items/loot/loot_Minor_Health_Potion_Recipe_PQxvxAVBbkt0TleC.json +++ b/src/packs/items/loot/loot_Minor_Health_Potion_Recipe_PQxvxAVBbkt0TleC.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637045921, + "modifiedTime": 1753637071130, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!PQxvxAVBbkt0TleC" } diff --git a/src/packs/items/loot/loot_Minor_Stamina_Potion_Recipe_1TLpFsp3PLDsqoTw.json b/src/packs/items/loot/loot_Minor_Stamina_Potion_Recipe_1TLpFsp3PLDsqoTw.json index 08cf86cf..d963d82d 100644 --- a/src/packs/items/loot/loot_Minor_Stamina_Potion_Recipe_1TLpFsp3PLDsqoTw.json +++ b/src/packs/items/loot/loot_Minor_Stamina_Potion_Recipe_1TLpFsp3PLDsqoTw.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626639554, + "modifiedTime": 1753626666369, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!1TLpFsp3PLDsqoTw" } diff --git a/src/packs/items/loot/loot_Mythic_Dust_Recipe_5YZls8XH3MB7twNa.json b/src/packs/items/loot/loot_Mythic_Dust_Recipe_5YZls8XH3MB7twNa.json index 4bf14857..2325a405 100644 --- a/src/packs/items/loot/loot_Mythic_Dust_Recipe_5YZls8XH3MB7twNa.json +++ b/src/packs/items/loot/loot_Mythic_Dust_Recipe_5YZls8XH3MB7twNa.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640163566, + "modifiedTime": 1753640190943, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!5YZls8XH3MB7twNa" } diff --git a/src/packs/items/loot/loot_Paragon_s_Chain_F4hoRfvVdZq5bhhI.json b/src/packs/items/loot/loot_Paragon_s_Chain_F4hoRfvVdZq5bhhI.json index 42947c88..f62b7895 100644 --- a/src/packs/items/loot/loot_Paragon_s_Chain_F4hoRfvVdZq5bhhI.json +++ b/src/packs/items/loot/loot_Paragon_s_Chain_F4hoRfvVdZq5bhhI.json @@ -16,6 +16,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -36,11 +37,6 @@ "img": "icons/equipment/neck/choker-chain-thin-gold.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" } }, "effects": [], @@ -51,5 +47,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753638721391, + "modifiedTime": 1753638917868, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!F4hoRfvVdZq5bhhI" } diff --git a/src/packs/items/loot/loot_Phoenix_Feather_QNtzJSVENww63THa.json b/src/packs/items/loot/loot_Phoenix_Feather_QNtzJSVENww63THa.json index 64ef4b64..a51d206b 100644 --- a/src/packs/items/loot/loot_Phoenix_Feather_QNtzJSVENww63THa.json +++ b/src/packs/items/loot/loot_Phoenix_Feather_QNtzJSVENww63THa.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753638285123, + "modifiedTime": 1753638336982, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!QNtzJSVENww63THa" } diff --git a/src/packs/items/loot/loot_Piercing_Arrows_I63LTFD6GXHgyGpR.json b/src/packs/items/loot/loot_Piercing_Arrows_I63LTFD6GXHgyGpR.json index b87bd1b0..a3789138 100644 --- a/src/packs/items/loot/loot_Piercing_Arrows_I63LTFD6GXHgyGpR.json +++ b/src/packs/items/loot/loot_Piercing_Arrows_I63LTFD6GXHgyGpR.json @@ -11,7 +11,7 @@ "type": "effect", "_id": "DW5AqEM0F8XaUqpn", "systemPath": "actions", - "description": "

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

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [], @@ -29,11 +29,6 @@ "img": "icons/weapons/ammunition/arrow-broadhead-glowing-orange.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" } }, "effects": [ @@ -74,7 +69,7 @@ "startRound": null, "startTurn": null }, - "description": "

Add your Proficiency to the damage roll of this attack.

", + "description": "

Add your Proficiency to the damage roll of this attack.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -82,7 +77,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753990197623, + "modifiedTime": 1753990270846, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!I63LTFD6GXHgyGpR.lRfqfbwlfxzPbE6U" } @@ -94,5 +97,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625947079, + "modifiedTime": 1753990194353, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!I63LTFD6GXHgyGpR" } diff --git a/src/packs/items/loot/loot_Piper_Whistle_v4PIoCCEjeE3acys.json b/src/packs/items/loot/loot_Piper_Whistle_v4PIoCCEjeE3acys.json index 3a54619d..b0e2954c 100644 --- a/src/packs/items/loot/loot_Piper_Whistle_v4PIoCCEjeE3acys.json +++ b/src/packs/items/loot/loot_Piper_Whistle_v4PIoCCEjeE3acys.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753624968366, + "modifiedTime": 1753625011843, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!v4PIoCCEjeE3acys" } diff --git a/src/packs/items/loot/loot_Portal_Seed_eRd5Gk7J7hPCqp11.json b/src/packs/items/loot/loot_Portal_Seed_eRd5Gk7J7hPCqp11.json index 2fd9d52f..4eb1e0d7 100644 --- a/src/packs/items/loot/loot_Portal_Seed_eRd5Gk7J7hPCqp11.json +++ b/src/packs/items/loot/loot_Portal_Seed_eRd5Gk7J7hPCqp11.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753638512020, + "modifiedTime": 1753638586392, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!eRd5Gk7J7hPCqp11" } diff --git a/src/packs/items/loot/loot_Premium_Bedroll_QGYPNBIufpBguwjC.json b/src/packs/items/loot/loot_Premium_Bedroll_QGYPNBIufpBguwjC.json index b7e99e77..9d90b78b 100644 --- a/src/packs/items/loot/loot_Premium_Bedroll_QGYPNBIufpBguwjC.json +++ b/src/packs/items/loot/loot_Premium_Bedroll_QGYPNBIufpBguwjC.json @@ -17,11 +17,11 @@ "cost": [], "uses": { "value": null, - "max": "", + "max": null, "recovery": null }, "target": { - "type": "self", + "type": "any", "amount": null }, "effects": [], @@ -68,11 +68,6 @@ "img": "icons/sundries/survival/bedroll-blue-red.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" } }, "effects": [], @@ -83,5 +78,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753624827945, + "modifiedTime": 1753624908866, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!QGYPNBIufpBguwjC" } diff --git a/src/packs/items/loot/loot_Ring_of_Resistance_aUqRifqR5JXXa1dN.json b/src/packs/items/loot/loot_Ring_of_Resistance_aUqRifqR5JXXa1dN.json index 3668b6b7..f241cf1f 100644 --- a/src/packs/items/loot/loot_Ring_of_Resistance_aUqRifqR5JXXa1dN.json +++ b/src/packs/items/loot/loot_Ring_of_Resistance_aUqRifqR5JXXa1dN.json @@ -11,7 +11,7 @@ "type": "effect", "_id": "4swwe8SZeh2KyPtl", "systemPath": "actions", - "description": "

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

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [], @@ -20,78 +20,18 @@ "max": 1, "recovery": "longRest" }, - "effects": [ - { - "_id": "Sj7uGf560T7u4rlX", - "onSave": false - } - ], + "effects": [], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Activate", "img": "icons/equipment/finger/ring-shield-silver.webp", - "range": "self" + "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" } }, - "effects": [ - { - "name": "Ring of Resistance", - "img": "icons/equipment/finger/ring-shield-silver.webp", - "origin": "Compendium.daggerheart.loot.Item.aUqRifqR5JXXa1dN", - "transfer": false, - "_id": "Sj7uGf560T7u4rlX", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "changes": [ - { - "key": "system.resistance.magical.resistance", - "mode": 5, - "value": "1", - "priority": null - }, - { - "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": "

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

", - "tint": "#ffffff", - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!aUqRifqR5JXXa1dN.Sj7uGf560T7u4rlX" - } - ], + "effects": [], "folder": null, "sort": 0, "ownership": { @@ -99,5 +39,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753638222884, + "modifiedTime": 1753638266245, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!aUqRifqR5JXXa1dN" } diff --git a/src/packs/items/loot/loot_Ring_of_Silence_K1ysGnTpNyxPu5Au.json b/src/packs/items/loot/loot_Ring_of_Silence_K1ysGnTpNyxPu5Au.json index 3521098d..502c73b2 100644 --- a/src/packs/items/loot/loot_Ring_of_Silence_K1ysGnTpNyxPu5Au.json +++ b/src/packs/items/loot/loot_Ring_of_Silence_K1ysGnTpNyxPu5Au.json @@ -11,11 +11,12 @@ "type": "effect", "_id": "Y4mvuJ4tncrKhyjY", "systemPath": "actions", - "description": "

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

", + "description": "", "chatDisplay": true, "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -27,35 +28,23 @@ "max": 1, "recovery": "shortRest" }, - "effects": [ - { - "_id": "9JSLRu7amQ4iuIO7", - "onSave": false - } - ], + "effects": [], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Activate", "img": "icons/equipment/finger/ring-ball-purple.webp", - "range": "self" + "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" } }, "effects": [ { "name": "Ring of Silence", - "img": "icons/equipment/finger/ring-ball-purple.webp", - "origin": "Compendium.daggerheart.loot.Item.K1ysGnTpNyxPu5Au", - "transfer": false, - "_id": "9JSLRu7amQ4iuIO7", "type": "base", + "_id": "aCt3QjdeTREZAlEa", + "img": "icons/equipment/finger/ring-ball-purple.webp", "system": { "rangeDependence": { "enabled": false, @@ -65,7 +54,7 @@ } }, "changes": [], - "disabled": false, + "disabled": true, "duration": { "startTime": null, "combat": null, @@ -75,15 +64,25 @@ "startRound": null, "startTurn": null }, - "description": "

Your footsteps are silent until your next rest.

", + "description": "

Your footsteps are silent until your next rest.

", + "origin": null, "tint": "#ffffff", + "transfer": true, "statuses": [], "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753990311274, + "modifiedTime": 1753990345889, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, - "_key": "!items.effects!K1ysGnTpNyxPu5Au.9JSLRu7amQ4iuIO7" + "_key": "!items.effects!K1ysGnTpNyxPu5Au.aCt3QjdeTREZAlEa" } ], "folder": null, @@ -93,5 +92,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637775628, + "modifiedTime": 1753637832657, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!K1ysGnTpNyxPu5Au" } diff --git a/src/packs/items/loot/loot_Ring_of_Unbreakable_Resolve_kn71qCQY0DnjmQBJ.json b/src/packs/items/loot/loot_Ring_of_Unbreakable_Resolve_kn71qCQY0DnjmQBJ.json index e4686f16..94f8bdec 100644 --- a/src/packs/items/loot/loot_Ring_of_Unbreakable_Resolve_kn71qCQY0DnjmQBJ.json +++ b/src/packs/items/loot/loot_Ring_of_Unbreakable_Resolve_kn71qCQY0DnjmQBJ.json @@ -19,6 +19,7 @@ "scalable": false, "key": "hope", "value": 4, + "keyIsID": false, "step": null } ], @@ -36,11 +37,6 @@ "img": "icons/equipment/finger/ring-faceted-gold-teal.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" } }, "effects": [], @@ -51,5 +47,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640632212, + "modifiedTime": 1753640958684, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!kn71qCQY0DnjmQBJ" } diff --git a/src/packs/items/loot/loot_Shard_of_Memory_2ULPgNyqCrxea0v0.json b/src/packs/items/loot/loot_Shard_of_Memory_2ULPgNyqCrxea0v0.json index 261bca57..46beee5a 100644 --- a/src/packs/items/loot/loot_Shard_of_Memory_2ULPgNyqCrxea0v0.json +++ b/src/packs/items/loot/loot_Shard_of_Memory_2ULPgNyqCrxea0v0.json @@ -19,6 +19,7 @@ "scalable": false, "key": "hope", "value": 2, + "keyIsID": false, "step": null } ], @@ -36,11 +37,6 @@ "img": "icons/commodities/gems/gem-rough-navette-purple-pink.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 60, - "artist": "" } }, "effects": [], @@ -51,5 +47,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753640199098, + "modifiedTime": 1753990369010, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!2ULPgNyqCrxea0v0" } diff --git a/src/packs/items/loot/loot_Skeleton_Key_edkNgwy4xghZreBa.json b/src/packs/items/loot/loot_Skeleton_Key_edkNgwy4xghZreBa.json index 72a8d3e0..4b480459 100644 --- a/src/packs/items/loot/loot_Skeleton_Key_edkNgwy4xghZreBa.json +++ b/src/packs/items/loot/loot_Skeleton_Key_edkNgwy4xghZreBa.json @@ -53,11 +53,6 @@ "img": "icons/sundries/misc/key-ornate-iron-black.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" } }, "effects": [], @@ -68,5 +63,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626370278, + "modifiedTime": 1753626508104, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!edkNgwy4xghZreBa" } diff --git a/src/packs/items/loot/loot_Speaking_Orbs_LZrG6CFiSjpLA2F1.json b/src/packs/items/loot/loot_Speaking_Orbs_LZrG6CFiSjpLA2F1.json index d72f9608..1239b6ab 100644 --- a/src/packs/items/loot/loot_Speaking_Orbs_LZrG6CFiSjpLA2F1.json +++ b/src/packs/items/loot/loot_Speaking_Orbs_LZrG6CFiSjpLA2F1.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625222662, + "modifiedTime": 1753625327080, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!LZrG6CFiSjpLA2F1" } diff --git a/src/packs/items/loot/loot_Stride_Relic_FfJISMzYATaPQPLc.json b/src/packs/items/loot/loot_Stride_Relic_FfJISMzYATaPQPLc.json index 703d8439..9f169207 100644 --- a/src/packs/items/loot/loot_Stride_Relic_FfJISMzYATaPQPLc.json +++ b/src/packs/items/loot/loot_Stride_Relic_FfJISMzYATaPQPLc.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [ { @@ -38,7 +33,7 @@ "startRound": null, "startTurn": null }, - "description": "

You gain a +1 bonus to your Agility.

", + "description": "

You gain a +1 bonus to your Agility.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -46,7 +41,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639435741, + "modifiedTime": 1753990402231, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!FfJISMzYATaPQPLc.7lHIbMyCDonSxSZf" } @@ -58,5 +61,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753639376996, + "modifiedTime": 1753639432017, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!FfJISMzYATaPQPLc" } diff --git a/src/packs/items/loot/loot_Suspended_Rod_nnj12RiFanq7s5zv.json b/src/packs/items/loot/loot_Suspended_Rod_nnj12RiFanq7s5zv.json index 17f13061..83ca772a 100644 --- a/src/packs/items/loot/loot_Suspended_Rod_nnj12RiFanq7s5zv.json +++ b/src/packs/items/loot/loot_Suspended_Rod_nnj12RiFanq7s5zv.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625627433, + "modifiedTime": 1753625765676, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!nnj12RiFanq7s5zv" } diff --git a/src/packs/items/loot/loot_Valorstone_7yywua9TmQ4WP5WH.json b/src/packs/items/loot/loot_Valorstone_7yywua9TmQ4WP5WH.json index 7e522aef..6970a396 100644 --- a/src/packs/items/loot/loot_Valorstone_7yywua9TmQ4WP5WH.json +++ b/src/packs/items/loot/loot_Valorstone_7yywua9TmQ4WP5WH.json @@ -6,12 +6,7 @@ "system": { "description": "

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

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753626167593, + "modifiedTime": 1753626237350, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!7yywua9TmQ4WP5WH" } diff --git a/src/packs/items/loot/loot_Vial_of_Darksmoke_Recipe_MhCo8i0cRXzdnXbA.json b/src/packs/items/loot/loot_Vial_of_Darksmoke_Recipe_MhCo8i0cRXzdnXbA.json index dbe2ae38..d9ad7e17 100644 --- a/src/packs/items/loot/loot_Vial_of_Darksmoke_Recipe_MhCo8i0cRXzdnXbA.json +++ b/src/packs/items/loot/loot_Vial_of_Darksmoke_Recipe_MhCo8i0cRXzdnXbA.json @@ -6,12 +6,7 @@ "system": { "description": "

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

", "quantity": 1, - "actions": {}, - "attribution": { - "source": "Daggerheart SRD", - "page": 59, - "artist": "" - } + "actions": {} }, "effects": [], "folder": null, @@ -21,5 +16,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753637508452, + "modifiedTime": 1753637524868, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!MhCo8i0cRXzdnXbA" } diff --git a/src/packs/items/loot/loot_Woven_Net_ARuv48PWUGJGBC4n.json b/src/packs/items/loot/loot_Woven_Net_ARuv48PWUGJGBC4n.json index 99d52ea9..3013f603 100644 --- a/src/packs/items/loot/loot_Woven_Net_ARuv48PWUGJGBC4n.json +++ b/src/packs/items/loot/loot_Woven_Net_ARuv48PWUGJGBC4n.json @@ -58,11 +58,6 @@ "img": "icons/tools/fishing/net-tan.webp", "range": "" } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 58, - "artist": "" } }, "effects": [ @@ -86,7 +81,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625489813, + "modifiedTime": 1753625489813, + "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items.effects!ARuv48PWUGJGBC4n.KjAianGutrQuJNs3" }, @@ -117,7 +120,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625550909, + "modifiedTime": 1753625559732, + "lastModifiedBy": "OFxauskoxcvVTVNA" }, "_key": "!items.effects!ARuv48PWUGJGBC4n.nY2UFMPZdoSUr6Ps" } @@ -129,5 +140,16 @@ "OFxauskoxcvVTVNA": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753625403538, + "modifiedTime": 1753625550934, + "lastModifiedBy": "OFxauskoxcvVTVNA" + }, "_key": "!items!ARuv48PWUGJGBC4n" } diff --git a/src/packs/items/weapons/folders_Combat_Wheelchairs_ECjoqjRcavLWZah1.json b/src/packs/items/weapons/folders_Combat_Wheelchairs_ECjoqjRcavLWZah1.json index b7e22c54..3ae3caf2 100644 --- a/src/packs/items/weapons/folders_Combat_Wheelchairs_ECjoqjRcavLWZah1.json +++ b/src/packs/items/weapons/folders_Combat_Wheelchairs_ECjoqjRcavLWZah1.json @@ -8,5 +8,16 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753740920579, + "modifiedTime": 1753740920579, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!folders!ECjoqjRcavLWZah1" } diff --git a/src/packs/items/weapons/folders_Magical_Weapons_vc6psFLwYfjOAVZu.json b/src/packs/items/weapons/folders_Magical_Weapons_vc6psFLwYfjOAVZu.json index dbeeeb59..173f1a3f 100644 --- a/src/packs/items/weapons/folders_Magical_Weapons_vc6psFLwYfjOAVZu.json +++ b/src/packs/items/weapons/folders_Magical_Weapons_vc6psFLwYfjOAVZu.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!vc6psFLwYfjOAVZu" } diff --git a/src/packs/items/weapons/folders_Physical_Weapons_w1HdMrtozpCGF8UB.json b/src/packs/items/weapons/folders_Physical_Weapons_w1HdMrtozpCGF8UB.json index 8e4fd2c4..92786cc0 100644 --- a/src/packs/items/weapons/folders_Physical_Weapons_w1HdMrtozpCGF8UB.json +++ b/src/packs/items/weapons/folders_Physical_Weapons_w1HdMrtozpCGF8UB.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!w1HdMrtozpCGF8UB" } diff --git a/src/packs/items/weapons/folders_Primary_Weapons_Dq27vPNpeuINRJeY.json b/src/packs/items/weapons/folders_Primary_Weapons_Dq27vPNpeuINRJeY.json index 995ad62c..0b1936e7 100644 --- a/src/packs/items/weapons/folders_Primary_Weapons_Dq27vPNpeuINRJeY.json +++ b/src/packs/items/weapons/folders_Primary_Weapons_Dq27vPNpeuINRJeY.json @@ -8,5 +8,15 @@ "description": "", "sort": 800000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753740311572 + }, "_key": "!folders!Dq27vPNpeuINRJeY" } diff --git a/src/packs/items/weapons/folders_Secondary_Weapons_NbXyhDASDCqpg4eG.json b/src/packs/items/weapons/folders_Secondary_Weapons_NbXyhDASDCqpg4eG.json index bbb7008c..fc340cab 100644 --- a/src/packs/items/weapons/folders_Secondary_Weapons_NbXyhDASDCqpg4eG.json +++ b/src/packs/items/weapons/folders_Secondary_Weapons_NbXyhDASDCqpg4eG.json @@ -8,5 +8,15 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "FecEtPuoQh6MpjQ0", + "modifiedTime": 1753737049233 + }, "_key": "!folders!NbXyhDASDCqpg4eG" } diff --git a/src/packs/items/weapons/folders_Tier_1_6nJ3reb1jx83CtRy.json b/src/packs/items/weapons/folders_Tier_1_6nJ3reb1jx83CtRy.json index 451816f9..b9eb7f63 100644 --- a/src/packs/items/weapons/folders_Tier_1_6nJ3reb1jx83CtRy.json +++ b/src/packs/items/weapons/folders_Tier_1_6nJ3reb1jx83CtRy.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!6nJ3reb1jx83CtRy" } diff --git a/src/packs/items/weapons/folders_Tier_1_cnmKLegyDD1xkSuI.json b/src/packs/items/weapons/folders_Tier_1_cnmKLegyDD1xkSuI.json index 34e59679..4f11ee6d 100644 --- a/src/packs/items/weapons/folders_Tier_1_cnmKLegyDD1xkSuI.json +++ b/src/packs/items/weapons/folders_Tier_1_cnmKLegyDD1xkSuI.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!cnmKLegyDD1xkSuI" } diff --git a/src/packs/items/weapons/folders_Tier_1_d7tdCsIUd94XuTtq.json b/src/packs/items/weapons/folders_Tier_1_d7tdCsIUd94XuTtq.json index 0fe72c60..055cc2cb 100644 --- a/src/packs/items/weapons/folders_Tier_1_d7tdCsIUd94XuTtq.json +++ b/src/packs/items/weapons/folders_Tier_1_d7tdCsIUd94XuTtq.json @@ -8,5 +8,16 @@ "description": "", "sort": 100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717279663, + "modifiedTime": 1753828177628, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!folders!d7tdCsIUd94XuTtq" } diff --git a/src/packs/items/weapons/folders_Tier_1_mV306wqqkeIDd9EE.json b/src/packs/items/weapons/folders_Tier_1_mV306wqqkeIDd9EE.json index b1cb0102..088d983a 100644 --- a/src/packs/items/weapons/folders_Tier_1_mV306wqqkeIDd9EE.json +++ b/src/packs/items/weapons/folders_Tier_1_mV306wqqkeIDd9EE.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!mV306wqqkeIDd9EE" } diff --git a/src/packs/items/weapons/folders_Tier_2_ereMKW01MCYg0qUY.json b/src/packs/items/weapons/folders_Tier_2_ereMKW01MCYg0qUY.json index 20d3ba81..8e6eed38 100644 --- a/src/packs/items/weapons/folders_Tier_2_ereMKW01MCYg0qUY.json +++ b/src/packs/items/weapons/folders_Tier_2_ereMKW01MCYg0qUY.json @@ -8,5 +8,16 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717283254, + "modifiedTime": 1753740492449, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!folders!ereMKW01MCYg0qUY" } diff --git a/src/packs/items/weapons/folders_Tier_2_fFuMdvpD1F3UshmM.json b/src/packs/items/weapons/folders_Tier_2_fFuMdvpD1F3UshmM.json index 81d83ce7..f5fb310b 100644 --- a/src/packs/items/weapons/folders_Tier_2_fFuMdvpD1F3UshmM.json +++ b/src/packs/items/weapons/folders_Tier_2_fFuMdvpD1F3UshmM.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!fFuMdvpD1F3UshmM" } diff --git a/src/packs/items/weapons/folders_Tier_2_guNyg9qBShhQOIWT.json b/src/packs/items/weapons/folders_Tier_2_guNyg9qBShhQOIWT.json index 5a84bf72..ea337755 100644 --- a/src/packs/items/weapons/folders_Tier_2_guNyg9qBShhQOIWT.json +++ b/src/packs/items/weapons/folders_Tier_2_guNyg9qBShhQOIWT.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!guNyg9qBShhQOIWT" } diff --git a/src/packs/items/weapons/folders_Tier_2_iSQtZICf7fVFJ7IS.json b/src/packs/items/weapons/folders_Tier_2_iSQtZICf7fVFJ7IS.json index 469d9265..e4b6b093 100644 --- a/src/packs/items/weapons/folders_Tier_2_iSQtZICf7fVFJ7IS.json +++ b/src/packs/items/weapons/folders_Tier_2_iSQtZICf7fVFJ7IS.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!iSQtZICf7fVFJ7IS" } diff --git a/src/packs/items/weapons/folders_Tier_3_OKJC8cHvPuseBHWq.json b/src/packs/items/weapons/folders_Tier_3_OKJC8cHvPuseBHWq.json index 41ba3ce6..3be5c79a 100644 --- a/src/packs/items/weapons/folders_Tier_3_OKJC8cHvPuseBHWq.json +++ b/src/packs/items/weapons/folders_Tier_3_OKJC8cHvPuseBHWq.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!OKJC8cHvPuseBHWq" } diff --git a/src/packs/items/weapons/folders_Tier_3_TyqMEXhSkjOUq5SA.json b/src/packs/items/weapons/folders_Tier_3_TyqMEXhSkjOUq5SA.json index faab72ff..d5445a55 100644 --- a/src/packs/items/weapons/folders_Tier_3_TyqMEXhSkjOUq5SA.json +++ b/src/packs/items/weapons/folders_Tier_3_TyqMEXhSkjOUq5SA.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!TyqMEXhSkjOUq5SA" } diff --git a/src/packs/items/weapons/folders_Tier_3_oreMpiiytMRaR9sy.json b/src/packs/items/weapons/folders_Tier_3_oreMpiiytMRaR9sy.json index df7a40b9..8e851efb 100644 --- a/src/packs/items/weapons/folders_Tier_3_oreMpiiytMRaR9sy.json +++ b/src/packs/items/weapons/folders_Tier_3_oreMpiiytMRaR9sy.json @@ -8,5 +8,16 @@ "description": "", "sort": 300000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717286219, + "modifiedTime": 1753740494136, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!folders!oreMpiiytMRaR9sy" } diff --git a/src/packs/items/weapons/folders_Tier_3_v3OQH9vwMVYsZvXS.json b/src/packs/items/weapons/folders_Tier_3_v3OQH9vwMVYsZvXS.json index ae4f515b..8d350bc2 100644 --- a/src/packs/items/weapons/folders_Tier_3_v3OQH9vwMVYsZvXS.json +++ b/src/packs/items/weapons/folders_Tier_3_v3OQH9vwMVYsZvXS.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!v3OQH9vwMVYsZvXS" } diff --git a/src/packs/items/weapons/folders_Tier_4_UNDVQEo6UtTuueNQ.json b/src/packs/items/weapons/folders_Tier_4_UNDVQEo6UtTuueNQ.json index 692dd7c3..a5451590 100644 --- a/src/packs/items/weapons/folders_Tier_4_UNDVQEo6UtTuueNQ.json +++ b/src/packs/items/weapons/folders_Tier_4_UNDVQEo6UtTuueNQ.json @@ -8,5 +8,16 @@ "description": "", "sort": 400000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748717289155, + "modifiedTime": 1753740495137, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!folders!UNDVQEo6UtTuueNQ" } diff --git a/src/packs/items/weapons/folders_Tier_4_beilKE5ZPAihKg3O.json b/src/packs/items/weapons/folders_Tier_4_beilKE5ZPAihKg3O.json index 64961fe4..b2b25c1d 100644 --- a/src/packs/items/weapons/folders_Tier_4_beilKE5ZPAihKg3O.json +++ b/src/packs/items/weapons/folders_Tier_4_beilKE5ZPAihKg3O.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!beilKE5ZPAihKg3O" } diff --git a/src/packs/items/weapons/folders_Tier_4_cvhQpWXCo3YJhtwx.json b/src/packs/items/weapons/folders_Tier_4_cvhQpWXCo3YJhtwx.json index 6b59282d..70adbfb1 100644 --- a/src/packs/items/weapons/folders_Tier_4_cvhQpWXCo3YJhtwx.json +++ b/src/packs/items/weapons/folders_Tier_4_cvhQpWXCo3YJhtwx.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!cvhQpWXCo3YJhtwx" } diff --git a/src/packs/items/weapons/folders_Tier_4_woovqIJsIyoK1ZQW.json b/src/packs/items/weapons/folders_Tier_4_woovqIJsIyoK1ZQW.json index f26d7cda..c5dd1458 100644 --- a/src/packs/items/weapons/folders_Tier_4_woovqIJsIyoK1ZQW.json +++ b/src/packs/items/weapons/folders_Tier_4_woovqIJsIyoK1ZQW.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!woovqIJsIyoK1ZQW" } diff --git a/src/packs/items/weapons/loot_Black_Powder_Revolver_NUbvkPLS71XO073r.json b/src/packs/items/weapons/loot_Black_Powder_Revolver_NUbvkPLS71XO073r.json new file mode 100644 index 00000000..a51a5c14 --- /dev/null +++ b/src/packs/items/weapons/loot_Black_Powder_Revolver_NUbvkPLS71XO073r.json @@ -0,0 +1,31 @@ +{ + "folder": "OKJC8cHvPuseBHWq", + "name": "Black Powder Revolver", + "type": "loot", + "_id": "NUbvkPLS71XO073r", + "img": "icons/weapons/guns/gun-pistol-brass.webp", + "system": { + "description": "", + "quantity": 1, + "actions": {} + }, + "effects": [], + "sort": 0, + "ownership": { + "default": 0, + "FecEtPuoQh6MpjQ0": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832431607, + "modifiedTime": 1753832439003, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_key": "!items!NUbvkPLS71XO073r" +} diff --git a/src/packs/items/weapons/weapon_Aantari_Bow_ijodu5yNBoMxpkHV.json b/src/packs/items/weapons/weapon_Aantari_Bow_ijodu5yNBoMxpkHV.json index 93e6404c..0dc1f068 100644 --- a/src/packs/items/weapons/weapon_Aantari_Bow_ijodu5yNBoMxpkHV.json +++ b/src/packs/items/weapons/weapon_Aantari_Bow_ijodu5yNBoMxpkHV.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1754815224718, + "modifiedTime": 1754815224718, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!ijodu5yNBoMxpkHV.nRNnU57i7RMJoklC" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753835285790, + "modifiedTime": 1754815224721, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!ijodu5yNBoMxpkHV" } diff --git a/src/packs/items/weapons/weapon_Advanced_Arcane_Frame_Wheelchair_la3sAWgnvadc4NvP.json b/src/packs/items/weapons/weapon_Advanced_Arcane_Frame_Wheelchair_la3sAWgnvadc4NvP.json index 36f1be3a..0abfe057 100644 --- a/src/packs/items/weapons/weapon_Advanced_Arcane_Frame_Wheelchair_la3sAWgnvadc4NvP.json +++ b/src/packs/items/weapons/weapon_Advanced_Arcane_Frame_Wheelchair_la3sAWgnvadc4NvP.json @@ -24,7 +24,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "fKTeCKjfyQauf5bA", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -79,7 +78,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -100,11 +99,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 55, - "artist": "" } }, "effects": [ @@ -141,7 +135,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1754815300372, + "modifiedTime": 1754815300372, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!la3sAWgnvadc4NvP.VnV5X9MBMabhz47b" } @@ -151,6 +153,17 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753836715885, + "modifiedTime": 1754845968271, + "lastModifiedBy": "H02dtt2xvVJvYESk" + }, "_id": "la3sAWgnvadc4NvP", "sort": 0, "_key": "!items!la3sAWgnvadc4NvP" diff --git a/src/packs/items/weapons/weapon_Advanced_Arcane_Gauntlets_hXR56fTKwZ6s1obs.json b/src/packs/items/weapons/weapon_Advanced_Arcane_Gauntlets_hXR56fTKwZ6s1obs.json index 183ac117..7e06132f 100644 --- a/src/packs/items/weapons/weapon_Advanced_Arcane_Gauntlets_hXR56fTKwZ6s1obs.json +++ b/src/packs/items/weapons/weapon_Advanced_Arcane_Gauntlets_hXR56fTKwZ6s1obs.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833079329, + "modifiedTime": 1753833112531, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!hXR56fTKwZ6s1obs" } diff --git a/src/packs/items/weapons/weapon_Advanced_Battleaxe_FcbvY1ydbNVMjKvk.json b/src/packs/items/weapons/weapon_Advanced_Battleaxe_FcbvY1ydbNVMjKvk.json index 6d2879d7..b99dee62 100644 --- a/src/packs/items/weapons/weapon_Advanced_Battleaxe_FcbvY1ydbNVMjKvk.json +++ b/src/packs/items/weapons/weapon_Advanced_Battleaxe_FcbvY1ydbNVMjKvk.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831668041, + "modifiedTime": 1753831689481, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!FcbvY1ydbNVMjKvk" } diff --git a/src/packs/items/weapons/weapon_Advanced_Broadsword_WtQAGz0TUgz8Xg70.json b/src/packs/items/weapons/weapon_Advanced_Broadsword_WtQAGz0TUgz8Xg70.json index 9e4a67b0..19a6d9bf 100644 --- a/src/packs/items/weapons/weapon_Advanced_Broadsword_WtQAGz0TUgz8Xg70.json +++ b/src/packs/items/weapons/weapon_Advanced_Broadsword_WtQAGz0TUgz8Xg70.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1754814950116, + "modifiedTime": 1754814950116, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!WtQAGz0TUgz8Xg70.wu2AmDvgeWI3hmRQ" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753831599435, + "modifiedTime": 1754814950120, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!WtQAGz0TUgz8Xg70" } diff --git a/src/packs/items/weapons/weapon_Advanced_Crossbow_3HGs0AgVrdIBTaKG.json b/src/packs/items/weapons/weapon_Advanced_Crossbow_3HGs0AgVrdIBTaKG.json index 44e47499..cd64eb4b 100644 --- a/src/packs/items/weapons/weapon_Advanced_Crossbow_3HGs0AgVrdIBTaKG.json +++ b/src/packs/items/weapons/weapon_Advanced_Crossbow_3HGs0AgVrdIBTaKG.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832024062, + "modifiedTime": 1753832046861, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!3HGs0AgVrdIBTaKG" } diff --git a/src/packs/items/weapons/weapon_Advanced_Cutlass_bw9WO9lxkM9bWZxQ.json b/src/packs/items/weapons/weapon_Advanced_Cutlass_bw9WO9lxkM9bWZxQ.json index a20acb5b..f2dd3e0f 100644 --- a/src/packs/items/weapons/weapon_Advanced_Cutlass_bw9WO9lxkM9bWZxQ.json +++ b/src/packs/items/weapons/weapon_Advanced_Cutlass_bw9WO9lxkM9bWZxQ.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831881396, + "modifiedTime": 1753831904535, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!bw9WO9lxkM9bWZxQ" } diff --git a/src/packs/items/weapons/weapon_Advanced_Dagger_mrioysDjNQEIE8hN.json b/src/packs/items/weapons/weapon_Advanced_Dagger_mrioysDjNQEIE8hN.json index a7004807..17aa209b 100644 --- a/src/packs/items/weapons/weapon_Advanced_Dagger_mrioysDjNQEIE8hN.json +++ b/src/packs/items/weapons/weapon_Advanced_Dagger_mrioysDjNQEIE8hN.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831785214, + "modifiedTime": 1753831814649, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!mrioysDjNQEIE8hN" } diff --git a/src/packs/items/weapons/weapon_Advanced_Dualstaff_X5x3sC7v2f3L9sjL.json b/src/packs/items/weapons/weapon_Advanced_Dualstaff_X5x3sC7v2f3L9sjL.json index 3baed3d4..dc665696 100644 --- a/src/packs/items/weapons/weapon_Advanced_Dualstaff_X5x3sC7v2f3L9sjL.json +++ b/src/packs/items/weapons/weapon_Advanced_Dualstaff_X5x3sC7v2f3L9sjL.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833383897, + "modifiedTime": 1753833411958, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!X5x3sC7v2f3L9sjL" } diff --git a/src/packs/items/weapons/weapon_Advanced_Glowing_Rings_InQoh8mZPnwarQkX.json b/src/packs/items/weapons/weapon_Advanced_Glowing_Rings_InQoh8mZPnwarQkX.json index 2bdfed49..c647f3da 100644 --- a/src/packs/items/weapons/weapon_Advanced_Glowing_Rings_InQoh8mZPnwarQkX.json +++ b/src/packs/items/weapons/weapon_Advanced_Glowing_Rings_InQoh8mZPnwarQkX.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833176806, + "modifiedTime": 1753833243855, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!InQoh8mZPnwarQkX" } diff --git a/src/packs/items/weapons/weapon_Advanced_Grappler_7vvhVl4TDJHtjpFK.json b/src/packs/items/weapons/weapon_Advanced_Grappler_7vvhVl4TDJHtjpFK.json index 01bef9b2..ffb6bb44 100644 --- a/src/packs/items/weapons/weapon_Advanced_Grappler_7vvhVl4TDJHtjpFK.json +++ b/src/packs/items/weapons/weapon_Advanced_Grappler_7vvhVl4TDJHtjpFK.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753795033661, + "modifiedTime": 1753795079243, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!7vvhVl4TDJHtjpFK" } diff --git a/src/packs/items/weapons/weapon_Advanced_Greatstaff_4UzxqfkwF8gDSdu7.json b/src/packs/items/weapons/weapon_Advanced_Greatstaff_4UzxqfkwF8gDSdu7.json index 6ce54823..cbd63dd5 100644 --- a/src/packs/items/weapons/weapon_Advanced_Greatstaff_4UzxqfkwF8gDSdu7.json +++ b/src/packs/items/weapons/weapon_Advanced_Greatstaff_4UzxqfkwF8gDSdu7.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833596394, + "modifiedTime": 1753833596394, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!4UzxqfkwF8gDSdu7.sGVVxSM68Fmr1sSM" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833576312, + "modifiedTime": 1753833602381, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!4UzxqfkwF8gDSdu7" } diff --git a/src/packs/items/weapons/weapon_Advanced_Greatsword_MAC6YWTo4lzSotQc.json b/src/packs/items/weapons/weapon_Advanced_Greatsword_MAC6YWTo4lzSotQc.json index fe3fff0e..81d05554 100644 --- a/src/packs/items/weapons/weapon_Advanced_Greatsword_MAC6YWTo4lzSotQc.json +++ b/src/packs/items/weapons/weapon_Advanced_Greatsword_MAC6YWTo4lzSotQc.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [ @@ -145,7 +139,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831714716, + "modifiedTime": 1753831714716, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!MAC6YWTo4lzSotQc.E0PjC15OP55vIype" } @@ -156,5 +158,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831701352, + "modifiedTime": 1753831723203, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!MAC6YWTo4lzSotQc" } diff --git a/src/packs/items/weapons/weapon_Advanced_Halberd_C8gQn7onAc9wsrCs.json b/src/packs/items/weapons/weapon_Advanced_Halberd_C8gQn7onAc9wsrCs.json index 59d7437d..d314f604 100644 --- a/src/packs/items/weapons/weapon_Advanced_Halberd_C8gQn7onAc9wsrCs.json +++ b/src/packs/items/weapons/weapon_Advanced_Halberd_C8gQn7onAc9wsrCs.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831956883, + "modifiedTime": 1753831956883, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!C8gQn7onAc9wsrCs.pdRt0nO1ooGPO3cm" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831933214, + "modifiedTime": 1753831956886, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!C8gQn7onAc9wsrCs" } diff --git a/src/packs/items/weapons/weapon_Advanced_Hallowed_Axe_BiyXKX2Mo1TQbKgk.json b/src/packs/items/weapons/weapon_Advanced_Hallowed_Axe_BiyXKX2Mo1TQbKgk.json index e6403810..52840548 100644 --- a/src/packs/items/weapons/weapon_Advanced_Hallowed_Axe_BiyXKX2Mo1TQbKgk.json +++ b/src/packs/items/weapons/weapon_Advanced_Hallowed_Axe_BiyXKX2Mo1TQbKgk.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833120834, + "modifiedTime": 1753833164907, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!BiyXKX2Mo1TQbKgk" } diff --git a/src/packs/items/weapons/weapon_Advanced_Hand_Crossbow_Lsvocst8aGqkBj7g.json b/src/packs/items/weapons/weapon_Advanced_Hand_Crossbow_Lsvocst8aGqkBj7g.json index 521ee38d..ef1eb127 100644 --- a/src/packs/items/weapons/weapon_Advanced_Hand_Crossbow_Lsvocst8aGqkBj7g.json +++ b/src/packs/items/weapons/weapon_Advanced_Hand_Crossbow_Lsvocst8aGqkBj7g.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -44,13 +43,12 @@ "parts": [ { "value": { - "dice": "d6", + "dice": "d4", "bonus": 5, "multiplier": "prof", "flatMultiplier": 1, "custom": { - "enabled": false, - "formula": "" + "enabled": false } }, "type": [ @@ -64,8 +62,7 @@ "dice": "d6", "bonus": null, "custom": { - "enabled": false, - "formula": "" + "enabled": false } }, "base": false @@ -74,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -95,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [], @@ -109,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753795089792, + "modifiedTime": 1753795117775, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!Lsvocst8aGqkBj7g" } diff --git a/src/packs/items/weapons/weapon_Advanced_Hand_Runes_PQACczSghZIVTdgZ.json b/src/packs/items/weapons/weapon_Advanced_Hand_Runes_PQACczSghZIVTdgZ.json index 23f33ba1..9f78b140 100644 --- a/src/packs/items/weapons/weapon_Advanced_Hand_Runes_PQACczSghZIVTdgZ.json +++ b/src/packs/items/weapons/weapon_Advanced_Hand_Runes_PQACczSghZIVTdgZ.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833253569, + "modifiedTime": 1753833282989, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!PQACczSghZIVTdgZ" } diff --git a/src/packs/items/weapons/weapon_Advanced_Heavy_Frame_Wheelchair_eT2Qwb0RdrLX2hH1.json b/src/packs/items/weapons/weapon_Advanced_Heavy_Frame_Wheelchair_eT2Qwb0RdrLX2hH1.json index 39afe3e6..f8257028 100644 --- a/src/packs/items/weapons/weapon_Advanced_Heavy_Frame_Wheelchair_eT2Qwb0RdrLX2hH1.json +++ b/src/packs/items/weapons/weapon_Advanced_Heavy_Frame_Wheelchair_eT2Qwb0RdrLX2hH1.json @@ -24,7 +24,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "fKTeCKjfyQauf5bA", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -79,7 +78,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -100,11 +99,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 55, - "artist": "" } }, "effects": [ @@ -134,7 +128,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!eT2Qwb0RdrLX2hH1.1godgiqdDADyR0Tw" } @@ -144,6 +144,17 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836675558, + "modifiedTime": 1754845996869, + "lastModifiedBy": "H02dtt2xvVJvYESk" + }, "_id": "eT2Qwb0RdrLX2hH1", "sort": 0, "_key": "!items!eT2Qwb0RdrLX2hH1" diff --git a/src/packs/items/weapons/weapon_Advanced_Light_Frame_Wheelchair_BuMfupnCzHbziQ8o.json b/src/packs/items/weapons/weapon_Advanced_Light_Frame_Wheelchair_BuMfupnCzHbziQ8o.json index 4600088d..324af2b1 100644 --- a/src/packs/items/weapons/weapon_Advanced_Light_Frame_Wheelchair_BuMfupnCzHbziQ8o.json +++ b/src/packs/items/weapons/weapon_Advanced_Light_Frame_Wheelchair_BuMfupnCzHbziQ8o.json @@ -17,6 +17,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -53,7 +54,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "fKTeCKjfyQauf5bA", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -108,7 +108,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -129,11 +129,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 54, - "artist": "" } }, "effects": [], @@ -142,6 +137,17 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836614032, + "modifiedTime": 1754846020904, + "lastModifiedBy": "H02dtt2xvVJvYESk" + }, "_id": "BuMfupnCzHbziQ8o", "sort": 0, "_key": "!items!BuMfupnCzHbziQ8o" diff --git a/src/packs/items/weapons/weapon_Advanced_Longbow_M5CywMAyPKGgebsJ.json b/src/packs/items/weapons/weapon_Advanced_Longbow_M5CywMAyPKGgebsJ.json index ad8a5bc9..0ebb1d08 100644 --- a/src/packs/items/weapons/weapon_Advanced_Longbow_M5CywMAyPKGgebsJ.json +++ b/src/packs/items/weapons/weapon_Advanced_Longbow_M5CywMAyPKGgebsJ.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832086910, + "modifiedTime": 1753832086910, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!M5CywMAyPKGgebsJ.CUpkNgCUE6CWAXc3" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832060079, + "modifiedTime": 1753832086913, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!M5CywMAyPKGgebsJ" } diff --git a/src/packs/items/weapons/weapon_Advanced_Longsword_9xkB3MWXahrsVP4N.json b/src/packs/items/weapons/weapon_Advanced_Longsword_9xkB3MWXahrsVP4N.json index 2cf2c43c..8b44c759 100644 --- a/src/packs/items/weapons/weapon_Advanced_Longsword_9xkB3MWXahrsVP4N.json +++ b/src/packs/items/weapons/weapon_Advanced_Longsword_9xkB3MWXahrsVP4N.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831635467, + "modifiedTime": 1753831658646, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!9xkB3MWXahrsVP4N" } diff --git a/src/packs/items/weapons/weapon_Advanced_Mace_WreMYiH5uhVDaoVw.json b/src/packs/items/weapons/weapon_Advanced_Mace_WreMYiH5uhVDaoVw.json index db8cde18..770a061c 100644 --- a/src/packs/items/weapons/weapon_Advanced_Mace_WreMYiH5uhVDaoVw.json +++ b/src/packs/items/weapons/weapon_Advanced_Mace_WreMYiH5uhVDaoVw.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831730528, + "modifiedTime": 1753831747562, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!WreMYiH5uhVDaoVw" } diff --git a/src/packs/items/weapons/weapon_Advanced_Quarterstaff_zJtm2f9ZFKZRtCRg.json b/src/packs/items/weapons/weapon_Advanced_Quarterstaff_zJtm2f9ZFKZRtCRg.json index d6beafb2..e9a2ff48 100644 --- a/src/packs/items/weapons/weapon_Advanced_Quarterstaff_zJtm2f9ZFKZRtCRg.json +++ b/src/packs/items/weapons/weapon_Advanced_Quarterstaff_zJtm2f9ZFKZRtCRg.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831826360, + "modifiedTime": 1753831868734, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!zJtm2f9ZFKZRtCRg" } diff --git a/src/packs/items/weapons/weapon_Advanced_Rapier_KxFne76d7cak15dO.json b/src/packs/items/weapons/weapon_Advanced_Rapier_KxFne76d7cak15dO.json index 315d8401..e108d48f 100644 --- a/src/packs/items/weapons/weapon_Advanced_Rapier_KxFne76d7cak15dO.json +++ b/src/packs/items/weapons/weapon_Advanced_Rapier_KxFne76d7cak15dO.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831909596, + "modifiedTime": 1753831926420, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!KxFne76d7cak15dO" } diff --git a/src/packs/items/weapons/weapon_Advanced_Returning_Blade_sIGXA4KMeYBUjcEO.json b/src/packs/items/weapons/weapon_Advanced_Returning_Blade_sIGXA4KMeYBUjcEO.json index bbdce2d4..e549ce09 100644 --- a/src/packs/items/weapons/weapon_Advanced_Returning_Blade_sIGXA4KMeYBUjcEO.json +++ b/src/packs/items/weapons/weapon_Advanced_Returning_Blade_sIGXA4KMeYBUjcEO.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833291783, + "modifiedTime": 1753833332963, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!sIGXA4KMeYBUjcEO" } diff --git a/src/packs/items/weapons/weapon_Advanced_Round_Shield_hiEOGF2reabGLUoi.json b/src/packs/items/weapons/weapon_Advanced_Round_Shield_hiEOGF2reabGLUoi.json index c1c4fba5..9240fbaf 100644 --- a/src/packs/items/weapons/weapon_Advanced_Round_Shield_hiEOGF2reabGLUoi.json +++ b/src/packs/items/weapons/weapon_Advanced_Round_Shield_hiEOGF2reabGLUoi.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,24 +100,18 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [ { "name": "Protective", - "description": "

Add the item's Tier to your Armor Score

", + "description": "Add your character's Tier to your Armor Score", "img": "icons/skills/melee/shield-block-gray-orange.webp", "changes": [ { "key": "system.armorScore", "mode": 2, - "value": "ITEM.@system.tier", - "priority": null + "value": "ITEM.@system.tier" } ], "_id": "i5HfkF5aKQuUCTEG", @@ -127,12 +120,7 @@ "disabled": false, "duration": { "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null + "combat": null }, "origin": null, "tint": "#ffffff", @@ -141,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753794875150, + "modifiedTime": 1753794875150, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!hiEOGF2reabGLUoi.i5HfkF5aKQuUCTEG" } @@ -152,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753794853303, + "modifiedTime": 1753794890718, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!hiEOGF2reabGLUoi" } diff --git a/src/packs/items/weapons/weapon_Advanced_Scepter_2Khzuj768yoWN9QK.json b/src/packs/items/weapons/weapon_Advanced_Scepter_2Khzuj768yoWN9QK.json index cf619a89..0f24c888 100644 --- a/src/packs/items/weapons/weapon_Advanced_Scepter_2Khzuj768yoWN9QK.json +++ b/src/packs/items/weapons/weapon_Advanced_Scepter_2Khzuj768yoWN9QK.json @@ -91,7 +91,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -146,7 +145,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -167,11 +166,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -181,5 +175,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833421806, + "modifiedTime": 1753835888435, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!2Khzuj768yoWN9QK" } diff --git a/src/packs/items/weapons/weapon_Advanced_Shortbow_JpSlJvDR0X8VFDns.json b/src/packs/items/weapons/weapon_Advanced_Shortbow_JpSlJvDR0X8VFDns.json index 5693e814..e54b4eea 100644 --- a/src/packs/items/weapons/weapon_Advanced_Shortbow_JpSlJvDR0X8VFDns.json +++ b/src/packs/items/weapons/weapon_Advanced_Shortbow_JpSlJvDR0X8VFDns.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831998635, + "modifiedTime": 1753832018423, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!JpSlJvDR0X8VFDns" } diff --git a/src/packs/items/weapons/weapon_Advanced_Shortstaff_T5exRCqOXhrjSYnI.json b/src/packs/items/weapons/weapon_Advanced_Shortstaff_T5exRCqOXhrjSYnI.json index 71d66d82..b09613da 100644 --- a/src/packs/items/weapons/weapon_Advanced_Shortstaff_T5exRCqOXhrjSYnI.json +++ b/src/packs/items/weapons/weapon_Advanced_Shortstaff_T5exRCqOXhrjSYnI.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833341389, + "modifiedTime": 1753833375298, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!T5exRCqOXhrjSYnI" } diff --git a/src/packs/items/weapons/weapon_Advanced_Shortsword_p3nz5CaGUoyuGVg0.json b/src/packs/items/weapons/weapon_Advanced_Shortsword_p3nz5CaGUoyuGVg0.json index 397fa061..a7b33030 100644 --- a/src/packs/items/weapons/weapon_Advanced_Shortsword_p3nz5CaGUoyuGVg0.json +++ b/src/packs/items/weapons/weapon_Advanced_Shortsword_p3nz5CaGUoyuGVg0.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1755268343094, + "modifiedTime": 1755268343094, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!items.effects!p3nz5CaGUoyuGVg0.zQMaG3JcUWJR9k2L" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753794821174, + "modifiedTime": 1755268343096, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_key": "!items!p3nz5CaGUoyuGVg0" } diff --git a/src/packs/items/weapons/weapon_Advanced_Small_Dagger_0thN0BpN05KT8Avx.json b/src/packs/items/weapons/weapon_Advanced_Small_Dagger_0thN0BpN05KT8Avx.json index 7af59440..958bda92 100644 --- a/src/packs/items/weapons/weapon_Advanced_Small_Dagger_0thN0BpN05KT8Avx.json +++ b/src/packs/items/weapons/weapon_Advanced_Small_Dagger_0thN0BpN05KT8Avx.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1755268350046, + "modifiedTime": 1755268350046, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!items.effects!0thN0BpN05KT8Avx.6tJmTBsumbPmEwkY" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753794938643, + "modifiedTime": 1755268350050, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_key": "!items!0thN0BpN05KT8Avx" } diff --git a/src/packs/items/weapons/weapon_Advanced_Spear_pK6dsNABKKp1CIGN.json b/src/packs/items/weapons/weapon_Advanced_Spear_pK6dsNABKKp1CIGN.json index e5f3f8ec..0bfb4a8f 100644 --- a/src/packs/items/weapons/weapon_Advanced_Spear_pK6dsNABKKp1CIGN.json +++ b/src/packs/items/weapons/weapon_Advanced_Spear_pK6dsNABKKp1CIGN.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,19 +92,64 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, - "effects": [], + "effects": [ + { + "name": "Cumbersome", + "description": "-1 to Finesse", + "img": "icons/commodities/metal/mail-plate-steel.webp", + "changes": [ + { + "key": "system.traits.finesse.value", + "mode": 2, + "value": "-1" + } + ], + "_id": "hl0S2LrBY5Mg69q6", + "type": "base", + "system": {}, + "disabled": false, + "duration": { + "startTime": null, + "combat": null + }, + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831987001, + "modifiedTime": 1753831987001, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_key": "!items.effects!pK6dsNABKKp1CIGN.hl0S2LrBY5Mg69q6" + } + ], "sort": 0, "ownership": { "default": 0, "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831962536, + "modifiedTime": 1753831987004, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!pK6dsNABKKp1CIGN" } diff --git a/src/packs/items/weapons/weapon_Advanced_Tower_Shield_OfOzQbs4hg6QbfTG.json b/src/packs/items/weapons/weapon_Advanced_Tower_Shield_OfOzQbs4hg6QbfTG.json index b2fb16d8..33d9f577 100644 --- a/src/packs/items/weapons/weapon_Advanced_Tower_Shield_OfOzQbs4hg6QbfTG.json +++ b/src/packs/items/weapons/weapon_Advanced_Tower_Shield_OfOzQbs4hg6QbfTG.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753794929238, + "modifiedTime": 1753794929238, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!OfOzQbs4hg6QbfTG.87gedjJZGdFY81Mt" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753794904892, + "modifiedTime": 1753794929241, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!OfOzQbs4hg6QbfTG" } diff --git a/src/packs/items/weapons/weapon_Advanced_Wand_jU9jWIardjtdAQcs.json b/src/packs/items/weapons/weapon_Advanced_Wand_jU9jWIardjtdAQcs.json index 4cb4e2b2..65bd9fc3 100644 --- a/src/packs/items/weapons/weapon_Advanced_Wand_jU9jWIardjtdAQcs.json +++ b/src/packs/items/weapons/weapon_Advanced_Wand_jU9jWIardjtdAQcs.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833518519, + "modifiedTime": 1753833553163, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!jU9jWIardjtdAQcs" } diff --git a/src/packs/items/weapons/weapon_Advanced_Warhammer_8Lipw3RRKDgBVP0p.json b/src/packs/items/weapons/weapon_Advanced_Warhammer_8Lipw3RRKDgBVP0p.json index 72983f6b..56eb31fc 100644 --- a/src/packs/items/weapons/weapon_Advanced_Warhammer_8Lipw3RRKDgBVP0p.json +++ b/src/packs/items/weapons/weapon_Advanced_Warhammer_8Lipw3RRKDgBVP0p.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831777543, + "modifiedTime": 1753831777543, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!8Lipw3RRKDgBVP0p.S6jedo3xSQhFBQH0" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831754451, + "modifiedTime": 1753831777547, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!8Lipw3RRKDgBVP0p" } diff --git a/src/packs/items/weapons/weapon_Advanced_Whip_01izMUSJcAUo79IX.json b/src/packs/items/weapons/weapon_Advanced_Whip_01izMUSJcAUo79IX.json index 6e1753c8..b9c4242d 100644 --- a/src/packs/items/weapons/weapon_Advanced_Whip_01izMUSJcAUo79IX.json +++ b/src/packs/items/weapons/weapon_Advanced_Whip_01izMUSJcAUo79IX.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753795001576, + "modifiedTime": 1753808405822, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!01izMUSJcAUo79IX" } diff --git a/src/packs/items/weapons/weapon_Arcane_Frame_Wheelchair_XRChepscgr75Uug7.json b/src/packs/items/weapons/weapon_Arcane_Frame_Wheelchair_XRChepscgr75Uug7.json index 58ef5f4b..3dd7d463 100644 --- a/src/packs/items/weapons/weapon_Arcane_Frame_Wheelchair_XRChepscgr75Uug7.json +++ b/src/packs/items/weapons/weapon_Arcane_Frame_Wheelchair_XRChepscgr75Uug7.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "fKTeCKjfyQauf5bA", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 55, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1754815278217, + "modifiedTime": 1754815278217, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!XRChepscgr75Uug7.dXHsy9qr5FWZqsVq" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753836689082, + "modifiedTime": 1754845945327, + "lastModifiedBy": "H02dtt2xvVJvYESk" + }, "_key": "!items!XRChepscgr75Uug7" } diff --git a/src/packs/items/weapons/weapon_Arcane_Gauntlets_PC5EyEIq7NWBV0n5.json b/src/packs/items/weapons/weapon_Arcane_Gauntlets_PC5EyEIq7NWBV0n5.json index 8d9e3c31..abef59b7 100644 --- a/src/packs/items/weapons/weapon_Arcane_Gauntlets_PC5EyEIq7NWBV0n5.json +++ b/src/packs/items/weapons/weapon_Arcane_Gauntlets_PC5EyEIq7NWBV0n5.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828194643, + "modifiedTime": 1753828233213, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!PC5EyEIq7NWBV0n5" } diff --git a/src/packs/items/weapons/weapon_Axe_of_Fortunis_YcS1rHgfnSlla8Xf.json b/src/packs/items/weapons/weapon_Axe_of_Fortunis_YcS1rHgfnSlla8Xf.json index 6ce0ce68..ae0f0398 100644 --- a/src/packs/items/weapons/weapon_Axe_of_Fortunis_YcS1rHgfnSlla8Xf.json +++ b/src/packs/items/weapons/weapon_Axe_of_Fortunis_YcS1rHgfnSlla8Xf.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833614959, + "modifiedTime": 1753833653403, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!YcS1rHgfnSlla8Xf" } diff --git a/src/packs/items/weapons/weapon_Battleaxe_fbDYUja3ll9vCtrB.json b/src/packs/items/weapons/weapon_Battleaxe_fbDYUja3ll9vCtrB.json index 9b43f8dc..00034072 100644 --- a/src/packs/items/weapons/weapon_Battleaxe_fbDYUja3ll9vCtrB.json +++ b/src/packs/items/weapons/weapon_Battleaxe_fbDYUja3ll9vCtrB.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753827787429, + "modifiedTime": 1753827801986, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!fbDYUja3ll9vCtrB" } diff --git a/src/packs/items/weapons/weapon_Black_Powder_Revolver_AokqTusPzn0hghkE.json b/src/packs/items/weapons/weapon_Black_Powder_Revolver_AokqTusPzn0hghkE.json index 845fee44..916958c9 100644 --- a/src/packs/items/weapons/weapon_Black_Powder_Revolver_AokqTusPzn0hghkE.json +++ b/src/packs/items/weapons/weapon_Black_Powder_Revolver_AokqTusPzn0hghkE.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832483435, + "modifiedTime": 1753832502167, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!AokqTusPzn0hghkE" } diff --git a/src/packs/items/weapons/weapon_Bladed_Whip_5faflfNz20cFW1EM.json b/src/packs/items/weapons/weapon_Bladed_Whip_5faflfNz20cFW1EM.json index 5238578f..9e188b9f 100644 --- a/src/packs/items/weapons/weapon_Bladed_Whip_5faflfNz20cFW1EM.json +++ b/src/packs/items/weapons/weapon_Bladed_Whip_5faflfNz20cFW1EM.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829680830, + "modifiedTime": 1753829701111, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!5faflfNz20cFW1EM" } diff --git a/src/packs/items/weapons/weapon_Blessed_Anlace_n1oPTk5czTIGTkVj.json b/src/packs/items/weapons/weapon_Blessed_Anlace_n1oPTk5czTIGTkVj.json index 82140411..f4d8d52a 100644 --- a/src/packs/items/weapons/weapon_Blessed_Anlace_n1oPTk5czTIGTkVj.json +++ b/src/packs/items/weapons/weapon_Blessed_Anlace_n1oPTk5czTIGTkVj.json @@ -93,7 +93,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -148,7 +147,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -169,11 +168,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -183,5 +177,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833663905, + "modifiedTime": 1754406631151, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!n1oPTk5czTIGTkVj" } diff --git a/src/packs/items/weapons/weapon_Bloodstaff_IoMVDz92WVvfGGdc.json b/src/packs/items/weapons/weapon_Bloodstaff_IoMVDz92WVvfGGdc.json index 2450d69c..abd09941 100644 --- a/src/packs/items/weapons/weapon_Bloodstaff_IoMVDz92WVvfGGdc.json +++ b/src/packs/items/weapons/weapon_Bloodstaff_IoMVDz92WVvfGGdc.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836256052, + "modifiedTime": 1753836294025, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!IoMVDz92WVvfGGdc" } diff --git a/src/packs/items/weapons/weapon_Blunderbuss_SLFrK0WmldPo0shz.json b/src/packs/items/weapons/weapon_Blunderbuss_SLFrK0WmldPo0shz.json index 1fba6130..7d211d92 100644 --- a/src/packs/items/weapons/weapon_Blunderbuss_SLFrK0WmldPo0shz.json +++ b/src/packs/items/weapons/weapon_Blunderbuss_SLFrK0WmldPo0shz.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829780930, + "modifiedTime": 1753829802107, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!SLFrK0WmldPo0shz" } diff --git a/src/packs/items/weapons/weapon_Braveshield_QEvgVoz9xKBSKsGi.json b/src/packs/items/weapons/weapon_Braveshield_QEvgVoz9xKBSKsGi.json index aef812a6..6b9af93d 100644 --- a/src/packs/items/weapons/weapon_Braveshield_QEvgVoz9xKBSKsGi.json +++ b/src/packs/items/weapons/weapon_Braveshield_QEvgVoz9xKBSKsGi.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753797203355, + "modifiedTime": 1753797247008, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!QEvgVoz9xKBSKsGi" } diff --git a/src/packs/items/weapons/weapon_Bravesword_QZrWAkprA2tL2MOI.json b/src/packs/items/weapons/weapon_Bravesword_QZrWAkprA2tL2MOI.json index 7c3e65f5..b5d7559f 100644 --- a/src/packs/items/weapons/weapon_Bravesword_QZrWAkprA2tL2MOI.json +++ b/src/packs/items/weapons/weapon_Bravesword_QZrWAkprA2tL2MOI.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832160783, + "modifiedTime": 1753832160783, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!QZrWAkprA2tL2MOI.lLM5uyDAGk3zVxoa" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832142373, + "modifiedTime": 1753832160787, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!QZrWAkprA2tL2MOI" } diff --git a/src/packs/items/weapons/weapon_Broadsword_1cwWNt4sqlgA8gCT.json b/src/packs/items/weapons/weapon_Broadsword_1cwWNt4sqlgA8gCT.json index 0e9a557e..959a8547 100644 --- a/src/packs/items/weapons/weapon_Broadsword_1cwWNt4sqlgA8gCT.json +++ b/src/packs/items/weapons/weapon_Broadsword_1cwWNt4sqlgA8gCT.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1754814769818, + "modifiedTime": 1754814769818, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!1cwWNt4sqlgA8gCT.mqcpj2cFAprf2AmY" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753827734892, + "modifiedTime": 1754814769821, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!1cwWNt4sqlgA8gCT" } diff --git a/src/packs/items/weapons/weapon_Buckler_EmFTp9wzT6MHSaNz.json b/src/packs/items/weapons/weapon_Buckler_EmFTp9wzT6MHSaNz.json index 4d815a6c..852a213f 100644 --- a/src/packs/items/weapons/weapon_Buckler_EmFTp9wzT6MHSaNz.json +++ b/src/packs/items/weapons/weapon_Buckler_EmFTp9wzT6MHSaNz.json @@ -20,12 +20,11 @@ }, "cost": [ { - "key": "resource", - "itemId": "armorSlot", + "key": "armorSlot", "value": 1, + "keyIsID": false, "scalable": false, - "step": null, - "consumeOnSuccess": false + "step": null } ], "effects": [ @@ -63,7 +62,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -118,7 +116,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -139,11 +137,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [ @@ -155,8 +148,7 @@ { "key": "system.evasion", "mode": 2, - "value": "@system.armorScore", - "priority": 21 + "value": "@system.armorScore" } ], "transfer": false, @@ -174,7 +166,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753808413748, + "modifiedTime": 1753808413748, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!EmFTp9wzT6MHSaNz.Anbxt99bL9IWnlGh" } @@ -185,5 +185,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753795181779, + "modifiedTime": 1753808413753, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!EmFTp9wzT6MHSaNz" } diff --git a/src/packs/items/weapons/weapon_Casting_Sword_2Fbf2cxLfbdGkU4I.json b/src/packs/items/weapons/weapon_Casting_Sword_2Fbf2cxLfbdGkU4I.json index 9af34d45..6394645b 100644 --- a/src/packs/items/weapons/weapon_Casting_Sword_2Fbf2cxLfbdGkU4I.json +++ b/src/packs/items/weapons/weapon_Casting_Sword_2Fbf2cxLfbdGkU4I.json @@ -89,7 +89,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -144,7 +143,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -165,11 +164,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -179,5 +173,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831124348, + "modifiedTime": 1753831194254, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!2Fbf2cxLfbdGkU4I" } diff --git a/src/packs/items/weapons/weapon_Crossbow_cw7HG1Z7hp7OOLD0.json b/src/packs/items/weapons/weapon_Crossbow_cw7HG1Z7hp7OOLD0.json index 749ef4aa..ac1fdb6a 100644 --- a/src/packs/items/weapons/weapon_Crossbow_cw7HG1Z7hp7OOLD0.json +++ b/src/packs/items/weapons/weapon_Crossbow_cw7HG1Z7hp7OOLD0.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828109370, + "modifiedTime": 1753828127762, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!cw7HG1Z7hp7OOLD0" } diff --git a/src/packs/items/weapons/weapon_Curved_Dagger_Fk69R40svV0kanZD.json b/src/packs/items/weapons/weapon_Curved_Dagger_Fk69R40svV0kanZD.json index a98a56b1..c3c4b5d6 100644 --- a/src/packs/items/weapons/weapon_Curved_Dagger_Fk69R40svV0kanZD.json +++ b/src/packs/items/weapons/weapon_Curved_Dagger_Fk69R40svV0kanZD.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835111140, + "modifiedTime": 1753835111140, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!Fk69R40svV0kanZD.X3a0PAJ9Tk4zVyxz" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835098261, + "modifiedTime": 1753835125696, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!Fk69R40svV0kanZD" } diff --git a/src/packs/items/weapons/weapon_Cutlass_CWrbnethuILXrEpA.json b/src/packs/items/weapons/weapon_Cutlass_CWrbnethuILXrEpA.json index 7343b92c..42839516 100644 --- a/src/packs/items/weapons/weapon_Cutlass_CWrbnethuILXrEpA.json +++ b/src/packs/items/weapons/weapon_Cutlass_CWrbnethuILXrEpA.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753827943490, + "modifiedTime": 1753827960371, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!CWrbnethuILXrEpA" } diff --git a/src/packs/items/weapons/weapon_Dagger_iStO0BbeMTTR0rQi.json b/src/packs/items/weapons/weapon_Dagger_iStO0BbeMTTR0rQi.json index 5ef12e05..fe6e34bb 100644 --- a/src/packs/items/weapons/weapon_Dagger_iStO0BbeMTTR0rQi.json +++ b/src/packs/items/weapons/weapon_Dagger_iStO0BbeMTTR0rQi.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753827894955, + "modifiedTime": 1753827907060, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!iStO0BbeMTTR0rQi" } diff --git a/src/packs/items/weapons/weapon_Devouring_Dagger_C5wSGglR8e0euQnY.json b/src/packs/items/weapons/weapon_Devouring_Dagger_C5wSGglR8e0euQnY.json index e00d665c..153220f1 100644 --- a/src/packs/items/weapons/weapon_Devouring_Dagger_C5wSGglR8e0euQnY.json +++ b/src/packs/items/weapons/weapon_Devouring_Dagger_C5wSGglR8e0euQnY.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831203997, + "modifiedTime": 1753831225429, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!C5wSGglR8e0euQnY" } diff --git a/src/packs/items/weapons/weapon_Double_Flail_xm1yU7k58fMgXxRR.json b/src/packs/items/weapons/weapon_Double_Flail_xm1yU7k58fMgXxRR.json index 2e00f9c1..2a3a6095 100644 --- a/src/packs/items/weapons/weapon_Double_Flail_xm1yU7k58fMgXxRR.json +++ b/src/packs/items/weapons/weapon_Double_Flail_xm1yU7k58fMgXxRR.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832354486, + "modifiedTime": 1753832354486, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!xm1yU7k58fMgXxRR.DCie5eR1dZH2Qvln" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832332785, + "modifiedTime": 1753832367770, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!xm1yU7k58fMgXxRR" } diff --git a/src/packs/items/weapons/weapon_Dual_Ended_Sword_nXjuBa215H1sTUK3.json b/src/packs/items/weapons/weapon_Dual_Ended_Sword_nXjuBa215H1sTUK3.json index da15604c..4463cef4 100644 --- a/src/packs/items/weapons/weapon_Dual_Ended_Sword_nXjuBa215H1sTUK3.json +++ b/src/packs/items/weapons/weapon_Dual_Ended_Sword_nXjuBa215H1sTUK3.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834935521, + "modifiedTime": 1753835006406, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!nXjuBa215H1sTUK3" } diff --git a/src/packs/items/weapons/weapon_Dualstaff_j8cdNeIUYxxzFVji.json b/src/packs/items/weapons/weapon_Dualstaff_j8cdNeIUYxxzFVji.json index e7c458c3..35cf3dd6 100644 --- a/src/packs/items/weapons/weapon_Dualstaff_j8cdNeIUYxxzFVji.json +++ b/src/packs/items/weapons/weapon_Dualstaff_j8cdNeIUYxxzFVji.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828411828, + "modifiedTime": 1753828446546, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!j8cdNeIUYxxzFVji" } diff --git a/src/packs/items/weapons/weapon_Ego_Blade_G7rH31KQ5eEZXcv0.json b/src/packs/items/weapons/weapon_Ego_Blade_G7rH31KQ5eEZXcv0.json index 36d3b0ba..2d54aa50 100644 --- a/src/packs/items/weapons/weapon_Ego_Blade_G7rH31KQ5eEZXcv0.json +++ b/src/packs/items/weapons/weapon_Ego_Blade_G7rH31KQ5eEZXcv0.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831084805, + "modifiedTime": 1753831108928, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!G7rH31KQ5eEZXcv0" } diff --git a/src/packs/items/weapons/weapon_Elder_Bow_JdWcn9W1edhAEInL.json b/src/packs/items/weapons/weapon_Elder_Bow_JdWcn9W1edhAEInL.json index b6437781..f9637a9e 100644 --- a/src/packs/items/weapons/weapon_Elder_Bow_JdWcn9W1edhAEInL.json +++ b/src/packs/items/weapons/weapon_Elder_Bow_JdWcn9W1edhAEInL.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831327534, + "modifiedTime": 1753831327534, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!JdWcn9W1edhAEInL.sZ1XotFlGdkPPDG4" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831304971, + "modifiedTime": 1753831327540, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!JdWcn9W1edhAEInL" } diff --git a/src/packs/items/weapons/weapon_Extended_Polearm_fJHKMxZokVP34MCi.json b/src/packs/items/weapons/weapon_Extended_Polearm_fJHKMxZokVP34MCi.json index 62bcb3e0..65b0a657 100644 --- a/src/packs/items/weapons/weapon_Extended_Polearm_fJHKMxZokVP34MCi.json +++ b/src/packs/items/weapons/weapon_Extended_Polearm_fJHKMxZokVP34MCi.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835136460, + "modifiedTime": 1753835169098, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!fJHKMxZokVP34MCi" } diff --git a/src/packs/items/weapons/weapon_Finehair_Bow_ykF3jouxHZ6YR8Bg.json b/src/packs/items/weapons/weapon_Finehair_Bow_ykF3jouxHZ6YR8Bg.json index 6dc27659..5dba19c9 100644 --- a/src/packs/items/weapons/weapon_Finehair_Bow_ykF3jouxHZ6YR8Bg.json +++ b/src/packs/items/weapons/weapon_Finehair_Bow_ykF3jouxHZ6YR8Bg.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829859086, + "modifiedTime": 1753829859086, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!ykF3jouxHZ6YR8Bg.7bvIKGGQvmSGeg4O" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829844531, + "modifiedTime": 1753829859088, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!ykF3jouxHZ6YR8Bg" } diff --git a/src/packs/items/weapons/weapon_Firestaff_BtCm2RhWEfs00g38.json b/src/packs/items/weapons/weapon_Firestaff_BtCm2RhWEfs00g38.json index 983f98d1..f71b63b2 100644 --- a/src/packs/items/weapons/weapon_Firestaff_BtCm2RhWEfs00g38.json +++ b/src/packs/items/weapons/weapon_Firestaff_BtCm2RhWEfs00g38.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833915734, + "modifiedTime": 1753834249920, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!BtCm2RhWEfs00g38" } diff --git a/src/packs/items/weapons/weapon_Flickerfly_Blade_xLJ5RRpUoTRmAC3G.json b/src/packs/items/weapons/weapon_Flickerfly_Blade_xLJ5RRpUoTRmAC3G.json index 5dd5f04e..6696a3fb 100644 --- a/src/packs/items/weapons/weapon_Flickerfly_Blade_xLJ5RRpUoTRmAC3G.json +++ b/src/packs/items/weapons/weapon_Flickerfly_Blade_xLJ5RRpUoTRmAC3G.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [ @@ -117,8 +111,7 @@ { "key": "system.bonuses.damage.primaryWeapon.bonus", "mode": 2, - "value": "@system.traits.agility.value", - "priority": 21 + "value": "@system.traits.agility.value" } ], "_id": "jMIrOhpPUncn7dWg", @@ -136,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832118145, + "modifiedTime": 1753832118145, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!xLJ5RRpUoTRmAC3G.jMIrOhpPUncn7dWg" } @@ -147,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832095587, + "modifiedTime": 1753832129589, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!xLJ5RRpUoTRmAC3G" } diff --git a/src/packs/items/weapons/weapon_Floating_Bladeshards_3vti3xfo0wJND7ew.json b/src/packs/items/weapons/weapon_Floating_Bladeshards_3vti3xfo0wJND7ew.json index fa7b7d45..48087189 100644 --- a/src/packs/items/weapons/weapon_Floating_Bladeshards_3vti3xfo0wJND7ew.json +++ b/src/packs/items/weapons/weapon_Floating_Bladeshards_3vti3xfo0wJND7ew.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836181960, + "modifiedTime": 1753836181960, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!3vti3xfo0wJND7ew.T831j6kZiMnpMNmv" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836170763, + "modifiedTime": 1753836240655, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!3vti3xfo0wJND7ew" } diff --git a/src/packs/items/weapons/weapon_Fusion_Gloves_uK1RhtYAsDeoPNGx.json b/src/packs/items/weapons/weapon_Fusion_Gloves_uK1RhtYAsDeoPNGx.json index 747bc046..e8e14abb 100644 --- a/src/packs/items/weapons/weapon_Fusion_Gloves_uK1RhtYAsDeoPNGx.json +++ b/src/packs/items/weapons/weapon_Fusion_Gloves_uK1RhtYAsDeoPNGx.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836472488, + "modifiedTime": 1753836472488, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!uK1RhtYAsDeoPNGx.7ltP049dqxCaedyX" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836449043, + "modifiedTime": 1753836485751, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!uK1RhtYAsDeoPNGx" } diff --git a/src/packs/items/weapons/weapon_Ghostblade_6gFvOFTE97QZ74Zr.json b/src/packs/items/weapons/weapon_Ghostblade_6gFvOFTE97QZ74Zr.json index 7784b43d..a5d39bea 100644 --- a/src/packs/items/weapons/weapon_Ghostblade_6gFvOFTE97QZ74Zr.json +++ b/src/packs/items/weapons/weapon_Ghostblade_6gFvOFTE97QZ74Zr.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -73,7 +72,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -94,11 +93,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -108,5 +102,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833724570, + "modifiedTime": 1753833788108, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!6gFvOFTE97QZ74Zr" } diff --git a/src/packs/items/weapons/weapon_Gilded_Bow_ctTgFfMbM3YtmsYU.json b/src/packs/items/weapons/weapon_Gilded_Bow_ctTgFfMbM3YtmsYU.json index 88f5a163..bf6423c5 100644 --- a/src/packs/items/weapons/weapon_Gilded_Bow_ctTgFfMbM3YtmsYU.json +++ b/src/packs/items/weapons/weapon_Gilded_Bow_ctTgFfMbM3YtmsYU.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833899797, + "modifiedTime": 1753833899797, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!ctTgFfMbM3YtmsYU.zoWZsD4ogzfPSPi7" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833878513, + "modifiedTime": 1753833907298, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!ctTgFfMbM3YtmsYU" } diff --git a/src/packs/items/weapons/weapon_Gilded_Falchion_VwcOgqnzjf9LBj2S.json b/src/packs/items/weapons/weapon_Gilded_Falchion_VwcOgqnzjf9LBj2S.json index 551dcf56..e9372819 100644 --- a/src/packs/items/weapons/weapon_Gilded_Falchion_VwcOgqnzjf9LBj2S.json +++ b/src/packs/items/weapons/weapon_Gilded_Falchion_VwcOgqnzjf9LBj2S.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829587869, + "modifiedTime": 1753829587869, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!VwcOgqnzjf9LBj2S.ir4iKLIQ4CH1Qckn" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829584359, + "modifiedTime": 1753829600720, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!VwcOgqnzjf9LBj2S" } diff --git a/src/packs/items/weapons/weapon_Glowing_Rings_wG9f5NpCwSbaLy8t.json b/src/packs/items/weapons/weapon_Glowing_Rings_wG9f5NpCwSbaLy8t.json index 214d08a9..d1b43470 100644 --- a/src/packs/items/weapons/weapon_Glowing_Rings_wG9f5NpCwSbaLy8t.json +++ b/src/packs/items/weapons/weapon_Glowing_Rings_wG9f5NpCwSbaLy8t.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828268892, + "modifiedTime": 1753828300354, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!wG9f5NpCwSbaLy8t" } diff --git a/src/packs/items/weapons/weapon_Grappler_iEzPscUc18GuFoB6.json b/src/packs/items/weapons/weapon_Grappler_iEzPscUc18GuFoB6.json index 7f42998b..760cd787 100644 --- a/src/packs/items/weapons/weapon_Grappler_iEzPscUc18GuFoB6.json +++ b/src/packs/items/weapons/weapon_Grappler_iEzPscUc18GuFoB6.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "i9jZXe5K5nIc58AG", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753744418464, + "modifiedTime": 1753794424526, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!iEzPscUc18GuFoB6" } diff --git a/src/packs/items/weapons/weapon_Greatbow_MXBpbqQsZFln4rZk.json b/src/packs/items/weapons/weapon_Greatbow_MXBpbqQsZFln4rZk.json index f97e5432..40092016 100644 --- a/src/packs/items/weapons/weapon_Greatbow_MXBpbqQsZFln4rZk.json +++ b/src/packs/items/weapons/weapon_Greatbow_MXBpbqQsZFln4rZk.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829828349, + "modifiedTime": 1753829828349, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!MXBpbqQsZFln4rZk.K4VgrDjVj1U1m9Ie" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829810496, + "modifiedTime": 1753829836266, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!MXBpbqQsZFln4rZk" } diff --git a/src/packs/items/weapons/weapon_Greatstaff_Yk8pTEmyLLi4095S.json b/src/packs/items/weapons/weapon_Greatstaff_Yk8pTEmyLLi4095S.json index 0fbfc2b4..91ab35c3 100644 --- a/src/packs/items/weapons/weapon_Greatstaff_Yk8pTEmyLLi4095S.json +++ b/src/packs/items/weapons/weapon_Greatstaff_Yk8pTEmyLLi4095S.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828561510, + "modifiedTime": 1753828561510, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!Yk8pTEmyLLi4095S.904orawScurM9GjG" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828546209, + "modifiedTime": 1753828572366, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!Yk8pTEmyLLi4095S" } diff --git a/src/packs/items/weapons/weapon_Greatsword_70ysaFJDREwTgvZa.json b/src/packs/items/weapons/weapon_Greatsword_70ysaFJDREwTgvZa.json index 4707e397..88d68120 100644 --- a/src/packs/items/weapons/weapon_Greatsword_70ysaFJDREwTgvZa.json +++ b/src/packs/items/weapons/weapon_Greatsword_70ysaFJDREwTgvZa.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [ @@ -145,7 +139,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753827825532, + "modifiedTime": 1753827825532, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!70ysaFJDREwTgvZa.cffkpiwGpEGhjiUC" } @@ -156,5 +158,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753827812456, + "modifiedTime": 1753827837860, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!70ysaFJDREwTgvZa" } diff --git a/src/packs/items/weapons/weapon_Halberd_qT7FfmauAumOjJoq.json b/src/packs/items/weapons/weapon_Halberd_qT7FfmauAumOjJoq.json index 6259e63e..76ef57d5 100644 --- a/src/packs/items/weapons/weapon_Halberd_qT7FfmauAumOjJoq.json +++ b/src/packs/items/weapons/weapon_Halberd_qT7FfmauAumOjJoq.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828021173, + "modifiedTime": 1753828021173, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!qT7FfmauAumOjJoq.YxaGOWcQEesO9zPR" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828005240, + "modifiedTime": 1753828027571, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!qT7FfmauAumOjJoq" } diff --git a/src/packs/items/weapons/weapon_Hallowed_Axe_Vayg7CnRTFBrunjM.json b/src/packs/items/weapons/weapon_Hallowed_Axe_Vayg7CnRTFBrunjM.json index 9d8885b9..dfb94b82 100644 --- a/src/packs/items/weapons/weapon_Hallowed_Axe_Vayg7CnRTFBrunjM.json +++ b/src/packs/items/weapons/weapon_Hallowed_Axe_Vayg7CnRTFBrunjM.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -26,7 +25,7 @@ "amount": 1 }, "roll": { - "trait": "strength", + "trait": "agility", "type": "attack", "difficulty": null, "bonus": null, @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828229603, + "modifiedTime": 1753828259599, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!Vayg7CnRTFBrunjM" } diff --git a/src/packs/items/weapons/weapon_Hammer_of_Exota_0lAkBEUvbM9Osmqb.json b/src/packs/items/weapons/weapon_Hammer_of_Exota_0lAkBEUvbM9Osmqb.json index ba955850..79b179e2 100644 --- a/src/packs/items/weapons/weapon_Hammer_of_Exota_0lAkBEUvbM9Osmqb.json +++ b/src/packs/items/weapons/weapon_Hammer_of_Exota_0lAkBEUvbM9Osmqb.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831233943, + "modifiedTime": 1753831254600, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!0lAkBEUvbM9Osmqb" } diff --git a/src/packs/items/weapons/weapon_Hammer_of_Wrath_1R4uzOpWD8bkYRUm.json b/src/packs/items/weapons/weapon_Hammer_of_Wrath_1R4uzOpWD8bkYRUm.json index 122c0769..0733bc22 100644 --- a/src/packs/items/weapons/weapon_Hammer_of_Wrath_1R4uzOpWD8bkYRUm.json +++ b/src/packs/items/weapons/weapon_Hammer_of_Wrath_1R4uzOpWD8bkYRUm.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832169515, + "modifiedTime": 1753832195344, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!1R4uzOpWD8bkYRUm" } diff --git a/src/packs/items/weapons/weapon_Hand_Cannon_MyGz8nd5sieRQ7zl.json b/src/packs/items/weapons/weapon_Hand_Cannon_MyGz8nd5sieRQ7zl.json index 1396fb1d..9dfce730 100644 --- a/src/packs/items/weapons/weapon_Hand_Cannon_MyGz8nd5sieRQ7zl.json +++ b/src/packs/items/weapons/weapon_Hand_Cannon_MyGz8nd5sieRQ7zl.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835328057, + "modifiedTime": 1753835363359, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!MyGz8nd5sieRQ7zl" } diff --git a/src/packs/items/weapons/weapon_Hand_Crossbow_zxKt6qXe7uZB6ljm.json b/src/packs/items/weapons/weapon_Hand_Crossbow_zxKt6qXe7uZB6ljm.json index 9f69ffc9..7cbbeaec 100644 --- a/src/packs/items/weapons/weapon_Hand_Crossbow_zxKt6qXe7uZB6ljm.json +++ b/src/packs/items/weapons/weapon_Hand_Crossbow_zxKt6qXe7uZB6ljm.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "i9jZXe5K5nIc58AG", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753744526958, + "modifiedTime": 1753794520954, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!zxKt6qXe7uZB6ljm" } diff --git a/src/packs/items/weapons/weapon_Hand_Runes_3whiedn0jBMNRdIb.json b/src/packs/items/weapons/weapon_Hand_Runes_3whiedn0jBMNRdIb.json index 32761768..b16488ce 100644 --- a/src/packs/items/weapons/weapon_Hand_Runes_3whiedn0jBMNRdIb.json +++ b/src/packs/items/weapons/weapon_Hand_Runes_3whiedn0jBMNRdIb.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828308338, + "modifiedTime": 1753828333546, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!3whiedn0jBMNRdIb" } diff --git a/src/packs/items/weapons/weapon_Hand_Sling_RAIaoMi6iO1PKIlK.json b/src/packs/items/weapons/weapon_Hand_Sling_RAIaoMi6iO1PKIlK.json index 82641ca1..39a16ddb 100644 --- a/src/packs/items/weapons/weapon_Hand_Sling_RAIaoMi6iO1PKIlK.json +++ b/src/packs/items/weapons/weapon_Hand_Sling_RAIaoMi6iO1PKIlK.json @@ -89,7 +89,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -144,7 +143,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -165,11 +164,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [], @@ -179,5 +173,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753796778752, + "modifiedTime": 1753796892053, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!RAIaoMi6iO1PKIlK" } diff --git a/src/packs/items/weapons/weapon_Heavy_Frame_Wheelchair_XjPQjhRCH08VUIbr.json b/src/packs/items/weapons/weapon_Heavy_Frame_Wheelchair_XjPQjhRCH08VUIbr.json index db20063d..b4c48925 100644 --- a/src/packs/items/weapons/weapon_Heavy_Frame_Wheelchair_XjPQjhRCH08VUIbr.json +++ b/src/packs/items/weapons/weapon_Heavy_Frame_Wheelchair_XjPQjhRCH08VUIbr.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "fKTeCKjfyQauf5bA", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 55, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836663678, + "modifiedTime": 1753836663678, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!XjPQjhRCH08VUIbr.1godgiqdDADyR0Tw" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836652314, + "modifiedTime": 1754845988869, + "lastModifiedBy": "H02dtt2xvVJvYESk" + }, "_key": "!items!XjPQjhRCH08VUIbr" } diff --git a/src/packs/items/weapons/weapon_Ilmari_s_Rifle_TMrUzVC3KvcHmdt8.json b/src/packs/items/weapons/weapon_Ilmari_s_Rifle_TMrUzVC3KvcHmdt8.json index 8234ab3a..5d2ad638 100644 --- a/src/packs/items/weapons/weapon_Ilmari_s_Rifle_TMrUzVC3KvcHmdt8.json +++ b/src/packs/items/weapons/weapon_Ilmari_s_Rifle_TMrUzVC3KvcHmdt8.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "Zz0k98NVLRpebKgq", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834324778, + "modifiedTime": 1753834352088, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!TMrUzVC3KvcHmdt8" } diff --git a/src/packs/items/weapons/weapon_Impact_Gauntlet_Zg6IutksQVOqAg8K.json b/src/packs/items/weapons/weapon_Impact_Gauntlet_Zg6IutksQVOqAg8K.json index 8c8cc81d..5dd794d9 100644 --- a/src/packs/items/weapons/weapon_Impact_Gauntlet_Zg6IutksQVOqAg8K.json +++ b/src/packs/items/weapons/weapon_Impact_Gauntlet_Zg6IutksQVOqAg8K.json @@ -22,6 +22,7 @@ { "key": "hope", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835022121, + "modifiedTime": 1753835056093, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!Zg6IutksQVOqAg8K" } diff --git a/src/packs/items/weapons/weapon_Improved_Arcane_Frame_Wheelchair_N9P695V5KKlJbAY5.json b/src/packs/items/weapons/weapon_Improved_Arcane_Frame_Wheelchair_N9P695V5KKlJbAY5.json index fad45a2b..69744aab 100644 --- a/src/packs/items/weapons/weapon_Improved_Arcane_Frame_Wheelchair_N9P695V5KKlJbAY5.json +++ b/src/packs/items/weapons/weapon_Improved_Arcane_Frame_Wheelchair_N9P695V5KKlJbAY5.json @@ -24,7 +24,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "fKTeCKjfyQauf5bA", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -79,7 +78,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -100,11 +99,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 55, - "artist": "" } }, "effects": [ @@ -141,7 +135,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1754815290648, + "modifiedTime": 1754815290648, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!N9P695V5KKlJbAY5.1f6fFhOLwZrmA6e5" } @@ -151,6 +153,17 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753836714712, + "modifiedTime": 1754845960700, + "lastModifiedBy": "H02dtt2xvVJvYESk" + }, "_id": "N9P695V5KKlJbAY5", "sort": 0, "_key": "!items!N9P695V5KKlJbAY5" diff --git a/src/packs/items/weapons/weapon_Improved_Arcane_Gauntlets_kENTDpa1hr5LDhIT.json b/src/packs/items/weapons/weapon_Improved_Arcane_Gauntlets_kENTDpa1hr5LDhIT.json index 40b85dde..ace2d7f5 100644 --- a/src/packs/items/weapons/weapon_Improved_Arcane_Gauntlets_kENTDpa1hr5LDhIT.json +++ b/src/packs/items/weapons/weapon_Improved_Arcane_Gauntlets_kENTDpa1hr5LDhIT.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753830663702, + "modifiedTime": 1753830688044, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!kENTDpa1hr5LDhIT" } diff --git a/src/packs/items/weapons/weapon_Improved_Battleaxe_nxGUpuHLmuKdKsDC.json b/src/packs/items/weapons/weapon_Improved_Battleaxe_nxGUpuHLmuKdKsDC.json index 23068751..78a1d9ce 100644 --- a/src/packs/items/weapons/weapon_Improved_Battleaxe_nxGUpuHLmuKdKsDC.json +++ b/src/packs/items/weapons/weapon_Improved_Battleaxe_nxGUpuHLmuKdKsDC.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829159520, + "modifiedTime": 1753829179084, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!nxGUpuHLmuKdKsDC" } diff --git a/src/packs/items/weapons/weapon_Improved_Broadsword_OcKeLJxvmdT81VBc.json b/src/packs/items/weapons/weapon_Improved_Broadsword_OcKeLJxvmdT81VBc.json index a17caadf..69e46858 100644 --- a/src/packs/items/weapons/weapon_Improved_Broadsword_OcKeLJxvmdT81VBc.json +++ b/src/packs/items/weapons/weapon_Improved_Broadsword_OcKeLJxvmdT81VBc.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1754814935810, + "modifiedTime": 1754814935810, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!OcKeLJxvmdT81VBc.228lcQpohdJ3Bbga" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753829098118, + "modifiedTime": 1754814935815, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!OcKeLJxvmdT81VBc" } diff --git a/src/packs/items/weapons/weapon_Improved_Crossbow_55NwHIIZHUeKSE3M.json b/src/packs/items/weapons/weapon_Improved_Crossbow_55NwHIIZHUeKSE3M.json index 185f8f11..4ebf336e 100644 --- a/src/packs/items/weapons/weapon_Improved_Crossbow_55NwHIIZHUeKSE3M.json +++ b/src/packs/items/weapons/weapon_Improved_Crossbow_55NwHIIZHUeKSE3M.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829524850, + "modifiedTime": 1753829540618, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!55NwHIIZHUeKSE3M" } diff --git a/src/packs/items/weapons/weapon_Improved_Cutlass_ddRjXnp2vbohu7rJ.json b/src/packs/items/weapons/weapon_Improved_Cutlass_ddRjXnp2vbohu7rJ.json index 520e5679..57ead715 100644 --- a/src/packs/items/weapons/weapon_Improved_Cutlass_ddRjXnp2vbohu7rJ.json +++ b/src/packs/items/weapons/weapon_Improved_Cutlass_ddRjXnp2vbohu7rJ.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829336088, + "modifiedTime": 1753829379988, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!ddRjXnp2vbohu7rJ" } diff --git a/src/packs/items/weapons/weapon_Improved_Dagger_ScjTkb9qrndhlk9S.json b/src/packs/items/weapons/weapon_Improved_Dagger_ScjTkb9qrndhlk9S.json index 1db4504e..09e93778 100644 --- a/src/packs/items/weapons/weapon_Improved_Dagger_ScjTkb9qrndhlk9S.json +++ b/src/packs/items/weapons/weapon_Improved_Dagger_ScjTkb9qrndhlk9S.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829275876, + "modifiedTime": 1753829295031, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!ScjTkb9qrndhlk9S" } diff --git a/src/packs/items/weapons/weapon_Improved_Dualstaff_f7hhHlZ5nL3AhYEM.json b/src/packs/items/weapons/weapon_Improved_Dualstaff_f7hhHlZ5nL3AhYEM.json index 84cc75ba..a55aedd0 100644 --- a/src/packs/items/weapons/weapon_Improved_Dualstaff_f7hhHlZ5nL3AhYEM.json +++ b/src/packs/items/weapons/weapon_Improved_Dualstaff_f7hhHlZ5nL3AhYEM.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753830887023, + "modifiedTime": 1753830918763, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!f7hhHlZ5nL3AhYEM" } diff --git a/src/packs/items/weapons/weapon_Improved_Glowing_Rings_N5amhkxR1xn3B7r2.json b/src/packs/items/weapons/weapon_Improved_Glowing_Rings_N5amhkxR1xn3B7r2.json index 01439f5b..1ee640bb 100644 --- a/src/packs/items/weapons/weapon_Improved_Glowing_Rings_N5amhkxR1xn3B7r2.json +++ b/src/packs/items/weapons/weapon_Improved_Glowing_Rings_N5amhkxR1xn3B7r2.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753830729041, + "modifiedTime": 1753830753601, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!N5amhkxR1xn3B7r2" } diff --git a/src/packs/items/weapons/weapon_Improved_Grappler_3T3o9zfe61t22L1H.json b/src/packs/items/weapons/weapon_Improved_Grappler_3T3o9zfe61t22L1H.json index 74ee510a..d8b91be7 100644 --- a/src/packs/items/weapons/weapon_Improved_Grappler_3T3o9zfe61t22L1H.json +++ b/src/packs/items/weapons/weapon_Improved_Grappler_3T3o9zfe61t22L1H.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753794386984, + "modifiedTime": 1753795053642, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!3T3o9zfe61t22L1H" } diff --git a/src/packs/items/weapons/weapon_Improved_Greatstaff_LCuTrYXi4lhg6LqW.json b/src/packs/items/weapons/weapon_Improved_Greatstaff_LCuTrYXi4lhg6LqW.json index 5faa0b0e..9b239f60 100644 --- a/src/packs/items/weapons/weapon_Improved_Greatstaff_LCuTrYXi4lhg6LqW.json +++ b/src/packs/items/weapons/weapon_Improved_Greatstaff_LCuTrYXi4lhg6LqW.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831053150, + "modifiedTime": 1753831053150, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!LCuTrYXi4lhg6LqW.hnayB09P25ZW3gVY" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831031130, + "modifiedTime": 1753831074766, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!LCuTrYXi4lhg6LqW" } diff --git a/src/packs/items/weapons/weapon_Improved_Greatsword_FPX4ouDrxXiQ5MDf.json b/src/packs/items/weapons/weapon_Improved_Greatsword_FPX4ouDrxXiQ5MDf.json index f8407b13..28cad987 100644 --- a/src/packs/items/weapons/weapon_Improved_Greatsword_FPX4ouDrxXiQ5MDf.json +++ b/src/packs/items/weapons/weapon_Improved_Greatsword_FPX4ouDrxXiQ5MDf.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [ @@ -145,7 +139,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829211946, + "modifiedTime": 1753829211946, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!FPX4ouDrxXiQ5MDf.2nl35v8sPAudiOIb" } @@ -156,5 +158,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829188168, + "modifiedTime": 1753829211950, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!FPX4ouDrxXiQ5MDf" } diff --git a/src/packs/items/weapons/weapon_Improved_Halberd_F9PETfCQGwczBPif.json b/src/packs/items/weapons/weapon_Improved_Halberd_F9PETfCQGwczBPif.json index 168d8953..bc88174b 100644 --- a/src/packs/items/weapons/weapon_Improved_Halberd_F9PETfCQGwczBPif.json +++ b/src/packs/items/weapons/weapon_Improved_Halberd_F9PETfCQGwczBPif.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829436555, + "modifiedTime": 1753829436555, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!F9PETfCQGwczBPif.POQepSxCro9T9OYT" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829414070, + "modifiedTime": 1753829436559, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!F9PETfCQGwczBPif" } diff --git a/src/packs/items/weapons/weapon_Improved_Hallowed_Axe_wFOXMN2uiX4j6Gd9.json b/src/packs/items/weapons/weapon_Improved_Hallowed_Axe_wFOXMN2uiX4j6Gd9.json index a79ad56d..818c0f55 100644 --- a/src/packs/items/weapons/weapon_Improved_Hallowed_Axe_wFOXMN2uiX4j6Gd9.json +++ b/src/packs/items/weapons/weapon_Improved_Hallowed_Axe_wFOXMN2uiX4j6Gd9.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753830697026, + "modifiedTime": 1753830717920, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!wFOXMN2uiX4j6Gd9" } diff --git a/src/packs/items/weapons/weapon_Improved_Hand_Crossbow_XEDRkuw3BhMoVBn9.json b/src/packs/items/weapons/weapon_Improved_Hand_Crossbow_XEDRkuw3BhMoVBn9.json index 74e74f2c..63e7f363 100644 --- a/src/packs/items/weapons/weapon_Improved_Hand_Crossbow_XEDRkuw3BhMoVBn9.json +++ b/src/packs/items/weapons/weapon_Improved_Hand_Crossbow_XEDRkuw3BhMoVBn9.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753794476404, + "modifiedTime": 1753794517681, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!XEDRkuw3BhMoVBn9" } diff --git a/src/packs/items/weapons/weapon_Improved_Hand_Runes_jMEukC3VpNDz5AOD.json b/src/packs/items/weapons/weapon_Improved_Hand_Runes_jMEukC3VpNDz5AOD.json index 546e9762..246a4dff 100644 --- a/src/packs/items/weapons/weapon_Improved_Hand_Runes_jMEukC3VpNDz5AOD.json +++ b/src/packs/items/weapons/weapon_Improved_Hand_Runes_jMEukC3VpNDz5AOD.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753830762576, + "modifiedTime": 1753830786247, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!jMEukC3VpNDz5AOD" } diff --git a/src/packs/items/weapons/weapon_Improved_Heavy_Frame_Wheelchair_L5KeCtrs768PmYWW.json b/src/packs/items/weapons/weapon_Improved_Heavy_Frame_Wheelchair_L5KeCtrs768PmYWW.json index 3a386fa8..70531b7c 100644 --- a/src/packs/items/weapons/weapon_Improved_Heavy_Frame_Wheelchair_L5KeCtrs768PmYWW.json +++ b/src/packs/items/weapons/weapon_Improved_Heavy_Frame_Wheelchair_L5KeCtrs768PmYWW.json @@ -24,7 +24,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "fKTeCKjfyQauf5bA", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -79,7 +78,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -100,11 +99,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 55, - "artist": "" } }, "effects": [ @@ -134,7 +128,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!L5KeCtrs768PmYWW.1godgiqdDADyR0Tw" } @@ -144,6 +144,17 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836674233, + "modifiedTime": 1754845992757, + "lastModifiedBy": "H02dtt2xvVJvYESk" + }, "_id": "L5KeCtrs768PmYWW", "sort": 0, "_key": "!items!L5KeCtrs768PmYWW" diff --git a/src/packs/items/weapons/weapon_Improved_Light_Frame_Wheelchair_ZJsetdHKV77ygtCE.json b/src/packs/items/weapons/weapon_Improved_Light_Frame_Wheelchair_ZJsetdHKV77ygtCE.json index 6fbe3c9d..737e2c55 100644 --- a/src/packs/items/weapons/weapon_Improved_Light_Frame_Wheelchair_ZJsetdHKV77ygtCE.json +++ b/src/packs/items/weapons/weapon_Improved_Light_Frame_Wheelchair_ZJsetdHKV77ygtCE.json @@ -17,6 +17,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -53,7 +54,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "fKTeCKjfyQauf5bA", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -108,7 +108,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -129,11 +129,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 54, - "artist": "" } }, "effects": [], @@ -142,6 +137,17 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836612291, + "modifiedTime": 1754846018260, + "lastModifiedBy": "H02dtt2xvVJvYESk" + }, "_id": "ZJsetdHKV77ygtCE", "sort": 0, "_key": "!items!ZJsetdHKV77ygtCE" diff --git a/src/packs/items/weapons/weapon_Improved_Longbow_NacNonjbzyoVMNhI.json b/src/packs/items/weapons/weapon_Improved_Longbow_NacNonjbzyoVMNhI.json index 787d5a28..18b98cc0 100644 --- a/src/packs/items/weapons/weapon_Improved_Longbow_NacNonjbzyoVMNhI.json +++ b/src/packs/items/weapons/weapon_Improved_Longbow_NacNonjbzyoVMNhI.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829574673, + "modifiedTime": 1753829574673, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!NacNonjbzyoVMNhI.TC4yGDrnOisOpDQu" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829548741, + "modifiedTime": 1753829574677, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!NacNonjbzyoVMNhI" } diff --git a/src/packs/items/weapons/weapon_Improved_Longsword_QyBZ5NxM8F9nCL9s.json b/src/packs/items/weapons/weapon_Improved_Longsword_QyBZ5NxM8F9nCL9s.json index 982ca3ac..b064b1c2 100644 --- a/src/packs/items/weapons/weapon_Improved_Longsword_QyBZ5NxM8F9nCL9s.json +++ b/src/packs/items/weapons/weapon_Improved_Longsword_QyBZ5NxM8F9nCL9s.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829133179, + "modifiedTime": 1753829150848, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!QyBZ5NxM8F9nCL9s" } diff --git a/src/packs/items/weapons/weapon_Improved_Mace_zSLx52U4Yltqx8F1.json b/src/packs/items/weapons/weapon_Improved_Mace_zSLx52U4Yltqx8F1.json index c1b626d5..3c079674 100644 --- a/src/packs/items/weapons/weapon_Improved_Mace_zSLx52U4Yltqx8F1.json +++ b/src/packs/items/weapons/weapon_Improved_Mace_zSLx52U4Yltqx8F1.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829219204, + "modifiedTime": 1753829233784, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!zSLx52U4Yltqx8F1" } diff --git a/src/packs/items/weapons/weapon_Improved_Quarterstaff_BEmAR60PM3ZaiNXa.json b/src/packs/items/weapons/weapon_Improved_Quarterstaff_BEmAR60PM3ZaiNXa.json index 888022ed..54b220a5 100644 --- a/src/packs/items/weapons/weapon_Improved_Quarterstaff_BEmAR60PM3ZaiNXa.json +++ b/src/packs/items/weapons/weapon_Improved_Quarterstaff_BEmAR60PM3ZaiNXa.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829305566, + "modifiedTime": 1753829326219, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!BEmAR60PM3ZaiNXa" } diff --git a/src/packs/items/weapons/weapon_Improved_Rapier_LFPH8nD2f4Blv3AM.json b/src/packs/items/weapons/weapon_Improved_Rapier_LFPH8nD2f4Blv3AM.json index cc6099da..27808573 100644 --- a/src/packs/items/weapons/weapon_Improved_Rapier_LFPH8nD2f4Blv3AM.json +++ b/src/packs/items/weapons/weapon_Improved_Rapier_LFPH8nD2f4Blv3AM.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829388946, + "modifiedTime": 1753829406872, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!LFPH8nD2f4Blv3AM" } diff --git a/src/packs/items/weapons/weapon_Improved_Returning_Blade_SKNwkW23eVQjN4Zy.json b/src/packs/items/weapons/weapon_Improved_Returning_Blade_SKNwkW23eVQjN4Zy.json index 31688a23..64404db7 100644 --- a/src/packs/items/weapons/weapon_Improved_Returning_Blade_SKNwkW23eVQjN4Zy.json +++ b/src/packs/items/weapons/weapon_Improved_Returning_Blade_SKNwkW23eVQjN4Zy.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753830798994, + "modifiedTime": 1753830839524, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!SKNwkW23eVQjN4Zy" } diff --git a/src/packs/items/weapons/weapon_Improved_Round_Shield_DlinEBGZfIlvreO3.json b/src/packs/items/weapons/weapon_Improved_Round_Shield_DlinEBGZfIlvreO3.json index 53a8e9b6..49be7813 100644 --- a/src/packs/items/weapons/weapon_Improved_Round_Shield_DlinEBGZfIlvreO3.json +++ b/src/packs/items/weapons/weapon_Improved_Round_Shield_DlinEBGZfIlvreO3.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "i9jZXe5K5nIc58AG", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,24 +100,18 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [ { "name": "Protective", - "description": "

Add the item's Tier to your Armor Score

", + "description": "Add your character's Tier to your Armor Score", "img": "icons/skills/melee/shield-block-gray-orange.webp", "changes": [ { "key": "system.armorScore", "mode": 2, - "value": "ITEM.@system.tier", - "priority": null + "value": "ITEM.@system.tier" } ], "_id": "cXWSV50apzaNQkdA", @@ -127,12 +120,7 @@ "disabled": false, "duration": { "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null + "combat": null }, "origin": null, "tint": "#ffffff", @@ -141,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753794098464, + "modifiedTime": 1753794098464, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!DlinEBGZfIlvreO3.cXWSV50apzaNQkdA" } @@ -152,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753744776245, + "modifiedTime": 1753794098472, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!DlinEBGZfIlvreO3" } diff --git a/src/packs/items/weapons/weapon_Improved_Scepter_tj26lbNkwy8bORF4.json b/src/packs/items/weapons/weapon_Improved_Scepter_tj26lbNkwy8bORF4.json index dc41692f..a97d7e10 100644 --- a/src/packs/items/weapons/weapon_Improved_Scepter_tj26lbNkwy8bORF4.json +++ b/src/packs/items/weapons/weapon_Improved_Scepter_tj26lbNkwy8bORF4.json @@ -91,7 +91,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -146,7 +145,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -167,11 +166,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -181,5 +175,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753830930043, + "modifiedTime": 1753835907269, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!tj26lbNkwy8bORF4" } diff --git a/src/packs/items/weapons/weapon_Improved_Shortbow_6ZWl6ARfvYBaAMwY.json b/src/packs/items/weapons/weapon_Improved_Shortbow_6ZWl6ARfvYBaAMwY.json index 421b8f8e..ec704881 100644 --- a/src/packs/items/weapons/weapon_Improved_Shortbow_6ZWl6ARfvYBaAMwY.json +++ b/src/packs/items/weapons/weapon_Improved_Shortbow_6ZWl6ARfvYBaAMwY.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829484986, + "modifiedTime": 1753829516515, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!6ZWl6ARfvYBaAMwY" } diff --git a/src/packs/items/weapons/weapon_Improved_Shortstaff_Mn8ja5Oi1sXvvPSk.json b/src/packs/items/weapons/weapon_Improved_Shortstaff_Mn8ja5Oi1sXvvPSk.json index 08bf9251..5ff31862 100644 --- a/src/packs/items/weapons/weapon_Improved_Shortstaff_Mn8ja5Oi1sXvvPSk.json +++ b/src/packs/items/weapons/weapon_Improved_Shortstaff_Mn8ja5Oi1sXvvPSk.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753830852208, + "modifiedTime": 1753830874554, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!Mn8ja5Oi1sXvvPSk" } diff --git a/src/packs/items/weapons/weapon_Improved_Shortsword_rSyBNRwemBVuTo3H.json b/src/packs/items/weapons/weapon_Improved_Shortsword_rSyBNRwemBVuTo3H.json index df2f324c..c2704b4d 100644 --- a/src/packs/items/weapons/weapon_Improved_Shortsword_rSyBNRwemBVuTo3H.json +++ b/src/packs/items/weapons/weapon_Improved_Shortsword_rSyBNRwemBVuTo3H.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "i9jZXe5K5nIc58AG", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1755268322552, + "modifiedTime": 1755268322552, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!items.effects!rSyBNRwemBVuTo3H.UW2fqbhBqvnK1coG" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753744566951, + "modifiedTime": 1755268322555, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_key": "!items!rSyBNRwemBVuTo3H" } diff --git a/src/packs/items/weapons/weapon_Improved_Small_Dagger_nMuF8ZDZ2aXZVTg6.json b/src/packs/items/weapons/weapon_Improved_Small_Dagger_nMuF8ZDZ2aXZVTg6.json index b69332a5..5685ac71 100644 --- a/src/packs/items/weapons/weapon_Improved_Small_Dagger_nMuF8ZDZ2aXZVTg6.json +++ b/src/packs/items/weapons/weapon_Improved_Small_Dagger_nMuF8ZDZ2aXZVTg6.json @@ -10,7 +10,7 @@ "attached": [], "tier": 2, "equipped": false, - "secondary": true, + "secondary": false, "burden": "oneHanded", "weaponFeatures": [ { @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1755268329305, + "modifiedTime": 1755268329305, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!items.effects!nMuF8ZDZ2aXZVTg6.PMXG4l85UkXRf41E" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753794291887, + "modifiedTime": 1755268329308, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_key": "!items!nMuF8ZDZ2aXZVTg6" } diff --git a/src/packs/items/weapons/weapon_Improved_Spear_j5Pt1thLfcvopBij.json b/src/packs/items/weapons/weapon_Improved_Spear_j5Pt1thLfcvopBij.json index ae6b0987..367f80ad 100644 --- a/src/packs/items/weapons/weapon_Improved_Spear_j5Pt1thLfcvopBij.json +++ b/src/packs/items/weapons/weapon_Improved_Spear_j5Pt1thLfcvopBij.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,19 +92,64 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, - "effects": [], + "effects": [ + { + "name": "Cumbersome", + "description": "-1 to Finesse", + "img": "icons/commodities/metal/mail-plate-steel.webp", + "changes": [ + { + "key": "system.traits.finesse.value", + "mode": 2, + "value": "-1" + } + ], + "_id": "8twXPJELZpvFWA5K", + "type": "base", + "system": {}, + "disabled": false, + "duration": { + "startTime": null, + "combat": null + }, + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829466016, + "modifiedTime": 1753829466016, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_key": "!items.effects!j5Pt1thLfcvopBij.8twXPJELZpvFWA5K" + } + ], "sort": 0, "ownership": { "default": 0, "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829443743, + "modifiedTime": 1753829474262, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!j5Pt1thLfcvopBij" } diff --git a/src/packs/items/weapons/weapon_Improved_Tower_Shield_bxt3NsbMqTSdI5ab.json b/src/packs/items/weapons/weapon_Improved_Tower_Shield_bxt3NsbMqTSdI5ab.json index 839d4352..b612daef 100644 --- a/src/packs/items/weapons/weapon_Improved_Tower_Shield_bxt3NsbMqTSdI5ab.json +++ b/src/packs/items/weapons/weapon_Improved_Tower_Shield_bxt3NsbMqTSdI5ab.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753794257125, + "modifiedTime": 1753794257125, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!bxt3NsbMqTSdI5ab.tkNEA1PO3jEFhKCa" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753794198427, + "modifiedTime": 1753794267315, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!bxt3NsbMqTSdI5ab" } diff --git a/src/packs/items/weapons/weapon_Improved_Wand_6d9B2b5X2d2U56jt.json b/src/packs/items/weapons/weapon_Improved_Wand_6d9B2b5X2d2U56jt.json index cecb818d..951b4115 100644 --- a/src/packs/items/weapons/weapon_Improved_Wand_6d9B2b5X2d2U56jt.json +++ b/src/packs/items/weapons/weapon_Improved_Wand_6d9B2b5X2d2U56jt.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753830985241, + "modifiedTime": 1753831019167, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!6d9B2b5X2d2U56jt" } diff --git a/src/packs/items/weapons/weapon_Improved_Warhammer_pxaN4ZK4eqKrjtWj.json b/src/packs/items/weapons/weapon_Improved_Warhammer_pxaN4ZK4eqKrjtWj.json index 40a5faba..115195a7 100644 --- a/src/packs/items/weapons/weapon_Improved_Warhammer_pxaN4ZK4eqKrjtWj.json +++ b/src/packs/items/weapons/weapon_Improved_Warhammer_pxaN4ZK4eqKrjtWj.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829265348, + "modifiedTime": 1753829265348, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!pxaN4ZK4eqKrjtWj.KvdwqkM3ErLxMzDq" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829240673, + "modifiedTime": 1753829265352, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!pxaN4ZK4eqKrjtWj" } diff --git a/src/packs/items/weapons/weapon_Improved_Whip_ftTp8VlsBQ1r4LFD.json b/src/packs/items/weapons/weapon_Improved_Whip_ftTp8VlsBQ1r4LFD.json index dff7fb25..1035131d 100644 --- a/src/packs/items/weapons/weapon_Improved_Whip_ftTp8VlsBQ1r4LFD.json +++ b/src/packs/items/weapons/weapon_Improved_Whip_ftTp8VlsBQ1r4LFD.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753794353291, + "modifiedTime": 1753808384267, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!ftTp8VlsBQ1r4LFD" } diff --git a/src/packs/items/weapons/weapon_Keeper_s_Staff_q382JqMkqLaaFLIr.json b/src/packs/items/weapons/weapon_Keeper_s_Staff_q382JqMkqLaaFLIr.json index 27b8044b..d934731d 100644 --- a/src/packs/items/weapons/weapon_Keeper_s_Staff_q382JqMkqLaaFLIr.json +++ b/src/packs/items/weapons/weapon_Keeper_s_Staff_q382JqMkqLaaFLIr.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1754815023490, + "modifiedTime": 1754815023490, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!q382JqMkqLaaFLIr.LvxPAfrKuRfgubGV" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753831418620, + "modifiedTime": 1754815023493, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!q382JqMkqLaaFLIr" } diff --git a/src/packs/items/weapons/weapon_Knuckle_Blades_U8gfyvxoHm024inM.json b/src/packs/items/weapons/weapon_Knuckle_Blades_U8gfyvxoHm024inM.json index 6bc27412..fafe9bbc 100644 --- a/src/packs/items/weapons/weapon_Knuckle_Blades_U8gfyvxoHm024inM.json +++ b/src/packs/items/weapons/weapon_Knuckle_Blades_U8gfyvxoHm024inM.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829611315, + "modifiedTime": 1753829635422, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!U8gfyvxoHm024inM" } diff --git a/src/packs/items/weapons/weapon_Knuckle_Claws_SFqganS8Du4aEKjQ.json b/src/packs/items/weapons/weapon_Knuckle_Claws_SFqganS8Du4aEKjQ.json index df995a3f..f2f53dc7 100644 --- a/src/packs/items/weapons/weapon_Knuckle_Claws_SFqganS8Du4aEKjQ.json +++ b/src/packs/items/weapons/weapon_Knuckle_Claws_SFqganS8Du4aEKjQ.json @@ -48,7 +48,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -103,7 +102,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -124,11 +123,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [], @@ -138,5 +132,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753797258168, + "modifiedTime": 1754814600761, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!SFqganS8Du4aEKjQ" } diff --git a/src/packs/items/weapons/weapon_Labrys_Axe_ijWppQzSOqVCb3rE.json b/src/packs/items/weapons/weapon_Labrys_Axe_ijWppQzSOqVCb3rE.json index 4958bbe5..fe91f8a1 100644 --- a/src/packs/items/weapons/weapon_Labrys_Axe_ijWppQzSOqVCb3rE.json +++ b/src/packs/items/weapons/weapon_Labrys_Axe_ijWppQzSOqVCb3rE.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832220497, + "modifiedTime": 1753832220497, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!ijWppQzSOqVCb3rE.qTxADRsQnKiYfOiQ" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832206440, + "modifiedTime": 1753832248436, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!ijWppQzSOqVCb3rE" } diff --git a/src/packs/items/weapons/weapon_Legendary_Arcane_Frame_Wheelchair_gA2tiET9VHGhwMoO.json b/src/packs/items/weapons/weapon_Legendary_Arcane_Frame_Wheelchair_gA2tiET9VHGhwMoO.json index d8068f41..b402692f 100644 --- a/src/packs/items/weapons/weapon_Legendary_Arcane_Frame_Wheelchair_gA2tiET9VHGhwMoO.json +++ b/src/packs/items/weapons/weapon_Legendary_Arcane_Frame_Wheelchair_gA2tiET9VHGhwMoO.json @@ -24,7 +24,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "fKTeCKjfyQauf5bA", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -79,7 +78,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -100,11 +99,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 55, - "artist": "" } }, "effects": [ @@ -141,7 +135,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1754815308723, + "modifiedTime": 1754815308723, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!gA2tiET9VHGhwMoO.TvsoAiqHCwgtYat1" } @@ -151,6 +153,17 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753836717240, + "modifiedTime": 1754845972571, + "lastModifiedBy": "H02dtt2xvVJvYESk" + }, "_id": "gA2tiET9VHGhwMoO", "sort": 0, "_key": "!items!gA2tiET9VHGhwMoO" diff --git a/src/packs/items/weapons/weapon_Legendary_Arcane_Gauntlets_umADDPYCaykXDc1v.json b/src/packs/items/weapons/weapon_Legendary_Arcane_Gauntlets_umADDPYCaykXDc1v.json index 94da915c..ba769375 100644 --- a/src/packs/items/weapons/weapon_Legendary_Arcane_Gauntlets_umADDPYCaykXDc1v.json +++ b/src/packs/items/weapons/weapon_Legendary_Arcane_Gauntlets_umADDPYCaykXDc1v.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835451334, + "modifiedTime": 1753835475492, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!umADDPYCaykXDc1v" } diff --git a/src/packs/items/weapons/weapon_Legendary_Battleaxe_1nztpLzoHGfbKf5x.json b/src/packs/items/weapons/weapon_Legendary_Battleaxe_1nztpLzoHGfbKf5x.json index 06a8a85f..c7376573 100644 --- a/src/packs/items/weapons/weapon_Legendary_Battleaxe_1nztpLzoHGfbKf5x.json +++ b/src/packs/items/weapons/weapon_Legendary_Battleaxe_1nztpLzoHGfbKf5x.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834500236, + "modifiedTime": 1753834519405, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!1nztpLzoHGfbKf5x" } diff --git a/src/packs/items/weapons/weapon_Legendary_Broadsword_y3hfTPfZhMognyaJ.json b/src/packs/items/weapons/weapon_Legendary_Broadsword_y3hfTPfZhMognyaJ.json index 786ba8b6..32d19734 100644 --- a/src/packs/items/weapons/weapon_Legendary_Broadsword_y3hfTPfZhMognyaJ.json +++ b/src/packs/items/weapons/weapon_Legendary_Broadsword_y3hfTPfZhMognyaJ.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1754814961439, + "modifiedTime": 1754814961439, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!y3hfTPfZhMognyaJ.ujb6VAqjyXmfnnjy" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753834430378, + "modifiedTime": 1754814961454, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!y3hfTPfZhMognyaJ" } diff --git a/src/packs/items/weapons/weapon_Legendary_Crossbow_1G6xX2QL9O0Rsgz7.json b/src/packs/items/weapons/weapon_Legendary_Crossbow_1G6xX2QL9O0Rsgz7.json index e263bcbe..51bc4ea3 100644 --- a/src/packs/items/weapons/weapon_Legendary_Crossbow_1G6xX2QL9O0Rsgz7.json +++ b/src/packs/items/weapons/weapon_Legendary_Crossbow_1G6xX2QL9O0Rsgz7.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834862922, + "modifiedTime": 1753834882694, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!1G6xX2QL9O0Rsgz7" } diff --git a/src/packs/items/weapons/weapon_Legendary_Cutlass_Rpyz0jbFJ1SwqfyD.json b/src/packs/items/weapons/weapon_Legendary_Cutlass_Rpyz0jbFJ1SwqfyD.json index 2c284332..99950a86 100644 --- a/src/packs/items/weapons/weapon_Legendary_Cutlass_Rpyz0jbFJ1SwqfyD.json +++ b/src/packs/items/weapons/weapon_Legendary_Cutlass_Rpyz0jbFJ1SwqfyD.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834710917, + "modifiedTime": 1753834734158, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!Rpyz0jbFJ1SwqfyD" } diff --git a/src/packs/items/weapons/weapon_Legendary_Dagger_GmTg3Fdne1UPNs8t.json b/src/packs/items/weapons/weapon_Legendary_Dagger_GmTg3Fdne1UPNs8t.json index 0e9e988d..02b8cdce 100644 --- a/src/packs/items/weapons/weapon_Legendary_Dagger_GmTg3Fdne1UPNs8t.json +++ b/src/packs/items/weapons/weapon_Legendary_Dagger_GmTg3Fdne1UPNs8t.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834616464, + "modifiedTime": 1753834659439, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!GmTg3Fdne1UPNs8t" } diff --git a/src/packs/items/weapons/weapon_Legendary_Dualstaff_o3rsLvImcLAx5TvD.json b/src/packs/items/weapons/weapon_Legendary_Dualstaff_o3rsLvImcLAx5TvD.json index 9c618ba5..5c7977cc 100644 --- a/src/packs/items/weapons/weapon_Legendary_Dualstaff_o3rsLvImcLAx5TvD.json +++ b/src/packs/items/weapons/weapon_Legendary_Dualstaff_o3rsLvImcLAx5TvD.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835724086, + "modifiedTime": 1753835787515, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!o3rsLvImcLAx5TvD" } diff --git a/src/packs/items/weapons/weapon_Legendary_Glowing_Rings_PReWrfuPjoNQuieo.json b/src/packs/items/weapons/weapon_Legendary_Glowing_Rings_PReWrfuPjoNQuieo.json index 1710084f..9d55a327 100644 --- a/src/packs/items/weapons/weapon_Legendary_Glowing_Rings_PReWrfuPjoNQuieo.json +++ b/src/packs/items/weapons/weapon_Legendary_Glowing_Rings_PReWrfuPjoNQuieo.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835522076, + "modifiedTime": 1753835564865, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!PReWrfuPjoNQuieo" } diff --git a/src/packs/items/weapons/weapon_Legendary_Grappler_IrtUj0UntBMNn49G.json b/src/packs/items/weapons/weapon_Legendary_Grappler_IrtUj0UntBMNn49G.json index 83334710..3a22dde7 100644 --- a/src/packs/items/weapons/weapon_Legendary_Grappler_IrtUj0UntBMNn49G.json +++ b/src/packs/items/weapons/weapon_Legendary_Grappler_IrtUj0UntBMNn49G.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753797131628, + "modifiedTime": 1753797154423, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!IrtUj0UntBMNn49G" } diff --git a/src/packs/items/weapons/weapon_Legendary_Greatstaff_jDtvEabkHY1GFgfc.json b/src/packs/items/weapons/weapon_Legendary_Greatstaff_jDtvEabkHY1GFgfc.json index 0d317f0d..a7dbbfc5 100644 --- a/src/packs/items/weapons/weapon_Legendary_Greatstaff_jDtvEabkHY1GFgfc.json +++ b/src/packs/items/weapons/weapon_Legendary_Greatstaff_jDtvEabkHY1GFgfc.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835979594, + "modifiedTime": 1753835979594, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!jDtvEabkHY1GFgfc.OV1Ly7vX4owBUgLQ" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835957503, + "modifiedTime": 1753835997508, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!jDtvEabkHY1GFgfc" } diff --git a/src/packs/items/weapons/weapon_Legendary_Greatsword_zMZ46F9VR7zdTxb9.json b/src/packs/items/weapons/weapon_Legendary_Greatsword_zMZ46F9VR7zdTxb9.json index fb7a2ed3..cfd0cfc6 100644 --- a/src/packs/items/weapons/weapon_Legendary_Greatsword_zMZ46F9VR7zdTxb9.json +++ b/src/packs/items/weapons/weapon_Legendary_Greatsword_zMZ46F9VR7zdTxb9.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [ @@ -145,7 +139,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834531834, + "modifiedTime": 1753834531834, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!zMZ46F9VR7zdTxb9.oRCiXSElN5xufUfn" } @@ -156,5 +158,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834526945, + "modifiedTime": 1753834554233, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!zMZ46F9VR7zdTxb9" } diff --git a/src/packs/items/weapons/weapon_Legendary_Halberd_1AuMNiJz96Ez9fur.json b/src/packs/items/weapons/weapon_Legendary_Halberd_1AuMNiJz96Ez9fur.json index 22e6af1b..caeb9c2e 100644 --- a/src/packs/items/weapons/weapon_Legendary_Halberd_1AuMNiJz96Ez9fur.json +++ b/src/packs/items/weapons/weapon_Legendary_Halberd_1AuMNiJz96Ez9fur.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834787206, + "modifiedTime": 1753834787206, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!1AuMNiJz96Ez9fur.MmVRlnSLFWBfNJlB" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834772989, + "modifiedTime": 1753834797363, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!1AuMNiJz96Ez9fur" } diff --git a/src/packs/items/weapons/weapon_Legendary_Hallowed_Axe_0HmhnZnv1I6uX69c.json b/src/packs/items/weapons/weapon_Legendary_Hallowed_Axe_0HmhnZnv1I6uX69c.json index 2bf11f05..2c56cdaa 100644 --- a/src/packs/items/weapons/weapon_Legendary_Hallowed_Axe_0HmhnZnv1I6uX69c.json +++ b/src/packs/items/weapons/weapon_Legendary_Hallowed_Axe_0HmhnZnv1I6uX69c.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835486056, + "modifiedTime": 1753835507874, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!0HmhnZnv1I6uX69c" } diff --git a/src/packs/items/weapons/weapon_Legendary_Hand_Crossbow_32nYyMaeDWaakSxz.json b/src/packs/items/weapons/weapon_Legendary_Hand_Crossbow_32nYyMaeDWaakSxz.json index ff43c21b..35e53a9a 100644 --- a/src/packs/items/weapons/weapon_Legendary_Hand_Crossbow_32nYyMaeDWaakSxz.json +++ b/src/packs/items/weapons/weapon_Legendary_Hand_Crossbow_32nYyMaeDWaakSxz.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753797168339, + "modifiedTime": 1753797192489, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!32nYyMaeDWaakSxz" } diff --git a/src/packs/items/weapons/weapon_Legendary_Hand_Runes_DWLkswhluXuMy3bB.json b/src/packs/items/weapons/weapon_Legendary_Hand_Runes_DWLkswhluXuMy3bB.json index 2dcad490..73886272 100644 --- a/src/packs/items/weapons/weapon_Legendary_Hand_Runes_DWLkswhluXuMy3bB.json +++ b/src/packs/items/weapons/weapon_Legendary_Hand_Runes_DWLkswhluXuMy3bB.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835579627, + "modifiedTime": 1753835606935, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!DWLkswhluXuMy3bB" } diff --git a/src/packs/items/weapons/weapon_Legendary_Heavy_Frame_Wheelchair_S6nB0CNlzdU05o5U.json b/src/packs/items/weapons/weapon_Legendary_Heavy_Frame_Wheelchair_S6nB0CNlzdU05o5U.json index 7e561c26..d337d32f 100644 --- a/src/packs/items/weapons/weapon_Legendary_Heavy_Frame_Wheelchair_S6nB0CNlzdU05o5U.json +++ b/src/packs/items/weapons/weapon_Legendary_Heavy_Frame_Wheelchair_S6nB0CNlzdU05o5U.json @@ -24,7 +24,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "fKTeCKjfyQauf5bA", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -79,7 +78,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -100,11 +99,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 55, - "artist": "" } }, "effects": [ @@ -134,7 +128,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!S6nB0CNlzdU05o5U.1godgiqdDADyR0Tw" } @@ -144,6 +144,17 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836676831, + "modifiedTime": 1754846000470, + "lastModifiedBy": "H02dtt2xvVJvYESk" + }, "_id": "S6nB0CNlzdU05o5U", "sort": 0, "_key": "!items!S6nB0CNlzdU05o5U" diff --git a/src/packs/items/weapons/weapon_Legendary_Light_Frame_Wheelchair_Xt8tVSn5Fu6ly6LF.json b/src/packs/items/weapons/weapon_Legendary_Light_Frame_Wheelchair_Xt8tVSn5Fu6ly6LF.json index 9f96601c..622fcf12 100644 --- a/src/packs/items/weapons/weapon_Legendary_Light_Frame_Wheelchair_Xt8tVSn5Fu6ly6LF.json +++ b/src/packs/items/weapons/weapon_Legendary_Light_Frame_Wheelchair_Xt8tVSn5Fu6ly6LF.json @@ -17,6 +17,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -53,7 +54,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "fKTeCKjfyQauf5bA", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -108,7 +108,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -129,11 +129,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 54, - "artist": "" } }, "effects": [], @@ -142,6 +137,17 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836615437, + "modifiedTime": 1754846023338, + "lastModifiedBy": "H02dtt2xvVJvYESk" + }, "_id": "Xt8tVSn5Fu6ly6LF", "sort": 0, "_key": "!items!Xt8tVSn5Fu6ly6LF" diff --git a/src/packs/items/weapons/weapon_Legendary_Longbow_Utt1GpoH1fhaTOtN.json b/src/packs/items/weapons/weapon_Legendary_Longbow_Utt1GpoH1fhaTOtN.json index bb0b8ab3..333632dc 100644 --- a/src/packs/items/weapons/weapon_Legendary_Longbow_Utt1GpoH1fhaTOtN.json +++ b/src/packs/items/weapons/weapon_Legendary_Longbow_Utt1GpoH1fhaTOtN.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834914733, + "modifiedTime": 1753834914733, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!Utt1GpoH1fhaTOtN.004BkCQeQzuMVGS3" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834890609, + "modifiedTime": 1753834925920, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!Utt1GpoH1fhaTOtN" } diff --git a/src/packs/items/weapons/weapon_Legendary_Longsword_14abPqQcROJfDChR.json b/src/packs/items/weapons/weapon_Legendary_Longsword_14abPqQcROJfDChR.json index 9399edd4..636dd7a5 100644 --- a/src/packs/items/weapons/weapon_Legendary_Longsword_14abPqQcROJfDChR.json +++ b/src/packs/items/weapons/weapon_Legendary_Longsword_14abPqQcROJfDChR.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834472085, + "modifiedTime": 1753834491863, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!14abPqQcROJfDChR" } diff --git a/src/packs/items/weapons/weapon_Legendary_Mace_RsDsy7tIhrhaAQQc.json b/src/packs/items/weapons/weapon_Legendary_Mace_RsDsy7tIhrhaAQQc.json index 95de32f0..e037c5c8 100644 --- a/src/packs/items/weapons/weapon_Legendary_Mace_RsDsy7tIhrhaAQQc.json +++ b/src/packs/items/weapons/weapon_Legendary_Mace_RsDsy7tIhrhaAQQc.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834566762, + "modifiedTime": 1753834581202, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!RsDsy7tIhrhaAQQc" } diff --git a/src/packs/items/weapons/weapon_Legendary_Quarterstaff_1ZciqG7vIKLYpKsP.json b/src/packs/items/weapons/weapon_Legendary_Quarterstaff_1ZciqG7vIKLYpKsP.json index cf25daa7..b4ea03f9 100644 --- a/src/packs/items/weapons/weapon_Legendary_Quarterstaff_1ZciqG7vIKLYpKsP.json +++ b/src/packs/items/weapons/weapon_Legendary_Quarterstaff_1ZciqG7vIKLYpKsP.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834677366, + "modifiedTime": 1753834698077, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!1ZciqG7vIKLYpKsP" } diff --git a/src/packs/items/weapons/weapon_Legendary_Rapier_BakN97v4jTePcXiZ.json b/src/packs/items/weapons/weapon_Legendary_Rapier_BakN97v4jTePcXiZ.json index 59a49063..bbdf3ad9 100644 --- a/src/packs/items/weapons/weapon_Legendary_Rapier_BakN97v4jTePcXiZ.json +++ b/src/packs/items/weapons/weapon_Legendary_Rapier_BakN97v4jTePcXiZ.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834740751, + "modifiedTime": 1753834763060, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!BakN97v4jTePcXiZ" } diff --git a/src/packs/items/weapons/weapon_Legendary_Returning_Blade_mcj3CPkcSSDdAcBB.json b/src/packs/items/weapons/weapon_Legendary_Returning_Blade_mcj3CPkcSSDdAcBB.json index 211c88c2..8081d1ce 100644 --- a/src/packs/items/weapons/weapon_Legendary_Returning_Blade_mcj3CPkcSSDdAcBB.json +++ b/src/packs/items/weapons/weapon_Legendary_Returning_Blade_mcj3CPkcSSDdAcBB.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835615004, + "modifiedTime": 1753835665790, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!mcj3CPkcSSDdAcBB" } diff --git a/src/packs/items/weapons/weapon_Legendary_Round_Shield_A28WL9E2lJ3iLZHW.json b/src/packs/items/weapons/weapon_Legendary_Round_Shield_A28WL9E2lJ3iLZHW.json index c7b18355..421df201 100644 --- a/src/packs/items/weapons/weapon_Legendary_Round_Shield_A28WL9E2lJ3iLZHW.json +++ b/src/packs/items/weapons/weapon_Legendary_Round_Shield_A28WL9E2lJ3iLZHW.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,24 +100,18 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [ { "name": "Protective", - "description": "

Add the item's Tier to your Armor Score

", + "description": "Add your character's Tier to your Armor Score", "img": "icons/skills/melee/shield-block-gray-orange.webp", "changes": [ { "key": "system.armorScore", "mode": 2, - "value": "ITEM.@system.tier", - "priority": null + "value": "ITEM.@system.tier" } ], "_id": "Z2p00q5h6x6seXys", @@ -127,12 +120,7 @@ "disabled": false, "duration": { "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null + "combat": null }, "origin": null, "tint": "#ffffff", @@ -141,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753796983285, + "modifiedTime": 1753796983285, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!A28WL9E2lJ3iLZHW.Z2p00q5h6x6seXys" } @@ -152,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753796968563, + "modifiedTime": 1753797012196, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!A28WL9E2lJ3iLZHW" } diff --git a/src/packs/items/weapons/weapon_Legendary_Scepter_IZ4CWNxfuM46JeCN.json b/src/packs/items/weapons/weapon_Legendary_Scepter_IZ4CWNxfuM46JeCN.json index 9630fd69..92d9b49c 100644 --- a/src/packs/items/weapons/weapon_Legendary_Scepter_IZ4CWNxfuM46JeCN.json +++ b/src/packs/items/weapons/weapon_Legendary_Scepter_IZ4CWNxfuM46JeCN.json @@ -91,7 +91,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -146,7 +145,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -167,11 +166,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [], @@ -181,5 +175,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835822353, + "modifiedTime": 1753835867763, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!IZ4CWNxfuM46JeCN" } diff --git a/src/packs/items/weapons/weapon_Legendary_Shortbow_j7kp36jaetfn5jb3.json b/src/packs/items/weapons/weapon_Legendary_Shortbow_j7kp36jaetfn5jb3.json index 7fad3f95..0cf8c3de 100644 --- a/src/packs/items/weapons/weapon_Legendary_Shortbow_j7kp36jaetfn5jb3.json +++ b/src/packs/items/weapons/weapon_Legendary_Shortbow_j7kp36jaetfn5jb3.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834834626, + "modifiedTime": 1753834854507, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!j7kp36jaetfn5jb3" } diff --git a/src/packs/items/weapons/weapon_Legendary_Shortstaff_D3SbNvNJZAFuzfhg.json b/src/packs/items/weapons/weapon_Legendary_Shortstaff_D3SbNvNJZAFuzfhg.json index 59d53e44..9a3c1f13 100644 --- a/src/packs/items/weapons/weapon_Legendary_Shortstaff_D3SbNvNJZAFuzfhg.json +++ b/src/packs/items/weapons/weapon_Legendary_Shortstaff_D3SbNvNJZAFuzfhg.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835676579, + "modifiedTime": 1753835813150, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!D3SbNvNJZAFuzfhg" } diff --git a/src/packs/items/weapons/weapon_Legendary_Shortsword_dEumq3BIZBk5xYTk.json b/src/packs/items/weapons/weapon_Legendary_Shortsword_dEumq3BIZBk5xYTk.json index d7f9632a..4c1a13a3 100644 --- a/src/packs/items/weapons/weapon_Legendary_Shortsword_dEumq3BIZBk5xYTk.json +++ b/src/packs/items/weapons/weapon_Legendary_Shortsword_dEumq3BIZBk5xYTk.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1755268362371, + "modifiedTime": 1755268362371, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!items.effects!dEumq3BIZBk5xYTk.ebloMf4gItx38xkZ" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753796913551, + "modifiedTime": 1755268362375, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_key": "!items!dEumq3BIZBk5xYTk" } diff --git a/src/packs/items/weapons/weapon_Legendary_Small_Dagger_Px3Rh3kIvAqyISxJ.json b/src/packs/items/weapons/weapon_Legendary_Small_Dagger_Px3Rh3kIvAqyISxJ.json index c6bf5437..67d58df9 100644 --- a/src/packs/items/weapons/weapon_Legendary_Small_Dagger_Px3Rh3kIvAqyISxJ.json +++ b/src/packs/items/weapons/weapon_Legendary_Small_Dagger_Px3Rh3kIvAqyISxJ.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1755268370233, + "modifiedTime": 1755268370233, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!items.effects!Px3Rh3kIvAqyISxJ.WAqE3sZFkTefglDq" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753797057472, + "modifiedTime": 1755268370240, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_key": "!items!Px3Rh3kIvAqyISxJ" } diff --git a/src/packs/items/weapons/weapon_Legendary_Spear_4e5pWxi2qohuGsWh.json b/src/packs/items/weapons/weapon_Legendary_Spear_4e5pWxi2qohuGsWh.json index 114ea79e..bfdcd4eb 100644 --- a/src/packs/items/weapons/weapon_Legendary_Spear_4e5pWxi2qohuGsWh.json +++ b/src/packs/items/weapons/weapon_Legendary_Spear_4e5pWxi2qohuGsWh.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,19 +92,64 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, - "effects": [], + "effects": [ + { + "name": "Cumbersome", + "description": "-1 to Finesse", + "img": "icons/commodities/metal/mail-plate-steel.webp", + "changes": [ + { + "key": "system.traits.finesse.value", + "mode": 2, + "value": "-1" + } + ], + "_id": "f44KWDgCQeKYfccr", + "type": "base", + "system": {}, + "disabled": false, + "duration": { + "startTime": null, + "combat": null + }, + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834816288, + "modifiedTime": 1753834816288, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_key": "!items.effects!4e5pWxi2qohuGsWh.f44KWDgCQeKYfccr" + } + ], "sort": 0, "ownership": { "default": 0, "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834806427, + "modifiedTime": 1753834827595, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!4e5pWxi2qohuGsWh" } diff --git a/src/packs/items/weapons/weapon_Legendary_Tower_Shield_MaJIROht7A9LxIZx.json b/src/packs/items/weapons/weapon_Legendary_Tower_Shield_MaJIROht7A9LxIZx.json index 47e707d3..7e62f1aa 100644 --- a/src/packs/items/weapons/weapon_Legendary_Tower_Shield_MaJIROht7A9LxIZx.json +++ b/src/packs/items/weapons/weapon_Legendary_Tower_Shield_MaJIROht7A9LxIZx.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753797037220, + "modifiedTime": 1753797037220, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!MaJIROht7A9LxIZx.lBJMzxdGO2nJdTQS" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753797026049, + "modifiedTime": 1753797043015, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!MaJIROht7A9LxIZx" } diff --git a/src/packs/items/weapons/weapon_Legendary_Wand_wPjg0LufJH9vUfVM.json b/src/packs/items/weapons/weapon_Legendary_Wand_wPjg0LufJH9vUfVM.json index 4bb0acd9..be8b131b 100644 --- a/src/packs/items/weapons/weapon_Legendary_Wand_wPjg0LufJH9vUfVM.json +++ b/src/packs/items/weapons/weapon_Legendary_Wand_wPjg0LufJH9vUfVM.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835923888, + "modifiedTime": 1753835965485, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!wPjg0LufJH9vUfVM" } diff --git a/src/packs/items/weapons/weapon_Legendary_Warhammer_W9ymfEDck2icfvla.json b/src/packs/items/weapons/weapon_Legendary_Warhammer_W9ymfEDck2icfvla.json index 0918f8b1..b449fca5 100644 --- a/src/packs/items/weapons/weapon_Legendary_Warhammer_W9ymfEDck2icfvla.json +++ b/src/packs/items/weapons/weapon_Legendary_Warhammer_W9ymfEDck2icfvla.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834602368, + "modifiedTime": 1753834602368, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!W9ymfEDck2icfvla.hKvwLqCltaPV1C7n" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834588280, + "modifiedTime": 1753834609113, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!W9ymfEDck2icfvla" } diff --git a/src/packs/items/weapons/weapon_Legendary_Whip_Wcdbf6yS3LEt7nsg.json b/src/packs/items/weapons/weapon_Legendary_Whip_Wcdbf6yS3LEt7nsg.json index 83ac59c7..b4b8bf02 100644 --- a/src/packs/items/weapons/weapon_Legendary_Whip_Wcdbf6yS3LEt7nsg.json +++ b/src/packs/items/weapons/weapon_Legendary_Whip_Wcdbf6yS3LEt7nsg.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753797101746, + "modifiedTime": 1753808440137, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!Wcdbf6yS3LEt7nsg" } diff --git a/src/packs/items/weapons/weapon_Light_Frame_Wheelchair_iaGnlUkShBgdeMo0.json b/src/packs/items/weapons/weapon_Light_Frame_Wheelchair_iaGnlUkShBgdeMo0.json index fdda2b56..9bb97d2b 100644 --- a/src/packs/items/weapons/weapon_Light_Frame_Wheelchair_iaGnlUkShBgdeMo0.json +++ b/src/packs/items/weapons/weapon_Light_Frame_Wheelchair_iaGnlUkShBgdeMo0.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "fKTeCKjfyQauf5bA", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 54, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836579296, + "modifiedTime": 1754846015528, + "lastModifiedBy": "H02dtt2xvVJvYESk" + }, "_key": "!items!iaGnlUkShBgdeMo0" } diff --git a/src/packs/items/weapons/weapon_Longbow_YfVs6Se903az4Yet.json b/src/packs/items/weapons/weapon_Longbow_YfVs6Se903az4Yet.json index c6e98bc4..e20f9111 100644 --- a/src/packs/items/weapons/weapon_Longbow_YfVs6Se903az4Yet.json +++ b/src/packs/items/weapons/weapon_Longbow_YfVs6Se903az4Yet.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828147996, + "modifiedTime": 1753828147996, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!YfVs6Se903az4Yet.9gKDF96uId07289w" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828135552, + "modifiedTime": 1753828159427, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!YfVs6Se903az4Yet" } diff --git a/src/packs/items/weapons/weapon_Longsword_Iv8BZM1R24QMT72M.json b/src/packs/items/weapons/weapon_Longsword_Iv8BZM1R24QMT72M.json index cba1bac8..c5d9070b 100644 --- a/src/packs/items/weapons/weapon_Longsword_Iv8BZM1R24QMT72M.json +++ b/src/packs/items/weapons/weapon_Longsword_Iv8BZM1R24QMT72M.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753827769163, + "modifiedTime": 1753827781183, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!Iv8BZM1R24QMT72M" } diff --git a/src/packs/items/weapons/weapon_Mace_cKQCDyM2UopDL9zF.json b/src/packs/items/weapons/weapon_Mace_cKQCDyM2UopDL9zF.json index 0e6670f4..529e3874 100644 --- a/src/packs/items/weapons/weapon_Mace_cKQCDyM2UopDL9zF.json +++ b/src/packs/items/weapons/weapon_Mace_cKQCDyM2UopDL9zF.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753827843717, + "modifiedTime": 1753827858825, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!cKQCDyM2UopDL9zF" } diff --git a/src/packs/items/weapons/weapon_Mage_Orb_XKBmBUEoGLdLcuqQ.json b/src/packs/items/weapons/weapon_Mage_Orb_XKBmBUEoGLdLcuqQ.json index 8d3fd741..f609e409 100644 --- a/src/packs/items/weapons/weapon_Mage_Orb_XKBmBUEoGLdLcuqQ.json +++ b/src/packs/items/weapons/weapon_Mage_Orb_XKBmBUEoGLdLcuqQ.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "Zz0k98NVLRpebKgq", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834272503, + "modifiedTime": 1753834272503, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!XKBmBUEoGLdLcuqQ.2J6vzNUel78JFypp" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753834259866, + "modifiedTime": 1753834310221, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!XKBmBUEoGLdLcuqQ" } diff --git a/src/packs/items/weapons/weapon_Magus_Revolver_jGykNGQiKm63tCiE.json b/src/packs/items/weapons/weapon_Magus_Revolver_jGykNGQiKm63tCiE.json index 42a65010..daa68be1 100644 --- a/src/packs/items/weapons/weapon_Magus_Revolver_jGykNGQiKm63tCiE.json +++ b/src/packs/items/weapons/weapon_Magus_Revolver_jGykNGQiKm63tCiE.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836385650, + "modifiedTime": 1753836419000, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!jGykNGQiKm63tCiE" } diff --git a/src/packs/items/weapons/weapon_Meridian_Cutlass_Gi26Zk9VqlAAgx3E.json b/src/packs/items/weapons/weapon_Meridian_Cutlass_Gi26Zk9VqlAAgx3E.json index dcc236a0..e7809a76 100644 --- a/src/packs/items/weapons/weapon_Meridian_Cutlass_Gi26Zk9VqlAAgx3E.json +++ b/src/packs/items/weapons/weapon_Meridian_Cutlass_Gi26Zk9VqlAAgx3E.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832261628, + "modifiedTime": 1753832286780, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!Gi26Zk9VqlAAgx3E" } diff --git a/src/packs/items/weapons/weapon_Midas_Scythe_BdLfy5i488VZgkjP.json b/src/packs/items/weapons/weapon_Midas_Scythe_BdLfy5i488VZgkjP.json index 799413be..420f28b8 100644 --- a/src/packs/items/weapons/weapon_Midas_Scythe_BdLfy5i488VZgkjP.json +++ b/src/packs/items/weapons/weapon_Midas_Scythe_BdLfy5i488VZgkjP.json @@ -54,7 +54,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -109,7 +108,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +129,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [ @@ -164,7 +158,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836142588, + "modifiedTime": 1753836142588, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!BdLfy5i488VZgkjP.1C5o1D5JYgLdt2eU" } @@ -175,5 +177,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836123608, + "modifiedTime": 1753836160033, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!BdLfy5i488VZgkjP" } diff --git a/src/packs/items/weapons/weapon_Parrying_Dagger_taAZDkDCpeNgxhnn.json b/src/packs/items/weapons/weapon_Parrying_Dagger_taAZDkDCpeNgxhnn.json index 482d813b..c4a796a7 100644 --- a/src/packs/items/weapons/weapon_Parrying_Dagger_taAZDkDCpeNgxhnn.json +++ b/src/packs/items/weapons/weapon_Parrying_Dagger_taAZDkDCpeNgxhnn.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753794685727, + "modifiedTime": 1753794748494, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!taAZDkDCpeNgxhnn" } diff --git a/src/packs/items/weapons/weapon_Powered_Gauntlet_bW3xw5S9DbaLCN3E.json b/src/packs/items/weapons/weapon_Powered_Gauntlet_bW3xw5S9DbaLCN3E.json index 67922f8b..417fae15 100644 --- a/src/packs/items/weapons/weapon_Powered_Gauntlet_bW3xw5S9DbaLCN3E.json +++ b/src/packs/items/weapons/weapon_Powered_Gauntlet_bW3xw5S9DbaLCN3E.json @@ -22,6 +22,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -61,7 +62,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -116,7 +116,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -137,11 +137,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [ @@ -171,7 +166,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753808423859, + "modifiedTime": 1753808423859, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!bW3xw5S9DbaLCN3E.n5EB7pI0kv2Zx35G" } @@ -182,5 +185,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753796723376, + "modifiedTime": 1753808423862, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!bW3xw5S9DbaLCN3E" } diff --git a/src/packs/items/weapons/weapon_Primer_Shard_SxcblanBvqaest3A.json b/src/packs/items/weapons/weapon_Primer_Shard_SxcblanBvqaest3A.json index fb42af74..e3dd3035 100644 --- a/src/packs/items/weapons/weapon_Primer_Shard_SxcblanBvqaest3A.json +++ b/src/packs/items/weapons/weapon_Primer_Shard_SxcblanBvqaest3A.json @@ -48,7 +48,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -103,7 +102,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -124,11 +123,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 53, - "artist": "" } }, "effects": [], @@ -138,5 +132,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753797317938, + "modifiedTime": 1754814518028, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!SxcblanBvqaest3A" } diff --git a/src/packs/items/weapons/weapon_Quarterstaff_mlIj88p1wcQNjEDG.json b/src/packs/items/weapons/weapon_Quarterstaff_mlIj88p1wcQNjEDG.json index 37c56a21..7526e8c1 100644 --- a/src/packs/items/weapons/weapon_Quarterstaff_mlIj88p1wcQNjEDG.json +++ b/src/packs/items/weapons/weapon_Quarterstaff_mlIj88p1wcQNjEDG.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753827915482, + "modifiedTime": 1753827935877, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!mlIj88p1wcQNjEDG" } diff --git a/src/packs/items/weapons/weapon_Rapier_zkAgEW6zMkRZalEm.json b/src/packs/items/weapons/weapon_Rapier_zkAgEW6zMkRZalEm.json index b4de1c00..01e1cbf2 100644 --- a/src/packs/items/weapons/weapon_Rapier_zkAgEW6zMkRZalEm.json +++ b/src/packs/items/weapons/weapon_Rapier_zkAgEW6zMkRZalEm.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753827969157, + "modifiedTime": 1753827996285, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!zkAgEW6zMkRZalEm" } diff --git a/src/packs/items/weapons/weapon_Retractable_Saber_i8CqVTzqoRoCewNe.json b/src/packs/items/weapons/weapon_Retractable_Saber_i8CqVTzqoRoCewNe.json index c1b350a3..350d8b4f 100644 --- a/src/packs/items/weapons/weapon_Retractable_Saber_i8CqVTzqoRoCewNe.json +++ b/src/packs/items/weapons/weapon_Retractable_Saber_i8CqVTzqoRoCewNe.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832298659, + "modifiedTime": 1753832323983, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!i8CqVTzqoRoCewNe" } diff --git a/src/packs/items/weapons/weapon_Returning_Axe_FtsQGwOg3r8uUCST.json b/src/packs/items/weapons/weapon_Returning_Axe_FtsQGwOg3r8uUCST.json index 76a887ae..5fcd1214 100644 --- a/src/packs/items/weapons/weapon_Returning_Axe_FtsQGwOg3r8uUCST.json +++ b/src/packs/items/weapons/weapon_Returning_Axe_FtsQGwOg3r8uUCST.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753794760906, + "modifiedTime": 1753794803866, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!FtsQGwOg3r8uUCST" } diff --git a/src/packs/items/weapons/weapon_Returning_Blade_4fQpVfQ3NVwTHStA.json b/src/packs/items/weapons/weapon_Returning_Blade_4fQpVfQ3NVwTHStA.json index 74be4227..e20c840e 100644 --- a/src/packs/items/weapons/weapon_Returning_Blade_4fQpVfQ3NVwTHStA.json +++ b/src/packs/items/weapons/weapon_Returning_Blade_4fQpVfQ3NVwTHStA.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828345143, + "modifiedTime": 1753828368281, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!4fQpVfQ3NVwTHStA" } diff --git a/src/packs/items/weapons/weapon_Ricochet_Axes_E9QDh5o9eQ1Qx0kH.json b/src/packs/items/weapons/weapon_Ricochet_Axes_E9QDh5o9eQ1Qx0kH.json index 1067bb02..9c71aa5c 100644 --- a/src/packs/items/weapons/weapon_Ricochet_Axes_E9QDh5o9eQ1Qx0kH.json +++ b/src/packs/items/weapons/weapon_Ricochet_Axes_E9QDh5o9eQ1Qx0kH.json @@ -19,7 +19,8 @@ "key": "stress", "value": 1, "scalable": true, - "step": 1 + "step": 1, + "keyIsID": false } ], "_id": "x9cz8u1utQ6DtoKA", @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835247877, + "modifiedTime": 1753835276839, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!E9QDh5o9eQ1Qx0kH" } diff --git a/src/packs/items/weapons/weapon_Round_Shield_mxwWKDujgsRcZWPT.json b/src/packs/items/weapons/weapon_Round_Shield_mxwWKDujgsRcZWPT.json index 47b096af..c49aa7dd 100644 --- a/src/packs/items/weapons/weapon_Round_Shield_mxwWKDujgsRcZWPT.json +++ b/src/packs/items/weapons/weapon_Round_Shield_mxwWKDujgsRcZWPT.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "h3g8PT67I6xr3xsW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,24 +100,18 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [ { "name": "Protective", - "description": "

Add the item's Tier to your Armor Score

", + "description": "Add your character's Tier to your Armor Score", "img": "icons/skills/melee/shield-block-gray-orange.webp", "changes": [ { "key": "system.armorScore", "mode": 2, - "value": "ITEM.@system.tier", - "priority": null + "value": "ITEM.@system.tier" } ], "_id": "M70a81e0Mg66jHRL", @@ -127,12 +120,7 @@ "disabled": false, "duration": { "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null + "combat": null }, "origin": null, "tint": "#ffffff", @@ -141,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753794114980, + "modifiedTime": 1753794114980, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!mxwWKDujgsRcZWPT.M70a81e0Mg66jHRL" } @@ -152,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753742068200, + "modifiedTime": 1753794114990, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!mxwWKDujgsRcZWPT" } diff --git a/src/packs/items/weapons/weapon_Runes_of_Ruination_EG6mZhr3ib56r974.json b/src/packs/items/weapons/weapon_Runes_of_Ruination_EG6mZhr3ib56r974.json index e0676ed2..ce7fe3bc 100644 --- a/src/packs/items/weapons/weapon_Runes_of_Ruination_EG6mZhr3ib56r974.json +++ b/src/packs/items/weapons/weapon_Runes_of_Ruination_EG6mZhr3ib56r974.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833802007, + "modifiedTime": 1753833831195, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!EG6mZhr3ib56r974" } diff --git a/src/packs/items/weapons/weapon_Scepter_GZh345N8fmuS4Jeh.json b/src/packs/items/weapons/weapon_Scepter_GZh345N8fmuS4Jeh.json index 04ce4c4b..c7a686e7 100644 --- a/src/packs/items/weapons/weapon_Scepter_GZh345N8fmuS4Jeh.json +++ b/src/packs/items/weapons/weapon_Scepter_GZh345N8fmuS4Jeh.json @@ -91,7 +91,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -146,7 +145,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -167,11 +166,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -181,5 +175,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828453134, + "modifiedTime": 1753835916388, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!GZh345N8fmuS4Jeh" } diff --git a/src/packs/items/weapons/weapon_Scepter_of_Elias_acPGwIaUhx3R0mTq.json b/src/packs/items/weapons/weapon_Scepter_of_Elias_acPGwIaUhx3R0mTq.json index 8c8e50af..4348fbee 100644 --- a/src/packs/items/weapons/weapon_Scepter_of_Elias_acPGwIaUhx3R0mTq.json +++ b/src/packs/items/weapons/weapon_Scepter_of_Elias_acPGwIaUhx3R0mTq.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831343009, + "modifiedTime": 1753831365565, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!acPGwIaUhx3R0mTq" } diff --git a/src/packs/items/weapons/weapon_Shortbow_p9tdjQr2AZP19RYm.json b/src/packs/items/weapons/weapon_Shortbow_p9tdjQr2AZP19RYm.json index 82216a2d..424f762d 100644 --- a/src/packs/items/weapons/weapon_Shortbow_p9tdjQr2AZP19RYm.json +++ b/src/packs/items/weapons/weapon_Shortbow_p9tdjQr2AZP19RYm.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828079904, + "modifiedTime": 1753828100575, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!p9tdjQr2AZP19RYm" } diff --git a/src/packs/items/weapons/weapon_Shortstaff_vHDHG3STcxTEfYAM.json b/src/packs/items/weapons/weapon_Shortstaff_vHDHG3STcxTEfYAM.json index 0d468da8..ed9f9492 100644 --- a/src/packs/items/weapons/weapon_Shortstaff_vHDHG3STcxTEfYAM.json +++ b/src/packs/items/weapons/weapon_Shortstaff_vHDHG3STcxTEfYAM.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828380553, + "modifiedTime": 1753828404541, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!vHDHG3STcxTEfYAM" } diff --git a/src/packs/items/weapons/weapon_Shortsword_cjGZpXCoshEqi1FI.json b/src/packs/items/weapons/weapon_Shortsword_cjGZpXCoshEqi1FI.json index 84ae1a2a..8e1c9d03 100644 --- a/src/packs/items/weapons/weapon_Shortsword_cjGZpXCoshEqi1FI.json +++ b/src/packs/items/weapons/weapon_Shortsword_cjGZpXCoshEqi1FI.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "VS5Gc43b6SmYuaVF", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [ @@ -148,7 +142,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1755268286534, + "modifiedTime": 1755268292662, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!items.effects!cjGZpXCoshEqi1FI.djNtNpasgNDRP8Dd" } @@ -159,5 +161,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753741549716, + "modifiedTime": 1755268286538, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_key": "!items!cjGZpXCoshEqi1FI" } diff --git a/src/packs/items/weapons/weapon_Siphoning_Gauntlets_1N1jggda5DfdzdMj.json b/src/packs/items/weapons/weapon_Siphoning_Gauntlets_1N1jggda5DfdzdMj.json index 0eb65689..fcadecf6 100644 --- a/src/packs/items/weapons/weapon_Siphoning_Gauntlets_1N1jggda5DfdzdMj.json +++ b/src/packs/items/weapons/weapon_Siphoning_Gauntlets_1N1jggda5DfdzdMj.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836075703, + "modifiedTime": 1753836131553, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!1N1jggda5DfdzdMj" } diff --git a/src/packs/items/weapons/weapon_Sledge_Axe_OxsEmffWriiQmqJK.json b/src/packs/items/weapons/weapon_Sledge_Axe_OxsEmffWriiQmqJK.json index b5ffe457..b37a1027 100644 --- a/src/packs/items/weapons/weapon_Sledge_Axe_OxsEmffWriiQmqJK.json +++ b/src/packs/items/weapons/weapon_Sledge_Axe_OxsEmffWriiQmqJK.json @@ -80,7 +80,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -135,7 +134,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -156,11 +155,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [ @@ -190,7 +184,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835076783, + "modifiedTime": 1753835076783, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!OxsEmffWriiQmqJK.dhhIibfRBwCGZ6Ab" } @@ -201,5 +203,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835064119, + "modifiedTime": 1753835089195, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!OxsEmffWriiQmqJK" } diff --git a/src/packs/items/weapons/weapon_Small_Dagger_wKklDxs5nkzILNp4.json b/src/packs/items/weapons/weapon_Small_Dagger_wKklDxs5nkzILNp4.json index 5b63acd7..1a11cab5 100644 --- a/src/packs/items/weapons/weapon_Small_Dagger_wKklDxs5nkzILNp4.json +++ b/src/packs/items/weapons/weapon_Small_Dagger_wKklDxs5nkzILNp4.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "AVjlF2Mv5AMDflgy", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1755268300195, + "modifiedTime": 1755268300195, + "lastModifiedBy": "VZIeX2YDvX338Zvr" }, "_key": "!items.effects!wKklDxs5nkzILNp4.HKh73AHxImdgxgTg" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.4", + "createdTime": 1753744141625, + "modifiedTime": 1755268300204, + "lastModifiedBy": "VZIeX2YDvX338Zvr" + }, "_key": "!items!wKklDxs5nkzILNp4" } diff --git a/src/packs/items/weapons/weapon_Spear_TF85tKJetUjLwh54.json b/src/packs/items/weapons/weapon_Spear_TF85tKJetUjLwh54.json index ea217ad9..77ba9a93 100644 --- a/src/packs/items/weapons/weapon_Spear_TF85tKJetUjLwh54.json +++ b/src/packs/items/weapons/weapon_Spear_TF85tKJetUjLwh54.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,19 +92,64 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, - "effects": [], + "effects": [ + { + "name": "Cumbersome", + "description": "-1 to Finesse", + "img": "icons/commodities/metal/mail-plate-steel.webp", + "changes": [ + { + "key": "system.traits.finesse.value", + "mode": 2, + "value": "-1" + } + ], + "_id": "Z5MnVI8EOOgzRdXC", + "type": "base", + "system": {}, + "disabled": false, + "duration": { + "startTime": null, + "combat": null + }, + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828072355, + "modifiedTime": 1753828072355, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, + "_key": "!items.effects!TF85tKJetUjLwh54.Z5MnVI8EOOgzRdXC" + } + ], "sort": 0, "ownership": { "default": 0, "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828035153, + "modifiedTime": 1753828072360, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!TF85tKJetUjLwh54" } diff --git a/src/packs/items/weapons/weapon_Spiked_Bow_O1w8KPYH85ZS8X64.json b/src/packs/items/weapons/weapon_Spiked_Bow_O1w8KPYH85ZS8X64.json index 99faed64..f4f34d63 100644 --- a/src/packs/items/weapons/weapon_Spiked_Bow_O1w8KPYH85ZS8X64.json +++ b/src/packs/items/weapons/weapon_Spiked_Bow_O1w8KPYH85ZS8X64.json @@ -89,7 +89,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryFar", @@ -144,7 +143,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -165,11 +164,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -179,5 +173,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832511150, + "modifiedTime": 1753832558389, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!O1w8KPYH85ZS8X64" } diff --git a/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json b/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json index edadecf9..9b9d691a 100644 --- a/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json +++ b/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "qY9ylkwxFwRlPy6a", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [ @@ -147,7 +141,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1754814481208, + "modifiedTime": 1754814481208, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!vzyzFwLUniWZV1rt.d3TJtlpoHBCztbom" } @@ -158,5 +160,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753794535926, + "modifiedTime": 1754814481212, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!vzyzFwLUniWZV1rt" } diff --git a/src/packs/items/weapons/weapon_Steelforged_Halberd_6bkbw4Ap644KZGvJ.json b/src/packs/items/weapons/weapon_Steelforged_Halberd_6bkbw4Ap644KZGvJ.json index c4730e94..a7d7cd60 100644 --- a/src/packs/items/weapons/weapon_Steelforged_Halberd_6bkbw4Ap644KZGvJ.json +++ b/src/packs/items/weapons/weapon_Steelforged_Halberd_6bkbw4Ap644KZGvJ.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829710295, + "modifiedTime": 1753829730643, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!6bkbw4Ap644KZGvJ" } diff --git a/src/packs/items/weapons/weapon_Swinging_Ropeblade_1jOJHHKdtk3s2jaY.json b/src/packs/items/weapons/weapon_Swinging_Ropeblade_1jOJHHKdtk3s2jaY.json index b8fe04b6..58d4a7c7 100644 --- a/src/packs/items/weapons/weapon_Swinging_Ropeblade_1jOJHHKdtk3s2jaY.json +++ b/src/packs/items/weapons/weapon_Swinging_Ropeblade_1jOJHHKdtk3s2jaY.json @@ -18,6 +18,7 @@ { "key": "hope", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "31XEMDUyjpqFA7H9", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 50, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753835178086, + "modifiedTime": 1753835227169, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!1jOJHHKdtk3s2jaY" } diff --git a/src/packs/items/weapons/weapon_Sword_of_Light___Flame_TVPCWnSELOVBv6G1.json b/src/packs/items/weapons/weapon_Sword_of_Light___Flame_TVPCWnSELOVBv6G1.json index 7a74cf3d..7985574e 100644 --- a/src/packs/items/weapons/weapon_Sword_of_Light___Flame_TVPCWnSELOVBv6G1.json +++ b/src/packs/items/weapons/weapon_Sword_of_Light___Flame_TVPCWnSELOVBv6G1.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836015665, + "modifiedTime": 1753836060729, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!TVPCWnSELOVBv6G1" } diff --git a/src/packs/items/weapons/weapon_Talon_Blades_jlLtgK468rO5IssR.json b/src/packs/items/weapons/weapon_Talon_Blades_jlLtgK468rO5IssR.json index 13542a63..fb6c6f98 100644 --- a/src/packs/items/weapons/weapon_Talon_Blades_jlLtgK468rO5IssR.json +++ b/src/packs/items/weapons/weapon_Talon_Blades_jlLtgK468rO5IssR.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "tSwiEa50USNh6uEJ", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 48, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753832378140, + "modifiedTime": 1753832420169, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!jlLtgK468rO5IssR" } diff --git a/src/packs/items/weapons/weapon_Thistlebow_I1nDGpulg29GpWOW.json b/src/packs/items/weapons/weapon_Thistlebow_I1nDGpulg29GpWOW.json index 65fef12a..cec5b0d1 100644 --- a/src/packs/items/weapons/weapon_Thistlebow_I1nDGpulg29GpWOW.json +++ b/src/packs/items/weapons/weapon_Thistlebow_I1nDGpulg29GpWOW.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1754815251133, + "modifiedTime": 1754815251133, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!I1nDGpulg29GpWOW.G9mMGxBSexwjWTYV" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753836302436, + "modifiedTime": 1754815251135, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!I1nDGpulg29GpWOW" } diff --git a/src/packs/items/weapons/weapon_Tower_Shield_C9aWpK1shVMWP4m5.json b/src/packs/items/weapons/weapon_Tower_Shield_C9aWpK1shVMWP4m5.json index d49b7de7..874dfc5f 100644 --- a/src/packs/items/weapons/weapon_Tower_Shield_C9aWpK1shVMWP4m5.json +++ b/src/packs/items/weapons/weapon_Tower_Shield_C9aWpK1shVMWP4m5.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "h3g8PT67I6xr3xsW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [ @@ -140,7 +134,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753742958195, + "modifiedTime": 1753742958195, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!C9aWpK1shVMWP4m5.8r0TcKWXboFV0eqS" } @@ -151,5 +153,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753742294258, + "modifiedTime": 1753742986604, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!C9aWpK1shVMWP4m5" } diff --git a/src/packs/items/weapons/weapon_Urok_Broadsword_zGm6Wa1fGF6cECY5.json b/src/packs/items/weapons/weapon_Urok_Broadsword_zGm6Wa1fGF6cECY5.json index 708e920f..b1fad87b 100644 --- a/src/packs/items/weapons/weapon_Urok_Broadsword_zGm6Wa1fGF6cECY5.json +++ b/src/packs/items/weapons/weapon_Urok_Broadsword_zGm6Wa1fGF6cECY5.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753829648524, + "modifiedTime": 1753829674190, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!zGm6Wa1fGF6cECY5" } diff --git a/src/packs/items/weapons/weapon_Wand_ItWisJFNGMNWeaCV.json b/src/packs/items/weapons/weapon_Wand_ItWisJFNGMNWeaCV.json index 35fc7866..d990e614 100644 --- a/src/packs/items/weapons/weapon_Wand_ItWisJFNGMNWeaCV.json +++ b/src/packs/items/weapons/weapon_Wand_ItWisJFNGMNWeaCV.json @@ -17,7 +17,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -72,7 +71,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -93,11 +92,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [], @@ -107,5 +101,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753828516647, + "modifiedTime": 1753828537368, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!ItWisJFNGMNWeaCV" } diff --git a/src/packs/items/weapons/weapon_Wand_of_Enthrallment_tP6vmnrmTq2h5sj7.json b/src/packs/items/weapons/weapon_Wand_of_Enthrallment_tP6vmnrmTq2h5sj7.json index f2b2f308..46471b7f 100644 --- a/src/packs/items/weapons/weapon_Wand_of_Enthrallment_tP6vmnrmTq2h5sj7.json +++ b/src/packs/items/weapons/weapon_Wand_of_Enthrallment_tP6vmnrmTq2h5sj7.json @@ -22,6 +22,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -61,7 +62,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -116,7 +116,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -137,11 +137,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [ @@ -171,7 +166,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831397899, + "modifiedTime": 1753831397899, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!tP6vmnrmTq2h5sj7.hrJJzzepVs2BPYf5" } @@ -182,5 +185,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831377291, + "modifiedTime": 1753831408550, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!tP6vmnrmTq2h5sj7" } diff --git a/src/packs/items/weapons/weapon_Wand_of_Essek_ZrRGNjGCgZTTfgDG.json b/src/packs/items/weapons/weapon_Wand_of_Essek_ZrRGNjGCgZTTfgDG.json index 23fb1003..76b82f6a 100644 --- a/src/packs/items/weapons/weapon_Wand_of_Essek_ZrRGNjGCgZTTfgDG.json +++ b/src/packs/items/weapons/weapon_Wand_of_Essek_ZrRGNjGCgZTTfgDG.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "B2LewQYZb9Jhl4A6", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 51, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753836344144, + "modifiedTime": 1753836369996, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!ZrRGNjGCgZTTfgDG" } diff --git a/src/packs/items/weapons/weapon_War_Scythe_z6yEdFYQJ5IzgTX3.json b/src/packs/items/weapons/weapon_War_Scythe_z6yEdFYQJ5IzgTX3.json index e80ddfad..5d65a310 100644 --- a/src/packs/items/weapons/weapon_War_Scythe_z6yEdFYQJ5IzgTX3.json +++ b/src/packs/items/weapons/weapon_War_Scythe_z6yEdFYQJ5IzgTX3.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "6lmY7PMkxI3kmkpb", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 46, - "artist": "" } }, "effects": [ @@ -142,7 +136,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1754814992368, + "modifiedTime": 1754814992368, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!z6yEdFYQJ5IzgTX3.cOYeI9TxHXpDwszu" } @@ -153,5 +155,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.0.0", + "createdTime": 1753829740082, + "modifiedTime": 1754814992370, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!z6yEdFYQJ5IzgTX3" } diff --git a/src/packs/items/weapons/weapon_Warhammer_ZXh1GQahBiODfSTC.json b/src/packs/items/weapons/weapon_Warhammer_ZXh1GQahBiODfSTC.json index 50b1a829..0804236c 100644 --- a/src/packs/items/weapons/weapon_Warhammer_ZXh1GQahBiODfSTC.json +++ b/src/packs/items/weapons/weapon_Warhammer_ZXh1GQahBiODfSTC.json @@ -25,7 +25,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "ZSdAawliPNsoA7nP", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "melee", @@ -80,7 +79,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -101,11 +100,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 45, - "artist": "" } }, "effects": [ @@ -135,7 +129,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753827888899, + "modifiedTime": 1753827888899, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" }, "_key": "!items.effects!ZXh1GQahBiODfSTC.HT0SAlTBGKwolAOp" } @@ -146,5 +148,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753827866228, + "modifiedTime": 1753827888903, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!ZXh1GQahBiODfSTC" } diff --git a/src/packs/items/weapons/weapon_Whip_CmtWqw6DwoePnX7W.json b/src/packs/items/weapons/weapon_Whip_CmtWqw6DwoePnX7W.json index 2e548ab6..b354f5f4 100644 --- a/src/packs/items/weapons/weapon_Whip_CmtWqw6DwoePnX7W.json +++ b/src/packs/items/weapons/weapon_Whip_CmtWqw6DwoePnX7W.json @@ -18,6 +18,7 @@ { "key": "stress", "value": 1, + "keyIsID": false, "scalable": false, "step": null } @@ -54,7 +55,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "AVjlF2Mv5AMDflgy", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "veryClose", @@ -109,7 +109,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -130,11 +130,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 52, - "artist": "" } }, "effects": [], @@ -144,5 +139,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753744226240, + "modifiedTime": 1753808365384, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!CmtWqw6DwoePnX7W" } diff --git a/src/packs/items/weapons/weapon_Widogast_Pendant_8Z5QrThfwkYPXNco.json b/src/packs/items/weapons/weapon_Widogast_Pendant_8Z5QrThfwkYPXNco.json index a03efe6b..743aef06 100644 --- a/src/packs/items/weapons/weapon_Widogast_Pendant_8Z5QrThfwkYPXNco.json +++ b/src/packs/items/weapons/weapon_Widogast_Pendant_8Z5QrThfwkYPXNco.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "8j3yjH0TiwwZsaBW", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "close", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 49, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753833840059, + "modifiedTime": 1753833870464, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!8Z5QrThfwkYPXNco" } diff --git a/src/packs/items/weapons/weapon_Yutari_Bloodbow_0XpSBYXxtywvBFQi.json b/src/packs/items/weapons/weapon_Yutari_Bloodbow_0XpSBYXxtywvBFQi.json index d07a986e..f096cbc4 100644 --- a/src/packs/items/weapons/weapon_Yutari_Bloodbow_0XpSBYXxtywvBFQi.json +++ b/src/packs/items/weapons/weapon_Yutari_Bloodbow_0XpSBYXxtywvBFQi.json @@ -47,7 +47,6 @@ "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", "_id": "YHE291ruSIJAh44F", - "baseAction": true, "systemPath": "attack", "type": "attack", "range": "far", @@ -102,7 +101,7 @@ "includeBase": false }, "description": "", - "chatDisplay": false, + "chatDisplay": true, "actionType": "action", "cost": [], "uses": { @@ -123,11 +122,6 @@ "trait": null } } - }, - "attribution": { - "source": "Daggerheart SRD", - "page": 47, - "artist": "" } }, "effects": [], @@ -137,5 +131,16 @@ "FecEtPuoQh6MpjQ0": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1753831267751, + "modifiedTime": 1753831296579, + "lastModifiedBy": "FecEtPuoQh6MpjQ0" + }, "_key": "!items!0XpSBYXxtywvBFQi" } diff --git a/src/packs/journals/journal_Daggerheart_SRD_uNs7ne9VCbbu5dcG.json b/src/packs/journals/journal_Daggerheart_SRD_uNs7ne9VCbbu5dcG.json index 944467eb..ece610c0 100644 --- a/src/packs/journals/journal_Daggerheart_SRD_uNs7ne9VCbbu5dcG.json +++ b/src/packs/journals/journal_Daggerheart_SRD_uNs7ne9VCbbu5dcG.json @@ -125,7 +125,7 @@ "image": {}, "text": { "format": 1, - "content": "

FLOW OF THE GAME

Daggerheart is a conversation. The GM describes fictional scenarios involving the PCs, and the players take turns describing how their characters react. The goal of every person at the table is to build upon everyone else’s ideas and collaboratively tell a satisfying story. The system facilitates this collaborative process by providing structure to the conversation and mechanics for resolving moments of tension where fate or fortune determine the outcome of events.

PLAYER PRINCIPLES & BEST PRACTICES

To get the most out of Daggerheart, we recommend players keep the following principles and practices in mind throughout each session:

PRINCIPLES

  • Be a fan of your character and their journey.

  • Spotlight your friends.

  • Address the characters and address the players.

  • Build the world together.

  • Play to find out what happens.

  • Hold on gently.

BEST PRACTICES

  • Embrace danger.

  • Use your resources.

  • Tell the story.

  • Discover your character.

For more information, see the Daggerheart Core Rulebook, pages 9 and 108.

CORE GAMEPLAY LOOP

The core gameplay loop is the procedure that drives every scene, both in and out of combat:

STEP 1: SET THE SCENE

The GM describes a scenario, establishing the PCs’ surroundings and any dangers, NPCs, or other important details the characters would notice.

STEP 2: ASK AND ANSWER QUESTIONS

The players ask clarifying questions to explore the scene more deeply and gather information that could inform their characters’ actions. The GM responds to these questions by giving the players information their characters could easily obtain, or by asking questions of their own to the players. The players also respond to any questions the GM poses to them.

In this way, the table builds out the fiction collaboratively.

STEP 3: BUILD ON THE FICTION

As the scene develops, the players find opportunities to take actionβ€”problems to solve, obstacles to overcome, mysteries to investigate, and so on. The players describe how their characters proceed; if their proposed actions carry no chance of failure (or if failure would be boring), they automatically succeed. But if the outcome of their action is unknown, the GM calls for an action roll. Either way, the table works the outcome into the story and moves the fiction forward, narrating how the PC’s actions have changed things.

STEP 4: GO BACK TO STEP 1

The process repeats from the beginning, with the GM relaying any updated details or material changes to the players. This process continues until the end of the scene is triggered by a mechanic or arrives organically.

THE SPOTLIGHT

The spotlight is a symbol that represents the table’s attentionβ€”and therefore the immediate focus of both the narrative and the game mechanics. Any time a character or player becomes the focus of a scene, they β€œare in the spotlight” or β€œhave the spotlight.”

The spotlight moves around the table organically as scenes unfold unless a mechanical trigger determines where the spotlight goes next. For example, when a player fails an action roll, the mechanics prompt the GM to seize the spotlight and make a GM move.

TURN ORDER & ACTION ECONOMY

Daggerheart’s turns don’t follow a traditional, rigid format:
there is no explicit initiative mechanic and characters don’t have a set number of actions they can take or things they can do before the spotlight passes to someone else. A player with the spotlight describes what their character does and the spotlight simply swings to whoever:

  1. the fiction would naturally turn it toward

  2. hasn’t had the focus in a while, or

  3. a triggered mechanic puts it on


Optional: Spotlight Tracker Tool

If your group prefers a more traditional action economy, you can use tokens to track how many times a player has had the spotlight: At the start of a session or scene, each player adds a certain number of tokens (we recommend 3) to their character sheet and removes a token each time they take an action. If the spotlight would swing to someone without any tokens, it swings to someone else instead. Once every player has used all their available tokens, players refill their character sheet with the same number of tokens as before, then continue playing.


MAKING MOVES & TAKING ACTION

Any time a character does something to advance the story, such as speaking with another character, interacting with the environment, making an attack, casting a spell, or using a class feature, they are making a move.

ACTION ROLLS

Any move where success would be trivial or failure would be boring automatically succeeds, but any move that’s difficult to accomplish or risky to attempt triggers an action roll.

OVERVIEW

All action rolls require a pair of d12s called Duality Dice.

These are two visually distinct twelve-sided dice, with one die representing Hope and the other representing Fear.

To make an action roll, you roll the Duality Dice, sum the results, apply any relevant modifiers, and compare the total to a Difficulty number to determine the outcome:

  • Success with Hope: If your total meets or beats the difficulty AND your Hope Die shows a higher result than your Fear Die, you rolled a β€œSuccess with Hope.” You succeed and gain a Hope.

  • Success with Fear: If your total meets or beats the Difficulty AND your Fear Die shows a higher result than your Hope Die, you rolled a β€œSuccess with Fear.” You succeed with a cost or complication, but the GM gains a Fear.

  • Failure with Hope: If your total is less than the Difficulty AND your Hope Die shows a higher result than your Fear Die, you rolled a β€œFailure with Hope.” You fail with a minor consequence and gain a Hope, then the spotlight swings to the GM.

  • Failure with Fear: If your total is less than the Difficulty AND your Fear Die shows a higher result than your Hope Die, you rolled a β€œFailure with Fear.” You fail with a major consequence and the GM gains a Fear, then the spotlight swings to the GM.

  • Critical Success: If the Duality Dice show matching results, you rolled a β€œCritical Success” (β€œCrit”). You automatically succeed with a bonus, gain a Hope, and clear a Stress. If this was an attack roll, you deal critical damage.

Note: A Critical Success counts as a roll β€œwith Hope.”

After resolving the action roll, the table works together to weave the outcome into the narrative and play continues.

FAILING FORWARD

In Daggerheart, every time you roll the dice, the scene changes in some way. There is no such thing as a roll where β€œnothing happens,” because the fiction constantly evolves based on the successes and failures of the characters.

PROCEDURE

The following steps describe in more detail the procedure that all action rolls utilize:

STEP 1: PICK AN APPROPRIATE TRAIT

Some actions and effects specify in their description which trait applies to the roll; otherwise, the GM tells the acting player which character trait best applies to the action being attempted. If more than one trait could apply to the roll, the GM chooses or lets the acting player decide.

STEP 2: DETERMINE THE DIFFICULTY

Some actions and features say in their description what the Difficulty is. Otherwise, the GM determines the Difficulty based on the scenario. The GM can choose whether to share the Difficulty with the table. In either case, the GM should communicate the potential consequences of failure to the acting player.

STEP 3: APPLY EXTRA DICE AND MODIFIERS

The acting player decides whether to Utilize an Experience or activate other effects, then, if applicable, adds the appropriate tokens and dice (such as advantage or Rally dice) to their dice pool.


Note: Unless an action, ability, or feature specifically allows for it, a player must declare the use of any Experiences, extra dice, or other modifiers before they roll.


STEP 4: ROLL THE DICE

The acting player rolls their entire dice pool and announces the results in the format of β€œ[total result] with [Hope/Fear]”— or β€œCritical Success!” in the case of matching Duality Dice.


Example: A player is making an action roll with a +1 in the relevant trait and no other modifiers; they roll the Duality Dice and get a result of 5 on their Hope Die and 7 on their Fear Die, then announce β€œI rolled a 13 with Fear!”


STEP 5: RESOLVE THE OUTCOME

The active player and the GM work together, along with the suggestions and support of the rest of the table, to resolve the outcome of the action.

GM MOVES AND ADVERSARY ACTIONS

GMs also make moves. They should consider making a move when a player does one of the following things:

  • Rolls with Fear on an action roll.

  • Fails an action roll.

  • Does something that would have consequences.

  • Gives them a golden opportunity.

  • Looks to them for what happens next.

After the GM turn is done, the spotlight goes back to the PCs.

Many adversaries and environments have Fear Features, especially powerful or consequential moves that the GM must spend Fear to activate.


Note: This Fear is in addition to any Fear the GM has previously spent to seize the spotlight or activate another action or ability.


ADVERSARY ACTIONS

When play passes to the GM, the GM can make a GM move to spotlight an adversary. A spotlighted adversary can:

  • Move within Close range and make a standard attack

  • Move within Close range and use an adversary action

  • Clear a condition

  • Sprint within Far or Very Far range on the battlefield

  • Do anything else the fiction demands or the GM deems appropriate

The GM can spend additional Fear to spotlight additional adversaries. Once the GM has finished, the spotlight swings back to the PCs.

SPECIAL ROLLS

Some rolls have unique specifications or otherwise modify the action roll procedure: trait rolls, Spellcast Rolls, attack rolls, and damage rolls. Unless otherwise noted, you can apply any bonus, modifier, or effect to a special roll as if it were a standard action roll.

TRAIT ROLLS

An action roll that specifies which character trait applies to it is called a trait roll. In the text of a feature or effect, a trait roll is referenced with the format β€œ[Trait] Roll (Difficulty)” (e.g., β€œAgility Roll (12)”). If the text of an effect doesn’t specify a trait roll’s Difficulty, the GM sets the Difficulty based on the circumstances.

Features and effects that affect a trait roll also affect any action roll that uses the same trait, including attack rolls, Spellcast rolls, and standard action rolls.


Example: The katari’s ancestry feature β€œFeline Instincts,” which allows the katari to reroll an Agility Roll, can also be used on a standard action roll using Agility to traverse dangerous terrain or on an attack roll made with a weapon that uses Agility.


SPELLCAST ROLLS

Spellcast Rolls are trait rolls that require you to use your Spellcast trait. Your Spellcast trait, if you have one, is determined by your subclass.

Spellcast Rolls are only made when a character uses a feature that requires one. A successful Spellcast Roll activates the effect as described by the feature.


Notes: A Spellcast Roll that can damage a target is also considered an attack roll.

When you cast a spell, the text tells you when the effect ends. The GM can spend a Fear to end a temporary effect. If your spell doesn’t specify when it ends, it ends when you choose or at a natural moment of the story. You can choose to end your spell early.

You can cast and maintain the effects of more than one spell at the same time.


REACTION ROLLS

A reaction roll is made in response to an attack or a hazard, representing a character’s attempt to avoid or withstand an imminent effect.

Reaction rolls work like action rolls, except they don’t generate Hope or Fear, don’t trigger additional GM moves, and other characters can’t aid you with Help an Ally.

If you critically succeed on a reaction roll, you don’t clear a Stress or gain a Hope, but you do ignore any effects that would have impacted you on a success, such as taking damage or marking Stress.

GROUP ACTION ROLLS

When multiple PCs take action together, the party chooses one PC to lead the action. Each other player then describes how their character collaborates on the task. The leader makes an action roll as usual, while the other players make reaction rolls using whichever traits they and the GM decide fit best.

The lead character gains a +1 bonus to their lead action roll for each of these reaction rolls that succeeded and a βˆ’1 penalty for each these reaction rolls that failed.

TAG TEAM ROLLS

Each player can, once per session, initiate a Tag Team Roll between their character and another PC by spending 3 Hope. The players work with one another to describe how they combine their actions in a unique and exciting way. Both players make separate action rolls; before resolving the roll’s outcome, choose one of the rolls to apply to both actions. On a roll with Hope, all PCs involved gain a Hope. On a roll with Fear, the GM gains a Fear token for each PC involved.

On a successful Tag Team attack roll, both players roll damage and add the totals together to determine the damage dealt, which is then treated as if it came from a single source. If the attacks deal different types of damage, the players choose which type to deal.


Notes:

A Tag Team Roll counts as a single action roll for the purposes of any countdowns or features that track action rolls.

Though each player may only initiate one Tag Team Roll per session, one PC can be involved in multiple Tag Team Rolls.


ADVANTAGE & DISADVANTAGE

Some features and effects let you roll with advantage or disadvantage on an action or reaction roll:

  • Advantage represents an opportunity that you seize to increase your chances of success. When you roll with advantage, you roll a d6 advantage die with your dice pool and add its result to your total.

  • Disadvantage represents an additional difficulty, hardship, or challenge you face when attempting an action. When you roll with disadvantage, you roll a d6 disadvantage die with your dice pool and subtract its result from your total.

Advantage or disadvantage can be granted or imposed by mechanical triggers or at the GM’s discretion. When a PC aids you with Help an Ally, they roll their own advantage die and you add it to your total.

Advantage and disadvantage dice cancel each out, one-for-one, when they would be added to the same dice pool, so you’ll never roll both at the same time. If you have advantage or disadvantage from other sources that don’t affect your own dice pool, such as another player’s Help an Ally move, their effects stack with your rolled results.

HOPE & FEAR

Hope and Fear are metacurrencies representing the cosmic forces that shape the events of your table’s story. Hope powers PC abilities and features, while Fear powers the abilities of the GM and the adversaries and environments they control.

HOPE

Every PC starts with 2 Hope at character creation and gains more throughout play. A PC can have a maximum of 6 Hope at one time, and Hope carries over between sessions.

Players can spend Hope to:

  • Help an Ally

    When you Help an Ally who is making an action roll, describe how you do so and roll an advantage die. Multiple players can spend Hope to help the same acting player, but that player only adds the highest result to their final total.

  • Utilize an Experience

    When you Utilize an Experience on a relevant roll, add its modifier to the result. You can spend multiple Hope to utilize multiple Experiences.

  • Initiate a Tag Team Roll

    Spend 3 Hope to initiate a Tag Team roll, combining the actions of two PCs into one impressive act of synergy. When you make a Tag Team roll, both players roll their action rolls and then choose which set of results to apply to the outcome.

  • Activate a Hope Feature

    A Hope Feature is any effect that allows (or requires) you to spend a specified amount of Hope to activate it. Class Hope features are class-specific features, detailed on your character sheet, that cost 3 Hope to activate


Note: When using a Hope Feature, if you rolled with Hope for that action, the Hope you gain from that roll can be spent on that feature (or toward it, if it requires spending multiple Hope).


FEAR

The GM gains Fear whenever a player rolls with Fear and can spend Fear at any time to make or enhance a GM move or to use a Fear Feature. The GM can have up to 12 Fear at one time. Fear carries over between sessions.

COMBAT

Though Daggerheart relies on the same flow of collaborative storytelling in and out of combat, physical conflicts rely more heavily on several key mechanics related to attacking, maneuvering, and taking damage.

EVASION

Evasion represents a character’s ability to avoid attacks and other unwanted effects. Any roll made against a PC has a Difficulty equal to the target’s Evasion. A PC’s base Evasion is determined by their class, but can be modified by domain cards, equipment, conditions, and other effects.


Note: attacks rolled against adversaries use the target’s Difficulty instead of Evasion.


HIT POINTS & DAMAGE THRESHOLDS

Hit Points (HP) represent a character’s ability to withstand physical injury. When a character takes damage, they mark 1 to 3 HP, based on their damage thresholds:

  • If the final damage is at or above the character’s Severe damage threshold, they mark 3 HP.

  • If the final damage is at or above the character’s Major damage threshold but below their Severe damage threshold, they mark 2 HP.

  • If the final damage is below the character’s Major damage threshold, they mark 1 HP.

  • If incoming damage is ever reduced to 0 or less, no HP is marked.

A PC’s damage thresholds are calculated by adding their level to the listed damage thresholds of their equipped armor. A PC’s starting HP is based on their class, but they can gain additional Hit Points through advancements, features, and other effects.

An adversary’s Damage Thresholds and HP are listed in their stat blocks.

When a character marks their last Hit Point, they fall. If a PC falls, they make a death move.

Characters can clear Hit Points by taking downtime moves (see: Downtime) or by activating relevant special abilities or effects.


Optional Rule: Massive Damage

If a character ever takes damage equal to twice their Severe threshold, they mark 4 HP instead of 3.


STRESS

Stress represents how much mental, physical, and emotional strain a character can endure. Some special abilities or effects require the character activating them to mark Stress, and the GM can require a PC to mark Stress as a GM move or to represent the cost, complication, or consequence of an action roll.

When a character marks their last Stress, they become Vulnerable (see: Conditions) until they clear at least 1 Stress.

When a character must mark 1 or more Stress but can’t, they mark 1 HP instead. A character can’t use a move that requires them to mark Stress if all of their Stress is marked.

PCs can clear Stress by making downtime moves (see: Downtime). A PC’s maximum Stress is determined by their class, but they can increase it through advancements, abilities, and other effects.

ATTACKING

ATTACK ROLLS

An attack roll is an action roll intended to inflict harm. The trait that applies to an attack roll is specified by the weapon or spell being used. Unarmed attack rolls use either Strength or Finesse (GM’s choice). An attack roll’s Difficulty, unless otherwise noted, is equal to the Difficulty score of its target.

DAMAGE ROLLS

On a successful attack, roll damage. Damage is calculated from the damage roll listed in the attack’s description with the format β€œxdy+[modifier]” (e.g., for a spell that inflicts β€œ1d8+2” damage, you roll an eight-sided and add 2 to the result; the damage dealt is equal to the total).

Any time an effect says to deal damage using your Spellcast trait, you roll a number of dice equal to your Spellcast trait.


Note: If your Spellcast trait is +0 or lower, you don’t roll anything.


For weapons, the number of damage dice you roll is equal to your Proficiency. Note that your Proficiency multiplies the number of dice you roll, but doesn’t affect the modifier. For example, a PC with Proficiency 2 and wielding a weapon with adamage rating of β€œd8+2” deals damage equal to β€œ2d8+2” on a successful attack.

Successful unarmed attacks inflict [Proficiency]d4 damage.

CRITICAL DAMAGE

When you get a critical success (i.e., you roll matching values on your Duality Dice) on an attack roll, you deal extra damage.

Make the damage roll as usual, but add the maximum possible result of the damage dice to the final total. For instance, if an attack would normally deal 2d8+1 damage, a critical success would deal 2d8+1+16.

DAMAGE TYPES

There are two damage types: physical damage (phy) and magic damage (mag). Unless stated otherwise, mundane weapons and unarmed attacks deal physical damage, and spells deal magic damage.

RESISTANCE, IMMUNITY, AND DIRECT DAMAGE

If a target has resistance to a damage type, then they reduce incoming damage of that type by half before comparing it to their Hit Point Thresholds. If the target has additional ways of reducing incoming damage, such as marking Armor Slots, they apply the resistance effect first. The effects of multiple resistances to the same damage type do not stack.

If a target has immunity to a damage type, they ignore incoming damage of that type.

If an attack deals both physical and magic damage, a character can only benefit from resistance or immunity if they are resistant or immune to both damage types.

Direct damage is damage that can’t be reduced by marking Armor Slots.

MULTI-TARGET ATTACK ROLLS

If a spell or ability allows you to target multiple adversaries, make one attack roll and one damage roll, then apply the results to each target individually.

MULTIPLE DAMAGE SOURCES

Damage dealt simultaneously from multiple sources is always totaled before it’s compared to its target’s damage thresholds.


For example, if a PC with orc ancestry makes a successful attack against a target in Melee range and decides to spend a Hope to use their β€œTusks” feature (which gives them an extra 1d6 damage on a damage roll), they would roll their normal weapon damage and add a d6 to the result, then deal that total damage to the adversary.


MAPS, RANGE, AND MOVEMENT

You can play Daggerheart using β€œtheater of the mind” or maps and miniatures. The conversions below from abstract ranges to physical measurements assume 1 inch of map represents about 5 feet of fictional space.

Daggerheart uses the following ranges to translate fictional positioning into relative distance for the purposes of targeting, movement, and other game mechanics:

  • Melee: Close enough to touch, up to a few feet away.

  • Very Close: Close enough to see fine details, about 5–10 feet away. While in danger, a character can move, as part of their action, from Very Close range into Melee range. On a map: anything within the shortest length of a game card (2-3 inches).

  • Close: Close enough to see prominent details, about 10–30 feet away. While in danger, a character can move, as part of their action, from Close range into Melee range. On a map: anything within the length of a pencil (5-6 inches).

  • Far: Close enough to see very little detail, about 30–100 feet away. While in danger, a character must make an Agility Roll to safely move from Far range into Melee range. On a map: anything within the length of the long edge of a piece of copy paper (11–12 inches).

  • Very Far: Too far to make out any details, about 100–300 feet away. While in danger, a character must make an Agility Roll to safely move from Very Far range into Melee range. On a map: anything beyond Far range, but still within the bounds of the conflict or scene.

  • Out of Range: Anything beyond a character’s Very Far range is Out of Range and usually can’t be targeted.

Range is measured from the source of an effect, such as the attacker or spellcaster, to the target or object of an effect.

A weapon, spell, ability, item, or other effect’s stated range is a maximum range; unless otherwise noted, it can be used at closer distances.


Optional Rule: Defined Ranges

If your table would rather operate with more precise range rules, you can use a 1-inch grid battle map during combat.

If you do, use the following guidelines for play:

  • Melee: 1 square

  • Very Close: 3 squares

  • Close: 6 squares

  • Far: 12 squares

  • Very Far: 13+ squares

  • Out of Range: Off the battlemap


MOVEMENT UNDER PRESSURE

When you’re under pressure or in danger and make an action roll, you can move to a location within Close range as part of that action. If you’re not already making an action roll, or if you want to move farther than your Close range, you need to succeed on an Agility Roll to safely reposition yourself.

An adversary can move within Close range for free as part of an action, or within Very Far range as a separate action.

AREA OF EFFECT

Unless stated otherwise, all the targets of a group effect must be within Very Close range of a single origin point within your effect’s range.

LINE OF SIGHT & COVER

Unless stated otherwise, a ranged attacker must have line of sight to their intended target to make an attack roll. If a partial obstruction lies between the attacker and target, the target has cover. Attacks made through cover are rolled with disadvantage. If the obstruction is total, there is no line of sight.

CONDITIONS

Conditions are effects that grant specific benefits or drawbacks to the target they are attached to.

STANDARD CONDITIONS

Daggerheart has three standard conditions:

HIDDEN

While you’re out of sight from all enemies and they don’t otherwise know your location, you gain the Hidden condition. Any rolls against a Hidden creature have disadvantage. After an adversary moves to where they would see you, you move into their line of sight, or you make an attack, you are no longer Hidden.

RESTRAINED

Restrained characters can’t move, but you can still take actions from their current position.

VULNERABLE

When a creature is Vulnerable, all rolls targeting them have advantage.

Some features can apply special or unique conditions, which work as described in the feature text.

Unless otherwise noted, the same condition can’t be applied more than once to the same target.

TEMPORARY TAGS & SPECIAL CONDITIONS

The temporary tag denotes a condition or effect that the affected creature can clear by making a move against it. When an affected PC makes a move to clear a temporary condition or effect, it normally requires a successful action roll using an appropriate trait. When an affected adversary makes a move to clear a temporary condition or effect, the GM puts the spotlight on the adversary and describes how they do it; this doesn’t require a roll but it does use up that adversary’s spotlight.

Special conditions are only cleared when specific requirements are met, such as completing a certain action or using a particular item. The requirements for clearing these conditions are stated in the text of the effect that applies the condition.

DOWNTIME

Between conflicts, the party can take a rest to recover expended resources and deepen their bonds. During a rest, each PC can make up to two downtime moves.

When the party rests, they must choose between a short rest and a long rest. If a party takes three short rests in a row, their next rest must be a long rest.

If a short rest is interrupted, such as by an adversary's attack, the characters don’t gain its benefits. If a long rest is interrupted, the characters only gain the benefits of a short rest.

A short rest lasts enough time for the party to catch its breath, about an hour in-world. Each player can move domain cards between their loadout and vault for free, then choose twice from the following list of downtime moves (players can choose the same move twice):

  • Tend to Wounds: Clear 1d4+Tier Hit Points for yourself or an ally.

  • Clear Stress: Clear 1d4+Tier Stress.

  • Repair Armor: Clear 1d4+Tier Armor Slots from your or an ally’s armor.

  • Prepare: Describe how you prepare yourself for the path ahead, then gain a Hope. If you choose to Prepare with one or more members of your party, you each gain 2 Hope.

At the end of a short rest, any features or effects with a limited number of uses per rest refresh and any features or effects that last until your next rest expire.

A long rest is when the characters make camp and relax or sleep for several in-game hours. Each player can move domain cards between their loadout and vault for free, then choose twice from the following list of downtime moves (players can choose the same move twice):

  • Tend to All Wounds: Clear all Hit Points for yourself or an ally.

  • Clear All Stress: Clear all Stress.

  • Repair All Armor: Clear all Armor Slots from your or an ally’s armor

  • Prepare: Describe how you prepare for the next day’s adventure, then gain a Hope. If you choose to Prepare with one or more members of your party, you each gain 2 Hope.

  • Work on a Project: With GM approval, a PC may pursue a long-term project, such as deciphering an ancient text or crafting a new weapon. The first time they start a new project, assign it a countdown. Each time a PC makes the Work on a Project move, they either advance their project’s countdown automatically or make an action roll to advance it (GM’s choice).

At the end of a long rest, any features or effects with a limited number of uses per rest or per long rest refresh and any features or effects that last until your next rest or until your next long rest expire.

DOWNTIME CONSEQUENCES

On a short rest, the GM gains 1d4 Fear. On a long rest, they gain Fear equal to 1d4 + the number of PCs, and they can advance a long-term countdown of their choice.

DEATH

When a PC marks their last Hit Point, they must make a death move by choosing one of the following options:

  • Blaze of Glory: Your character embraces death and goes out in a blaze of glory. Take one final action. It automatically critically succeeds (with GM approval), and then you cross through the veil of death.

  • Avoid Death: Your character avoids death and faces the consequences. They temporarily drop unconscious, and then you work with the GM to describe how the situation worsens. While unconscious, your character can’t move or act, and they can’t be targeted by an attack. They return to consciousness when an ally clears 1 or more of their marked Hit Points or when the party finishes a long rest. After your character falls unconscious, roll your Hope Die. If its value is equal to or less than your character’s level, they gain a scar: permanently cross out a Hope slot and work with the GM to determine its lasting narrative impact and how, if possible, it can be restored. If you ever cross out your last Hope slot, your character’s journey ends.

  • Risk It All: Roll your Duality Dice. If the Hope Die is higher, your character stays on their feet and clears a number of Hit Points or Stress equal to the value of the Hope Die (you can divide the Hope Die value between Hit Points and Stress however you’d prefer). If the Fear Die is higher, your character crosses through the veil of death. If the Duality Dice show matching results, your character stays up and clears all Hit Points and Stress.

If your character dies, work with the GM before the next session to create a new character at the current level of the rest of the party.

ADDITIONAL RULES

The following rules apply to many aspects of the game.

ROUNDING UP

This game doesn’t use fractions; if you need to round to a whole number, round up unless otherwise specified. When in doubt, resolve any ambiguity in favor of the PCs.

REROLLING DICE

When a feature allows you to reroll a die, you always take the new result unless the feature specifically says otherwise.

INCOMING DAMAGE

Incoming damage means the total damage from a single attack or source, before Armor Slots are marked.

SIMULTANEOUS EFFECTS

If the resolution order of multiple effects is unclear, the person in control of the effects (player or GM) decides what order to resolve them in.

STACKING EFFECTS

Unless stated otherwise, all effects beside conditions and advantage/disadvantage can stack.

ONGOING SPELL EFFECTS

If an effect doesn’t have a listed mechanical expiration, it only ends when decided by the controlling player, the GM, or the demands of the fiction.

SPENDING RESOURCES

Unless an effect states otherwise, you can’t spend Hope or mark Stress multiple times on the same feature to increase or repeat its effects on the same roll.

USING FEATURES AFTER A ROLL

If a feature allows you to affect a roll after the result has been totaled, you can use it after the GM declares whether the roll succeeds or fails, but not after the consequences unfold or another roll is made.

LEVELING UP

Your party levels up whenever the GM decides you’ve reached a narrative milestone (usually about every 3 sessions). All party members level up at the same time.

Daggerheart has 10 PC levels divided into 4 tiers:


β†’ Tier 1 encompasses level 1 only.

β†’ Tier 2 encompasses levels 2–4.

β†’ Tier 3 encompasses levels 5–7.

β†’ Tier 4 encompasses levels 8–10.


Your tier affects your damage thresholds, tier achievements, and access to advancements.

STEP ONE: TIER ACHIEVEMENTS

Take any applicable tier achievements

  • At level 2, you gain a new Experience at +2 and permanently increase your Proficiency by 1.

  • At level 5, you gain a new Experience at +2, permanently increase your Proficiency by 1, and clear any marked traits.

  • At level 8, you gain a new Experience at +2, permanently increase your Proficiency by 1, and clear any marked traits.

STEP TWO: ADVANCEMENTS

Choose any two advancements with at least one unmarked slot from your tier or below. Options with multiple slots can be chosen more than once. When you choose an advancement, mark one of its slots.

  • When you choose to increase two unmarked character traits and mark them: Choose two unmarked character traits and gain a permanent +1 bonus to them. You can’t increase these stats again until the next tier (when your tier achievement allows you to clear those marks).

  • When you choose to permanently add 1 or more Hit Point slots: Darken the outline of the next rectangle in the Hit Point section of your character sheet in pen or permanent marker.

  • When you choose to permanently add 1 or more Stress slots: Darken the outline of the next rectangle in the Stress section of your character sheet in pen or permanent marker.

  • When you choose to increase your Experience: Choose two Experiences on your character sheet and gain a permanent +1 bonus to both.

  • When you take an additional domain card: You can choose an additional domain card at or below your level or from your class’s domains. If you’ve multiclassed, you can instead select a card at or below half your level from your chosen multiclass domain.

  • When you choose to increase your Evasion: Gain a permanent +1 bonus to your Evasion.

  • When you choose to take an upgraded subclass card: Take the next card for your subclass. If you have only the foundation card, take a specialization; if you have a specialization already, take a mastery. Then cross out this tier’s multiclass option.

  • When you choose to increase your Proficiency: Fill in one of the open circles in the β€œProficiency” section of your character sheet, then increase your weapon’s number of damage dice by 1. The black box around this advancement’s slots indicates you must spend two advancements and mark both level-up slots in order to take it as an option.

  • When you choose to multiclass: Choose an additional class, select one of its domains, and gain its class feature. Add the appropriate multiclass module to your character sheet and take the foundation card from one of its subclasses. Then cross out the β€œupgraded subclass” advancement option in this tier and all other β€œmulticlass” advancement options on your character sheet. The black box around this advancement’s slots indicates you must spend two advancements and mark both level-up slots in order to take it as an option.

STEP THREE: DAMAGE THRESHOLDS

Increase all damage thresholds by 1.

STEP FOUR: DOMAIN CARDS

Acquire a new domain card at your level or lower from one of your class’s domains and add it to your loadout or vault. If your loadout is already full, you can’t add the new card to it until you move another into your vault. You can also exchange one domain card you’ve previously acquired for a different domain card of the same level or lower.

MULTICLASSING

Starting at level 5, you can choose multiclassing as an option when leveling up. When you multiclass, you choose an additional class, gain access to one of its domains, and acquire its class feature. Take the appropriate multiclass module and add it to the right side of your character sheet, then choose a foundation card from one of its subclasses. If your foundation cards specify different Spellcast traits, you can choose which one to apply when making a Spellcast roll.

Whenever you have the option to acquire a new domain card, you can choose from cards at or below half your current level (rounded up) from the domain you chose when you selected the multiclass advancement.

EQUIPMENT

Your equipped weapons and armor are the ones listed in the β€œActive Weapons” and β€œActive Armor” sections of your character sheet. Your character can only attack with weapons, benefit from armor, and gain features from items they have equipped. You can’t equip weapons or armor with a higher tier than you.

PCs can carry up to two additional weapons in the β€œInventory Weapon” areas of the character sheet.

You can swap an Inventory Weapon with an Active Weapon at no cost during a rest or moment of calm; otherwise, you must mark a Stress to do so.

Your character can only have one Active Armor at a time.

They can’t equip armor while in danger or under pressure; otherwise, they can equip or unequip armor without cost.

Each armor has its own Armor Slots; if your character unequips their armor, track how many of its Armor Slots are marked. You can't carry armor in your inventory. When your character equips or unequips armor, recalculate your damage thresholds.

WEAPONS

All weapons have a tier, trait, range, damage die, damage type, and burden. Some weapons also have a feature.

CATEGORY

A weapon’s category specifies whether it is a Primary or Secondary weapon. Your character can only equip up to one weapon of each category at a time.

TRAIT

A weapon’s trait specifies which trait to use when making an attack roll with it.

RANGE

A weapon’s range specifies the maximum distance between the attacker and their target when attacking with it.

DAMAGE

A weapon’s damage indicates the size of the damage dice you roll on a successful attack with it; you roll a number of dice equal to your Proficiency. If the damage includes a flat modifier, this number is added to the total damage rolled, but is not altered or affected by Proficiency.

DAMAGE TYPE

A weapon’s damage type indicates whether it deals physical or magic damage. Weapons that deal magic damage can only be wielded by characters with a Spellcast trait.

BURDEN

A weapon’s burden indicates how many hands it occupies when equipped. Your character’s maximum burden is 2 hands.

FEATURE

A weapon’s feature is a special rule that stays in effect while the weapon is equipped.

You can throw an equipped weapon at a target within Very Close range, making the attack roll with Finesse. On a success, deal damage as usual for that weapon. Once thrown, the weapon is no longer considered equipped. Until you retrieve and re-equip it, you can’t attack with it or benefit from its features.

Combat Wheelchair

By Mark Thompson

The combat wheelchair is a ruleset designed to help you play a wheelchair user in Daggerheart. This section provides mechanics and narrative guidance for you to work from, but feel free to adapt the flavor text to best suit your character. Have fun with your character’s wheelchair design, and make it as unique or tailored to them as you please.

ACTION AND MOVEMENT

When describing how your character moves, you can use descriptions such as the following:

  • β€œI roll over to the door to see if it’s open.”

  • β€œI wheel myself over to the group to ask what’s going on.”

  • β€œI pull my brakes and skid to a halt, turning in my seat to level my bow at the intruder.”

CONSEQUENCES

Here are some ways you might describe complications you encounter when your character uses their wheelchair:

  • β€œI pull my brakes, but I don’t think to account for the loose gravel on the ground.”

  • β€œI hit a patch of ice awkwardly and am sent skidding out past my target.”

  • β€œI go to push off in pursuit, but one of my front caster wheels snags on a crack in the pavement, stalling me for a moment.”

GMs should avoid breaking a character's wheelchair or otherwise removing it from play as a consequence, unless everyone at the table, especially the wheelchair user’s player, gives their approval.

EVASION

Your character is assumed to be skilled in moving their wheelchair and navigating numerous situations in it. As a result, the only wheelchair that gives a penalty to a PC's Evasion is the Heavy Frame model.

BURDEN

All wheelchairs can be maneuvered using one or two hands outside of combat. However, when being used as a weapon, the chair is restricted to requiring one or two hands to perform attacks, depending on the model you’ve chosen. If you’re playing a character who has limited to no mobility in their arms, their wheelchair can be attuned to them by magical means. For example, your character might use a psychic link to guide the chair around like a pseudo-electric wheelchair. All the rules presented here can be tailored and adapted to any character's needs.

CHOOSING YOUR MODEL

All combat wheelchairs are equipped as Primary Weapons.

There are three models of wheelchair available: light, heavy, and arcane. You’re encouraged to consider the type of character you’re playing and the class they belong to, then choose the model that best matches that character concept.

ARMOR

Every armor has a name, base damage thresholds, and a base Armor Score. Some armor also has a feature.

  • An armor’s base armor score indicates how many Armor Slots it provides its wearer before additional bonuses are added to calculate their total Armor Score. A PC’s Armor Score can’t exceed 12.

  • An armor’s base thresholds determine its wearer’s major and severe damage thresholds before adding bonuses to calculate their final damage thresholds.

  • An armor’s feature is a special rule that stays in effect while the armor is equipped.

While unarmored, your character’s base Armor Score is 0, their Major threshold is equal to their level, and their Severe threshold is equal to twice their level.

REDUCING INCOMING DAMAGE

When you take damage, you can mark one Armor Slot to reduce the number of Hit Points you would mark by one. If your character has an Armor Score of 0, you can’t mark Armor Slots. If an effect temporarily increases your Armor Score,

it increases your available Armor Slots by the same amount; when the effect ends, so does the availability of these Armor Slots.

LOOT

Loot comprises any consumables or reusable items the party acquires.

Items can be used until sold, discarded, or lost.

To generate a random item, choose a rarity, roll the designated dice, and match the total to the item in the table:

  • Common: 1d12 or 2d12

  • Rare: 3d12 or 4d12

  • Uncommon: 2d12 or 3d12

  • Legendary: 4d12 or 5d12

@UUID[Compendium.daggerheart.rolltables.RollTable.S61Shlt2I5CbLRjz]{Loot}

CONSUMABLES

Consumables are loot that can only be used once. You can hold up to five of each consumable at a time. Using a consumable doesn’t require a roll unless required by the GM or the demands of the fiction.

To generate a random consumable, choose a rarity, roll the designated dice, and match the total to the item in the table:

  • Common: 1d12 or 2d12

  • Rare: 3d12 or 4d12

  • Uncommon: 2d12 or 3d12

  • Legendary: 4d12 or 5d12

@UUID[Compendium.daggerheart.rolltables.RollTable.tF04P02yVN1YDVel]{Consumables}

GOLD

Gold is an abstract measurement of how much wealth a character has, and is measured in handfuls, bags, and chests, with 10 handfuls to 1 bag, and 10 bags to 1 chest. When you have marked all of the slots in a category and you gain another gold reward in that category, mark a slot in the following category and clear all the slots in the current one.

For example, if you have 9 handfuls and gain another, you instead mark 1 bag and erase all handfuls. If you have 9 bags and gain another, you mark 1 chest and erase all bags.

You can’t have more than 1 chest, so if all your Gold slots are marked, you’ll need to spend some of your gold or store it somewhere else before you can acquire more.


Optional Rule: Gold Coins

If your group wants to track gold with more granularity, you can add coins as your lowest denomination. Following the established pattern, 10 coins equal 1 handful.


" + "content": "

FLOW OF THE GAME

Daggerheart is a conversation. The GM describes fictional scenarios involving the PCs, and the players take turns describing how their characters react. The goal of every person at the table is to build upon everyone else’s ideas and collaboratively tell a satisfying story. The system facilitates this collaborative process by providing structure to the conversation and mechanics for resolving moments of tension where fate or fortune determine the outcome of events.

PLAYER PRINCIPLES & BEST PRACTICES

To get the most out of Daggerheart, we recommend players keep the following principles and practices in mind throughout each session:

PRINCIPLES

  • Be a fan of your character and their journey.

  • Spotlight your friends.

  • Address the characters and address the players.

  • Build the world together.

  • Play to find out what happens.

  • Hold on gently.

BEST PRACTICES

  • Embrace danger.

  • Use your resources.

  • Tell the story.

  • Discover your character.

For more information, see the Daggerheart Core Rulebook, pages 9 and 108.

CORE GAMEPLAY LOOP

The core gameplay loop is the procedure that drives every scene, both in and out of combat:

STEP 1: SET THE SCENE

The GM describes a scenario, establishing the PCs’ surroundings and any dangers, NPCs, or other important details the characters would notice.

STEP 2: ASK AND ANSWER QUESTIONS

The players ask clarifying questions to explore the scene more deeply and gather information that could inform their characters’ actions. The GM responds to these questions by giving the players information their characters could easily obtain, or by asking questions of their own to the players. The players also respond to any questions the GM poses to them.

In this way, the table builds out the fiction collaboratively.

STEP 3: BUILD ON THE FICTION

As the scene develops, the players find opportunities to take actionβ€”problems to solve, obstacles to overcome, mysteries to investigate, and so on. The players describe how their characters proceed; if their proposed actions carry no chance of failure (or if failure would be boring), they automatically succeed. But if the outcome of their action is unknown, the GM calls for an action roll. Either way, the table works the outcome into the story and moves the fiction forward, narrating how the PC’s actions have changed things.

STEP 4: GO BACK TO STEP 1

The process repeats from the beginning, with the GM relaying any updated details or material changes to the players. This process continues until the end of the scene is triggered by a mechanic or arrives organically.

THE SPORLIGHT

The spotlight is a symbol that represents the table’s attentionβ€”and therefore the immediate focus of both the narrative and the game mechanics. Any time a character or player becomes the focus of a scene, they β€œare in the spotlight” or β€œhave the spotlight.”

The spotlight moves around the table organically as scenes unfold unless a mechanical trigger determines where the spotlight goes next. For example, when a player fails an action roll, the mechanics prompt the GM to seize the spotlight and make a GM move.

TURN ORDER & ACTION ECONOMY

Daggerheart’s turns don’t follow a traditional, rigid format:
there is no explicit initiative mechanic and characters don’t have a set number of actions they can take or things they can do before the spotlight passes to someone else. A player with the spotlight describes what their character does and the spotlight simply swings to whoever:

  1. the fiction would naturally turn it toward

  2. hasn’t had the focus in a while, or

  3. a triggered mechanic puts it on


Optional: Spotlight Tracker Tool

If your group prefers a more traditional action economy, you can use tokens to track how many times a player has had the spotlight: At the start of a session or scene, each player adds a certain number of tokens (we recommend 3) to their character sheet and removes a token each time they take an action. If the spotlight would swing to someone without any tokens, it swings to someone else instead. Once every player has used all their available tokens, players refill their character sheet with the same number of tokens as before, then continue playing.


MAKING MOVES & TAKING ACTION

Any time a character does something to advance the story, such as speaking with another character, interacting with the environment, making an attack, casting a spell, or using a class feature, they are making a move.

ACTION ROLLS

Any move where success would be trivial or failure would be boring automatically succeeds, but any move that’s difficult to accomplish or risky to attempt triggers an action roll.

OVERVIEW

All action rolls require a pair of d12s called Duality Dice.

These are two visually distinct twelve-sided dice, with one die representing Hope and the other representing Fear.

To make an action roll, you roll the Duality Dice, sum the results, apply any relevant modifiers, and compare the total to a Difficulty number to determine the outcome:

  • Success with Hope: If your total meets or beats the difficulty AND your Hope Die shows a higher result than your Fear Die, you rolled a β€œSuccess with Hope.” You succeed and gain a Hope.

  • Success with Fear: If your total meets or beats the Difficulty AND your Fear Die shows a higher result than your Hope Die, you rolled a β€œSuccess with Fear.” You succeed with a cost or complication, but the GM gains a Fear.

  • Failure with Hope: If your total is less than the Difficulty AND your Hope Die shows a higher result than your Fear Die, you rolled a β€œFailure with Hope.” You fail with a minor consequence and gain a Hope, then the spotlight swings to the GM.

  • Failure with Fear: If your total is less than the Difficulty AND your Fear Die shows a higher result than your Hope Die, you rolled a β€œFailure with Fear.” You fail with a major consequence and the GM gains a Fear, then the spotlight swings to the GM.

  • Critical Success: If the Duality Dice show matching results, you rolled a β€œCritical Success” (β€œCrit”). You automatically succeed with a bonus, gain a Hope, and clear a Stress. If this was an attack roll, you deal critical damage.

Note: A Critical Success counts as a roll β€œwith Hope.”

After resolving the action roll, the table works together to weave the outcome into the narrative and play continues.

FAILING FORWARD

In Daggerheart, every time you roll the dice, the scene changes in some way. There is no such thing as a roll where β€œnothing happens,” because the fiction constantly evolves based on the successes and failures of the characters.

PROCEDURE

The following steps describe in more detail the procedure that all action rolls utilize:

STEP 1: PICK AN APPROPRIATE TRAIT

Some actions and effects specify in their description which trait applies to the roll; otherwise, the GM tells the acting player which character trait best applies to the action being attempted. If more than one trait could apply to the roll, the GM chooses or lets the acting player decide.

STEP 2: DETERMINE THE DIFFICULTY

Some actions and features say in their description what the Difficulty is. Otherwise, the GM determines the Difficulty based on the scenario. The GM can choose whether to share the Difficulty with the table. In either case, the GM should communicate the potential consequences of failure to the acting player.

STEP 3: APPLY EXTRA DICE AND MODIFIERS

The acting player decides whether to Utilize an Experience or activate other effects, then, if applicable, adds the appropriate tokens and dice (such as advantage or Rally dice) to their dice pool.


Note: Unless an action, ability, or feature specifically allows for it, a player must declare the use of any Experiences, extra dice, or other modifiers before they roll.


STEP 4: ROLL THE DICE

The acting player rolls their entire dice pool and announces the results in the format of β€œ[total result] with [Hope/Fear]”— or β€œCritical Success!” in the case of matching Duality Dice.


Example: A player is making an action roll with a +1 in the relevant trait and no other modifiers; they roll the Duality Dice and get a result of 5 on their Hope Die and 7 on their Fear Die, then announce β€œI rolled a 13 with Fear!”


STEP 5: RESOLVE THE OUTCOME

The active player and the GM work together, along with the suggestions and support of the rest of the table, to resolve the outcome of the action.

GM MOVES AND ADVERSARY ACTIONS

GMs also make moves. They should consider making a move when a player does one of the following things:

  • Rolls with Fear on an action roll.

  • Fails an action roll.

  • Does something that would have consequences.

  • Gives them a golden opportunity.

  • Looks to them for what happens next.

After the GM turn is done, the spotlight goes back to the PCs.

Many adversaries and environments have Fear Features, especially powerful or consequential moves that the GM must spend Fear to activate.


Note: This Fear is in addition to any Fear the GM has previously spent to seize the spotlight or activate another action or ability.


ADVERSARY ACTIONS

When play passes to the GM, the GM can make a GM move to spotlight an adversary. A spotlighted adversary can:

  • Move within Close range and make a standard attack

  • Move within Close range and use an adversary action

  • Clear a condition

  • Sprint within Far or Very Far range on the battlefield

  • Do anything else the fiction demands or the GM deems appropriate

The GM can spend additional Fear to spotlight additional adversaries. Once the GM has finished, the spotlight swings back to the PCs.

SPECIAL ROLLS

Some rolls have unique specifications or otherwise modify the action roll procedure: trait rolls, Spellcast Rolls, attack rolls, and damage rolls. Unless otherwise noted, you can apply any bonus, modifier, or effect to a special roll as if it were a standard action roll.

TRAIT ROLLS

An action roll that specifies which character trait applies to it is called a trait roll. In the text of a feature or effect, a trait roll is referenced with the format β€œ[Trait] Roll (Difficulty)” (e.g., β€œAgility Roll (12)”). If the text of an effect doesn’t specify a trait roll’s Difficulty, the GM sets the Difficulty based on the circumstances.

Features and effects that affect a trait roll also affect any action roll that uses the same trait, including attack rolls, Spellcast rolls, and standard action rolls.


Example: The katari’s ancestry feature β€œFeline Instincts,” which allows the katari to reroll an Agility Roll, can also be used on a standard action roll using Agility to traverse dangerous terrain or on an attack roll made with a weapon that uses Agility.


SPELLCAST ROLLS

Spellcast Rolls are trait rolls that require you to use your Spellcast trait. Your Spellcast trait, if you have one, is determined by your subclass.

Spellcast Rolls are only made when a character uses a feature that requires one. A successful Spellcast Roll activates the effect as described by the feature.


Notes: A Spellcast Roll that can damage a target is also considered an attack roll.

When you cast a spell, the text tells you when the effect ends. The GM can spend a Fear to end a temporary effect. If your spell doesn’t specify when it ends, it ends when you choose or at a natural moment of the story. You can choose to end your spell early.

You can cast and maintain the effects of more than one spell at the same time.


REACTION ROLLS

A reaction roll is made in response to an attack or a hazard, representing a character’s attempt to avoid or withstand an imminent effect.

Reaction rolls work like action rolls, except they don’t generate Hope or Fear, don’t trigger additional GM moves, and other characters can’t aid you with Help an Ally.

If you critically succeed on a reaction roll, you don’t clear a Stress or gain a Hope, but you do ignore any effects that would have impacted you on a success, such as taking damage or marking Stress.

GROUP ACTION ROLLS

When multiple PCs take action together, the party chooses one PC to lead the action. Each other player then describes how their character collaborates on the task. The leader makes an action roll as usual, while the other players make reaction rolls using whichever traits they and the GM decide fit best.

The lead character gains a +1 bonus to their lead action roll for each of these reaction rolls that succeeded and a βˆ’1 penalty for each these reaction rolls that failed.

TAG TEAM ROLLS

Each player can, once per session, initiate a Tag Team Roll between their character and another PC by spending 3 Hope. The players work with one another to describe how they combine their actions in a unique and exciting way. Both players make separate action rolls; before resolving the roll’s outcome, choose one of the rolls to apply to both actions. On a roll with Hope, all PCs involved gain a Hope. On a roll with Fear, the GM gains a Fear token for each PC involved.

On a successful Tag Team attack roll, both players roll damage and add the totals together to determine the damage dealt, which is then treated as if it came from a single source. If the attacks deal different types of damage, the players choose which type to deal.


Notes:

A Tag Team Roll counts as a single action roll for the purposes of any countdowns or features that track action rolls.

Though each player may only initiate one Tag Team Roll per session, one PC can be involved in multiple Tag Team Rolls.


ADVANTAGE & DISADVANTAGE

Some features and effects let you roll with advantage or disadvantage on an action or reaction roll:

  • Advantage represents an opportunity that you seize to increase your chances of success. When you roll with advantage, you roll a d6 advantage die with your dice pool and add its result to your total.

  • Disadvantage represents an additional difficulty, hardship, or challenge you face when attempting an action. When you roll with disadvantage, you roll a d6 disadvantage die with your dice pool and subtract its result from your total.

Advantage or disadvantage can be granted or imposed by mechanical triggers or at the GM’s discretion. When a PC aids you with Help an Ally, they roll their own advantage die and you add it to your total.

Advantage and disadvantage dice cancel each out, one-for-one, when they would be added to the same dice pool, so you’ll never roll both at the same time. If you have advantage or disadvantage from other sources that don’t affect your own dice pool, such as another player’s Help an Ally move, their effects stack with your rolled results.

HOPE & FEAR

Hope and Fear are metacurrencies representing the cosmic forces that shape the events of your table’s story. Hope powers PC abilities and features, while Fear powers the abilities of the GM and the adversaries and environments they control.

HOPE

Every PC starts with 2 Hope at character creation and gains more throughout play. A PC can have a maximum of 6 Hope at one time, and Hope carries over between sessions.

Players can spend Hope to:

  • Help an Ally

    When you Help an Ally who is making an action roll, describe how you do so and roll an advantage die. Multiple players can spend Hope to help the same acting player, but that player only adds the highest result to their final total.

  • Utilize an Experience

    When you Utilize an Experience on a relevant roll, add its modifier to the result. You can spend multiple Hope to utilize multiple Experiences.

  • Initiate a Tag Team Roll

    Spend 3 Hope to initiate a Tag Team roll, combining the actions of two PCs into one impressive act of synergy. When you make a Tag Team roll, both players roll their action rolls and then choose which set of results to apply to the outcome.

  • Activate a Hope Feature

    A Hope Feature is any effect that allows (or requires) you to spend a specified amount of Hope to activate it. Class Hope features are class-specific features, detailed on your character sheet, that cost 3 Hope to activate


Note: When using a Hope Feature, if you rolled with Hope for that action, the Hope you gain from that roll can be spent on that feature (or toward it, if it requires spending multiple Hope).


FEAR

The GM gains Fear whenever a player rolls with Fear and can spend Fear at any time to make or enhance a GM move or to use a Fear Feature. The GM can have up to 12 Fear at one time. Fear carries over between sessions.

COMBAT

Though Daggerheart relies on the same flow of collaborative storytelling in and out of combat, physical conflicts rely more heavily on several key mechanics related to attacking, maneuvering, and taking damage.

EVASION

Evasion represents a character’s ability to avoid attacks and other unwanted effects. Any roll made against a PC has a Difficulty equal to the target’s Evasion. A PC’s base Evasion is determined by their class, but can be modified by domain cards, equipment, conditions, and other effects.


Note: attacks rolled against adversaries use the target’s Difficulty instead of Evasion.


HIT POINTS & DAMAGE THRESHOLDS

Hit Points (HP) represent a character’s ability to withstand physical injury. When a character takes damage, they mark 1 to 3 HP, based on their damage thresholds:

  • If the final damage is at or above the character’s Severe damage threshold, they mark 3 HP.

  • If the final damage is at or above the character’s Major damage threshold but below their Severe damage threshold, they mark 2 HP.

  • If the final damage is below the character’s Major damage threshold, they mark 1 HP.

  • If incoming damage is ever reduced to 0 or less, no HP is marked.

A PC’s damage thresholds are calculated by adding their level to the listed damage thresholds of their equipped armor. A PC’s starting HP is based on their class, but they can gain additional Hit Points through advancements, features, and other effects.

An adversary’s Damage Thresholds and HP are listed in their stat blocks.

When a character marks their last Hit Point, they fall. If a PC falls, they make a death move.

Characters can clear Hit Points by taking downtime moves (see: Downtime) or by activating relevant special abilities or effects.


Optional Rule: Massive Damage

If a character ever takes damage equal to twice their Severe threshold, they mark 4 HP instead of 3.


STRESS

Stress represents how much mental, physical, and emotional strain a character can endure. Some special abilities or effects require the character activating them to mark Stress, and the GM can require a PC to mark Stress as a GM move or to represent the cost, complication, or consequence of an action roll.

When a character marks their last Stress, they become Vulnerable (see: Conditions) until they clear at least 1 Stress.

When a character must mark 1 or more Stress but can’t, they mark 1 HP instead. A character can’t use a move that requires them to mark Stress if all of their Stress is marked.

PCs can clear Stress by making downtime moves (see: Downtime). A PC’s maximum Stress is determined by their class, but they can increase it through advancements, abilities, and other effects.

ATTACKING

ATTACK ROLLS

An attack roll is an action roll intended to inflict harm. The trait that applies to an attack roll is specified by the weapon or spell being used. Unarmed attack rolls use either Strength or Finesse (GM’s choice). An attack roll’s Difficulty, unless otherwise noted, is equal to the Difficulty score of its target.

DAMAGE ROLLS

On a successful attack, roll damage. Damage is calculated from the damage roll listed in the attack’s description with the format β€œxdy+[modifier]” (e.g., for a spell that inflicts β€œ1d8+2” damage, you roll an eight-sided and add 2 to the result; the damage dealt is equal to the total).

Any time an effect says to deal damage using your Spellcast trait, you roll a number of dice equal to your Spellcast trait.


Note: If your Spellcast trait is +0 or lower, you don’t roll anything.


For weapons, the number of damage dice you roll is equal to your Proficiency. Note that your Proficiency multiplies the number of dice you roll, but doesn’t affect the modifier. For example, a PC with Proficiency 2 and wielding a weapon with adamage rating of β€œd8+2” deals damage equal to β€œ2d8+2” on a successful attack.

Successful unarmed attacks inflict [Proficiency]d4 damage.

CRITICAL DAMAGE

When you get a critical success (i.e., you roll matching values on your Duality Dice) on an attack roll, you deal extra damage.

Make the damage roll as usual, but add the maximum possible result of the damage dice to the final total. For instance, if an attack would normally deal 2d8+1 damage, a critical success would deal 2d8+1+16.

DAMAGE TYPES

There are two damage types: physical damage (phy) and magic damage (mag). Unless stated otherwise, mundane weapons and unarmed attacks deal physical damage, and spells deal magic damage.

RESISTANCE, IMMUNITY, AND DIRECT DAMAGE

If a target has resistance to a damage type, then they reduce incoming damage of that type by half before comparing it to their Hit Point Thresholds. If the target has additional ways of reducing incoming damage, such as marking Armor Slots, they apply the resistance effect first. The effects of multiple resistances to the same damage type do not stack.

If a target has immunity to a damage type, they ignore incoming damage of that type.

If an attack deals both physical and magic damage, a character can only benefit from resistance or immunity if they are resistant or immune to both damage types.

Direct damage is damage that can’t be reduced by marking Armor Slots.

MULTI-TARGET ATTACK ROLLS

If a spell or ability allows you to target multiple adversaries, make one attack roll and one damage roll, then apply the results to each target individually.

MULTIPLE DAMAGE SOURCES

Damage dealt simultaneously from multiple sources is always totaled before it’s compared to its target’s damage thresholds.


For example, if a PC with orc ancestry makes a successful attack against a target in Melee range and decides to spend a Hope to use their β€œTusks” feature (which gives them an extra 1d6 damage on a damage roll), they would roll their normal weapon damage and add a d6 to the result, then deal that total damage to the adversary.


MAPS, RANGE, AND MOVEMENT

You can play Daggerheart using β€œtheater of the mind” or maps and miniatures. The conversions below from abstract ranges to physical measurements assume 1 inch of map represents about 5 feet of fictional space.

Daggerheart uses the following ranges to translate fictional positioning into relative distance for the purposes of targeting, movement, and other game mechanics:

  • Melee: Close enough to touch, up to a few feet away.

  • Very Close: Close enough to see fine details, about 5–10 feet away. While in danger, a character can move, as part of their action, from Very Close range into Melee range. On a map: anything within the shortest length of a game card (2-3 inches).

  • Close: Close enough to see prominent details, about 10–30 feet away. While in danger, a character can move, as part of their action, from Close range into Melee range. On a map: anything within the length of a pencil (5-6 inches).

  • Far: Close enough to see very little detail, about 30–100 feet away. While in danger, a character must make an Agility Roll to safely move from Far range into Melee range. On a map: anything within the length of the long edge of a piece of copy paper (11–12 inches).

  • Very Far: Too far to make out any details, about 100–300 feet away. While in danger, a character must make an Agility Roll to safely move from Very Far range into Melee range. On a map: anything beyond Far range, but still within the bounds of the conflict or scene.

  • Out of Range: Anything beyond a character’s Very Far range is Out of Range and usually can’t be targeted.

Range is measured from the source of an effect, such as the attacker or spellcaster, to the target or object of an effect.

A weapon, spell, ability, item, or other effect’s stated range is a maximum range; unless otherwise noted, it can be used at closer distances.


Optional Rule: Defined Ranges

If your table would rather operate with more precise range rules, you can use a 1-inch grid battle map during combat.

If you do, use the following guidelines for play:

  • Melee: 1 square

  • Very Close: 3 squares

  • Close: 6 squares

  • Far: 12 squares

  • Very Far: 13+ squares

  • Out of Range: Off the battlemap


MOVEMENT UNDER PRESSURE

When you’re under pressure or in danger and make an action roll, you can move to a location within Close range as part of that action. If you’re not already making an action roll, or if you want to move farther than your Close range, you need to succeed on an Agility Roll to safely reposition yourself.

An adversary can move within Close range for free as part of an action, or within Very Far range as a separate action.

AREA OF EFFECT

Unless stated otherwise, all the targets of a group effect must be within Very Close range of a single origin point within your effect’s range.

LINE OF SIGHT & COVER

Unless stated otherwise, a ranged attacker must have line of sight to their intended target to make an attack roll. If a partial obstruction lies between the attacker and target, the target has cover. Attacks made through cover are rolled with disadvantage. If the obstruction is total, there is no line of sight.

CONDITIONS

Conditions are effects that grant specific benefits or drawbacks to the target they are attached to.

STANDARD CONDITIONS

Daggerheart has three standard conditions:

HIDDEN

While you’re out of sight from all enemies and they don’t otherwise know your location, you gain the Hidden condition. Any rolls against a Hidden creature have disadvantage. After an adversary moves to where they would see you, you move into their line of sight, or you make an attack, you are no longer Hidden.

RESTRAINED

Restrained characters can’t move, but you can still take actions from their current position.

VULNERABLE

When a creature is Vulnerable, all rolls targeting them have advantage.

Some features can apply special or unique conditions, which work as described in the feature text.

Unless otherwise noted, the same condition can’t be applied more than once to the same target.

TEMPORARY TAGS & SPECIAL CONDITIONS

The temporary tag denotes a condition or effect that the affected creature can clear by making a move against it. When an affected PC makes a move to clear a temporary condition or effect, it normally requires a successful action roll using an appropriate trait. When an affected adversary makes a move to clear a temporary condition or effect, the GM puts the spotlight on the adversary and describes how they do it; this doesn’t require a roll but it does use up that adversary’s spotlight.

Special conditions are only cleared when specific requirements are met, such as completing a certain action or using a particular item. The requirements for clearing these conditions are stated in the text of the effect that applies the condition.

DOWNTIME

Between conflicts, the party can take a rest to recover expended resources and deepen their bonds. During a rest, each PC can make up to two downtime moves.

When the party rests, they must choose between a short rest and a long rest. If a party takes three short rests in a row, their next rest must be a long rest.

If a short rest is interrupted, such as by an adversary's attack, the characters don’t gain its benefits. If a long rest is interrupted, the characters only gain the benefits of a short rest.

A short rest lasts enough time for the party to catch its breath, about an hour in-world. Each player can move domain cards between their loadout and vault for free, then choose twice from the following list of downtime moves (players can choose the same move twice):

  • Tend to Wounds: Clear 1d4+Tier Hit Points for yourself or an ally.

  • Clear Stress: Clear 1d4+Tier Stress.

  • Repair Armor: Clear 1d4+Tier Armor Slots from your or an ally’s armor.

  • Prepare: Describe how you prepare yourself for the path ahead, then gain a Hope. If you choose to Prepare with one or more members of your party, you each gain 2 Hope.

At the end of a short rest, any features or effects with a limited number of uses per rest refresh and any features or effects that last until your next rest expire.

A long rest is when the characters make camp and relax or sleep for several in-game hours. Each player can move domain cards between their loadout and vault for free, then choose twice from the following list of downtime moves (players can choose the same move twice):

  • Tend to All Wounds: Clear all Hit Points for yourself or an ally.

  • Clear All Stress: Clear all Stress.

  • Repair All Armor: Clear all Armor Slots from your or an ally’s armor

  • Prepare: Describe how you prepare for the next day’s adventure, then gain a Hope. If you choose to Prepare with one or more members of your party, you each gain 2 Hope.

  • Work on a Project: With GM approval, a PC may pursue a long-term project, such as deciphering an ancient text or crafting a new weapon. The first time they start a new project, assign it a countdown. Each time a PC makes the Work on a Project move, they either advance their project’s countdown automatically or make an action roll to advance it (GM’s choice).

At the end of a long rest, any features or effects with a limited number of uses per rest or per long rest refresh and any features or effects that last until your next rest or until your next long rest expire.

DOWNTIME CONSEQUENCES

On a short rest, the GM gains 1d4 Fear. On a long rest, they gain Fear equal to 1d4 + the number of PCs, and they can advance a long-term countdown of their choice.

DEATH

When a PC marks their last Hit Point, they must make a death move by choosing one of the following options:

  • Blaze of Glory: Your character embraces death and goes out in a blaze of glory. Take one final action. It automatically critically succeeds (with GM approval), and then you cross through the veil of death.

  • Avoid Death: Your character avoids death and faces the consequences. They temporarily drop unconscious, and then you work with the GM to describe how the situation worsens. While unconscious, your character can’t move or act, and they can’t be targeted by an attack. They return to consciousness when an ally clears 1 or more of their marked Hit Points or when the party finishes a long rest. After your character falls unconscious, roll your Hope Die. If its value is equal to or less than your character’s level, they gain a scar: permanently cross out a Hope slot and work with the GM to determine its lasting narrative impact and how, if possible, it can be restored. If you ever cross out your last Hope slot, your character’s journey ends.

  • Risk It All: Roll your Duality Dice. If the Hope Die is higher, your character stays on their feet and clears a number of Hit Points or Stress equal to the value of the Hope Die (you can divide the Hope Die value between Hit Points and Stress however you’d prefer). If the Fear Die is higher, your character crosses through the veil of death. If the Duality Dice show matching results, your character stays up and clears all Hit Points and Stress.

If your character dies, work with the GM before the next session to create a new character at the current level of the rest of the party.

ADDITIONAL RULES

The following rules apply to many aspects of the game.

ROUNDING UP

This game doesn’t use fractions; if you need to round to a whole number, round up unless otherwise specified. When in doubt, resolve any ambiguity in favor of the PCs.

REROLLING DICE

When a feature allows you to reroll a die, you always take the new result unless the feature specifically says otherwise.

INCOMING DAMAGE

Incoming damage means the total damage from a single attack or source, before Armor Slots are marked.

SIMULTANEOUS EFFECTS

If the resolution order of multiple effects is unclear, the person in control of the effects (player or GM) decides what order to resolve them in.

STACKING EFFECTS

Unless stated otherwise, all effects beside conditions and advantage/disadvantage can stack.

ONGOING SPELL EFFECTS

If an effect doesn’t have a listed mechanical expiration, it only ends when decided by the controlling player, the GM, or the demands of the fiction.

SPENDING RESOURCES

Unless an effect states otherwise, you can’t spend Hope or mark Stress multiple times on the same feature to increase or repeat its effects on the same roll.

USING FEATURES AFTER A ROLL

If a feature allows you to affect a roll after the result has been totaled, you can use it after the GM declares whether the roll succeeds or fails, but not after the consequences unfold or another roll is made.

LEVELING UP

Your party levels up whenever the GM decides you’ve reached a narrative milestone (usually about every 3 sessions). All party members level up at the same time.

Daggerheart has 10 PC levels divided into 4 tiers:


β†’ Tier 1 encompasses level 1 only.

β†’ Tier 2 encompasses levels 2–4.

β†’ Tier 3 encompasses levels 5–7.

β†’ Tier 4 encompasses levels 8–10.


Your tier affects your damage thresholds, tier achievements, and access to advancements.

STEP ONE: TIER ACHIEVEMENTS

Take any applicable tier achievements

  • At level 2, you gain a new Experience at +2 and permanently increase your Proficiency by 1.

  • At level 5, you gain a new Experience at +2, permanently increase your Proficiency by 1, and clear any marked traits.

  • At level 8, you gain a new Experience at +2, permanently increase your Proficiency by 1, and clear any marked traits.

STEP TWO: ADVANCEMENTS

Choose any two advancements with at least one unmarked slot from your tier or below. Options with multiple slots can be chosen more than once. When you choose an advancement, mark one of its slots.

  • When you choose to increase two unmarked character traits and mark them: Choose two unmarked character traits and gain a permanent +1 bonus to them. You can’t increase these stats again until the next tier (when your tier achievement allows you to clear those marks).

  • When you choose to permanently add 1 or more Hit Point slots: Darken the outline of the next rectangle in the Hit Point section of your character sheet in pen or permanent marker.

  • When you choose to permanently add 1 or more Stress slots: Darken the outline of the next rectangle in the Stress section of your character sheet in pen or permanent marker.

  • When you choose to increase your Experience: Choose two Experiences on your character sheet and gain a permanent +1 bonus to both.

  • When you take an additional domain card: You can choose an additional domain card at or below your level or from your class’s domains. If you’ve multiclassed, you can instead select a card at or below half your level from your chosen multiclass domain.

  • When you choose to increase your Evasion: Gain a permanent +1 bonus to your Evasion.

  • When you choose to take an upgraded subclass card: Take the next card for your subclass. If you have only the foundation card, take a specialization; if you have a specialization already, take a mastery. Then cross out this tier’s multiclass option.

  • When you choose to increase your Proficiency: Fill in one of the open circles in the β€œProficiency” section of your character sheet, then increase your weapon’s number of damage dice by 1. The black box around this advancement’s slots indicates you must spend two advancements and mark both level-up slots in order to take it as an option.

  • When you choose to multiclass: Choose an additional class, select one of its domains, and gain its class feature. Add the appropriate multiclass module to your character sheet and take the foundation card from one of its subclasses. Then cross out the β€œupgraded subclass” advancement option in this tier and all other β€œmulticlass” advancement options on your character sheet. The black box around this advancement’s slots indicates you must spend two advancements and mark both level-up slots in order to take it as an option.

STEP THREE: DAMAGE THRESHOLDS

Increase all damage thresholds by 1.

STEP FOUR: DOMAIN CARDS

Acquire a new domain card at your level or lower from one of your class’s domains and add it to your loadout or vault. If your loadout is already full, you can’t add the new card to it until you move another into your vault. You can also exchange one domain card you’ve previously acquired for a different domain card of the same level or lower.

MULTICLASSING

Starting at level 5, you can choose multiclassing as an option when leveling up. When you multiclass, you choose an additional class, gain access to one of its domains, and acquire its class feature. Take the appropriate multiclass module and add it to the right side of your character sheet, then choose a foundation card from one of its subclasses. If your foundation cards specify different Spellcast traits, you can choose which one to apply when making a Spellcast roll.

Whenever you have the option to acquire a new domain card, you can choose from cards at or below half your current level (rounded up) from the domain you chose when you selected the multiclass advancement.

EQUIPMENT

Your equipped weapons and armor are the ones listed in the β€œActive Weapons” and β€œActive Armor” sections of your character sheet. Your character can only attack with weapons, benefit from armor, and gain features from items they have equipped. You can’t equip weapons or armor with a higher tier than you.

PCs can carry up to two additional weapons in the β€œInventory Weapon” areas of the character sheet.

You can swap an Inventory Weapon with an Active Weapon at no cost during a rest or moment of calm; otherwise, you must mark a Stress to do so.

Your character can only have one Active Armor at a time.

They can’t equip armor while in danger or under pressure; otherwise, they can equip or unequip armor without cost.

Each armor has its own Armor Slots; if your character unequips their armor, track how many of its Armor Slots are marked. You can't carry armor in your inventory. When your character equips or unequips armor, recalculate your damage thresholds.

WEAPONS

All weapons have a tier, trait, range, damage die, damage type, and burden. Some weapons also have a feature.

CATEGORY

A weapon’s category specifies whether it is a Primary or Secondary weapon. Your character can only equip up to one weapon of each category at a time.

TRAIT

A weapon’s trait specifies which trait to use when making an attack roll with it.

RANGE

A weapon’s range specifies the maximum distance between the attacker and their target when attacking with it.

DAMAGE

A weapon’s damage indicates the size of the damage dice you roll on a successful attack with it; you roll a number of dice equal to your Proficiency. If the damage includes a flat modifier, this number is added to the total damage rolled, but is not altered or affected by Proficiency.

DAMAGE TYPE

A weapon’s damage type indicates whether it deals physical or magic damage. Weapons that deal magic damage can only be wielded by characters with a Spellcast trait.

BURDEN

A weapon’s burden indicates how many hands it occupies when equipped. Your character’s maximum burden is 2 hands.

FEATURE

A weapon’s feature is a special rule that stays in effect while the weapon is equipped.

You can throw an equipped weapon at a target within Very Close range, making the attack roll with Finesse. On a success, deal damage as usual for that weapon. Once thrown, the weapon is no longer considered equipped. Until you retrieve and re-equip it, you can’t attack with it or benefit from its features.

Combat Wheelchair

By Mark Thompson

The combat wheelchair is a ruleset designed to help you play a wheelchair user in Daggerheart. This section provides mechanics and narrative guidance for you to work from, but feel free to adapt the flavor text to best suit your character. Have fun with your character’s wheelchair design, and make it as unique or tailored to them as you please.

ACTION AND MOVEMENT

When describing how your character moves, you can use descriptions such as the following:

  • β€œI roll over to the door to see if it’s open.”

  • β€œI wheel myself over to the group to ask what’s going on.”

  • β€œI pull my brakes and skid to a halt, turning in my seat to level my bow at the intruder.”

CONSEQUENCES

Here are some ways you might describe complications you encounter when your character uses their wheelchair:

  • β€œI pull my brakes, but I don’t think to account for the loose gravel on the ground.”

  • β€œI hit a patch of ice awkwardly and am sent skidding out past my target.”

  • β€œI go to push off in pursuit, but one of my front caster wheels snags on a crack in the pavement, stalling me for a moment.”

GMs should avoid breaking a character's wheelchair or otherwise removing it from play as a consequence, unless everyone at the table, especially the wheelchair user’s player, gives their approval.

EVASION

Your character is assumed to be skilled in moving their wheelchair and navigating numerous situations in it. As a result, the only wheelchair that gives a penalty to a PC's Evasion is the Heavy Frame model.

BURDEN

All wheelchairs can be maneuvered using one or two hands outside of combat. However, when being used as a weapon, the chair is restricted to requiring one or two hands to perform attacks, depending on the model you’ve chosen. If you’re playing a character who has limited to no mobility in their arms, their wheelchair can be attuned to them by magical means. For example, your character might use a psychic link to guide the chair around like a pseudo-electric wheelchair. All the rules presented here can be tailored and adapted to any character's needs.

CHOOSING YOUR MODEL

All combat wheelchairs are equipped as Primary Weapons.

There are three models of wheelchair available: light, heavy, and arcane. You’re encouraged to consider the type of character you’re playing and the class they belong to, then choose the model that best matches that character concept.

ARMOR

Every armor has a name, base damage thresholds, and a base Armor Score. Some armor also has a feature.

  • An armor’s base armor score indicates how many Armor Slots it provides its wearer before additional bonuses are added to calculate their total Armor Score. A PC’s Armor Score can’t exceed 12.

  • An armor’s base thresholds determine its wearer’s major and severe damage thresholds before adding bonuses to calculate their final damage thresholds.

  • An armor’s feature is a special rule that stays in effect while the armor is equipped.

While unarmored, your character’s base Armor Score is 0, their Major threshold is equal to their level, and their Severe threshold is equal to twice their level.

REDUCING INCOMING DAMAGE

When you take damage, you can mark one Armor Slot to reduce the number of Hit Points you would mark by one. If your character has an Armor Score of 0, you can’t mark Armor Slots. If an effect temporarily increases your Armor Score,

it increases your available Armor Slots by the same amount; when the effect ends, so does the availability of these Armor Slots.

LOOT

Loot comprises any consumables or reusable items the party acquires.

Items can be used until sold, discarded, or lost.

To generate a random item, choose a rarity, roll the designated dice, and match the total to the item in the table:

  • Common: 1d12 or 2d12

  • Rare: 3d12 or 4d12

  • Uncommon: 2d12 or 3d12

  • Legendary: 4d12 or 5d12

@UUID[RollTable.KKqUrMMXPpm7uhYT]{Loot}

Consumables

Consumables are loot that can only be used once. You can hold up to five of each consumable at a time. Using a consumable doesn’t require a roll unless required by the GM or the demands of the fiction.

To generate a random consumable, choose a rarity, roll the designated dice, and match the total to the item in the table:

  • Common: 1d12 or 2d12

  • Rare: 3d12 or 4d12

  • Uncommon: 2d12 or 3d12

  • Legendary: 4d12 or 5d12

@UUID[RollTable.wZXyi343PSVVwWB3]{Consumables}

GOLD

Gold is an abstract measurement of how much wealth a character has, and is measured in handfuls, bags, and chests, with 10 handfuls to 1 bag, and 10 bags to 1 chest. When you have marked all of the slots in a category and you gain another gold reward in that category, mark a slot in the following category and clear all the slots in the current one.

For example, if you have 9 handfuls and gain another, you instead mark 1 bag and erase all handfuls. If you have 9 bags and gain another, you mark 1 chest and erase all bags.

You can’t have more than 1 chest, so if all your Gold slots are marked, you’ll need to spend some of your gold or store it somewhere else before you can acquire more.


Optional Rule: Gold Coins

If your group wants to track gold with more granularity, you can add coins as your lowest denomination. Following the established pattern, 10 coins equal 1 handful.


" }, "video": { "controls": true, @@ -142,11 +142,10 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.351", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", - "lastModifiedBy": "Bgvu4A6AMkRFOTGR", - "modifiedTime": 1767971461044 + "lastModifiedBy": null }, "_key": "!journal.pages!uNs7ne9VCbbu5dcG.C123WDOcT5hAa95M" }, @@ -163,7 +162,7 @@ "image": {}, "text": { "format": 1, - "content": "

INTRODUCTION

The GM is responsible for guiding the narrative and roleplaying the world the PCs inhabit. This section provides you with advice for running Daggerheart: using the core mechanics; creating memorable encounters; planning exciting sessions; selecting, creating, and using GM moves; crafting a full campaign; running dynamic NPCs; and more.

GM GUIDANCE

These three sections provide a foundation to help you get the most out of this game. The β€œGM Principles” are your guiding starβ€”when in doubt, return to these principles.

GM PRINCIPLES

BEGIN AND END WITH THE FICTION

Use the fiction to drive mechanics, then connect the mechanics back to the fiction.

COLLABORATE AT ALL TIMES, ESPECIALLY DURING CONFLICT

The PCs are the protagonists of the campaign; antagonism between player and GM should exist only in the fiction.

FILL THE WORLD WITH LIFE, WONDER, AND DANGER

Showcase rich cultures, take the PCs to wondrous places, and introduce them to dangerous creatures.

ASK QUESTIONS AND INCORPORATE THE ANSWERS

Ensuring that the players’ ideas are included results in a narrative that supports the whole group’s creativity.

GIVE EVERY ROLL IMPACT

Only ask the players to roll during meaningful moments.

PLAY TO FIND OUT WHAT HAPPENS

Be surprised by what the characters do, the choices they make, and the people they become.

HOLD ON GENTLY

Don’t worry if you need to abandon or alter something that came before.

GM PRACTICES

CULTIVATE A CURIOUS TABLE

Follow what catches the players’ interest to foster an environment of creative inquiry.

GAIN YOUR PLAYERS’ TRUST

Act in good faith, follow through on your promises, admit your mistakes.

KEEP THE STORY MOVING FORWARD

Advance the story through escalating action, new information, or changing circumstances after every action roll, whether it succeeds or fails.

CUT TO THE ACTION

Skip past the boring bits. When a scene drags on, end it.

HELP THE PLAYERS USE THE GAME

Players have more fun when you help them understand the system.

CREATE A META CONVERSATION

Empower players to speak out of character, use safety tools, and ask for clarification.

TELL THEM WHAT THEY WOULD KNOW

Don’t hide obvious details or important information from the players.

GROUND THE WORLD IN MOTIVE

An NPC’s actions flow from their goals and desires.

BRING THE GAME’S MECHANICS TO LIFE

Set a good example of how fiction and mechanics work together to enhance the game experience.

REFRAME RATHER THAN REJECT

If a player’s contribution conflicts with the fiction, work with them to reshape it.

WORK IN MOMENTS AND MONTAGES

When framing a scene, decide which beats should be savored and which shouldn’t linger.

PITFALLS TO AVOID

UNDERMINING THE HEROES

If a roll doesn’t go well, show how it was impacted by an adversary’s prowess, environmental factors, or unexpected surprises, rather than the PC’s incompetence.

ALWAYS TELLING THE PLAYERS WHAT TO ROLL

Let the players decide how to handle a challenge.

LETTING SCENES DRAG

Shake it up or cut away when a scene has concluded, the table’s energy is flagging, or people are talking in circles.

SINGULAR SOLUTIONS

Don’t get hung up on one right answer to a problem. If the players have a clever idea, make it work.

OVERPLANNING

Spend your prep time inventing situations instead of scripting scenes. If the players surprise you, take a break to think through your options.

HOARDING FEAR

Spend Fear when you have the opportunity. The players will always generate more.

For more in-depth GM guidance, see pg. 140 of the Daggerheart Core Rulebook.

CORE GM MECHANICS

ROLLING DICE

The GM has no Duality Dice; instead, they roll a single d20 called the GM’s Die.

ADVERSARY ATTACK ROLLS

When an adversary attacks a PC, roll your d20 and add the adversary’s attack bonus to the result. If the total meets or beats the target’s Evasion, the attack succeeds; otherwise, the attack fails. On a successful attack, roll the attack’s damage dice to determine how much it deals.

If you roll a natural 20 on an attack, your roll automatically succeeds and you deal extra damage. Roll damage normally, then add the highest number on the damage dice to the total.

For example, an attack that deals 3d6+2 deals 18+3d6+2 on a critical success; the critical success does not affect the flat damage modifier.


Note: a critical success on an adversary’s reaction roll automatically succeeds, but confers no additional benefit.


GUIDANCE ON ACTION ROLLS

After a player describes a move they want to make during the game, you might decide an action roll is necessary to determine how the scene progresses. Use this guide to determine what to present the player, choosing whichever option best fits the situation:

  • Determine whether the roll is necessary, considering the PC’s Experiences or backstory, the pressure they’re acting under, and the possible outcomes.

  • Establish the stakes of an action roll before the player makes it.

  • Communicate any unavoidable consequences.

  • If desired, you can offer the player the opportunity to forgo an action roll in exchange for agreeing to an interesting outcome, cost, or complication.

MAKING MOVES

As the GM, you have GM moves that change the story in response to the players’ actions. GM moves aren’t bound by specific spells or effectsβ€”when you make a GM move, you can describe the action in whatever way the fiction demands.

GM moves happen during GM turns. A GM turn begins when the spotlight passes to them and ends when the spotlight passes back to the players.

WHEN TO MAKE A MOVE

The GM can make a GM move whenever you want, but the frequency and severity depends on the type of story you’re telling, the actions your players take, and the tone of the session you’re running.

Make a GM move when the players:

  • Roll with Fear

  • Fail an action roll

  • Do something that has unavoidable consequences

  • Give you a β€œgolden opportunity” (an opening that demands an immediate response)

  • Look to you for what happens next

CHOOSING GM MOVES

The result of a player’s action roll determines your response:

On a Critical Success, you let the player describe their success, then give them an additional opportunity or advantage.

On a Success with Hope, you let the player describe their success, then you show how the world reacts to it.

On a Success with Fear, you work with the player to describe their success, then take a Fear and make a GM move to introduce a minor consequence, complication, or cost:

  • An adversary attacks

  • The PC marks a Stress

  • You introduce a new threat

  • You raise the stakes of the conflict

On a Failure with Hope, you describe how the PC fails to get what they want, then make a GM move to introduce a minor consequence, complication, or cost:

  • An adversary attacks

  • The PC marks a Stress

  • You introduce a new threat

  • You raise the stakes of the conflict

On a Failure with Fear, you describe how things go wrong, then make a GM move to introduce a major consequence, complication, or cost:

  • You put them in immediate danger

  • They become the focus of multiple adversaries

  • They are separated from their party

  • They lose an important opportunity for good.

QUICK REFERENCE:

RESOLVING ACTION ROLLS

If you’re unsure how to resolve a roll, think about these quick phrases:

Success with Hope: Yes, and… (You get what you want and gain a Hope.)

Success with Fear: Yes, but… (You get what you want, but there’s a consequence, and the GM gains a Fear.)

Failure with Hope: No, but… (Things don’t go as planned, but you gain a Hope.)

Failure with Fear: No, and… (Things don’t go as planned and it gets worse. The GM gains a Fear.)

If the move you should make is not obvious from the fiction, draw inspiration from the β€œExample GM Moves” list:

  • Introduce a new obstacle or enemy

  • Ask the player what happens

  • Have the PC mark a Stress

  • Tell the players β€œeverything is fine… for now.”

SOFT AND HARD MOVES

Soft moves go easier on the playersβ€”they give the party new information about the scene and offer them an opportunity to react to it. Hard moves are harsher, more impactful, or more directβ€”the PCs don’t get an opening to interrupt, alter, or anticipate the outcome.

Use softer moves on rolls with Hope and harder moves on rolls with Fear.


Example GM Moves

  • Show how the world reacts

  • Ask a question and build on the answer

  • Make an NPC act in accordance with their motive

  • Drive a PC to take action by dangling their goals in front of them

  • Signal an imminent off-screen threat

  • Reveal an unwelcome truth or unexpected danger

  • Force the group to split up

  • Make a PC mark Stress

  • Make a move the characters don’t see

  • Show the collateral damage

  • Clear an adversary’s condition

  • Shift the environment

  • Spotlight an adversary

  • Capture someone or something important

  • Use a PC’s backstory against them

  • Take away an opportunity permanently.


USING FEAR

You start a campaign with 1 Fear per PC in the party.

You gain Fear whenever a PC rolls with Fear, the PCs take a rest (see: Downtime), or when an ability or effect tells you to.

You can never have more than 12 Fear at one time.

Fear carries over between sessions.

Spend a Fear to:

  • Interrupt the players to steal the spotlight and make a move

  • Make an additional GM move

  • Use an adversary’s Fear Feature

  • Use an environment’s Fear Feature

  • Add an adversary’s Experience to a roll

The dramatic tension of a scene correlates with the amount of Fear you spend during it. For guidance on how much Fear you should spend in a scene, consult the following table:

Incidental

A catch-up between PCs after an emotionally charged scene; gathering information; resupplying at a local market; resting during downtime.

0–1 Fear

Minor

A travel sequence; a minor skirmish that introduces new foes or signals future trouble.

1–3 Fear

Standard

A substantial battle with a notable objective; perilous travel that tests might and wit; a tense social encounter seeking crucial information or aid.

2–4 Fear

Major

A large battle with a Solo or Leader adversary; a character-defining scene with a significant change to a character’s personal story (such as revelation, growth, and betrayal).

4–8 Fear

Climactic

A major confrontation with the villain of a story arc; an epic set piece battle; a judicial duel to determine an important NPC’s fate.

6–12 Fear

If you find yourself with a large amount of Fear, consider:

  • Spending Fast: Spend Fear before the players have a chance to react

  • Spending Often: Spend Fear every time the spotlight swings to you

  • Spending Big: Spend Fear to make multiple moves in a row

Spending Fear to make a move communicates the increased impact of your action. Fear moves often include one or more of these elements:

  • Introducing new adversaries to a scene when their appearance hasn’t been foreshadowed or lacks context.

  • An adversary activating a powerful spell or transformation to deal massive damage or boost their capabilities.

  • An environment exerting a strong negative effect on the party.

DIFFICULTY BENCHMARKS

The Difficulty of an attack roll against an adversary is equal to the adversary’s Difficulty score. The Difficulty of any other action rolls against an adversary is equal to the adversary’s Difficulty score, plus (if applicable) the value of one of the adversary relevant Experience modifiers.

When a player makes an action roll without a specified Difficulty, the GM sets the Difficulty according to the totality of the circumstances. Refer to the following benchmark table for more guidance:

AGILITY

ROLL

SPRINT

LEAP

MANEUVER

5

Sprint within Close range across an open field with an enemy present.

Make a running jump of half your height (about 3 feet for a human).

Walk slowly across a narrow beam.

10

Sprint within Far range across an open field with an enemy present.

Make a running jump of your height (about 6 feet for a human).

Walk quickly across a narrow beam.

15

Sprint within Close range across rough terrain with an enemy present.

Make a running jump of double your height (about 12 feet for a human).

Run across a narrow beam.

20

Sprint within Close range through an active battle of multiple enemies.

Make a running jump of three times your height (about 18 feet for a human).

Run across a narrow beam in heavy wind.

25

Sprint within Far range through a pitched battle in rough terrain.

Make a running jump of five times your height (about 30 feet for a human).

Run across a very narrow beam in an active rainstorm.

30

Sprint across the heads of your enemies in a pitched battle.

Make a running jump of ten times your height (about 60 feet for a human).

Run across an inch-wide, oil-slicked beam in an active rainstorm.

STRENGTH

ROLL

LIFT

SMASH

GRAPPLE

5

Lift a chair.

Destroy a glass cup.

Subdue a child.

10

Lift a table or small chest.

Destroy a small wooden table.

Subdue a weak adult.

15

Lift a grown person or large chest.

Break through a wooden door.

Subdue an average adult.

20

Lift the side of a laden cart or carry a large chest up stairs.

Break through a stone wall.

Subdue a skilled wrestler.

25

Lift a horse, an ox, or a large monster.

Break through a dragon’s teeth.

Subdue a large beast.

30

Lift a falling portcullis gate.

Break a god’s grip.

Subdue a legendary beast.

FINESSE

ROLL

CONTROL

HIDE

TINKER

5

Ride a horse through easy terrain.

Evade notice under full cover on a moonless night.

Open a sticky lock with the appropriate key.

10

Drive an ox-pulled cart.

Evade notice in limited cover on a moonless night.

Open a simple puzzle box.

15

Ride a horse through rough terrain.

Evade notice in limited cover on an average night.

Disable a standard trap.

20

Drive a cart through rough terrain.

Evade notice in the shadows on an average night.

Disable a complicated trap.

25

Ride a wild horse through dangerous terrain.

Evade notice with minimal cover in ample light.

Open a door secured by a sequence of elaborate locks.

30

Ride an enraged beast through dangerous terrain.

Evade notice with no cover in full daylight.

Disable an incredibly sensitive and deadly trap.

INSTINCT

ROLL

PERCEIVE

SENSE

NAVIGATE

5

Hear a loud noise twenty paces away.

Detect an obvious ambush or notice an obvious deception.

Follow a well-trod path in good lighting and weather.

10

Hear a speaking voice fifty paces away.

Detect a looming threat or notice an average person’s lies.

Follow an average path in good lighting and weather.

15

Hear someone walking in the woods fifty paces away.

Detect hostile intent from a foe or see through a merchant’s lies.

Follow a subtle path through rough conditions.

20

Hear someone sneaking through the woods fifty paces away.

Detect a politician’s veiled hostility or detect a nearby assassin.

Follow a subtle path through harsh conditions.

25

Hear a prowling animal fifty paces away.

Identify a spymaster’s plot or read a politican’s true intentions.

Find your way with no path through dangerous conditions.

30

Hear a diving bird a hundred paces away.

Sense a shred of doubt within a god’s pronouncement.

Find your way through a trickery god’s maze.

PRESENCE

ROLL

CHARM

PERFORM

DECEIVE

5

Win the trust of a friendly neighbor.

Earn a meal from a friendly crowd.

Trick a trusting acquaintance.

10

Win the trust of a friendly stranger.

Earn room and board in a small town or impress a small crowd.

Trick an average stranger.

15

Win the trust of a cautious stranger or talk your way into a noble’s party.

Earn room and board in a low-end tavern or impress a large crowd.

Trick an average merchant.

20

Win the trust of a sympathetic foe or talk your way into an enemy’s party.

Earn lodging in a high-end tavern or impress a full theater.

Trick a trained courtier.

25

Turn an enemy against their ruler or talk your way into a fae court.

Earn your keep in a royal court or impress a full colosseum.

Trick a spymaster.

30

Talk a hostile god into granting you a boon.

Save yourself from execution after offending the queen.

Trick a god.

KNOWLEDGE

ROLL

RECALL

ANALYZE

COMPREHEND

5

Recall uncommon facts about your community.

Unpack an obvious metaphor in a simple text.

Learn simple skills from an excellent teacher.

10

Recall uncommon facts about a neighboring community.

Identify obvious subtext in a conversation.

Learn simple skills from an average teacher.

15

Recall uncommon facts about a distant community.

Break an average cipher in a coded message.

Learn complicated skills from an excellent teacher.

20

Recall specialized facts about a distant community.

Identify a weakness in a complicated battle plan.

Learn complicated skills under poor conditions.

25

Recall specialized facts about a fallen kingdom.

Predict the downfall of a nation based on concealed misdeeds.

Learn complicated skills quickly under dangerous conditions.

30

Recall secret information about an obscure historical group.

Identify the weakness in a divine champion’s fighting form.

Learn complicated skills quickly from incomplete information.

GIVING ADVANTAGE AND DISADVANTAGE

To viscerally convey how a PC’s actions or circumstances affect their ability to act, grant them advantage die (or impose disadvantage die) instead of adjusting the Difficulty of an action roll.

ADVERSARY ACTION ROLLS

By default, adversaries don’t normally make action rolls except for attack rolls and any unique actions described in their stat blocks. Any other action an adversary attempts simply succeeds without an action roll; if you want an adversary’s action to have a chance of failure, have any relevant PCs make reaction rolls instead.

However, for especially dramatic or difficult tasks that the PCs can’t influence, you can give an adversary an action roll anyway. For an adversary’s action roll, roll a d20. If the result is equal to or greater than the action’s Difficulty, the action succeedsβ€”otherwise it fails. You can spend a Fear before rolling to add a relevant Experience from the adversary’s stat block to the total. Use the same procedure when an adversary makes a reaction roll.

ADVERSARY ADVANTAGE & DISADVANTAGE

If an adversary has advantage on an action roll, the GM rolls an extra d20 and counts only the higher result. If an adversary has disadvantage on an action roll, the GM rolls an extra d20 and counts only the lower result.

ADVERSARY ATTACKS

When an adversary attacks a PC, the GM rolls a d20 and adds the adversary’s Attack Modifier to the result. If the total meets or beats the target’s Evasion, the attack succeeds; otherwise, it fails. Before rolling, the GM can grant the attacking adversary advantage, impose disadvantage, or spend a Fear to add a relevant Experience from the adversary’s stat block to the total.

On a success, the adversary deals the damage listed in their stat block to the target.

When an adversary’s action lets the GM make an attack against multiple targets, they make one attack roll and compare it to each target’s Evasion separately.

COUNTDOWNS

Countdowns represent a period of time or series of events preceding a future effect. A countdown begins at a starting value. When a countdown advances, it’s reduced by 1. The countdown’s effect is triggered when the countdown reaches 0.


Note: You can track countdowns by β€œspinning down” dice or ticking off boxes.


Standard countdowns advance every time a player makes an action roll. If an adversary or environment ability refers to a β€œCountdown [n],” then it means a standard countdown with a starting value of n.

Dynamic countdowns advance by up to 3 depending on the outcomes of action rolls. Consequence countdowns are dynamic countdowns to negative effects. Progress countdowns are dynamic countdowns to positive effects. Dynamic countdowns advance according to this chart:

DYNAMIC COUNTDOWN ADVANCEMENT

Roll Result

Progress Advancement

Consequence Advancement

Failure with Fear

No advancement

Tick down 3

Failure with Hope

No advancement

Tick down 2

Success with Fear

Tick down 1

Tick down 1

Success with Hope

Tick down 2

No advancement

Critical Success

Tick down 3

No advancement

ADVANCED COUNTDOWN FEATURES

  • Countdowns with randomized starting values

  • Loop countdowns that reset to their starting value after their countdown effect is triggered.

  • Increasing countdowns that increase their starting value by 1 every time they loop.

  • Decreasing countdowns that decrease their starting value by 1 every time they loop.

  • Linked progress and consequence countdowns that simultaneously advance according to the same action roll outcomes.

  • Long-term countdowns that advance after rests instead of action rolls.

GIVING OUT GOLD, EQUIPMENT, AND LOOT

It’s up to you and your players how much importance you want to place on gold, equipment, and loot in your campaign.

Adjust the availability and utility of wealth and equipment to reflect the tone, themes, and setting of your campaign.

If you don’t wish to track gold, then when PCs go shopping fornew items let them pick one or two from a short, preselected list that aligns with your campaign setting and the party’s current location.

Otherwise, set the prices of goods and services by adjusting the entries in the Average Costs table to reflect your campaign setting:

Meals for a party of adventurers per night

1 Handful

Standard inn room per night

1 Handful

Luxury inn room per night

1 Bag

Carriage ride

2 Handfuls

Mount (horse, mule, etc.)

3 Bags

Specialized tools

3 Handfuls

Fine clothing

3 Handfuls

Luxury clothing

1 Bag

Tier 1 equipment (weapons, armor)

1–5 Handfuls

Tier 2 equipment (weapons, armor)

1–2 Bags

Tier 3 equipment (weapons, armor)

5–10 Bags

Tier 4 equipment (weapons, armor)

1–2 Chests

RUNNING GM NPCS

When you run NPCs as the GM, you should always strive to follow your GM principles and use them to bring the world to life. Differentiate NPCs with unique manners of speech and action; let their individual goals and desires motivate their actions.

The only essential elements for a NPC are their name, description, and motive. If it’s likely that the PCs will roll actions against them, give them a Difficulty. Adversaries can be invented or improvised by modifying the stat block of another adversary.

If an NPC becomes an ally in combat, they don’t need a stat blockβ€”just put the spotlight on what they do and show how their involvement alters the fiction. If a PC capitalizes on their help during the scene, give the PC advantage. NPCs that don’t have Hit Points or Stress can still be injured or killed if the fiction demands it.

If you want an important NPC to mechanically interact with the system, you can give them one or more features with specific triggers and effects. An NPC might also have a choice that adjusts the parameters of their feature. For example:

ARCANE HOLD

Choice: When the battle begins, choose a favored PC.

Trigger: The first time during a battle the favored PC is within Close range and hit with an attack.

Effect: Make an attack roll with a +6 modifier against the adversary. On a success, the target is temporarily Restrained by tendrils of powerful magic.

NPC FEATURE EXAMPLES

VOLLEY OF ARROWS

Trigger: A battle begins and this NPC is involved.

Effect: Activate a countdown (Loop 3). It ticks down when a PC misses an attack. When it triggers, this NPC releases a volley of arrows at a target of the PCs’ choice, dealing 2d8+3 physical damage.

MENTOR

​​Choice: When the battle begins, choose a protΓ©gΓ© PC.

Trigger: Your protΓ©gΓ© is within Close range and fails an attack roll.

Effect: Move into Melee range with the PC and give them advice or guidance. The next attack roll they make has advantage.

REGROUP

​​Choice: When a battle begins, choose a point within Far range.

Trigger: All PCs have marked all of their Armor Slots.

Effect: Teleport all PCs and this NPC to the chosen spot and clear an Armor Slot on each target.

INTO THE NIGHT

Trigger: The PCs start a long rest with this NPC.

Effect: Roll 1d4. On a 2 or less, this NPC steals 1 handful of gold from the party while they are sleeping, then disappears into the night.

OPTIONAL GM MECHANICS

FATE ROLLS

When the GM wants to leave an outcome entirely up to chance, they call for a fate roll. The GM establishes what’s at stake and how the roll will be interpreted. Then a player rolls one of their Duality Dice and interprets the result.


Examples:

β€œRoll your Fear Die. On a 4 or lower, the fire spreads beyond this house.”

β€œI think it’s really up to chance whether reinforcements will make it to you in time. Go ahead and roll your Fear Dieβ€” that’ll determine the starting size of the countdown. When that triggers, reinforcements will arrive in your Far range.”

β€œGo ahead and roll your Hope Die to see how big the crowd at the inn is tonight. The higher the roll, the bigger the crowd.”

β€œMake a roll using your Hope Die to determine the number of Stamina Potions the shop has in stock.”


FALLING AND COLLISION DAMAGE

If a character falls to the ground, you can use the following as a guide to determine the damage they take:

  • A fall from Very Close range deals 1d10+3 physical damage.

  • A fall from Close range deals 1d20+5 physical damage.

  • A fall from Far or Very Far range deals 1d100+15 physical damage, or death at the GM’s discretion.

If a character collides with an object or another character at a dangerous speed, they take 1d20+5 direct physical damage.

MOVING AND FIGHTING UNDERWATER

By default, attack rolls made while the attacker is underwater have disadvantage.

For creatures that can’t breathe underwater, use a standard countdown (3) to track how long they can hold their breath.

Advance the countdown whenever the PC takes an action. In addition if they fail a roll or roll with Fear while underwater, you can spend your GM move to advance it an additional timeβ€”or twice, if they rolled a failure with Fear.

Once the countdown ends, the underwater PC must mark a Stress whenever they take an action.

CONFLICT BETWEEN PCS

Sometimes a player might want their character to act against another PC in the scene. Before jumping to rolling dice, discuss the situation with both players to decide how to resolve the conflict. A roll might not be necessary to reach an outcomeβ€”but if rolling will be fun for everyone involved, come to a consensus on the terms of the roll, then facilitate the scene according to the results.

On an attack roll against a PC, the attacker rolls against the defender’s Evasion, just like an adversary. On any other kind of action roll, the instigator makes an action roll and the target makes a reaction roll. To succeed, the instigator must beat a Difficulty equal to the total value of the reaction roll.

ADVERSARIES AND ENVIRONMENTS

USING ADVERSARIES

ADVERSARY STAT BLOCKS

All the information required to run an adversary is contained in their stat block. An adversary’s stat block includes their:

NAME

Each stat block has a unique name. Abilities that affect adversaries with a certain name include all adversaries who use that stat block, regardless of their in-story name.

TIER

Each adversary is designed to oppose PCs of a certain tier. If you confront the party with an adversary from another tier, adjust their stats.

TYPE

The adversary’s type appears alongside their tier. An adversary’s type represents the role they play in a conflict.

The adversary types are:

  • Bruisers: tough; deliver powerful attacks.

  • Hordes: groups of identical creatures acting together as a single unit.

  • Leaders: command and summon other adversaries.

  • Minions: easily dispatched but dangerous in numbers.

  • Ranged: fragile in close encounters but deal high damage at range.

  • Skulks: maneuver and exploit opportunities to ambush opponents.

  • Socials: present challenges around conversation instead of combat.

  • Solos: present a formidable challenge to a whole party, with or without support.

  • Standards: representative of their fictional group.

  • Supports: enhance their allies and disrupt their opponents.

DESCRIPTION

A summary of the adversary's appearance and demeanor.

MOTIVES & TACTICS

Suggusted impulses, actions and goals for the adversary.

DIFFICULTY

The Difficulty of any roll made against the adversary, unless otherwise noted.

DAMAGE THRESHOLDS, HIT POINTS, AND STRESS

These systems function the same way they do for PCs. The numbers listed after β€œThreshold” are the adversary’s Major and Severe Thresholds.

ATTACK MODIFIER

When you attack with the adversary, apply this bonus or penalty to your attack roll.

STANDARD ATTACK

A description of the adversary’s primary mode of inflicting harm on the PCs. It includes the attack’s name, its effective range, and the damage it deals on a success. Using an adversary’s standard attack is a GM move.

EXPERIENCE (OPTIONAL)

The GM can spend a Fear to add an adversary’s relevant Experience to raise their attack roll or increase the Difficulty of a roll made against them.

EXAMPLE EXPERIENCES:

Acrobatics

Hunt from Above

Navigation

Ambusher

Intimidation

Nobility

Bartering

Intrusion

Quick Reflexes

Blademaster

Keen Senses

Socialite

Bodyguard

Magical Knowledge

Stealth

Commander

Nature’s Friend

Tracker

FEATURE(S)

There are three kinds of adversary features: actions, reactions, and passives. Note: each adversaries stress is tracked individually. If a feature requires the GM to spend Stress to activate it, the Stress must come from the adversary whose feature is being activate. If a feature has a Fear requirement, it must be spent in addition to any Fear already spentβ€”for instance, to interrupt the PCs and put the spotlight on the adversary.

  • Actions: a special attack or other unique action that the adversary can perform when the spotlight is on them.

  • Reactions: special effects that take effect when their trigger occurs, regardless of whether the spotlight is on the adversary.

  • Passives: special abilities that remain in effect by default and require no resources or triggers to activate.

FEAR FEATURE(S)

High-impact effects that cost a Fear to activate.

EXAMPLE ADVERSARY FEATURES:

ACTIONS

Haymaker - Action: Make an attack against a target within Very Close range. On a success, deal X direct physical damage.

Shredding Strike - Action: Make an attack against a target within Very Close range. On a success, deal X physical damage and the target must mark an Armor Slot without gaining its benefit (they can still use armor to reduce the damage).

More Where That Came From - Action: Summon three Jagged Knife Lackeys, who appear at Far range.

REACTIONS

Heavy Hitter - Reaction: When this adversary deals damage with a standard attack, you can spend a Fear to gain a +X bonus to the damage roll.

Team-Up - Reaction: When another adversary within Very Close range of this adversary deals X damage to a creature, you can mark a Stress to make a standard attack against that same creature. On a success, combine the damage.

Momentum - Reaction: When this adversary makes a successful attack against a PC, you gain a Fear.

PASSIVES

Horde (X) - Passive: When the Horde has marked half or more of their HP, their standard attack deals X damage instead.

Minion (X) - Passive: This adversary is defeated when they take any damage. For every X damage a PC deals to this adversary, defeat an additional Minion within range the attack would succeed against.

Relentless (X) - Passive: This adversary can be spotlighted up to X times per GM turn. Spend Fear as usual to spotlight them.

Slow - Passive: When you spotlight this adversary and they don’t have a token on their stat block, they can’t act yet. Place a token on their stat block and describe what they’re preparing to do. When you spotlight this adversary and they have a token on their stat block, clear the token and they can act.

Arcane Form - Passive: This adversary is resistant to magic damage.

Armored Carapace - Passive: When this adversary takes physical damage, reduce it by X.

FEAR FEATURES

Explosion - Action: Spend a Fear to erupt in a fiery explosion. Make an attack against all targets within Close range. Targets the adversary succeeds against take 1d8 magic damage and are knocked back to Far range.

BUILDING BALANCED ENCOUNTERS

When planning a battle, start with [(3 x the number of PCs in combat) + 2] Battle Points and make the following adjustments:

  • -1 for an easier or shorter fight

  • -2 if you’re using 2 or more Solo adversaries

  • -2 if you add +1d4 (or a static +2) to all adversaries’ damage rolls

  • +1 if you choose an adversary from a lower tier

  • +1 if you don’t include any Bruisers, Hordes, Leaders, or Solos

  • +2 for a harder or longer fight

Then spend your Battle Points to add an adversary to the encounter:

  • Spend 1 point for each group of Minions equal to the size of the party.

  • Spend 1 point for each Social or Support adversary.

  • Spend 2 points for each Horde, Ranged, Skulk, or Standard adversary.

  • Spend 3 points for each Leader adversary.

  • Spend 4 points for each Bruiser adversary.

  • Spend 5 points for each Solo adversary.

DEFEATED ADVERSARIES

When an adversary marks their last Hit Point, they are defeated: incapacitated, tied up, routed, killed, or anything else the table decides makes sense.

ADVERSARY STAT BLOCK BENCHMARKS

ADVERSARY STATISTIC

TIER 1

TIER 2

TIER 3

TIER 4

Attack Modifier

+1

+2

+3

+4

Damage Dice

1d6+2 to 1d12+4

2d6+3 to 2d12+4

3d8+3 to 3d12+5

4d8+10 to 4d12+15

Difficulty

11

14

17

20

Damage Thresholds

Major 7/Severe 12

Major 10/Severe 20

Major 20/Severe 32

Major 25/Severe 45

ADVERSARIES BY TIER

This section contains the following stat blocks:

TIER 1 (LEVEL 1)

  • @UUID[Compendium.daggerheart.adversaries.Actor.89yAh30vaNQOALlz]{Acid Burrower}

  • @UUID[Compendium.daggerheart.adversaries.Actor.71qKDLKO3CsrNkdy]{Bear}

  • @UUID[Compendium.daggerheart.adversaries.Actor.8Zkqk1jU09nKL2fy]{Cave Ogre}

  • @UUID[Compendium.daggerheart.adversaries.Actor.uOP5oT9QzXPlnf3p]{Construct}

  • @UUID[Compendium.daggerheart.adversaries.Actor.CBBuEXAlLKFMJdjg]{Courtier}

  • @UUID[Compendium.daggerheart.adversaries.Actor.9x2xY9zwc3xzbXo5]{Deeproot Defender}

  • @UUID[Compendium.daggerheart.adversaries.Actor.wNzeuQLfLUMvgHlQ]{Dire Wolf}

  • @UUID[Compendium.daggerheart.adversaries.Actor.IIWV4ysJPFPnTP7W]{Giant Mosquitoes}

  • @UUID[Compendium.daggerheart.adversaries.Actor.4PfLnaCrOcMdb4dK]{Giant Rat}

  • @UUID[Compendium.daggerheart.adversaries.Actor.fmfntuJ8mHRCAktP]{Giant Scorpion}

  • @UUID[Compendium.daggerheart.adversaries.Actor.8KWVLWXFhlY2kYx0]{Glass Snake}

  • @UUID[Compendium.daggerheart.adversaries.Actor.uRtghKE9mHlII4rs]{Harrier}

  • @UUID[Compendium.daggerheart.adversaries.Actor.JRhrrEg5UroURiAD]{Archer Guard}

  • @UUID[Compendium.daggerheart.adversaries.Actor.B4LZcGuBAHzyVdzy]{Bladed Guard}

  • @UUID[Compendium.daggerheart.adversaries.Actor.mK3A5FTx6k8iPU3F]{Head Guard}

  • @UUID[Compendium.daggerheart.adversaries.Actor.5Lh1T0zaT8Pkr2U2]{Jagged Knife Bandit}

  • @UUID[Compendium.daggerheart.adversaries.Actor.MbBPIOxaxXYNApXz]{Jagged Knife Hexer}

  • @UUID[Compendium.daggerheart.adversaries.Actor.CBKixLH3yhivZZuL]{Jagged Knife Kneebreaker}

  • @UUID[Compendium.daggerheart.adversaries.Actor.C0OMQqV7pN6t7ouR]{Jagged Knife Lackey}

  • @UUID[Compendium.daggerheart.adversaries.Actor.aTljstqteGoLpCBq]{Jagged Knife Lieutenant}

  • @UUID[Compendium.daggerheart.adversaries.Actor.XF4tYTq9nPJAy2ox]{Jagged Knife Shadow}

  • @UUID[Compendium.daggerheart.adversaries.Actor.1zuyof1XuIfi3aMG]{Jagged Knife Sniper}

  • @UUID[Compendium.daggerheart.adversaries.Actor.Al3w2CgjfdT3p9ma]{Merchant}

  • @UUID[Compendium.daggerheart.adversaries.Actor.sRn4bqerfARvhgSV]{Minor Chaos Elemental}

  • @UUID[Compendium.daggerheart.adversaries.Actor.DscWkNVoHak6P4hh]{Minor Fire Elemental}

  • @UUID[Compendium.daggerheart.adversaries.Actor.3tqCjDwJAQ7JKqMb]{Minor Demon}

  • @UUID[Compendium.daggerheart.adversaries.Actor.G62k4oSkhkoXEs2D]{Minor Treant}

  • @UUID[Compendium.daggerheart.adversaries.Actor.SHXedd9zZPVfUgUa]{Green Ooze}

  • @UUID[Compendium.daggerheart.adversaries.Actor.aLkLFuVoKz2NLoBK]{Tiny Green Ooze}

  • @UUID[Compendium.daggerheart.adversaries.Actor.9rVlbJVrDNn1x7PS]{Red Ooze}

  • @UUID[Compendium.daggerheart.adversaries.Actor.1fkLQXVtmILqfJ44]{Tiny Red Ooze}

  • @UUID[Compendium.daggerheart.adversaries.Actor.wycLpvebWdUqRhpP]{Petty Noble}

  • @UUID[Compendium.daggerheart.adversaries.Actor.OROJbjsqagVh7ECV]{Pirate Captain}

  • @UUID[Compendium.daggerheart.adversaries.Actor.5YgEajn0wa4i85kC]{Pirate Raiders}

  • @UUID[Compendium.daggerheart.adversaries.Actor.mhcVkVFrzIJ18FDm]{Pirate Tough}

  • @UUID[Compendium.daggerheart.adversaries.Actor.bgreCaQ6ap2DVpCr]{Sellsword}

  • @UUID[Compendium.daggerheart.adversaries.Actor.7X5q7a6ueeHs5oA9]{Skeleton Archer}

  • @UUID[Compendium.daggerheart.adversaries.Actor.6l1a3Fazq8BoKIcc]{Skeleton Dredge}

  • @UUID[Compendium.daggerheart.adversaries.Actor.Q9LaVTyXF9NF12C7]{Skeleton Knight}

  • @UUID[Compendium.daggerheart.adversaries.Actor.10YIQl0lvCJXZLfX]{Skeleton Warrior}

  • @UUID[Compendium.daggerheart.adversaries.Actor.ldbWEL7uZs84vyrR]{Spellblade}

  • @UUID[Compendium.daggerheart.adversaries.Actor.qNgs3AbLyJrY19nt]{Swarm of Rats}

  • @UUID[Compendium.daggerheart.adversaries.Actor.VtFBt9XBE0WrGGxP]{Sylvan Soldier}

  • @UUID[Compendium.daggerheart.adversaries.Actor.PKSXFuaIHUCoH63A]{Tangle Bramble Swarm}

  • @UUID[Compendium.daggerheart.adversaries.Actor.XcAGOSmtCFLT1unN]{Tangle Bramble}

  • @UUID[Compendium.daggerheart.adversaries.Actor.ZNbQ2jg35LG4t9eH]{Weaponmaster}

  • @UUID[Compendium.daggerheart.adversaries.Actor.8yUj2Mzvnifhxegm]{Young Dryad}

  • @UUID[Compendium.daggerheart.adversaries.Actor.2UeZ0tEe7AzgSJNd]{Brawny Zombie}

  • @UUID[Compendium.daggerheart.adversaries.Actor.EQTOAOUrkIvS2z88]{Patchwork Zombie Hulk}

  • @UUID[Compendium.daggerheart.adversaries.Actor.gP3fWTLzSFnpA8EJ]{Rotted Zombie}

  • @UUID[Compendium.daggerheart.adversaries.Actor.2nXz4ilAY4xuhKLm]{Shambling Zombie}

  • @UUID[Compendium.daggerheart.adversaries.Actor.Nf0v43rtflV56V2T]{Zombie Pack}

TIER 2 (LEVELS 2–4)

  • @UUID[Compendium.daggerheart.adversaries.Actor.0ts6CGd93lLqGZI5]{Archer Squadron}

  • @UUID[Compendium.daggerheart.adversaries.Actor.vNIbYQ4YSzNf0WPE]{Apprentice Assassin}

  • @UUID[Compendium.daggerheart.adversaries.Actor.h5RuhzGL17dW5FBT]{Assassin Poisoner}

  • @UUID[Compendium.daggerheart.adversaries.Actor.dNta0cUzr96xcFhf]{Master Assassin}

  • @UUID[Compendium.daggerheart.adversaries.Actor.dgH3fW9FTYLaIDvS]{Battle Box}

  • @UUID[Compendium.daggerheart.adversaries.Actor.jDmHqGvzg5wjgmxE]{Chaos Skull}

  • @UUID[Compendium.daggerheart.adversaries.Actor.99TqczuQipBmaB8i]{Conscript}

  • @UUID[Compendium.daggerheart.adversaries.Actor.ZxWaWPdzFIUPNC62]{Courtesan}

  • @UUID[Compendium.daggerheart.adversaries.Actor.0NxCSugvKQ4W8OYZ]{Cult Adept}

  • @UUID[Compendium.daggerheart.adversaries.Actor.tyBOpLfigAhI9bU3]{Cult Fang}

  • @UUID[Compendium.daggerheart.adversaries.Actor.zx99sOGTXicP4SSD]{Cult Initiate}

  • @UUID[Compendium.daggerheart.adversaries.Actor.NoRZ1PqB8N5wcIw0]{Demonic Hound Pack}

  • @UUID[Compendium.daggerheart.adversaries.Actor.TLzY1nDw0Bu9Ud40]{Electric Eels}

  • @UUID[Compendium.daggerheart.adversaries.Actor.bfhVWMBUh61b9J6n]{Elite Soldier}

  • @UUID[Compendium.daggerheart.adversaries.Actor.ChwwVqowFw8hJQwT]{Failed Experiment}

  • @UUID[Compendium.daggerheart.adversaries.Actor.8VZIgU12cB3cvlyH]{Giant Beastmaster}

  • @UUID[Compendium.daggerheart.adversaries.Actor.YnObCleGjPT7yqEc]{Giant Brawler}

  • @UUID[Compendium.daggerheart.adversaries.Actor.5s8wSvpyC5rxY5aD]{Giant Recruit}

  • @UUID[Compendium.daggerheart.adversaries.Actor.OMQ0v6PE8s1mSU0K]{Giant Eagle}

  • @UUID[Compendium.daggerheart.adversaries.Actor.8mJYMpbLTb8qIOrr]{Gorgon}

  • @UUID[Compendium.daggerheart.adversaries.Actor.MYXmTx2FHcIjdfYZ]{Juvenile Flickerfly}

  • @UUID[Compendium.daggerheart.adversaries.Actor.7ai2opemrclQe3VF]{Knight of the Realm}

  • @UUID[Compendium.daggerheart.adversaries.Actor.niBpVU7yeo5ccskE]{Masked Thief}

  • @UUID[Compendium.daggerheart.adversaries.Actor.Vy02IhGhkJLuezu4]{Merchant Baron}

  • @UUID[Compendium.daggerheart.adversaries.Actor.rM9qCIYeWg9I0B4l]{Minotaur Wrecker}

  • @UUID[Compendium.daggerheart.adversaries.Actor.mVV7a7KQAORoPMgZ]{Mortal Hunter}

  • @UUID[Compendium.daggerheart.adversaries.Actor.EtLJiTsilPPZvLUX]{Royal Advisor}

  • @UUID[Compendium.daggerheart.adversaries.Actor.sLAccjvCWfeedbpI]{Secret-Keeper}

  • @UUID[Compendium.daggerheart.adversaries.Actor.YmVAkdNsyuXWTtYp]{Shark}

  • @UUID[Compendium.daggerheart.adversaries.Actor.BK4jwyXSRx7IOQiO]{Siren}

  • @UUID[Compendium.daggerheart.adversaries.Actor.5tCkhnBByUIN5UdG]{Spectral Archer}

  • @UUID[Compendium.daggerheart.adversaries.Actor.65cSO3EQEh6ZH6Xk]{Spectral Captain}

  • @UUID[Compendium.daggerheart.adversaries.Actor.UFVGl1osOsJTneLf]{Spectral Guardian}

  • @UUID[Compendium.daggerheart.adversaries.Actor.8zlynOhnVA59KpKT]{Spy}

  • @UUID[Compendium.daggerheart.adversaries.Actor.3aAS2Qm3R6cgaYfE]{Stonewraith}

  • @UUID[Compendium.daggerheart.adversaries.Actor.noDdT0tsN6FXSmC8]{War Wizard}

TIER 3 (LEVELS 5–7)

  • @UUID[Compendium.daggerheart.adversaries.Actor.G7jiltRjgvVhZewm]{Adult Flickerfly}

  • @UUID[Compendium.daggerheart.adversaries.Actor.pnyjIGxxvurcWmTv]{Demon of Avarice}

  • @UUID[Compendium.daggerheart.adversaries.Actor.kE4dfhqmIQpNd44e]{Demon of Despair}

  • @UUID[Compendium.daggerheart.adversaries.Actor.2VN3BftageoTTIzu]{Demon of Hubris}

  • @UUID[Compendium.daggerheart.adversaries.Actor.SxSOkM4bcVOFyjbo]{Demon of Jealousy}

  • @UUID[Compendium.daggerheart.adversaries.Actor.5lphJAgzoqZI3VoG]{Demon of Wrath}

  • @UUID[Compendium.daggerheart.adversaries.Actor.tBWHW00epmMnkawe]{Dire Bat}

  • @UUID[Compendium.daggerheart.adversaries.Actor.wR7cFKrHvRzbzhBT]{Dryad}

  • @UUID[Compendium.daggerheart.adversaries.Actor.P7h54ZePFPHpYwvB]{Elemental Spark}

  • @UUID[Compendium.daggerheart.adversaries.Actor.dsfB3YhoL5SudvS2]{Greater Earth Elemental}

  • @UUID[Compendium.daggerheart.adversaries.Actor.xIICT6tEdnA7dKDV]{Greater Water Elemental}

  • @UUID[Compendium.daggerheart.adversaries.Actor.6hbqmxDXFOzZJDk4]{Huge Green Ooze}

  • @UUID[Compendium.daggerheart.adversaries.Actor.MI126iMOOobQ1Obn]{Hydra}

  • @UUID[Compendium.daggerheart.adversaries.Actor.yx0vK2yfNVZKWUUi]{Monarch}

  • @UUID[Compendium.daggerheart.adversaries.Actor.KGVwnLq85ywP9xvB]{Stag Knight}

  • @UUID[Compendium.daggerheart.adversaries.Actor.XK78QUfY8c8Go8Uv]{Oak Treant}

  • @UUID[Compendium.daggerheart.adversaries.Actor.o63nS0k3wHu6EgKP]{Treant Sapling}

  • @UUID[Compendium.daggerheart.adversaries.Actor.i2UNbRvgyoSs07M6]{Head Vampire}

  • @UUID[Compendium.daggerheart.adversaries.Actor.WWyUp6Mxl1S3KYUG]{Vampire}

  • @UUID[Compendium.daggerheart.adversaries.Actor.JqYraOqNmmhHk4Yy]{Vault Guardian Gaoler}

  • @UUID[Compendium.daggerheart.adversaries.Actor.FVgYb28fhxlVcGwA]{Vault Guardian Sentinel}

  • @UUID[Compendium.daggerheart.adversaries.Actor.c5hGdvY5UnSjlHws]{Vault Guardian Turret}

  • @UUID[Compendium.daggerheart.adversaries.Actor.UGPiPLJsPvMTSKEF]{Young Ice Dragon}

TIER 4 (LEVELS 8–10)

  • @UUID[Compendium.daggerheart.adversaries.Actor.WPEOIGfclNJxWb87]{Arch-Necromancer}

  • @UUID[Compendium.daggerheart.adversaries.Actor.OsLG2BjaEdTZUJU9]{Fallen Shock Troop}

  • @UUID[Compendium.daggerheart.adversaries.Actor.PELRry1vqjBzSAlr]{Fallen Sorcerer}

  • @UUID[Compendium.daggerheart.adversaries.Actor.hxZ0sgoFJubh5aj6]{Fallen Warlord: Realm-Breaker}

  • @UUID[Compendium.daggerheart.adversaries.Actor.RXkZTwBRi4dJ3JE5]{Fallen Warlord: Undefeated Champion}

  • @UUID[Compendium.daggerheart.adversaries.Actor.kabueAo6BALApWqp]{Hallowed Archer}

  • @UUID[Compendium.daggerheart.adversaries.Actor.VENwg7xEFcYObjmT]{Hallowed Soldier}

  • @UUID[Compendium.daggerheart.adversaries.Actor.r1mbfSSwKWdcFdAU]{High Seraph}

  • @UUID[Compendium.daggerheart.adversaries.Actor.4nqv3ZwJGjnmic8j]{Kraken}

  • @UUID[Compendium.daggerheart.adversaries.Actor.befIqd5IYKg6eUz2]{Oracle of Doom}

  • @UUID[Compendium.daggerheart.adversaries.Actor.A0SeeDzwjvqOsyof]{Outer Realms Abomination}

  • @UUID[Compendium.daggerheart.adversaries.Actor.ms6nuOl3NFkhPj1k]{Outer Realms Corruptor}

  • @UUID[Compendium.daggerheart.adversaries.Actor.moJhHgKqTKPS2WYS]{Outer Realms Thrall}

  • @UUID[Compendium.daggerheart.adversaries.Actor.ladm7wykhZczYzrQ]{Volcanic Dragon: Obsidian Predator}

  • @UUID[Compendium.daggerheart.adversaries.Actor.eArAPuB38CNR0ZIM]{Volcanic Dragon: Molten Scourge}

  • @UUID[Compendium.daggerheart.adversaries.Actor.pMuXGCSOQaxpi5tb]{Volcanic Dragon: Ashen Tyrant}

  • @UUID[Compendium.daggerheart.adversaries.Actor.CP6iRfHdyFWniTHY]{Perfected Zombie}

  • @UUID[Compendium.daggerheart.adversaries.Actor.YhJrP7rTBiRdX5Fp]{Zombie Legion}

USING ENVIRONMENTS

Environments represent everything in a scene beyond the PCs and adversaries, such as the physical space, background NPCs, and natural forces.

ENVIRONMENT STAT BLOCK

Each environment’s stat block presents their necessary mechanical statistics:

NAME

The unique name of the environment stat block.

TIER

The PC tier the environment is designed to challenge.

TYPE

The type of scene it most easily supports:

  • Explorations β€” wondrous locations with mysteries and marvels to discover

  • Socials β€” locations that primarily present interpersonal challenges

  • Traversals β€” dangerous locations where movement through and around the space itself is a challenge

  • Events β€” special activities or occurrences (rather than physical spaces)

DESCRIPTION

An evocative one-line summary of the environment.

IMPULSES

The manner or mode with which the environment pushs and pulls the people within them.

DIFFICULTY

The standard Difficulty for action rolls made to overcome, oppose, or resist the environment or its elements.

POTENTIAL ADVERSARIES

Suggested adversaries that might appear in scenes within the environment.

FEATURES

Features provide inspiration for GM moves you can use that represent the dynamic landscape or situation.

FEATURE QUESTIONS

Prompts for plot hooks, narrative engines, and connections to other story elements.

ADAPTING ENVIRONMENTS

Sometimes you want to use an environment but it’s at the wrong tier for your party. Or you might want to replace a feature or two, then present it as an entirely different environment. Whether planning your session or even improvising an environment mid-session, you can adjust an existing environment’s stat block to fit the needs of your scene or improvise elements as needed. The environments framework is there to help organize ideas, not to stifle creativity.

When you need to quickly adjust a stat block to a different tier, you can simply replace its existing statistics with those listed on the Environment Statistics by Tier table, using the column that corresponds to your party’s tier.

BENCHMARK STATISTICS FOR ENVIRONMENTS BY TIER

Environment Statistic

Tier 1

Tier 2

Tier 3

Tier 4

Damage Dice

1d6+1 to 1d8+3

2d6+3 to 2d10+2

3d8+3 to 3d10+1

4d8+3 to 4d10+10

Difficulty

11

14

17

20

ENVIRONMENT STAT BLOCKS BY TIER

This section contains the following stat blocks.

@UUID[Compendium.daggerheart.environments.Folder.GQ0VnOLrKBIHR6Us]{TIER 1 (LEVEL 1)}

  • @UUID[Compendium.daggerheart.environments.Actor.pGEdzdLkqYtBhxnG]{Abandoned Grove (Exploration)}

  • @UUID[Compendium.daggerheart.environments.Actor.uGEdNYERCTJBEjc5]{Ambushed (Event)}

  • @UUID[Compendium.daggerheart.environments.Actor.uXZpebPR77YQ1oXI]{Ambushers (Event)}

  • @UUID[Compendium.daggerheart.environments.Actor.HZKA7hkej7JJY503]{Bustling Marketplace (Social)}

  • @UUID[Compendium.daggerheart.environments.Actor.LPpfdlNKqiZIl04w]{Cliffside Ascent (Traversal)}

  • @UUID[Compendium.daggerheart.environments.Actor.cM4X81DOyvxNIi52]{Local Tavern (Social)}

  • @UUID[Compendium.daggerheart.environments.Actor.YezryR32uo39xRxW]{Outpost Town (Social)}

  • @UUID[Compendium.daggerheart.environments.Actor.t4cdqTfzcqP3H1vJ]{Raging River (Traversal)}

@UUID[Compendium.daggerheart.environments.Folder.XMeecO3IRvu5ck6F]{TIER 2 (LEVELS 2–4)}

  • @UUID[Compendium.daggerheart.environments.Actor.QAXXiOKBDmCTauHD]{Cult Ritual (Event)}

  • @UUID[Compendium.daggerheart.environments.Actor.dsA6j69AnaJhUyqH]{Hallowed Temple (Social)}

  • @UUID[Compendium.daggerheart.environments.Actor.OzYbizKraK92FDiI]{Haunted City (Exploration)}

  • @UUID[Compendium.daggerheart.environments.Actor.acMu9wJrMZZzLSTJ]{Mountain Pass (Traversal)}

@UUID[Compendium.daggerheart.environments.Folder.MfrIkJK12PAEfbPL]{TIER 3 (LEVELS 5–7)}

  • @UUID[Compendium.daggerheart.environments.Actor.oY69NN4rYxoRE4hl]{Burning Heart of the Woods (Exploration)}

  • @UUID[Compendium.daggerheart.environments.Actor.1eZ32Esq7rfZOjlu]{Castle Siege (Event)}

  • @UUID[Compendium.daggerheart.environments.Actor.EWD3ZsLoK6VMVOf7]{Pitched Battle (Event)}

@UUID[Compendium.daggerheart.environments.Folder.IKumu5HTLqONLYqb]{TIER 4 (LEVELS 8–10)}

  • @UUID[Compendium.daggerheart.environments.Actor.2Z1mKc65LxNk2PqR]{Chaos Realm (Traversal)}

  • @UUID[Compendium.daggerheart.environments.Actor.4DLYez7VbMCFDAuZ]{Divine Usurpation (Event)}

  • @UUID[Compendium.daggerheart.environments.Actor.jr1xAoXzVwVblzxI]{Imperial Court (Social)}

  • @UUID[Compendium.daggerheart.environments.Actor.h3KyRL7AshhLAmcH]{Necromancer’s Ossuary (Exploration)}

ADDITIONAL GM GUIDANCE

This section provides additional guidance for preparing and running a session of Daggerheart.

STORY BEATS

In storytelling, a beat is a moment that changes the trajectory of the narrativeβ€”a shift in the world, a significant action or reaction, an emotional revelation, or an important decision.

Take turns with the players, narrating a beat and then letting them react and carry the scene forward with their own beats.

When preparing for a session, plan in terms of the moments that give shape to each scene or sequence, rather than pre-scripting specific details or exchanges.

PREPARING COMBAT ENCOUNTERS

Build the hurdles the PCs face around the question of β€œWhat helps tell the story?” Enemies, environments, and hazards are the tools for heightening tension and creating drama. Ensure that combat is being used to give players more information about the unfolding story, revealing the world, the plot, or the characters.

BATTLES AND NARRATIVE

Dynamic battles create suspense by forcing players to choose between their various objectives, engaging their character’s motivations and weaknesses, and creating the crucible that the players use to forge their characters into legendary heroes. When preparing combat encounters:

  • Consider the narrative function of the battle

  • Base adversaries’ moves on their motives

  • Use dynamic environments to bring the battleground to life

  • Add enemies that can interact with the PCs’ features and special abilities

SESSION REWARDS

Reward players at the end of a session with:

  • Useful information

  • Story hooks

  • Loot

  • Gold

  • Access to new equipment or enhancements

CRAFTING SCENES

Whenever you start a session, arrive at a new place, or change the situation, tell the players what they need to know by thinking with all of your senses and sharing something unique or unexpected about the fiction.

ENGAGING YOUR PLAYERS

Keep your players engaged by:

  • Rotating the Focus between the PCs

  • Tying Together Story Elements

  • Engaging Quiet Players

  • Using Visual Aids

  • Encouraging Unguided Play

  • Confronting the PCs with internal and external conflicts

  • Raise the Stakes by Spending Fear

  • Layering Goals Other than Attrition into Combat (see Table of Random Objectives on the next page)

@UUID[Compendium.daggerheart.rolltables.RollTable.I5L1dlgxXTNrCCkL]{Table of Random Objectives}

PHASED BATTLES

Make battles by shifting the nature of its enemies or environment mid-combat:

  • Change the Terms of Engagement

  • Alter the Environment

  • Evolve the Opposition

USING DOWNTIME

Use downtime scenes as a pressure release valve to vary the intensity of the story and give the PCs room to breathe.

Empower your players to frame their own downtime scenes.

Ask the players what it looks like as they tend to their wounds or unwind together, encouraging them to take the reins and work with other players whose characters are involved

PROJECTS DURING DOWNTIME

The Work on a Project downtime move requires more GM input than other downtime moves and is best suited for long-term endeavors the PCs wish to undertake.

These projects are typically tracked using a Progress Countdown. When deciding the starting value of the countdown, consider the complexity of the project, the availability of relevant tools, and the impact of the project on the story.

Simple projects advance their countdown each time a player uses the Work on a Project move, but complex projects require a roll.

EXTENDED DOWNTIME

When you fast-forward the story across an extended period, use montages to illustrate the passage of time. You gain 1d6 Fear per PC and advance any long-term countdowns as appropriate.

CAMPAIGN FRAMES

A campaign frame provides inspiration, tools, and mechanics to support a particular type of story at the table.

Every campaign frame has a complexity rating that indicates how much its mechanics deviate from or expand upon the Daggerheart core ruleset.

Each campaign frame includes the following sections.

  • A pitch to present to players

  • Suggestions and guidance on tone, feel, themes, and touchstones

  • An overview of the campaign’s background

  • Guidance for fitting communities, ancestries, and classes into the setting

  • Principles for players and GMs to focus on during the campaign

  • Unique setting distinctions

  • An inciting incident to launch the campaign

  • Special mechanics to use during the campaign

  • Questions to consider during session zero

You can find each campaign frame map in the appendix of the core rulebook or at www.daggerheart.com/downloads.

" + "content": "

INTRODUCTION

The GM is responsible for guiding the narrative and roleplaying the world the PCs inhabit. This section provides you with advice for running Daggerheart: using the core mechanics; creating memorable encounters; planning exciting sessions; selecting, creating, and using GM moves; crafting a full campaign; running dynamic NPCs; and more.

GM GUIDANCE

These three sections provide a foundation to help you get the most out of this game. The β€œGM Principles” are your guiding starβ€”when in doubt, return to these principles.

GM PRINCIPLES

BEGIN AND END WITH THE FICTION

Use the fiction to drive mechanics, then connect the mechanics back to the fiction.

COLLABORATE AT ALL TIMES, ESPECIALLY DURING CONFLICT

The PCs are the protagonists of the campaign; antagonism between player and GM should exist only in the fiction.

FILL THE WORLD WITH LIFE, WONDER, AND DANGER

Showcase rich cultures, take the PCs to wondrous places, and introduce them to dangerous creatures.

ASK QUESTIONS AND INCORPORATE THE ANSWERS

Ensuring that the players’ ideas are included results in a narrative that supports the whole group’s creativity.

GIVE EVERY ROLL IMPACT

Only ask the players to roll during meaningful moments.

PLAY TO FIND OUT WHAT HAPPENS

Be surprised by what the characters do, the choices they make, and the people they become.

HOLD ON GENTLY

Don’t worry if you need to abandon or alter something that came before.

GM PRACTICES

CULTIVATE A CURIOUS TABLE

Follow what catches the players’ interest to foster an environment of creative inquiry.

GAIN YOUR PLAYERS’ TRUST

Act in good faith, follow through on your promises, admit your mistakes.

KEEP THE STORY MOVING FORWARD

Advance the story through escalating action, new information, or changing circumstances after every action roll, whether it succeeds or fails.

CUT TO THE ACTION

Skip past the boring bits. When a scene drags on, end it.

HELP THE PLAYERS USE THE GAME

Players have more fun when you help them understand the system.

CREATE A META CONVERSATION

Empower players to speak out of character, use safety tools, and ask for clarification.

TELL THEM WHAT THEY WOULD KNOW

Don’t hide obvious details or important information from the players.

GROUND THE WORLD IN MOTIVE

An NPC’s actions flow from their goals and desires.

BRING THE GAME’S MECHANICS TO LIFE

Set a good example of how fiction and mechanics work together to enhance the game experience.

REFRAME RATHER THAN REJECT

If a player’s contribution conflicts with the fiction, work with them to reshape it.

WORK IN MOMENTS AND MONTAGES

When framing a scene, decide which beats should be savored and which shouldn’t linger.

PITFALLS TO AVOID

UNDERMINING THE HEROES

If a roll doesn’t go well, show how it was impacted by an adversary’s prowess, environmental factors, or unexpected surprises, rather than the PC’s incompetence.

ALWAYS TELLING THE PLAYERS WHAT TO ROLL

Let the players decide how to handle a challenge.

LETTING SCENES DRAG

Shake it up or cut away when a scene has concluded, the table’s energy is flagging, or people are talking in circles.

SINGULAR SOLUTIONS

Don’t get hung up on one right answer to a problem. If the players have a clever idea, make it work.

OVERPLANNING

Spend your prep time inventing situations instead of scripting scenes. If the players surprise you, take a break to think through your options.

HOARDING FEAR

Spend Fear when you have the opportunity. The players will always generate more.

For more in-depth GM guidance, see pg. 140 of the Daggerheart Core Rulebook.

CORE GM MECHANICS

ROLLING DICE

The GM has no Duality Dice; instead, they roll a single d20 called the GM’s Die.

ADVERSARY ATTACK ROLLS

When an adversary attacks a PC, roll your d20 and add the adversary’s attack bonus to the result. If the total meets or beats the target’s Evasion, the attack succeeds; otherwise, the attack fails. On a successful attack, roll the attack’s damage dice to determine how much it deals.

If you roll a natural 20 on an attack, your roll automatically succeeds and you deal extra damage. Roll damage normally, then add the highest number on the damage dice to the total.

For example, an attack that deals 3d6+2 deals 18+3d6+2 on a critical success; the critical success does not affect the flat damage modifier.


Note: a critical success on an adversary’s reaction roll automatically succeeds, but confers no additional benefit.


GUIDANCE ON ACTION ROLLS

After a player describes a move they want to make during the game, you might decide an action roll is necessary to determine how the scene progresses. Use this guide to determine what to present the player, choosing whichever option best fits the situation:

  • Determine whether the roll is necessary, considering the PC’s Experiences or backstory, the pressure they’re acting under, and the possible outcomes.

  • Establish the stakes of an action roll before the player makes it.

  • Communicate any unavoidable consequences.

  • If desired, you can offer the player the opportunity to forgo an action roll in exchange for agreeing to an interesting outcome, cost, or complication.

MAKING MOVES

As the GM, you have GM moves that change the story in response to the players’ actions. GM moves aren’t bound by specific spells or effectsβ€”when you make a GM move, you can describe the action in whatever way the fiction demands.

GM moves happen during GM turns. A GM turn begins when the spotlight passes to them and ends when the spotlight passes back to the players.

WHEN TO MAKE A MOVE

The GM can make a GM move whenever you want, but the frequency and severity depends on the type of story you’re telling, the actions your players take, and the tone of the session you’re running.

Make a GM move when the players:

  • Roll with Fear

  • Fail an action roll

  • Do something that has unavoidable consequences

  • Give you a β€œgolden opportunity” (an opening that demands an immediate response)

  • Look to you for what happens next

CHOOSING GM MOVES

The result of a player’s action roll determines your response:

On a Critical Success, you let the player describe their success, then give them an additional opportunity or advantage.

On a Success with Hope, you let the player describe their success, then you show how the world reacts to it.

On a Success with Fear, you work with the player to describe their success, then take a Fear and make a GM move to introduce a minor consequence, complication, or cost:

  • An adversary attacks

  • The PC marks a Stress

  • You introduce a new threat

  • You raise the stakes of the conflict

On a Failure with Hope, you describe how the PC fails to get what they want, then make a GM move to introduce a minor consequence, complication, or cost:

  • An adversary attacks

  • The PC marks a Stress

  • You introduce a new threat

  • You raise the stakes of the conflict

On a Failure with Fear, you describe how things go wrong, then make a GM move to introduce a major consequence, complication, or cost:

  • You put them in immediate danger

  • They become the focus of multiple adversaries

  • They are separated from their party

  • They lose an important opportunity for good.

QUICK REFERENCE:

RESOLVING ACTION ROLLS

If you’re unsure how to resolve a roll, think about these quick phrases:

Success with Hope: Yes, and… (You get what you want and gain a Hope.)

Success with Fear: Yes, but… (You get what you want, but there’s a consequence, and the GM gains a Fear.)

Failure with Hope: No, but… (Things don’t go as planned, but you gain a Hope.)

Failure with Fear: No, and… (Things don’t go as planned and it gets worse. The GM gains a Fear.)

If the move you should make is not obvious from the fiction, draw inspiration from the β€œExample GM Moves” list:

  • Introduce a new obstacle or enemy

  • Ask the player what happens

  • Have the PC mark a Stress

  • Tell the players β€œeverything is fine… for now.”

SOFT AND HARD MOVES

Soft moves go easier on the playersβ€”they give the party new information about the scene and offer them an opportunity to react to it. Hard moves are harsher, more impactful, or more directβ€”the PCs don’t get an opening to interrupt, alter, or anticipate the outcome.

Use softer moves on rolls with Hope and harder moves on rolls with Fear.


Example GM Moves

  • Show how the world reacts

  • Ask a question and build on the answer

  • Make an NPC act in accordance with their motive

  • Drive a PC to take action by dangling their goals in front of them

  • Signal an imminent off-screen threat

  • Reveal an unwelcome truth or unexpected danger

  • Force the group to split up

  • Make a PC mark Stress

  • Make a move the characters don’t see

  • Show the collateral damage

  • Clear an adversary’s condition

  • Shift the environment

  • Spotlight an adversary

  • Capture someone or something important

  • Use a PC’s backstory against them

  • Take away an opportunity permanently.


USING FEAR

You start a campaign with 1 Fear per PC in the party.

You gain Fear whenever a PC rolls with Fear, the PCs take a rest (see: Downtime), or when an ability or effect tells you to.

You can never have more than 12 Fear at one time.

Fear carries over between sessions.

Spend a Fear to:

  • Interrupt the players to steal the spotlight and make a move

  • Make an additional GM move

  • Use an adversary’s Fear Feature

  • Use an environment’s Fear Feature

  • Add an adversary’s Experience to a roll

The dramatic tension of a scene correlates with the amount of Fear you spend during it. For guidance on how much Fear you should spend in a scene, consult the following table:

Incidental

A catch-up between PCs after an emotionally charged scene; gathering information; resupplying at a local market; resting during downtime.

0–1 Fear

Minor

A travel sequence; a minor skirmish that introduces new foes or signals future trouble.

1–3 Fear

Standard

A substantial battle with a notable objective; perilous travel that tests might and wit; a tense social encounter seeking crucial information or aid.

2–4 Fear

Major

A large battle with a Solo or Leader adversary; a character-defining scene with a significant change to a character’s personal story (such as revelation, growth, and betrayal).

4–8 Fear

Climactic

A major confrontation with the villain of a story arc; an epic set piece battle; a judicial duel to determine an important NPC’s fate.

6–12 Fear

If you find yourself with a large amount of Fear, consider:

  • Spending Fast: Spend Fear before the players have a chance to react

  • Spending Often: Spend Fear every time the spotlight swings to you

  • Spending Big: Spend Fear to make multiple moves in a row

Spending Fear to make a move communicates the increased impact of your action. Fear moves often include one or more of these elements:

  • Introducing new adversaries to a scene when their appearance hasn’t been foreshadowed or lacks context.

  • An adversary activating a powerful spell or transformation to deal massive damage or boost their capabilities.

  • An environment exerting a strong negative effect on the party.

DIFFICULTY BENCHMARKS

The Difficulty of an attack roll against an adversary is equal to the adversary’s Difficulty score. The Difficulty of any other action rolls against an adversary is equal to the adversary’s Difficulty score, plus (if applicable) the value of one of the adversary relevant Experience modifiers.

When a player makes an action roll without a specified Difficulty, the GM sets the Difficulty according to the totality of the circumstances. Refer to the following benchmark table for more guidance:

AGILITY

ROLL

SPRINT

LEAP

MANEUVER

5

Sprint within Close range across an open field with an enemy present.

Make a running jump of half your height (about 3 feet for a human).

Walk slowly across a narrow beam.

10

Sprint within Far range across an open field with an enemy present.

Make a running jump of your height (about 6 feet for a human).

Walk quickly across a narrow beam.

15

Sprint within Close range across rough terrain with an enemy present.

Make a running jump of double your height (about 12 feet for a human).

Run across a narrow beam.

20

Sprint within Close range through an active battle of multiple enemies.

Make a running jump of three times your height (about 18 feet for a human).

Run across a narrow beam in heavy wind.

25

Sprint within Far range through a pitched battle in rough terrain.

Make a running jump of five times your height (about 30 feet for a human).

Run across a very narrow beam in an active rainstorm.

30

Sprint across the heads of your enemies in a pitched battle.

Make a running jump of ten times your height (about 60 feet for a human).

Run across an inch-wide, oil-slicked beam in an active rainstorm.

STRENGTH

ROLL

LIFT

SMASH

GRAPPLE

5

Lift a chair.

Destroy a glass cup.

Subdue a child.

10

Lift a table or small chest.

Destroy a small wooden table.

Subdue a weak adult.

15

Lift a grown person or large chest.

Break through a wooden door.

Subdue an average adult.

20

Lift the side of a laden cart or carry a large chest up stairs.

Break through a stone wall.

Subdue a skilled wrestler.

25

Lift a horse, an ox, or a large monster.

Break through a dragon’s teeth.

Subdue a large beast.

30

Lift a falling portcullis gate.

Break a god’s grip.

Subdue a legendary beast.

FINESSE

ROLL

CONTROL

HIDE

TINKER

5

Ride a horse through easy terrain.

Evade notice under full cover on a moonless night.

Open a sticky lock with the appropriate key.

10

Drive an ox-pulled cart.

Evade notice in limited cover on a moonless night.

Open a simple puzzle box.

15

Ride a horse through rough terrain.

Evade notice in limited cover on an average night.

Disable a standard trap.

20

Drive a cart through rough terrain.

Evade notice in the shadows on an average night.

Disable a complicated trap.

25

Ride a wild horse through dangerous terrain.

Evade notice with minimal cover in ample light.

Open a door secured by a sequence of elaborate locks.

30

Ride an enraged beast through dangerous terrain.

Evade notice with no cover in full daylight.

Disable an incredibly sensitive and deadly trap.

INSTINCT

ROLL

PERCEIVE

SENSE

NAVIGATE

5

Hear a loud noise twenty paces away.

Detect an obvious ambush or notice an obvious deception.

Follow a well-trod path in good lighting and weather.

10

Hear a speaking voice fifty paces away.

Detect a looming threat or notice an average person’s lies.

Follow an average path in good lighting and weather.

15

Hear someone walking in the woods fifty paces away.

Detect hostile intent from a foe or see through a merchant’s lies.

Follow a subtle path through rough conditions.

20

Hear someone sneaking through the woods fifty paces away.

Detect a politician’s veiled hostility or detect a nearby assassin.

Follow a subtle path through harsh conditions.

25

Hear a prowling animal fifty paces away.

Identify a spymaster’s plot or read a politican’s true intentions.

Find your way with no path through dangerous conditions.

30

Hear a diving bird a hundred paces away.

Sense a shred of doubt within a god’s pronouncement.

Find your way through a trickery god’s maze.

PRESENCE

ROLL

CHARM

PERFORM

DECEIVE

5

Win the trust of a friendly neighbor.

Earn a meal from a friendly crowd.

Trick a trusting acquaintance.

10

Win the trust of a friendly stranger.

Earn room and board in a small town or impress a small crowd.

Trick an average stranger.

15

Win the trust of a cautious stranger or talk your way into a noble’s party.

Earn room and board in a low-end tavern or impress a large crowd.

Trick an average merchant.

20

Win the trust of a sympathetic foe or talk your way into an enemy’s party.

Earn lodging in a high-end tavern or impress a full theater.

Trick a trained courtier.

25

Turn an enemy against their ruler or talk your way into a fae court.

Earn your keep in a royal court or impress a full colosseum.

Trick a spymaster.

30

Talk a hostile god into granting you a boon.

Save yourself from execution after offending the queen.

Trick a god.

KNOWLEDGE

ROLL

RECALL

ANALYZE

COMPREHEND

5

Recall uncommon facts about your community.

Unpack an obvious metaphor in a simple text.

Learn simple skills from an excellent teacher.

10

Recall uncommon facts about a neighboring community.

Identify obvious subtext in a conversation.

Learn simple skills from an average teacher.

15

Recall uncommon facts about a distant community.

Break an average cipher in a coded message.

Learn complicated skills from an excellent teacher.

20

Recall specialized facts about a distant community.

Identify a weakness in a complicated battle plan.

Learn complicated skills under poor conditions.

25

Recall specialized facts about a fallen kingdom.

Predict the downfall of a nation based on concealed misdeeds.

Learn complicated skills quickly under dangerous conditions.

30

Recall secret information about an obscure historical group.

Identify the weakness in a divine champion’s fighting form.

Learn complicated skills quickly from incomplete information.

GIVING ADVANTAGE AND DISADVANTAGE

To viscerally convey how a PC’s actions or circumstances affect their ability to act, grant them advantage die (or impose disadvantage die) instead of adjusting the Difficulty of an action roll.

ADVERSARY ACTION ROLLS

By default, adversaries don’t normally make action rolls except for attack rolls and any unique actions described in their stat blocks. Any other action an adversary attempts simply succeeds without an action roll; if you want an adversary’s action to have a chance of failure, have any relevant PCs make reaction rolls instead.

However, for especially dramatic or difficult tasks that the PCs can’t influence, you can give an adversary an action roll anyway. For an adversary’s action roll, roll a d20. If the result is equal to or greater than the action’s Difficulty, the action succeedsβ€”otherwise it fails. You can spend a Fear before rolling to add a relevant Experience from the adversary’s stat block to the total. Use the same procedure when an adversary makes a reaction roll.

ADVERSARY ADVANTAGE & DISADVANTAGE

If an adversary has advantage on an action roll, the GM rolls an extra d20 and counts only the higher result. If an adversary has disadvantage on an action roll, the GM rolls an extra d20 and counts only the lower result.

ADVERSARY ATTACKS

When an adversary attacks a PC, the GM rolls a d20 and adds the adversary’s Attack Modifier to the result. If the total meets or beats the target’s Evasion, the attack succeeds; otherwise, it fails. Before rolling, the GM can grant the attacking adversary advantage, impose disadvantage, or spend a Fear to add a relevant Experience from the adversary’s stat block to the total.

On a success, the adversary deals the damage listed in their stat block to the target.

When an adversary’s action lets the GM make an attack against multiple targets, they make one attack roll and compare it to each target’s Evasion separately.

COUNTDOWNS

Countdowns represent a period of time or series of events preceding a future effect. A countdown begins at a starting value. When a countdown advances, it’s reduced by 1. The countdown’s effect is triggered when the countdown reaches 0.


Note: You can track countdowns by β€œspinning down” dice or ticking off boxes.


Standard countdowns advance every time a player makes an action roll. If an adversary or environment ability refers to a β€œCountdown [n],” then it means a standard countdown with a starting value of n.

Dynamic countdowns advance by up to 3 depending on the outcomes of action rolls. Consequence countdowns are dynamic countdowns to negative effects. Progress countdowns are dynamic countdowns to positive effects. Dynamic countdowns advance according to this chart:

DYNAMIC COUNTDOWN ADVANCEMENT

Roll Result

Progress Advancement

Consequence Advancement

Failure with Fear

No advancement

Tick down 3

Failure with Hope

No advancement

Tick down 2

Success with Fear

Tick down 1

Tick down 1

Success with Hope

Tick down 2

No advancement

Critical Success

Tick down 3

No advancement

ADVANCED COUNTDOWN FEATURES

  • Countdowns with randomized starting values

  • Loop countdowns that reset to their starting value after their countdown effect is triggered.

  • Increasing countdowns that increase their starting value by 1 every time they loop.

  • Decreasing countdowns that decrease their starting value by 1 every time they loop.

  • Linked progress and consequence countdowns that simultaneously advance according to the same action roll outcomes.

  • Long-term countdowns that advance after rests instead of action rolls.

GIVING OUT GOLD, EQUIPMENT, AND LOOT

It’s up to you and your players how much importance you want to place on gold, equipment, and loot in your campaign.

Adjust the availability and utility of wealth and equipment to reflect the tone, themes, and setting of your campaign.

If you don’t wish to track gold, then when PCs go shopping fornew items let them pick one or two from a short, preselected list that aligns with your campaign setting and the party’s current location.

Otherwise, set the prices of goods and services by adjusting the entries in the Average Costs table to reflect your campaign setting:

Meals for a party of adventurers per night

1 Handful

Standard inn room per night

1 Handful

Luxury inn room per night

1 Bag

Carriage ride

2 Handfuls

Mount (horse, mule, etc.)

3 Bags

Specialized tools

3 Handfuls

Fine clothing

3 Handfuls

Luxury clothing

1 Bag

Tier 1 equipment (weapons, armor)

1–5 Handfuls

Tier 2 equipment (weapons, armor)

1–2 Bags

Tier 3 equipment (weapons, armor)

5–10 Bags

Tier 4 equipment (weapons, armor)

1–2 Chests

RUNNING GM NPCS

When you run NPCs as the GM, you should always strive to follow your GM principles and use them to bring the world to life. Differentiate NPCs with unique manners of speech and action; let their individual goals and desires motivate their actions.

The only essential elements for a NPC are their name, description, and motive. If it’s likely that the PCs will roll actions against them, give them a Difficulty. Adversaries can be invented or improvised by modifying the stat block of another adversary.

If an NPC becomes an ally in combat, they don’t need a stat blockβ€”just put the spotlight on what they do and show how their involvement alters the fiction. If a PC capitalizes on their help during the scene, give the PC advantage. NPCs that don’t have Hit Points or Stress can still be injured or killed if the fiction demands it.

If you want an important NPC to mechanically interact with the system, you can give them one or more features with specific triggers and effects. An NPC might also have a choice that adjusts the parameters of their feature. For example:

ARCANE HOLD

Choice: When the battle begins, choose a favored PC.

Trigger: The first time during a battle the favored PC is within Close range and hit with an attack.

Effect: Make an attack roll with a +6 modifier against the adversary. On a success, the target is temporarily Restrained by tendrils of powerful magic.

NPC FEATURE EXAMPLES

VOLLEY OF ARROWS

Trigger: A battle begins and this NPC is involved.

Effect: Activate a countdown (Loop 3). It ticks down when a PC misses an attack. When it triggers, this NPC releases a volley of arrows at a target of the PCs’ choice, dealing 2d8+3 physical damage.

MENTOR

​​Choice: When the battle begins, choose a protΓ©gΓ© PC.

Trigger: Your protΓ©gΓ© is within Close range and fails an attack roll.

Effect: Move into Melee range with the PC and give them advice or guidance. The next attack roll they make has advantage.

REGROUP

​​Choice: When a battle begins, choose a point within Far range.

Trigger: All PCs have marked all of their Armor Slots.

Effect: Teleport all PCs and this NPC to the chosen spot and clear an Armor Slot on each target.

INTO THE NIGHT

Trigger: The PCs start a long rest with this NPC.

Effect: Roll 1d4. On a 2 or less, this NPC steals 1 handful of gold from the party while they are sleeping, then disappears into the night.

OPTIONAL GM MECHANICS

FATE ROLLS

When the GM wants to leave an outcome entirely up to chance, they call for a fate roll. The GM establishes what’s at stake and how the roll will be interpreted. Then a player rolls one of their Duality Dice and interprets the result.


Examples:

β€œRoll your Fear Die. On a 4 or lower, the fire spreads beyond this house.”

β€œI think it’s really up to chance whether reinforcements will make it to you in time. Go ahead and roll your Fear Dieβ€” that’ll determine the starting size of the countdown. When that triggers, reinforcements will arrive in your Far range.”

β€œGo ahead and roll your Hope Die to see how big the crowd at the inn is tonight. The higher the roll, the bigger the crowd.”

β€œMake a roll using your Hope Die to determine the number of Stamina Potions the shop has in stock.”


FALLING AND COLLISION DAMAGE

If a character falls to the ground, you can use the following as a guide to determine the damage they take:

  • A fall from Very Close range deals 1d10+3 physical damage.

  • A fall from Close range deals 1d20+5 physical damage.

  • A fall from Far or Very Far range deals 1d100+15 physical damage, or death at the GM’s discretion.

If a character collides with an object or another character at a dangerous speed, they take 1d20+5 direct physical damage.

MOVING AND FIGHTING UNDERWATER

By default, attack rolls made while the attacker is underwater have disadvantage.

For creatures that can’t breathe underwater, use a standard countdown (3) to track how long they can hold their breath.

Advance the countdown whenever the PC takes an action. In addition if they fail a roll or roll with Fear while underwater, you can spend your GM move to advance it an additional timeβ€”or twice, if they rolled a failure with Fear.

Once the countdown ends, the underwater PC must mark a Stress whenever they take an action.

CONFLICT BETWEEN PCS

Sometimes a player might want their character to act against another PC in the scene. Before jumping to rolling dice, discuss the situation with both players to decide how to resolve the conflict. A roll might not be necessary to reach an outcomeβ€”but if rolling will be fun for everyone involved, come to a consensus on the terms of the roll, then facilitate the scene according to the results.

On an attack roll against a PC, the attacker rolls against the defender’s Evasion, just like an adversary. On any other kind of action roll, the instigator makes an action roll and the target makes a reaction roll. To succeed, the instigator must beat a Difficulty equal to the total value of the reaction roll.

ADVERSARIES AND ENVIRONMENTS

USING ADVERSARIES

ADVERSARY STAT BLOCKS

All the information required to run an adversary is contained in their stat block. An adversary’s stat block includes their:

NAME

Each stat block has a unique name. Abilities that affect adversaries with a certain name include all adversaries who use that stat block, regardless of their in-story name.

TIER

Each adversary is designed to oppose PCs of a certain tier. If you confront the party with an adversary from another tier, adjust their stats.

TYPE

The adversary’s type appears alongside their tier. An adversary’s type represents the role they play in a conflict.

The adversary types are:

  • Bruisers: tough; deliver powerful attacks.

  • Hordes: groups of identical creatures acting together as a single unit.

  • Leaders: command and summon other adversaries.

  • Minions: easily dispatched but dangerous in numbers.

  • Ranged: fragile in close encounters but deal high damage at range.

  • Skulks: maneuver and exploit opportunities to ambush opponents.

  • Socials: present challenges around conversation instead of combat.

  • Solos: present a formidable challenge to a whole party, with or without support.

  • Standards: representative of their fictional group.

  • Supports: enhance their allies and disrupt their opponents.

DESCRIPTION

A summary of the adversary's appearance and demeanor.

MOTIVES & TACTICS

Suggusted impulses, actions and goals for the adversary.

DIFFICULTY

The Difficulty of any roll made against the adversary, unless otherwise noted.

DAMAGE THRESHOLDS, HIT POINTS, AND STRESS

These systems function the same way they do for PCs. The numbers listed after β€œThreshold” are the adversary’s Major and Severe Thresholds.

ATTACK MODIFIER

When you attack with the adversary, apply this bonus or penalty to your attack roll.

STANDARD ATTACK

A description of the adversary’s primary mode of inflicting harm on the PCs. It includes the attack’s name, its effective range, and the damage it deals on a success. Using an adversary’s standard attack is a GM move.

EXPERIENCE (OPTIONAL)

The GM can spend a Fear to add an adversary’s relevant Experience to raise their attack roll or increase the Difficulty of a roll made against them.

EXAMPLE EXPERIENCES:

Acrobatics

Hunt from Above

Navigation

Ambusher

Intimidation

Nobility

Bartering

Intrusion

Quick Reflexes

Blademaster

Keen Senses

Socialite

Bodyguard

Magical Knowledge

Stealth

Commander

Nature’s Friend

Tracker

FEATURE(S)

There are three kinds of adversary features: actions, reactions, and passives. Note: each adversaries stress is tracked individually. If a feature requires the GM to spend Stress to activate it, the Stress must come from the adversary whose feature is being activate. If a feature has a Fear requirement, it must be spent in addition to any Fear already spentβ€”for instance, to interrupt the PCs and put the spotlight on the adversary.

  • Actions: a special attack or other unique action that the adversary can perform when the spotlight is on them.

  • Reactions: special effects that take effect when their trigger occurs, regardless of whether the spotlight is on the adversary.

  • Passives: special abilities that remain in effect by default and require no resources or triggers to activate.

FEAR FEATURE(S)

High-impact effects that cost a Fear to activate.

EXAMPLE ADVERSARY FEATURES:

ACTIONS

Haymaker - Action: Make an attack against a target within Very Close range. On a success, deal X direct physical damage.

Shredding Strike - Action: Make an attack against a target within Very Close range. On a success, deal X physical damage and the target must mark an Armor Slot without gaining its benefit (they can still use armor to reduce the damage).

More Where That Came From - Action: Summon three Jagged Knife Lackeys, who appear at Far range.

REACTIONS

Heavy Hitter - Reaction: When this adversary deals damage with a standard attack, you can spend a Fear to gain a +X bonus to the damage roll.

Team-Up - Reaction: When another adversary within Very Close range of this adversary deals X damage to a creature, you can mark a Stress to make a standard attack against that same creature. On a success, combine the damage.

Momentum - Reaction: When this adversary makes a successful attack against a PC, you gain a Fear.

PASSIVES

Horde (X) - Passive: When the Horde has marked half or more of their HP, their standard attack deals X damage instead.

Minion (X) - Passive: This adversary is defeated when they take any damage. For every X damage a PC deals to this adversary, defeat an additional Minion within range the attack would succeed against.

Relentless (X) - Passive: This adversary can be spotlighted up to X times per GM turn. Spend Fear as usual to spotlight them.

Slow - Passive: When you spotlight this adversary and they don’t have a token on their stat block, they can’t act yet. Place a token on their stat block and describe what they’re preparing to do. When you spotlight this adversary and they have a token on their stat block, clear the token and they can act.

Arcane Form - Passive: This adversary is resistant to magic damage.

Armored Carapace - Passive: When this adversary takes physical damage, reduce it by X.

FEAR FEATURES

Explosion - Action: Spend a Fear to erupt in a fiery explosion. Make an attack against all targets within Close range. Targets the adversary succeeds against take 1d8 magic damage and are knocked back to Far range.

BUILDING BALANCED ENCOUNTERS

When planning a battle, start with [(3 x the number of PCs in combat) + 2] Battle Points and make the following adjustments:

  • -1 for an easier or shorter fight

  • -2 if you’re using 2 or more Solo adversaries

  • -2 if you add +1d4 (or a static +2) to all adversaries’ damage rolls

  • +1 if you choose an adversary from a lower tier

  • +1 if you don’t include any Bruisers, Hordes, Leaders, or Solos

  • +2 for a harder or longer fight

Then spend your Battle Points to add an adversary to the encounter:

  • Spend 1 point for each group of Minions equal to the size of the party.

  • Spend 1 point for each Social or Support adversary.

  • Spend 2 points for each Horde, Ranged, Skulk, or Standard adversary.

  • Spend 3 points for each Leader adversary.

  • Spend 4 points for each Bruiser adversary.

  • Spend 5 points for each Solo adversary.

DEFEATED ADVERSARIES

When an adversary marks their last Hit Point, they are defeated: incapacitated, tied up, routed, killed, or anything else the table decides makes sense.

ADVERSARY STAT BLOCK BENCHMARKS

ADVERSARY STATISTIC

TIER 1

TIER 2

TIER 3

TIER 4

Attack Modifier

+1

+2

+3

+4

Damage Dice

1d6+2 to 1d12+4

2d6+3 to 2d12+4

3d8+3 to 3d12+5

4d8+10 to 4d12+15

Difficulty

11

14

17

20

Damage Thresholds

Major 7/Severe 12

Major 10/Severe 20

Major 20/Severe 32

Major 25/Severe 45

ADVERSARIES BY TIER

This section contains the following stat blocks:

TIER 1 (LEVEL 1)

  • @UUID[Compendium.daggerheart.adversaries.Actor.89yAh30vaNQOALlz]{Acid Burrower}

  • @UUID[Compendium.daggerheart.adversaries.Actor.71qKDLKO3CsrNkdy]{Bear}

  • @UUID[Compendium.daggerheart.adversaries.Actor.8Zkqk1jU09nKL2fy]{Cave Ogre}

  • @UUID[Compendium.daggerheart.adversaries.Actor.uOP5oT9QzXPlnf3p]{Construct}

  • @UUID[Compendium.daggerheart.adversaries.Actor.CBBuEXAlLKFMJdjg]{Courtier}

  • @UUID[Compendium.daggerheart.adversaries.Actor.9x2xY9zwc3xzbXo5]{Deeproot Defender}

  • @UUID[Compendium.daggerheart.adversaries.Actor.wNzeuQLfLUMvgHlQ]{Dire Wolf}

  • @UUID[Compendium.daggerheart.adversaries.Actor.IIWV4ysJPFPnTP7W]{Giant Mosquitoes}

  • @UUID[Compendium.daggerheart.adversaries.Actor.4PfLnaCrOcMdb4dK]{Giant Rat}

  • @UUID[Compendium.daggerheart.adversaries.Actor.fmfntuJ8mHRCAktP]{Giant Scorpion}

  • @UUID[Compendium.daggerheart.adversaries.Actor.8KWVLWXFhlY2kYx0]{Glass Snake}

  • @UUID[Compendium.daggerheart.adversaries.Actor.uRtghKE9mHlII4rs]{Harrier}

  • @UUID[Compendium.daggerheart.adversaries.Actor.JRhrrEg5UroURiAD]{Archer Guard}

  • @UUID[Compendium.daggerheart.adversaries.Actor.B4LZcGuBAHzyVdzy]{Bladed Guard}

  • @UUID[Compendium.daggerheart.adversaries.Actor.mK3A5FTx6k8iPU3F]{Head Guard}

  • @UUID[Compendium.daggerheart.adversaries.Actor.5Lh1T0zaT8Pkr2U2]{Jagged Knife Bandit}

  • @UUID[Compendium.daggerheart.adversaries.Actor.MbBPIOxaxXYNApXz]{Jagged Knife Hexer}

  • @UUID[Compendium.daggerheart.adversaries.Actor.CBKixLH3yhivZZuL]{Jagged Knife Kneebreaker}

  • @UUID[Compendium.daggerheart.adversaries.Actor.C0OMQqV7pN6t7ouR]{Jagged Knife Lackey}

  • @UUID[Compendium.daggerheart.adversaries.Actor.aTljstqteGoLpCBq]{Jagged Knife Lieutenant}

  • @UUID[Compendium.daggerheart.adversaries.Actor.XF4tYTq9nPJAy2ox]{Jagged Knife Shadow}

  • @UUID[Compendium.daggerheart.adversaries.Actor.1zuyof1XuIfi3aMG]{Jagged Knife Sniper}

  • @UUID[Compendium.daggerheart.adversaries.Actor.Al3w2CgjfdT3p9ma]{Merchant}

  • @UUID[Compendium.daggerheart.adversaries.Actor.sRn4bqerfARvhgSV]{Minor Chaos Elemental}

  • @UUID[Compendium.daggerheart.adversaries.Actor.DscWkNVoHak6P4hh]{Minor Fire Elemental}

  • @UUID[Compendium.daggerheart.adversaries.Actor.3tqCjDwJAQ7JKqMb]{Minor Demon}

  • @UUID[Compendium.daggerheart.adversaries.Actor.G62k4oSkhkoXEs2D]{Minor Treant}

  • @UUID[Compendium.daggerheart.adversaries.Actor.SHXedd9zZPVfUgUa]{Green Ooze}

  • @UUID[Compendium.daggerheart.adversaries.Actor.aLkLFuVoKz2NLoBK]{Tiny Green Ooze}

  • @UUID[Compendium.daggerheart.adversaries.Actor.9rVlbJVrDNn1x7PS]{Red Ooze}

  • @UUID[Compendium.daggerheart.adversaries.Actor.1fkLQXVtmILqfJ44]{Tiny Red Ooze}

  • @UUID[Compendium.daggerheart.adversaries.Actor.wycLpvebWdUqRhpP]{Petty Noble}

  • @UUID[Compendium.daggerheart.adversaries.Actor.OROJbjsqagVh7ECV]{Pirate Captain}

  • @UUID[Compendium.daggerheart.adversaries.Actor.5YgEajn0wa4i85kC]{Pirate Raiders}

  • @UUID[Compendium.daggerheart.adversaries.Actor.mhcVkVFrzIJ18FDm]{Pirate Tough}

  • @UUID[Compendium.daggerheart.adversaries.Actor.bgreCaQ6ap2DVpCr]{Sellsword}

  • @UUID[Compendium.daggerheart.adversaries.Actor.7X5q7a6ueeHs5oA9]{Skeleton Archer}

  • @UUID[Compendium.daggerheart.adversaries.Actor.6l1a3Fazq8BoKIcc]{Skeleton Dredge}

  • @UUID[Compendium.daggerheart.adversaries.Actor.Q9LaVTyXF9NF12C7]{Skeleton Knight}

  • @UUID[Compendium.daggerheart.adversaries.Actor.10YIQl0lvCJXZLfX]{Skeleton Warrior}

  • @UUID[Compendium.daggerheart.adversaries.Actor.ldbWEL7uZs84vyrR]{Spellblade}

  • @UUID[Compendium.daggerheart.adversaries.Actor.qNgs3AbLyJrY19nt]{Swarm of Rats}

  • @UUID[Compendium.daggerheart.adversaries.Actor.VtFBt9XBE0WrGGxP]{Sylvan Soldier}

  • @UUID[Compendium.daggerheart.adversaries.Actor.PKSXFuaIHUCoH63A]{Tangle Bramble Swarm}

  • @UUID[Compendium.daggerheart.adversaries.Actor.XcAGOSmtCFLT1unN]{Tangle Bramble}

  • @UUID[Compendium.daggerheart.adversaries.Actor.ZNbQ2jg35LG4t9eH]{Weaponmaster}

  • @UUID[Compendium.daggerheart.adversaries.Actor.8yUj2Mzvnifhxegm]{Young Dryad}

  • @UUID[Compendium.daggerheart.adversaries.Actor.2UeZ0tEe7AzgSJNd]{Brawny Zombie}

  • @UUID[Compendium.daggerheart.adversaries.Actor.EQTOAOUrkIvS2z88]{Patchwork Zombie Hulk}

  • @UUID[Compendium.daggerheart.adversaries.Actor.gP3fWTLzSFnpA8EJ]{Rotted Zombie}

  • @UUID[Compendium.daggerheart.adversaries.Actor.2nXz4ilAY4xuhKLm]{Shambling Zombie}

  • @UUID[Compendium.daggerheart.adversaries.Actor.Nf0v43rtflV56V2T]{Zombie Pack}

TIER 2 (LEVELS 2–4)

  • @UUID[Compendium.daggerheart.adversaries.Actor.0ts6CGd93lLqGZI5]{Archer Squadron}

  • @UUID[Compendium.daggerheart.adversaries.Actor.vNIbYQ4YSzNf0WPE]{Apprentice Assassin}

  • @UUID[Compendium.daggerheart.adversaries.Actor.h5RuhzGL17dW5FBT]{Assassin Poisoner}

  • @UUID[Compendium.daggerheart.adversaries.Actor.dNta0cUzr96xcFhf]{Master Assassin}

  • @UUID[Compendium.daggerheart.adversaries.Actor.dgH3fW9FTYLaIDvS]{Battle Box}

  • @UUID[Compendium.daggerheart.adversaries.Actor.jDmHqGvzg5wjgmxE]{Chaos Skull}

  • @UUID[Compendium.daggerheart.adversaries.Actor.99TqczuQipBmaB8i]{Conscript}

  • @UUID[Compendium.daggerheart.adversaries.Actor.ZxWaWPdzFIUPNC62]{Courtesan}

  • @UUID[Compendium.daggerheart.adversaries.Actor.0NxCSugvKQ4W8OYZ]{Cult Adept}

  • @UUID[Compendium.daggerheart.adversaries.Actor.tyBOpLfigAhI9bU3]{Cult Fang}

  • @UUID[Compendium.daggerheart.adversaries.Actor.zx99sOGTXicP4SSD]{Cult Initiate}

  • @UUID[Compendium.daggerheart.adversaries.Actor.NoRZ1PqB8N5wcIw0]{Demonic Hound Pack}

  • @UUID[Compendium.daggerheart.adversaries.Actor.TLzY1nDw0Bu9Ud40]{Electric Eels}

  • @UUID[Compendium.daggerheart.adversaries.Actor.bfhVWMBUh61b9J6n]{Elite Soldier}

  • @UUID[Compendium.daggerheart.adversaries.Actor.ChwwVqowFw8hJQwT]{Failed Experiment}

  • @UUID[Compendium.daggerheart.adversaries.Actor.8VZIgU12cB3cvlyH]{Giant Beastmaster}

  • @UUID[Compendium.daggerheart.adversaries.Actor.YnObCleGjPT7yqEc]{Giant Brawler}

  • @UUID[Compendium.daggerheart.adversaries.Actor.5s8wSvpyC5rxY5aD]{Giant Recruit}

  • @UUID[Compendium.daggerheart.adversaries.Actor.OMQ0v6PE8s1mSU0K]{Giant Eagle}

  • @UUID[Compendium.daggerheart.adversaries.Actor.8mJYMpbLTb8qIOrr]{Gorgon}

  • @UUID[Compendium.daggerheart.adversaries.Actor.MYXmTx2FHcIjdfYZ]{Juvenile Flickerfly}

  • @UUID[Compendium.daggerheart.adversaries.Actor.7ai2opemrclQe3VF]{Knight of the Realm}

  • @UUID[Compendium.daggerheart.adversaries.Actor.niBpVU7yeo5ccskE]{Masked Thief}

  • @UUID[Compendium.daggerheart.adversaries.Actor.Vy02IhGhkJLuezu4]{Merchant Baron}

  • @UUID[Compendium.daggerheart.adversaries.Actor.rM9qCIYeWg9I0B4l]{Minotaur Wrecker}

  • @UUID[Compendium.daggerheart.adversaries.Actor.mVV7a7KQAORoPMgZ]{Mortal Hunter}

  • @UUID[Compendium.daggerheart.adversaries.Actor.EtLJiTsilPPZvLUX]{Royal Advisor}

  • @UUID[Compendium.daggerheart.adversaries.Actor.sLAccjvCWfeedbpI]{Secret-Keeper}

  • @UUID[Compendium.daggerheart.adversaries.Actor.YmVAkdNsyuXWTtYp]{Shark}

  • @UUID[Compendium.daggerheart.adversaries.Actor.BK4jwyXSRx7IOQiO]{Siren}

  • @UUID[Compendium.daggerheart.adversaries.Actor.5tCkhnBByUIN5UdG]{Spectral Archer}

  • @UUID[Compendium.daggerheart.adversaries.Actor.65cSO3EQEh6ZH6Xk]{Spectral Captain}

  • @UUID[Compendium.daggerheart.adversaries.Actor.UFVGl1osOsJTneLf]{Spectral Guardian}

  • @UUID[Compendium.daggerheart.adversaries.Actor.8zlynOhnVA59KpKT]{Spy}

  • @UUID[Compendium.daggerheart.adversaries.Actor.3aAS2Qm3R6cgaYfE]{Stonewraith}

  • @UUID[Compendium.daggerheart.adversaries.Actor.noDdT0tsN6FXSmC8]{War Wizard}

TIER 3 (LEVELS 5–7)

  • @UUID[Compendium.daggerheart.adversaries.Actor.G7jiltRjgvVhZewm]{Adult Flickerfly}

  • @UUID[Compendium.daggerheart.adversaries.Actor.pnyjIGxxvurcWmTv]{Demon of Avarice}

  • @UUID[Compendium.daggerheart.adversaries.Actor.kE4dfhqmIQpNd44e]{Demon of Despair}

  • @UUID[Compendium.daggerheart.adversaries.Actor.2VN3BftageoTTIzu]{Demon of Hubris}

  • @UUID[Compendium.daggerheart.adversaries.Actor.SxSOkM4bcVOFyjbo]{Demon of Jealousy}

  • @UUID[Compendium.daggerheart.adversaries.Actor.5lphJAgzoqZI3VoG]{Demon of Wrath}

  • @UUID[Compendium.daggerheart.adversaries.Actor.tBWHW00epmMnkawe]{Dire Bat}

  • @UUID[Compendium.daggerheart.adversaries.Actor.wR7cFKrHvRzbzhBT]{Dryad}

  • @UUID[Compendium.daggerheart.adversaries.Actor.P7h54ZePFPHpYwvB]{Elemental Spark}

  • @UUID[Compendium.daggerheart.adversaries.Actor.dsfB3YhoL5SudvS2]{Greater Earth Elemental}

  • @UUID[Compendium.daggerheart.adversaries.Actor.xIICT6tEdnA7dKDV]{Greater Water Elemental}

  • @UUID[Compendium.daggerheart.adversaries.Actor.6hbqmxDXFOzZJDk4]{Huge Green Ooze}

  • @UUID[Compendium.daggerheart.adversaries.Actor.MI126iMOOobQ1Obn]{Hydra}

  • @UUID[Compendium.daggerheart.adversaries.Actor.yx0vK2yfNVZKWUUi]{Monarch}

  • @UUID[Compendium.daggerheart.adversaries.Actor.KGVwnLq85ywP9xvB]{Stag Knight}

  • @UUID[Compendium.daggerheart.adversaries.Actor.XK78QUfY8c8Go8Uv]{Oak Treant}

  • @UUID[Compendium.daggerheart.adversaries.Actor.o63nS0k3wHu6EgKP]{Treant Sapling}

  • @UUID[Compendium.daggerheart.adversaries.Actor.i2UNbRvgyoSs07M6]{Head Vampire}

  • @UUID[Compendium.daggerheart.adversaries.Actor.WWyUp6Mxl1S3KYUG]{Vampire}

  • @UUID[Compendium.daggerheart.adversaries.Actor.JqYraOqNmmhHk4Yy]{Vault Guardian Gaoler}

  • @UUID[Compendium.daggerheart.adversaries.Actor.FVgYb28fhxlVcGwA]{Vault Guardian Sentinel}

  • @UUID[Compendium.daggerheart.adversaries.Actor.c5hGdvY5UnSjlHws]{Vault Guardian Turret}

  • @UUID[Compendium.daggerheart.adversaries.Actor.UGPiPLJsPvMTSKEF]{Young Ice Dragon}

TIER 4 (LEVELS 8–10)

  • @UUID[Compendium.daggerheart.adversaries.Actor.WPEOIGfclNJxWb87]{Arch-Necromancer}

  • @UUID[Compendium.daggerheart.adversaries.Actor.OsLG2BjaEdTZUJU9]{Fallen Shock Troop}

  • @UUID[Compendium.daggerheart.adversaries.Actor.PELRry1vqjBzSAlr]{Fallen Sorcerer}

  • @UUID[Compendium.daggerheart.adversaries.Actor.hxZ0sgoFJubh5aj6]{Fallen Warlord: Realm-Breaker}

  • @UUID[Compendium.daggerheart.adversaries.Actor.RXkZTwBRi4dJ3JE5]{Fallen Warlord: Undefeated Champion}

  • @UUID[Compendium.daggerheart.adversaries.Actor.kabueAo6BALApWqp]{Hallowed Archer}

  • @UUID[Compendium.daggerheart.adversaries.Actor.VENwg7xEFcYObjmT]{Hallowed Soldier}

  • @UUID[Compendium.daggerheart.adversaries.Actor.r1mbfSSwKWdcFdAU]{High Seraph}

  • @UUID[Compendium.daggerheart.adversaries.Actor.4nqv3ZwJGjnmic8j]{Kraken}

  • @UUID[Compendium.daggerheart.adversaries.Actor.befIqd5IYKg6eUz2]{Oracle of Doom}

  • @UUID[Compendium.daggerheart.adversaries.Actor.A0SeeDzwjvqOsyof]{Outer Realms Abomination}

  • @UUID[Compendium.daggerheart.adversaries.Actor.ms6nuOl3NFkhPj1k]{Outer Realms Corruptor}

  • @UUID[Compendium.daggerheart.adversaries.Actor.moJhHgKqTKPS2WYS]{Outer Realms Thrall}

  • @UUID[Compendium.daggerheart.adversaries.Actor.ladm7wykhZczYzrQ]{Volcanic Dragon: Obsidian Predator}

  • @UUID[Compendium.daggerheart.adversaries.Actor.eArAPuB38CNR0ZIM]{Volcanic Dragon: Molten Scourge}

  • @UUID[Compendium.daggerheart.adversaries.Actor.pMuXGCSOQaxpi5tb]{Volcanic Dragon: Ashen Tyrant}

  • @UUID[Compendium.daggerheart.adversaries.Actor.CP6iRfHdyFWniTHY]{Perfected Zombie}

  • @UUID[Compendium.daggerheart.adversaries.Actor.YhJrP7rTBiRdX5Fp]{Zombie Legion}

USING ENVIRONMENTS

Environments represent everything in a scene beyond the PCs and adversaries, such as the physical space, background NPCs, and natural forces.

ENVIRONMENT STAT BLOCK

Each environment’s stat block presents their necessary mechanical statistics:

NAME

The unique name of the environment stat block.

TIER

The PC tier the environment is designed to challenge.

TYPE

The type of scene it most easily supports:

  • Explorations β€” wondrous locations with mysteries and marvels to discover

  • Socials β€” locations that primarily present interpersonal challenges

  • Traversals β€” dangerous locations where movement through and around the space itself is a challenge

  • Events β€” special activities or occurrences (rather than physical spaces)

DESCRIPTION

An evocative one-line summary of the environment.

IMPULSES

The manner or mode with which the environment pushs and pulls the people within them.

DIFFICULTY

The standard Difficulty for action rolls made to overcome, oppose, or resist the environment or its elements.

POTENTIAL ADVERSARIES

Suggested adversaries that might appear in scenes within the environment.

FEATURES

Features provide inspiration for GM moves you can use that represent the dynamic landscape or situation.

FEATURE QUESTIONS

Prompts for plot hooks, narrative engines, and connections to other story elements.

ADAPTING ENVIRONMENTS

Sometimes you want to use an environment but it’s at the wrong tier for your party. Or you might want to replace a feature or two, then present it as an entirely different environment. Whether planning your session or even improvising an environment mid-session, you can adjust an existing environment’s stat block to fit the needs of your scene or improvise elements as needed. The environments framework is there to help organize ideas, not to stifle creativity.

When you need to quickly adjust a stat block to a different tier, you can simply replace its existing statistics with those listed on the Environment Statistics by Tier table, using the column that corresponds to your party’s tier.

BENCHMARK STATISTICS FOR ENVIRONMENTS BY TIER

Environment Statistic

Tier 1

Tier 2

Tier 3

Tier 4

Damage Dice

1d6+1 to 1d8+3

2d6+3 to 2d10+2

3d8+3 to 3d10+1

4d8+3 to 4d10+10

Difficulty

11

14

17

20

ENVIRONMENT STAT BLOCKS BY TIER

This section contains the following stat blocks.

@UUID[Compendium.daggerheart.environments.Folder.GQ0VnOLrKBIHR6Us]{TIER 1 (LEVEL 1)}

  • @UUID[Compendium.daggerheart.environments.Actor.pGEdzdLkqYtBhxnG]{Abandoned Grove (Exploration)}

  • @UUID[Compendium.daggerheart.environments.Actor.uGEdNYERCTJBEjc5]{Ambushed (Event)}

  • @UUID[Compendium.daggerheart.environments.Actor.uXZpebPR77YQ1oXI]{Ambushers (Event)}

  • @UUID[Compendium.daggerheart.environments.Actor.HZKA7hkej7JJY503]{Bustling Marketplace (Social)}

  • @UUID[Compendium.daggerheart.environments.Actor.LPpfdlNKqiZIl04w]{Cliffside Ascent (Traversal)}

  • @UUID[Compendium.daggerheart.environments.Actor.cM4X81DOyvxNIi52]{Local Tavern (Social)}

  • @UUID[Compendium.daggerheart.environments.Actor.YezryR32uo39xRxW]{Outpost Town (Social)}

  • @UUID[Compendium.daggerheart.environments.Actor.t4cdqTfzcqP3H1vJ]{Raging River (Traversal)}

@UUID[Compendium.daggerheart.environments.Folder.XMeecO3IRvu5ck6F]{TIER 2 (LEVELS 2–4)}

  • @UUID[Compendium.daggerheart.environments.Actor.QAXXiOKBDmCTauHD]{Cult Ritual (Event)}

  • @UUID[Compendium.daggerheart.environments.Actor.dsA6j69AnaJhUyqH]{Hallowed Temple (Social)}

  • @UUID[Compendium.daggerheart.environments.Actor.OzYbizKraK92FDiI]{Haunted City (Exploration)}

  • @UUID[Compendium.daggerheart.environments.Actor.acMu9wJrMZZzLSTJ]{Mountain Pass (Traversal)}

@UUID[Compendium.daggerheart.environments.Folder.MfrIkJK12PAEfbPL]{TIER 3 (LEVELS 5–7)}

  • @UUID[Compendium.daggerheart.environments.Actor.oY69NN4rYxoRE4hl]{Burning Heart of the Woods (Exploration)}

  • @UUID[Compendium.daggerheart.environments.Actor.1eZ32Esq7rfZOjlu]{Castle Siege (Event)}

  • @UUID[Compendium.daggerheart.environments.Actor.EWD3ZsLoK6VMVOf7]{Pitched Battle (Event)}

@UUID[Compendium.daggerheart.environments.Folder.IKumu5HTLqONLYqb]{TIER 4 (LEVELS 8–10)}

  • @UUID[Compendium.daggerheart.environments.Actor.2Z1mKc65LxNk2PqR]{Chaos Realm (Traversal)}

  • @UUID[Compendium.daggerheart.environments.Actor.4DLYez7VbMCFDAuZ]{Divine Usurpation (Event)}

  • @UUID[Compendium.daggerheart.environments.Actor.jr1xAoXzVwVblzxI]{Imperial Court (Social)}

  • @UUID[Compendium.daggerheart.environments.Actor.h3KyRL7AshhLAmcH]{Necromancer’s Ossuary (Exploration)}

ADDITIONAL GM GUIDANCE

This section provides additional guidance for preparing and running a session of Daggerheart.

STORY BEATS

In storytelling, a beat is a moment that changes the trajectory of the narrativeβ€”a shift in the world, a significant action or reaction, an emotional revelation, or an important decision.

Take turns with the players, narrating a beat and then letting them react and carry the scene forward with their own beats.

When preparing for a session, plan in terms of the moments that give shape to each scene or sequence, rather than pre-scripting specific details or exchanges.

PREPARING COMBAT ENCOUNTERS

Build the hurdles the PCs face around the question of β€œWhat helps tell the story?” Enemies, environments, and hazards are the tools for heightening tension and creating drama. Ensure that combat is being used to give players more information about the unfolding story, revealing the world, the plot, or the characters.

BATTLES AND NARRATIVE

Dynamic battles create suspense by forcing players to choose between their various objectives, engaging their character’s motivations and weaknesses, and creating the crucible that the players use to forge their characters into legendary heroes. When preparing combat encounters:

  • Consider the narrative function of the battle

  • Base adversaries’ moves on their motives

  • Use dynamic environments to bring the battleground to life

  • Add enemies that can interact with the PCs’ features and special abilities

SESSION REWARDS

Reward players at the end of a session with:

  • Useful information

  • Story hooks

  • Loot

  • Gold

  • Access to new equipment or enhancements

CRAFTING SCENES

Whenever you start a session, arrive at a new place, or change the situation, tell the players what they need to know by thinking with all of your senses and sharing something unique or unexpected about the fiction.

ENGAGING YOUR PLAYERS

Keep your players engaged by:

  • Rotating the Focus between the PCs

  • Tying Together Story Elements

  • Engaging Quiet Players

  • Using Visual Aids

  • Encouraging Unguided Play

  • Confronting the PCs with internal and external conflicts

  • Raise the Stakes by Spending Fear

  • Layering Goals Other than Attrition into Combat (see Table of Random Objectives on the next page)

1d12

Objective

1

Acquire (obtain or steal) an important item or items.

2

Capture one or more of the opponents.

3

Activate a magical device.

4

Frame a character or tarnish their reputation.

5

Drive the opponent into a corner or ambush point.

6

Stop a magical ritual, legal ceremony, or time-sensitive spell.

7

Hold the lineβ€”keep the enemy from reaching a specific area or group.

8

Plant evidence or a tracking device on a target.

9

Secure a specific location ahead of another group’s arrival.

10

Harass the opponent to deplete their resources or keep them occupied.

11

Destroy a piece of architecture, a statue, a shrine, or a weapon.

12

Investigate a situation to confirm or deny existing

information.

PHASED BATTLES

Make battles by shifting the nature of its enemies or environment mid-combat:

  • Change the Terms of Engagement

  • Alter the Environment

  • Evolve the Opposition

USING DOWNTIME

Use downtime scenes as a pressure release valve to vary the intensity of the story and give the PCs room to breathe.

Empower your players to frame their own downtime scenes.

Ask the players what it looks like as they tend to their wounds or unwind together, encouraging them to take the reins and work with other players whose characters are involved

PROJECTS DURING DOWNTIME

The Work on a Project downtime move requires more GM input than other downtime moves and is best suited for long-term endeavors the PCs wish to undertake.

These projects are typically tracked using a Progress Countdown. When deciding the starting value of the countdown, consider the complexity of the project, the availability of relevant tools, and the impact of the project on the story.

Simple projects advance their countdown each time a player uses the Work on a Project move, but complex projects require a roll.

EXTENDED DOWNTIME

When you fast-forward the story across an extended period, use montages to illustrate the passage of time. You gain 1d6 Fear per PC and advance any long-term countdowns as appropriate.

CAMPAIGN FRAMES

A campaign frame provides inspiration, tools, and mechanics to support a particular type of story at the table.

Every campaign frame has a complexity rating that indicates how much its mechanics deviate from or expand upon the Daggerheart core ruleset.

Each campaign frame includes the following sections.

  • A pitch to present to players

  • Suggestions and guidance on tone, feel, themes, and touchstones

  • An overview of the campaign’s background

  • Guidance for fitting communities, ancestries, and classes into the setting

  • Principles for players and GMs to focus on during the campaign

  • Unique setting distinctions

  • An inciting incident to launch the campaign

  • Special mechanics to use during the campaign

  • Questions to consider during session zero

You can find each campaign frame map in the appendix of the core rulebook or at www.daggerheart.com/downloads.

" }, "video": { "controls": true, @@ -180,11 +179,10 @@ "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.351", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", - "lastModifiedBy": "Bgvu4A6AMkRFOTGR", - "modifiedTime": 1767971861704 + "lastModifiedBy": null }, "_key": "!journal.pages!uNs7ne9VCbbu5dcG.xCcdczIt2x2HBihY" } @@ -196,6 +194,17 @@ "l5jB3XmcVXOTQpRZ": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754225234490, + "modifiedTime": 1754225234581, + "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + }, "_id": "uNs7ne9VCbbu5dcG", "sort": 200000, "_key": "!journal!uNs7ne9VCbbu5dcG" diff --git a/src/packs/journals/journal_Welcome___Information_g7NhKvwltwafmMyR.json b/src/packs/journals/journal_Welcome___Information_g7NhKvwltwafmMyR.json index c01157c2..af31907f 100644 --- a/src/packs/journals/journal_Welcome___Information_g7NhKvwltwafmMyR.json +++ b/src/packs/journals/journal_Welcome___Information_g7NhKvwltwafmMyR.json @@ -167,5 +167,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754223645043, + "modifiedTime": 1754225234581, + "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + }, "_key": "!journal!g7NhKvwltwafmMyR" } diff --git a/src/packs/journals/journal_Witherwild_Campaign_Frame_Cty8pCZZxJDc2E1l.json b/src/packs/journals/journal_Witherwild_Campaign_Frame_Cty8pCZZxJDc2E1l.json index 080958ab..a4f86b53 100644 --- a/src/packs/journals/journal_Witherwild_Campaign_Frame_Cty8pCZZxJDc2E1l.json +++ b/src/packs/journals/journal_Witherwild_Campaign_Frame_Cty8pCZZxJDc2E1l.json @@ -342,6 +342,17 @@ "l5jB3XmcVXOTQpRZ": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754225247752, + "modifiedTime": 1754225250214, + "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + }, "_id": "Cty8pCZZxJDc2E1l", "sort": 300000, "_key": "!journal!Cty8pCZZxJDc2E1l" diff --git a/src/packs/rolltables/tables_Consumables_tF04P02yVN1YDVel.json b/src/packs/rolltables/tables_Consumables_tF04P02yVN1YDVel.json deleted file mode 100644 index c2413ec3..00000000 --- a/src/packs/rolltables/tables_Consumables_tF04P02yVN1YDVel.json +++ /dev/null @@ -1,1519 +0,0 @@ -{ - "name": "Consumables", - "img": "icons/consumables/potions/bottle-corked-red.webp", - "description": "

To generate a random consumable, choose a rarity, roll the designated dice, and match the total to the item in the table:

  • Common: 1d12 or 2d12

  • Uncommon: 2d12 or 3d12

  • Rare: 3d12 or 4d12

  • Legendary: 4d12 or 5d12

", - "results": [ - { - "type": "document", - "weight": 1, - "range": [ - 1, - 1 - ], - "name": "Stride Potion", - "img": "icons/consumables/potions/potion-flask-corked-cyan.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.lNtcrkgFGOJNaroE", - "_id": "HitkUdk2TJyIifWX", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.HitkUdk2TJyIifWX" - }, - { - "type": "document", - "weight": 1, - "range": [ - 2, - 2 - ], - "name": "Bolster Potion", - "img": "icons/consumables/potions/potion-vial-tube-yellow.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.FOPQNqXbiVO0ilYL", - "_id": "nXdPwzbs1TlhuAPG", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.nXdPwzbs1TlhuAPG" - }, - { - "type": "document", - "weight": 1, - "range": [ - 3, - 3 - ], - "name": "Control Potion", - "img": "icons/consumables/potions/flask-corked-blue.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.eeBhZSGLjuNZuJuI", - "_id": "3vNNo1oURhYA3ku3", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.3vNNo1oURhYA3ku3" - }, - { - "type": "document", - "weight": 1, - "range": [ - 4, - 4 - ], - "name": "Attune Potion", - "img": "icons/consumables/potions/bottle-conical-corked-purple.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.JGD3M9hBHtVAA8XP", - "_id": "eIfprIpZdRJCoBQ7", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.eIfprIpZdRJCoBQ7" - }, - { - "type": "document", - "weight": 1, - "range": [ - 5, - 5 - ], - "name": "Charm Potion", - "img": "icons/consumables/potions/potion-tube-corked-blue.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.CVBbFfOY75YwyQsp", - "_id": "LFWeiTR9rC34Tg03", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.LFWeiTR9rC34Tg03" - }, - { - "type": "document", - "weight": 1, - "range": [ - 6, - 6 - ], - "name": "Enlighten Potion", - "img": "icons/consumables/potions/vial-cork-empty.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.aWHSO2AqDufi7nL4", - "_id": "9wcVzrpjZHL87dGg", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.9wcVzrpjZHL87dGg" - }, - { - "type": "document", - "weight": 1, - "range": [ - 7, - 7 - ], - "name": "Minor Health Potion", - "img": "icons/consumables/potions/potion-tube-corked-red.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.tPfKtKRRjv8qdSqy", - "_id": "1IBI7K2c7tyhq9nK", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.1IBI7K2c7tyhq9nK" - }, - { - "type": "document", - "weight": 1, - "range": [ - 8, - 8 - ], - "name": "Minor Stamina Potion", - "img": "icons/consumables/potions/potion-tube-corked-green.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.b6vGSPFWOlzZZDLO", - "_id": "1D9VOgGRjhy6eWqA", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.1D9VOgGRjhy6eWqA" - }, - { - "type": "document", - "weight": 1, - "range": [ - 9, - 9 - ], - "name": "Grindletooth Venom", - "img": "icons/consumables/potions/bottle-conical-corked-labeled-skull-poison-green.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.8WkhvSzeOmLdnoLJ", - "_id": "Nqj2K2UDP27sAkUK", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.Nqj2K2UDP27sAkUK" - }, - { - "type": "document", - "weight": 1, - "range": [ - 10, - 10 - ], - "name": "Varik Leaves", - "img": "icons/consumables/plants/leaf-serrated-pink.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.hvy5BkG3F6iOIXTx", - "_id": "6ynsrta3MiinHg38", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.6ynsrta3MiinHg38" - }, - { - "type": "document", - "weight": 1, - "range": [ - 11, - 11 - ], - "name": "Vial of Moondrip", - "img": "icons/consumables/potions/bottle-ornate-bat-teal.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.VqEX5YwK5oL3r1t6", - "_id": "UDPco0e4rvz8Ch8X", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.UDPco0e4rvz8Ch8X" - }, - { - "type": "document", - "weight": 1, - "range": [ - 12, - 12 - ], - "name": "Unstable Arcane Shard", - "img": "icons/commodities/gems/gem-faceted-cushion-teal-black.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.mUepnLbkvFk0ha4Z", - "_id": "xQV1Uvhy1TqjEpH1", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.xQV1Uvhy1TqjEpH1" - }, - { - "type": "document", - "weight": 1, - "range": [ - 13, - 13 - ], - "name": "Potion of Stability", - "img": "icons/consumables/potions/bottle-conical-corked-labeled-shell-cyan.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.dvL8oaxpEF6jKvYN", - "_id": "pz4dXNbMYuSbFdzN", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.pz4dXNbMYuSbFdzN" - }, - { - "type": "document", - "weight": 1, - "range": [ - 14, - 14 - ], - "name": "Improved Grindletooth Venom", - "img": "icons/consumables/potions/potion-jar-corked-labeled-poison-skull-green.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.BqBWXXe9T07AMV4u", - "_id": "sqdq6x4SEqLdHDPM", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.sqdq6x4SEqLdHDPM" - }, - { - "type": "document", - "weight": 1, - "range": [ - 15, - 15 - ], - "name": "Morphing Clay", - "img": "icons/commodities/stone/ore-chunk-brown.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.f1NHVSIHJJCIOaBl", - "_id": "tceGvaaN4diOnr6V", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.tceGvaaN4diOnr6V" - }, - { - "type": "document", - "weight": 1, - "range": [ - 16, - 16 - ], - "name": "Vial of Darksmoke", - "img": "icons/consumables/potions/bottle-bulb-empty-glass.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.Nwv5ydGf0MWnzq1n", - "_id": "QtGq1JKzwBzWX6Sd", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.QtGq1JKzwBzWX6Sd" - }, - { - "type": "document", - "weight": 1, - "range": [ - 17, - 17 - ], - "name": "Jumping Root", - "img": "icons/consumables/plants/dried-bundle-wrapped-stems-sticks-brown.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.c2putn9apuurJhWX", - "_id": "lidCdzbTqahcajZb", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.lidCdzbTqahcajZb" - }, - { - "type": "document", - "weight": 1, - "range": [ - 18, - 18 - ], - "name": "Snap Powder", - "img": "icons/commodities/materials/bowl-powder-gold.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.cg6VtQ0eVZjDdcK0", - "_id": "m37ithF7wXFYrv6H", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.m37ithF7wXFYrv6H" - }, - { - "type": "document", - "weight": 1, - "range": [ - 19, - 19 - ], - "name": "Health Potion", - "img": "icons/consumables/potions/bottle-corked-red.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.Aruc2NLutWuVIjP1", - "_id": "RFrvEnE7WyDw2YWK", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.RFrvEnE7WyDw2YWK" - }, - { - "type": "document", - "weight": 1, - "range": [ - 20, - 20 - ], - "name": "Stamina Potion", - "img": "icons/consumables/potions/bottle-corked-green.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.hf3k1POoVSooJyN2", - "_id": "Lgs8ccMBUaq0XCHs", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.Lgs8ccMBUaq0XCHs" - }, - { - "type": "document", - "weight": 1, - "range": [ - 21, - 21 - ], - "name": "Armor Stitcher", - "img": "icons/skills/trades/textiles-stitching-leather-brown.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.VlbsCjvvLNfTzNXb", - "_id": "S2nsHwVRSFMbVlKh", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.S2nsHwVRSFMbVlKh" - }, - { - "type": "document", - "weight": 1, - "range": [ - 22, - 22 - ], - "name": "Gill Salve", - "img": "icons/commodities/materials/bowl-powder-blue.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.Nvbb9mze6o5D0AEg", - "_id": "B3cL4jMj0eaW8utR", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.B3cL4jMj0eaW8utR" - }, - { - "type": "document", - "weight": 1, - "range": [ - 23, - 23 - ], - "name": "Replication Parchment", - "img": "icons/sundries/scrolls/scroll-worn-beige.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.yJkwz4AP6yhGo8Vj", - "_id": "sgkt4zYiFSQMOmvo", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.sgkt4zYiFSQMOmvo" - }, - { - "type": "document", - "weight": 1, - "range": [ - 24, - 24 - ], - "name": "Improved Arcane Shard", - "img": "icons/commodities/gems/gem-faceted-teardrop-blue.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.nQTo6mNoPTEVBtkm", - "_id": "CCuzy7Y3KasoCouV", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.CCuzy7Y3KasoCouV" - }, - { - "type": "document", - "weight": 1, - "range": [ - 25, - 25 - ], - "name": "Major Stride Potion", - "img": "icons/consumables/potions/potion-jar-capped-teal.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.yK6eEDUrsPbZA8G0", - "_id": "TtXvBYeeMqQ4gDhO", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.TtXvBYeeMqQ4gDhO" - }, - { - "type": "document", - "weight": 1, - "range": [ - 26, - 26 - ], - "name": "Major Bolster Potion", - "img": "icons/consumables/potions/potion-jar-corked-orange.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.mnyQDRtngWWQeRXF", - "_id": "cRwTxLNJXMVKFW75", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.cRwTxLNJXMVKFW75" - }, - { - "type": "document", - "weight": 1, - "range": [ - 27, - 27 - ], - "name": "Major Control Potion", - "img": "icons/consumables/potions/bottle-round-corked-blue.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.80s1FLmTLtohZ5GH", - "_id": "q15EknW1P2cw4oyb", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.q15EknW1P2cw4oyb" - }, - { - "type": "document", - "weight": 1, - "range": [ - 28, - 28 - ], - "name": "Major Attune Potion", - "img": "icons/consumables/potions/bottle-round-corked-pink.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.CCPFm5iXXwvyYYwR", - "_id": "tkj1X675uJMTkMTR", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.tkj1X675uJMTkMTR" - }, - { - "type": "document", - "weight": 1, - "range": [ - 29, - 29 - ], - "name": "Major Charm Potion", - "img": "icons/consumables/potions/potion-bottle-corked-blue.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.IJLAUlQymbSjzsri", - "_id": "N6ImVJLHEOXxFSAE", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.N6ImVJLHEOXxFSAE" - }, - { - "type": "document", - "weight": 1, - "range": [ - 30, - 30 - ], - "name": "Major Enlighten Potion", - "img": "icons/consumables/potions/bottle-corked-empty.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.SDdv1G2veMLKrxcJ", - "_id": "NuHqSzBX7daJRor8", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.NuHqSzBX7daJRor8" - }, - { - "type": "document", - "weight": 1, - "range": [ - 31, - 31 - ], - "name": "Blood of the Yorgi", - "img": "icons/consumables/potions/potion-tube-corked-bat-gold-red.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.pDGzmczoTlKGmKgd", - "_id": "jpOQNSqbtl0ry3UU", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.jpOQNSqbtl0ry3UU" - }, - { - "type": "document", - "weight": 1, - "range": [ - 32, - 32 - ], - "name": "Homet’s Secret Potion", - "img": "icons/consumables/potions/conical-ornate-purple.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.VSwa1LpQ9PjZKsWF", - "_id": "QQsRU8GRbQeFU3KP", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.QQsRU8GRbQeFU3KP" - }, - { - "type": "document", - "weight": 1, - "range": [ - 33, - 33 - ], - "name": "Redthorn Saliva", - "img": "icons/commodities/materials/slime-thick-blue.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.s2Exl2XFuoOhtIov", - "_id": "UJfqKp0GtIrUEPyb", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.UJfqKp0GtIrUEPyb" - }, - { - "type": "document", - "weight": 1, - "range": [ - 34, - 34 - ], - "name": "Channelstone", - "img": "icons/commodities/stone/engraved-symbol-water-grey.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.IKMVQ6VwtapwoUim", - "_id": "VHCnZip35MMw57CG", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.VHCnZip35MMw57CG" - }, - { - "type": "document", - "weight": 1, - "range": [ - 35, - 35 - ], - "name": "Mythic Dust", - "img": "icons/commodities/materials/bowl-powder-grey.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.Zsh2AvZr8EkGtLyw", - "_id": "zphlOIuZBXFZcEVa", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.zphlOIuZBXFZcEVa" - }, - { - "type": "document", - "weight": 1, - "range": [ - 36, - 36 - ], - "name": "Acidpaste", - "img": "icons/commodities/materials/bowl-powder-teal.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.cfVFmS8vT9dbq9s1", - "_id": "bVFt8cYycBuUItfq", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.bVFt8cYycBuUItfq" - }, - { - "type": "document", - "weight": 1, - "range": [ - 37, - 37 - ], - "name": "Hopehold Flare", - "img": "icons/commodities/tech/smoke-bomb-purple.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.EhaQCPJ8oiqpRIwB", - "_id": "atidisB2nCu9CF3b", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.atidisB2nCu9CF3b" - }, - { - "type": "document", - "weight": 1, - "range": [ - 38, - 38 - ], - "name": "Major Arcane Shard", - "img": "icons/commodities/gems/gem-rough-round-blue.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.AA7bmiwv00lshPrC", - "_id": "VQ75yVBccK73Gif3", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.VQ75yVBccK73Gif3" - }, - { - "type": "document", - "weight": 1, - "range": [ - 39, - 39 - ], - "name": "Featherbone", - "img": "icons/commodities/bones/bones-stack-worn-brown.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.DpxEMpwfasEBpORU", - "_id": "hPKdeNWzJqCuFfjX", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.hPKdeNWzJqCuFfjX" - }, - { - "type": "document", - "weight": 1, - "range": [ - 40, - 40 - ], - "name": "Circle of the Void", - "img": "icons/magic/unholy/orb-glowing-purple.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.elsyP6VhHw1JjGSl", - "_id": "sh98CSXJL593xj0h", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.sh98CSXJL593xj0h" - }, - { - "type": "document", - "weight": 1, - "range": [ - 41, - 41 - ], - "name": "Sun Tree Sap", - "img": "icons/consumables/drinks/wine-amphora-clay-pink.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.kwexUzdM9wm1Qums", - "_id": "lL2638NxooIcWgfL", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.lL2638NxooIcWgfL" - }, - { - "type": "document", - "weight": 1, - "range": [ - 42, - 42 - ], - "name": "Dripfang Poison", - "img": "icons/consumables/potions/potion-jug-corked-skull-poison-brown-green.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.eU8VpbWB2NHIL47n", - "_id": "xXPyThPKW3noUC1t", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.xXPyThPKW3noUC1t" - }, - { - "type": "document", - "weight": 1, - "range": [ - 43, - 43 - ], - "name": "Major Health Potion", - "img": "icons/consumables/potions/bottle-round-label-cork-red.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.cM7pHe8bBAxSZ2xR", - "_id": "x2EnrXxULti4Chpb", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.x2EnrXxULti4Chpb" - }, - { - "type": "document", - "weight": 1, - "range": [ - 44, - 44 - ], - "name": "Major Stamina Potion", - "img": "icons/consumables/potions/bottle-round-label-cork-green.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.I4cQ03xbxnc81EGa", - "_id": "2WsA7zyGFJROyf8n", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.2WsA7zyGFJROyf8n" - }, - { - "type": "document", - "weight": 1, - "range": [ - 45, - 45 - ], - "name": "Ogre Musk", - "img": "icons/commodities/materials/slime-thick-green.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.qr1bosjFcUfuwq4B", - "_id": "vNlix6NqUSWwq2MU", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.vNlix6NqUSWwq2MU" - }, - { - "type": "document", - "weight": 1, - "range": [ - 46, - 46 - ], - "name": "Wingsprout", - "img": "icons/consumables/plants/leaf-broad-blue.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.n10vozlmosVR6lo4", - "_id": "iCj1YAinJxuGT2EN", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.iCj1YAinJxuGT2EN" - }, - { - "type": "document", - "weight": 1, - "range": [ - 47, - 47 - ], - "name": "Jar of Lost Voices", - "img": "icons/containers/kitchenware/jug-wrapped-red.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.yUol6M5b8jsbk9za", - "_id": "mTq9bibanrSynx3t", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.mTq9bibanrSynx3t" - }, - { - "type": "document", - "weight": 1, - "range": [ - 48, - 48 - ], - "name": "Dragonbloom Tea", - "img": "icons/consumables/drinks/tea-jug-gourd-brown.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.wM18PWWW2Ami4fBG", - "_id": "oEKTJg1p52E1NVqm", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.oEKTJg1p52E1NVqm" - }, - { - "type": "document", - "weight": 1, - "range": [ - 49, - 49 - ], - "name": "Bridge Seed", - "img": "icons/consumables/plants/leaf-old-dried-curled-green.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.RrIasiMCt6mqVTps", - "_id": "viK90OvIqxwj8kcD", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.viK90OvIqxwj8kcD" - }, - { - "type": "document", - "weight": 1, - "range": [ - 50, - 50 - ], - "name": "Sleeping Sap", - "img": "icons/consumables/potions/bottle-bulb-corked-labeled-blue.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.XZavUVlHEvE2srEt", - "_id": "7bOHwnq9xyBXT0Or", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.7bOHwnq9xyBXT0Or" - }, - { - "type": "document", - "weight": 1, - "range": [ - 51, - 51 - ], - "name": "Feast of Xuria", - "img": "icons/consumables/food/bowl-stew-tofu-potato-red.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.aX6NyxkNzu0LcJpt", - "_id": "aF8qVVOuVHUCyDon", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.aF8qVVOuVHUCyDon" - }, - { - "type": "document", - "weight": 1, - "range": [ - 52, - 52 - ], - "name": "Bonding Honey", - "img": "icons/consumables/food/soup-broth-bowl-wooden-yellow.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.PfQvqopXgvroBklL", - "_id": "dXbNSYrZs1LpnX2D", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.dXbNSYrZs1LpnX2D" - }, - { - "type": "document", - "weight": 1, - "range": [ - 53, - 53 - ], - "name": "Shrinking Potion", - "img": "icons/consumables/potions/flask-decorated-label-pink.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.HGixKenQwhyRAYNk", - "_id": "YpBzj89kfEpjmhO7", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.YpBzj89kfEpjmhO7" - }, - { - "type": "document", - "weight": 1, - "range": [ - 54, - 54 - ], - "name": "Growing Potion", - "img": "icons/consumables/potions/potion-bottle-corked-labeled-green.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.fl2f3ees8RFMze9t", - "_id": "3QHLVvfKx73UTKmm", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.3QHLVvfKx73UTKmm" - }, - { - "type": "document", - "weight": 1, - "range": [ - 55, - 55 - ], - "name": "Knowledge Stone", - "img": "icons/commodities/treasure/token-engraved-blue-glowing.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.nL9IALzm9BNi5oSt", - "_id": "C4MpR7mBHjIiPRzo", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.C4MpR7mBHjIiPRzo" - }, - { - "type": "document", - "weight": 1, - "range": [ - 56, - 56 - ], - "name": "Sweet Moss", - "img": "icons/consumables/plants/succulent-bundle-green.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.GrDrRqWgv7gvl9vn", - "_id": "Z5UPngFMi7TSojoM", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.Z5UPngFMi7TSojoM" - }, - { - "type": "document", - "weight": 1, - "range": [ - 57, - 57 - ], - "name": "Blinding Orb", - "img": "icons/magic/light/explosion-star-large-blue-yellow.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.eAXHdzA5qNPldOpn", - "_id": "bMCETSm5oYxdpRyu", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.bMCETSm5oYxdpRyu" - }, - { - "type": "document", - "weight": 1, - "range": [ - 58, - 58 - ], - "name": "Death Tea", - "img": "icons/consumables/drinks/wine-amphora-clay-gray.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.xDnJeF1grkmKck8Q", - "_id": "wkAnGk1yLHE6bzfr", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.wkAnGk1yLHE6bzfr" - }, - { - "type": "document", - "weight": 1, - "range": [ - 59, - 59 - ], - "name": "Mirror of Marigold", - "img": "icons/commodities/treasure/token-silver-blue.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.UFQVwgYOUZ88UxcH", - "_id": "XKAAfJUyqwRSRgh1", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.XKAAfJUyqwRSRgh1" - }, - { - "type": "document", - "weight": 1, - "range": [ - 60, - 60 - ], - "name": "Stardrop", - "img": "icons/magic/light/projectiles-star-purple.webp", - "documentUuid": "Compendium.daggerheart.consumables.Item.y4c1jrlHrf0wBWOq", - "_id": "91ALaXvFQDOq5h2A", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!tF04P02yVN1YDVel.91ALaXvFQDOq5h2A" - } - ], - "replacement": true, - "displayRoll": true, - "folder": null, - "ownership": { - "default": 0, - "Bgvu4A6AMkRFOTGR": 3 - }, - "flags": {}, - "formula": "1d60", - "_id": "tF04P02yVN1YDVel", - "sort": 300000, - "_key": "!tables!tF04P02yVN1YDVel" -} diff --git a/src/packs/rolltables/tables_Loot_S61Shlt2I5CbLRjz.json b/src/packs/rolltables/tables_Loot_S61Shlt2I5CbLRjz.json deleted file mode 100644 index 9517eadd..00000000 --- a/src/packs/rolltables/tables_Loot_S61Shlt2I5CbLRjz.json +++ /dev/null @@ -1,1519 +0,0 @@ -{ - "name": "Loot", - "img": "icons/commodities/treasure/brooch-gold-ruby.webp", - "description": "

To generate a random item, choose a rarity, roll the designated dice, and match the total to the item in the table:

  • Common: 1d12 or 2d12

  • Uncommon: 2d12 or 3d12

  • Rare: 3d12 or 4d12

  • Legendary: 4d12 or 5d12

", - "results": [ - { - "type": "document", - "weight": 1, - "range": [ - 1, - 1 - ], - "_id": "U0jqWUc9SVQTwZOt", - "name": "Premium Bedroll", - "img": "icons/sundries/survival/bedroll-blue-red.webp", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "documentUuid": "Compendium.daggerheart.loot.Item.QGYPNBIufpBguwjC", - "_key": "!tables.results!S61Shlt2I5CbLRjz.U0jqWUc9SVQTwZOt" - }, - { - "type": "document", - "weight": 1, - "range": [ - 2, - 2 - ], - "_id": "jsje2l4MxyDSeiQ5", - "name": "Piper Whistle", - "img": "icons/tools/instruments/pipe-flue-tan.webp", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "documentUuid": "Compendium.daggerheart.loot.Item.v4PIoCCEjeE3acys", - "_key": "!tables.results!S61Shlt2I5CbLRjz.jsje2l4MxyDSeiQ5" - }, - { - "type": "document", - "weight": 1, - "range": [ - 3, - 3 - ], - "name": "Charging Quiver", - "img": "icons/containers/ammunition/arrows-quiver-grey-gold.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.gsUDP90d4SRtLEUn", - "_id": "OUEywrTcAKy9jOf2", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.OUEywrTcAKy9jOf2" - }, - { - "type": "document", - "weight": 1, - "range": [ - 4, - 4 - ], - "name": "Alistair’s Torch", - "img": "icons/sundries/lights/torch-brown-lit.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.MeEg57T6MKpw3sme", - "_id": "jYHROKTetnH9U1NF", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.jYHROKTetnH9U1NF" - }, - { - "type": "document", - "weight": 1, - "range": [ - 5, - 5 - ], - "name": "Speaking Orbs", - "img": "icons/commodities/materials/glass-orb-blue-gold.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.LZrG6CFiSjpLA2F1", - "_id": "1skyTdrVs2cPMbYd", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.1skyTdrVs2cPMbYd" - }, - { - "type": "document", - "weight": 1, - "range": [ - 6, - 6 - ], - "name": "Manacles", - "img": "icons/sundries/survival/cuffs-shackles-steel.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.GkmATIuemyFtQX1D", - "_id": "ew7VM7lktgEHUVNh", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.ew7VM7lktgEHUVNh" - }, - { - "type": "document", - "weight": 1, - "range": [ - 7, - 7 - ], - "name": "Arcane Cloak", - "img": "icons/equipment/back/cloak-layered-green-brown.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.4STt98biZwjFoKOe", - "_id": "ghM44MABWLVc0594", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.ghM44MABWLVc0594" - }, - { - "type": "document", - "weight": 1, - "range": [ - 8, - 8 - ], - "name": "Woven Net", - "img": "icons/tools/fishing/net-tan.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.ARuv48PWUGJGBC4n", - "_id": "NWltT1Sifub9cFxR", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.NWltT1Sifub9cFxR" - }, - { - "type": "document", - "weight": 1, - "range": [ - 9, - 9 - ], - "name": "Fire Jar", - "img": "icons/containers/kitchenware/jug-wrapped-red.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.X6RMkIt89wf7qX2E", - "_id": "2NbLnKKXmmx5m1Di", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.2NbLnKKXmmx5m1Di" - }, - { - "type": "document", - "weight": 1, - "range": [ - 10, - 10 - ], - "name": "Suspended Rod", - "img": "icons/commodities/tech/pipe-metal.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.nnj12RiFanq7s5zv", - "_id": "COpKr1HYsR8Jkwyn", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.COpKr1HYsR8Jkwyn" - }, - { - "type": "document", - "weight": 1, - "range": [ - 11, - 11 - ], - "name": "Glamour Stone", - "img": "icons/commodities/treasure/token-engraved-purple-glowing.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.Pj17cvdJ1XG1jv6I", - "_id": "e1vjhShtDZSnVUNu", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.e1vjhShtDZSnVUNu" - }, - { - "type": "document", - "weight": 1, - "range": [ - 12, - 12 - ], - "name": "Empty Chest", - "img": "icons/containers/chest/chest-simple-box-gold-brown.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.p2yy61uKsyIsl8cU", - "_id": "HIvObcLTrncfN7Qx", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.HIvObcLTrncfN7Qx" - }, - { - "type": "document", - "weight": 1, - "range": [ - 13, - 13 - ], - "name": "Companion Case", - "img": "icons/containers/chest/chest-reinforced-steel-red.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.V25uXkAQvK3hUta4", - "_id": "fCgRZndg111RI8MC", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.fCgRZndg111RI8MC" - }, - { - "type": "document", - "weight": 1, - "range": [ - 14, - 14 - ], - "name": "Piercing Arrows", - "img": "icons/weapons/ammunition/arrow-broadhead-glowing-orange.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.I63LTFD6GXHgyGpR", - "_id": "97oyM8w0xZjeQkeM", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.97oyM8w0xZjeQkeM" - }, - { - "type": "document", - "weight": 1, - "range": [ - 15, - 15 - ], - "name": "Valorstone", - "img": "icons/commodities/treasure/token-engraved-spiral-grey-white.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.7yywua9TmQ4WP5WH", - "_id": "EY4Rtt8KDpjhTxCH", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.EY4Rtt8KDpjhTxCH" - }, - { - "type": "document", - "weight": 1, - "range": [ - 16, - 16 - ], - "name": "Skeleton Key", - "img": "icons/sundries/misc/key-ornate-iron-black.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.edkNgwy4xghZreBa", - "_id": "XYORiEz8M7K3BNWM", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.XYORiEz8M7K3BNWM" - }, - { - "type": "document", - "weight": 1, - "range": [ - 17, - 17 - ], - "name": "Arcane Prism", - "img": "icons/commodities/gems/gem-faceted-trillion-blue.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.Mn1eo2Mdtu1kzyxB", - "_id": "Yc3x5ifOASG15MrD", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.Yc3x5ifOASG15MrD" - }, - { - "type": "document", - "weight": 1, - "range": [ - 18, - 18 - ], - "name": "Minor Stamina Potion Recipe", - "img": "icons/sundries/scrolls/scroll-bound-green.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.1TLpFsp3PLDsqoTw", - "_id": "akIE4Bu9zq6N4N0d", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.akIE4Bu9zq6N4N0d" - }, - { - "type": "document", - "weight": 1, - "range": [ - 19, - 19 - ], - "name": "Minor Health Potion Recipe", - "img": "icons/sundries/scrolls/scroll-bound-red.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.PQxvxAVBbkt0TleC", - "_id": "GVUbOeXrT0TLPlW9", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.GVUbOeXrT0TLPlW9" - }, - { - "type": "document", - "weight": 1, - "range": [ - 20, - 20 - ], - "name": "Homing Compasses", - "img": "icons/tools/navigation/compass-worn-copper.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.yrAGYlDyoe4OYl7d", - "_id": "0FaxK5udut2y79B7", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.0FaxK5udut2y79B7" - }, - { - "type": "document", - "weight": 1, - "range": [ - 21, - 21 - ], - "name": "Corrector Sprite", - "img": "icons/magic/light/orbs-smoke-pink.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.G0RktbmtnuAlKCRH", - "_id": "R1iPLFiRgHFhm5x2", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.R1iPLFiRgHFhm5x2" - }, - { - "type": "document", - "weight": 1, - "range": [ - 22, - 22 - ], - "name": "Gecko Gloves", - "img": "icons/equipment/hand/glove-ring-leather-green.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.CGzjBpHJRG8KSt5Y", - "_id": "MUWHmP6Bx55SSOpQ", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.MUWHmP6Bx55SSOpQ" - }, - { - "type": "document", - "weight": 1, - "range": [ - 23, - 23 - ], - "name": "Lorekeeper", - "img": "icons/sundries/books/book-backed-wood-tan.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.JsPYzrqpITqGj23I", - "_id": "X2vU11ltW4aMbPcc", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.X2vU11ltW4aMbPcc" - }, - { - "type": "document", - "weight": 1, - "range": [ - 24, - 24 - ], - "name": "Vial of Darksmoke Recipe", - "img": "icons/sundries/scrolls/scroll-bound-black-brown.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.MhCo8i0cRXzdnXbA", - "_id": "SJmfB1HDxXJB6xyS", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.SJmfB1HDxXJB6xyS" - }, - { - "type": "document", - "weight": 1, - "range": [ - 25, - 25 - ], - "name": "Bloodstone", - "img": "icons/commodities/treasure/token-engraved-eye-red.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.oMd78vhL2x2NO8Mg", - "_id": "dEyzIWTTbSk8LaoN", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.dEyzIWTTbSk8LaoN" - }, - { - "type": "document", - "weight": 1, - "range": [ - 26, - 26 - ], - "name": "Greatstone", - "img": "icons/commodities/treasure/token-etched-h-brown.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.y7zABzR0Q2fRskTw", - "_id": "sSwx1g6eqgLqPgBu", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.sSwx1g6eqgLqPgBu" - }, - { - "type": "document", - "weight": 1, - "range": [ - 27, - 27 - ], - "name": "Glider", - "img": "icons/commodities/leather/leather-patch-red.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.CiXwelozmBDcPY48", - "_id": "DSPDKm53Mu6PeaK1", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.DSPDKm53Mu6PeaK1" - }, - { - "type": "document", - "weight": 1, - "range": [ - 28, - 28 - ], - "name": "Ring of Silence", - "img": "icons/equipment/finger/ring-ball-purple.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.K1ysGnTpNyxPu5Au", - "_id": "SSuVJ6WbSdfpMxTx", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.SSuVJ6WbSdfpMxTx" - }, - { - "type": "document", - "weight": 1, - "range": [ - 29, - 29 - ], - "name": "Calming Pendant", - "img": "icons/equipment/neck/amulet-round-blue.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.tgFFMxpuRSiRrrEB", - "_id": "Fwq1wJzAGdO2rUWo", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.Fwq1wJzAGdO2rUWo" - }, - { - "type": "document", - "weight": 1, - "range": [ - 30, - 30 - ], - "name": "Dual Flask", - "img": "icons/consumables/potions/round-decorated-snake-green.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.HCvcAu3sdHCspGMP", - "_id": "elle12djjCs3D6Vr", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.elle12djjCs3D6Vr" - }, - { - "type": "document", - "weight": 1, - "range": [ - 31, - 31 - ], - "name": "Bag of Ficklesand", - "img": "icons/containers/bags/pouch-cloth-tan.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.v758j4FwNVAurhYK", - "_id": "yXyVHCrQEamt9DSt", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.yXyVHCrQEamt9DSt" - }, - { - "type": "document", - "weight": 1, - "range": [ - 32, - 32 - ], - "name": "Ring of Resistance", - "img": "icons/equipment/finger/ring-shield-silver.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.aUqRifqR5JXXa1dN", - "_id": "mHlhtw9BRyMeeGvz", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.mHlhtw9BRyMeeGvz" - }, - { - "type": "document", - "weight": 1, - "range": [ - 33, - 33 - ], - "name": "Phoenix Feather", - "img": "icons/commodities/materials/feather-red.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.QNtzJSVENww63THa", - "_id": "5R86TY964aeYZxLa", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.5R86TY964aeYZxLa" - }, - { - "type": "document", - "weight": 1, - "range": [ - 34, - 34 - ], - "name": "Box of Many Goods", - "img": "icons/containers/boxes/crate-heavy-yellow.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.bZyT7Qw7iafswlTY", - "_id": "6ZhCovGbkTxRJFFx", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.6ZhCovGbkTxRJFFx" - }, - { - "type": "document", - "weight": 1, - "range": [ - 35, - 35 - ], - "name": "Airblade Charm", - "img": "icons/equipment/neck/amulet-carved-stone-spiral-blue.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.cTYvyaSKBxosM9Y9", - "_id": "UYHcpVuL9P26VPBM", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.UYHcpVuL9P26VPBM" - }, - { - "type": "document", - "weight": 1, - "range": [ - 36, - 36 - ], - "name": "Portal Seed", - "img": "icons/commodities/treasure/egg-ornate-green-gold.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.eRd5Gk7J7hPCqp11", - "_id": "yOchOTcWwUwug2st", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.yOchOTcWwUwug2st" - }, - { - "type": "document", - "weight": 1, - "range": [ - 37, - 37 - ], - "name": "Paragon’s Chain", - "img": "icons/equipment/neck/choker-chain-thin-gold.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.F4hoRfvVdZq5bhhI", - "_id": "TFgxOPNDbLYDzxrl", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.TFgxOPNDbLYDzxrl" - }, - { - "type": "document", - "weight": 1, - "range": [ - 38, - 38 - ], - "name": "Elusive Amulet", - "img": "icons/equipment/neck/pendant-rough-silver-purple.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.PkmTZXRMZL022O75", - "_id": "GcJEXPoMDxxWNYno", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.GcJEXPoMDxxWNYno" - }, - { - "type": "document", - "weight": 1, - "range": [ - 39, - 39 - ], - "name": "Hopekeeper Locket", - "img": "icons/equipment/neck/amulet-round-engraved-spiral-gold.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.9DcFR75tsnBYIp6Z", - "_id": "iyiOPysR6uQE7QXR", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.iyiOPysR6uQE7QXR" - }, - { - "type": "document", - "weight": 1, - "range": [ - 40, - 40 - ], - "name": "Infinite Bag", - "img": "icons/containers/bags/pack-engraved-leather-blue.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.Iedjw1LVWEozVh0J", - "_id": "nsg8GxSABbvsZo5v", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.nsg8GxSABbvsZo5v" - }, - { - "type": "document", - "weight": 1, - "range": [ - 41, - 41 - ], - "name": "Stride Relic", - "img": "icons/commodities/treasure/token-runed-ing-brown.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.FfJISMzYATaPQPLc", - "_id": "DFEA1djJSnstOXym", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.DFEA1djJSnstOXym" - }, - { - "type": "document", - "weight": 1, - "range": [ - 42, - 42 - ], - "name": "Bolster Relic", - "img": "icons/commodities/treasure/token-runed-radr-brown.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.m3EpxlDgxn2tCDDR", - "_id": "xa075fPgUGCVVGiy", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.xa075fPgUGCVVGiy" - }, - { - "type": "document", - "weight": 1, - "range": [ - 43, - 43 - ], - "name": "Control Relic", - "img": "icons/commodities/treasure/token-runed-sigel-brown.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.QPGBDItjrRhXU6iJ", - "_id": "zNS3a6JZLlLgXxXI", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.zNS3a6JZLlLgXxXI" - }, - { - "type": "document", - "weight": 1, - "range": [ - 44, - 44 - ], - "name": "Attune Relic", - "img": "icons/commodities/treasure/token-runed-spiral-grey.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.vK6bKyQTT3m8WvMh", - "_id": "pf1zrtyDamclUpb5", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.pf1zrtyDamclUpb5" - }, - { - "type": "document", - "weight": 1, - "range": [ - 45, - 45 - ], - "name": "Charm Relic", - "img": "icons/commodities/treasure/token-runed-wyn-grey.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.9P9jqGSlxVCbTdLe", - "_id": "JNsJQefAYXARnzcB", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.JNsJQefAYXARnzcB" - }, - { - "type": "document", - "weight": 1, - "range": [ - 46, - 46 - ], - "name": "Enlighten Relic", - "img": "icons/commodities/treasure/token-runed-os-grey.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.vSGx1f9SYUiA29L3", - "_id": "Bk2zTfHlpNg4f4AB", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.Bk2zTfHlpNg4f4AB" - }, - { - "type": "document", - "weight": 1, - "range": [ - 47, - 47 - ], - "name": "Honing Relic", - "img": "icons/commodities/treasure/token-runed-nyd-yellow.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.SAAnEAeXDnhBbLjB", - "_id": "BxB4fAXy57tWHc98", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.BxB4fAXy57tWHc98" - }, - { - "type": "document", - "weight": 1, - "range": [ - 48, - 48 - ], - "name": "Flickerfly Pendant", - "img": "icons/equipment/neck/choker-rough-green.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.9VKYSBQxN9XFWlAm", - "_id": "b7JDKti5fXipswXs", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.b7JDKti5fXipswXs" - }, - { - "type": "document", - "weight": 1, - "range": [ - 49, - 49 - ], - "name": "Lakestrider Boots", - "img": "icons/equipment/feet/shoes-collared-leather-blue.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.NgvmrJYKpA2PrRSo", - "_id": "ngpVKb5GIJySdf2Y", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.ngpVKb5GIJySdf2Y" - }, - { - "type": "document", - "weight": 1, - "range": [ - 50, - 50 - ], - "name": "Clay Companion", - "img": "icons/commodities/gems/pearl-brown.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.lGIk9vBNz0jvskXD", - "_id": "IrKbVyqUcSruPPfZ", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.IrKbVyqUcSruPPfZ" - }, - { - "type": "document", - "weight": 1, - "range": [ - 51, - 51 - ], - "name": "Mythic Dust Recipe", - "img": "icons/sundries/scrolls/scroll-bound-green.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.5YZls8XH3MB7twNa", - "_id": "V1R3wUj4l7lnbph1", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.V1R3wUj4l7lnbph1" - }, - { - "type": "document", - "weight": 1, - "range": [ - 52, - 52 - ], - "name": "Shard of Memory", - "img": "icons/commodities/gems/gem-rough-navette-purple-pink.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.2ULPgNyqCrxea0v0", - "_id": "0dFhkeOokjbwptHh", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.0dFhkeOokjbwptHh" - }, - { - "type": "document", - "weight": 1, - "range": [ - 53, - 53 - ], - "name": "Gem of Alacrity", - "img": "icons/commodities/gems/gem-rough-ball-purple.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.zecFwBUSWtB3HW8X", - "_id": "CLObmHdtId5fEs4n", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.CLObmHdtId5fEs4n" - }, - { - "type": "document", - "weight": 1, - "range": [ - 54, - 54 - ], - "name": "Gem of Might", - "img": "icons/commodities/gems/gem-rough-brilliant-green.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.rtSInNPc4B3ChBUZ", - "_id": "17Zw4Tl1s1h5cFZK", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.17Zw4Tl1s1h5cFZK" - }, - { - "type": "document", - "weight": 1, - "range": [ - 55, - 55 - ], - "name": "Gem of Precision", - "img": "icons/commodities/gems/gem-rough-cushion-green.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.CrvJ7vb4s40YgEcy", - "_id": "6zmLU8WdmEWbIHBL", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.6zmLU8WdmEWbIHBL" - }, - { - "type": "document", - "weight": 1, - "range": [ - 56, - 56 - ], - "name": "Gem of Insight", - "img": "icons/commodities/gems/gem-rough-cushion-blue.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.TbgeT9ZxKHqFqJSN", - "_id": "AEeWEQnJwq51mBnM", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.AEeWEQnJwq51mBnM" - }, - { - "type": "document", - "weight": 1, - "range": [ - 57, - 57 - ], - "name": "Gem of Audacity", - "img": "icons/commodities/gems/gem-rough-cushion-pink-yellow.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.hMu9It3ThCLCXuCA", - "_id": "SuymUKc0CeisDgm2", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.SuymUKc0CeisDgm2" - }, - { - "type": "document", - "weight": 1, - "range": [ - 58, - 58 - ], - "name": "Gem of Sagacity", - "img": "icons/commodities/gems/gem-rough-cushion-purple.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.ua351S7CsH22X1x2", - "_id": "27LKVRatgX1asMpR", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.27LKVRatgX1asMpR" - }, - { - "type": "document", - "weight": 1, - "range": [ - 59, - 59 - ], - "name": "Ring of Unbreakable Resolve", - "img": "icons/equipment/finger/ring-faceted-gold-teal.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.kn71qCQY0DnjmQBJ", - "_id": "3A76l2jxYMqVfcQY", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.3A76l2jxYMqVfcQY" - }, - { - "type": "document", - "weight": 1, - "range": [ - 60, - 60 - ], - "name": "Belt of Unity", - "img": "icons/equipment/waist/belt-buckle-ornate-steel.webp", - "documentUuid": "Compendium.daggerheart.loot.Item.gFzkUGCjkRJtyoe9", - "_id": "dkLn9gwnlaD4kbZ2", - "description": "", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "_key": "!tables.results!S61Shlt2I5CbLRjz.dkLn9gwnlaD4kbZ2" - } - ], - "replacement": true, - "displayRoll": true, - "folder": null, - "ownership": { - "default": 0, - "Bgvu4A6AMkRFOTGR": 3 - }, - "flags": {}, - "formula": "1d60", - "_id": "S61Shlt2I5CbLRjz", - "sort": 200000, - "_key": "!tables!S61Shlt2I5CbLRjz" -} diff --git a/src/packs/rolltables/tables_Table_of_Random_Objectives_I5L1dlgxXTNrCCkL.json b/src/packs/rolltables/tables_Table_of_Random_Objectives_I5L1dlgxXTNrCCkL.json deleted file mode 100644 index b10127e7..00000000 --- a/src/packs/rolltables/tables_Table_of_Random_Objectives_I5L1dlgxXTNrCCkL.json +++ /dev/null @@ -1,319 +0,0 @@ -{ - "name": "Table of Random Objectives", - "img": "icons/sundries/documents/document-torn-diagram-tan.webp", - "description": "

Layering Goals Other than Attrition into Combat

", - "results": [ - { - "type": "text", - "weight": 1, - "range": [ - 1, - 1 - ], - "_id": "LDuVbmdvhJiEOe7U", - "name": "", - "img": "icons/svg/d12-grey.svg", - "description": "

Acquire (obtain or steal) an important item or items.

", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "documentUuid": null, - "_key": "!tables.results!I5L1dlgxXTNrCCkL.LDuVbmdvhJiEOe7U" - }, - { - "type": "text", - "weight": 1, - "range": [ - 2, - 2 - ], - "_id": "FxYpST4nQUTBp1mN", - "name": "", - "img": "icons/svg/d12-grey.svg", - "description": "

Capture one or more of the opponents.

", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "documentUuid": null, - "_key": "!tables.results!I5L1dlgxXTNrCCkL.FxYpST4nQUTBp1mN" - }, - { - "type": "text", - "weight": 1, - "range": [ - 3, - 3 - ], - "_id": "bTkZgxqEr4lNxzeK", - "name": "", - "img": "icons/svg/d12-grey.svg", - "description": "

Activate a magical device.

", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "documentUuid": null, - "_key": "!tables.results!I5L1dlgxXTNrCCkL.bTkZgxqEr4lNxzeK" - }, - { - "type": "text", - "weight": 1, - "range": [ - 4, - 4 - ], - "_id": "T39LgOL1cw5AIY59", - "name": "", - "img": "icons/svg/d12-grey.svg", - "description": "

Frame a character or tarnish their reputation.

", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "documentUuid": null, - "_key": "!tables.results!I5L1dlgxXTNrCCkL.T39LgOL1cw5AIY59" - }, - { - "type": "text", - "weight": 1, - "range": [ - 5, - 5 - ], - "_id": "MHgv8dlrwA3ZmBKq", - "name": "", - "img": "icons/svg/d12-grey.svg", - "description": "

Drive the opponent into a corner or ambush point.

", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "documentUuid": null, - "_key": "!tables.results!I5L1dlgxXTNrCCkL.MHgv8dlrwA3ZmBKq" - }, - { - "type": "text", - "weight": 1, - "range": [ - 6, - 6 - ], - "_id": "4USCNNavzVvBqldn", - "name": "", - "img": "icons/svg/d12-grey.svg", - "description": "

Stop a magical ritual, legal ceremony, or time-sensitive spell.

", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "documentUuid": null, - "_key": "!tables.results!I5L1dlgxXTNrCCkL.4USCNNavzVvBqldn" - }, - { - "type": "text", - "weight": 1, - "range": [ - 7, - 7 - ], - "_id": "gwZnWTauHsbb6rsr", - "name": "", - "img": "icons/svg/d12-grey.svg", - "description": "

Hold the lineβ€”keep the enemy from reaching a specific area or group.

", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "documentUuid": null, - "_key": "!tables.results!I5L1dlgxXTNrCCkL.gwZnWTauHsbb6rsr" - }, - { - "type": "text", - "weight": 1, - "range": [ - 8, - 8 - ], - "_id": "beDIxxPyCCVa8nlE", - "name": "", - "img": "icons/svg/d12-grey.svg", - "description": "

Plant evidence or a tracking device on a target.

", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "documentUuid": null, - "_key": "!tables.results!I5L1dlgxXTNrCCkL.beDIxxPyCCVa8nlE" - }, - { - "type": "text", - "weight": 1, - "range": [ - 9, - 9 - ], - "_id": "C70V6prVmZd5VRV8", - "name": "", - "img": "icons/svg/d12-grey.svg", - "description": "

Secure a specific location ahead of another group’s arrival.

", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "documentUuid": null, - "_key": "!tables.results!I5L1dlgxXTNrCCkL.C70V6prVmZd5VRV8" - }, - { - "type": "text", - "weight": 1, - "range": [ - 10, - 10 - ], - "_id": "i02rh05CvhHlKJCN", - "name": "", - "img": "icons/svg/d12-grey.svg", - "description": "

Harass the opponent to deplete their resources or keep them occupied.

", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "documentUuid": null, - "_key": "!tables.results!I5L1dlgxXTNrCCkL.i02rh05CvhHlKJCN" - }, - { - "type": "text", - "weight": 1, - "range": [ - 11, - 11 - ], - "_id": "AbNgD5GCbWuui9oP", - "name": "", - "img": "icons/svg/d12-grey.svg", - "description": "

Destroy a piece of architecture, a statue, a shrine, or a weapon.

", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "documentUuid": null, - "_key": "!tables.results!I5L1dlgxXTNrCCkL.AbNgD5GCbWuui9oP" - }, - { - "type": "text", - "weight": 1, - "range": [ - 12, - 12 - ], - "_id": "TCrdyh3qhl2vtQxO", - "name": "", - "img": "icons/svg/d12-grey.svg", - "description": "

Investigate a situation to confirm or deny existing information.

", - "drawn": false, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.351", - "systemId": "daggerheart", - "systemVersion": "1.4.4", - "lastModifiedBy": null - }, - "documentUuid": null, - "_key": "!tables.results!I5L1dlgxXTNrCCkL.TCrdyh3qhl2vtQxO" - } - ], - "replacement": true, - "displayRoll": true, - "folder": null, - "ownership": { - "default": 0, - "Bgvu4A6AMkRFOTGR": 3 - }, - "flags": {}, - "formula": "1d12", - "_id": "I5L1dlgxXTNrCCkL", - "sort": 400000, - "_key": "!tables!I5L1dlgxXTNrCCkL" -} diff --git a/src/packs/subclasses/feature_Accomplished_0wCctRupJAv5hTuE.json b/src/packs/subclasses/feature_Accomplished_0wCctRupJAv5hTuE.json index 5a83bf98..2e23c31c 100644 --- a/src/packs/subclasses/feature_Accomplished_0wCctRupJAv5hTuE.json +++ b/src/packs/subclasses/feature_Accomplished_0wCctRupJAv5hTuE.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754253943924, + "modifiedTime": 1754253975014, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!0wCctRupJAv5hTuE" } diff --git a/src/packs/subclasses/feature_Act_of_Reprisal_k7vvMJtEcxMWUUrW.json b/src/packs/subclasses/feature_Act_of_Reprisal_k7vvMJtEcxMWUUrW.json index 304bd29c..6b505c86 100644 --- a/src/packs/subclasses/feature_Act_of_Reprisal_k7vvMJtEcxMWUUrW.json +++ b/src/packs/subclasses/feature_Act_of_Reprisal_k7vvMJtEcxMWUUrW.json @@ -29,7 +29,7 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Mark Adversary", @@ -38,12 +38,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 16, - "artist": "" - } + "originId": null }, "effects": [ { @@ -73,7 +68,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754351612885, + "modifiedTime": 1754351612885, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!k7vvMJtEcxMWUUrW.9Uo0yOYGn3vandPp" } @@ -84,5 +87,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754243143650, + "modifiedTime": 1754351612905, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!k7vvMJtEcxMWUUrW" } diff --git a/src/packs/subclasses/feature_Adept_v511C6GMShsBblah.json b/src/packs/subclasses/feature_Adept_v511C6GMShsBblah.json index 9be548eb..a19ae5c9 100644 --- a/src/packs/subclasses/feature_Adept_v511C6GMShsBblah.json +++ b/src/packs/subclasses/feature_Adept_v511C6GMShsBblah.json @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -41,12 +42,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -55,5 +51,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754253694438, + "modifiedTime": 1754253772703, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!v511C6GMShsBblah" } diff --git a/src/packs/subclasses/feature_Adrenaline_uByM34yQlw38yf1V.json b/src/packs/subclasses/feature_Adrenaline_uByM34yQlw38yf1V.json index dc25498b..ef5d4c56 100644 --- a/src/packs/subclasses/feature_Adrenaline_uByM34yQlw38yf1V.json +++ b/src/packs/subclasses/feature_Adrenaline_uByM34yQlw38yf1V.json @@ -7,14 +7,38 @@ "system": { "description": "

While you're Vulnerable, add your level to your damage rolls.

", "resource": null, - "actions": {}, + "actions": { + "UgffABhuobRDP7MQ": { + "type": "effect", + "_id": "UgffABhuobRDP7MQ", + "systemPath": "actions", + "description": "

While you're Vulnerable, add your level to your damage rolls.

", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null, + "consumeOnSuccess": false + }, + "effects": [ + { + "_id": "HMx9uZ54mvMiH95x", + "onSave": false + } + ], + "target": { + "type": "self", + "amount": null + }, + "name": "Apply", + "img": "icons/magic/unholy/hand-marked-pink.webp", + "range": "" + } + }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 19, - "artist": "" - } + "originId": null }, "effects": [ { @@ -62,7 +86,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754351983776, + "modifiedTime": 1754352026131, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!uByM34yQlw38yf1V.HMx9uZ54mvMiH95x" } @@ -73,5 +105,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754319984350, + "modifiedTime": 1754351983791, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!uByM34yQlw38yf1V" } diff --git a/src/packs/subclasses/feature_Advanced_Training_uGcs785h94RMtueH.json b/src/packs/subclasses/feature_Advanced_Training_uGcs785h94RMtueH.json index 8f9c63f1..7cbad7d7 100644 --- a/src/packs/subclasses/feature_Advanced_Training_uGcs785h94RMtueH.json +++ b/src/packs/subclasses/feature_Advanced_Training_uGcs785h94RMtueH.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 17, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754267928272, + "modifiedTime": 1754267942465, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!uGcs785h94RMtueH" } diff --git a/src/packs/subclasses/feature_Apex_Predator_lwH3E0Zyf4gbVOd0.json b/src/packs/subclasses/feature_Apex_Predator_lwH3E0Zyf4gbVOd0.json index 3bf0416a..b435ffad 100644 --- a/src/packs/subclasses/feature_Apex_Predator_lwH3E0Zyf4gbVOd0.json +++ b/src/packs/subclasses/feature_Apex_Predator_lwH3E0Zyf4gbVOd0.json @@ -17,6 +17,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -39,12 +40,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 17, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -53,5 +49,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754268013491, + "modifiedTime": 1754268190654, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!lwH3E0Zyf4gbVOd0" } diff --git a/src/packs/subclasses/feature_Arcane_Charge_yA4MKQ1tbKFiJoDB.json b/src/packs/subclasses/feature_Arcane_Charge_yA4MKQ1tbKFiJoDB.json index e92b71ad..59dfea8f 100644 --- a/src/packs/subclasses/feature_Arcane_Charge_yA4MKQ1tbKFiJoDB.json +++ b/src/packs/subclasses/feature_Arcane_Charge_yA4MKQ1tbKFiJoDB.json @@ -17,12 +17,7 @@ }, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 23, - "artist": "" - } + "originId": null }, "effects": [ { @@ -64,7 +59,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!yA4MKQ1tbKFiJoDB.z49V45ir45HGHOBB" } @@ -75,5 +76,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754349515898, + "modifiedTime": 1754349515898, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!yA4MKQ1tbKFiJoDB" } diff --git a/src/packs/subclasses/feature_Ascendant_fefLgx6kcYWusjBb.json b/src/packs/subclasses/feature_Ascendant_fefLgx6kcYWusjBb.json index 737930df..efb31ac4 100644 --- a/src/packs/subclasses/feature_Ascendant_fefLgx6kcYWusjBb.json +++ b/src/packs/subclasses/feature_Ascendant_fefLgx6kcYWusjBb.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 21, - "artist": "" - } + "originId": null }, "effects": [ { @@ -48,7 +43,7 @@ "startRound": null, "startTurn": null }, - "description": "

Gain a permanent +4 bonus to your Severe damage threshold.

", + "description": "

Gain a permanent +4 bonus to your Severe damage threshold.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -56,7 +51,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754355742768, + "modifiedTime": 1754356124561, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!fefLgx6kcYWusjBb.7M8UsvVweRtT3E85" } @@ -67,5 +70,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754355721228, + "modifiedTime": 1754355738718, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!fefLgx6kcYWusjBb" } diff --git a/src/packs/subclasses/feature_At_Ease_xPWFvGvtUjIcqgJq.json b/src/packs/subclasses/feature_At_Ease_xPWFvGvtUjIcqgJq.json index ce628a2f..4cccb077 100644 --- a/src/packs/subclasses/feature_At_Ease_xPWFvGvtUjIcqgJq.json +++ b/src/packs/subclasses/feature_At_Ease_xPWFvGvtUjIcqgJq.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 16, - "artist": "" - } + "originId": null }, "effects": [ { @@ -56,7 +51,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754237927930, + "modifiedTime": 1754238131000, + "lastModifiedBy": "LgnbNMLaxandgMQq" }, "_key": "!items.effects!xPWFvGvtUjIcqgJq.xbS4Lr3dWpXUCHEi" } @@ -67,5 +70,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754237891794, + "modifiedTime": 1754245935236, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!xPWFvGvtUjIcqgJq" } diff --git a/src/packs/subclasses/feature_Battle_Bonded_hWsKyed1vfILg0I8.json b/src/packs/subclasses/feature_Battle_Bonded_hWsKyed1vfILg0I8.json index 106b0057..d56edfa1 100644 --- a/src/packs/subclasses/feature_Battle_Bonded_hWsKyed1vfILg0I8.json +++ b/src/packs/subclasses/feature_Battle_Bonded_hWsKyed1vfILg0I8.json @@ -9,63 +9,25 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 17, - "artist": "" - } + "originId": null }, - "effects": [ - { - "name": "Battle Bonded", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "_id": "IZhakv6EuG8DO4a3", - "img": "icons/creatures/mammals/humanoid-wolf-dog-blue.webp", - "changes": [ - { - "key": "system.evasion", - "mode": 2, - "value": "2", - "priority": null - } - ], - "disabled": true, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

When an adversary attacks you while they’re within your companion’s Melee range, you gain a +2 bonus to your Evasion against the attack.

", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!hWsKyed1vfILg0I8.IZhakv6EuG8DO4a3" - } - ], + "effects": [], "sort": 0, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754267290791, + "modifiedTime": 1754267339284, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!hWsKyed1vfILg0I8" } diff --git a/src/packs/subclasses/feature_Battle_Ritual_qqb5acyUSl1sCpWW.json b/src/packs/subclasses/feature_Battle_Ritual_qqb5acyUSl1sCpWW.json index 6dee9f9d..1ebf58ca 100644 --- a/src/packs/subclasses/feature_Battle_Ritual_qqb5acyUSl1sCpWW.json +++ b/src/packs/subclasses/feature_Battle_Ritual_qqb5acyUSl1sCpWW.json @@ -103,12 +103,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 24, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -117,5 +112,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754256232412, + "modifiedTime": 1754256309647, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!qqb5acyUSl1sCpWW" } diff --git a/src/packs/subclasses/feature_Battlemage_Y9eGMewnFZgPvX0M.json b/src/packs/subclasses/feature_Battlemage_Y9eGMewnFZgPvX0M.json index 9e389095..b6be75f0 100644 --- a/src/packs/subclasses/feature_Battlemage_Y9eGMewnFZgPvX0M.json +++ b/src/packs/subclasses/feature_Battlemage_Y9eGMewnFZgPvX0M.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - } + "originId": null }, "effects": [ { @@ -56,7 +51,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754253823716, + "modifiedTime": 1754253850998, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!Y9eGMewnFZgPvX0M.6jjKzvBxAJTHHGoX" } @@ -67,5 +70,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754253784757, + "modifiedTime": 1754253819240, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!Y9eGMewnFZgPvX0M" } diff --git a/src/packs/subclasses/feature_Brilliant_2A0HBDxGc4gEARou.json b/src/packs/subclasses/feature_Brilliant_2A0HBDxGc4gEARou.json index a755c3f5..0c05fbf6 100644 --- a/src/packs/subclasses/feature_Brilliant_2A0HBDxGc4gEARou.json +++ b/src/packs/subclasses/feature_Brilliant_2A0HBDxGc4gEARou.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - } + "originId": null }, "effects": [], "sort": 100000, @@ -23,5 +18,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754254253864, + "modifiedTime": 1754254310242, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!2A0HBDxGc4gEARou" } diff --git a/src/packs/subclasses/feature_Clarity_of_Nature_etaQ01yGJhBLDUqZ.json b/src/packs/subclasses/feature_Clarity_of_Nature_etaQ01yGJhBLDUqZ.json index 09d6f953..752fee05 100644 --- a/src/packs/subclasses/feature_Clarity_of_Nature_etaQ01yGJhBLDUqZ.json +++ b/src/packs/subclasses/feature_Clarity_of_Nature_etaQ01yGJhBLDUqZ.json @@ -15,7 +15,15 @@ "description": "

Once per long rest, you can create a space of natural serenity within Close range. When you spend a few minutes resting within the space, clear Stress equal to your Instinct, distributed as you choose between you and your allies.

", "chatDisplay": false, "actionType": "action", - "cost": [], + "cost": [ + { + "scalable": false, + "key": "etaQ01yGJhBLDUqZ", + "value": 1, + "keyIsID": true, + "step": null + } + ], "uses": { "value": null, "max": "1", @@ -77,12 +85,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 11, - "artist": "" - } + "originId": null }, "effects": [], "sort": 200000, @@ -91,5 +94,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754179740310, + "modifiedTime": 1754496518048, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!etaQ01yGJhBLDUqZ" } diff --git a/src/packs/subclasses/feature_Comaraderie_dArl2cxKIEGTicXU.json b/src/packs/subclasses/feature_Comaraderie_dArl2cxKIEGTicXU.json index def9b537..61ce367d 100644 --- a/src/packs/subclasses/feature_Comaraderie_dArl2cxKIEGTicXU.json +++ b/src/packs/subclasses/feature_Comaraderie_dArl2cxKIEGTicXU.json @@ -33,12 +33,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 24, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -47,5 +42,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754256748303, + "modifiedTime": 1754256845527, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!dArl2cxKIEGTicXU" } diff --git a/src/packs/subclasses/feature_Companion_MBFXxIEwc0Dl4kJg.json b/src/packs/subclasses/feature_Companion_MBFXxIEwc0Dl4kJg.json index ba668b2e..e13065b7 100644 --- a/src/packs/subclasses/feature_Companion_MBFXxIEwc0Dl4kJg.json +++ b/src/packs/subclasses/feature_Companion_MBFXxIEwc0Dl4kJg.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 17, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754266772170, + "modifiedTime": 1754266905966, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!MBFXxIEwc0Dl4kJg" } diff --git a/src/packs/subclasses/feature_Conjure_Shield_oirsCnN66GOlK3Fa.json b/src/packs/subclasses/feature_Conjure_Shield_oirsCnN66GOlK3Fa.json index 99b04487..8fc72db2 100644 --- a/src/packs/subclasses/feature_Conjure_Shield_oirsCnN66GOlK3Fa.json +++ b/src/packs/subclasses/feature_Conjure_Shield_oirsCnN66GOlK3Fa.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - } + "originId": null }, "effects": [ { @@ -35,7 +30,7 @@ "key": "system.evasion", "mode": 2, "value": "@system.proficiency", - "priority": 21 + "priority": null } ], "disabled": false, @@ -56,7 +51,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754254098652, + "modifiedTime": 1754254137016, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!oirsCnN66GOlK3Fa.0i7GVOvjH6bK5AUM" } @@ -67,5 +70,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754254077810, + "modifiedTime": 1754254095589, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!oirsCnN66GOlK3Fa" } diff --git a/src/packs/subclasses/feature_Contacts_Everywhere_cXbRm744mW6UXGam.json b/src/packs/subclasses/feature_Contacts_Everywhere_cXbRm744mW6UXGam.json index 026da26f..3c8fa5b5 100644 --- a/src/packs/subclasses/feature_Contacts_Everywhere_cXbRm744mW6UXGam.json +++ b/src/packs/subclasses/feature_Contacts_Everywhere_cXbRm744mW6UXGam.json @@ -20,6 +20,7 @@ "scalable": false, "key": "hitPoints", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -40,12 +41,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 20, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -54,5 +50,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754320389008, + "modifiedTime": 1754496752362, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!cXbRm744mW6UXGam" } diff --git a/src/packs/subclasses/feature_Courage_o5j2vjXU8NicYlXx.json b/src/packs/subclasses/feature_Courage_o5j2vjXU8NicYlXx.json index 33b28d53..108f4571 100644 --- a/src/packs/subclasses/feature_Courage_o5j2vjXU8NicYlXx.json +++ b/src/packs/subclasses/feature_Courage_o5j2vjXU8NicYlXx.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 24, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754256184552, + "modifiedTime": 1754256222832, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!o5j2vjXU8NicYlXx" } diff --git a/src/packs/subclasses/feature_Dark_Cloud_frBTtNMX9Y2gkuPz.json b/src/packs/subclasses/feature_Dark_Cloud_frBTtNMX9Y2gkuPz.json index 95534b9f..2de13f94 100644 --- a/src/packs/subclasses/feature_Dark_Cloud_frBTtNMX9Y2gkuPz.json +++ b/src/packs/subclasses/feature_Dark_Cloud_frBTtNMX9Y2gkuPz.json @@ -56,12 +56,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 19, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -70,5 +65,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754319411878, + "modifiedTime": 1754351939150, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!frBTtNMX9Y2gkuPz" } diff --git a/src/packs/subclasses/feature_Defender_Jdktv5p1K2PfgxrT.json b/src/packs/subclasses/feature_Defender_Jdktv5p1K2PfgxrT.json index e7587751..37e5fa11 100644 --- a/src/packs/subclasses/feature_Defender_Jdktv5p1K2PfgxrT.json +++ b/src/packs/subclasses/feature_Defender_Jdktv5p1K2PfgxrT.json @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -39,12 +40,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 11, - "artist": "" - } + "originId": null }, "effects": [], "sort": 400000, @@ -53,5 +49,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754220872809, + "modifiedTime": 1754353606220, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!Jdktv5p1K2PfgxrT" } diff --git a/src/packs/subclasses/feature_Devout_J3A7ycmj65hlhWnI.json b/src/packs/subclasses/feature_Devout_J3A7ycmj65hlhWnI.json index 9075cd6e..b7568b2c 100644 --- a/src/packs/subclasses/feature_Devout_J3A7ycmj65hlhWnI.json +++ b/src/packs/subclasses/feature_Devout_J3A7ycmj65hlhWnI.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 21, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754353798475, + "modifiedTime": 1754353830966, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!J3A7ycmj65hlhWnI" } diff --git a/src/packs/subclasses/feature_Elemental_Aura_2JH9NaOh69yN80Gw.json b/src/packs/subclasses/feature_Elemental_Aura_2JH9NaOh69yN80Gw.json index 7dbae2f6..286f651d 100644 --- a/src/packs/subclasses/feature_Elemental_Aura_2JH9NaOh69yN80Gw.json +++ b/src/packs/subclasses/feature_Elemental_Aura_2JH9NaOh69yN80Gw.json @@ -173,12 +173,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 11, - "artist": "" - } + "originId": null }, "effects": [ { @@ -220,7 +215,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754182613977, + "modifiedTime": 1754352962237, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!2JH9NaOh69yN80Gw.WRuijfHxmUscAa69" }, @@ -256,7 +259,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754352980689, + "modifiedTime": 1754353001551, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!2JH9NaOh69yN80Gw.H7W52ps5d3UGmaFr" }, @@ -292,7 +303,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754353017921, + "modifiedTime": 1754353031373, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!2JH9NaOh69yN80Gw.WX5AMEpmUAutB9Hm" }, @@ -328,7 +347,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754353118747, + "modifiedTime": 1754353132571, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!2JH9NaOh69yN80Gw.mJBA2QTyM9SM5NVS" } @@ -339,5 +366,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754180638227, + "modifiedTime": 1754353118771, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!2JH9NaOh69yN80Gw" } diff --git a/src/packs/subclasses/feature_Elemental_Dominion_EFUJHrkTuyv8uA9l.json b/src/packs/subclasses/feature_Elemental_Dominion_EFUJHrkTuyv8uA9l.json index 4297173f..30d3928f 100644 --- a/src/packs/subclasses/feature_Elemental_Dominion_EFUJHrkTuyv8uA9l.json +++ b/src/packs/subclasses/feature_Elemental_Dominion_EFUJHrkTuyv8uA9l.json @@ -74,6 +74,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -125,12 +126,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 11, - "artist": "" - } + "originId": null }, "effects": [ { @@ -172,7 +168,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754220142535, + "modifiedTime": 1754353215650, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!EFUJHrkTuyv8uA9l.FoBFRSXRfGa1zkiX" }, @@ -210,7 +214,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754220553326, + "modifiedTime": 1754353227575, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!EFUJHrkTuyv8uA9l.bGwFZZT4juuaIRmZ" }, @@ -253,7 +265,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754220756066, + "modifiedTime": 1754353239076, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!EFUJHrkTuyv8uA9l.edF2zvvlcGf54r2n" }, @@ -289,7 +309,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754353189959, + "modifiedTime": 1754353202649, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!EFUJHrkTuyv8uA9l.p5FoUb4JKQFP405d" } @@ -300,5 +328,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754219959517, + "modifiedTime": 1754353189971, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!EFUJHrkTuyv8uA9l" } diff --git a/src/packs/subclasses/feature_Elemental_Incarnation_f37TTgCc0Q3Ih1A1.json b/src/packs/subclasses/feature_Elemental_Incarnation_f37TTgCc0Q3Ih1A1.json index 30ffb50b..855d34aa 100644 --- a/src/packs/subclasses/feature_Elemental_Incarnation_f37TTgCc0Q3Ih1A1.json +++ b/src/packs/subclasses/feature_Elemental_Incarnation_f37TTgCc0Q3Ih1A1.json @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -105,6 +106,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -139,6 +141,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -203,6 +206,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -227,12 +231,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 11, - "artist": "" - } + "originId": null }, "effects": [ { @@ -255,13 +254,13 @@ "key": "system.damageThresholds.major", "mode": 2, "value": "@system.proficiency", - "priority": 21 + "priority": null }, { "key": "system.damageThresholds.severe", "mode": 2, "value": "@system.proficiency", - "priority": 21 + "priority": null } ], "disabled": false, @@ -280,7 +279,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754177069880, + "modifiedTime": 1754352335991, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!f37TTgCc0Q3Ih1A1.7xyUtUbBk5jbNnqY" }, @@ -323,7 +330,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754178115976, + "modifiedTime": 1754352345491, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!f37TTgCc0Q3Ih1A1.3ck6CeapLxQVjE2W" }, @@ -359,7 +374,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754352177743, + "modifiedTime": 1754352209753, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!f37TTgCc0Q3Ih1A1.Jy6dpEbzkZ2eRDf5" }, @@ -395,7 +418,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754352293596, + "modifiedTime": 1754352318518, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!f37TTgCc0Q3Ih1A1.ANle8tuOEZIevTWv" } @@ -406,5 +437,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754176169510, + "modifiedTime": 1754352293609, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!f37TTgCc0Q3Ih1A1" } diff --git a/src/packs/subclasses/feature_Elementalist_dPcqKN5NeDkjB1HW.json b/src/packs/subclasses/feature_Elementalist_dPcqKN5NeDkjB1HW.json index 8a6b742a..b282d4fb 100644 --- a/src/packs/subclasses/feature_Elementalist_dPcqKN5NeDkjB1HW.json +++ b/src/packs/subclasses/feature_Elementalist_dPcqKN5NeDkjB1HW.json @@ -17,6 +17,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -37,12 +38,12 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Bonus to Roll", "img": "icons/sundries/gaming/dice-runed-tan.webp", - "range": "self" + "range": "" }, "S7HvFD3qIR3ifJRL": { "type": "effect", @@ -53,6 +54,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -73,21 +75,16 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Bonus to Damage", "img": "icons/sundries/gaming/dice-runed-tan.webp", - "range": "self" + "range": "" } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 22, - "artist": "" - } + "originId": null }, "effects": [ { @@ -101,8 +98,8 @@ "rangeDependence": { "enabled": false, "type": "withinRange", - "target": "any", - "range": "self" + "target": "hostile", + "range": "melee" } }, "changes": [ @@ -113,7 +110,7 @@ "priority": null } ], - "disabled": false, + "disabled": true, "duration": { "startTime": null, "combat": null, @@ -129,7 +126,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!dPcqKN5NeDkjB1HW.EY87mY6ULfIt3XC8" }, @@ -144,8 +147,8 @@ "rangeDependence": { "enabled": false, "type": "withinRange", - "target": "any", - "range": "self" + "target": "hostile", + "range": "melee" } }, "changes": [ @@ -162,7 +165,7 @@ "priority": null } ], - "disabled": false, + "disabled": true, "duration": { "startTime": null, "combat": null, @@ -178,7 +181,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!dPcqKN5NeDkjB1HW.WwibpgaO6Kkks7aZ" } @@ -189,5 +198,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754349507020, + "modifiedTime": 1754349507020, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!dPcqKN5NeDkjB1HW" } diff --git a/src/packs/subclasses/feature_Eloquent_5bmB1YcxiJVNVXDM.json b/src/packs/subclasses/feature_Eloquent_5bmB1YcxiJVNVXDM.json index c51e8583..daca1154 100644 --- a/src/packs/subclasses/feature_Eloquent_5bmB1YcxiJVNVXDM.json +++ b/src/packs/subclasses/feature_Eloquent_5bmB1YcxiJVNVXDM.json @@ -31,15 +31,21 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 10, - "artist": "" - } + "originId": null }, "effects": [], "flags": {}, + "_stats": { + "compendiumSource": "Compendium.daggerheart.subclasses.Item.QaEinpTu6c1Tj859", + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174646194, + "modifiedTime": 1754494786779, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/subclasses/feature_Elusive_Predator_Cjtc43V3IzAmfIFG.json b/src/packs/subclasses/feature_Elusive_Predator_Cjtc43V3IzAmfIFG.json index 18f80cdb..74f5a35e 100644 --- a/src/packs/subclasses/feature_Elusive_Predator_Cjtc43V3IzAmfIFG.json +++ b/src/packs/subclasses/feature_Elusive_Predator_Cjtc43V3IzAmfIFG.json @@ -9,63 +9,25 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 17, - "artist": "" - } + "originId": null }, - "effects": [ - { - "name": "Elusive Predator", - "type": "base", - "system": { - "rangeDependence": { - "enabled": false, - "type": "withinRange", - "target": "hostile", - "range": "melee" - } - }, - "_id": "X4llFOcAcdJLbear", - "img": "icons/creatures/mammals/beast-horned-scaled-glowing-orange.webp", - "changes": [ - { - "key": "system.evasion", - "mode": 2, - "value": "2", - "priority": null - } - ], - "disabled": true, - "duration": { - "startTime": null, - "combat": null, - "seconds": null, - "rounds": null, - "turns": null, - "startRound": null, - "startTurn": null - }, - "description": "

When your Focus makes an attack against you, you gain a +2 bonus to your Evasion against the attack.

", - "origin": null, - "tint": "#ffffff", - "transfer": true, - "statuses": [], - "sort": 0, - "flags": {}, - "_stats": { - "compendiumSource": null - }, - "_key": "!items.effects!Cjtc43V3IzAmfIFG.X4llFOcAcdJLbear" - } - ], + "effects": [], "sort": 0, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754267748776, + "modifiedTime": 1754267799813, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!Cjtc43V3IzAmfIFG" } diff --git a/src/packs/subclasses/feature_Enchanted_Aid_4pVBN8cuKePI423V.json b/src/packs/subclasses/feature_Enchanted_Aid_4pVBN8cuKePI423V.json index 0a5f4553..756a21cc 100644 --- a/src/packs/subclasses/feature_Enchanted_Aid_4pVBN8cuKePI423V.json +++ b/src/packs/subclasses/feature_Enchanted_Aid_4pVBN8cuKePI423V.json @@ -33,12 +33,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 23, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -47,5 +42,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754349511084, + "modifiedTime": 1754349511084, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!4pVBN8cuKePI423V" } diff --git a/src/packs/subclasses/feature_Epic_Poetry_eCoEWkWuZPMZ9C6a.json b/src/packs/subclasses/feature_Epic_Poetry_eCoEWkWuZPMZ9C6a.json index 0eb3240e..f80c05e3 100644 --- a/src/packs/subclasses/feature_Epic_Poetry_eCoEWkWuZPMZ9C6a.json +++ b/src/packs/subclasses/feature_Epic_Poetry_eCoEWkWuZPMZ9C6a.json @@ -8,12 +8,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 10, - "artist": "" - } + "originId": null }, "effects": [ { @@ -55,12 +50,30 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "49DaecTcBSc5d0DA", + "modifiedTime": 1754669077252 }, "_key": "!items.effects!eCoEWkWuZPMZ9C6a.RSmscgGyuHJucF6C" } ], "flags": {}, + "_stats": { + "compendiumSource": "Compendium.daggerheart.subclasses.Item.4dVLpWQ5SpAGnc5A", + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174646194, + "modifiedTime": 1754236502610, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/subclasses/feature_Ethereal_Visage_tyGB6wRKjYdIBK1i.json b/src/packs/subclasses/feature_Ethereal_Visage_tyGB6wRKjYdIBK1i.json index 43039d73..c434eae9 100644 --- a/src/packs/subclasses/feature_Ethereal_Visage_tyGB6wRKjYdIBK1i.json +++ b/src/packs/subclasses/feature_Ethereal_Visage_tyGB6wRKjYdIBK1i.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 21, - "artist": "" - } + "originId": null }, "effects": [ { @@ -48,7 +43,7 @@ "startRound": null, "startTurn": null }, - "description": "

While flying, you have advantage on Presence Rolls.

", + "description": "

While flying, you have advantage on Presence Rolls.

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -56,7 +51,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754355264762, + "modifiedTime": 1754356140924, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!tyGB6wRKjYdIBK1i.Ns1DcQ8wo47LhlL3" } @@ -67,5 +70,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754355219220, + "modifiedTime": 1754355252528, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!tyGB6wRKjYdIBK1i" } diff --git a/src/packs/subclasses/feature_Expert_Training_iCXtOWBKv1FdKdWz.json b/src/packs/subclasses/feature_Expert_Training_iCXtOWBKv1FdKdWz.json index e5850da6..e6b18e5a 100644 --- a/src/packs/subclasses/feature_Expert_Training_iCXtOWBKv1FdKdWz.json +++ b/src/packs/subclasses/feature_Expert_Training_iCXtOWBKv1FdKdWz.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 17, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754267251789, + "modifiedTime": 1754267277163, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!iCXtOWBKv1FdKdWz" } diff --git a/src/packs/subclasses/feature_Face_Your_Fear_D3ffFWSXCza4WGcM.json b/src/packs/subclasses/feature_Face_Your_Fear_D3ffFWSXCza4WGcM.json index 307dc88f..2e0d5a05 100644 --- a/src/packs/subclasses/feature_Face_Your_Fear_D3ffFWSXCza4WGcM.json +++ b/src/packs/subclasses/feature_Face_Your_Fear_D3ffFWSXCza4WGcM.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754253863023, + "modifiedTime": 1754253898944, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!D3ffFWSXCza4WGcM" } diff --git a/src/packs/subclasses/feature_Fleeting_Shadow_EY7Eo6hNGppVL3dR.json b/src/packs/subclasses/feature_Fleeting_Shadow_EY7Eo6hNGppVL3dR.json index cdebe9b3..5c8e344a 100644 --- a/src/packs/subclasses/feature_Fleeting_Shadow_EY7Eo6hNGppVL3dR.json +++ b/src/packs/subclasses/feature_Fleeting_Shadow_EY7Eo6hNGppVL3dR.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 19, - "artist": "" - } + "originId": null }, "effects": [ { @@ -56,7 +51,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754320801287, + "modifiedTime": 1754320842767, + "lastModifiedBy": "LgnbNMLaxandgMQq" }, "_key": "!items.effects!EY7Eo6hNGppVL3dR.hsEwoHkNr2qVwm2H" } @@ -67,5 +70,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754320756015, + "modifiedTime": 1754320791763, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!EY7Eo6hNGppVL3dR" } diff --git a/src/packs/subclasses/feature_Fueled_by_Fear_hNqLf3zEfKRzSbvq.json b/src/packs/subclasses/feature_Fueled_by_Fear_hNqLf3zEfKRzSbvq.json index 02039553..a96a7324 100644 --- a/src/packs/subclasses/feature_Fueled_by_Fear_hNqLf3zEfKRzSbvq.json +++ b/src/packs/subclasses/feature_Fueled_by_Fear_hNqLf3zEfKRzSbvq.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754254160964, + "modifiedTime": 1754254207526, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!hNqLf3zEfKRzSbvq" } diff --git a/src/packs/subclasses/feature_Gifted_Performer_99U7YWNCxFZHCiT0.json b/src/packs/subclasses/feature_Gifted_Performer_99U7YWNCxFZHCiT0.json index f53f7c31..57cbdc0c 100644 --- a/src/packs/subclasses/feature_Gifted_Performer_99U7YWNCxFZHCiT0.json +++ b/src/packs/subclasses/feature_Gifted_Performer_99U7YWNCxFZHCiT0.json @@ -170,12 +170,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 9, - "artist": "" - } + "originId": null }, "effects": [ { @@ -212,12 +207,30 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754239949068 }, "_key": "!items.effects!99U7YWNCxFZHCiT0.FK4IdbxluRErfYor" } ], "flags": {}, + "_stats": { + "compendiumSource": "Compendium.daggerheart.subclasses.Item.6j1RP4fz3BwSfoli", + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174646194, + "modifiedTime": 1754475491670, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/subclasses/feature_Have_No_Fear_8TH6h6a36h09mf6d.json b/src/packs/subclasses/feature_Have_No_Fear_8TH6h6a36h09mf6d.json index d60a992d..f4423761 100644 --- a/src/packs/subclasses/feature_Have_No_Fear_8TH6h6a36h09mf6d.json +++ b/src/packs/subclasses/feature_Have_No_Fear_8TH6h6a36h09mf6d.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 26, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754254675541, + "modifiedTime": 1754254712265, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!8TH6h6a36h09mf6d" } diff --git a/src/packs/subclasses/feature_Heart_of_a_Poet_Ce0sn0kqAw3PFe0k.json b/src/packs/subclasses/feature_Heart_of_a_Poet_Ce0sn0kqAw3PFe0k.json index 99cb53dd..b057717a 100644 --- a/src/packs/subclasses/feature_Heart_of_a_Poet_Ce0sn0kqAw3PFe0k.json +++ b/src/packs/subclasses/feature_Heart_of_a_Poet_Ce0sn0kqAw3PFe0k.json @@ -16,6 +16,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -38,15 +39,21 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 9, - "artist": "" - } + "originId": null }, "effects": [], "flags": {}, + "_stats": { + "compendiumSource": "Compendium.daggerheart.subclasses.Item.3YIVugLcucLNtLSZ", + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174646194, + "modifiedTime": 1754240308015, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/subclasses/feature_Honed_Expertise_w1BwNKxbQOSizLmZ.json b/src/packs/subclasses/feature_Honed_Expertise_w1BwNKxbQOSizLmZ.json index 1fad2396..9f2e7e19 100644 --- a/src/packs/subclasses/feature_Honed_Expertise_w1BwNKxbQOSizLmZ.json +++ b/src/packs/subclasses/feature_Honed_Expertise_w1BwNKxbQOSizLmZ.json @@ -57,12 +57,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - } + "originId": null }, "effects": [], "sort": 200000, @@ -71,5 +66,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754253988597, + "modifiedTime": 1754254310242, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!w1BwNKxbQOSizLmZ" } diff --git a/src/packs/subclasses/feature_Iron_Will_7AVRNyBcd1Nffjtn.json b/src/packs/subclasses/feature_Iron_Will_7AVRNyBcd1Nffjtn.json index bea62e2b..5b300ade 100644 --- a/src/packs/subclasses/feature_Iron_Will_7AVRNyBcd1Nffjtn.json +++ b/src/packs/subclasses/feature_Iron_Will_7AVRNyBcd1Nffjtn.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 16, - "artist": "" - } + "originId": null }, "effects": [ { @@ -32,7 +27,7 @@ "img": "icons/equipment/chest/breastplate-helmet-metal.webp", "changes": [ { - "key": "system.rules.damageReduction.maxArmorMarked.value", + "key": "system.rules.damageReduction.maxArmorMarked.stressExtra", "mode": 2, "value": "1", "priority": null @@ -56,7 +51,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754350126419, + "modifiedTime": 1754350171574, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!7AVRNyBcd1Nffjtn.htEDIjCEWYtznpRV" } @@ -67,5 +70,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754237297894, + "modifiedTime": 1754350175771, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!7AVRNyBcd1Nffjtn" } diff --git a/src/packs/subclasses/feature_Loyal_Friend_xjZHD5Yo3Tu26rLm.json b/src/packs/subclasses/feature_Loyal_Friend_xjZHD5Yo3Tu26rLm.json index d850fa49..5f8c3ed7 100644 --- a/src/packs/subclasses/feature_Loyal_Friend_xjZHD5Yo3Tu26rLm.json +++ b/src/packs/subclasses/feature_Loyal_Friend_xjZHD5Yo3Tu26rLm.json @@ -33,12 +33,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 17, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -47,5 +42,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754267956703, + "modifiedTime": 1754496703770, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!xjZHD5Yo3Tu26rLm" } diff --git a/src/packs/subclasses/feature_Loyal_Protector_hd7UeBPr86Mz21Pe.json b/src/packs/subclasses/feature_Loyal_Protector_hd7UeBPr86Mz21Pe.json index 6010dcae..9b7372ee 100644 --- a/src/packs/subclasses/feature_Loyal_Protector_hd7UeBPr86Mz21Pe.json +++ b/src/packs/subclasses/feature_Loyal_Protector_hd7UeBPr86Mz21Pe.json @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -39,12 +40,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 16, - "artist": "" - } + "originId": null }, "effects": [], "sort": 300000, @@ -53,5 +49,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754244826486, + "modifiedTime": 1754350266486, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!hd7UeBPr86Mz21Pe" } diff --git a/src/packs/subclasses/feature_Maestro_ZFkCz8XV1EtMoJ1w.json b/src/packs/subclasses/feature_Maestro_ZFkCz8XV1EtMoJ1w.json index 27382c5d..1dbc1ae6 100644 --- a/src/packs/subclasses/feature_Maestro_ZFkCz8XV1EtMoJ1w.json +++ b/src/packs/subclasses/feature_Maestro_ZFkCz8XV1EtMoJ1w.json @@ -8,15 +8,21 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 9, - "artist": "" - } + "originId": null }, "effects": [], "flags": {}, + "_stats": { + "compendiumSource": "Compendium.daggerheart.subclasses.Item.c6kz0r85oQ6G7eaZ", + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174646194, + "modifiedTime": 1754236475709, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/subclasses/feature_Manipulate_Magic_UNg4eyNfEQrMdD7G.json b/src/packs/subclasses/feature_Manipulate_Magic_UNg4eyNfEQrMdD7G.json index 677fc530..df35ffdf 100644 --- a/src/packs/subclasses/feature_Manipulate_Magic_UNg4eyNfEQrMdD7G.json +++ b/src/packs/subclasses/feature_Manipulate_Magic_UNg4eyNfEQrMdD7G.json @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -41,12 +42,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 22, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -55,5 +51,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754349507020, + "modifiedTime": 1754349507020, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!UNg4eyNfEQrMdD7G" } diff --git a/src/packs/subclasses/feature_Martial_Preparation_dHgAnbt9m1KsQFmp.json b/src/packs/subclasses/feature_Martial_Preparation_dHgAnbt9m1KsQFmp.json index 211678ab..49117c74 100644 --- a/src/packs/subclasses/feature_Martial_Preparation_dHgAnbt9m1KsQFmp.json +++ b/src/packs/subclasses/feature_Martial_Preparation_dHgAnbt9m1KsQFmp.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 24, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754256861952, + "modifiedTime": 1754256903587, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!dHgAnbt9m1KsQFmp" } diff --git a/src/packs/subclasses/feature_Natural_Evasion_TnuLBtHQGbqyzn82.json b/src/packs/subclasses/feature_Natural_Evasion_TnuLBtHQGbqyzn82.json index 628fabed..fe491267 100644 --- a/src/packs/subclasses/feature_Natural_Evasion_TnuLBtHQGbqyzn82.json +++ b/src/packs/subclasses/feature_Natural_Evasion_TnuLBtHQGbqyzn82.json @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -65,12 +66,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 22, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -79,5 +75,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754349511084, + "modifiedTime": 1754349511084, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!TnuLBtHQGbqyzn82" } diff --git a/src/packs/subclasses/feature_Nemesis_DPKmipNRlSAMs2Cg.json b/src/packs/subclasses/feature_Nemesis_DPKmipNRlSAMs2Cg.json index 3b2d440c..11d8f0b0 100644 --- a/src/packs/subclasses/feature_Nemesis_DPKmipNRlSAMs2Cg.json +++ b/src/packs/subclasses/feature_Nemesis_DPKmipNRlSAMs2Cg.json @@ -20,6 +20,7 @@ "scalable": false, "key": "hope", "value": 2, + "keyIsID": false, "step": null } ], @@ -44,12 +45,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 16, - "artist": "" - } + "originId": null }, "effects": [ { @@ -84,7 +80,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754351671759, + "modifiedTime": 1754351684034, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!DPKmipNRlSAMs2Cg.JoBFHkhLbm4JyuZm" } @@ -95,5 +99,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754244990457, + "modifiedTime": 1754351671775, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!DPKmipNRlSAMs2Cg" } diff --git a/src/packs/subclasses/feature_Partner_in_Arms_G54qY96XK62hgoK9.json b/src/packs/subclasses/feature_Partner_in_Arms_G54qY96XK62hgoK9.json index 02d1c2d6..6eb53b78 100644 --- a/src/packs/subclasses/feature_Partner_in_Arms_G54qY96XK62hgoK9.json +++ b/src/packs/subclasses/feature_Partner_in_Arms_G54qY96XK62hgoK9.json @@ -20,6 +20,7 @@ "scalable": false, "key": "armor", "value": 1, + "keyIsID": false, "step": null } ], @@ -39,12 +40,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 16, - "artist": "" - } + "originId": null }, "effects": [], "sort": 300000, @@ -53,5 +49,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754242808363, + "modifiedTime": 1754350282699, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!G54qY96XK62hgoK9" } diff --git a/src/packs/subclasses/feature_Path_Forward_uPPBOpoulUmSLlzr.json b/src/packs/subclasses/feature_Path_Forward_uPPBOpoulUmSLlzr.json index def60bfa..1921f2ae 100644 --- a/src/packs/subclasses/feature_Path_Forward_uPPBOpoulUmSLlzr.json +++ b/src/packs/subclasses/feature_Path_Forward_uPPBOpoulUmSLlzr.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 17, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754267110974, + "modifiedTime": 1754267209120, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!uPPBOpoulUmSLlzr" } diff --git a/src/packs/subclasses/feature_Perfect_Recall_HzPa5U0EQhDfFTqW.json b/src/packs/subclasses/feature_Perfect_Recall_HzPa5U0EQhDfFTqW.json index e185345a..0b28959b 100644 --- a/src/packs/subclasses/feature_Perfect_Recall_HzPa5U0EQhDfFTqW.json +++ b/src/packs/subclasses/feature_Perfect_Recall_HzPa5U0EQhDfFTqW.json @@ -33,12 +33,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -47,5 +42,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754254320808, + "modifiedTime": 1754254522728, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!HzPa5U0EQhDfFTqW" } diff --git a/src/packs/subclasses/feature_Power_of_the_Gods_Yij5sNyP1Ii7BAbc.json b/src/packs/subclasses/feature_Power_of_the_Gods_Yij5sNyP1Ii7BAbc.json index 78eeb9fd..ef286817 100644 --- a/src/packs/subclasses/feature_Power_of_the_Gods_Yij5sNyP1Ii7BAbc.json +++ b/src/packs/subclasses/feature_Power_of_the_Gods_Yij5sNyP1Ii7BAbc.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 21, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754355875610, + "modifiedTime": 1754355895962, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!Yij5sNyP1Ii7BAbc" } diff --git a/src/packs/subclasses/feature_Prepared_YS52ZGdce605wNVT.json b/src/packs/subclasses/feature_Prepared_YS52ZGdce605wNVT.json index b0cc6cdf..fe00e41d 100644 --- a/src/packs/subclasses/feature_Prepared_YS52ZGdce605wNVT.json +++ b/src/packs/subclasses/feature_Prepared_YS52ZGdce605wNVT.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754253648251, + "modifiedTime": 1754253683668, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!YS52ZGdce605wNVT" } diff --git a/src/packs/subclasses/feature_Regeneration_KRyrbSLVGreIOTZe.json b/src/packs/subclasses/feature_Regeneration_KRyrbSLVGreIOTZe.json index b7c39f2a..91e8975c 100644 --- a/src/packs/subclasses/feature_Regeneration_KRyrbSLVGreIOTZe.json +++ b/src/packs/subclasses/feature_Regeneration_KRyrbSLVGreIOTZe.json @@ -20,6 +20,7 @@ "scalable": false, "key": "hope", "value": 3, + "keyIsID": false, "step": null } ], @@ -83,12 +84,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 11, - "artist": "" - } + "originId": null }, "effects": [], "sort": 300000, @@ -97,5 +93,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754180232243, + "modifiedTime": 1754353321403, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!KRyrbSLVGreIOTZe" } diff --git a/src/packs/subclasses/feature_Regenerative_Reach_oLO3VjGkMcK1uvB9.json b/src/packs/subclasses/feature_Regenerative_Reach_oLO3VjGkMcK1uvB9.json index 24b5e259..9ef8efdf 100644 --- a/src/packs/subclasses/feature_Regenerative_Reach_oLO3VjGkMcK1uvB9.json +++ b/src/packs/subclasses/feature_Regenerative_Reach_oLO3VjGkMcK1uvB9.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 11, - "artist": "" - } + "originId": null }, "effects": [], "sort": 200000, @@ -23,5 +18,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754182966287, + "modifiedTime": 1754236486774, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!oLO3VjGkMcK1uvB9" } diff --git a/src/packs/subclasses/feature_Reliable_Backup_QYNGdH37fsGuxS7L.json b/src/packs/subclasses/feature_Reliable_Backup_QYNGdH37fsGuxS7L.json index a5a520c9..d3a5254f 100644 --- a/src/packs/subclasses/feature_Reliable_Backup_QYNGdH37fsGuxS7L.json +++ b/src/packs/subclasses/feature_Reliable_Backup_QYNGdH37fsGuxS7L.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 20, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754322198870, + "modifiedTime": 1754322328469, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!QYNGdH37fsGuxS7L" } diff --git a/src/packs/subclasses/feature_Revenge_oNfA5F9cKwNR7joq.json b/src/packs/subclasses/feature_Revenge_oNfA5F9cKwNR7joq.json index f663201d..1d0406bd 100644 --- a/src/packs/subclasses/feature_Revenge_oNfA5F9cKwNR7joq.json +++ b/src/packs/subclasses/feature_Revenge_oNfA5F9cKwNR7joq.json @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 2, + "keyIsID": false, "step": null } ], @@ -69,12 +70,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 16, - "artist": "" - } + "originId": null }, "effects": [], "sort": 500000, @@ -83,5 +79,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754238182847, + "modifiedTime": 1754246061287, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!oNfA5F9cKwNR7joq" } diff --git a/src/packs/subclasses/feature_Rise_to_the_Challenge_dcutk8RVOJ2sEkO1.json b/src/packs/subclasses/feature_Rise_to_the_Challenge_dcutk8RVOJ2sEkO1.json index 5421f1fd..7e4ef685 100644 --- a/src/packs/subclasses/feature_Rise_to_the_Challenge_dcutk8RVOJ2sEkO1.json +++ b/src/packs/subclasses/feature_Rise_to_the_Challenge_dcutk8RVOJ2sEkO1.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 24, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754256466148, + "modifiedTime": 1754256510431, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!dcutk8RVOJ2sEkO1" } diff --git a/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json b/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json index e803fb04..312e055b 100644 --- a/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json +++ b/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json @@ -11,7 +11,7 @@ "type": "healing", "_id": "WNtHiko4DRGbxKnm", "systemPath": "actions", - "description": "

Once per long rest, you can give a heartfelt, inspiring speech. All allies within Far range clear 2 Stress.

", + "description": "

Once per long rest, you can give a heartfelt, inspiring speech. All allies within Far range clear 2 Stress.

", "chatDisplay": false, "actionType": "action", "cost": [ @@ -19,6 +19,7 @@ "scalable": false, "key": "hitPoints", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -84,15 +85,21 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 9, - "artist": "" - } + "originId": null }, "effects": [], "flags": {}, + "_stats": { + "compendiumSource": "Compendium.daggerheart.subclasses.Item.iLytX899psvrPRnG", + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174646194, + "modifiedTime": 1754494763682, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/subclasses/feature_Ruthless_Predator_Qny2J3R35bvC0Cey.json b/src/packs/subclasses/feature_Ruthless_Predator_Qny2J3R35bvC0Cey.json index 135447fa..ac907b99 100644 --- a/src/packs/subclasses/feature_Ruthless_Predator_Qny2J3R35bvC0Cey.json +++ b/src/packs/subclasses/feature_Ruthless_Predator_Qny2J3R35bvC0Cey.json @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -35,21 +36,16 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Mark Stress", "img": "icons/creatures/mammals/wolf-shadow-black.webp", - "range": "self" + "range": "" } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 17, - "artist": "" - } + "originId": null }, "effects": [ { @@ -91,7 +87,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754267031684, + "modifiedTime": 1754267054868, + "lastModifiedBy": "LgnbNMLaxandgMQq" }, "_key": "!items.effects!Qny2J3R35bvC0Cey.8BNwCS7ueIQuvn2M" } @@ -102,5 +106,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754266926055, + "modifiedTime": 1754267089385, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!Qny2J3R35bvC0Cey" } diff --git a/src/packs/subclasses/feature_Sacred_Resonance_DxOAkDBfIMpXxAUD.json b/src/packs/subclasses/feature_Sacred_Resonance_DxOAkDBfIMpXxAUD.json index 8b9907be..a610db7e 100644 --- a/src/packs/subclasses/feature_Sacred_Resonance_DxOAkDBfIMpXxAUD.json +++ b/src/packs/subclasses/feature_Sacred_Resonance_DxOAkDBfIMpXxAUD.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 21, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754353916777, + "modifiedTime": 1754354052548, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!DxOAkDBfIMpXxAUD" } diff --git a/src/packs/subclasses/feature_Shadow_Stepper_hAwTXjhyphiE3aeW.json b/src/packs/subclasses/feature_Shadow_Stepper_hAwTXjhyphiE3aeW.json index 7e6fa730..77e3504d 100644 --- a/src/packs/subclasses/feature_Shadow_Stepper_hAwTXjhyphiE3aeW.json +++ b/src/packs/subclasses/feature_Shadow_Stepper_hAwTXjhyphiE3aeW.json @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -35,21 +36,16 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Mark Stress", "img": "icons/magic/unholy/projectile-smoke-trail-pink.webp", - "range": "far" + "range": "" } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 19, - "artist": "" - } + "originId": null }, "effects": [ { @@ -84,7 +80,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754323456447, + "modifiedTime": 1754323477675, + "lastModifiedBy": "LgnbNMLaxandgMQq" }, "_key": "!items.effects!hAwTXjhyphiE3aeW.RYri0b9z5kq74U5n" } @@ -95,5 +99,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754318976447, + "modifiedTime": 1754323456453, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!hAwTXjhyphiE3aeW" } diff --git a/src/packs/subclasses/feature_Slayer_1hF5KGKQc2VKT5O8.json b/src/packs/subclasses/feature_Slayer_1hF5KGKQc2VKT5O8.json index d139f185..ef813ae1 100644 --- a/src/packs/subclasses/feature_Slayer_1hF5KGKQc2VKT5O8.json +++ b/src/packs/subclasses/feature_Slayer_1hF5KGKQc2VKT5O8.json @@ -14,12 +14,7 @@ }, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 24, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -28,5 +23,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754256326320, + "modifiedTime": 1754256425506, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!1hF5KGKQc2VKT5O8" } diff --git a/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json b/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json index deb4af6b..cf0a8f93 100644 --- a/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json +++ b/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json @@ -19,15 +19,15 @@ "type": "healing", "_id": "aanLNQkeO2ZTIqBl", "systemPath": "actions", - "description": "

Once per long rest, touch a creature and clear 2 Hit Points or 2 Stress from them.

", + "description": "

Once per long rest, touch a creature and clear 2 Hit Points or 2 Stress from them.

", "chatDisplay": true, "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "GfOSgVJW8bS1OjNq", - "value": 1, "scalable": false, + "key": "GfOSgVJW8bS1OjNq", + "value": 1, + "keyIsID": true, "step": null, "consumeOnSuccess": false } @@ -96,15 +96,15 @@ "type": "healing", "_id": "cWdzCQJv8RFfi2NR", "systemPath": "actions", - "description": "

Once per long rest, touch a creature and clear 2 Hit Points or 2 Stress from them.

", + "description": "

Once per long rest, touch a creature and clear 2 Hit Points or 2 Stress from them.

", "chatDisplay": true, "actionType": "action", "cost": [ { - "key": "resource", - "itemId": "GfOSgVJW8bS1OjNq", - "value": 1, "scalable": false, + "key": "GfOSgVJW8bS1OjNq", + "value": 1, + "keyIsID": true, "step": null, "consumeOnSuccess": false } @@ -171,12 +171,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 21, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -185,5 +180,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754353243691, + "modifiedTime": 1754500973073, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!GfOSgVJW8bS1OjNq" } diff --git a/src/packs/subclasses/feature_Spirit_Weapon_McoS0RxNLOg3SfSt.json b/src/packs/subclasses/feature_Spirit_Weapon_McoS0RxNLOg3SfSt.json index 8f915351..ca08ad1f 100644 --- a/src/packs/subclasses/feature_Spirit_Weapon_McoS0RxNLOg3SfSt.json +++ b/src/packs/subclasses/feature_Spirit_Weapon_McoS0RxNLOg3SfSt.json @@ -12,7 +12,7 @@ "type": "effect", "_id": "TDvWFqAxu7V33UIC", "systemPath": "actions", - "description": "

You can mark a Stress to target an additional adversary within range with the same attack roll.

", + "description": "

You can mark a Stress to target an additional adversary within range with the same attack roll.

", "chatDisplay": true, "actionType": "action", "cost": [ @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -41,12 +42,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 21, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -55,5 +51,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754353023665, + "modifiedTime": 1754353132278, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!McoS0RxNLOg3SfSt" } diff --git a/src/packs/subclasses/feature_Thrive_in_Chaos_1nmFmkNXY6OYyyju.json b/src/packs/subclasses/feature_Thrive_in_Chaos_1nmFmkNXY6OYyyju.json index bbdd8707..9563a324 100644 --- a/src/packs/subclasses/feature_Thrive_in_Chaos_1nmFmkNXY6OYyyju.json +++ b/src/packs/subclasses/feature_Thrive_in_Chaos_1nmFmkNXY6OYyyju.json @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -45,12 +46,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 26, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -59,5 +55,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754254574860, + "modifiedTime": 1754254657593, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!1nmFmkNXY6OYyyju" } diff --git a/src/packs/subclasses/feature_Transcendence_th6HZwEFnVBjUtqm.json b/src/packs/subclasses/feature_Transcendence_th6HZwEFnVBjUtqm.json index 5f2df7cb..cf2c658d 100644 --- a/src/packs/subclasses/feature_Transcendence_th6HZwEFnVBjUtqm.json +++ b/src/packs/subclasses/feature_Transcendence_th6HZwEFnVBjUtqm.json @@ -20,6 +20,7 @@ "scalable": false, "key": "hitPoints", "value": 1, + "keyIsID": false, "step": null, "consumeOnSuccess": false } @@ -41,12 +42,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 22, - "artist": "" - } + "originId": null }, "effects": [ { @@ -80,7 +76,7 @@ "startRound": null, "startTurn": null }, - "description": "

+4 bonus to your Severe threshold

", + "description": "

+4 bonus to your Severe threshold

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -88,7 +84,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!th6HZwEFnVBjUtqm.zFOpzO3tBJPcZcRc" }, @@ -116,7 +118,7 @@ "startRound": null, "startTurn": null }, - "description": "

+1 bonus to a character trait of your choice

", + "description": "

+1 bonus to a character trait of your choice

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -124,7 +126,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!th6HZwEFnVBjUtqm.cTgSmxkTi89y6sbc" }, @@ -159,7 +167,7 @@ "startRound": null, "startTurn": null }, - "description": "

+1 bonus to your Proficiency

", + "description": "

+1 bonus to your Proficiency

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -167,7 +175,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!th6HZwEFnVBjUtqm.oWf3iXf4dawdbmzd" }, @@ -195,7 +209,7 @@ "startRound": null, "startTurn": null }, - "description": "

+2 bonus to your Evasion

", + "description": "

+2 bonus to your Evasion

", "origin": null, "tint": "#ffffff", "transfer": true, @@ -203,7 +217,13 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null }, "_key": "!items.effects!th6HZwEFnVBjUtqm.2LCF6lSnWFqNiPs5" } @@ -214,5 +234,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754349515898, + "modifiedTime": 1754497438787, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!th6HZwEFnVBjUtqm" } diff --git a/src/packs/subclasses/feature_Undaunted_866b2jjyzXP8nPRQ.json b/src/packs/subclasses/feature_Undaunted_866b2jjyzXP8nPRQ.json index dc5ae2ec..48feb948 100644 --- a/src/packs/subclasses/feature_Undaunted_866b2jjyzXP8nPRQ.json +++ b/src/packs/subclasses/feature_Undaunted_866b2jjyzXP8nPRQ.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 16, - "artist": "" - } + "originId": null }, "effects": [ { @@ -62,7 +57,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754243650080, + "modifiedTime": 1754243716920, + "lastModifiedBy": "LgnbNMLaxandgMQq" }, "_key": "!items.effects!866b2jjyzXP8nPRQ.zggFRaerHCj1e5F5" } @@ -73,5 +76,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754243538688, + "modifiedTime": 1754244861863, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!866b2jjyzXP8nPRQ" } diff --git a/src/packs/subclasses/feature_Unrelenting_4qP7bNyxVHBmr4Rb.json b/src/packs/subclasses/feature_Unrelenting_4qP7bNyxVHBmr4Rb.json index dea5e345..14420491 100644 --- a/src/packs/subclasses/feature_Unrelenting_4qP7bNyxVHBmr4Rb.json +++ b/src/packs/subclasses/feature_Unrelenting_4qP7bNyxVHBmr4Rb.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 16, - "artist": "" - } + "originId": null }, "effects": [ { @@ -62,7 +57,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754242391703, + "modifiedTime": 1754242550512, + "lastModifiedBy": "LgnbNMLaxandgMQq" }, "_key": "!items.effects!4qP7bNyxVHBmr4Rb.IKb6yutns8EJZ49M" } @@ -73,5 +76,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754242120515, + "modifiedTime": 1754242888502, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!4qP7bNyxVHBmr4Rb" } diff --git a/src/packs/subclasses/feature_Unwavering_WBiFZaYNoQNhysmN.json b/src/packs/subclasses/feature_Unwavering_WBiFZaYNoQNhysmN.json index aa898296..0675d2c3 100644 --- a/src/packs/subclasses/feature_Unwavering_WBiFZaYNoQNhysmN.json +++ b/src/packs/subclasses/feature_Unwavering_WBiFZaYNoQNhysmN.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 16, - "artist": "" - } + "originId": null }, "effects": [ { @@ -62,7 +57,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754237071405, + "modifiedTime": 1754242601879, + "lastModifiedBy": "LgnbNMLaxandgMQq" }, "_key": "!items.effects!WBiFZaYNoQNhysmN.3wexvo6La4V46aiX" } @@ -73,5 +76,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754236984012, + "modifiedTime": 1754245935236, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!WBiFZaYNoQNhysmN" } diff --git a/src/packs/subclasses/feature_Vanishing_Act_iyIg1VLwO8C6jvFZ.json b/src/packs/subclasses/feature_Vanishing_Act_iyIg1VLwO8C6jvFZ.json index 67cfa833..5eda8565 100644 --- a/src/packs/subclasses/feature_Vanishing_Act_iyIg1VLwO8C6jvFZ.json +++ b/src/packs/subclasses/feature_Vanishing_Act_iyIg1VLwO8C6jvFZ.json @@ -20,6 +20,7 @@ "scalable": false, "key": "stress", "value": 1, + "keyIsID": false, "step": null } ], @@ -35,28 +36,23 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Mark Stress", "img": "icons/magic/unholy/strike-hand-glow-pink.webp", - "range": "self" + "range": "" } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 19, - "artist": "" - } + "originId": null }, "effects": [ { "name": "Vanishing Act: Cloaked", "img": "icons/magic/unholy/strike-hand-glow-pink.webp", "origin": "Compendium.daggerheart.subclasses.Item.iyIg1VLwO8C6jvFZ", - "transfer": false, + "transfer": true, "_id": "czrwqq44sEr0uJ8O", "type": "base", "system": { @@ -84,7 +80,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754322584884, + "modifiedTime": 1754352062188, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!iyIg1VLwO8C6jvFZ.czrwqq44sEr0uJ8O" } @@ -95,5 +99,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754321406972, + "modifiedTime": 1754322584899, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!iyIg1VLwO8C6jvFZ" } diff --git a/src/packs/subclasses/feature_Virtuoso_kn2t409o0FDFQieo.json b/src/packs/subclasses/feature_Virtuoso_kn2t409o0FDFQieo.json index 0df91e88..1f7c6eec 100644 --- a/src/packs/subclasses/feature_Virtuoso_kn2t409o0FDFQieo.json +++ b/src/packs/subclasses/feature_Virtuoso_kn2t409o0FDFQieo.json @@ -8,15 +8,21 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 9, - "artist": "" - } + "originId": null }, "effects": [], "flags": {}, + "_stats": { + "compendiumSource": "Compendium.daggerheart.subclasses.Item.lmUplK4FSH6EOTKJ", + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174646194, + "modifiedTime": 1754236506280, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "ownership": { "default": 0, "LgnbNMLaxandgMQq": 3 diff --git a/src/packs/subclasses/feature_Warden_s_Protection_2F1bUFY80oce97C9.json b/src/packs/subclasses/feature_Warden_s_Protection_2F1bUFY80oce97C9.json index e80a770a..3d6055d2 100644 --- a/src/packs/subclasses/feature_Warden_s_Protection_2F1bUFY80oce97C9.json +++ b/src/packs/subclasses/feature_Warden_s_Protection_2F1bUFY80oce97C9.json @@ -78,12 +78,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 11, - "artist": "" - } + "originId": null }, "effects": [], "sort": 300000, @@ -92,5 +87,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754183079986, + "modifiedTime": 1754496541966, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!2F1bUFY80oce97C9" } diff --git a/src/packs/subclasses/feature_Weapon_Specialist_HAqtoKUTrk8Mip1n.json b/src/packs/subclasses/feature_Weapon_Specialist_HAqtoKUTrk8Mip1n.json index 142d9e37..a4937457 100644 --- a/src/packs/subclasses/feature_Weapon_Specialist_HAqtoKUTrk8Mip1n.json +++ b/src/packs/subclasses/feature_Weapon_Specialist_HAqtoKUTrk8Mip1n.json @@ -17,6 +17,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -64,12 +65,7 @@ } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 24, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -78,5 +74,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754256525016, + "modifiedTime": 1754256712476, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!items!HAqtoKUTrk8Mip1n" } diff --git a/src/packs/subclasses/feature_Well_Connected_7KnSOazixXXSnspj.json b/src/packs/subclasses/feature_Well_Connected_7KnSOazixXXSnspj.json index 3af877cb..474dbb8a 100644 --- a/src/packs/subclasses/feature_Well_Connected_7KnSOazixXXSnspj.json +++ b/src/packs/subclasses/feature_Well_Connected_7KnSOazixXXSnspj.json @@ -9,12 +9,7 @@ "resource": null, "actions": {}, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 20, - "artist": "" - } + "originId": null }, "effects": [], "sort": 0, @@ -23,5 +18,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754319141863, + "modifiedTime": 1754319354348, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!items!7KnSOazixXXSnspj" } diff --git a/src/packs/subclasses/feature_Wings_of_Light_KkQH0tYhagIqe2MT.json b/src/packs/subclasses/feature_Wings_of_Light_KkQH0tYhagIqe2MT.json index 5b86e348..034ea026 100644 --- a/src/packs/subclasses/feature_Wings_of_Light_KkQH0tYhagIqe2MT.json +++ b/src/packs/subclasses/feature_Wings_of_Light_KkQH0tYhagIqe2MT.json @@ -15,16 +15,7 @@ "description": "

Mark a Stress to pick up and carry another willing creature approximately your size or smaller.

", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "stress", - "value": 1, - "itemId": null, - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -49,6 +40,7 @@ "actionType": "action", "cost": [ { + "keyIsID": false, "key": "hope", "value": 1, "scalable": false, @@ -69,21 +61,16 @@ } ], "target": { - "type": "self", + "type": "any", "amount": null }, "name": "Spend Hope", "img": "icons/magic/light/projectile-beam-yellow.webp", - "range": "self" + "range": "" } }, "originItemType": null, - "originId": null, - "attribution": { - "source": "Daggerheart SRD", - "page": 21, - "artist": "" - } + "originId": null }, "effects": [ { @@ -131,7 +118,15 @@ "sort": 0, "flags": {}, "_stats": { - "compendiumSource": null + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754355070342, + "modifiedTime": 1754355121666, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_key": "!items.effects!KkQH0tYhagIqe2MT.PfCwuVbKLxhnrm9X" } @@ -142,5 +137,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754354510934, + "modifiedTime": 1754355070373, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, "_key": "!items!KkQH0tYhagIqe2MT" } diff --git a/src/packs/subclasses/folders_Bard_0DMzpFZB8A6vwpRX.json b/src/packs/subclasses/folders_Bard_0DMzpFZB8A6vwpRX.json index 6778eb2d..f325dd28 100644 --- a/src/packs/subclasses/folders_Bard_0DMzpFZB8A6vwpRX.json +++ b/src/packs/subclasses/folders_Bard_0DMzpFZB8A6vwpRX.json @@ -8,5 +8,16 @@ "description": "", "sort": 1000000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754236641265, + "modifiedTime": 1754501841544, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!folders!0DMzpFZB8A6vwpRX" } diff --git a/src/packs/subclasses/folders_Bard_Ih9KaoVY4bhZPjsn.json b/src/packs/subclasses/folders_Bard_Ih9KaoVY4bhZPjsn.json index 090c2bf0..8cd81e5b 100644 --- a/src/packs/subclasses/folders_Bard_Ih9KaoVY4bhZPjsn.json +++ b/src/packs/subclasses/folders_Bard_Ih9KaoVY4bhZPjsn.json @@ -8,5 +8,16 @@ "description": "", "sort": 100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754236397828, + "modifiedTime": 1754266238607, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!Ih9KaoVY4bhZPjsn" } diff --git a/src/packs/subclasses/folders_Bard_Xpbd5rv84VaVSu7F.json b/src/packs/subclasses/folders_Bard_Xpbd5rv84VaVSu7F.json index de3f3b58..ab5f3ac1 100644 --- a/src/packs/subclasses/folders_Bard_Xpbd5rv84VaVSu7F.json +++ b/src/packs/subclasses/folders_Bard_Xpbd5rv84VaVSu7F.json @@ -8,5 +8,16 @@ "description": "", "sort": -200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754236499924, + "modifiedTime": 1754241451009, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!Xpbd5rv84VaVSu7F" } diff --git a/src/packs/subclasses/folders_Bard_bwENCQMM1EMqEk45.json b/src/packs/subclasses/folders_Bard_bwENCQMM1EMqEk45.json index ae723fef..efa36b1b 100644 --- a/src/packs/subclasses/folders_Bard_bwENCQMM1EMqEk45.json +++ b/src/packs/subclasses/folders_Bard_bwENCQMM1EMqEk45.json @@ -8,5 +8,16 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754236472573, + "modifiedTime": 1754266246149, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!bwENCQMM1EMqEk45" } diff --git a/src/packs/subclasses/folders_Druid_AZWrSJzGXltzQhAJ.json b/src/packs/subclasses/folders_Druid_AZWrSJzGXltzQhAJ.json index 445a89b0..325060e7 100644 --- a/src/packs/subclasses/folders_Druid_AZWrSJzGXltzQhAJ.json +++ b/src/packs/subclasses/folders_Druid_AZWrSJzGXltzQhAJ.json @@ -8,5 +8,16 @@ "description": "", "sort": 1100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754236669632, + "modifiedTime": 1754501843662, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!folders!AZWrSJzGXltzQhAJ" } diff --git a/src/packs/subclasses/folders_Druid_QFWUKG7xwO5bJyln.json b/src/packs/subclasses/folders_Druid_QFWUKG7xwO5bJyln.json index a62572db..d1bf591a 100644 --- a/src/packs/subclasses/folders_Druid_QFWUKG7xwO5bJyln.json +++ b/src/packs/subclasses/folders_Druid_QFWUKG7xwO5bJyln.json @@ -8,5 +8,16 @@ "description": "", "sort": -100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754236516603, + "modifiedTime": 1754241449909, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!QFWUKG7xwO5bJyln" } diff --git a/src/packs/subclasses/folders_Druid_dWQSVhtwClSdRHDK.json b/src/packs/subclasses/folders_Druid_dWQSVhtwClSdRHDK.json index e68d3659..06eae64f 100644 --- a/src/packs/subclasses/folders_Druid_dWQSVhtwClSdRHDK.json +++ b/src/packs/subclasses/folders_Druid_dWQSVhtwClSdRHDK.json @@ -8,5 +8,16 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754236431951, + "modifiedTime": 1754266238607, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!dWQSVhtwClSdRHDK" } diff --git a/src/packs/subclasses/folders_Druid_fJQhss1obELmJ7cK.json b/src/packs/subclasses/folders_Druid_fJQhss1obELmJ7cK.json index b5da3ccc..cc0c9b87 100644 --- a/src/packs/subclasses/folders_Druid_fJQhss1obELmJ7cK.json +++ b/src/packs/subclasses/folders_Druid_fJQhss1obELmJ7cK.json @@ -8,5 +8,16 @@ "description": "", "sort": 300000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754236482874, + "modifiedTime": 1754266246149, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!fJQhss1obELmJ7cK" } diff --git a/src/packs/subclasses/folders_Foundation_Features_QBeb6IqRnhTXzRtd.json b/src/packs/subclasses/folders_Foundation_Features_QBeb6IqRnhTXzRtd.json index 4b2aba63..03feb4cf 100644 --- a/src/packs/subclasses/folders_Foundation_Features_QBeb6IqRnhTXzRtd.json +++ b/src/packs/subclasses/folders_Foundation_Features_QBeb6IqRnhTXzRtd.json @@ -8,5 +8,16 @@ "description": "", "sort": 100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174646170, + "modifiedTime": 1754243021630, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!QBeb6IqRnhTXzRtd" } diff --git a/src/packs/subclasses/folders_Guardian_DO1MpBfTgnAblNNz.json b/src/packs/subclasses/folders_Guardian_DO1MpBfTgnAblNNz.json index d838b39e..1cec6dc1 100644 --- a/src/packs/subclasses/folders_Guardian_DO1MpBfTgnAblNNz.json +++ b/src/packs/subclasses/folders_Guardian_DO1MpBfTgnAblNNz.json @@ -8,5 +8,16 @@ "description": "", "sort": 312500, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754241974524, + "modifiedTime": 1754320935429, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!DO1MpBfTgnAblNNz" } diff --git a/src/packs/subclasses/folders_Guardian_PD8T5cWuSzaoPdl5.json b/src/packs/subclasses/folders_Guardian_PD8T5cWuSzaoPdl5.json index bd8cf136..58944c19 100644 --- a/src/packs/subclasses/folders_Guardian_PD8T5cWuSzaoPdl5.json +++ b/src/packs/subclasses/folders_Guardian_PD8T5cWuSzaoPdl5.json @@ -8,5 +8,16 @@ "description": "", "sort": -93750, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754243054347, + "modifiedTime": 1754267908689, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!PD8T5cWuSzaoPdl5" } diff --git a/src/packs/subclasses/folders_Guardian_WMlU3baiUdMgfuak.json b/src/packs/subclasses/folders_Guardian_WMlU3baiUdMgfuak.json index 139a68da..daf366db 100644 --- a/src/packs/subclasses/folders_Guardian_WMlU3baiUdMgfuak.json +++ b/src/packs/subclasses/folders_Guardian_WMlU3baiUdMgfuak.json @@ -8,5 +8,16 @@ "description": "", "sort": 1200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754245852289, + "modifiedTime": 1754501845702, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!folders!WMlU3baiUdMgfuak" } diff --git a/src/packs/subclasses/folders_Guardian_gysKqIL1lVz4g6zg.json b/src/packs/subclasses/folders_Guardian_gysKqIL1lVz4g6zg.json index 26a414ee..4c8f04bb 100644 --- a/src/packs/subclasses/folders_Guardian_gysKqIL1lVz4g6zg.json +++ b/src/packs/subclasses/folders_Guardian_gysKqIL1lVz4g6zg.json @@ -8,5 +8,16 @@ "description": "", "sort": 300000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754236925395, + "modifiedTime": 1754266238607, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!gysKqIL1lVz4g6zg" } diff --git a/src/packs/subclasses/folders_Mastery_Features_37B1HLu8gv8sSDNI.json b/src/packs/subclasses/folders_Mastery_Features_37B1HLu8gv8sSDNI.json index 94f354ec..f168de35 100644 --- a/src/packs/subclasses/folders_Mastery_Features_37B1HLu8gv8sSDNI.json +++ b/src/packs/subclasses/folders_Mastery_Features_37B1HLu8gv8sSDNI.json @@ -8,5 +8,16 @@ "description": "", "sort": 200000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174646170, + "modifiedTime": 1754243041032, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!37B1HLu8gv8sSDNI" } diff --git a/src/packs/subclasses/folders_Ranger_ArVAtkgkm5bYpKHL.json b/src/packs/subclasses/folders_Ranger_ArVAtkgkm5bYpKHL.json index 958a5378..658ddf81 100644 --- a/src/packs/subclasses/folders_Ranger_ArVAtkgkm5bYpKHL.json +++ b/src/packs/subclasses/folders_Ranger_ArVAtkgkm5bYpKHL.json @@ -8,5 +8,16 @@ "description": "", "sort": 1300000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754268221221, + "modifiedTime": 1754501849009, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!folders!ArVAtkgkm5bYpKHL" } diff --git a/src/packs/subclasses/folders_Ranger_D1rRX2AQ9wzVOsKy.json b/src/packs/subclasses/folders_Ranger_D1rRX2AQ9wzVOsKy.json index 88c5ade9..cfedf5ed 100644 --- a/src/packs/subclasses/folders_Ranger_D1rRX2AQ9wzVOsKy.json +++ b/src/packs/subclasses/folders_Ranger_D1rRX2AQ9wzVOsKy.json @@ -8,5 +8,15 @@ "description": "", "sort": 325000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754266522221 + }, "_key": "!folders!D1rRX2AQ9wzVOsKy" } diff --git a/src/packs/subclasses/folders_Ranger_bv1Sw5FYWaS572v3.json b/src/packs/subclasses/folders_Ranger_bv1Sw5FYWaS572v3.json index e122d1c3..e4457675 100644 --- a/src/packs/subclasses/folders_Ranger_bv1Sw5FYWaS572v3.json +++ b/src/packs/subclasses/folders_Ranger_bv1Sw5FYWaS572v3.json @@ -8,5 +8,15 @@ "description": "", "sort": 325000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754267237123 + }, "_key": "!folders!bv1Sw5FYWaS572v3" } diff --git a/src/packs/subclasses/folders_Ranger_vIdORiocrNibqNFF.json b/src/packs/subclasses/folders_Ranger_vIdORiocrNibqNFF.json index d125645d..94bd79d6 100644 --- a/src/packs/subclasses/folders_Ranger_vIdORiocrNibqNFF.json +++ b/src/packs/subclasses/folders_Ranger_vIdORiocrNibqNFF.json @@ -8,5 +8,15 @@ "description": "", "sort": -87500, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754267905112 + }, "_key": "!folders!vIdORiocrNibqNFF" } diff --git a/src/packs/subclasses/folders_Rogue_36dtJE1CPjPt76pP.json b/src/packs/subclasses/folders_Rogue_36dtJE1CPjPt76pP.json index efa95e72..6593650d 100644 --- a/src/packs/subclasses/folders_Rogue_36dtJE1CPjPt76pP.json +++ b/src/packs/subclasses/folders_Rogue_36dtJE1CPjPt76pP.json @@ -8,5 +8,16 @@ "description": "", "sort": 1400000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754322803534, + "modifiedTime": 1754501852870, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!folders!36dtJE1CPjPt76pP" } diff --git a/src/packs/subclasses/folders_Rogue_Ej8GpWNX79Fw5XTP.json b/src/packs/subclasses/folders_Rogue_Ej8GpWNX79Fw5XTP.json index eab77a33..20bb63bb 100644 --- a/src/packs/subclasses/folders_Rogue_Ej8GpWNX79Fw5XTP.json +++ b/src/packs/subclasses/folders_Rogue_Ej8GpWNX79Fw5XTP.json @@ -8,5 +8,15 @@ "description": "", "sort": 337500, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754319393340 + }, "_key": "!folders!Ej8GpWNX79Fw5XTP" } diff --git a/src/packs/subclasses/folders_Rogue_eykEGWrxYWGmwPDM.json b/src/packs/subclasses/folders_Rogue_eykEGWrxYWGmwPDM.json index 01106508..42a119c3 100644 --- a/src/packs/subclasses/folders_Rogue_eykEGWrxYWGmwPDM.json +++ b/src/packs/subclasses/folders_Rogue_eykEGWrxYWGmwPDM.json @@ -8,5 +8,15 @@ "description": "", "sort": 337500, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754318933107 + }, "_key": "!folders!eykEGWrxYWGmwPDM" } diff --git a/src/packs/subclasses/folders_Rogue_w6agWszBQCnHTo5p.json b/src/packs/subclasses/folders_Rogue_w6agWszBQCnHTo5p.json index d95aef1c..a13600e3 100644 --- a/src/packs/subclasses/folders_Rogue_w6agWszBQCnHTo5p.json +++ b/src/packs/subclasses/folders_Rogue_w6agWszBQCnHTo5p.json @@ -8,5 +8,15 @@ "description": "", "sort": -68750, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754320678245 + }, "_key": "!folders!w6agWszBQCnHTo5p" } diff --git a/src/packs/subclasses/folders_Seraph_RZOEu0ZYQNPs6O2c.json b/src/packs/subclasses/folders_Seraph_RZOEu0ZYQNPs6O2c.json index 96ef6543..3854caa2 100644 --- a/src/packs/subclasses/folders_Seraph_RZOEu0ZYQNPs6O2c.json +++ b/src/packs/subclasses/folders_Seraph_RZOEu0ZYQNPs6O2c.json @@ -8,5 +8,16 @@ "description": "", "sort": 1500000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754352793139, + "modifiedTime": 1754501855742, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!folders!RZOEu0ZYQNPs6O2c" } diff --git a/src/packs/subclasses/folders_Seraph_cwVcmK9rWmi3LMLK.json b/src/packs/subclasses/folders_Seraph_cwVcmK9rWmi3LMLK.json index 9ed31074..f917192d 100644 --- a/src/packs/subclasses/folders_Seraph_cwVcmK9rWmi3LMLK.json +++ b/src/packs/subclasses/folders_Seraph_cwVcmK9rWmi3LMLK.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!cwVcmK9rWmi3LMLK" } diff --git a/src/packs/subclasses/folders_Seraph_gdnQftNWn4kxnew9.json b/src/packs/subclasses/folders_Seraph_gdnQftNWn4kxnew9.json index 2928f601..14b3f5e0 100644 --- a/src/packs/subclasses/folders_Seraph_gdnQftNWn4kxnew9.json +++ b/src/packs/subclasses/folders_Seraph_gdnQftNWn4kxnew9.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!gdnQftNWn4kxnew9" } diff --git a/src/packs/subclasses/folders_Seraph_nVfL09Rh27H0aAqS.json b/src/packs/subclasses/folders_Seraph_nVfL09Rh27H0aAqS.json index 6e947fa6..79b9db6e 100644 --- a/src/packs/subclasses/folders_Seraph_nVfL09Rh27H0aAqS.json +++ b/src/packs/subclasses/folders_Seraph_nVfL09Rh27H0aAqS.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!nVfL09Rh27H0aAqS" } diff --git a/src/packs/subclasses/folders_Sorcerer_3PV3wn7IGmusnf4p.json b/src/packs/subclasses/folders_Sorcerer_3PV3wn7IGmusnf4p.json index d903834f..be3de2fa 100644 --- a/src/packs/subclasses/folders_Sorcerer_3PV3wn7IGmusnf4p.json +++ b/src/packs/subclasses/folders_Sorcerer_3PV3wn7IGmusnf4p.json @@ -8,5 +8,15 @@ "description": "", "sort": 500000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "Q9NoTaEarn3VMS6Z", + "modifiedTime": 1754349511092 + }, "_key": "!folders!3PV3wn7IGmusnf4p" } diff --git a/src/packs/subclasses/folders_Sorcerer_F0mW5ofdyyfE2hHo.json b/src/packs/subclasses/folders_Sorcerer_F0mW5ofdyyfE2hHo.json index af643411..5aaa1502 100644 --- a/src/packs/subclasses/folders_Sorcerer_F0mW5ofdyyfE2hHo.json +++ b/src/packs/subclasses/folders_Sorcerer_F0mW5ofdyyfE2hHo.json @@ -8,5 +8,16 @@ "description": "", "sort": 1600000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754349604935, + "modifiedTime": 1754501856827, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!folders!F0mW5ofdyyfE2hHo" } diff --git a/src/packs/subclasses/folders_Sorcerer_G0anvImB7zZBUe8a.json b/src/packs/subclasses/folders_Sorcerer_G0anvImB7zZBUe8a.json index 66d3e4bb..f1b1a630 100644 --- a/src/packs/subclasses/folders_Sorcerer_G0anvImB7zZBUe8a.json +++ b/src/packs/subclasses/folders_Sorcerer_G0anvImB7zZBUe8a.json @@ -8,5 +8,15 @@ "description": "", "sort": 100000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "Q9NoTaEarn3VMS6Z", + "modifiedTime": 1754349520222 + }, "_key": "!folders!G0anvImB7zZBUe8a" } diff --git a/src/packs/subclasses/folders_Sorcerer_sRNZtEniwaOIQ2rY.json b/src/packs/subclasses/folders_Sorcerer_sRNZtEniwaOIQ2rY.json index 5daa7c74..c15c5e66 100644 --- a/src/packs/subclasses/folders_Sorcerer_sRNZtEniwaOIQ2rY.json +++ b/src/packs/subclasses/folders_Sorcerer_sRNZtEniwaOIQ2rY.json @@ -8,5 +8,15 @@ "description": "", "sort": 500000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "Q9NoTaEarn3VMS6Z", + "modifiedTime": 1754349507044 + }, "_key": "!folders!sRNZtEniwaOIQ2rY" } diff --git a/src/packs/subclasses/folders_Specialization_Features_Br5kHZnnjGzz4RJ9.json b/src/packs/subclasses/folders_Specialization_Features_Br5kHZnnjGzz4RJ9.json index 48bf542a..3c8ee152 100644 --- a/src/packs/subclasses/folders_Specialization_Features_Br5kHZnnjGzz4RJ9.json +++ b/src/packs/subclasses/folders_Specialization_Features_Br5kHZnnjGzz4RJ9.json @@ -8,5 +8,16 @@ "description": "", "sort": 150000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174646170, + "modifiedTime": 1754243030137, + "lastModifiedBy": "LgnbNMLaxandgMQq" + }, "_key": "!folders!Br5kHZnnjGzz4RJ9" } diff --git a/src/packs/subclasses/folders_Subclass_Features_Sfpr4iK1cGrmncok.json b/src/packs/subclasses/folders_Subclass_Features_Sfpr4iK1cGrmncok.json index 8ddf1c69..dbbb6ee9 100644 --- a/src/packs/subclasses/folders_Subclass_Features_Sfpr4iK1cGrmncok.json +++ b/src/packs/subclasses/folders_Subclass_Features_Sfpr4iK1cGrmncok.json @@ -8,5 +8,16 @@ "description": "", "sort": 900000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754174646170, + "modifiedTime": 1754501800511, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!folders!Sfpr4iK1cGrmncok" } diff --git a/src/packs/subclasses/folders_Warrior_2lqz1Vao2brbVfIH.json b/src/packs/subclasses/folders_Warrior_2lqz1Vao2brbVfIH.json index 1519fa43..9e95b8b2 100644 --- a/src/packs/subclasses/folders_Warrior_2lqz1Vao2brbVfIH.json +++ b/src/packs/subclasses/folders_Warrior_2lqz1Vao2brbVfIH.json @@ -8,5 +8,15 @@ "description": "", "sort": -50000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754266255679 + }, "_key": "!folders!2lqz1Vao2brbVfIH" } diff --git a/src/packs/subclasses/folders_Warrior_aTyhcJgENR9uI7u4.json b/src/packs/subclasses/folders_Warrior_aTyhcJgENR9uI7u4.json index f249a2a4..d9f88587 100644 --- a/src/packs/subclasses/folders_Warrior_aTyhcJgENR9uI7u4.json +++ b/src/packs/subclasses/folders_Warrior_aTyhcJgENR9uI7u4.json @@ -8,5 +8,16 @@ "description": "", "sort": 1700000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754256060634, + "modifiedTime": 1754501859285, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!folders!aTyhcJgENR9uI7u4" } diff --git a/src/packs/subclasses/folders_Warrior_mmCmlh5x1cE4EbhN.json b/src/packs/subclasses/folders_Warrior_mmCmlh5x1cE4EbhN.json index b27fe210..5489fb53 100644 --- a/src/packs/subclasses/folders_Warrior_mmCmlh5x1cE4EbhN.json +++ b/src/packs/subclasses/folders_Warrior_mmCmlh5x1cE4EbhN.json @@ -8,5 +8,15 @@ "description": "", "sort": 350000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754266251280 + }, "_key": "!folders!mmCmlh5x1cE4EbhN" } diff --git a/src/packs/subclasses/folders_Warrior_yMp2Hj8av6IWJahF.json b/src/packs/subclasses/folders_Warrior_yMp2Hj8av6IWJahF.json index b19ef0ac..3a83f177 100644 --- a/src/packs/subclasses/folders_Warrior_yMp2Hj8av6IWJahF.json +++ b/src/packs/subclasses/folders_Warrior_yMp2Hj8av6IWJahF.json @@ -8,5 +8,15 @@ "description": "", "sort": 350000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754266249330 + }, "_key": "!folders!yMp2Hj8av6IWJahF" } diff --git a/src/packs/subclasses/folders_Wizard_8dyHGlppj08jYLIO.json b/src/packs/subclasses/folders_Wizard_8dyHGlppj08jYLIO.json index a39c2e25..5160c994 100644 --- a/src/packs/subclasses/folders_Wizard_8dyHGlppj08jYLIO.json +++ b/src/packs/subclasses/folders_Wizard_8dyHGlppj08jYLIO.json @@ -8,5 +8,15 @@ "description": "", "sort": 400000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754266238607 + }, "_key": "!folders!8dyHGlppj08jYLIO" } diff --git a/src/packs/subclasses/folders_Wizard_Bb9SLVpYHGBrOB59.json b/src/packs/subclasses/folders_Wizard_Bb9SLVpYHGBrOB59.json index 5ef9e80e..744a1230 100644 --- a/src/packs/subclasses/folders_Wizard_Bb9SLVpYHGBrOB59.json +++ b/src/packs/subclasses/folders_Wizard_Bb9SLVpYHGBrOB59.json @@ -8,5 +8,16 @@ "description": "", "sort": 1800000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754253525540, + "modifiedTime": 1754501860252, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, "_key": "!folders!Bb9SLVpYHGBrOB59" } diff --git a/src/packs/subclasses/folders_Wizard_IIW7boHWq1QoYwOQ.json b/src/packs/subclasses/folders_Wizard_IIW7boHWq1QoYwOQ.json index b1ec789e..76f4da36 100644 --- a/src/packs/subclasses/folders_Wizard_IIW7boHWq1QoYwOQ.json +++ b/src/packs/subclasses/folders_Wizard_IIW7boHWq1QoYwOQ.json @@ -8,5 +8,15 @@ "description": "", "sort": 400000, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "LgnbNMLaxandgMQq", + "modifiedTime": 1754266246149 + }, "_key": "!folders!IIW7boHWq1QoYwOQ" } diff --git a/src/packs/subclasses/folders_Wizard_t8AkyVM60h7WuLOD.json b/src/packs/subclasses/folders_Wizard_t8AkyVM60h7WuLOD.json index 9301c55b..ed191ed5 100644 --- a/src/packs/subclasses/folders_Wizard_t8AkyVM60h7WuLOD.json +++ b/src/packs/subclasses/folders_Wizard_t8AkyVM60h7WuLOD.json @@ -8,5 +8,14 @@ "description": "", "sort": 0, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, "_key": "!folders!t8AkyVM60h7WuLOD" } diff --git a/src/packs/subclasses/subclass_Beastbound_TIUsIlTS1WkK5vr2.json b/src/packs/subclasses/subclass_Beastbound_TIUsIlTS1WkK5vr2.json index 57766532..622fb36a 100644 --- a/src/packs/subclasses/subclass_Beastbound_TIUsIlTS1WkK5vr2.json +++ b/src/packs/subclasses/subclass_Beastbound_TIUsIlTS1WkK5vr2.json @@ -31,11 +31,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 17, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.BTyfve69LKqoOi9S" }, "effects": [], @@ -45,5 +40,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754268237448, + "modifiedTime": 1755943503629, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!TIUsIlTS1WkK5vr2" } diff --git a/src/packs/subclasses/subclass_Call_Of_The_Brave_NAFU9roaVG7f3RNJ.json b/src/packs/subclasses/subclass_Call_Of_The_Brave_NAFU9roaVG7f3RNJ.json index c7b0dcb3..46f7f2af 100644 --- a/src/packs/subclasses/subclass_Call_Of_The_Brave_NAFU9roaVG7f3RNJ.json +++ b/src/packs/subclasses/subclass_Call_Of_The_Brave_NAFU9roaVG7f3RNJ.json @@ -27,11 +27,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 24, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.xCUWwJz4WSthvLfy" }, "effects": [], @@ -41,5 +36,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754256077777, + "modifiedTime": 1755943544886, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!NAFU9roaVG7f3RNJ" } diff --git a/src/packs/subclasses/subclass_Call_Of_The_Slayer_bcNe5qP3o6CKadhK.json b/src/packs/subclasses/subclass_Call_Of_The_Slayer_bcNe5qP3o6CKadhK.json index 3e72ac29..bbcf6ca6 100644 --- a/src/packs/subclasses/subclass_Call_Of_The_Slayer_bcNe5qP3o6CKadhK.json +++ b/src/packs/subclasses/subclass_Call_Of_The_Slayer_bcNe5qP3o6CKadhK.json @@ -23,11 +23,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 24, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.xCUWwJz4WSthvLfy" }, "effects": [], @@ -37,5 +32,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754256112978, + "modifiedTime": 1755943545973, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!bcNe5qP3o6CKadhK" } diff --git a/src/packs/subclasses/subclass_Divine_Wielder_M5mpGoAj8LRkylrY.json b/src/packs/subclasses/subclass_Divine_Wielder_M5mpGoAj8LRkylrY.json index d81790d4..9a7b9c96 100644 --- a/src/packs/subclasses/subclass_Divine_Wielder_M5mpGoAj8LRkylrY.json +++ b/src/packs/subclasses/subclass_Divine_Wielder_M5mpGoAj8LRkylrY.json @@ -27,11 +27,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 21, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.5ZnlJ5bEoyOTkUJv" }, "effects": [], @@ -41,5 +36,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754352806098, + "modifiedTime": 1755943522722, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!M5mpGoAj8LRkylrY" } diff --git a/src/packs/subclasses/subclass_Elemental_Origin_wg1H0hROc2acHwZh.json b/src/packs/subclasses/subclass_Elemental_Origin_wg1H0hROc2acHwZh.json index 19e35a52..f1f85e42 100644 --- a/src/packs/subclasses/subclass_Elemental_Origin_wg1H0hROc2acHwZh.json +++ b/src/packs/subclasses/subclass_Elemental_Origin_wg1H0hROc2acHwZh.json @@ -23,11 +23,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 22, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.DchOzHcWIJE9FKcR" }, "effects": [], @@ -37,5 +32,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754349604941, + "modifiedTime": 1755943535524, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!wg1H0hROc2acHwZh" } diff --git a/src/packs/subclasses/subclass_Nightwalker_h161OSIK24Up4qNd.json b/src/packs/subclasses/subclass_Nightwalker_h161OSIK24Up4qNd.json index 8d31a0c0..49f9a520 100644 --- a/src/packs/subclasses/subclass_Nightwalker_h161OSIK24Up4qNd.json +++ b/src/packs/subclasses/subclass_Nightwalker_h161OSIK24Up4qNd.json @@ -31,11 +31,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 19, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.CvHlkHZfpMiCz5uT" }, "effects": [], @@ -45,5 +40,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754322815758, + "modifiedTime": 1755943514465, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!h161OSIK24Up4qNd" } diff --git a/src/packs/subclasses/subclass_Primal_Origin_GLpRVxnY5E82khxH.json b/src/packs/subclasses/subclass_Primal_Origin_GLpRVxnY5E82khxH.json index fd596691..37619136 100644 --- a/src/packs/subclasses/subclass_Primal_Origin_GLpRVxnY5E82khxH.json +++ b/src/packs/subclasses/subclass_Primal_Origin_GLpRVxnY5E82khxH.json @@ -23,11 +23,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 22, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.DchOzHcWIJE9FKcR" }, "effects": [], @@ -37,5 +32,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754349604941, + "modifiedTime": 1755943536628, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!GLpRVxnY5E82khxH" } diff --git a/src/packs/subclasses/subclass_School_Of_Knowledge_qqQlgCqhOivUFoQn.json b/src/packs/subclasses/subclass_School_Of_Knowledge_qqQlgCqhOivUFoQn.json index 39725ee5..7ed07d06 100644 --- a/src/packs/subclasses/subclass_School_Of_Knowledge_qqQlgCqhOivUFoQn.json +++ b/src/packs/subclasses/subclass_School_Of_Knowledge_qqQlgCqhOivUFoQn.json @@ -35,11 +35,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.5LwX4m8ziY3F1ZGC" }, "effects": [], @@ -49,5 +44,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754253538384, + "modifiedTime": 1755943553625, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!qqQlgCqhOivUFoQn" } diff --git a/src/packs/subclasses/subclass_School_Of_War_4y9Ph7RsCIAbkwTk.json b/src/packs/subclasses/subclass_School_Of_War_4y9Ph7RsCIAbkwTk.json index 240ea8ea..856031d8 100644 --- a/src/packs/subclasses/subclass_School_Of_War_4y9Ph7RsCIAbkwTk.json +++ b/src/packs/subclasses/subclass_School_Of_War_4y9Ph7RsCIAbkwTk.json @@ -35,11 +35,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 25, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.5LwX4m8ziY3F1ZGC" }, "effects": [], @@ -49,5 +44,16 @@ "MQSznptE5yLT7kj8": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754253587683, + "modifiedTime": 1755943555081, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!4y9Ph7RsCIAbkwTk" } diff --git a/src/packs/subclasses/subclass_Stalwart_rKRxFBlkbh9cDK8K.json b/src/packs/subclasses/subclass_Stalwart_rKRxFBlkbh9cDK8K.json index 55298d54..b75f88d0 100644 --- a/src/packs/subclasses/subclass_Stalwart_rKRxFBlkbh9cDK8K.json +++ b/src/packs/subclasses/subclass_Stalwart_rKRxFBlkbh9cDK8K.json @@ -35,11 +35,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 16, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.nRAyoC0fOzXPDa4z" }, "effects": [], @@ -49,5 +44,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754245881893, + "modifiedTime": 1755943487549, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!rKRxFBlkbh9cDK8K" } diff --git a/src/packs/subclasses/subclass_Syndicate_95QxNZwgyEm1LqdG.json b/src/packs/subclasses/subclass_Syndicate_95QxNZwgyEm1LqdG.json index 86596ca6..2cef9bbd 100644 --- a/src/packs/subclasses/subclass_Syndicate_95QxNZwgyEm1LqdG.json +++ b/src/packs/subclasses/subclass_Syndicate_95QxNZwgyEm1LqdG.json @@ -23,11 +23,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 20, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.CvHlkHZfpMiCz5uT" }, "effects": [], @@ -37,5 +32,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754323643089, + "modifiedTime": 1755943515526, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!95QxNZwgyEm1LqdG" } diff --git a/src/packs/subclasses/subclass_Troubadour_ld8MIvk0xVJydSBz.json b/src/packs/subclasses/subclass_Troubadour_ld8MIvk0xVJydSBz.json index 42bf86f2..eb51d60e 100644 --- a/src/packs/subclasses/subclass_Troubadour_ld8MIvk0xVJydSBz.json +++ b/src/packs/subclasses/subclass_Troubadour_ld8MIvk0xVJydSBz.json @@ -22,11 +22,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 9, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.vegl3bFOq3pcFTWT" }, "effects": [], @@ -35,6 +30,17 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754174653653, + "modifiedTime": 1755943465827, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_id": "ld8MIvk0xVJydSBz", "sort": 100000, "_key": "!items!ld8MIvk0xVJydSBz" diff --git a/src/packs/subclasses/subclass_Vengeance_SUo8NPBPO8aN193u.json b/src/packs/subclasses/subclass_Vengeance_SUo8NPBPO8aN193u.json index 343756f7..fedf5f1a 100644 --- a/src/packs/subclasses/subclass_Vengeance_SUo8NPBPO8aN193u.json +++ b/src/packs/subclasses/subclass_Vengeance_SUo8NPBPO8aN193u.json @@ -27,11 +27,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 16, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.nRAyoC0fOzXPDa4z" }, "effects": [], @@ -41,5 +36,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754246011733, + "modifiedTime": 1755943488691, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!SUo8NPBPO8aN193u" } diff --git a/src/packs/subclasses/subclass_Warden_of_Renewal_xp0XMjYT85Q7E90o.json b/src/packs/subclasses/subclass_Warden_of_Renewal_xp0XMjYT85Q7E90o.json index 8de4f995..abe97d5e 100644 --- a/src/packs/subclasses/subclass_Warden_of_Renewal_xp0XMjYT85Q7E90o.json +++ b/src/packs/subclasses/subclass_Warden_of_Renewal_xp0XMjYT85Q7E90o.json @@ -30,11 +30,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 11, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.ZNwUTCyGCEcidZFv" }, "effects": [], @@ -45,5 +40,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754221346981, + "modifiedTime": 1755943479431, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!xp0XMjYT85Q7E90o" } diff --git a/src/packs/subclasses/subclass_Warden_of_the_Elements_W9hs5kxOWeY7eA4Q.json b/src/packs/subclasses/subclass_Warden_of_the_Elements_W9hs5kxOWeY7eA4Q.json index fc72953a..43642e89 100644 --- a/src/packs/subclasses/subclass_Warden_of_the_Elements_W9hs5kxOWeY7eA4Q.json +++ b/src/packs/subclasses/subclass_Warden_of_the_Elements_W9hs5kxOWeY7eA4Q.json @@ -22,11 +22,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 11, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.ZNwUTCyGCEcidZFv" }, "effects": [], @@ -37,5 +32,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754221102716, + "modifiedTime": 1755943478132, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!W9hs5kxOWeY7eA4Q" } diff --git a/src/packs/subclasses/subclass_Wayfinder_zsUglcU4NgZ8tNgZ.json b/src/packs/subclasses/subclass_Wayfinder_zsUglcU4NgZ8tNgZ.json index 34bde117..a308d587 100644 --- a/src/packs/subclasses/subclass_Wayfinder_zsUglcU4NgZ8tNgZ.json +++ b/src/packs/subclasses/subclass_Wayfinder_zsUglcU4NgZ8tNgZ.json @@ -27,11 +27,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 17, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.BTyfve69LKqoOi9S" }, "effects": [], @@ -41,5 +36,16 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754268318903, + "modifiedTime": 1755943505016, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!zsUglcU4NgZ8tNgZ" } diff --git a/src/packs/subclasses/subclass_Winged_Sentinel_y7ERWRIpJsdP9Re4.json b/src/packs/subclasses/subclass_Winged_Sentinel_y7ERWRIpJsdP9Re4.json index 730605f6..f71a1fcb 100644 --- a/src/packs/subclasses/subclass_Winged_Sentinel_y7ERWRIpJsdP9Re4.json +++ b/src/packs/subclasses/subclass_Winged_Sentinel_y7ERWRIpJsdP9Re4.json @@ -27,11 +27,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 21, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.5ZnlJ5bEoyOTkUJv" }, "effects": [], @@ -41,5 +36,16 @@ "Q9NoTaEarn3VMS6Z": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754354451615, + "modifiedTime": 1755943523928, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_key": "!items!y7ERWRIpJsdP9Re4" } diff --git a/src/packs/subclasses/subclass_Wordsmith_XTSODVM8st75Os8M.json b/src/packs/subclasses/subclass_Wordsmith_XTSODVM8st75Os8M.json index 29d4498a..6c975ca6 100644 --- a/src/packs/subclasses/subclass_Wordsmith_XTSODVM8st75Os8M.json +++ b/src/packs/subclasses/subclass_Wordsmith_XTSODVM8st75Os8M.json @@ -26,11 +26,6 @@ ], "featureState": 1, "isMulticlass": false, - "attribution": { - "source": "Daggerheart SRD", - "page": 9, - "artist": "" - }, "linkedClass": "Compendium.daggerheart.classes.Item.vegl3bFOq3pcFTWT" }, "effects": [], @@ -39,6 +34,17 @@ "LgnbNMLaxandgMQq": 3 }, "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.347", + "systemId": "daggerheart", + "systemVersion": "1.1.0", + "createdTime": 1754174655078, + "modifiedTime": 1755943467695, + "lastModifiedBy": "tt3PwMBXcTLCtIQU" + }, "_id": "XTSODVM8st75Os8M", "sort": 200000, "_key": "!items!XTSODVM8st75Os8M" diff --git a/styles/daggerheart.less b/styles/daggerheart.less index 187402fb..efff7499 100755 --- a/styles/daggerheart.less +++ b/styles/daggerheart.less @@ -15,5 +15,3 @@ @import './less/ux/index.less'; @import '../build/tagify.css'; - -@import './less/utils/mixin.less'; diff --git a/styles/less/dialog/actions/action-list.less b/styles/less/dialog/actions/action-list.less index a0b079a7..33b3d0bb 100644 --- a/styles/less/dialog/actions/action-list.less +++ b/styles/less/dialog/actions/action-list.less @@ -32,7 +32,9 @@ width: 30px; } span { + font-family: @font-body; flex: 1; + font-weight: bold; } } } @@ -53,6 +55,7 @@ display: flex; align-items: center; gap: 10px; + font-family: @font-body; flex: 1; i { text-align: center; diff --git a/styles/less/dialog/attribution/sheet.less b/styles/less/dialog/attribution/sheet.less deleted file mode 100644 index d20b094d..00000000 --- a/styles/less/dialog/attribution/sheet.less +++ /dev/null @@ -1,23 +0,0 @@ -.daggerheart.dh-style.dialog.attribution { - .window-content { - padding-top: 0; - } - - .attribution-container { - display: flex; - flex-direction: column; - gap: 8px; - - h4 { - margin-bottom: 0; - } - - footer { - display: flex; - - button { - flex: 1; - } - } - } -} diff --git a/styles/less/dialog/beastform/sheet.less b/styles/less/dialog/beastform/sheet.less index 9e87f53b..26b6072a 100644 --- a/styles/less/dialog/beastform/sheet.less +++ b/styles/less/dialog/beastform/sheet.less @@ -41,7 +41,7 @@ display: flex; flex-wrap: wrap; text-align: center; - font-size: var(--font-size-16); + font-size: 16px; margin: 0 4px; border: 1px solid light-dark(@dark-blue, @golden); border-radius: 6px; @@ -135,7 +135,7 @@ align-items: center; i { - font-size: var(--font-size-24); + font-size: 24px; } } @@ -210,6 +210,7 @@ button { flex: 1; + font-family: @font-body; font-weight: bold; height: 40px; } diff --git a/styles/less/dialog/character-creation/selections-container.less b/styles/less/dialog/character-creation/selections-container.less index 1de3d870..bc7a6987 100644 --- a/styles/less/dialog/character-creation/selections-container.less +++ b/styles/less/dialog/character-creation/selections-container.less @@ -75,7 +75,7 @@ label { position: absolute; - font-size: var(--font-size-18); + font-size: 18px; font-weight: bold; padding: 0 2px; background-image: url(../assets/parchments/dh-parchment-light.png); @@ -141,7 +141,7 @@ .ancestry-preview-feature { flex: 1; - font-size: var(--font-size-14); + font-size: 14px; white-space: wrap; padding: 0 2px; border: 1px solid light-dark(@golden, @dark-blue); @@ -178,7 +178,7 @@ legend { margin-left: auto; margin-right: auto; - font-size: var(--font-size-28); + font-size: 28px; font-weight: bold; padding: 0 8px; } @@ -191,7 +191,7 @@ justify-content: center; legend { - font-size: var(--font-size-20); + font-size: 20px; white-space: nowrap; } @@ -343,7 +343,7 @@ border-radius: 50%; height: 20px; width: 20px; - font-size: var(--font-size-14); + font-size: 14px; display: flex; align-items: center; justify-content: center; @@ -358,7 +358,7 @@ .descriptor { position: absolute; bottom: -8px; - font-size: var(--font-size-12); + font-size: 12px; border-radius: 8px; width: 56px; text-align: center; @@ -400,7 +400,7 @@ legend { margin-left: auto; margin-right: auto; - font-size: var(--font-size-28); + font-size: 28px; font-weight: bold; padding: 0 8px; white-space: nowrap; @@ -444,11 +444,11 @@ label { position: absolute; top: -8px; - font-size: var(--font-size-12); + font-size: 12px; white-space: nowrap; border: 1px solid light-dark(@dark-blue, @golden); border-radius: 6px; - color: @dark; + color: light-dark(@beige, @dark); background-image: url('../assets/parchments/dh-parchment-light.png'); padding: 0 2px; } @@ -472,7 +472,7 @@ legend { margin-left: auto; margin-right: auto; - font-size: var(--font-size-12); + font-size: 12px; } .suggestion-inner-container { @@ -490,7 +490,7 @@ label { position: absolute; top: -2px; - font-size: var(--font-size-12); + font-size: 12px; } img { diff --git a/styles/less/dialog/character-creation/tab-navigation.less b/styles/less/dialog/character-creation/tab-navigation.less index 36b89d5a..709e0adc 100644 --- a/styles/less/dialog/character-creation/tab-navigation.less +++ b/styles/less/dialog/character-creation/tab-navigation.less @@ -7,6 +7,7 @@ border-top: 0; a { + font-family: @font-body; color: light-dark(@dark-blue, @golden); &[disabled] { diff --git a/styles/less/dialog/damage-reduction/damage-reduction-container.less b/styles/less/dialog/damage-reduction/damage-reduction-container.less index 2f343fb3..9e1d1472 100644 --- a/styles/less/dialog/damage-reduction/damage-reduction-container.less +++ b/styles/less/dialog/damage-reduction/damage-reduction-container.less @@ -76,7 +76,7 @@ border-radius: 6px; height: 26px; padding: 0 1px; - font-size: var(--font-size-18); + font-size: 18px; display: flex; align-items: center; justify-content: center; @@ -108,7 +108,7 @@ border-radius: 6px; height: 26px; padding: 0 4px; - font-size: var(--font-size-18); + font-size: 18px; display: flex; align-items: center; justify-content: center; diff --git a/styles/less/dialog/death-move/death-move-container.less b/styles/less/dialog/death-move/death-move-container.less index e5803d95..d5982131 100644 --- a/styles/less/dialog/death-move/death-move-container.less +++ b/styles/less/dialog/death-move/death-move-container.less @@ -26,6 +26,7 @@ display: flex; align-items: center; gap: 10px; + font-family: @font-body; cursor: pointer; flex: 1; i { @@ -49,6 +50,7 @@ button { flex: 1; height: 40px; + font-family: @font-body; font-weight: 600; } } diff --git a/styles/less/dialog/dice-roll/roll-selection.less b/styles/less/dialog/dice-roll/roll-selection.less index 0f082460..d536ee04 100644 --- a/styles/less/dialog/dice-roll/roll-selection.less +++ b/styles/less/dialog/dice-roll/roll-selection.less @@ -11,14 +11,7 @@ .application.daggerheart.dialog.dh-style.views.roll-selection { .dialog-header { display: flex; - flex-direction: column; - align-items: center; - gap: 4px; - - .dialog-header-inner { - display: flex; - justify-content: center; - } + justify-content: center; h1 { width: auto; @@ -30,7 +23,7 @@ width: auto; opacity: 0.3; border-radius: 50%; - font-size: var(--font-size-18); + font-size: 18px; font-weight: bold; &:hover { @@ -44,29 +37,6 @@ } } } - - .tag-team-controller { - display: flex; - align-items: center; - border-radius: 5px; - width: fit-content; - gap: 5px; - cursor: pointer; - padding: 5px; - background: light-dark(@dark-blue-10, @golden-10); - color: light-dark(@dark-blue, @golden); - - .label { - font-style: normal; - font-weight: 400; - font-size: var(--font-size-14); - line-height: 17px; - } - - &.selected { - background: light-dark(@dark-blue-40, @golden-40); - } - } } .roll-dialog-container { @@ -104,7 +74,7 @@ font-family: @font-subtitle; font-style: normal; font-weight: 700; - font-size: var(--font-size-16); + font-size: 16px; line-height: 19px; color: light-dark(@dark, @beige); @@ -130,9 +100,10 @@ color: light-dark(@dark-blue, @golden); .label { + font-family: @font-body; font-style: normal; font-weight: 400; - font-size: var(--font-size-14); + font-size: 14px; line-height: 17px; } @@ -155,9 +126,10 @@ transition: all 0.3s ease; .label { + font-family: @font-body; font-style: normal; font-weight: 400; - font-size: var(--font-size-14); + font-size: 14px; line-height: 17px; } @@ -202,6 +174,7 @@ flex: 1; height: 100%; font-weight: bold; + font-family: @font-body; } } } diff --git a/styles/less/dialog/downtime/downtime-container.less b/styles/less/dialog/downtime/downtime-container.less index eb615ef0..fe1344cd 100644 --- a/styles/less/dialog/downtime/downtime-container.less +++ b/styles/less/dialog/downtime/downtime-container.less @@ -15,6 +15,8 @@ } .daggerheart.dh-style.views.downtime { + font-family: @font-body; + .downtime-container { .activities-grouping { width: 280px; @@ -35,9 +37,9 @@ gap: 4px; .activity-marker { - font-size: 0.5rem; + font-size: 8px; flex: none; - color: light-dark(@dark-blue, @golden); + color: light-dark(#18162e, #f3c267); margin-right: 4px; } @@ -54,7 +56,7 @@ } .activity-selected-marker { - font-size: var(--font-size-14); + font-size: 14px; border: 1px solid light-dark(@dark-blue, @golden); border-radius: 6px; color: light-dark(@dark, @beige); @@ -71,7 +73,7 @@ display: grid; grid-template-columns: 1fr 1fr; gap: 4px; - font-size: var(--font-size-12); + font-size: 12px; &.wide { grid-template-columns: 1fr 1fr 1fr 1fr; @@ -91,6 +93,9 @@ .refreshable-title { font-weight: bold; } + + .refreshable-name { + } } } @@ -102,6 +107,7 @@ button { flex: 1; height: 40px; + font-family: @font-body; font-weight: 600; } } diff --git a/styles/less/dialog/group-roll/group-roll.less b/styles/less/dialog/group-roll/group-roll.less deleted file mode 100644 index f2895d31..00000000 --- a/styles/less/dialog/group-roll/group-roll.less +++ /dev/null @@ -1,50 +0,0 @@ -@import '../../utils/colors.less'; - -.application.daggerheart.group-roll { - fieldset.one-column { - min-width: 500px; - margin-bottom: 10px; - } - .actor-item { - display: flex; - align-items: center; - gap: 15px; - width: 100%; - - img { - height: 40px; - width: 40px; - border-radius: 50%; - object-fit: cover; - } - - .actor-info { - display: flex; - flex-direction: column; - gap: 10px; - - .actor-check-info { - display: flex; - gap: 10px; - - .form-fields { - display: flex; - gap: 5px; - align-items: center; - - input { - max-width: 40px; - text-align: center; - } - } - } - } - - .controls { - margin-left: auto; - } - } - .tooltip-container { - width: 100%; - } -} diff --git a/styles/less/dialog/image-select/sheet.less b/styles/less/dialog/image-select/sheet.less deleted file mode 100644 index 3ed4f583..00000000 --- a/styles/less/dialog/image-select/sheet.less +++ /dev/null @@ -1,35 +0,0 @@ -.daggerheart.dh-style.dialog.image-select { - display: flex; - flex-direction: column; - - .images-container { - display: flex; - flex-wrap: wrap; - gap: 8px; - max-height: 420px; - overflow: auto; - - img { - width: 136px; - height: 136px; - border: 1px solid light-dark(@dark-blue, @golden); - border-radius: 6px; - opacity: 0.4; - - &.selected { - opacity: 1; - } - } - } - - .footer { - margin-top: 8px; - display: flex; - align-items: center; - gap: 8px; - - button { - flex: 1; - } - } -} diff --git a/styles/less/dialog/index.less b/styles/less/dialog/index.less index b5ed8764..05593d44 100644 --- a/styles/less/dialog/index.less +++ b/styles/less/dialog/index.less @@ -1,4 +1,3 @@ -@import './attribution/sheet.less'; @import './level-up/navigation-container.less'; @import './level-up/selections-container.less'; @import './level-up/sheet.less'; @@ -30,12 +29,3 @@ @import './multiclass-choice/sheet.less'; @import './reroll-dialog/sheet.less'; - -@import './group-roll/group-roll.less'; -@import './tag-team-dialog/sheet.less'; - -@import './image-select/sheet.less'; - -@import './item-transfer/sheet.less'; - -@import './settings/change-currency-icon.less'; \ No newline at end of file diff --git a/styles/less/dialog/item-transfer/sheet.less b/styles/less/dialog/item-transfer/sheet.less deleted file mode 100644 index 7807e479..00000000 --- a/styles/less/dialog/item-transfer/sheet.less +++ /dev/null @@ -1,35 +0,0 @@ -.daggerheart.dh-style.dialog.item-transfer { - .summary { - display: flex; - align-items: center; - justify-content: center; - gap: 3rem; - - .actor-img { - border-radius: 50%; - width: 5rem; - height: 5rem; - object-fit: cover; - object-position: top center; - } - - .granted-item { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: var(--font-size-32); - - img { - width: 2rem; - height: 2rem; - object-fit: contain; - border-radius: 3px; - } - } - } - label { - flex: 0; - margin-right: 0.5rem; - } -} diff --git a/styles/less/dialog/level-up/footer.less b/styles/less/dialog/level-up/footer.less index 2a177102..daf25b60 100644 --- a/styles/less/dialog/level-up/footer.less +++ b/styles/less/dialog/level-up/footer.less @@ -10,6 +10,7 @@ gap: 10px; button { + font-family: @font-body; font-weight: bold; height: 40px; } diff --git a/styles/less/dialog/level-up/navigation-container.less b/styles/less/dialog/level-up/navigation-container.less index 282d683f..d8872931 100644 --- a/styles/less/dialog/level-up/navigation-container.less +++ b/styles/less/dialog/level-up/navigation-container.less @@ -19,6 +19,7 @@ a, span { + font-family: @font-body; color: light-dark(@dark-blue, @golden); } } diff --git a/styles/less/dialog/level-up/selections-container.less b/styles/less/dialog/level-up/selections-container.less index 6a551865..a13c9ff3 100644 --- a/styles/less/dialog/level-up/selections-container.less +++ b/styles/less/dialog/level-up/selections-container.less @@ -21,7 +21,7 @@ background: light-dark(@dark-blue-40, @golden-40); border-radius: 3px; padding: 5px; - font-size: var(--font-size-16); + font-size: 16px; gap: 4px; width: 100%; @@ -30,6 +30,10 @@ width: 80%; } + span { + font-family: @font-body; + } + .achievement-experience-marker { border: 1px solid; border-radius: 50%; @@ -38,7 +42,7 @@ display: flex; align-items: center; justify-content: center; - font-size: var(--font-size-12); + font-size: 12px; } } } @@ -96,7 +100,7 @@ width: 54px; border-radius: 50%; border: 2px solid; - font-size: var(--font-size-48); + font-size: 48px; display: flex; align-items: center; justify-content: center; @@ -123,6 +127,7 @@ margin-bottom: 10px; h3 { + font-family: @font-subtitle; color: light-dark(@dark, @beige); margin: 0; white-space: nowrap; @@ -133,7 +138,7 @@ .levelup-selections-title { margin-left: auto; margin-right: auto; - font-size: 1.375rem; + font-size: 22px; font-weight: bold; padding: 0 12px; } diff --git a/styles/less/dialog/level-up/summary-container.less b/styles/less/dialog/level-up/summary-container.less index d67abff6..eb760cde 100644 --- a/styles/less/dialog/level-up/summary-container.less +++ b/styles/less/dialog/level-up/summary-container.less @@ -9,6 +9,7 @@ margin-bottom: 10px; h3 { + font-family: @font-subtitle; color: light-dark(@dark, @beige); margin: 0; white-space: nowrap; @@ -41,7 +42,8 @@ display: flex; align-items: center; gap: 4px; - font-size: var(--font-size-14); + font-size: 14px; + font-family: @font-body; color: light-dark(@dark, @beige); } @@ -49,7 +51,8 @@ display: flex; align-items: center; gap: 4px; - font-size: var(--font-size-16); + font-size: 16px; + font-family: @font-subtitle; color: light-dark(@dark, @beige); margin-bottom: 5px; } @@ -62,7 +65,8 @@ border: 2px solid; border-radius: 3px; padding: 0 4px; - font-size: var(--font-size-14); + font-size: 14px; + font-family: @font-body; color: light-dark(@dark, @beige); } } diff --git a/styles/less/dialog/level-up/tiers-container.less b/styles/less/dialog/level-up/tiers-container.less index 270b9b80..225c31fb 100644 --- a/styles/less/dialog/level-up/tiers-container.less +++ b/styles/less/dialog/level-up/tiers-container.less @@ -21,7 +21,7 @@ legend { margin-left: auto; margin-right: auto; - font-size: 1.375rem; + font-size: 22px; font-weight: bold; padding: 0 12px; } @@ -60,7 +60,8 @@ } .checkbox-group-label { - font-size: var(--font-size-12); + font-family: @font-body; + font-size: 12px; font-style: italic; } } diff --git a/styles/less/dialog/multiclass-choice/sheet.less b/styles/less/dialog/multiclass-choice/sheet.less index 1f38449a..93a8540b 100644 --- a/styles/less/dialog/multiclass-choice/sheet.less +++ b/styles/less/dialog/multiclass-choice/sheet.less @@ -1,5 +1,3 @@ -@import '../../utils/colors.less'; - .theme-light .daggerheart.dh-style.dialog.multiclass-choice { .multiclass-container .domain-choice-container button label { background-image: url(../assets/parchments/dh-parchment-light.png); @@ -44,6 +42,7 @@ label { position: absolute; top: 4px; + font-family: @font-body; border-radius: 6px; border: 2px solid; padding: 0 2px; diff --git a/styles/less/dialog/reroll-dialog/sheet.less b/styles/less/dialog/reroll-dialog/sheet.less index 71c94d80..f8687009 100644 --- a/styles/less/dialog/reroll-dialog/sheet.less +++ b/styles/less/dialog/reroll-dialog/sheet.less @@ -37,7 +37,7 @@ display: flex; align-items: center; justify-content: center; - font-size: 1.375rem; + font-size: 22px; opacity: 0.8; &.selected { @@ -99,12 +99,12 @@ &:before, &:after { line-height: 12px; - font-size: var(--font-size-12); + font-size: 12px; } } i { - font-size: var(--font-size-10); + font-size: 10px; } } } diff --git a/styles/less/dialog/settings/change-currency-icon.less b/styles/less/dialog/settings/change-currency-icon.less deleted file mode 100644 index 61870a4b..00000000 --- a/styles/less/dialog/settings/change-currency-icon.less +++ /dev/null @@ -1,13 +0,0 @@ -.application.daggerheart.dialog.dh-style.change-currency-icon { - .displayed-icon { - height: 2.5rem; - text-align: center; - font-size: 2.5rem; - margin-bottom: 1.25rem; - } - .input-row { - display: flex; - gap: 4px; - align-items: center; - } -} \ No newline at end of file diff --git a/styles/less/dialog/tag-team-dialog/sheet.less b/styles/less/dialog/tag-team-dialog/sheet.less deleted file mode 100644 index 767c66ca..00000000 --- a/styles/less/dialog/tag-team-dialog/sheet.less +++ /dev/null @@ -1,178 +0,0 @@ -.daggerheart.dialog.dh-style.views.tag-team-dialog { - .tag-team-container { - display: flex; - flex-direction: column; - gap: 16px; - - .tag-team-data-container { - display: flex; - align-items: center; - gap: 8px; - - .form-group { - flex: 0; - - label { - white-space: nowrap; - } - - &.flex-group { - flex: 1; - } - } - } - - .title-row { - display: flex; - align-items: center; - gap: 8px; - - h2 { - text-align: start; - } - - select { - flex: 1; - } - } - - .participants-container { - margin-top: 8px; - display: flex; - flex-direction: column; - gap: 4px; - - .participant-outer-container { - padding: 8px; - display: flex; - flex-direction: column; - gap: 4px; - cursor: pointer; - border-radius: 6px; - - &.selected, - &:hover { - background-color: light-dark(@golden-40, @golden-40); - } - - .participant-container { - display: flex; - align-items: center; - justify-content: space-between; - gap: 8px; - - .participant-inner-container { - flex: 1; - display: flex; - align-items: center; - gap: 4px; - - img { - height: 48px; - width: 48px; - border-radius: 50%; - } - - .participant-labels { - display: flex; - flex-direction: column; - gap: 2px; - - .participant-label-title { - font-size: 18px; - } - - .participant-label-info { - display: flex; - gap: 4px; - - .participant-label-info-part { - border: 1px solid light-dark(white, white); - border-radius: 4px; - padding: 2px 4px; - background-color: light-dark(@beige-80, @soft-white-shadow); - color: white; - } - } - } - } - } - - .participant-empty-roll-container { - border: 1px dashed white; - padding: 8px 2px; - text-align: center; - font-style: italic; - } - - .participant-roll-outer-container { - display: flex; - flex-direction: column; - gap: 2px; - color: light-dark(@dark-blue, @golden); - - h4 { - text-align: center; - color: light-dark(@dark-blue, @golden); - } - - .participant-roll-container { - display: flex; - align-items: center; - justify-content: center; - white-space: nowrap; - - .participant-roll-text-container { - padding: 0 8px; - white-space: nowrap; - display: flex; - } - } - - .damage-values-container { - display: flex; - justify-content: space-around; - gap: 8px; - - .damage-container { - border: 1px solid light-dark(white, white); - border-radius: 6px; - padding: 0 4px; - display: flex; - gap: 4px; - } - } - } - } - } - - h2 { - text-align: center; - } - - .result-container { - display: grid; - grid-template-columns: 1fr 1fr; - align-items: center; - gap: 8px; - - .result-damages-container { - display: flex; - flex-wrap: wrap; - gap: 4px; - - .result-damage-container { - border: 1px solid light-dark(white, white); - border-radius: 6px; - padding: 0 4px; - } - } - } - - .roll-leader-container { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 8px; - } - } -} diff --git a/styles/less/global/chat.less b/styles/less/global/chat.less index 69ee369a..d7fee8e5 100644 --- a/styles/less/global/chat.less +++ b/styles/less/global/chat.less @@ -7,15 +7,6 @@ #chat-notifications .chat-log { .chat-message { background-image: url('../assets/parchments/dh-parchment-light.png'); - - .message-header .message-header-metadata .message-metadata, - .message-header .message-header-main .message-sub-header-container { - color: @dark; - } - - .message-header .message-header-main .message-sub-header-container h4 { - color: @dark-blue; - } } } } @@ -25,7 +16,6 @@ padding: 8px; } -.vtt.stream.system-daggerheart .chat-sidebar, .daggerheart.chat-sidebar, #chat-notifications { .chat-log { @@ -46,7 +36,7 @@ .message-metadata { font-family: @font-body; - color: @beige; + color: light-dark(@dark, @beige); } } @@ -62,7 +52,6 @@ width: 40px; height: 40px; object-fit: cover; - object-position: top center; } .message-sub-header-container { @@ -70,14 +59,14 @@ display: flex; flex-direction: column; justify-content: space-between; - color: @beige; + color: light-dark(@dark, @beige); h4 { - font-size: var(--font-size-16); + font-size: 16px; font-weight: bold; margin-bottom: 0; font-family: @font-subtitle; - color: @golden; + color: light-dark(@dark-blue, @golden); } } } diff --git a/styles/less/global/dialog.less b/styles/less/global/dialog.less index 8c532c2b..701d5025 100644 --- a/styles/less/global/dialog.less +++ b/styles/less/global/dialog.less @@ -48,9 +48,10 @@ } .formula-label { + font-family: @font-body; font-style: normal; font-weight: 500; - font-size: var(--font-size-14); + font-size: 14px; line-height: 17px; white-space: nowrap; color: light-dark(@dark, @beige); @@ -67,10 +68,6 @@ } } - .standard-form { - font-family: @font-body; - } - &.two-big-buttons { .window-content { padding-top: 0; @@ -84,6 +81,7 @@ button[type='submit'] { gap: 5px; flex-direction: row; + font-family: @font-body; font-weight: bold; font-size: var(--font-size-14); height: 40px; diff --git a/styles/less/global/elements.less b/styles/less/global/elements.less index e740d917..c22c3bfc 100755 --- a/styles/less/global/elements.less +++ b/styles/less/global/elements.less @@ -6,8 +6,7 @@ input[type='text'], input[type='number'], - textarea, - .input[contenteditable] { + textarea { background: light-dark(transparent, transparent); border-radius: 6px; box-shadow: 0 4px 30px @soft-shadow; @@ -44,14 +43,6 @@ } } - .input[contenteditable] { - cursor: var(--cursor-text); - &:empty:before { - color: light-dark(@dark-40, @beige-50); - content: attr(placeholder); - } - } - input[type='checkbox'], input[type='radio'] { &:checked::after { @@ -85,6 +76,7 @@ textarea { color: light-dark(@dark, @beige); + font-family: @font-body; scrollbar-width: thin; scrollbar-color: light-dark(@dark-blue, @golden) transparent; } @@ -134,6 +126,7 @@ select { background: light-dark(transparent, transparent); color: light-dark(@dark, @beige); + font-family: @font-body; outline: 2px solid transparent; border: 1px solid light-dark(@dark, @beige); @@ -168,13 +161,14 @@ padding: 0.3rem 0.5rem; color: light-dark(@dark-blue, @golden); background-color: light-dark(@dark-blue-10, @golden-40); + font-family: @font-body; border-radius: 3px; transition: 0.13s ease-out; gap: 0.5rem; z-index: 1; .remove { - font-size: var(--font-size-10); + font-size: 10px; } } } @@ -186,6 +180,7 @@ } table { + font-family: @font-body; border-radius: 3px; thead { @@ -219,13 +214,7 @@ } p { - &:first-child { - margin-top: 0; - } - - &:last-child { - margin-bottom: 0; - } + margin: 0; } ul { @@ -320,6 +309,7 @@ } legend { + font-family: @font-body; font-weight: bold; color: light-dark(@dark-blue, @golden); } @@ -327,6 +317,7 @@ input[type='text'], input[type='number'] { color: light-dark(@dark, @beige); + font-family: @font-body; transition: all 0.3s ease; outline: 2px solid transparent; @@ -353,10 +344,6 @@ width: 100%; gap: 5px; - &.space-between { - justify-content: space-between; - } - .btn { padding-top: 15px; } @@ -377,6 +364,7 @@ .form-group { width: 100%; label { + font-family: @font-body; font-weight: bold; font-size: smaller; } @@ -415,7 +403,8 @@ display: flex; flex-direction: column; white-space: nowrap; - font-size: var(--font-size-14); + font-family: @font-body; + font-size: 14px; font-weight: 400; &.modifier-label { @@ -510,6 +499,7 @@ color: light-dark(@dark-blue, @dark-blue); white-space: nowrap; border: 0; + font-family: @font-body; &:hover { color: light-dark(@dark-blue, @golden); @@ -534,17 +524,6 @@ } } } - .artist-attribution { - width: 100%; - display: flex; - justify-content: left; - font-style: italic; - font-family: @font-body; - margin-top: 4px; - color: light-dark(#14142599, #efe6d850); - font-size: var(--font-size-12); - padding-left: 3px; - } } .application.setting.dh-style { @@ -556,7 +535,7 @@ text-align: center; } .title-hint { - font-size: var(--font-size-12); + font-size: 12px; font-variant: small-caps; text-align: center; } @@ -618,12 +597,10 @@ display: flex; justify-content: space-between; align-items: center; - gap: 0.25rem 0.5rem; - flex-wrap: wrap; label { - font-size: var(--font-size-14); - font-weight: normal; + font-size: 16px; + font-family: @font-body; } .form-fields { @@ -631,21 +608,6 @@ gap: 4px; align-items: center; } - - &.setting-two-values { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 0.25rem 0.5rem; - - .form-group { - justify-content: end; - flex-wrap: nowrap; - } - - .hint { - grid-column: 1 / -1; - } - } } } @@ -713,6 +675,7 @@ .tagify__dropdown { border: 1px solid light-dark(@dark, @beige) !important; + font-family: @font-body; color: light-dark(@dark, @beige); .tagify__dropdown__wrapper { @@ -807,10 +770,11 @@ } .preview-text-container { + font-family: @font-body; padding: 10px 0; text-align: center; - font-size: var(--font-size-16); - color: @dark; + font-size: 16px; + color: light-dark(@beige, @dark); background-image: url(../assets/parchments/dh-parchment-light.png); border-radius: 0 0 4px 4px; } @@ -832,18 +796,19 @@ justify-content: center; .preview-add-icon { - font-size: var(--font-size-40); + font-size: 40px; color: light-dark(@dark-blue-50, @beige-50); } .preview-empty-subtext { position: absolute; bottom: 5%; - font-size: var(--font-size-10); + font-size: 10px; font-variant: small-caps; text-align: center; + font-family: @font-body; font-style: italic; - color: light-dark(@dark-blue, @beige-80); + color: light-dark(@dark-blue-60, @beige-80); } } } @@ -854,7 +819,7 @@ width: 54px; border-radius: 50%; border: 2px solid; - font-size: var(--font-size-48); + font-size: 48px; display: flex; align-items: center; justify-content: center; diff --git a/styles/less/global/feature-section.less b/styles/less/global/feature-section.less index 13feb92c..db1c117a 100644 --- a/styles/less/global/feature-section.less +++ b/styles/less/global/feature-section.less @@ -24,6 +24,7 @@ align-items: center; grid-template-columns: 1fr 4fr 1fr; h4 { + font-family: @font-body; font-weight: lighter; color: light-dark(@dark, @beige); } diff --git a/styles/less/global/filter-menu.less b/styles/less/global/filter-menu.less index 65a184f8..09962afb 100644 --- a/styles/less/global/filter-menu.less +++ b/styles/less/global/filter-menu.less @@ -12,6 +12,7 @@ padding: 5px; legend { + font-family: @font-body; font-weight: bold; color: light-dark(@dark-blue, @golden); font-size: var(--font-size-12); diff --git a/styles/less/global/global.less b/styles/less/global/global.less index 6cc63c2a..5bf32746 100644 --- a/styles/less/global/global.less +++ b/styles/less/global/global.less @@ -10,44 +10,3 @@ color: light-dark(@dark-blue-50, @beige-50); font-family: @font-body; } - -.daggerheart.dh-style { - .hint { - flex: 0 0 100%; - margin: 0; - color: var(--color-form-hint); - } - - .form-group:hover { - .hint { - color: var(--color-form-hint-hover); - } - } - - .daggerheart-loader { - position: relative; - overflow: hidden !important; - - div { - opacity: 0.5; - } - - &:before { - font-family: 'Font Awesome 6 Pro'; - content: '\f110'; - position: absolute; - height: 100%; - width: 100%; - display: flex; - align-items: center; - justify-content: center; - animation: spinner 1.5s linear infinite; - } - } - - @keyframes spinner { - to { - transform: rotate(360deg); - } - } -} diff --git a/styles/less/global/index.less b/styles/less/global/index.less index f51140de..db61304a 100644 --- a/styles/less/global/index.less +++ b/styles/less/global/index.less @@ -19,4 +19,3 @@ @import './filter-menu.less'; @import './tab-attachments.less'; @import './dice.less'; -@import './resource-bar.less'; diff --git a/styles/less/global/inventory-fieldset-items.less b/styles/less/global/inventory-fieldset-items.less index e1cd33a1..46343c0a 100644 --- a/styles/less/global/inventory-fieldset-items.less +++ b/styles/less/global/inventory-fieldset-items.less @@ -12,8 +12,7 @@ .card-list { display: flex; flex-direction: row; - flex-wrap: wrap; - gap: 6px; + gap: 10px; align-items: center; } } diff --git a/styles/less/global/inventory-item.less b/styles/less/global/inventory-item.less index c8a29795..c4239d27 100644 --- a/styles/less/global/inventory-item.less +++ b/styles/less/global/inventory-item.less @@ -14,7 +14,7 @@ } .appTheme({}, { - .inventory-item .img-portait .roll-img { + .inventory-item-header .img-portait .roll-img { filter: invert(1); } }); @@ -25,12 +25,14 @@ list-style-type: none; &:not(.single-img) { - .img-portait:has(.roll-img):hover { - .roll-img { - opacity: 1; - } - .item-img { - opacity: 0; + .inventory-item-header:hover { + .img-portait { + .roll-img { + opacity: 1; + } + .item-img { + opacity: 0; + } } } @@ -66,15 +68,18 @@ } } - .inventory-item-header, - &.inventory-item-compact { + .inventory-item-header { + display: flex; + align-items: center; + gap: 10px; + cursor: pointer; + border-radius: 3px; + .img-portait { flex: 0 0 40px; height: 40px; + cursor: pointer; position: relative; - &:has(.roll-img) { - cursor: pointer; - } .item-img, .roll-img { @@ -87,17 +92,61 @@ &.actor-img { border-radius: 50%; - object-position: top center; } } .roll-img { - object-fit: contain; opacity: 0; - padding: 2px; } } + .item-label { + flex: 1; + font-family: @font-body; + align-self: center; + + .item-name { + font-size: 14px; + + .expanded-icon { + display: none; + } + } + + .item-tags, + .item-labels { + display: flex; + gap: 10px; + + .tag, + .label { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + font-size: 12px; + } + + .tag { + padding: 3px 5px; + background: light-dark(@dark-15, @beige-15); + border: 1px solid light-dark(@dark, @beige); + border-radius: 3px; + } + + .label { + gap: 4px; + color: @beige-80; + } + } + } + + .item-resource { + flex: 0 0 60px; + display: flex; + align-items: center; + gap: 4px; + } .controls { flex: 0 0 auto; display: flex; @@ -116,57 +165,6 @@ } } - .inventory-item-header { - align-items: center; - border-radius: 3px; - cursor: pointer; - display: flex; - gap: 10px; - - &.padded { - padding-right: 8px; - } - - .item-label { - flex: 1; - align-self: stretch; - align-content: center; - - .item-name { - font-size: var(--font-size-14); - - .expanded-icon { - display: none; - } - } - - .item-tags { - display: flex; - gap: 10px; - - .tag { - align-items: center; - background: light-dark(@dark-15, @beige-15); - border-radius: 3px; - border: 1px solid light-dark(@dark, @beige); - display: flex; - flex-direction: row; - flex-wrap: wrap; - font-size: var(--font-size-12); - justify-content: start; - padding: 3px 5px; - } - } - } - - .item-resource { - flex: 0 0 60px; - display: flex; - align-items: center; - gap: 4px; - } - } - .inventory-item-content { > *:not(:last-child) { margin-bottom: 5px; @@ -182,18 +180,18 @@ overflow: hidden; h1 { - font-size: var(--font-size-32); + font-size: 32px; } h2 { - font-size: var(--font-size-28); + font-size: 28px; font-weight: 600; } h3 { - font-size: var(--font-size-20); + font-size: 20px; font-weight: 600; } h4 { - font-size: var(--font-size-16); + font-size: 16px; color: @beige; font-weight: 600; } @@ -204,6 +202,7 @@ padding: 0 0 0 1.25rem; li { + font-family: @font-body; margin-bottom: 0.25rem; } } @@ -234,7 +233,7 @@ label { color: light-dark(white, black); filter: drop-shadow(0 0 1px light-dark(@dark-blue, @golden)); - font-size: var(--font-size-18); + font-size: 18px; } img { @@ -246,52 +245,17 @@ text-shadow: 0 0 3px white; filter: drop-shadow(0 1px white); color: black; - font-size: 1.625rem; + font-size: 26px; } } } } - - &.inventory-item-compact { - display: grid; - grid-template: - 'img name controls' auto - 'img labels labels' 1fr - / 40px 1fr min-content; - column-gap: 8px; - - > .img-portait { - grid-area: img; - } - > .item-name { - align-self: end; - line-height: 1; - padding-bottom: 1px; - } - > .controls { - grid-area: controls; - align-self: start; - padding-top: 0.3125rem; - gap: 4px; - margin-bottom: -1px; - } - > .item-labels { - align-self: start; - color: light-dark(@dark-80, @beige-80); - display: flex; - flex-direction: row; - flex-wrap: wrap; - font-size: var(--font-size-12); - gap: 4px; - grid-area: labels; - } - } } .card-item { position: relative; height: 120px; - width: 98px; + width: 100px; border: 1px solid light-dark(@dark-blue, @golden); border-radius: 6px; cursor: pointer; @@ -344,14 +308,13 @@ background-color: @dark-blue; bottom: 0; mask-image: linear-gradient(180deg, transparent 0%, black 20%); - border-radius: 0 0 6px 6px; .card-name { + font-family: @font-body; font-style: normal; font-weight: 400; - font-size: var(--font-size-12); + font-size: 12px; line-height: 15px; - text-align: center; color: @beige; } @@ -391,7 +354,7 @@ gap: 4px; .resource-edit { - font-size: var(--font-size-14); + font-size: 14px; } } @@ -403,7 +366,7 @@ i { flex: none; - font-size: var(--font-size-14); + font-size: 14px; } input { @@ -423,7 +386,7 @@ color: light-dark(white, black); filter: drop-shadow(0 0 1px light-dark(@dark-blue, @golden)); z-index: 2; - font-size: var(--font-size-18); + font-size: 18px; cursor: pointer; } @@ -437,7 +400,7 @@ text-shadow: 0 0 3px white; filter: drop-shadow(0 1px white); color: black; - font-size: 1.625rem; + font-size: 26px; } } } diff --git a/styles/less/global/item-header.less b/styles/less/global/item-header.less index 073762e0..7b2c907f 100755 --- a/styles/less/global/item-header.less +++ b/styles/less/global/item-header.less @@ -35,7 +35,7 @@ width: 80%; .item-name input[type='text'] { - font-size: var(--font-size-32); + font-size: 32px; height: 42px; text-align: center; width: 90%; @@ -103,7 +103,7 @@ transition: all 0.3s ease; .recall-label { - font-size: var(--font-size-14); + font-size: 14px; opacity: 0; margin-right: 0.3rem; transition: all 0.3s ease; @@ -141,7 +141,7 @@ .item-name { input[type='text'] { - font-size: var(--font-size-32); + font-size: 32px; height: 42px; text-align: center; width: 90%; diff --git a/styles/less/global/prose-mirror.less b/styles/less/global/prose-mirror.less index 506fb8b7..5adf9d67 100644 --- a/styles/less/global/prose-mirror.less +++ b/styles/less/global/prose-mirror.less @@ -12,18 +12,18 @@ scrollbar-width: thin; scrollbar-color: light-dark(@dark-blue, @golden) transparent; h1 { - font-size: var(--font-size-32); + font-size: 32px; } h2 { - font-size: var(--font-size-28); + font-size: 28px; font-weight: 600; } h3 { - font-size: var(--font-size-20); + font-size: 20px; font-weight: 600; } h4 { - font-size: var(--font-size-16); + font-size: 16px; color: @beige; font-weight: 600; } @@ -34,6 +34,7 @@ padding: 0 0 0 1.25rem; li { + font-family: @font-body; margin-bottom: 0.25rem; } } diff --git a/styles/less/global/resource-bar.less b/styles/less/global/resource-bar.less deleted file mode 100644 index be9bc68b..00000000 --- a/styles/less/global/resource-bar.less +++ /dev/null @@ -1,178 +0,0 @@ -// Theme sidebar backgrounds -.appTheme({ - .slot-value .slot-bar { - background: @dark-blue; - } -}, { - .slot-value .slot-bar { - background-image: url('../assets/parchments/dh-parchment-light.png'); - } -}); - -.status-bar { - display: flex; - justify-content: center; - position: relative; - width: 120px; - height: 40px; - - .status-label { - position: relative; - top: 40px; - height: 22px; - width: 79px; - clip-path: path('M0 0H79L74 16.5L39 22L4 16.5L0 0Z'); - background: light-dark(@dark-blue, @golden); - - h4 { - font-weight: bold; - text-align: center; - line-height: 18px; - color: light-dark(@beige, @dark-blue); - } - } - .slot-value { - position: absolute; - display: flex; - flex-direction: column; - padding: 0 5px; - font-size: 1.5rem; - align-items: center; - width: 140px; - height: 40px; - justify-content: center; - text-align: center; - z-index: 2; - color: @beige; - - .slot-bar { - display: flex; - flex-wrap: wrap; - gap: 5px; - padding: 5px; - border: 1px solid light-dark(@dark-blue, @golden); - border-radius: 6px; - z-index: 1; - color: light-dark(@dark-blue, @golden); - width: fit-content; - - .slot { - width: 15px; - height: 10px; - border: 1px solid light-dark(@dark-blue, @golden); - background: light-dark(@dark-blue-10, @golden-10); - border-radius: 3px; - transition: all 0.3s ease; - cursor: pointer; - - &.large { - width: 20px; - } - - &.filled { - background: light-dark(@dark-blue, @golden); - } - } - - .empty-slot { - width: 15px; - height: 10px; - } - } - .slot-label { - display: flex; - align-items: center; - color: light-dark(@beige, @dark-blue); - background: light-dark(@dark-blue, @golden); - padding: 0 5px; - width: fit-content; - font-weight: bold; - border-radius: 0px 0px 5px 5px; - font-size: var(--font-size-12); - - .label { - padding-right: 5px; - } - - .value { - padding-left: 6px; - border-left: 1px solid light-dark(@beige, @dark-golden); - } - } - } - - .status-value { - position: absolute; - display: flex; - padding: 0 5px; - font-size: 1.5rem; - align-items: center; - width: 140px; - height: 40px; - justify-content: center; - text-align: center; - z-index: 2; - color: @beige; - - input[type='number'] { - background: transparent; - font-size: 1.5rem; - width: 40px; - height: 30px; - text-align: center; - border: none; - outline: 2px solid transparent; - color: @beige; - - &.bar-input { - padding: 0; - color: @beige; - backdrop-filter: none; - background: transparent; - transition: all 0.3s ease; - - &:hover, - &:focus { - background: @semi-transparent-dark-blue; - backdrop-filter: blur(9.5px); - } - } - } - - .bar-label { - width: 40px; - } - } - .progress-bar { - position: absolute; - appearance: none; - width: 100px; - height: 40px; - border: 1px solid light-dark(@dark-blue, @golden); - border-radius: 6px; - z-index: 1; - background: @dark-blue; - - &::-webkit-progress-bar { - border: none; - background: @dark-blue; - border-radius: 6px; - } - &::-webkit-progress-value { - background: @gradient-hp; - border-radius: 6px; - } - &.stress-color::-webkit-progress-value { - background: @gradient-stress; - border-radius: 6px; - } - &::-moz-progress-bar { - background: @gradient-hp; - border-radius: 6px; - } - &.stress-color::-moz-progress-bar { - background: @gradient-stress; - border-radius: 6px; - } - } -} diff --git a/styles/less/global/sheet.less b/styles/less/global/sheet.less index 1e7bad0a..172f0113 100755 --- a/styles/less/global/sheet.less +++ b/styles/less/global/sheet.less @@ -4,24 +4,12 @@ // Theme handling .appTheme({ - background: @dark-blue-90; - backdrop-filter: blur(8px); + background: @dark-blue-60; + backdrop-filter: blur(10px); }, { background: url('../assets/parchments/dh-parchment-light.png') no-repeat center; }); -body.game:is(.performance-low, .noblur) { - .themed.theme-dark .application.daggerheart.sheet.dh-style, - .themed.theme-dark.application.daggerheart.sheet.dh-style, - &.theme-dark .application.daggerheart { - &.adversary, - &.character, - &.item { - background: @dark-blue; - } - } -} - .application.sheet.dh-style { border-radius: 10px; diff --git a/styles/less/global/tab-actions.less b/styles/less/global/tab-actions.less index 31129c99..0617016d 100644 --- a/styles/less/global/tab-actions.less +++ b/styles/less/global/tab-actions.less @@ -26,6 +26,7 @@ } h4 { + font-family: @font-body; font-weight: lighter; color: @beige; } diff --git a/styles/less/global/tab-description.less b/styles/less/global/tab-description.less index 5c18e02b..4d81f2f2 100644 --- a/styles/less/global/tab-description.less +++ b/styles/less/global/tab-description.less @@ -1,16 +1,13 @@ -@import '../utils/colors.less'; -@import '../utils/fonts.less'; - -.daggerheart.dh-style { - .tab.active.description { - display: flex; - flex-direction: column; - flex: 1; - overflow-y: hidden !important; - padding-top: 10px; - - prose-mirror.active + .artist-attribution { - display: none; - } - } -} +@import '../utils/colors.less'; +@import '../utils/fonts.less'; + +.daggerheart.dh-style { + .tab.active.description { + overflow-y: hidden !important; + height: -webkit-fill-available !important; + + fieldset { + height: -webkit-fill-available; + } + } +} diff --git a/styles/less/global/tab-effects.less b/styles/less/global/tab-effects.less index b4540f01..0c34a3ea 100644 --- a/styles/less/global/tab-effects.less +++ b/styles/less/global/tab-effects.less @@ -19,6 +19,7 @@ cursor: pointer; h4 { + font-family: @font-body; font-weight: lighter; color: @beige; } diff --git a/styles/less/global/tab-features.less b/styles/less/global/tab-features.less index c483ae88..91335fd5 100644 --- a/styles/less/global/tab-features.less +++ b/styles/less/global/tab-features.less @@ -26,6 +26,7 @@ } h4 { + font-family: @font-body; font-weight: lighter; color: @beige; } diff --git a/styles/less/global/tab-navigation.less b/styles/less/global/tab-navigation.less index 3f8844f2..53295b63 100755 --- a/styles/less/global/tab-navigation.less +++ b/styles/less/global/tab-navigation.less @@ -21,6 +21,7 @@ a { color: light-dark(@dark-blue, @golden); + font-family: @font-body; } } } diff --git a/styles/less/hud/token-hud/token-hud.less b/styles/less/hud/token-hud/token-hud.less index 46003975..7d231e8c 100644 --- a/styles/less/hud/token-hud/token-hud.less +++ b/styles/less/hud/token-hud/token-hud.less @@ -1,21 +1,3 @@ -.theme-light .daggerheart.placeable-hud { - .status-effects { - .effect-control { - filter: none; - } - - .effect-control-container { - .effect-control { - filter: none; - } - - .effect-control-disabled-marker { - color: @red; - } - } - } -} - .daggerheart.placeable-hud { .col.right { .palette { @@ -24,43 +6,5 @@ font-weight: bold; } } - - .clown-car img { - transition: 0.5s; - - &.flipped { - transform: scaleX(-1); - } - } - } - - .status-effects { - .effect-control-container { - position: relative; - - .effect-control-disabled-marker { - position: absolute; - height: 100%; - width: 100%; - top: -1px; - left: 1px; - color: @medium-red; - font-weight: 700; - font-size: 2.1em; - rotate: 29deg; - display: flex; - align-items: center; - justify-content: center; - } - - .effect-locked { - position: absolute; - bottom: 2px; - left: 11.5px; - font-size: 12px; - color: @golden; - filter: drop-shadow(0 0 3px black); - } - } } } diff --git a/styles/less/sheets-settings/adversary-settings/features.less b/styles/less/sheets-settings/adversary-settings/features.less index 4e0f6a8f..29c9874e 100644 --- a/styles/less/sheets-settings/adversary-settings/features.less +++ b/styles/less/sheets-settings/adversary-settings/features.less @@ -14,10 +14,11 @@ margin-bottom: 12px; } - .feature-list, + .feature-list, .features-dragger { display: flex; width: 100%; + font-family: @font-body; } .feature-list { @@ -37,6 +38,10 @@ object-fit: cover; } + .label { + font-family: @font-body; + } + .controls { display: flex; gap: 5px; diff --git a/styles/less/sheets-settings/character-settings/sheet.less b/styles/less/sheets-settings/character-settings/sheet.less index f0c7c94e..43103fc7 100644 --- a/styles/less/sheets-settings/character-settings/sheet.less +++ b/styles/less/sheets-settings/character-settings/sheet.less @@ -1,5 +1,3 @@ -@import '../../utils/colors.less'; - .theme-light .application.daggerheart.dh-style.dialog { .tab.details { .traits-inner-container .trait-container { @@ -33,7 +31,8 @@ div { filter: drop-shadow(0 0 3px black); text-shadow: 0 0 3px black; - font-size: var(--font-size-12); + font-family: @font-body; + font-size: 12px; } input { diff --git a/styles/less/sheets-settings/environment-settings/features.less b/styles/less/sheets-settings/environment-settings/features.less index d907837a..f2a9583a 100644 --- a/styles/less/sheets-settings/environment-settings/features.less +++ b/styles/less/sheets-settings/environment-settings/features.less @@ -32,6 +32,10 @@ border-radius: 3px; } + .label { + font-family: @font-body; + } + .controls { display: flex; gap: 5px; diff --git a/styles/less/sheets-settings/header.less b/styles/less/sheets-settings/header.less index 82f3c488..6ac2663f 100644 --- a/styles/less/sheets-settings/header.less +++ b/styles/less/sheets-settings/header.less @@ -10,7 +10,7 @@ font-family: @font-subtitle; font-style: normal; font-weight: 700; - font-size: var(--font-size-24); + font-size: 24px; margin: 0; text-align: center; color: light-dark(@dark-blue, @golden); diff --git a/styles/less/sheets/actors/actor-sheet-shared.less b/styles/less/sheets/actors/actor-sheet-shared.less index bf6393f4..91a2323f 100644 --- a/styles/less/sheets/actors/actor-sheet-shared.less +++ b/styles/less/sheets/actors/actor-sheet-shared.less @@ -1,227 +1,8 @@ -@import '../../utils/fonts.less'; -@import '../../utils/colors.less'; -@import '../../utils/mixin.less'; - -.appTheme({ - .limited-container { - .domains-section img { - filter: @golden-filter; - } - } -}, { - .limited-container { - - .domains-section img { - filter: brightness(0) saturate(100%); - } - } -}); .application.sheet.daggerheart.actor.dh-style { - .portrait img, - .profile { + .portrait img, .profile { width: 100%; object-fit: cover; object-position: top center; } - - &.minimized { - .attribution-header-label { - display: none; - } - } - - .attribution-header-label { - font-style: italic; - font-family: @font-body; - color: light-dark(@chat-blue-bg, @beige-50); - } - - &.limited { - &.character, - &.adversary, - &.environment, - &.companion { - .window-content { - display: unset; - padding-bottom: 20px; - background-image: url('../assets/parchments/dh-parchment-dark.png'); - } - - .limited-container { - width: 100%; - padding-top: var(--header-height); - display: flex; - flex-direction: column; - gap: 8px; - - header { - position: relative; - width: 100%; - display: flex; - flex-direction: column; - align-items: center; - top: -36px; - margin-bottom: -30px; - - .profile { - width: 100%; - max-height: 275px; - max-width: 360px; - mask-image: linear-gradient(0deg, transparent 0%, black 10%); - } - - .title-name { - text-align: start; - font-size: var(--font-size-28); - color: light-dark(@dark-blue, @golden); - text-align: center; - } - } - - .character-details { - display: flex; - flex-direction: column; - gap: 5px; - - .basic-info, - .multiclass { - text-align: center; - padding: 0 10px; - } - } - - .domain-details, - .bio-details, - .partner-details { - margin-top: 10px; - - .domain-header, - .bio-header, - .partner-header { - display: flex; - align-items: center; - padding: 0 10px; - gap: 10px; - - h3 { - font-size: var(--font-size-20); - } - } - - .items-list { - padding: 0 20px; - } - - .partner-placeholder { - display: flex; - opacity: 0.6; - text-align: center; - font-style: italic; - justify-content: center; - padding: 10px 0; - } - - .domains-section { - position: relative; - display: flex; - gap: 10px; - background-color: light-dark(transparent, @dark-blue); - color: light-dark(@dark-blue, @golden); - padding: 5px 10px; - border: 1px solid light-dark(@dark-blue, @golden); - border-radius: 6px; - align-items: center; - width: fit-content; - height: 30px; - place-self: center; - margin-top: 10px; - - h4 { - font-size: var(--font-size-14); - font-weight: bold; - text-transform: uppercase; - color: light-dark(@dark-blue, @golden); - } - - .domain { - display: flex; - align-items: center; - gap: 5px; - - .label { - font-size: var(--font-size-14); - font-weight: bold; - text-transform: uppercase; - color: light-dark(@dark-blue, @golden); - } - - img { - height: 20px; - width: 20px; - } - } - } - - .bio-list { - display: flex; - gap: 20px; - flex-wrap: wrap; - justify-content: center; - margin-top: 10px; - - .bio-info { - display: flex; - flex-direction: column; - align-items: center; - padding: 10px; - border-radius: 5px; - min-width: 90px; - color: light-dark(@dark-blue, @golden); - background-color: light-dark(@dark-blue-10, @golden-40); - } - } - } - - .level-details { - align-self: center; - } - - .description { - font-style: italic; - text-align: center; - padding: 0 20px; - } - - .tags { - display: flex; - gap: 10px; - padding-bottom: 10px; - justify-content: center; - - .tag { - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - padding: 3px 5px; - font-size: var(--font-size-12); - font: @font-body; - - background: light-dark(@dark-15, @beige-15); - border: 1px solid light-dark(@dark, @beige); - border-radius: 3px; - } - - .label { - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - font-size: var(--font-size-12); - } - } - } - } - } -} +} \ No newline at end of file diff --git a/styles/less/sheets/actors/adversary/effects.less b/styles/less/sheets/actors/adversary/effects.less deleted file mode 100644 index 4afe2454..00000000 --- a/styles/less/sheets/actors/adversary/effects.less +++ /dev/null @@ -1,17 +0,0 @@ -@import '../../../utils/colors.less'; - -.application.sheet.daggerheart.actor.dh-style.adversary { - .tab.effects { - .effects-sections { - display: flex; - flex-direction: column; - gap: 10px; - overflow-y: auto; - mask-image: linear-gradient(0deg, transparent 0%, black 5%); - padding-bottom: 20px; - - scrollbar-width: thin; - scrollbar-color: light-dark(@dark-blue, @golden) transparent; - } - } -} diff --git a/styles/less/sheets/actors/adversary/header.less b/styles/less/sheets/actors/adversary/header.less index 8bd3fcee..e9306af6 100644 --- a/styles/less/sheets/actors/adversary/header.less +++ b/styles/less/sheets/actors/adversary/header.less @@ -12,19 +12,18 @@ gap: 5px; align-items: center; justify-content: space-between; - padding: 8px 0; + padding: 0; + padding-top: 5px; + padding-bottom: 8px; flex: 1; - h1 { - display: flex; - flex: 1; - padding: 6px 0 0 0; - font-size: var(--font-size-32); + input[type='text'] { + font-size: 32px; + height: 42px; text-align: start; border: 1px solid transparent; outline: 2px solid transparent; transition: all 0.3s ease; - word-break: break-word; &:hover { outline: 2px solid light-dark(@dark, @golden); @@ -40,11 +39,10 @@ .tag { display: flex; flex-direction: row; - gap: 4px; justify-content: center; align-items: center; padding: 3px 5px; - font-size: var(--font-size-12); + font-size: 12px; font: @font-body; background: light-dark(@dark-15, @beige-15); @@ -57,7 +55,7 @@ flex-direction: row; justify-content: center; align-items: center; - font-size: var(--font-size-12); + font-size: 12px; } } @@ -66,6 +64,11 @@ flex-direction: column; gap: 12px; padding: 16px 0; + + .description, + .motives-and-tatics { + font-family: @font-body; + } } .adversary-navigation { diff --git a/styles/less/sheets/actors/adversary/sidebar.less b/styles/less/sheets/actors/adversary/sidebar.less index 4e7535c1..cd58ab8c 100644 --- a/styles/less/sheets/actors/adversary/sidebar.less +++ b/styles/less/sheets/actors/adversary/sidebar.less @@ -74,7 +74,7 @@ height: 30px; h4 { - font-size: var(--font-size-14); + font-size: 14px; font-weight: bold; text-transform: uppercase; color: light-dark(@dark-blue, @golden); @@ -109,14 +109,6 @@ gap: 16px; margin-bottom: -10px; - &.pip-display { - top: -15px; - - .resources-section { - justify-content: space-around; - } - } - .resources-section { display: flex; justify-content: space-evenly; @@ -263,7 +255,7 @@ font-weight: bold; text-align: center; line-height: 18px; - font-size: var(--font-size-12); + font-size: 12px; color: light-dark(@beige, @dark-blue); } } @@ -278,7 +270,7 @@ margin-bottom: 10px; .inventory-item { - padding-left: 10px; + padding: 0 10px; } } @@ -287,11 +279,10 @@ padding-top: 10px; padding-bottom: 20px; mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%); - scrollbar-width: thin; - scrollbar-gutter: stable; &:hover { overflow-y: auto; + scrollbar-width: thin; scrollbar-color: light-dark(@dark-blue, @golden) transparent; } } @@ -303,7 +294,7 @@ align-items: center; h3 { - font-size: var(--font-size-20); + font-size: 20px; } } .items-list { @@ -323,7 +314,7 @@ align-items: center; h3 { - font-size: var(--font-size-20); + font-size: 20px; } } @@ -344,20 +335,18 @@ .experience-name { width: 180px; - display: flex; - align-items: center; text-align: start; - font-size: var(--font-size-14); + font-size: 14px; + font-family: @font-body; color: light-dark(@dark, @beige); - line-height: 1; } } .experience-value { height: 25px; width: 35px; - min-width: 35px; - font-size: var(--font-size-14); + font-size: 14px; + font-family: @font-body; color: light-dark(@dark, @beige); align-content: center; text-align: center; @@ -379,6 +368,7 @@ button { height: 40px; width: 100%; + font-family: @font-body; font-weight: 600; } } diff --git a/styles/less/sheets/actors/character/biography.less b/styles/less/sheets/actors/character/biography.less index 12a662ff..e07d7080 100644 --- a/styles/less/sheets/actors/character/biography.less +++ b/styles/less/sheets/actors/character/biography.less @@ -10,30 +10,11 @@ height: 100%; overflow-y: auto; mask-image: linear-gradient(0deg, transparent 0%, black 10%, black 98%, transparent 100%); - padding-bottom: 10px; + padding-bottom: 40px; height: 100%; scrollbar-width: thin; scrollbar-color: light-dark(@dark-blue, @golden) transparent; } - - .biography-section { - prose-mirror { - --min-height: 50px; - } - - prose-mirror.inactive .editor-content { - position: relative; - } - } - - &:has(.prosemirror.active) { - .biography-section { - flex: 1; - &:not(:has(prose-mirror.active)) { - display: none; - } - } - } } } diff --git a/styles/less/sheets/actors/character/header.less b/styles/less/sheets/actors/character/header.less index 93d6c6be..7bfcc7c9 100644 --- a/styles/less/sheets/actors/character/header.less +++ b/styles/less/sheets/actors/character/header.less @@ -34,22 +34,19 @@ .name-row { display: flex; gap: 5px; - align-items: start; + align-items: end; justify-content: space-between; padding: 0; padding-top: 5px; flex: 1; - h1 { - display: flex; - flex: 1; - padding: 6px 0 0 0; - font-size: var(--font-size-32); + input[type='text'] { + font-size: 32px; + height: 42px; text-align: start; border: 1px solid transparent; outline: 2px solid transparent; transition: all 0.3s ease; - word-break: break-word; &:hover { outline: 2px solid light-dark(@dark, @golden); @@ -60,8 +57,6 @@ white-space: nowrap; display: flex; justify-content: end; - height: var(--font-size-32); - margin-top: 6px; .label { display: flex; @@ -77,7 +72,7 @@ .level-button { color: light-dark(@dark, @beige); - font-size: var(--font-size-18); + font-size: 18px; line-height: 1; min-height: unset; height: min-content; @@ -102,7 +97,7 @@ justify-content: space-between; padding: 5px 0; margin-bottom: 10px; - font-size: var(--font-size-12); + font-size: 12px; color: light-dark(@dark-blue, @golden); .missing-header-feature { @@ -145,11 +140,6 @@ button { flex: 1; - padding: 0 0.375rem; - } - - button[data-action=viewParty] { - margin-right: 6px; } } @@ -168,7 +158,7 @@ height: 30px; h4 { - font-size: var(--font-size-14); + font-size: 14px; font-weight: bold; text-transform: uppercase; color: light-dark(@dark-blue, @golden); @@ -180,7 +170,7 @@ gap: 5px; .label { - font-size: var(--font-size-14); + font-size: 14px; font-weight: bold; text-transform: uppercase; color: light-dark(@dark-blue, @golden); @@ -215,7 +205,7 @@ align-items: center; padding-top: 5px; color: light-dark(@dark-blue, @golden); - font-size: var(--font-size-14); + font-size: 14px; font-weight: 600; align-items: center; justify-content: center; @@ -223,14 +213,15 @@ i { line-height: 17px; - font-size: var(--font-size-10); + font-size: 10px; } } .trait-value { + font-family: @font-body; font-style: normal; font-weight: 400; - font-size: var(--font-size-20); + font-size: 20px; text-align: center; } } diff --git a/styles/less/sheets/actors/character/inventory.less b/styles/less/sheets/actors/character/inventory.less index b555aa3d..d8c225ad 100644 --- a/styles/less/sheets/actors/character/inventory.less +++ b/styles/less/sheets/actors/character/inventory.less @@ -16,6 +16,7 @@ input { border-radius: 50px; + font-family: @font-body; background: light-dark(@dark-blue-10, @golden-10); border: none; outline: 2px solid transparent; @@ -37,7 +38,7 @@ height: 32px; position: absolute; right: 20px; - font-size: var(--font-size-16); + font-size: 16px; z-index: 1; color: light-dark(@dark-blue-50, @beige-50); } @@ -57,12 +58,11 @@ } .currency-section { - display: grid; - grid-template-columns: 1fr 1fr 1fr 1fr; + display: flex; gap: 10px; padding: 10px 10px 0; - .input { + input { color: light-dark(@dark, @beige); } } diff --git a/styles/less/sheets/actors/character/loadout.less b/styles/less/sheets/actors/character/loadout.less index eba55890..24a53959 100644 --- a/styles/less/sheets/actors/character/loadout.less +++ b/styles/less/sheets/actors/character/loadout.less @@ -16,6 +16,7 @@ input { border-radius: 50px; + font-family: @font-body; background: light-dark(@dark-blue-10, @golden-10); border: none; outline: 2px solid transparent; @@ -37,7 +38,7 @@ height: 32px; position: absolute; right: 20px; - font-size: var(--font-size-16); + font-size: 16px; z-index: 1; color: light-dark(@dark-blue-50, @beige-50); } diff --git a/styles/less/sheets/actors/character/sheet.less b/styles/less/sheets/actors/character/sheet.less index ee6580fd..68792c99 100644 --- a/styles/less/sheets/actors/character/sheet.less +++ b/styles/less/sheets/actors/character/sheet.less @@ -11,21 +11,6 @@ padding-bottom: 0; overflow-x: auto; - &.viewMode { - button:not(.btn-toggle-view), - input:not(.search), - .controls, - .character-sidebar-sheet, - .img-portait, - .name-row, - .hope-section, - .downtime-section, - .character-traits, - .card-list { - pointer-events: none; - } - } - .character-sidebar-sheet { grid-row: 1 / span 2; grid-column: 1; diff --git a/styles/less/sheets/actors/character/sidebar.less b/styles/less/sheets/actors/character/sidebar.less index 04baf2b9..b8069aef 100644 --- a/styles/less/sheets/actors/character/sidebar.less +++ b/styles/less/sheets/actors/character/sidebar.less @@ -6,16 +6,9 @@ .appTheme({ .character-sidebar-sheet { background-image: url('../assets/parchments/dh-parchment-dark.png'); - .experience-value { background: url(../assets/svg/experience-shield.svg) no-repeat; } - - .info-section .status-section .status-bar.armor-slots { - .slot-value .slot-bar { - background: @dark-blue; - } - } } }, { &.sheet.actor.dh-style.character .character-sidebar-sheet { @@ -28,12 +21,6 @@ .portrait.death-roll .death-roll-btn { filter: brightness(0) drop-shadow(0 0 3px @dark-blue); } - - .info-section .status-section .status-bar.armor-slots { - .slot-value .slot-bar { - background-image: url('../assets/parchments/dh-parchment-light.png'); - } - } } }); @@ -102,7 +89,7 @@ transition: all 0.3s ease; .spellcast-label { - font-size: var(--font-size-14); + font-size: 14px; opacity: 0; margin-right: 0.3rem; transition: all 0.3s ease; @@ -140,15 +127,6 @@ gap: 10px; margin-bottom: -16px; - &.pip-display { - gap: 15px; - - .resources-section { - justify-content: space-around; - margin: 8px 2px 8px 2px; - } - } - .resources-section { display: flex; justify-content: space-evenly; @@ -158,7 +136,7 @@ display: flex; justify-content: center; position: relative; - width: 120px; + width: 100px; height: 40px; .status-label { @@ -176,14 +154,13 @@ color: light-dark(@beige, @dark-blue); } } - .status-value { position: absolute; display: flex; - padding: 0 5px; + padding: 0 6px; font-size: 1.5rem; align-items: center; - width: 140px; + width: 100px; height: 40px; justify-content: center; text-align: center; @@ -260,28 +237,6 @@ gap: 5px; justify-content: center; - &.pip-display { - align-items: end; - - .status-bar.armor-slots { - width: 100px; - height: auto; - - .slot-value { - position: relative; - height: auto; - - .slot-bar { - border-radius: 6px 6px 0 0; - } - } - - .status-value { - padding: 0 5px; - } - } - } - .status-bar.armor-slots { display: flex; justify-content: center; @@ -297,74 +252,13 @@ width: 95px; border-radius: 3px; background: light-dark(@dark-blue, @golden); - clip-path: none; h4 { font-weight: bold; text-align: center; line-height: 18px; color: light-dark(@beige, @dark-blue); - font-size: var(--font-size-12); - } - } - .slot-value { - position: absolute; - display: flex; - padding: 0 5px; - font-size: 1.2rem; - align-items: center; - width: 80px; - height: 30px; - justify-content: center; - text-align: center; - z-index: 2; - color: light-dark(@dark-blue, @beige); - flex-direction: column; - - .slot-bar { - display: flex; - flex-wrap: wrap; - gap: 4px; - padding: 5px; - border: 1px solid light-dark(@dark-blue, @golden); - border-radius: 6px; - z-index: 1; - background: @dark-blue; - justify-content: center; - color: light-dark(@dark-blue, @golden); - - .armor-slot { - cursor: pointer; - transition: all 0.3s ease; - font-size: var(--font-size-12); - - .fa-shield-halved { - color: light-dark(@dark-blue-40, @golden-40); - } - } - } - .slot-label { - display: flex; - align-items: center; - color: light-dark(@beige, @dark-blue); - background: light-dark(@dark-blue, @golden); - padding: 0 5px; - width: 120%; - font-weight: bold; - border-radius: 5px; - font-size: var(--font-size-12); - flex-wrap: wrap; - justify-content: center; - - .label { - padding-right: 1px; - border-bottom: 1px solid @dark-golden; - } - - .value { - padding-left: 6px; - border-left: 0; - } + font-size: 12px; } } .status-value { @@ -398,6 +292,8 @@ color: light-dark(@dark-blue, @beige); backdrop-filter: none; background: transparent; + transition: all 0.3s ease; + &:hover, &:focus { background: @semi-transparent-dark-blue; @@ -410,6 +306,7 @@ width: 30px; } } + .progress-bar { position: absolute; appearance: none; @@ -421,6 +318,7 @@ background: light-dark(transparent, @dark-blue); border-bottom: none; border-radius: 6px 6px 0 0; + &::-webkit-progress-bar { border: none; background: light-dark(transparent, @dark-blue); @@ -504,7 +402,7 @@ font-weight: bold; text-align: center; line-height: 18px; - font-size: var(--font-size-12); + font-size: 12px; color: light-dark(@beige, @dark-blue); } } @@ -526,7 +424,7 @@ height: 30px; h4 { - font-size: var(--font-size-14); + font-size: 14px; font-weight: bold; text-transform: uppercase; color: light-dark(@dark-blue, @golden); @@ -545,7 +443,7 @@ margin-bottom: 10px; .inventory-item { - padding-left: 10px; + padding: 0 10px; } } @@ -554,11 +452,10 @@ padding-top: 10px; padding-bottom: 20px; mask-image: linear-gradient(0deg, transparent 0%, black 5%); - scrollbar-gutter: stable; - scrollbar-width: thin; &:hover { overflow-y: auto; + scrollbar-width: thin; scrollbar-color: light-dark(@dark-blue, @golden) transparent; } } @@ -592,20 +489,14 @@ .experience-value { height: 25px; width: 35px; - min-width: 35px; - font-size: var(--font-size-14); + font-size: 14px; + font-family: @font-body; color: light-dark(@dark, @beige); align-content: center; text-align: center; margin-right: 5px; } - .experience-name { - display: flex; - align-items: center; - line-height: 1; - } - .controls { margin-left: auto; } diff --git a/styles/less/sheets/actors/companion/details.less b/styles/less/sheets/actors/companion/details.less index 2e43cac4..47b5873d 100644 --- a/styles/less/sheets/actors/companion/details.less +++ b/styles/less/sheets/actors/companion/details.less @@ -16,7 +16,7 @@ width: 100%; h3 { - font-size: var(--font-size-20); + font-size: 20px; } } .items-list { @@ -57,11 +57,9 @@ .experience-name { width: 180px; - display: flex; - align-items: center; - line-height: 1; text-align: start; - font-size: var(--font-size-14); + font-size: 14px; + font-family: @font-body; color: light-dark(@dark, @beige); } } @@ -69,8 +67,8 @@ .experience-value { height: 25px; width: 35px; - min-width: 35px; - font-size: var(--font-size-14); + font-size: 14px; + font-family: @font-body; color: light-dark(@dark, @beige); align-content: center; text-align: center; @@ -81,17 +79,4 @@ } } } - - .action-section { - display: flex; - padding: 0 10px; - margin-top: 20px; - width: 100%; - - button { - height: 40px; - width: 100%; - font-weight: 600; - } - } } diff --git a/styles/less/sheets/actors/companion/effects.less b/styles/less/sheets/actors/companion/effects.less deleted file mode 100644 index 12e1d847..00000000 --- a/styles/less/sheets/actors/companion/effects.less +++ /dev/null @@ -1,17 +0,0 @@ -@import '../../../utils/colors.less'; - -.application.sheet.daggerheart.actor.dh-style.companion { - .tab.effects { - .effects-sections { - display: flex; - flex-direction: column; - gap: 10px; - overflow-y: auto; - mask-image: linear-gradient(0deg, transparent 0%, black 5%); - padding-bottom: 20px; - - scrollbar-width: thin; - scrollbar-color: light-dark(@dark-blue, @golden) transparent; - } - } -} diff --git a/styles/less/sheets/actors/companion/header.less b/styles/less/sheets/actors/companion/header.less index 3616a6b3..240f9df8 100644 --- a/styles/less/sheets/actors/companion/header.less +++ b/styles/less/sheets/actors/companion/header.less @@ -24,7 +24,7 @@ margin-bottom: -30px; input[type='text'] { - font-size: var(--font-size-24); + font-size: 24px; height: 32px; text-align: center; border: 1px solid transparent; @@ -37,22 +37,11 @@ } } - .resource-section { - width: 100%; - display: flex; - justify-content: center; - } - .status-section { display: flex; gap: 5px; justify-content: center; - &.pip-display { - width: 100%; - justify-content: space-around; - } - .status-number { display: flex; flex-direction: column; @@ -89,109 +78,109 @@ font-weight: bold; text-align: center; line-height: 18px; - font-size: var(--font-size-12); + font-size: 12px; color: light-dark(@beige, @dark-blue); } } } - // .status-bar { - // display: flex; - // justify-content: center; - // position: relative; - // width: 100px; - // height: 40px; + .status-bar { + display: flex; + justify-content: center; + position: relative; + width: 100px; + height: 40px; - // .status-label { - // position: relative; - // top: 40px; - // height: 22px; - // width: 79px; - // clip-path: path('M0 0H79L74 16.5L39 22L4 16.5L0 0Z'); - // background: light-dark(@dark-blue, @golden); + .status-label { + position: relative; + top: 40px; + height: 22px; + width: 79px; + clip-path: path('M0 0H79L74 16.5L39 22L4 16.5L0 0Z'); + background: light-dark(@dark-blue, @golden); - // h4 { - // font-weight: bold; - // text-align: center; - // line-height: 18px; - // color: light-dark(@beige, @dark-blue); - // } - // } - // .status-value { - // position: absolute; - // display: flex; - // padding: 0 6px; - // font-size: 1.5rem; - // align-items: center; - // width: 100px; - // height: 40px; - // justify-content: center; - // text-align: center; - // z-index: 2; - // color: @beige; + h4 { + font-weight: bold; + text-align: center; + line-height: 18px; + color: light-dark(@beige, @dark-blue); + } + } + .status-value { + position: absolute; + display: flex; + padding: 0 6px; + font-size: 1.5rem; + align-items: center; + width: 100px; + height: 40px; + justify-content: center; + text-align: center; + z-index: 2; + color: @beige; - // input[type='number'] { - // background: transparent; - // font-size: 1.5rem; - // width: 40px; - // height: 30px; - // text-align: center; - // border: none; - // outline: 2px solid transparent; - // color: @beige; + input[type='number'] { + background: transparent; + font-size: 1.5rem; + width: 40px; + height: 30px; + text-align: center; + border: none; + outline: 2px solid transparent; + color: @beige; - // &.bar-input { - // padding: 0; - // color: @beige; - // backdrop-filter: none; - // background: transparent; - // transition: all 0.3s ease; + &.bar-input { + padding: 0; + color: @beige; + backdrop-filter: none; + background: transparent; + transition: all 0.3s ease; - // &:hover, - // &:focus { - // background: @semi-transparent-dark-blue; - // backdrop-filter: blur(9.5px); - // } - // } - // } + &:hover, + &:focus { + background: @semi-transparent-dark-blue; + backdrop-filter: blur(9.5px); + } + } + } - // .bar-label { - // width: 40px; - // } - // } - // .progress-bar { - // position: absolute; - // appearance: none; - // width: 100px; - // height: 40px; - // border: 1px solid light-dark(@dark-blue, @golden); - // border-radius: 6px; - // z-index: 1; - // background: @dark-blue; + .bar-label { + width: 40px; + } + } + .progress-bar { + position: absolute; + appearance: none; + width: 100px; + height: 40px; + border: 1px solid light-dark(@dark-blue, @golden); + border-radius: 6px; + z-index: 1; + background: @dark-blue; - // &::-webkit-progress-bar { - // border: none; - // background: @dark-blue; - // border-radius: 6px; - // } - // &::-webkit-progress-value { - // background: @gradient-hp; - // border-radius: 6px; - // } - // &.stress-color::-webkit-progress-value { - // background: @gradient-stress; - // border-radius: 6px; - // } - // &::-moz-progress-bar { - // background: @gradient-hp; - // border-radius: 6px; - // } - // &.stress-color::-moz-progress-bar { - // background: @gradient-stress; - // border-radius: 6px; - // } - // } - // } + &::-webkit-progress-bar { + border: none; + background: @dark-blue; + border-radius: 6px; + } + &::-webkit-progress-value { + background: @gradient-hp; + border-radius: 6px; + } + &.stress-color::-webkit-progress-value { + background: @gradient-stress; + border-radius: 6px; + } + &::-moz-progress-bar { + background: @gradient-hp; + border-radius: 6px; + } + &.stress-color::-moz-progress-bar { + background: @gradient-stress; + border-radius: 6px; + } + } + } .level-div { white-space: nowrap; @@ -220,7 +209,7 @@ .level-button { color: light-dark(@dark, @beige); - font-size: var(--font-size-18); + font-size: 18px; line-height: 1; min-height: unset; height: min-content; diff --git a/styles/less/sheets/actors/environment/header.less b/styles/less/sheets/actors/environment/header.less index 670f6c92..f7353b10 100644 --- a/styles/less/sheets/actors/environment/header.less +++ b/styles/less/sheets/actors/environment/header.less @@ -39,7 +39,7 @@ justify-content: center; align-items: center; padding: 3px 5px; - font-size: var(--font-size-12); + font-size: 12px; font: @font-body; background: light-dark(@dark-15, @beige-15); @@ -52,16 +52,9 @@ flex-direction: row; justify-content: center; align-items: center; - font-size: var(--font-size-12); + font-size: 12px; } } - - .attribution-header-label { - text-align: left; - position: relative; - top: 4px; - margin-bottom: -6px; - } } .status-number { @@ -100,7 +93,7 @@ font-weight: bold; text-align: center; line-height: 18px; - font-size: var(--font-size-12); + font-size: 12px; color: light-dark(@beige, @dark-blue); } } @@ -108,7 +101,7 @@ .item-name { input[type='text'] { - font-size: var(--font-size-32); + font-size: 32px; height: 42px; text-align: start; transition: all 0.3s ease; @@ -129,6 +122,12 @@ flex-direction: column; gap: 12px; padding: 10px 20px; + + .description, + .impulses { + text-align: start; + font-family: @font-body; + } } .environment-navigation { diff --git a/styles/less/sheets/actors/environment/potentialAdversaries.less b/styles/less/sheets/actors/environment/potentialAdversaries.less deleted file mode 100644 index 274362a5..00000000 --- a/styles/less/sheets/actors/environment/potentialAdversaries.less +++ /dev/null @@ -1,17 +0,0 @@ -@import '../../../utils/colors.less'; - -.application.sheet.daggerheart.actor.dh-style.environment { - .tab.potentialAdversaries { - .items-section { - display: flex; - flex-direction: column; - gap: 10px; - overflow-y: auto; - mask-image: linear-gradient(0deg, transparent 0%, black 5%); - padding-bottom: 20px; - - scrollbar-width: thin; - scrollbar-color: light-dark(@dark-blue, @golden) transparent; - } - } -} diff --git a/styles/less/sheets/actors/environment/sheet.less b/styles/less/sheets/actors/environment/sheet.less index 3ea14bc7..74cec028 100644 --- a/styles/less/sheets/actors/environment/sheet.less +++ b/styles/less/sheets/actors/environment/sheet.less @@ -5,10 +5,6 @@ .appTheme({ &.environment { background-image: url('../assets/parchments/dh-parchment-dark.png'); - - .attribution-header-label { - background-image: url('../assets/parchments/dh-parchment-dark.png'); - } } }, { &.environment { @@ -18,15 +14,9 @@ .application.sheet.daggerheart.actor.dh-style.environment { .tab { - flex: 1; + max-height: 300px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: light-dark(@dark-blue, @golden) transparent; - - &.active { - overflow: hidden; - display: flex; - flex-direction: column; - } } } diff --git a/styles/less/sheets/actors/party/header.less b/styles/less/sheets/actors/party/header.less deleted file mode 100644 index 9a2c7350..00000000 --- a/styles/less/sheets/actors/party/header.less +++ /dev/null @@ -1,42 +0,0 @@ -@import '../../../utils/colors.less'; -@import '../../../utils/fonts.less'; - -.party-header-sheet { - display: flex; - flex-direction: column; - justify-content: start; - text-align: center; - - .profile { - height: 235px; - mask-image: linear-gradient(0deg, transparent 0%, black 10%); - cursor: pointer; - } - - .item-container { - .item-name { - padding: 0 20px; - input[type='text'] { - font-size: 32px; - height: 42px; - text-align: center; - transition: all 0.3s ease; - outline: 2px solid transparent; - border: 1px solid transparent; - - &:hover[type='text'], - &:focus[type='text'] { - box-shadow: none; - outline: 2px solid light-dark(@dark-blue, @golden); - } - } - } - - .label { - font-style: normal; - font-weight: 700; - font-size: 16px; - margin: 5px 0; - } - } -} diff --git a/styles/less/sheets/actors/party/inventory.less b/styles/less/sheets/actors/party/inventory.less deleted file mode 100644 index 2dcc97d8..00000000 --- a/styles/less/sheets/actors/party/inventory.less +++ /dev/null @@ -1,74 +0,0 @@ -@import '../../../utils/colors.less'; -@import '../../../utils/fonts.less'; - -.application.sheet.daggerheart.actor.dh-style.party { - .tab.inventory { - .search-section { - display: flex; - gap: 10px; - align-items: center; - - .search-bar { - position: relative; - color: light-dark(@dark-blue-50, @beige-50); - width: 100%; - padding-top: 5px; - - input { - border-radius: 50px; - background: light-dark(@dark-blue-10, @golden-10); - border: none; - outline: 2px solid transparent; - transition: all 0.3s ease; - padding: 0 20px; - - &:hover { - outline: 2px solid light-dark(@dark, @golden); - } - - &:placeholder { - color: light-dark(@dark-blue-50, @beige-50); - } - - &::-webkit-search-cancel-button { - -webkit-appearance: none; - display: none; - } - } - - .icon { - align-content: center; - height: 32px; - position: absolute; - right: 20px; - font-size: 16px; - z-index: 1; - color: light-dark(@dark-blue-50, @beige-50); - } - } - } - - .items-section { - display: flex; - flex-direction: column; - gap: 10px; - overflow-y: auto; - mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%); - padding: 20px 0; - - scrollbar-width: thin; - scrollbar-color: light-dark(@dark-blue, @golden) transparent; - } - - .currency-section { - display: grid; - grid-template-columns: 1fr 1fr 1fr 1fr; - gap: 10px; - padding: 10px 10px 0; - - .input { - color: light-dark(@dark, @beige); - } - } - } -} diff --git a/styles/less/sheets/actors/party/party-members.less b/styles/less/sheets/actors/party/party-members.less deleted file mode 100644 index a433ae34..00000000 --- a/styles/less/sheets/actors/party/party-members.less +++ /dev/null @@ -1,28 +0,0 @@ -@import '../../../utils/colors.less'; -@import '../../../utils/fonts.less'; - -.application.sheet.daggerheart.actor.dh-style.party { - .tab.partyMembers { - max-height: 400px; - overflow: auto; - - .actors-list { - display: flex; - flex-direction: column; - gap: 10px; - align-items: center; - width: 100%; - } - .actors-dragger { - display: flex; - align-items: center; - justify-content: center; - box-sizing: border-box; - width: 100%; - height: 40px; - border: 1px dashed light-dark(@dark-blue-50, @beige-50); - border-radius: 3px; - color: light-dark(@dark-blue-50, @beige-50); - } - } -} diff --git a/styles/less/sheets/actors/party/resources.less b/styles/less/sheets/actors/party/resources.less deleted file mode 100644 index 4db254bf..00000000 --- a/styles/less/sheets/actors/party/resources.less +++ /dev/null @@ -1,196 +0,0 @@ -@import '../../../utils/colors.less'; -@import '../../../utils/fonts.less'; -@import '../../../utils/mixin.less'; - -body.game:is(.performance-low, .noblur) { - .application.sheet.daggerheart.actor.dh-style.party .tab.resources .actors-list .actor-resources { - background: light-dark(@dark-blue, @dark-golden); - - .actor-name { - background: light-dark(@dark-blue, @dark-golden); - } - } -} - -.application.sheet.daggerheart.actor.dh-style.party { - .tab.resources { - overflow: auto; - - .actors-list { - display: flex; - flex-direction: row; - flex-wrap: wrap; - gap: 10px; - align-items: center; - width: 100%; - justify-content: center; - - .actor-resources { - display: flex; - flex-direction: column; - position: relative; - background: light-dark(@dark-blue-40, @dark-golden-40); - border-radius: 6px; - border: 1px solid light-dark(@dark-blue, @golden); - width: 230px; - height: -webkit-fill-available; - - .actor-name { - position: absolute; - top: 0px; - background: light-dark(@dark-blue-90, @dark-golden-80); - backdrop-filter: blur(6.5px); - border-radius: 6px 6px 0px 0px; - text-align: center; - width: 100%; - z-index: 1; - font-size: var(--font-size-20); - color: light-dark(@beige, @golden); - font-weight: bold; - padding: 5px 0; - } - - .actor-img { - height: 150px; - object-fit: cover; - object-position: top center; - border-radius: 6px 6px 0px 0px; - mask-image: linear-gradient(180deg, black 88%, transparent 100%); - } - - .resources { - display: flex; - flex-direction: column; - gap: 10px; - align-items: center; - margin: 10px; - - .slot-section { - display: flex; - flex-direction: column; - align-items: center; - - .slot-bar { - display: flex; - flex-wrap: wrap; - gap: 5px; - width: 239px; - - background-color: light-dark(@dark-blue-10, @dark-blue); - color: light-dark(@dark-blue, @golden); - padding: 5px; - border: 1px solid light-dark(@dark-blue, @golden); - border-radius: 6px; - width: fit-content; - - .armor-slot { - cursor: pointer; - transition: all 0.3s ease; - font-size: var(--font-size-12); - - .fa-shield-halved { - color: light-dark(@dark-blue-40, @golden-40); - } - } - - .slot { - width: 20px; - height: 10px; - border: 1px solid light-dark(@dark-blue, @golden); - background: light-dark(@dark-blue-10, @golden-10); - border-radius: 3px; - transition: all 0.3s ease; - cursor: pointer; - - &.filled { - background: light-dark(@dark-blue, @golden); - } - } - } - .slot-label { - display: flex; - align-items: center; - color: light-dark(@beige, @dark-blue); - background: light-dark(@dark-blue, @golden); - padding: 0 5px; - width: fit-content; - font-weight: bold; - border-radius: 0px 0px 5px 5px; - font-size: var(--font-size-12); - - .label { - padding-right: 5px; - } - - .value { - padding-left: 6px; - border-left: 1px solid light-dark(@beige, @dark-golden); - } - } - } - - .hope-section { - position: relative; - display: flex; - gap: 10px; - background-color: light-dark(transparent, @dark-blue); - color: light-dark(@dark-blue, @golden); - padding: 5px 10px; - border: 1px solid light-dark(@dark-blue, @golden); - border-radius: 3px; - align-items: center; - width: fit-content; - - h4 { - font-size: var(--font-size-12); - font-weight: bold; - text-transform: uppercase; - color: light-dark(@dark-blue, @golden); - } - - .hope-value { - display: flex; - cursor: pointer; - font-size: var(--font-size-12); - } - } - - .threshold-section { - display: flex; - align-self: center; - gap: 10px; - background-color: light-dark(transparent, @dark-blue); - color: light-dark(@dark-blue, @golden); - padding: 5px 10px; - border: 1px solid light-dark(@dark-blue, @golden); - border-radius: 3px; - align-items: center; - width: fit-content; - - h4 { - font-size: var(--font-size-12); - font-weight: bold; - text-transform: uppercase; - color: light-dark(@dark-blue, @golden); - - &.threshold-value { - color: light-dark(@dark, @beige); - } - } - } - } - } - } - .actors-dragger { - display: flex; - align-items: center; - justify-content: center; - box-sizing: border-box; - width: 100%; - height: 40px; - border: 1px dashed light-dark(@dark-blue-50, @beige-50); - border-radius: 3px; - color: light-dark(@dark-blue-50, @beige-50); - } - } -} diff --git a/styles/less/sheets/actors/party/sheet.less b/styles/less/sheets/actors/party/sheet.less deleted file mode 100644 index 2d1344e8..00000000 --- a/styles/less/sheets/actors/party/sheet.less +++ /dev/null @@ -1,45 +0,0 @@ -@import '../../../utils/colors.less'; -@import '../../../utils/fonts.less'; -@import '../../../utils/mixin.less'; - -.appTheme({ - &.party { - background-image: url('../assets/parchments/dh-parchment-dark.png'); - } -}, { - &.party { - background: url('../assets/parchments/dh-parchment-light.png'); - } -}); - -.application.sheet.daggerheart.actor.dh-style.party { - .tab { - flex: 1; - overflow-y: auto; - scrollbar-width: thin; - scrollbar-color: light-dark(@dark-blue, @golden) transparent; - scrollbar-gutter: stable; - - &.active { - overflow: auto; - display: flex; - flex-direction: column; - } - - .actions-section { - display: flex; - align-items: center; - justify-content: center; - padding: 10px; - margin-bottom: 10px; - gap: 20px; - background-color: light-dark(@dark-blue-10, @golden-10); - - button { - span { - font-size: 12px; - } - } - } - } -} diff --git a/styles/less/sheets/index.less b/styles/less/sheets/index.less index 1de1b055..a8f36a63 100644 --- a/styles/less/sheets/index.less +++ b/styles/less/sheets/index.less @@ -4,7 +4,6 @@ @import './actors/adversary/header.less'; @import './actors/adversary/sheet.less'; @import './actors/adversary/sidebar.less'; -@import './actors/adversary/effects.less'; @import './actors/character/biography.less'; @import './actors/character/effects.less'; @@ -18,22 +17,12 @@ @import './actors/companion/details.less'; @import './actors/companion/header.less'; @import './actors/companion/sheet.less'; -@import './actors/companion/effects.less'; @import './actors/environment/actions.less'; @import './actors/environment/header.less'; -@import './actors/environment/potentialAdversaries.less'; @import './actors/environment/sheet.less'; -@import './actors/party/header.less'; -@import './actors/party/party-members.less'; -@import './actors/party/sheet.less'; -@import './actors/party/inventory.less'; -@import './actors/party/resources.less'; - @import './items/beastform.less'; @import './items/class.less'; @import './items/domain-card.less'; @import './items/feature.less'; -@import './items/heritage.less'; -@import './items/item-sheet-shared.less'; diff --git a/styles/less/sheets/items/beastform.less b/styles/less/sheets/items/beastform.less index 100b024a..162c4925 100644 --- a/styles/less/sheets/items/beastform.less +++ b/styles/less/sheets/items/beastform.less @@ -5,8 +5,5 @@ flex-direction: column; margin-top: 10px; } - .hint { - font-style: italic; - } } } diff --git a/styles/less/sheets/items/class.less b/styles/less/sheets/items/class.less index 526aa77f..d32f60d6 100644 --- a/styles/less/sheets/items/class.less +++ b/styles/less/sheets/items/class.less @@ -25,6 +25,7 @@ gap: 10px; grid-template-columns: 1fr 3fr 1fr; h4 { + font-family: @font-body; font-weight: lighter; color: light-dark(@dark, @beige); } @@ -43,18 +44,4 @@ } } } - - .tab.questions { - .questions-container { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 8px; - - .questions-section { - display: flex; - flex-direction: column; - gap: 4px; - } - } - } } diff --git a/styles/less/sheets/items/heritage.less b/styles/less/sheets/items/heritage.less deleted file mode 100644 index 1342f5ee..00000000 --- a/styles/less/sheets/items/heritage.less +++ /dev/null @@ -1,12 +0,0 @@ -.application.sheet.daggerheart.dh-style { - &.ancestry, - &.community { - .item-card-header { - .item-info { - .item-description { - gap: 0; - } - } - } - } -} diff --git a/styles/less/sheets/items/item-sheet-shared.less b/styles/less/sheets/items/item-sheet-shared.less deleted file mode 100644 index d0a8cc48..00000000 --- a/styles/less/sheets/items/item-sheet-shared.less +++ /dev/null @@ -1,13 +0,0 @@ -.application.sheet.daggerheart.dh-style.item { - &.minimized { - .attribution-header-label { - display: none; - } - } - - .attribution-header-label { - font-style: italic; - font-family: @font-body; - color: light-dark(@chat-blue-bg, @beige-50); - } -} diff --git a/styles/less/ui/chat/ability-use.less b/styles/less/ui/chat/ability-use.less index 88302d0d..3e747380 100644 --- a/styles/less/ui/chat/ability-use.less +++ b/styles/less/ui/chat/ability-use.less @@ -1,144 +1,118 @@ -@import '../../utils/colors.less'; -@import '../../utils/fonts.less'; -@import '../../utils/spacing.less'; - -#interface.theme-light { - .daggerheart.chat.domain-card { - .domain-card-move .domain-card-header { - border-bottom: 1px solid @dark-blue; - - &:hover { - background: @dark-blue-10; - } - - .domain-label { - .title { - color: @dark-blue; - } - - .tags .tag { - background: @dark-15; - border: 1px solid @dark; - color: @dark; - } - } - - .fa-chevron-down { - color: @dark-blue; - } - } - - .description { - color: @dark; - } - } -} - -.daggerheart.chat { - &.domain-card { - display: flex; - flex-direction: column; - align-items: center; - - .card-img { - width: 100%; - height: 200px; - mask-image: linear-gradient(0deg, transparent 0%, black 10%, black 90%, transparent 100%); - object-fit: cover; - } - - details[open] { - .fa-chevron-down { - transform: rotate(180deg); - transition: all 0.3s ease; - } - } - - .domain-card-move { - width: 100%; - - .fa-chevron-down { - transition: all 0.3s ease; - margin-left: auto; - } - - .domain-card-header { - display: flex; - flex-direction: row; - align-items: center; - margin: 8px; - padding-bottom: 5px; - width: -webkit-fill-available; - gap: 5px; - border-bottom: 1px solid @golden; - - &:hover { - background: @golden-10; - cursor: pointer; - transition: all 0.3s ease; - } - - .domain-label { - display: flex; - flex-direction: column; - width: 100%; - padding-bottom: 5px; - width: -webkit-fill-available; - gap: 5px; - - .title { - font-size: var(--font-size-20); - color: @golden; - font-weight: 700; - } - - .tags { - display: flex; - gap: 10px; - flex-wrap: wrap; - - .tag { - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - padding: 3px 5px; - font-size: var(--font-size-12); - - background: @beige-15; - border: 1px solid @beige; - color: @beige; - border-radius: 3px; - } - } - } - } - } - - .description { - padding: 8px; - } - - .ability-card-footer { - display: flex; - flex-wrap: wrap; - gap: 5px; - width: 100%; - padding: 0 8px; - - button { - height: 40px; - flex: 1 1 calc(50% - 5px); - - &:nth-last-child(1):nth-child(odd) { - flex-basis: 100%; - } - } - - .ability-card-action-cost { - margin: auto; - font-size: 1.5em; - } - } - } -} +@import '../../utils/colors.less'; +@import '../../utils/fonts.less'; +@import '../../utils/spacing.less'; + +.daggerheart.chat { + &.domain-card { + display: flex; + flex-direction: column; + align-items: center; + + .card-img { + width: 100%; + height: 200px; + mask-image: linear-gradient(0deg, transparent 0%, black 10%, black 90%, transparent 100%); + object-fit: cover; + } + + details[open] { + .fa-chevron-down { + transform: rotate(180deg); + transition: all 0.3s ease; + } + } + + .domain-card-move { + width: 100%; + + .fa-chevron-down { + transition: all 0.3s ease; + margin-left: auto; + } + + .domain-card-header { + display: flex; + flex-direction: row; + align-items: center; + margin: 8px; + padding-bottom: 5px; + width: -webkit-fill-available; + gap: 5px; + border-bottom: 1px solid @golden; + + &:hover { + background: light-dark(@dark-blue-10, @golden-10); + cursor: pointer; + transition: all 0.3s ease; + } + + .domain-label { + display: flex; + flex-direction: column; + width: 100%; + padding-bottom: 5px; + width: -webkit-fill-available; + gap: 5px; + + .title { + font-size: 20px; + color: @golden; + font-family: @font-subtitle; + margin: 0; + } + + .tags { + display: flex; + gap: 10px; + flex-wrap: wrap; + + .tag { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + padding: 3px 5px; + font-size: 12px; + font-family: @font-body; + + background: light-dark(@dark-15, @beige-15); + border: 1px solid light-dark(@dark, @beige); + color: light-dark(@dark, @beige); + border-radius: 3px; + } + } + } + } + } + + .description { + color: @beige; + padding: 8px; + font-family: @font-body; + } + + .ability-card-footer { + display: flex; + flex-wrap: wrap; + gap: 5px; + width: 100%; + padding: 0 8px; + + button { + font-family: @font-body; + font-weight: 600; + height: 40px; + flex: 1 1 calc(50% - 5px); + + &:nth-last-child(1):nth-child(odd) { + flex-basis: 100%; + } + } + + .ability-card-action-cost { + margin: auto; + font-size: 1.5em; + } + } + } +} diff --git a/styles/less/ui/chat/action.less b/styles/less/ui/chat/action.less index 817b0acd..c3c51816 100644 --- a/styles/less/ui/chat/action.less +++ b/styles/less/ui/chat/action.less @@ -1,125 +1,101 @@ -@import '../../utils/colors.less'; -@import '../../utils/fonts.less'; -@import '../../utils/spacing.less'; - -#interface.theme-light { - .daggerheart.chat.action { - .action-move .action-section { - border-bottom: 1px solid @dark-blue; - - &:hover { - background: @dark-blue-10; - } - - .action-header { - .title { - color: @dark-blue; - } - .label { - color: @dark; - } - } - - .fa-chevron-down { - color: @dark-blue; - } - } - - .description { - color: @dark; - } - } -} - -.daggerheart.chat { - &.action { - display: flex; - flex-direction: column; - align-items: center; - - details[open] { - .fa-chevron-down { - transform: rotate(180deg); - transition: all 0.3s ease; - } - } - - .action-move { - width: 100%; - - .fa-chevron-down { - transition: all 0.3s ease; - margin-left: auto; - } - - .action-section { - display: flex; - flex-direction: row; - align-items: center; - margin: 8px 8px 0; - padding-bottom: 5px; - width: -webkit-fill-available; - gap: 5px; - border-bottom: 1px solid @golden; - - &:hover { - background: @golden-10; - cursor: pointer; - transition: all 0.3s ease; - } - - .action-img { - width: 40px; - height: 40px; - border-radius: 3px; - object-fit: cover; - } - - .action-header { - display: flex; - flex-direction: column; - gap: 5px; - color: @beige; - - .title { - font-size: var(--font-size-20); - color: @golden; - font-weight: 700; - } - - .label { - font-size: var(--font-size-12); - color: @beige; - margin: 0; - } - } - } - } - - .description { - padding: 8px; - } - - .ability-card-footer { - display: flex; - flex-wrap: wrap; - gap: 5px; - width: 100%; - padding: 0 8px; - - button { - height: 40px; - flex: 1 1 calc(50% - 5px); - - &:nth-last-child(1):nth-child(odd) { - flex-basis: 100%; - } - } - - .ability-card-action-cost { - margin: auto; - font-size: 1.5em; - } - } - } -} +@import '../../utils/colors.less'; +@import '../../utils/fonts.less'; +@import '../../utils/spacing.less'; + +.daggerheart.chat { + &.action { + display: flex; + flex-direction: column; + align-items: center; + + details[open] { + .fa-chevron-down { + transform: rotate(180deg); + transition: all 0.3s ease; + } + } + + .action-move { + width: 100%; + + .fa-chevron-down { + transition: all 0.3s ease; + margin-left: auto; + } + + .action-section { + display: flex; + flex-direction: row; + align-items: center; + margin: 8px 8px 0; + padding-bottom: 5px; + width: -webkit-fill-available; + gap: 5px; + border-bottom: 1px solid @golden; + + &:hover { + background: light-dark(@dark-blue-10, @golden-10); + cursor: pointer; + transition: all 0.3s ease; + } + + .action-img { + width: 40px; + height: 40px; + border-radius: 3px; + object-fit: cover; + } + + .action-header { + display: flex; + flex-direction: column; + gap: 5px; + + .title { + font-size: 20px; + color: @golden; + font-family: @font-subtitle; + margin: 0; + } + + .label { + font-size: 12px; + color: @beige; + font-family: @font-body; + margin: 0; + } + } + } + } + + .description { + color: @beige; + padding: 8px; + font-family: @font-body; + } + + .ability-card-footer { + display: flex; + flex-wrap: wrap; + gap: 5px; + width: 100%; + padding: 0 8px; + + button { + font-family: @font-body; + font-weight: 600; + height: 40px; + flex: 1 1 calc(50% - 5px); + + &:nth-last-child(1):nth-child(odd) { + flex-basis: 100%; + } + } + + .ability-card-action-cost { + margin: auto; + font-size: 1.5em; + } + } + } +} diff --git a/styles/less/ui/chat/chat.less b/styles/less/ui/chat/chat.less index 6f0e5e85..81af3d23 100644 --- a/styles/less/ui/chat/chat.less +++ b/styles/less/ui/chat/chat.less @@ -2,139 +2,11 @@ @import '../../utils/fonts.less'; @import '../../utils/spacing.less'; -#interface.theme-light { - .daggerheart.chat-sidebar .chat-log, - #chat-notifications .chat-log { - --text-color: @dark-blue; - --bg-color: @dark-blue-40; - - .chat-message { - .roll-formula { - background: @dark-15; - color: @dark; - } - - &.duality { - background-image: url(../assets/parchments/dh-parchment-dark.png); - - .message-content { - color: @beige; - } - - .roll-formula { - background: @dark-15; - color: @dark; - } - - .message-header { - .message-sub-header-container { - color: @beige; - h4 { - color: @golden; - } - } - .message-header-metadata { - .message-metadata { - color: @beige; - } - } - } - - &.hope { - --text-color: @golden; - --bg-color: @golden-40; - .message-header, - .message-content { - background-color: @golden-bg; - } - .roll-formula { - background: var(--bg-color); - color: var(--text-color); - } - } - - &.fear { - --text-color: @chat-blue; - --bg-color: @chat-blue-40; - .message-header, - .message-content { - background-color: @chat-blue-bg; - } - .roll-formula { - background: var(--bg-color); - color: var(--text-color); - } - } - - &.critical { - --text-color: @chat-purple; - --bg-color: @chat-purple-40; - .message-header, - .message-content { - background-color: @chat-purple-bg; - } - .roll-formula { - background: var(--bg-color); - color: var(--text-color); - } - } - } - - &:not(.duality) { - .font-20 { - color: @dark; - } - - .roll-die { - color: @beige; - } - - fieldset { - color: @dark-blue; - border-color: @dark-blue; - - legend { - color: @dark-blue; - } - } - .chat-roll { - .roll-part-header { - color: @dark-blue; - - span::before, - span::after { - color: @dark-blue; - } - - &:before { - background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, @dark-blue 100%); - } - - &:after { - background: linear-gradient(90deg, @dark-blue 0%, rgba(0, 0, 0, 0) 100%); - } - } - - .roll-part-content { - &.dice-result { - color: @dark; - } - .roll-result-container { - color: @dark-blue; - } - } - } - } - } - } -} - .daggerheart.chat { &.resource-roll { .reroll-message { - color: @beige; text-align: center; - font-size: var(--font-size-18); + font-size: 18px; margin-bottom: 0; } } @@ -152,12 +24,11 @@ } } -.vtt.stream.system-daggerheart .chat-sidebar, .daggerheart, #chat-notifications { .chat-message { - --text-color: @golden; - --bg-color: @golden-40; + --text-color: light-dark(@dark-blue, @golden); + --bg-color: light-dark(@dark-blue-40, @golden-40); [data-use-perm='false'] { pointer-events: none; @@ -214,7 +85,7 @@ display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; - color: @beige; + color: light-dark(@dark, @beige); margin: 10px 0; span { @@ -277,7 +148,7 @@ position: absolute; top: 0; right: 0; - font-size: var(--font-size-10); + font-size: 10px; z-index: 2; filter: drop-shadow(0 0 3px black); } @@ -556,7 +427,6 @@ gap: 5px; margin-top: 8px; button { - height: 32px; flex: 1; } } diff --git a/styles/less/ui/chat/damage-summary.less b/styles/less/ui/chat/damage-summary.less deleted file mode 100644 index 3fea45e5..00000000 --- a/styles/less/ui/chat/damage-summary.less +++ /dev/null @@ -1,90 +0,0 @@ -@import '../../utils/colors.less'; - -#interface.theme-light { - .daggerheart.chat.damage-summary .token-target-container { - &:hover { - background: @dark-blue-10; - } - - header { - .actor-name { - color: @dark; - } - - &::after { - background: @dark-blue; - } - } - } -} - -.daggerheart.chat.damage-summary { - display: flex; - flex-direction: column; - gap: 5px; - padding: 0; - - .token-target-container { - display: flex; - flex-direction: column; - gap: 2px; - transition: all 0.3s ease; - border-radius: 6px; - - &.clickable { - cursor: pointer; - - &:hover { - background: @golden-10; - } - } - - header { - display: flex; - align-items: center; - gap: 5px; - pointer-events: none; - position: relative; - margin-bottom: 10px; - - img { - width: 40px; - height: 40px; - padding: 0; - border-radius: 50%; - } - - .actor-name { - margin: 0; - color: @beige; - font-size: var(--font-size-20); - padding: 8px; - } - - &::after { - content: ''; - position: absolute; - bottom: -10px; - background: @golden; - mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%); - height: 2px; - width: 100%; - } - } - - .damage-container { - display: flex; - flex-direction: column; - justify-content: center; - gap: 5px; - pointer-events: none; - margin-top: 5px; - list-style: disc; - - .damage-row { - padding: 0 2px; - gap: 4px; - } - } - } -} diff --git a/styles/less/ui/chat/downtime.less b/styles/less/ui/chat/downtime.less index a99bde33..bc702aeb 100644 --- a/styles/less/ui/chat/downtime.less +++ b/styles/less/ui/chat/downtime.less @@ -1,133 +1,87 @@ -@import '../../utils/colors.less'; -@import '../../utils/fonts.less'; -@import '../../utils/spacing.less'; - -#interface.theme-light { - .daggerheart.chat.downtime { - .downtime-moves-list .downtime-move { - &:hover { - background: @dark-blue-10; - } - - .downtime-label { - border-bottom: 1px solid @dark-blue; - - .header-label .title { - color: @dark-blue; - } - .header-label .label { - color: @dark; - } - } - - .fa-chevron-down { - color: @dark-blue; - } - } - - .description { - color: @dark; - } - } -} - -.daggerheart.chat { - &.downtime { - display: flex; - flex-direction: column; - align-items: center; - - details[open] { - .fa-chevron-down { - transform: rotate(180deg); - transition: all 0.3s ease; - } - } - - .downtime-moves-list { - display: flex; - flex-direction: column; - gap: 5px; - width: 100%; - - .fa-chevron-down { - transition: all 0.3s ease; - margin-left: auto; - } - - .downtime-move { - width: 100%; - - .downtime-label { - display: flex; - align-items: center; - gap: 5px; - border-bottom: 1px solid @golden; - margin: 0 8px; - padding-bottom: 5px; - width: -webkit-fill-available; - - &:hover { - background: light-dark(@dark-blue-10, @golden-10); - cursor: pointer; - transition: all 0.3s ease; - } - - .downtime-image { - width: 40px; - height: 40px; - border-radius: 3px; - } - - .header-label { - padding: 8px; - .title { - font-size: var(--font-size-16); - color: @golden; - font-weight: 700; - } - .label { - font-size: var(--font-size-12); - color: @beige; - margin: 0; - } - } - } - - .description { - padding: 8px; - } - } - - .action-use-button-parent { - width: 100%; - - .action-use-target { - display:flex; - align-items: center; - justify-content: space-between; - gap: 4px; - width: 100%; - padding: 4px 8px 10px 40px; - font-size: var(--font-size-12); - - label { - font-weight: bold; - } - - select { - flex: 1; - } - } - } - - .action-use-button { - width: -webkit-fill-available; - margin: 0 8px; - font-weight: 600; - height: 40px; - } - - } - } -} +@import '../../utils/colors.less'; +@import '../../utils/fonts.less'; +@import '../../utils/spacing.less'; + +.daggerheart.chat { + &.downtime { + display: flex; + flex-direction: column; + align-items: center; + + details[open] { + .fa-chevron-down { + transform: rotate(180deg); + transition: all 0.3s ease; + } + } + + .downtime-moves-list { + display: flex; + flex-direction: column; + gap: 5px; + width: 100%; + + .fa-chevron-down { + transition: all 0.3s ease; + margin-left: auto; + } + + .downtime-move { + width: 100%; + + .downtime-label { + display: flex; + align-items: center; + gap: 5px; + border-bottom: 1px solid @golden; + margin: 0 8px; + padding-bottom: 5px; + width: -webkit-fill-available; + + &:hover { + background: light-dark(@dark-blue-10, @golden-10); + cursor: pointer; + transition: all 0.3s ease; + } + + .downtime-image { + width: 40px; + height: 40px; + border-radius: 3px; + } + + .header-label { + padding: 8px; + .title { + font-size: 16px; + color: @golden; + font-family: @font-subtitle; + margin: 0; + } + .label { + font-size: 12px; + color: @beige; + font-family: @font-body; + margin: 0; + } + } + } + + .description { + padding: 8px; + color: beige; + font-family: @font-body; + font-size: 14px; + } + } + + .action-use-button { + width: -webkit-fill-available; + margin: 0 8px; + font-family: @font-body; + font-weight: 600; + height: 40px; + } + } + } +} diff --git a/styles/less/ui/chat/effect-summary.less b/styles/less/ui/chat/effect-summary.less deleted file mode 100644 index 3d72571d..00000000 --- a/styles/less/ui/chat/effect-summary.less +++ /dev/null @@ -1,182 +0,0 @@ -@import '../../utils/colors.less'; - -#interface.theme-light { - .daggerheart.chat.effect-summary { - .effect-header, - .actor-header { - &::before, - &::after { - height: 2px; - background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, @dark-blue 100%); - } - - &::after { - background: linear-gradient(90deg, @dark-blue 0%, rgba(0, 0, 0, 0) 100%); - } - - span { - color: @dark; - } - } - - .token-target-container, - .effect-target-container { - .effect-label .title, - .title { - color: @dark-blue; - } - - .effect-label { - border-color: @dark-blue; - } - - &:hover { - background: @dark-blue-10; - } - } - } -} - -.daggerheart.chat.effect-summary { - display: flex; - flex-direction: column; - - .effect-header, - .actor-header { - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 5px; - - &::before, - &::after { - content: ''; - flex: 1; - height: 2px; - background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, @golden 100%); - } - - &::after { - background: linear-gradient(90deg, @golden 0%, rgba(0, 0, 0, 0) 100%); - } - - span { - color: @beige; - padding: 0 10px; - white-space: nowrap; - } - } - - .effects-container { - display: flex; - flex-wrap: wrap; - gap: 5px; - margin-bottom: 8px; - } - - .targets-container { - display: flex; - flex-direction: column; - gap: 5px; - } - - .token-target-outer-container { - display: flex; - flex-direction: column; - gap: 2px; - - .token-target-container { - display: flex; - align-items: center; - gap: 13px; - border-radius: 6px; - padding: 0 2px; - border-radius: 6px; - background: transparent; - transition: all 0.3s ease; - padding: 5px; - transition: all 0.3s ease; - - &.clickable { - cursor: pointer; - - &:hover { - background: @golden-10; - } - } - - img { - width: 40px; - height: 40px; - border-radius: 50%; - pointer-events: none; - } - - .title { - font-size: var(--font-size-20); - color: @golden; - font-weight: 700; - margin: 0; - pointer-events: none; - } - } - - .token-target-immunity { - white-space: nowrap; - font-style: italic; - font-size: 8px; - padding: 0 5px; - } - } - - details[open] { - .fa-chevron-down { - transform: rotate(180deg); - transition: all 0.3s ease; - } - } - - .effect-target-container { - width: 100%; - transition: all 0.3s ease; - cursor: pointer; - - &:hover { - background: @golden-10; - } - - .fa-chevron-down { - transition: all 0.3s ease; - margin-left: auto; - } - - .effect-label { - display: flex; - flex-direction: row; - align-items: center; - margin: 8px 8px 0; - padding-bottom: 5px; - width: -webkit-fill-available; - gap: 13px; - border-bottom: 1px solid @golden; - - .effect-img { - width: 40px; - height: 40px; - border-radius: 3px; - object-fit: cover; - } - - .title { - font-size: var(--font-size-20); - color: @golden; - font-weight: 700; - margin: 0; - } - } - - .description { - padding: 8px; - } - } -} diff --git a/styles/less/ui/chat/group-roll.less b/styles/less/ui/chat/group-roll.less deleted file mode 100644 index 02b8e312..00000000 --- a/styles/less/ui/chat/group-roll.less +++ /dev/null @@ -1,210 +0,0 @@ -.chat-message .message-content .group-roll { - display: flex; - flex-direction: column; - gap: 8px; - padding-bottom: 8px; - - .group-roll-section { - display: flex; - flex-direction: column; - gap: 4px; - - .group-roll-header { - display: flex; - align-items: center; - font-size: 14px; - margin-bottom: 0; - font-weight: normal; - - &.first { - margin-top: 5px; - } - - .group-roll-header-expand-section { - display: flex; - align-items: center; - gap: 4px; - cursor: pointer; - - label { - cursor: pointer; - } - - i { - color: light-dark(@dark-blue, @golden); - } - } - } - - .group-roll-content { - display: flex; - flex-direction: column; - gap: 16px; - border-radius: 5px; - padding: 5px; - overflow: hidden; - height: auto; - transition: all 0.3s ease; - - &.closed { - height: 0; - padding-top: 0; - padding-bottom: 0; - } - - &.finished { - background: light-dark(@dark-blue-10, @golden-10); - } - - .group-roll-main-roll { - display: flex; - flex-direction: column; - - .divider { - font-size: 14px; - margin-bottom: 0; - font-weight: normal; - } - - .main-roll-content { - display: flex; - align-items: center; - justify-content: center; - gap: 10px; - color: light-dark(@dark-blue, @golden); - - .main-value { - font-size: var(--font-size-24); - font-weight: bold; - } - - .main-text { - font-size: var(--font-size-16); - margin-top: 2px; - } - } - } - - .group-roll-member { - display: flex; - justify-content: space-between; - - .group-roll-data { - display: flex; - gap: 4px; - - img { - width: 42px; - height: 42px; - border-radius: 50%; - } - - .group-roll-label-container { - display: flex; - flex-direction: column; - justify-content: space-between; - - .group-roll-label-inner-container { - display: flex; - gap: 8px; - } - - .group-roll-modifier { - padding: 2px 8px; - border: 1px solid light-dark(@green, @green); - border-radius: 6px; - color: light-dark(@green, @green); - background: light-dark(@green-40, @green-40); - - &.failure { - border-color: light-dark(@red, @red); - color: light-dark(@red, @red); - background: light-dark(@red-40, @red-40); - } - } - - .group-roll-trait { - padding: 2px 8px; - border: 1px solid light-dark(white, white); - border-radius: 6px; - color: light-dark(white, white); - background: light-dark(@beige-80, @beige-80); - } - } - } - - .group-roll-rolling { - img { - width: 42px; - height: 42px; - - &:hover { - filter: drop-shadow(0 0 8px light-dark(@dark-blue, @golden)); - } - } - } - - .roll-results { - display: flex; - align-items: center; - border-radius: 5px; - width: fit-content; - gap: 16px; - cursor: pointer; - padding: 5px; - background: light-dark(@dark-blue-10, @golden-10); - color: light-dark(@dark-blue, @golden); - - &.finished { - background-color: initial; - } - - .reroll-result-container { - display: flex; - align-items: center; - gap: 16px; - - .label { - font-style: normal; - font-weight: 400; - font-size: var(--font-size-18); - line-height: 17px; - } - - i { - font-size: 16px; - } - - .success, - .success i { - color: @green; - } - - .failure, - .failure i { - color: @red; - } - } - - .group-roll-reroll { - position: relative; - display: flex; - align-items: center; - justify-content: center; - - .dice-icon { - width: 24px; - } - - .reroll-icon { - position: absolute; - font-size: 14px; - color: black; - filter: drop-shadow(0 0 3px black); - } - } - } - } - } - } -} diff --git a/styles/less/ui/chat/refresh-message.less b/styles/less/ui/chat/refresh-message.less deleted file mode 100644 index 2fce189b..00000000 --- a/styles/less/ui/chat/refresh-message.less +++ /dev/null @@ -1,13 +0,0 @@ -.daggerheart.chat.refresh-message { - header { - display: flex; - flex-direction: column; - align-items: center; - gap: 2px; - - .subtitle { - font-size: 18; - font-weight: bold; - } - } -} diff --git a/styles/less/ui/chat/sheet.less b/styles/less/ui/chat/sheet.less index 3d47a9b5..da66c12f 100644 --- a/styles/less/ui/chat/sheet.less +++ b/styles/less/ui/chat/sheet.less @@ -1,72 +1,6 @@ @import '../../utils/colors.less'; @import '../../utils/fonts.less'; -#interface.theme-light { - .chat-message:not(.duality) .message-content { - color: @dark; - - blockquote { - border-left: 5px solid @dark-blue-40; - } - - a[href] { - color: @dark-blue; - } - - a[href]:hover, - a[href].active { - font-weight: bold; - text-shadow: 0 0 8px @dark-blue; - } - - button { - background: transparent; - border: 1px solid @dark-blue; - color: @dark-blue; - - &:hover { - background: @light-black; - color: @dark-blue; - } - - &:disabled { - background: transparent; - color: @dark-blue; - - &:hover { - background: transparent; - color: @dark-blue; - } - } - - &.reverted { - background: @dark-blue-10; - color: @dark-blue; - border: 1px solid @dark; - &:hover { - background: transparent; - color: @dark-blue; - } - img { - border-radius: 3px; - } - } - } - - .roll-buttons button { - height: 40px; - font-family: @font-body; - font-weight: bold; - } - - .dice-roll .dice-formula, - .dice-roll .dice-total { - background: @dark-blue-40; - color: @dark-blue; - } - } -} - .chat-message.dh-chat-message { .message-content { padding: 0; @@ -83,7 +17,7 @@ .message-content { padding: 0 8px; font-family: @font-body; - color: @beige; + color: light-dark(@dark, @beige); blockquote { border-left: 5px solid light-dark(@dark-blue-40, @golden-40); @@ -100,15 +34,15 @@ } button { - background: @golden; - border: 1px solid @dark-blue; - color: @dark-blue; + background: light-dark(transparent, @golden); + border: 1px solid light-dark(@dark-blue, @dark-blue); + color: light-dark(@dark-blue, @dark-blue); outline: none; box-shadow: none; &:hover { - background: @dark-blue; - color: @golden; + background: light-dark(@light-black, @dark-blue); + color: light-dark(@dark-blue, @golden); } &.glow { @@ -116,24 +50,24 @@ } &:disabled { - background: @golden; - color: @dark-blue; + background: light-dark(transparent, @golden); + color: light-dark(@dark-blue, @dark-blue); opacity: 0.6; cursor: not-allowed; &:hover { - background: @golden; - color: @dark-blue; + background: light-dark(transparent, @golden); + color: light-dark(@dark-blue, @dark-blue); } } &.reverted { - background: @golden-10; - color: @golden; - border: 1px solid transparent; + background: light-dark(@dark-blue-10, @golden-10); + color: light-dark(@dark-blue, @golden); + border: 1px solid light-dark(@dark, transparent); &:hover { - background: @golden; - color: @dark-blue; + background: light-dark(transparent, @golden); + color: light-dark(@dark-blue, @dark-blue); } img { border-radius: 3px; @@ -164,8 +98,8 @@ .dice-roll .dice-total { box-shadow: none; border: none; - background: @golden-10; - color: @golden; + background: light-dark(@dark-blue-40, @golden-40); + color: light-dark(@dark-blue, @golden); font-weight: 600; align-content: center; } diff --git a/styles/less/ui/combat-sidebar/encounter-controls.less b/styles/less/ui/combat-sidebar/encounter-controls.less index 16a8e11a..fd0c1aee 100644 --- a/styles/less/ui/combat-sidebar/encounter-controls.less +++ b/styles/less/ui/combat-sidebar/encounter-controls.less @@ -4,12 +4,6 @@ .encounter-title { text-align: left; - flex: none; - } - - .encounter-battlepoints { - display: flex; - cursor: help; } .inner-controls { diff --git a/styles/less/ui/combat-sidebar/token-actions.less b/styles/less/ui/combat-sidebar/token-actions.less index f3a11235..6fc84d29 100644 --- a/styles/less/ui/combat-sidebar/token-actions.less +++ b/styles/less/ui/combat-sidebar/token-actions.less @@ -17,10 +17,15 @@ display: flex; align-items: center; justify-content: center; - font-size: var(--font-size-10); + font-size: 10px; padding: 8px; --button-size: 0; + &.used { + opacity: 0.5; + background: transparent; + } + &.inactive { background: var(--color-warm-2); color: var(--color-light-1); @@ -30,11 +35,6 @@ filter: none; } } - - &.used { - opacity: 0.5; - background: transparent; - } } } diff --git a/styles/less/ui/countdown/countdown-edit.less b/styles/less/ui/countdown/countdown-edit.less deleted file mode 100644 index d6c4da93..00000000 --- a/styles/less/ui/countdown/countdown-edit.less +++ /dev/null @@ -1,220 +0,0 @@ -@import '../../utils/colors.less'; -@import '../../utils/fonts.less'; - -.theme-light .daggerheart.application.dh-style.countdown-edit { - background-image: url('../assets/parchments/dh-parchment-light.png'); -} - -.daggerheart.application.dh-style.countdown-edit { - color: light-dark(@dark, @beige); - background-image: url('../assets/parchments/dh-parchment-dark.png'); - - .edit-container { - display: flex; - flex-direction: column; - gap: 8px; - - h2 { - text-align: center; - color: light-dark(@dark, @golden); - } - - .header-tools { - display: grid; - grid-template-columns: 2fr 1fr 144px; - gap: 8px; - - .hide-tools { - white-space: nowrap; - flex-wrap: nowrap; - display: flex; - align-items: center; - - input { - position: relative; - top: 2px; - } - } - - .header-main-button { - height: 32px; - flex: 1; - } - - .default-ownership-tools { - display: flex; - align-items: center; - gap: 8px; - - select { - flex: 1; - background: light-dark(@beige, @dark-blue); - } - } - } - - .edit-content { - display: flex; - flex-direction: column; - gap: 8px; - overflow-y: auto; - overflow-x: hidden; - max-height: 500px; - scrollbar-width: thin; - scrollbar-color: light-dark(@dark-blue, @golden) transparent; - - .countdown-edit-outer-container { - display: flex; - flex-direction: column; - align-items: flex-start; - gap: 8px; - - .countdown-edit-container { - width: 100%; - display: grid; - grid-template-columns: 48px 1fr 72px; - align-items: center; - gap: 8px; - - img { - width: 52px; - height: 52px; - border-radius: 6px; - } - - .countdown-edit-text { - display: flex; - flex-direction: column; - justify-content: center; - gap: 8px; - - .countdown-edit-subtext { - display: flex; - align-items: center; - gap: 10px; - - .countdown-edit-sub-tag { - padding: 3px 5px; - font-size: var(--font-size-12); - font: @font-body; - - background: light-dark(@dark-15, @beige-15); - border: 1px solid light-dark(@dark, @beige); - border-radius: 3px; - } - - .countdown-edit-loop { - position: relative; - - .loop-marker { - position: absolute; - top: -4px; - font-size: 10px; - } - } - } - } - - .countdown-edit-tools { - display: flex; - gap: 8px; - - &.same-row { - margin-top: 17.5px; - } - - a { - font-size: 16px; - } - } - } - } - - .countdown-edit-row-container { - display: flex; - flex-direction: column; - gap: 2px; - - .countdown-edit-subrow { - display: flex; - gap: 8px; - } - } - - .countdown-edit-input { - position: relative; - flex: 1; - display: flex; - flex-direction: column; - align-items: flex-start; - gap: 2px; - - &.type-input { - min-width: 120px; - } - - &.looping-input { - min-width: 120px; - } - - &.tiny { - flex: 0; - - label { - white-space: nowrap; - } - - input { - min-width: 2.5rem; - } - } - - .countdown-random-input { - padding-right: var(--input-height); - } - - .countdown-random-button { - position: absolute; - right: 0px; - bottom: 0px; - border-radius: 0 6px 6px 0; - height: var(--input-height); - display: flex; - align-items: center; - justify-content: center; - padding: 0 8px; - - &[disabled] { - opacity: 0.5; - } - - i { - font-size: 18px; - } - } - - // .countdown-random-container { - // width: 100%; - // display: flex; - - // input { - // border-radius: 6px 0 0 6px; - // border-right: 0; - // } - - // button { - // border-radius: 0 6px 6px 0; - // height: var(--input-height); - // border: 1px solid white; - // } - // } - - input, - select { - background: light-dark(@beige, @dark-blue); - color: light-dark(@dark, @beige); - } - } - } - } -} diff --git a/styles/less/ui/countdown/countdown.less b/styles/less/ui/countdown/countdown.less index 47f06eb7..ecc9f1b8 100644 --- a/styles/less/ui/countdown/countdown.less +++ b/styles/less/ui/countdown/countdown.less @@ -1,156 +1,61 @@ @import '../../utils/colors.less'; @import '../../utils/fonts.less'; -.theme-dark { - .daggerheart.dh-style.countdowns { - background-image: url(../assets/parchments/dh-parchment-dark.png); +.daggerheart.dh-style.countdown { + fieldset { + align-items: center; + margin-top: 5px; + border-radius: 6px; + border-color: light-dark(@dark-blue, @golden); - .window-header { - background-image: url(../assets/parchments/dh-parchment-dark.png); - } - } -} + legend { + font-family: @font-body; + font-weight: bold; + color: light-dark(@dark-blue, @golden); -.daggerheart.dh-style.countdowns { - position: relative; - border: 0; - border-radius: 4px; - box-shadow: none; - width: 300px; - pointer-events: all; - align-self: flex-end; - transition: 0.3s right ease-in-out; - - .window-title { - font-family: @font-body; - } - - #ui-right:has(#effects-display .effect-container) & { - right: 62px; - } - - &.icon-only { - width: 180px; - min-width: 180px; - } - - .window-header { - cursor: default; - border-bottom: 0; - } - - .window-content { - padding-top: 4px; - padding-bottom: 16px; - overflow: auto; - max-height: 312px; - - .countdowns-container { - display: flex; - flex-direction: column; - gap: 8px; - - .countdown-container { - display: flex; - width: 100%; - - &.icon-only { - gap: 8px; - - .countdown-main-container { - .countdown-content { - justify-content: center; - - .countdown-tools { - gap: 8px; - } - } - } - } - - .countdown-main-container { - width: 100%; - display: flex; - align-items: center; - gap: 16px; - - img { - width: 44px; - height: 44px; - border-radius: 6px; - } - - .countdown-content { - flex: 1; - display: flex; - flex-direction: column; - justify-content: space-between; - - .countdown-tools { - display: flex; - align-items: center; - justify-content: space-between; - - .countdown-tool-controls { - display: flex; - align-items: center; - gap: 16px; - } - - .progress-tag { - border: 1px solid; - border-radius: 4px; - padding: 2px 4px; - background-color: light-dark(@beige, @dark-blue); - } - - .countdown-tool-icons { - display: flex; - align-items: center; - gap: 8px; - - .looping-container { - position: relative; - border: 1px solid light-dark(@dark-blue, white); - border-radius: 6px; - padding: 2px 4px; - - &.should-loop { - background: light-dark(@golden, @golden); - - .loop-marker { - color: light-dark(@dark-blue, @dark-blue); - } - } - - .direction-marker { - position: absolute; - font-size: 10px; - filter: drop-shadow(0 0 3px black); - top: -3px; - } - } - } - } - } - } - /* Keep incase we want to reintroduce the player pips */ - // .countdown-access-container { - // display: grid; - // grid-template-columns: 1fr 1fr 1fr; - // grid-auto-rows: min-content; - // width: 38px; - // gap: 4px; - - // .countdown-access { - // height: 10px; - // width: 10px; - // border-radius: 50%; - // border: 1px solid light-dark(@dark-blue, @beige-80); - // content: ''; - // } - // } + a { + text-shadow: none; } } } + + .minimized-view { + display: flex; + gap: 8px; + flex-wrap: wrap; + + .mini-countdown-container { + width: fit-content; + display: flex; + align-items: center; + gap: 8px; + border: 2px solid light-dark(@dark-blue, @golden); + border-radius: 6px; + padding: 0 4px 0 0; + background-image: url('../assets/parchments/dh-parchment-light.png'); + color: light-dark(@beige, @dark); + cursor: pointer; + + &.disabled { + cursor: initial; + } + + img { + width: 30px; + height: 30px; + border-radius: 6px 0 0 6px; + } + + .mini-countdown-name { + white-space: nowrap; + } + + .mini-countdown-value { + } + } + } + + .hidden { + display: none; + } } diff --git a/styles/less/ui/countdown/sheet.less b/styles/less/ui/countdown/sheet.less index 0ce7c4af..1692773e 100644 --- a/styles/less/ui/countdown/sheet.less +++ b/styles/less/ui/countdown/sheet.less @@ -47,7 +47,7 @@ position: absolute; top: 8px; right: 8px; - font-size: var(--font-size-18); + font-size: 18px; } .countdown-container { diff --git a/styles/less/ui/effects-display/sheet.less b/styles/less/ui/effects-display/sheet.less deleted file mode 100644 index 1331b094..00000000 --- a/styles/less/ui/effects-display/sheet.less +++ /dev/null @@ -1,40 +0,0 @@ -.daggerheart.dh-style.effects-display { - position: absolute; - right: 0; - width: 46px; - max-height: 600px; - overflow: hidden; - border: 0; - - .window-content { - > div { - height: 100%; - } - } - - .effects-display-container { - display: flex; - flex-direction: column; - gap: 4px; - - .effect-container { - position: relative; - pointer-events: all; - border: 1px solid light-dark(@dark-blue, @golden); - border-radius: 3px; - - img { - border-radius: 3px; - } - - .effect-locked { - position: absolute; - bottom: 4px; - right: 4px; - font-size: 16px; - color: @golden; - filter: drop-shadow(0 0 3px black); - } - } - } -} diff --git a/styles/less/ui/index.less b/styles/less/ui/index.less index 7f9ada25..4a93feb6 100644 --- a/styles/less/ui/index.less +++ b/styles/less/ui/index.less @@ -1,11 +1,7 @@ @import './chat/ability-use.less'; @import './chat/action.less'; @import './chat/chat.less'; -@import './chat/damage-summary.less'; @import './chat/downtime.less'; -@import './chat/effect-summary.less'; -@import './chat/group-roll.less'; -@import './chat/refresh-message.less'; @import './chat/sheet.less'; @import './combat-sidebar/combat-sidebar.less'; @@ -16,7 +12,6 @@ @import './item-browser/item-browser.less'; @import './countdown/countdown.less'; -@import './countdown/countdown-edit.less'; @import './countdown/sheet.less'; @import './ownership-selection/ownership-selection.less'; @@ -24,12 +19,5 @@ @import './resources/resources.less'; @import './settings/settings.less'; + @import './settings/homebrew-settings/domains.less'; -@import './settings/homebrew-settings/types.less'; - -@import './sidebar/tabs.less'; -@import './sidebar/daggerheartMenu.less'; - -@import './scene-config/scene-config.less'; - -@import './effects-display/sheet.less'; diff --git a/styles/less/ui/item-browser/item-browser.less b/styles/less/ui/item-browser/item-browser.less index 23844128..7d708e1f 100644 --- a/styles/less/ui/item-browser/item-browser.less +++ b/styles/less/ui/item-browser/item-browser.less @@ -71,7 +71,6 @@ } .compendium-results { - position: relative; padding: 16px; } @@ -91,6 +90,7 @@ gap: 10px; .item-path { + font-family: @font-body; color: light-dark(@dark, @beige); &.path-link { @@ -100,14 +100,10 @@ } .folder-list, - .item-list-header, - .item-header > div { - cursor: pointer; - } - .item-list-header, .item-header > div { gap: 10px; + cursor: pointer; } .item-filter { @@ -140,6 +136,7 @@ input { border-radius: 50px; + font-family: @font-body; background: light-dark(@dark-blue-10, @golden-10); border: none; outline: 2px solid transparent; @@ -162,7 +159,7 @@ height: 32px; position: absolute; right: 20px; - font-size: var(--font-size-16); + font-size: 16px; z-index: 1; color: light-dark(@dark-blue-50, @beige-50); } @@ -178,6 +175,7 @@ justify-content: space-between; padding: 10px; border: 1px solid transparent; + font-family: @font-body; transition: all 0.1s ease; &.expanded + .subfolder-list { @@ -229,12 +227,12 @@ grid-template-columns: 40px 400px repeat(auto-fit, minmax(100px, 1fr)); align-items: center; text-transform: capitalize; + font-family: @font-body; } } .item-list-header, - .item-list, - .compendium-sidebar > .folder-list { + .item-list { overflow-y: auto; scrollbar-gutter: stable; scrollbar-width: thin; @@ -266,6 +264,7 @@ border: 1px solid light-dark(@dark-blue, @golden); border-radius: 3px; min-height: 30px; + font-family: @font-body; font-weight: bold; > * { @@ -279,11 +278,11 @@ } &[data-sort-type='ASC']:after { - content: '\f884'; + content: '\f0d7'; } &[data-sort-type='DESC']:after { - content: '\f885'; + content: '\f0d8'; } } } @@ -292,7 +291,6 @@ display: flex; flex-direction: column; gap: 5px; - flex: 1; .item-container { &:hover { @@ -305,20 +303,21 @@ display: flex; flex-direction: column; gap: 5px; + font-family: @font-body; h1 { - font-size: var(--font-size-32); + font-size: 32px; } h2 { - font-size: var(--font-size-28); + font-size: 28px; font-weight: 600; } h3 { - font-size: var(--font-size-20); + font-size: 20px; font-weight: 600; } h4 { - font-size: var(--font-size-16); + font-size: 16px; color: @beige; font-weight: 600; } @@ -329,6 +328,7 @@ padding: 0 0 0 1.25rem; li { + font-family: @font-body; margin-bottom: 0.25rem; } } @@ -363,6 +363,7 @@ .form-group { label { flex: 1; + font-family: @font-body; } .form-fields { width: 100%; @@ -392,12 +393,12 @@ margin: 0; .title { + font-family: @font-subtitle; + margin: 0; text-align: center; - font-weight: bold; } - .hint { - flex: unset; + font-family: @font-body; } } @@ -409,7 +410,6 @@ &.lite, &.no-folder { - .compendium-sidebar, .menu-path { display: none; } diff --git a/styles/less/ui/ownership-selection/ownership-selection.less b/styles/less/ui/ownership-selection/ownership-selection.less index ae7b5e2d..56fddd4f 100644 --- a/styles/less/ui/ownership-selection/ownership-selection.less +++ b/styles/less/ui/ownership-selection/ownership-selection.less @@ -6,15 +6,9 @@ flex-direction: column; gap: 8px; - .ownership-list { - display: flex; - flex-direction: column; - gap: 10px; - margin-top: 10px; - } - .ownership-container { display: flex; + border: 2px solid light-dark(@dark-blue, @golden); border-radius: 6px; padding: 0 4px 0 0; align-items: center; @@ -23,28 +17,12 @@ img { height: 40px; width: 40px; - border-radius: 50%; - } - - span { - flex: 3; + border-radius: 6px 0 0 6px; } select { - flex: 1; margin: 4px 0; } } - - .hint { - text-align: center; - } - - footer { - margin-top: 10px; - button { - height: 32px; - } - } } } diff --git a/styles/less/ui/scene-config/scene-config.less b/styles/less/ui/scene-config/scene-config.less deleted file mode 100644 index fb36dd33..00000000 --- a/styles/less/ui/scene-config/scene-config.less +++ /dev/null @@ -1,40 +0,0 @@ -.theme-light .application.sheet.scene-config { - .sheet-tabs.tabs a[data-tab='dh'] { - &.active img, - &:hover img { - filter: @grey-filter drop-shadow(0 0 4px var(--color-shadow-primary)); - } - - img { - filter: @grey-filter; - } - } -} - -.application.sheet.scene-config { - .sheet-tabs.tabs { - a[data-tab='dh'] { - display: flex; - align-items: center; - gap: 4px; - - &.active, - &:hover { - img { - filter: @beige-filter drop-shadow(0 0 4px var(--color-shadow-primary)); - } - } - - img { - width: 18px; - position: relative; - top: -3px; - filter: @beige-filter; - } - } - } - - .helper-text { - font-style: italic; - } -} diff --git a/styles/less/ui/settings/homebrew-settings/domains.less b/styles/less/ui/settings/homebrew-settings/domains.less index da258fcd..893f58be 100644 --- a/styles/less/ui/settings/homebrew-settings/domains.less +++ b/styles/less/ui/settings/homebrew-settings/domains.less @@ -33,6 +33,7 @@ h2 { display: flex; align-items: center; + font-family: @font-subtitle; position: relative; width: auto; white-space: nowrap; @@ -44,7 +45,7 @@ border-radius: 50%; width: 24px; height: 24px; - font-size: var(--font-size-12); + font-size: 12px; } } } @@ -122,7 +123,7 @@ button { border-radius: 50%; - font-size: var(--font-size-12); + font-size: 12px; height: 24px; width: 24px; margin-right: 4px; diff --git a/styles/less/ui/settings/homebrew-settings/types.less b/styles/less/ui/settings/homebrew-settings/types.less deleted file mode 100644 index d09431f7..00000000 --- a/styles/less/ui/settings/homebrew-settings/types.less +++ /dev/null @@ -1,52 +0,0 @@ -.theme-light .daggerheart.dh-style.setting.homebrew-settings .types.tab { - .adversary-types-container .adversary-type-container { - background-image: url('../assets/parchments/dh-parchment-light.png'); - } -} - -.daggerheart.dh-style.setting.homebrew-settings { - .types.tab { - .adversary-types-container { - width: 100%; - display: grid; - grid-template-columns: 1fr 1fr 1fr; - gap: 4px; - - .adversary-type-container { - height: 2em; - display: flex; - align-items: center; - justify-content: space-between; - gap: 8px; - border: 1px solid; - border-radius: 6px; - padding: 0 8px; - border: 1px solid light-dark(@dark-blue, @golden); - color: light-dark(@dark, @beige); - background-image: url('../assets/parchments/dh-parchment-dark.png'); - cursor: pointer; - opacity: 0.6; - - &:hover { - opacity: 1; - } - - &.active { - opacity: 1; - background: var(--color-warm-2); - } - } - } - - .type-edit-container { - width: 100%; - display: flex; - flex-direction: column; - gap: 8px; - - textarea { - width: 100%; - } - } - } -} diff --git a/styles/less/ui/settings/settings.less b/styles/less/ui/settings/settings.less index 34f17d53..8062ff73 100644 --- a/styles/less/ui/settings/settings.less +++ b/styles/less/ui/settings/settings.less @@ -4,7 +4,7 @@ fieldset { display: flex; flex-direction: column; - gap: 0.5rem; + gap: 4px; &.two-columns { display: grid; @@ -16,44 +16,16 @@ } } - &.three-columns { - display: grid; - grid-template-columns: 1fr 1fr 1fr; - gap: 2px; - } - - &.six-columns { - display: grid; - grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; - gap: 2px; - } - &.start-align { align-self: flex-start; } } - .toggleable-row { - width: 100%; - display: flex; - align-items: center; - gap: 4px; - - &.spaced { - padding-right: 28.5px; - } - - .form-group { - flex: 1; - } - } - .setting-group-field { white-space: nowrap; display: flex; align-items: center; gap: 8px; - flex-wrap: nowrap; } .settings-items { @@ -81,7 +53,7 @@ } i { - font-size: var(--font-size-18); + font-size: 18px; } } } @@ -108,7 +80,7 @@ width: 80%; .item-name input[type='text'] { - font-size: var(--font-size-32); + font-size: 32px; height: 42px; text-align: center; width: 90%; @@ -131,9 +103,28 @@ gap: 4px; } - .trait-item { - input { - text-align: center; + .trait-array-container { + display: flex; + justify-content: space-evenly; + gap: 8px; + margin-bottom: 16px; + + .trait-array-item { + position: relative; + display: flex; + justify-content: center; + + label { + position: absolute; + top: -7px; + font-size: 12px; + font-variant: petite-caps; + z-index: 2; + } + + input { + text-align: center; + } } } diff --git a/styles/less/ui/sidebar/daggerheartMenu.less b/styles/less/ui/sidebar/daggerheartMenu.less deleted file mode 100644 index 80eda9a1..00000000 --- a/styles/less/ui/sidebar/daggerheartMenu.less +++ /dev/null @@ -1,50 +0,0 @@ -.tab.sidebar-tab.daggerheartMenu-sidebar { - padding: 4px; - - div[data-application-part] { - display: flex; - flex-direction: column; - gap: 8px; - } - - h2 { - margin-top: 8px; - text-align: center; - font-weight: bold; - } - - .menu-refresh-container { - display: flex; - flex-direction: column; - gap: 8px; - - .menu-refresh-inner-container { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 8px; - - .experience-chip { - display: flex; - align-items: center; - border-radius: 5px; - width: fit-content; - gap: 5px; - cursor: pointer; - padding: 5px; - background: light-dark(@dark-blue-10, @golden-10); - color: light-dark(@dark-blue, @golden); - - .label { - font-style: normal; - font-weight: 400; - font-size: 14px; - line-height: 17px; - } - - &.selected { - background: light-dark(@dark-blue-40, @golden-40); - } - } - } - } -} diff --git a/styles/less/ui/sidebar/tabs.less b/styles/less/ui/sidebar/tabs.less deleted file mode 100644 index e9de2924..00000000 --- a/styles/less/ui/sidebar/tabs.less +++ /dev/null @@ -1,34 +0,0 @@ -.theme-light #interface #ui-right #sidebar { - menu li button img { - filter: @grey-filter; - } -} - -#interface #ui-right { - #ui-right-column-1 { - position: relative; - } - - #sidebar { - menu li button { - img { - width: 22px; - max-width: unset; - filter: @beige-filter; - } - } - } -} - -.actors-sidebar { - .directory-item.actor .entry-name:has(.entry-subtitle) { - display: flex; - flex-direction: column; - line-height: 1rem; - padding-top: 0.125rem; - .entry-subtitle { - color: var(--color-text-subtle); - font-size: var(--font-size-12); - } - } -} diff --git a/styles/less/utils/colors.less b/styles/less/utils/colors.less index 8f6418bf..64edfc6f 100755 --- a/styles/less/utils/colors.less +++ b/styles/less/utils/colors.less @@ -1,172 +1,96 @@ -:root { - --primary-blue: #1488cc; - --secondary-blue: #2b32b2; +@primary-blue: #1488cc; +@secondary-blue: #2b32b2; - --golden: #f3c267; - --golden-10: #f3c26710; - --golden-40: #f3c26740; - --golden-90: #f3c26790; - --golden-bg: #f3c2671a; - --golden-secondary: #eaaf42; - --golden-filter: brightness(0) saturate(100%) invert(89%) sepia(13%) saturate(2008%) hue-rotate(332deg) brightness(99%) contrast(92%); +@golden: #f3c267; +@golden-10: #f3c26710; +@golden-40: #f3c26740; +@golden-bg: #f3c2671a; +@golden-secondary: #eaaf42; +@golden-filter: brightness(0) saturate(100%) invert(89%) sepia(13%) saturate(2008%) hue-rotate(332deg) brightness(99%) + contrast(92%); - --chat-blue: #8f87ee; - --chat-blue-10: #8f87ee10; - --chat-blue-40: #8f87ee40; - --chat-blue-bg: #14142599; +@chat-blue: #8f87ee; +@chat-blue-10: #8f87ee10; +@chat-blue-40: #8f87ee40; +@chat-blue-bg: #14142599; - --chat-purple: #a778b1; - --chat-purple-10: #a778b110; - --chat-purple-40: #a778b140; - --chat-purple-bg: #2a152e99; +@chat-purple: #a778b1; +@chat-purple-10: #a778b110; +@chat-purple-40: #a778b140; +@chat-purple-bg: #2a152e99; - --medium-red: #d04747; - --medium-red-10: #d0474710; - --medium-red-40: #d0474740; +@medium-red: #d04747; +@medium-red-10: #d0474710; +@medium-red-40: #d0474740; - --dark-golden: #2b1d03; - --dark-golden-40: #2b1d0340; - --dark-golden-80: #2b1d0380; +@dark-golden: #2b1d03; +@dark-golden-80: #2b1d0380; - --red: #e54e4e; - --red-10: #e54e4e10; - --red-40: #e54e4e40; +@red: #e54e4e; +@red-10: #e54e4e10; +@red-40: #e54e4e40; - --dark-red: #3c0000; - --dark-red-10: #3c000010; - --dark-red-40: #3c000040; +@dark-red: #3c0000; +@dark-red-10: #3c000010; +@dark-red-40: #3c000040; - --green: #40a640; - --green-10: #40a64010; - --green-40: #40a64040; +@green: #40a640; +@green-10: #40a64010; +@green-40: #40a64040; - --dark-green: #011b01; - --dark-green-10: #011b0110; - --dark-green-40: #011b0140; +@dark-green: #011b01; +@dark-green-10: #011b0110; +@dark-green-40: #011b0140; - --dark-blue: #18162e; - --dark-blue-10: #18162e10; - --dark-blue-40: #18162e40; - --dark-blue-50: #18162e50; - --dark-blue-60: #18162e60; - --dark-blue-90: #18162e90; - --semi-transparent-dark-blue: rgba(24, 22, 46, 0.33); +@dark-blue: #18162e; +@dark-blue-10: #18162e10; +@dark-blue-40: #18162e40; +@dark-blue-50: #18162e50; +@dark-blue-60: #18162e60; +@semi-transparent-dark-blue: rgba(24, 22, 46, 0.33); - --dark: #222222; - --dark-15: #22222215; - --dark-40: #22222240; - --dark-80: #22222280; - --dark-filter: brightness(0) saturate(100%); +@dark: #222; +@dark-15: #22222215; +@dark-40: #22222240; +@dark-filter: brightness(0) saturate(100%); - --grey-filter: brightness(15%) saturate(20%); +@deep-black: #0e0d15; - --deep-black: #0e0d15; +@beige: #efe6d8; +@beige-15: #efe6d815; +@beige-50: #efe6d850; +@beige-80: #efe6d880; +@beige-filter: brightness(0) saturate(100%) invert(87%) sepia(25%) saturate(164%) hue-rotate(339deg) brightness(106%) + contrast(87%); +@bright-beige-filter: brightness(0) saturate(100%) invert(87%) sepia(15%) saturate(343%) hue-rotate(333deg) + brightness(110%) contrast(87%); - --beige: #efe6d8; - --beige-15: #efe6d815; - --beige-50: #efe6d850; - --beige-80: #efe6d880; - --beige-filter: brightness(0) saturate(100%) invert(87%) sepia(25%) saturate(164%) hue-rotate(339deg) brightness(106%) contrast(87%); - --bright-beige-filter: brightness(0) saturate(100%) invert(87%) sepia(15%) saturate(343%) hue-rotate(333deg) brightness(110%) contrast(87%); +@soft-white-shadow: rgba(255, 255, 255, 0.05); - --soft-white-shadow: rgba(255, 255, 255, 0.05); +@light-black: rgba(0, 0, 0, 0.3); +@soft-shadow: rgba(0, 0, 0, 0.05); - --light-black: rgba(0, 0, 0, 0.3); - --soft-shadow: rgba(0, 0, 0, 0.05); +@gradient-green: linear-gradient(151.21deg, @green 7.21%, @dark-green 92.79%); +@gradient-red: linear-gradient(151.21deg, @red 7.21%, @dark-red 92.79%); - --gradient-green: linear-gradient(151.21deg, var(--green, #40a640) 7.21%, var(--dark-green, #011b01) 92.79%); - --gradient-red: linear-gradient(151.21deg, var(--red, #e54e4e) 7.21%, var(--dark-red, #3c0000) 92.79%); +@gradient-hp: linear-gradient(15deg, rgb(70, 20, 10) 0%, rgb(190, 0, 0) 42%, rgb(252, 176, 69) 100%); +@gradient-stress: linear-gradient(15deg, rgb(130, 59, 1) 0%, rgb(252, 142, 69) 65%, rgb(190, 0, 0) 100%); - --gradient-hp: linear-gradient(15deg, rgb(70, 20, 10) 0%, rgb(190, 0, 0) 42%, rgb(252, 176, 69) 100%); - --gradient-stress: linear-gradient(15deg, rgb(130, 59, 1) 0%, rgb(252, 142, 69) 65%, rgb(190, 0, 0) 100%); +// TODO: Remove this colors section once new chat layout is done +@miss: rgb(255, 0, 0); +@hit: rgb(0, 128, 0); +@positive: #699969; +@secondaryShadow: gold; +@primaryAccent: #778899; +@hope: #ffe760; +@fear: #0032b1; +@fearBackgroundStart: rgba(15, 15, 97, 0.6); +@fearBackgroundEnd: rgba(0, 0, 255, 0.6); +@critical: #430070; +@criticalBackgroundStart: rgba(37, 8, 37, 0.6); +@criticalBackgroundEnd: rgba(128, 0, 128, 0.6); +@primary-color-fear: rgba(9, 71, 179, 0.75); - --primary-color-fear: rgba(9, 71, 179, 0.75); -} - -@primary-blue: var(--primary-blue, #1488cc); -@secondary-blue: var(--secondary-blue, #2b32b2); - -@golden: var(--golden, #f3c267); -@golden-10: var(--golden-10, #f3c26710); -@golden-40: var(--golden-40, #f3c26740); -@golden-90: var(--golden-90, #f3c26790); -@golden-bg: var(--golden-bg, #f3c2671a); -@golden-secondary: var(--golden-secondary, #eaaf42); -@golden-filter: var(--golden-filter, brightness(0) saturate(100%) invert(89%) sepia(13%) saturate(2008%) hue-rotate(332deg) brightness(99%) contrast(92%)); - -@chat-blue: var(--chat-blue, #8f87ee); -@chat-blue-10: var(--chat-blue-10, #8f87ee10); -@chat-blue-40: var(--chat-blue-40, #8f87ee40); -@chat-blue-bg: var(--chat-blue-bg, #14142599); - -@chat-purple: var(--chat-purple, #a778b1); -@chat-purple-10: var(--chat-purple-10, #a778b110); -@chat-purple-40: var(--chat-purple-40, #a778b140); -@chat-purple-bg: var(--chat-purple-bg, #2a152e99); - -@medium-red: var(--medium-red, #d04747); -@medium-red-10: var(--medium-red-10, #d0474710); -@medium-red-40: var(--medium-red-40, #d0474740); - -@dark-golden: var(--dark-golden, #2b1d03); -@dark-golden-40: var(--dark-golden-40, #2b1d0340); -@dark-golden-80: var(--dark-golden-80, #2b1d0380); - -@red: var(--red, #e54e4e); -@red-10: var(--red-10, #e54e4e10); -@red-40: var(--red-40, #e54e4e40); - -@dark-red: var(--dark-red, #3c0000); -@dark-red-10: var(--dark-red-10, #3c000010); -@dark-red-40: var(--dark-red-40, #3c000040); - -@green: var(--green, #40a640); -@green-10: var(--green-10, #40a64010); -@green-40: var(--green-40, #40a64040); - -@dark-green: var(--dark-green, #011b01); -@dark-green-10: var(--dark-green-10, #011b0110); -@dark-green-40: var(--dark-green-40, #011b0140); - -@dark-blue: var(--dark-blue, #18162e); -@dark-blue-10: var(--dark-blue-10, #18162e10); -@dark-blue-40: var(--dark-blue-40, #18162e40); -@dark-blue-50: var(--dark-blue-50, #18162e50); -@dark-blue-60: var(--dark-blue-60, #18162e60); -@dark-blue-90: var(--dark-blue-90, #18162e90); -@semi-transparent-dark-blue: var(--semi-transparent-dark-blue, rgba(24, 22, 46, 0.33)); - -@dark: var(--dark, #222222); -@dark-15: var(--dark-15, #22222215); -@dark-40: var(--dark-40, #22222240); -@dark-80: var(--dark-80, #22222280); -@dark-filter: var(--dark-filter, brightness(0) saturate(100%)); - -@grey-filter: var(--grey-filter, brightness(15%) saturate(20%)); - -@deep-black: var(--deep-black, #0e0d15); - -@beige: var(--beige, #efe6d8); -@beige-15: var(--beige-15, #efe6d815); -@beige-50: var(--beige-50, #efe6d850); -@beige-80: var(--beige-80, #efe6d880); -@beige-filter: var(--beige-filter, brightness(0) saturate(100%) invert(87%) sepia(25%) saturate(164%) hue-rotate(339deg) brightness(106%) contrast(87%)); -@bright-beige-filter: var(--bright-beige-filter, brightness(0) saturate(100%) invert(87%) sepia(15%) saturate(343%) hue-rotate(333deg) brightness(110%) contrast(87%)); - -@soft-white-shadow: var(--soft-white-shadow, rgba(255, 255, 255, 0.05)); - -@light-black: var(--light-black, rgba(0, 0, 0, 0.3)); -@soft-shadow: var(--soft-shadow, rgba(0, 0, 0, 0.05)); - -@gradient-green: var(--gradient-green, linear-gradient(151.21deg, var(--green, #40a640) 7.21%, var(--dark-green, #011b01) 92.79%)); -@gradient-red: var(--gradient-red, linear-gradient(151.21deg, var(--red, #e54e4e) 7.21%, var(--dark-red, #3c0000) 92.79%)); - -@gradient-hp: var(--gradient-hp, linear-gradient(15deg, rgb(70, 20, 10) 0%, rgb(190, 0, 0) 42%, rgb(252, 176, 69) 100%)); -@gradient-stress: var(--gradient-stress, linear-gradient(15deg, rgb(130, 59, 1) 0%, rgb(252, 142, 69) 65%, rgb(190, 0, 0) 100%)); - -@primary-color-fear: var(--primary-color-fear, rgba(9, 71, 179, 0.75)); - -@rustic-brown-80: #4c340780; @keyframes glow { 0% { box-shadow: 0 0 1px 1px @golden; diff --git a/styles/less/utils/fonts.less b/styles/less/utils/fonts.less index 5c1e597a..2e62a0bf 100755 --- a/styles/less/utils/fonts.less +++ b/styles/less/utils/fonts.less @@ -1,20 +1,50 @@ @import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700&family=Cinzel+Decorative:wght@700&family=Montserrat:wght@400;600&display=swap'); -@import './mixin.less'; -:root { - --dh-font-title: 'Cinzel Decorative'; - --dh-font-subtitle: 'Cinzel'; - --dh-font-body: 'Montserrat'; -} - -@font-title: ~"var(--dh-font-title, 'Cinzel Decorative'), serif"; -@font-subtitle: ~"var(--dh-font-subtitle, 'Cinzel'), serif"; -@font-body: ~"var(--dh-font-body, 'Montserrat'), sans-serif"; - -.dh-style { - .dh-typography(); -} - -.dh-style fieldset { - .dh-typography(); +@font-title: 'Cinzel Decorative', serif; +@font-subtitle: 'Cinzel', serif; +@font-body: 'Montserrat', sans-serif; + +.application.sheet.daggerheart.dh-style { + h1 { + font-family: @font-title; + margin: 0; + border: none; + font-weight: normal; + } + + h2, + h3 { + font-family: @font-subtitle; + margin: 0; + border: none; + font-weight: normal; + } + + h4 { + font-family: @font-body; + font-size: 14px; + border: none; + font-weight: 700; + margin: 0; + text-shadow: none; + color: #f3c267; + font-weight: normal; + } + + h5 { + font-size: 14px; + color: #f3c267; + margin: 0; + font-weight: normal; + } + + p, + span { + font-family: @font-body; + } + + small { + font-family: @font-body; + opacity: 0.8; + } } diff --git a/styles/less/utils/mixin.less b/styles/less/utils/mixin.less index 49e97a1f..0e52fa82 100644 --- a/styles/less/utils/mixin.less +++ b/styles/less/utils/mixin.less @@ -30,7 +30,7 @@ align-items: center; h3 { - font-size: var(--font-size-20); + font-size: 20px; } } @@ -44,73 +44,3 @@ gap: @gap; align-items: center; } - -/** - * Apply default typography styles. - */ -.dh-typography() { - h1 { - font-family: @font-title; - margin: 0; - border: none; - font-weight: normal; - } - - h1 input[type='text'] { - font-family: @font-title; - } - - h2, - h3 { - font-family: @font-subtitle; - margin: 0; - border: none; - font-weight: normal; - } - - h4 { - font-family: @font-body; - font-size: var(--font-size-14); - border: none; - font-weight: 700; - margin: 0; - text-shadow: none; - font-weight: normal; - } - - h5 { - font-family: @font-body; - font-size: var(--font-size-14); - margin: 0; - font-weight: normal; - } - - p, - span, - textarea, - label, - select, - multi-select .tags .tag, - table, - fieldset legend, - input[type='text'], - input[type='number'], - input[type='search'], - .tagify__dropdown, - li { - font-family: @font-body; - } - - button span { - font-weight: bold; - } - - small { - font-family: @font-body; - opacity: 0.8; - } - - nav a { - font-family: @font-body; - } -} diff --git a/styles/less/ux/autocomplete/autocomplete.less b/styles/less/ux/autocomplete/autocomplete.less index 08854a53..868b4f43 100644 --- a/styles/less/ux/autocomplete/autocomplete.less +++ b/styles/less/ux/autocomplete/autocomplete.less @@ -1,6 +1,3 @@ -@import '../../utils/colors.less'; -@import '../../utils/fonts.less'; - .theme-light .autocomplete { background-image: url('../assets/parchments/dh-parchment-light.png'); color: black; @@ -25,20 +22,16 @@ .group { font-weight: bold; - font-size: var(--font-size-14); + font-size: 14px; padding-left: 8px; } li[role='option'] { - display: flex; - align-items: center; - gap: 10px; - font-size: var(--font-size-14); - padding: 0 10px; + font-size: 14px; + padding-left: 10px; cursor: pointer; - &:hover, - &.selected { + &:hover { background-color: light-dark(@dark, @beige); color: light-dark(@beige, var(--color-dark-3)); } @@ -46,16 +39,5 @@ > div { white-space: nowrap; } - - img { - height: 40px; - width: 40px; - border-radius: 50%; - margin-bottom: 10px; - - &:first-child { - margin-top: 10px; - } - } } } diff --git a/styles/less/ux/index.less b/styles/less/ux/index.less index 0bd1b71e..68cfc7e5 100644 --- a/styles/less/ux/index.less +++ b/styles/less/ux/index.less @@ -1,6 +1,2 @@ @import './tooltip/tooltip.less'; -@import './tooltip/battlepoints.less'; -@import './tooltip/bordered-tooltip.less'; -@import './tooltip/domain-cards.less'; - @import './autocomplete/autocomplete.less'; diff --git a/styles/less/ux/tooltip/battlepoints.less b/styles/less/ux/tooltip/battlepoints.less deleted file mode 100644 index 9fe43a75..00000000 --- a/styles/less/ux/tooltip/battlepoints.less +++ /dev/null @@ -1,47 +0,0 @@ -.daggerheart.dh-style.tooltip { - .battlepoint-categories-container { - display: flex; - flex-direction: column; - gap: 8px; - - .battlepoint-categories-inner-container { - display: flex; - flex-direction: column; - gap: 8px; - } - - .battlepoint-grouping-container { - display: flex; - gap: 4px; - - .unselected-grouping { - opacity: 0.4; - } - } - } - - .battlepoint-toggles-container { - display: flex; - flex-direction: column; - gap: 8px; - - .battlepoint-toggle-container { - display: flex; - gap: 4px; - - &.inactive { - opacity: 0.4; - } - - .grouping-lock { - font-size: 17.5px; - margin: 0 5px; - color: @golden; - } - - input { - margin-top: 0; - } - } - } -} diff --git a/styles/less/ux/tooltip/bordered-tooltip.less b/styles/less/ux/tooltip/bordered-tooltip.less deleted file mode 100644 index 78622377..00000000 --- a/styles/less/ux/tooltip/bordered-tooltip.less +++ /dev/null @@ -1,46 +0,0 @@ -#tooltip.bordered-tooltip, -.locked-tooltip.bordered-tooltip { - border: 1px solid @golden; - background-image: url('../assets/parchments/dh-parchment-dark.png'); - - .daggerheart.dh-style.tooltip { - display: flex; - flex-direction: column; - text-align: start; - width: 100%; - gap: 5px; - padding: 0px; - border-radius: 3px; - - .tooltip-header { - display: flex; - flex-direction: column; - align-items: center; - text-align: start; - padding: 5px; - gap: 0px; - - h2 { - display: flex; - justify-content: start; - font-size: var(--font-size-20); - color: @golden; - font-weight: 700; - margin: 0; - padding: 0; - } - - .subtitle { - font-size: 12px; - } - } - - .close-hint { - border-radius: 3px; - padding: 3px; - background: @rustic-brown-80; - color: @golden; - font-size: 12px; - } - } -} diff --git a/styles/less/ux/tooltip/domain-cards.less b/styles/less/ux/tooltip/domain-cards.less deleted file mode 100644 index 3ef1d83a..00000000 --- a/styles/less/ux/tooltip/domain-cards.less +++ /dev/null @@ -1,18 +0,0 @@ -@import '../../utils/colors.less'; -@import '../../utils/fonts.less'; - -.theme-light .daggerheart.dh-style.tooltip { - &.domain-card { - .item-icons-list .item-icon img { - filter: @bright-beige-filter; - } - } -} - -.daggerheart.dh-style.tooltip { - &.domain-card { - .item-icons-list .item-icon img { - filter: @golden-filter !important; - } - } -} diff --git a/styles/less/ux/tooltip/tooltip.less b/styles/less/ux/tooltip/tooltip.less index bfe0c01f..43f47da5 100644 --- a/styles/less/ux/tooltip/tooltip.less +++ b/styles/less/ux/tooltip/tooltip.less @@ -1,363 +1,140 @@ -@import '../../utils/colors.less'; -@import '../../utils/fonts.less'; +.daggerheart.dh-style.tooltip { + display: flex; + flex-direction: column; + align-items: center; + gap: 4px; + border-width: 0; -#tooltip:has(div.daggerheart.dh-style.tooltip.card-style), -aside[role='tooltip']:has(div.daggerheart.dh-style.tooltip.card-style) { - padding: 0; - border: none; - border-radius: 10px; - height: max-content; - max-height: 650px; - width: 18rem; - background-image: url('../assets/parchments/dh-parchment-dark.png'); - outline: 1px solid light-dark(@dark-80, @beige-80); - box-shadow: 0 0 25px rgba(0, 0, 0, 0.80); + .tooltip-title-container { + width: 100%; + display: flex; + align-items: center; + gap: 16px; - .tooltip-title { - font-size: var(--font-size-20); - color: light-dark(@dark-blue, @golden); - font-weight: 700; - margin-bottom: 5px; + .tooltip-image { + height: 40px; + width: 40px; + border-radius: 6px; + border: 1px solid @golden; + } } - .tooltip-subtitle { + .tooltip-title { margin: 0; + text-align: center; } .tooltip-image { - width: 100%; - height: 160px; - object-fit: cover; - mask-image: linear-gradient(180deg, black 88%, transparent 100%); + height: 180px; + width: 180px; } .tooltip-description { - font-style: inherit; - text-align: inherit; - width: 100%; - padding: 5px 10px; - position: relative; - margin-top: 5px; + font-style: italic; + text-align: start; + } - &::before { - content: ''; - background: @golden; - mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%); - height: 2px; - width: calc(100% - 10px); + .simple-info { + font-style: italic; + } + + .tooltip-sub-title { + margin: 0; + color: light-dark(@dark-blue, @beige); + } + + .tooltip-information-section { + width: 100%; + display: grid; + grid-template-columns: 1fr 1fr; + gap: 4px; + + &.spaced { + margin-top: 8px; } - &::before { - position: absolute; - top: -5px; + &.triple { + grid-template-columns: 1fr 1fr 1fr; + } + + .tooltip-information { + display: flex; + flex-direction: column; + align-items: center; + gap: 2px; + + &.full-width { + grid-column: span 2; + } + + label { + font-weight: bold; + } + + label, + div { + white-space: nowrap; + } + } + } + + .tooltip-chips { + display: flex; + justify-content: space-around; + flex-wrap: wrap; + gap: 8px; + + .tooltip-chip { + font-size: 18px; + padding: 2px 4px; + border: 1px solid light-dark(@dark-blue, @golden); + border-radius: 6px; + color: light-dark(@dark, @beige); + background-image: url(../assets/parchments/dh-parchment-dark.png); } } .tooltip-tags { + width: 100%; display: flex; flex-direction: column; - gap: 10px; - width: 100%; - padding: 5px 10px; - position: relative; - padding-top: 10px; - max-height: 150px; - overflow-y: auto; - position: relative; - - scrollbar-width: thin; - scrollbar-color: light-dark(@dark-blue, @golden) transparent; - - &::before { - content: ''; - background: @golden; - mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%); - height: 2px; - width: calc(100% - 10px); - } - - &::before { - position: absolute; - top: 0px; - } + gap: 4px; .tooltip-tag { - display: flex; - gap: 10px; - flex-direction: column; + width: 100%; + display: grid; + grid-template-columns: 80px 1fr; + align-items: start; + gap: 8px; + padding: 4px; + border: 1px solid light-dark(@dark-blue, @golden); + border-radius: 6px; .tooltip-tag-label-container { display: flex; align-items: center; - gap: 5px; - - img { - width: 40px; - height: 40px; - border-radius: 3px; - } - } - } - } - - .tags { - display: flex; - gap: 5px 10px; - padding-bottom: 16px; - flex-wrap: wrap; - justify-content: center; - - &.advantages { - width: 100%; - padding: 5px 10px; - padding-bottom: 16px; - position: relative; - margin-top: 5px; - - &::before { - content: ''; - background: @golden; - mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%); - height: 2px; - width: calc(100% - 10px); - } - - &::before { - position: absolute; - top: -5px; - } - - .tag { - background: @green-10; - color: @green; - border-color: @green; - } - } - - .tag { - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - padding: 3px 5px; - font-size: var(--font-size-12); - font: @font-body; - - background: light-dark(@dark-15, @beige-15); - border: 1px solid light-dark(@dark, @beige); - border-radius: 3px; - } - - .label { - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - font-size: var(--font-size-12); - } - } - - .item-icons-list { - position: absolute; - display: flex; - flex-direction: column; - gap: 5px; - align-items: end; - justify-content: center; - top: 25px; - right: 10px; - z-index: 1; - - .item-icon { - display: flex; - align-items: center; - justify-content: end; - text-align: center; - padding-right: 8px; - width: 50px; - height: 50px; - font-size: 1.2rem; - background: light-dark(@dark-blue-60, @dark-golden-80); - backdrop-filter: blur(8px); - border: 4px double light-dark(@beige, @golden); - color: light-dark(@beige, @golden); - border-radius: 999px; - transition: all 0.3s ease; - - .recall-label { - font-size: var(--font-size-14); - opacity: 0; - margin-right: 0.3rem; - transition: all 0.3s ease; - } - - i { - font-size: 0.8rem; - } - - img { - height: 24px; - width: 24px; - } - - &:hover { - max-width: 300px; - padding: 0 10px; - border-radius: 60px; - - .recall-label { - opacity: 1; - } - } - } - } - - .tooltip-hint { - border-radius: 3px; - padding: 3px; - background: light-dark(@dark-blue-60, @rustic-brown-80); - color: light-dark(@dark-blue, @golden); - font-size: 12px; - margin-bottom: 10px; - } -} - -aside[role='tooltip'].locked-tooltip:has(div.daggerheart.dh-style.tooltip.card-style) { - box-shadow: 0 0 25px @golden-90; - outline: 1px solid light-dark(@dark-blue, @golden); -} - -.theme-light #tooltip:has(div.daggerheart.dh-style.tooltip.card-style), -.theme-light aside[role='tooltip']:has(div.daggerheart.dh-style.tooltip.card-style) { - background-image: url('../assets/parchments/dh-parchment-light.png'); -} - -.theme-light aside[role='tooltip'].locked-tooltip:has(div.daggerheart.dh-style.tooltip) { - box-shadow: 0 0 25px @dark-blue-90; - outline: 1px solid light-dark(@dark-blue, @golden); - -} - -#tooltip, -.locked-tooltip, -.daggerheart.dh-style.tooltip { - &.wide { - max-width: 480px; - - .daggerheart.dh-style.tooltip { - align-items: start; - } - } - - .daggerheart.dh-style.tooltip { - display: flex; - flex-direction: column; - align-items: center; - gap: 4px; - border-width: 0; - - .tooltip-title-container { - width: 100%; - display: flex; - align-items: center; - gap: 16px; - - .tooltip-image { - height: 40px; - width: 40px; - border-radius: 6px; - border: 1px solid @golden; - } - } - - .tooltip-title { - margin: 0; - text-align: center; - } - - .tooltip-image { - height: 180px; - width: 180px; - } - - .tooltip-description { - font-style: italic; - text-align: start; - } - - .simple-info { - font-style: italic; - } - - .tooltip-information-section { - width: 100%; - display: grid; - grid-template-columns: 1fr 1fr; - gap: 4px; - - &.spaced { - margin-top: 8px; - } - - &.triple { - grid-template-columns: 1fr 1fr 1fr; - } - - .tooltip-information { - display: flex; flex-direction: column; - align-items: center; gap: 2px; - &.full-width { - grid-column: span 2; - } - - label { - font-weight: bold; - } - - label, - div { - white-space: nowrap; + .tooltip-tag-image { + width: 40px; + height: 40px; } } - } - .tooltip-chips { - display: flex; - justify-content: space-around; - flex-wrap: wrap; - gap: 8px; - - .tooltip-chip { - font-size: var(--font-size-18); - padding: 2px 4px; - border: 1px solid light-dark(@dark-blue, @golden); - border-radius: 6px; - color: light-dark(@dark, @beige); - background-image: url(../assets/parchments/dh-parchment-dark.png); + .tooltip-tag-label { + font-weight: bold; + text-align: center; } - } - .spaced { - margin-bottom: 4px; + .tooltip-tag-description { + display: flex; + flex-wrap: wrap; + } } } - .party-list { - display: flex; - flex-direction: column; - button { - width: 100%; - align-items: center; - justify-content: start; - img { - border: none; - width: 1rem; - height: 1rem; - object-fit: contain; - } - } + .spaced { + margin-bottom: 4px; } } diff --git a/system.json b/system.json index 5570bdbf..8e5a7610 100644 --- a/system.json +++ b/system.json @@ -2,10 +2,10 @@ "id": "daggerheart", "title": "Daggerheart", "description": "An unofficial implementation of the Daggerheart system", - "version": "1.4.6", + "version": "1.1.2", "compatibility": { - "minimum": "13.346", - "verified": "13.351", + "minimum": "13", + "verified": "13.347", "maximum": "13" }, "authors": [ @@ -19,10 +19,7 @@ "discord": "cptn_cosmo" }, { - "name": "Ikraik", - "url": "https://github.com/ikraik", - "email": "ikraik0.0gaming@gmail.com", - "discord": "ikraik" + "name": "Ikraik" }, { "name": "IrkTheImp" @@ -54,12 +51,6 @@ { "name": "chrisryan10", "discord": "lazjen" - }, - { - "name": "nsalyzyn", - "url": "https://github.com/nsalyzyn", - "email": "nsalyzyn@gmail.com", - "discord": "nsalyzyn" } ], "esmodules": ["build/daggerheart.js"], @@ -173,15 +164,6 @@ "private": false, "flags": {} }, - { - "name": "rolltables", - "label": "Rolltables", - "system": "daggerheart", - "path": "packs/rolltables.db", - "type": "RollTable", - "private": false, - "flags": {} - }, { "name": "beastforms", "label": "Beastforms", @@ -197,7 +179,7 @@ "name": "Daggerheart SRD", "sorting": "m", "color": "#08718c", - "packs": ["adversaries", "environments", "journals", "rolltables"], + "packs": ["adversaries", "environments", "journals"], "folders": [ { "name": "Character Options", @@ -238,9 +220,6 @@ }, "environment": { "htmlFields": ["notes", "description"] - }, - "party": { - "htmlFields": ["notes"] } }, "Item": { @@ -287,10 +266,7 @@ "dualityRoll": {}, "adversaryRoll": {}, "damageRoll": {}, - "abilityUse": {}, - "tagTeam": {}, - "groupRoll": {}, - "systemMessage": {} + "abilityUse": {} } }, "background": "systems/daggerheart/assets/logos/FoundrybornBackgroundLogo.png", diff --git a/templates/actionTypes/beastform.hbs b/templates/actionTypes/beastform.hbs index b9bea445..b2710208 100644 --- a/templates/actionTypes/beastform.hbs +++ b/templates/actionTypes/beastform.hbs @@ -1,4 +1,9 @@ -
- {{localize "DAGGERHEART.ACTIONS.Config.beastform.label"}} - {{formGroup fields.tierAccess.fields.exact value=source.tierAccess.exact name="beastform.tierAccess.exact" labelAttr="label" valueAttr="key" localize=true blank=""}} +
+ +
{{localize "DAGGERHEART.ACTIONS.Config.beastform.label"}}
+
+ +
+ {{formGroup fields.tierAccess.fields.exact value=beastform.tierAccess.exact labelAttr="label" valueAttr="key" localize=true blank=""}} +
\ No newline at end of file diff --git a/templates/actionTypes/cost.hbs b/templates/actionTypes/cost.hbs index 7a9f33d9..a1b7de48 100644 --- a/templates/actionTypes/cost.hbs +++ b/templates/actionTypes/cost.hbs @@ -1,6 +1,6 @@
- {{localize "DAGGERHEART.GENERAL.Cost.single"}} + Cost {{#each source as |cost index|}} @@ -8,10 +8,10 @@ {{formField ../fields.consumeOnSuccess value=cost.consumeOnSuccess name=(concat "cost." index ".consumeOnSuccess") classes="checkbox" rootId=partId localize=true}} {{/if}}
- {{formField ../fields.scalable label="DAGGERHEART.GENERAL.scalable" value=cost.scalable name=(concat "cost." index ".scalable") classes="checkbox" localize=true}} - {{formField ../fields.key choices=(@root.disableOption index @root.costOptions ../source) label="DAGGERHEART.GENERAL.resource" value=cost.key name=(concat "cost." index ".key") localize=true blank=false}} - {{formField ../fields.value label="DAGGERHEART.GENERAL.amount" value=cost.value name=(concat "cost." index ".value") localize=true}} - {{formField ../fields.step label="DAGGERHEART.GENERAL.step" value=cost.step name=(concat "cost." index ".step") disabled=(not cost.scalable) localize=true}} + {{formField ../fields.scalable label="Scalable" value=cost.scalable name=(concat "cost." index ".scalable") classes="checkbox"}} + {{formField ../fields.key choices=(@root.disableOption index @root.costOptions ../source) label="Resource" value=cost.key name=(concat "cost." index ".key") localize=true blank=false}} + {{formField ../fields.value label="Amount" value=cost.value name=(concat "cost." index ".value")}} + {{formField ../fields.step label="Step" value=cost.step name=(concat "cost." index ".step") disabled=(not cost.scalable)}}
{{/each}} diff --git a/templates/actionTypes/countdown.hbs b/templates/actionTypes/countdown.hbs deleted file mode 100644 index 904dde4a..00000000 --- a/templates/actionTypes/countdown.hbs +++ /dev/null @@ -1,22 +0,0 @@ -
- - {{localize "DAGGERHEART.ACTIONS.TYPES.countdown.name"}} - - - {{#each source as |countdown index|}} -
- {{formField ../fields.name value=countdown.name name=(concat "countdown." index ".name") localize=true}} - -
-
- {{formField ../fields.type value=countdown.type name=(concat "countdown." index ".type") localize=true}} - {{formField ../fields.defaultOwnership value=countdown.defaultOwnership name=(concat "countdown." index ".defaultOwnership") localize=true}} -
- {{formField ../fields.img value=countdown.img name=(concat "countdown." index ".img") label="DAGGERHEART.GENERAL.imagePath" localize=true}} -
- {{formField ../fields.progress.fields.looping value=countdown.progress.looping name=(concat "countdown." index ".progress.looping") localize=true}} - {{formField ../fields.progress.fields.type value=countdown.progress.type name=(concat "countdown." index ".progress.type") localize=true}} - {{formField ../fields.progress.fields.startFormula value=countdown.progress.startFormula name=(concat "countdown." index ".progress.startFormula") label="DAGGERHEART.APPLICATIONS.CountdownEdit.start" localize=true}} -
- {{/each}} -
\ No newline at end of file diff --git a/templates/actionTypes/damage.hbs b/templates/actionTypes/damage.hbs index 96bb361c..a3abdf19 100644 --- a/templates/actionTypes/damage.hbs +++ b/templates/actionTypes/damage.hbs @@ -8,14 +8,9 @@ {{/if}} {{#unless (eq path 'system.attack.')}}{{/unless}} -
- {{#if @root.hasBaseDamage}} - {{formField @root.fields.damage.fields.includeBase value=@root.source.damage.includeBase name="damage.includeBase" classes="checkbox" localize=true }} - {{/if}} - {{#unless (eq @root.source.type 'healing')}} - {{formField directField value=source.direct name=(concat path "damage.direct") localize=true classes="checkbox"}} - {{/unless}} -
+ {{#if @root.hasBaseDamage}} + {{formField @root.fields.damage.fields.includeBase value=@root.source.damage.includeBase name="damage.includeBase" classes="checkbox" localize=true }} + {{/if}} {{#each source.parts as |dmg index|}} {{#if (and @root.hasBaseDamage @root.source.damage.includeBase)}} {{setVar 'realIndex' (add index -1)}} @@ -56,7 +51,7 @@
{{formField ../fields.valueAlt.fields.flatMultiplier value=dmg.valueAlt.flatMultiplier name=(concat ../path "damage.parts." realIndex ".valueAlt.flatMultiplier") label="DAGGERHEART.ACTIONS.Settings.multiplier" classes="inline-child" localize=true }} - {{formField ../fields.valueAlt.fields.dice value=dmg.valueAlt.dice name=(concat ../path "damage.parts." realIndex ".valueAlt.dice") classes="inline-child" localize=true}} + {{formField ../fields.valueAlt.fields.dice value=dmg.valueAlt.dice name=(concat ../path "damage.parts." realIndex ".valueAlt.dice") classes="inline-child"}} {{formField ../fields.valueAlt.fields.bonus value=dmg.valueAlt.bonus name=(concat ../path "damage.parts." realIndex ".valueAlt.bonus") localize=true classes="inline-child"}}
@@ -70,7 +65,7 @@ {{#*inline "formula"}} {{#unless dmg.base}} - {{formField fields.custom.fields.enabled value=source.custom.enabled name=(concat path "damage.parts." realIndex "." target ".custom.enabled") classes="checkbox" localize=true}} + {{formField fields.custom.fields.enabled value=source.custom.enabled name=(concat path "damage.parts." realIndex "." target ".custom.enabled") classes="checkbox"}} {{/unless}} {{#if source.custom.enabled}} {{formField fields.custom.fields.formula value=source.custom.formula name=(concat path "damage.parts." realIndex "." target ".custom.formula") localize=true}} @@ -79,8 +74,8 @@ {{#unless @root.isNPC}} {{formField fields.multiplier value=source.multiplier name=(concat path "damage.parts." realIndex "." target ".multiplier") localize=true}} {{/unless}} - {{#if (eq source.multiplier 'flat')}}{{formField fields.flatMultiplier value=source.flatMultiplier name=(concat path "damage.parts." realIndex "." target ".flatMultiplier") localize=true }}{{/if}} - {{formField fields.dice value=source.dice name=(concat path "damage.parts." realIndex "." target ".dice") localize=true}} + {{#if (eq source.multiplier 'flat')}}{{formField fields.flatMultiplier value=source.flatMultiplier name=(concat path "damage.parts." realIndex "." target ".flatMultiplier") }}{{/if}} + {{formField fields.dice value=source.dice name=(concat path "damage.parts." realIndex "." target ".dice")}} {{formField fields.bonus value=source.bonus name=(concat path "damage.parts." realIndex "." target ".bonus") localize=true}}
{{/if}} diff --git a/templates/actionTypes/range-target.hbs b/templates/actionTypes/range-target.hbs index 143acdf8..3776f0c1 100644 --- a/templates/actionTypes/range-target.hbs +++ b/templates/actionTypes/range-target.hbs @@ -1,12 +1,12 @@
{{localize "DAGGERHEART.GENERAL.range"}}{{#if fields.target}} & {{localize "DAGGERHEART.GENERAL.Target.single"}}{{/if}} - {{formField fields.range value=source.range label="DAGGERHEART.GENERAL.range" name=(concat path "range") localize=true}} + {{formField fields.range value=source.range label="Range" name=(concat path "range") localize=true}} {{#if fields.target}}
{{#if (and source.target.type (not (eq source.target.type 'self')))}} - {{ formField fields.target.amount value=source.target.amount label="DAGGERHEART.GENERAL.amount" name=(concat path "target.amount") localize=true}} + {{ formField fields.target.amount value=source.target.amount label="Amount" name=(concat path "target.amount") }} {{/if}} - {{ formField fields.target.type value=source.target.type label="DAGGERHEART.GENERAL.Target.single" name=(concat path "target.type") localize=true }} + {{ formField fields.target.type value=source.target.type label="Target" name=(concat path "target.type") localize=true }}
{{/if}}
\ No newline at end of file diff --git a/templates/actionTypes/save.hbs b/templates/actionTypes/save.hbs index 85536c87..90bc0483 100644 --- a/templates/actionTypes/save.hbs +++ b/templates/actionTypes/save.hbs @@ -1,9 +1,6 @@ -
- {{localize "DAGGERHEART.GENERAL.Roll.reaction"}} -

{{localize "DAGGERHEART.ACTIONS.Settings.saveHint"}}

-
- {{formField fields.trait label="Trait" name="save.trait" value=source.trait localize=true}} - {{formField fields.difficulty label="Difficulty" name="save.difficulty" value=source.difficulty disabled=(not source.trait) placeholder=@root.baseSaveDifficulty}} - {{formField fields.damageMod label="Damage on Save" name="save.damageMod" value=source.damageMod localize=true disabled=(not source.trait)}} -
+
+ {{localize "DAGGERHEART.GENERAL.save"}} + {{formField fields.trait label="Trait" name="save.trait" value=source.trait localize=true}} + {{formField fields.difficulty label="Difficulty" name="save.difficulty" value=source.difficulty disabled=(not source.trait) placeholder=@root.baseSaveDifficulty}} + {{formField fields.damageMod label="Damage on Save" name="save.damageMod" value=source.damageMod localize=true disabled=(not source.trait)}}
\ No newline at end of file diff --git a/templates/actionTypes/uses.hbs b/templates/actionTypes/uses.hbs index 7304f810..2c1c3cd4 100644 --- a/templates/actionTypes/uses.hbs +++ b/templates/actionTypes/uses.hbs @@ -4,8 +4,8 @@ {{formField fields.consumeOnSuccess value=source.consumeOnSuccess name="uses.consumeOnSuccess" classes="checkbox" rootId=partId localize=true}} {{/if}}
- {{formField fields.value label="DAGGERHEART.GENERAL.spent" value=source.value name="uses.value" rootId=partId localize=true}} - {{formField fields.max label="DAGGERHEART.GENERAL.max" value=source.max name="uses.max" rootId=partId localize=true}} + {{formField fields.value label="Spent" value=source.value name="uses.value" rootId=partId}} + {{formField fields.max label="Max" value=source.max name="uses.max" rootId=partId}}
- {{formField fields.recovery label="DAGGERHEART.GENERAL.recovery" value=source.recovery name="uses.recovery" rootId=partId localize=true}} + {{formField fields.recovery label="Recovery" value=source.recovery name="uses.recovery" rootId=partId localize=true}}
\ No newline at end of file diff --git a/templates/characterCreation/tabs/experience.hbs b/templates/characterCreation/tabs/experience.hbs index 3eb92834..77dca6dc 100644 --- a/templates/characterCreation/tabs/experience.hbs +++ b/templates/characterCreation/tabs/experience.hbs @@ -11,7 +11,7 @@
- {{numberFormat this.value sign=true}} +
{{numberFormat this.value sign=true}}
diff --git a/templates/characterCreation/tabs/traits.hbs b/templates/characterCreation/tabs/traits.hbs index 7bbf4b52..604e3721 100644 --- a/templates/characterCreation/tabs/traits.hbs +++ b/templates/characterCreation/tabs/traits.hbs @@ -14,12 +14,12 @@
{{this}}
{{/each}}
- +
{{#each traits.values}}
- {{this.name}} +
{{this.name}}
diff --git a/templates/components/card-preview.hbs b/templates/components/card-preview.hbs index 0df24182..67388b6d 100644 --- a/templates/components/card-preview.hbs +++ b/templates/components/card-preview.hbs @@ -5,19 +5,19 @@ {{#if this.img}}
- +
{{#if altPartialBlock}} {{> @partial-block }} {{else}} {{this.name}} {{/if}} - +
{{else}}
- {{> @partial-block }} +
{{> @partial-block }}
{{/if}} diff --git a/templates/dialogs/attribution.hbs b/templates/dialogs/attribution.hbs deleted file mode 100644 index 20f00fb8..00000000 --- a/templates/dialogs/attribution.hbs +++ /dev/null @@ -1,26 +0,0 @@ -
-

{{item.name}}

- -
-
- - -
-
-
-
- - -
-
-
-
- - -
-
- -
- -
-
\ No newline at end of file diff --git a/templates/dialogs/beastform/footer.hbs b/templates/dialogs/beastform/footer.hbs index 224a0cb5..8ad53964 100644 --- a/templates/dialogs/beastform/footer.hbs +++ b/templates/dialogs/beastform/footer.hbs @@ -1,5 +1,3 @@
- +
\ No newline at end of file diff --git a/templates/dialogs/damageReduction.hbs b/templates/dialogs/damageReduction.hbs index 57d7ee61..c9f344d5 100644 --- a/templates/dialogs/damageReduction.hbs +++ b/templates/dialogs/damageReduction.hbs @@ -71,20 +71,12 @@
{{/each}} - {{#if reduceSeverity}} -
-
-

{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.reduceSeverity" nr=reduceSeverity}}

-
-
- {{/if}} - {{#if thresholdImmunities}} -
-
-

{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.thresholdImmunities"}}

-
+
+
+

{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.thresholdImmunities"}}

+
{{/if}} {{#each thresholdImmunities as | immunity key |}} @@ -93,13 +85,13 @@
\ No newline at end of file diff --git a/templates/dialogs/deathMove.hbs b/templates/dialogs/deathMove.hbs index 341659df..d2307900 100644 --- a/templates/dialogs/deathMove.hbs +++ b/templates/dialogs/deathMove.hbs @@ -6,23 +6,17 @@
    {{#each this.options as |option key|}}
  • -
    +
    +
  • {{/each}}
- - + +
\ No newline at end of file diff --git a/templates/dialogs/dice-roll/header.hbs b/templates/dialogs/dice-roll/header.hbs index 21967655..f61a86b3 100644 --- a/templates/dialogs/dice-roll/header.hbs +++ b/templates/dialogs/dice-roll/header.hbs @@ -1,22 +1,14 @@
-
-

- {{#if reactionOverride}} - {{localize "DAGGERHEART.CONFIG.FeatureForm.reaction"}} - {{else}} - {{ifThen rollConfig.headerTitle rollConfig.headerTitle rollConfig.title}} - {{/if}} - {{#if showReaction}} - - {{/if}} -

-
- {{#if (and @root.hasRoll @root.activeTagTeamRoll)}} -
- - {{localize "DAGGERHEART.APPLICATIONS.TagTeamSelect.title"}} -
- {{/if}} +

+ {{#if reactionOverride}} + {{localize "DAGGERHEART.CONFIG.ActionType.reaction"}} + {{else}} + {{ifThen rollConfig.headerTitle rollConfig.headerTitle rollConfig.title}} + {{/if}} + {{#if showReaction}} + + {{/if}} +

\ No newline at end of file diff --git a/templates/dialogs/dice-roll/rollSelection.hbs b/templates/dialogs/dice-roll/rollSelection.hbs index c7a9b0f9..3aac0321 100644 --- a/templates/dialogs/dice-roll/rollSelection.hbs +++ b/templates/dialogs/dice-roll/rollSelection.hbs @@ -70,20 +70,25 @@ {{/if}} - {{#if experiences.length}} -
- {{localize "DAGGERHEART.GENERAL.experience.plural"}} - {{#each experiences}} - {{#if name}} -
- +
+ {{localize "DAGGERHEART.GENERAL.experience.plural"}} + {{#each experiences}} + {{#if name}} +
+ {{#if (includes ../selectedExperiences id)}} + + {{else}} + + {{/if}} + {{#if (eq @root.rollType 'D20Roll')}} + {{name}} +{{modifier}} + {{else}} {{name}} +{{value}} -
- {{/if}} - {{/each}} -
- {{/if}} - + {{/if}} +
+ {{/if}} + {{/each}} +
{{localize "DAGGERHEART.GENERAL.Modifier.plural"}}
@@ -121,12 +126,6 @@ {{selectOptions diceOptions selected=@root.roll.dAdvantage.denomination}}
- {{#if abilities}} - {{localize "DAGGERHEART.GENERAL.traitModifier"}} - - {{/if}} {{/unless}} {{#if @root.rallyDie.length}} {{localize "DAGGERHEART.CLASS.Feature.rallyDice"}} @@ -149,7 +148,7 @@ - diff --git a/templates/dialogs/downtime/activities.hbs b/templates/dialogs/downtime/activities.hbs index 9a3502e8..4eca8b50 100644 --- a/templates/dialogs/downtime/activities.hbs +++ b/templates/dialogs/downtime/activities.hbs @@ -8,7 +8,7 @@
- {{move.name}} +
{{move.name}}
{{#if move.selected}}
{{move.selected}}
{{/if}} diff --git a/templates/dialogs/downtime/downtime.hbs b/templates/dialogs/downtime/downtime.hbs index 9744ffea..13c1face 100644 --- a/templates/dialogs/downtime/downtime.hbs +++ b/templates/dialogs/downtime/downtime.hbs @@ -14,14 +14,14 @@
{{#each this.refreshables.actionItems as | item |}}
- {{item.title}} - {{item.name}} +
{{item.title}}
+
{{item.name}}
{{/each}} {{#each this.refreshables.resourceItems as | item |}}
- {{item.title}} - {{item.name}} +
{{item.title}}
+
{{item.name}}
{{/each}}
diff --git a/templates/dialogs/group-roll/group-roll.hbs b/templates/dialogs/group-roll/group-roll.hbs deleted file mode 100644 index 9b23c0a5..00000000 --- a/templates/dialogs/group-roll/group-roll.hbs +++ /dev/null @@ -1,84 +0,0 @@ -
-
-

{{localize "DAGGERHEART.UI.Chat.groupRoll.title"}}

-
- -
- {{localize "DAGGERHEART.UI.Chat.groupRoll.leader"}} - {{#unless leader.actor}} - -
- {{localize "DAGGERHEART.UI.Chat.groupRoll.selectLeader"}} -
- {{else}} -
- {{leader.actor.name}} -
- {{leader.actor.name}} -
-
- - -
- {{!-- Not used yet --}} - {{!--
- - -
--}} -
-
-
- - - -
-
- {{/unless}} -
- -
- {{localize "DAGGERHEART.UI.Chat.groupRoll.partyTeam"}} - - - - {{#if (gt this.members.length 0)}} - {{#each members as |member index|}} -
- {{member.actor.name}} -
- {{member.actor.name}} -
-
- - -
- {{!-- Not used yet --}} - {{!--
- - -
--}} -
-
-
- - - -
-
- {{/each}} - {{/if}} - {{#unless allSelected}} -
- {{localize "DAGGERHEART.UI.Chat.groupRoll.selectMember"}} -
- {{/unless}} -
- -
\ No newline at end of file diff --git a/templates/dialogs/image-select/footer.hbs b/templates/dialogs/image-select/footer.hbs deleted file mode 100644 index cd7d3d1a..00000000 --- a/templates/dialogs/image-select/footer.hbs +++ /dev/null @@ -1,4 +0,0 @@ - \ No newline at end of file diff --git a/templates/dialogs/image-select/main.hbs b/templates/dialogs/image-select/main.hbs deleted file mode 100644 index 54bf0d49..00000000 --- a/templates/dialogs/image-select/main.hbs +++ /dev/null @@ -1,7 +0,0 @@ -
-
- {{#each images as |image|}} - - {{/each}} -
-
\ No newline at end of file diff --git a/templates/dialogs/item-transfer.hbs b/templates/dialogs/item-transfer.hbs deleted file mode 100644 index 0e7df3dc..00000000 --- a/templates/dialogs/item-transfer.hbs +++ /dev/null @@ -1,26 +0,0 @@ -
-
- -
- {{#if itemImage}} - - {{else}} - - {{/if}} - -
- -
-
- -
- -
-
-
-
- -
\ No newline at end of file diff --git a/templates/dialogs/ownershipSelection.hbs b/templates/dialogs/ownershipSelection.hbs index ccd90cdf..43711c07 100644 --- a/templates/dialogs/ownershipSelection.hbs +++ b/templates/dialogs/ownershipSelection.hbs @@ -1,19 +1,21 @@
- {{#if showOwnership}} -
    - {{#each ownership as |player id|}} -
  • - - {{player.name}} - -
  • - {{/each}} -
- {{else}} - {{localize "DAGGERHEART.APPLICATIONS.OwnershipSelection.noPlayers"}} - {{/if}} +
+
+ + +
+
+ {{#each ownership.players as |player id|}} +
+ +
{{player.name}}
+ +
+ {{/each}}
diff --git a/templates/dialogs/rerollDialog/footer.hbs b/templates/dialogs/rerollDialog/footer.hbs index 5d4ae2b2..4aff2823 100644 --- a/templates/dialogs/rerollDialog/footer.hbs +++ b/templates/dialogs/rerollDialog/footer.hbs @@ -1,4 +1,4 @@
- +
\ No newline at end of file diff --git a/templates/dialogs/tagTeamDialog.hbs b/templates/dialogs/tagTeamDialog.hbs deleted file mode 100644 index 3c96a573..00000000 --- a/templates/dialogs/tagTeamDialog.hbs +++ /dev/null @@ -1,110 +0,0 @@ -
-
-
- {{localize "DAGGERHEART.APPLICATIONS.TagTeamSelect.partyTeam"}} - -
- - -
- -
- -
- {{#each members as |member|}} -
-
-
- -
-
{{member.character.name}}
-
- {{#if member.character.system.class.value}} -
{{member.character.system.class.value.name}}
- {{/if}} - {{#if member.system.multiclass.value}} -
{{member.character.system.multiclass.value.name}}
- {{/if}} -
-
-
- -
- {{#if member.roll}} -
-
-

- - {{member.roll.system.title}} -

-
-
- -
- {{member.roll.system.roll.total}} - {{localize "DAGGERHEART.GENERAL.withThing" thing=member.roll.system.roll.result.label}} -
- -
- {{#if member.roll.system.hasDamage}} -

{{localize "DAGGERHEART.GENERAL.damage"}}

-
- {{#if member.damageValues}} - {{#each member.damageValues as |damage|}} -
-
{{damage.name}}
-
{{damage.total}}
-
- {{/each}} - {{else}} - {{localize "DAGGERHEART.APPLICATIONS.TagTeamSelect.damageNotRolled"}} - {{/if}} -
- {{/if}} -
- {{else}} -
- {{localize "DAGGERHEART.APPLICATIONS.TagTeamSelect.linkMessageHint"}} -
- {{/if}} -
- {{/each}} -
-
- -
-

- {{localize "DAGGERHEART.APPLICATIONS.TagTeamSelect.initiatingCharacter"}} - -

-

- {{localize "DAGGERHEART.GENERAL.Cost.single"}} - -

-
- {{#if showResult}} - {{#if selectedData.result}} -
-

{{localize "DAGGERHEART.APPLICATIONS.TagTeamSelect.title"}}: {{selectedData.result}}

- {{#if usesDamage}} -
- - {{#each selectedData.damageValues as |damage|}} -
- {{damage.name}} - {{damage.total}} -
- {{/each}} -
- {{/if}} -
- {{/if}} - {{/if}} - - -
-
\ No newline at end of file diff --git a/templates/hud/tokenHUD.hbs b/templates/hud/tokenHUD.hbs index f079e5d9..197b94f7 100644 --- a/templates/hud/tokenHUD.hbs +++ b/templates/hud/tokenHUD.hbs @@ -40,45 +40,20 @@ {{/if}} - {{#if usesEffects}}
{{#each systemStatusEffects as |status|}} -
- - {{#if status.disabled}} - / - {{/if}} - {{#if status.locked}}{{/if}} -
+ {{/each}} {{#if genericStatusEffects}} {{#each genericStatusEffects as |status|}} -
- - {{#if status.locked}}{{/if}} -
+ {{/each}} {{/if}}
- {{/if}} - - {{#if (eq actorType 'party')}} - - {{/if}}
- {{this.name}} - - {{this.featureLabel}} - +
{{this.name}}
+ {{this.featureLabel}}
\ No newline at end of file diff --git a/templates/levelup/tabs/advancements.hbs b/templates/levelup/tabs/advancements.hbs index 5e65be34..86940ad4 100644 --- a/templates/levelup/tabs/advancements.hbs +++ b/templates/levelup/tabs/advancements.hbs @@ -30,7 +30,7 @@ {{/each}} - {{this.label}} +
{{this.label}}
{{/each}}
diff --git a/templates/levelup/tabs/footer.hbs b/templates/levelup/tabs/footer.hbs index 2ee7a316..1e87a573 100644 --- a/templates/levelup/tabs/footer.hbs +++ b/templates/levelup/tabs/footer.hbs @@ -3,7 +3,7 @@
{{#if this.navigate.previous.fromSummary}} - + {{else}} {{#if (not this.navigate.previous.disabled)}} diff --git a/templates/levelup/tabs/summary.hbs b/templates/levelup/tabs/summary.hbs index 3c3cf4b7..a57b820a 100644 --- a/templates/levelup/tabs/summary.hbs +++ b/templates/levelup/tabs/summary.hbs @@ -19,13 +19,9 @@ {{#if this.achievements.proficiency.shown}}
- - {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.proficiencyIncrease" proficiency=this.achievements.proficiency.old }} - + {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.proficiencyIncrease" proficiency=this.achievements.proficiency.old }} - - {{this.achievements.proficiency.new}} - + {{this.achievements.proficiency.new}}
{{/if}} @@ -33,22 +29,14 @@
{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.damageThresholds"}}{{#if this.levelAchievements.damageThresholds.unarmored}}({{localize "DAGGERHEART.GENERAL.unarmored"}}){{/if}}
- - {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.damageThresholdMajorIncrease" threshold=this.achievements.damageThresholds.major.old }} - + {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.damageThresholdMajorIncrease" threshold=this.achievements.damageThresholds.major.old }} - - {{this.achievements.damageThresholds.major.new}} - + {{this.achievements.damageThresholds.major.new}}
- - {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.damageThresholdSevereIncrease" threshold=this.achievements.damageThresholds.severe.old }} - + {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.damageThresholdSevereIncrease" threshold=this.achievements.damageThresholds.severe.old }} - - {{this.achievements.damageThresholds.severe.new}} - + {{this.achievements.damageThresholds.severe.new}}
{{/if}} @@ -57,7 +45,7 @@
{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.domainCards"}}
{{#each this.achievements.domainCards.values}} - {{this.name}} +
{{this.name}}
{{/each}}
@@ -67,7 +55,7 @@
{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.newExperiences"}}
{{#each this.achievements.experiences.values}} - {{this.name}} {{numberFormat this.modifier sign=true}} +
{{this.name}} {{numberFormat this.modifier sign=true}}
{{/each}}
@@ -83,48 +71,32 @@
{{#if this.advancements.statistics.proficiency.shown}}
- - {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.proficiencyIncrease" proficiency=this.advancements.statistics.proficiency.old }} - + {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.proficiencyIncrease" proficiency=this.advancements.statistics.proficiency.old }} - - {{this.advancements.statistics.proficiency.new}} - + {{this.advancements.statistics.proficiency.new}}
{{/if}} {{#if this.advancements.statistics.hitPoints.shown}}
- - {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.hpIncrease" hitPoints=this.advancements.statistics.hitPoints.old }} - + {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.hpIncrease" hitPoints=this.advancements.statistics.hitPoints.old }} - - {{this.advancements.statistics.hitPoints.new}} - + {{this.advancements.statistics.hitPoints.new}}
{{/if}} {{#if this.advancements.statistics.stress.shown}}
- - {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.stressIncrease" stress=this.advancements.statistics.stress.old }} - + {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.stressIncrease" stress=this.advancements.statistics.stress.old }} - - {{this.advancements.statistics.stress.new}} - + {{this.advancements.statistics.stress.new}}
{{/if}} {{#if this.advancements.statistics.evasion.shown}}
- - {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.evasionIncrease" evasion=this.advancements.statistics.evasion.old }} - + {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.evasionIncrease" evasion=this.advancements.statistics.evasion.old }} - - {{this.advancements.statistics.evasion.new}} - + {{this.advancements.statistics.evasion.new}}
{{/if}}
@@ -136,13 +108,9 @@ {{#each this.advancements.traits}}
- - {{this.label}}: {{this.old}} - + {{this.label}}: {{this.old}} - - {{this.new}} - + {{this.new}}
{{/each}} @@ -153,7 +121,7 @@
{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.domainCards"}}
{{#each this.advancements.domainCards}} - {{this.name}} +
{{this.name}}
{{/each}}
@@ -164,7 +132,7 @@
{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.experienceIncreases"}}
{{#each this.advancements.experiences}} - {{this.name}} {{numberFormat this.modifier sign=true}} +
{{this.name}} {{numberFormat this.modifier sign=true}}
{{/each}}
@@ -175,7 +143,7 @@
{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.subclass"}}
{{#each this.advancements.subclass}} - {{this.name}} - {{this.featureLabel}} +
{{this.name}} - {{this.featureLabel}}
{{/each}}
@@ -186,9 +154,9 @@
{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.multiclass"}}
- {{this.name}} - {{this.domain}} - {{this.subclass}} +
{{this.name}}
+
{{this.domain}}
+
{{this.subclass}}
{{/with}} @@ -196,29 +164,21 @@ {{#if this.advancements.vicious.damage}}
- - {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.damageIncreased" damage=this.advancements.vicious.damage.old }} - + {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.damageIncreased" damage=this.advancements.vicious.damage.old }} - - {{this.advancements.vicious.damage.new}} - + {{this.advancements.vicious.damage.new}}
{{/if}} {{#if this.advancements.vicious.range}}
- - {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.rangeIncreased" range=this.advancements.vicious.range.old }} - + {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.rangeIncreased" range=this.advancements.vicious.range.old }} - - {{this.advancements.vicious.range.new}} - + {{this.advancements.vicious.range.new}}
{{/if}} {{#each this.advancements.simple}}
- {{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.simpleFeature" feature=this}} +
{{localize "DAGGERHEART.APPLICATIONS.Levelup.summary.simpleFeature" feature=this}}
{{/each}} diff --git a/templates/levelup/tabs/viewMode.hbs b/templates/levelup/tabs/viewMode.hbs deleted file mode 100644 index b41623d7..00000000 --- a/templates/levelup/tabs/viewMode.hbs +++ /dev/null @@ -1,24 +0,0 @@ -
-
- {{#each this.tiers as |tier key|}} -
- {{localize tier.name}} - - {{#each tier.groups}} -
-
- {{#each this.checkboxGroups}} -
- {{#each this.checkboxes}} - - {{/each}} -
- {{/each}} -
- {{this.label}} -
- {{/each}} -
- {{/each}} -
-
\ No newline at end of file diff --git a/templates/scene/dh-config.hbs b/templates/scene/dh-config.hbs deleted file mode 100644 index 1f7dcd81..00000000 --- a/templates/scene/dh-config.hbs +++ /dev/null @@ -1,24 +0,0 @@ -
-
- {{localize "DAGGERHEART.SETTINGS.Scene.rangeMeasurement"}} - - {{#if variantRules.rangeMeasurement.enabled}} - {{formGroup data.schema.fields.rangeMeasurement.fields.setting value=data._source.rangeMeasurement.setting name="flags.daggerheart.rangeMeasurement.setting" id="rangeMeasurementSetting" localize=true blank=false}} - - {{#if (eq data.rangeMeasurement.setting "custom")}} - {{formGroup data.schema.fields.rangeMeasurement.fields.melee value=data._source.rangeMeasurement.melee name="flags.daggerheart.rangeMeasurement.melee" localize=true}} - {{formGroup data.schema.fields.rangeMeasurement.fields.veryClose value=data._source.rangeMeasurement.veryClose name="flags.daggerheart.rangeMeasurement.veryClose" localize=true}} - {{formGroup data.schema.fields.rangeMeasurement.fields.close value=data._source.rangeMeasurement.close name="flags.daggerheart.rangeMeasurement.close" localize=true}} - {{formGroup data.schema.fields.rangeMeasurement.fields.far value=data._source.rangeMeasurement.far name="flags.daggerheart.rangeMeasurement.far" localize=true}} - {{/if}} - {{#if (eq data.rangeMeasurement.setting "default")}} - {{formGroup variantRules.schema.fields.rangeMeasurement.fields.melee value=variantRules._source.rangeMeasurement.melee localize=true disabled=true}} - {{formGroup variantRules.schema.fields.rangeMeasurement.fields.veryClose value=variantRules._source.rangeMeasurement.veryClose localize=true disabled=true}} - {{formGroup variantRules.schema.fields.rangeMeasurement.fields.close value=variantRules._source.rangeMeasurement.close localize=true disabled=true}} - {{formGroup variantRules.schema.fields.rangeMeasurement.fields.far value=variantRules._source.rangeMeasurement.far localize=true disabled=true}} - {{/if}} - {{else}} - {{localize "DAGGERHEART.SETTINGS.Scene.disabledText"}} - {{/if}} -
-
\ No newline at end of file diff --git a/templates/scene/tabs.hbs b/templates/scene/tabs.hbs deleted file mode 100644 index f524916e..00000000 --- a/templates/scene/tabs.hbs +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/templates/settings/appearance-settings.hbs b/templates/settings/appearance-settings.hbs new file mode 100644 index 00000000..d4d41d62 --- /dev/null +++ b/templates/settings/appearance-settings.hbs @@ -0,0 +1,106 @@ +
+
+

{{localize 'DAGGERHEART.SETTINGS.Menu.appearance.name'}}

+
+ +
+ {{localize 'DAGGERHEART.GENERAL.fear'}} + {{formGroup settingFields.schema.fields.displayFear value=settingFields._source.displayFear localize=true}} + {{formGroup settingFields.schema.fields.showGenericStatusEffects value=settingFields._source.showGenericStatusEffects localize=true}} +
+ +
+ {{localize 'DAGGERHEART.SETTINGS.Appearance.FIELDS.expandedTitle'}} + {{formGroup settingFields.schema.fields.extendCharacterDescriptions value=settingFields._source.extendCharacterDescriptions localize=true}} + {{formGroup settingFields.schema.fields.extendAdversaryDescriptions value=settingFields._source.extendAdversaryDescriptions localize=true}} + {{formGroup settingFields.schema.fields.extendEnvironmentDescriptions value=settingFields._source.extendEnvironmentDescriptions localize=true}} + {{formGroup settingFields.schema.fields.extendItemDescriptions value=settingFields._source.extendItemDescriptions localize=true}} +
+ + {{#if showDiceSoNice}} +
+ {{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.title"}} +
{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.hint"}}
+ +
+ +
+ +
+
+ + +
+ +
+
+ + {{formInput diceTab.fields.foreground value=diceTab.source.foreground localize=true}} +
+
+ + {{formInput diceTab.fields.background value=diceTab.source.background localize=true}} +
+
+ + {{formInput diceTab.fields.outline value=diceTab.source.outline localize=true}} +
+
+ + {{formInput diceTab.fields.edge value=diceTab.source.edge localize=true}} +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+
+ {{/if}} + +
+ + +
+
+ \ No newline at end of file diff --git a/templates/settings/appearance-settings/diceSoNice.hbs b/templates/settings/appearance-settings/diceSoNice.hbs deleted file mode 100644 index 6c89fd2f..00000000 --- a/templates/settings/appearance-settings/diceSoNice.hbs +++ /dev/null @@ -1,71 +0,0 @@ -
-
-
{{localize "DAGGERHEART.SETTINGS.Menu.appearance.diceSoNice.hint"}}
- -
- -
- {{#each dsnTabs as |dsnTab|}} -
-
-
- - {{formInput fields.system value=values.system localize=true choices=@root.diceSoNiceSystems}} -
-
-
- - {{formInput fields.foreground value=values.foreground localize=true}} -
-
- - {{formInput fields.background value=values.background localize=true}} -
-
- - {{formInput fields.outline value=values.outline localize=true}} -
-
- - {{formInput fields.edge value=values.edge localize=true}} -
-
- - {{formInput fields.colorset value=values.colorset choices=@root.diceSoNiceColorsets localize=true}} -
-
- - {{formInput fields.texture value=values.texture choices=@root.diceSoNiceTextures localize=true}} -
-
- - {{formInput fields.material value=values.material choices=@root.diceSoNiceMaterials localize=true}} -
-
- - {{formInput fields.font value=values.font choices=@root.diceSoNiceFonts localize=true}} -
-
-
- -
-
-
- {{/each}} -
-
\ No newline at end of file diff --git a/templates/settings/appearance-settings/header.hbs b/templates/settings/appearance-settings/header.hbs deleted file mode 100644 index 110fd2b0..00000000 --- a/templates/settings/appearance-settings/header.hbs +++ /dev/null @@ -1,3 +0,0 @@ -
-

{{localize 'DAGGERHEART.SETTINGS.Menu.appearance.label'}}

-
\ No newline at end of file diff --git a/templates/settings/appearance-settings/main.hbs b/templates/settings/appearance-settings/main.hbs deleted file mode 100644 index 75a7e634..00000000 --- a/templates/settings/appearance-settings/main.hbs +++ /dev/null @@ -1,54 +0,0 @@ -
- {{formGroup - fields.useResourcePips - value=setting.useResourcePips - localize=true}} - {{formGroup - fields.displayFear - value=setting.displayFear - localize=true}} - {{formGroup - fields.displayCountdownUI - value=setting.displayCountdownUI - localize=true}} - {{formGroup - fields.showGenericStatusEffects - value=setting.showGenericStatusEffects - localize=true}} - {{formGroup - fields.hideAttribution - value=setting.hideAttribution - localize=true}} - -
- {{localize 'DAGGERHEART.SETTINGS.Appearance.FIELDS.expandedTitle'}} - {{formGroup - fields.extendCharacterDescriptions - value=setting.extendCharacterDescriptions - localize=true}} - {{formGroup - fields.extendAdversaryDescriptions - value=setting.extendAdversaryDescriptions - localize=true}} - {{formGroup - fields.extendEnvironmentDescriptions - value=setting.extendEnvironmentDescriptions - localize=true}} - {{formGroup - fields.extendItemDescriptions - value=setting.extendItemDescriptions - localize=true}} -
- -
- {{localize 'DAGGERHEART.SETTINGS.Appearance.FIELDS.expandRollMessage.title'}} - {{formGroup fields.expandRollMessage.fields.desc value=setting.expandRollMessage.desc - localize=true}} - {{formGroup fields.expandRollMessage.fields.roll value=setting.expandRollMessage.roll - localize=true}} - {{formGroup fields.expandRollMessage.fields.damage - value=setting.expandRollMessage.damage localize=true}} - {{formGroup fields.expandRollMessage.fields.target - value=setting.expandRollMessage.target localize=true}} -
-
\ No newline at end of file diff --git a/templates/settings/automation-settings/general.hbs b/templates/settings/automation-settings/general.hbs index d49ef9b8..04d08a9f 100644 --- a/templates/settings/automation-settings/general.hbs +++ b/templates/settings/automation-settings/general.hbs @@ -3,17 +3,12 @@ data-tab="{{tabs.general.id}}" data-group="{{tabs.general.group}}" > -
+
{{formGroup settingFields.schema.fields.hopeFear.fields.gm value=settingFields._source.hopeFear.gm localize=true}} {{formGroup settingFields.schema.fields.hopeFear.fields.players value=settingFields._source.hopeFear.players localize=true}} +
-
- - {{formGroup settingFields.schema.fields.summaryMessages.fields.damage value=settingFields._source.summaryMessages.damage localize=true}} - {{formGroup settingFields.schema.fields.summaryMessages.fields.effects value=settingFields._source.summaryMessages.effects localize=true}} -
- {{formGroup settingFields.schema.fields.countdownAutomation value=settingFields._source.countdownAutomation localize=true}} {{formGroup settingFields.schema.fields.actionPoints value=settingFields._source.actionPoints localize=true}} {{formGroup settingFields.schema.fields.hordeDamage value=settingFields._source.hordeDamage localize=true}} {{formGroup settingFields.schema.fields.effects.fields.rangeDependent value=settingFields._source.effects.rangeDependent localize=true}} diff --git a/templates/settings/automation-settings/roll.hbs b/templates/settings/automation-settings/roll.hbs deleted file mode 100644 index 5769bf61..00000000 --- a/templates/settings/automation-settings/roll.hbs +++ /dev/null @@ -1,22 +0,0 @@ -
-
- - {{localize "DAGGERHEART.SETTINGS.Automation.roll.title"}} - - {{#each settingFields.schema.fields.roll.fields as | field |}} - {{!-- {{formGroup field value=(lookup @root.settingFields.roll field.name) localize=true rootId="automation-roll"}} --}} -
- - {{#with (lookup @root.settingFields.roll field.name) as | values |}} - {{formGroup field.fields.gm value=values.gm rootId=(concat "automation-roll-" field.name "-gm") localize=true}} - {{formGroup field.fields.players value=values.players rootId=(concat "automation-roll-" field.name "-players") localize=true}} - {{/with}} -

{{localize (concat "DAGGERHEART.SETTINGS.Automation.FIELDS.roll." field.name ".hint")}}

-
- {{/each}} -
-
\ No newline at end of file diff --git a/templates/settings/automation-settings/rules.hbs b/templates/settings/automation-settings/rules.hbs index a12c2999..8bbf4d93 100644 --- a/templates/settings/automation-settings/rules.hbs +++ b/templates/settings/automation-settings/rules.hbs @@ -13,9 +13,5 @@ {{formGroup settingFields.schema.fields.defeated.fields.characterDefault value=settingFields._source.defeated.characterDefault labelAttr="name" localize=true}} {{formGroup settingFields.schema.fields.defeated.fields.adversaryDefault value=settingFields._source.defeated.adversaryDefault labelAttr="name" localize=true}} {{formGroup settingFields.schema.fields.defeated.fields.companionDefault value=settingFields._source.defeated.companionDefault labelAttr="name" localize=true}} - - {{formGroup settingFields.schema.fields.defeated.fields.deadIcon value=settingFields._source.defeated.deadIcon localize=true}} - {{formGroup settingFields.schema.fields.defeated.fields.defeatedIcon value=settingFields._source.defeated.defeatedIcon localize=true}} - {{formGroup settingFields.schema.fields.defeated.fields.unconsciousIcon value=settingFields._source.defeated.unconsciousIcon localize=true}} \ No newline at end of file diff --git a/templates/settings/downtime-config/effects.hbs b/templates/settings/downtime-config/effects.hbs deleted file mode 100644 index 4e4bbd5b..00000000 --- a/templates/settings/downtime-config/effects.hbs +++ /dev/null @@ -1,15 +0,0 @@ -
-
- {{localize "DAGGERHEART.GENERAL.Effect.plural"}} - -
- {{#each move.effects}} - {{> "systems/daggerheart/templates/settings/components/settings-item-line.hbs" actionId=../move.id id=this.id type="effect" }} - {{/each}} -
-
-
\ No newline at end of file diff --git a/templates/settings/downtime-config/main.hbs b/templates/settings/downtime-config/main.hbs index 5b9c8031..f8a972c7 100644 --- a/templates/settings/downtime-config/main.hbs +++ b/templates/settings/downtime-config/main.hbs @@ -3,16 +3,14 @@ data-tab='{{tabs.main.id}}' data-group='{{tabs.main.group}}' > - {{#if hasIcon}} -
- {{localize "DAGGERHEART.GENERAL.icon"}} +
+ {{localize "Icon"}} - -
- {{/if}} + +
- {{localize "DAGGERHEART.GENERAL.description"}} + {{localize "Description"}} {{{ move.enrichedDescription }}} diff --git a/templates/settings/homebrew-settings.hbs b/templates/settings/homebrew-settings.hbs new file mode 100644 index 00000000..4e2c442f --- /dev/null +++ b/templates/settings/homebrew-settings.hbs @@ -0,0 +1,90 @@ +
+
+

{{localize 'DAGGERHEART.SETTINGS.Menu.homebrew.name'}}

+
+ {{formGroup settingFields.schema.fields.maxFear value=settingFields._source.maxFear localize=true}} + {{formGroup settingFields.schema.fields.maxDomains value=settingFields._source.maxDomains localize=true}} + {{formGroup settingFields.schema.fields.maxLoadout value=settingFields._source.maxLoadout localize=true}} +
+ +

{{localize "DAGGERHEART.SETTINGS.Homebrew.FIELDS.traitArray.label"}}

+
+ {{#each settingFields._source.traitArray as |trait index|}} +
+ + +
+ {{/each}} +
+ +
+ + {{localize "DAGGERHEART.SETTINGS.Homebrew.currency.title"}} + + {{formGroup settingFields.schema.fields.currency.fields.enabled value=settingFields._source.currency.enabled localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.title value=settingFields._source.currency.title localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.coins value=settingFields._source.currency.coins localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.handfuls value=settingFields._source.currency.handfuls localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.bags value=settingFields._source.currency.bags localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.chests value=settingFields._source.currency.chests localize=true}} + +
+ +
+ {{localize "DAGGERHEART.SETTINGS.Homebrew.downtimeMoves"}} + +
+ + {{localize "DAGGERHEART.APPLICATIONS.Downtime.longRest.title"}} + + + + +
+ +
+ +
+
+ +
+ {{#each settingFields._source.restMoves.longRest.moves as |move id|}} + {{> "systems/daggerheart/templates/settings/components/settings-item-line.hbs" this type="longRest" id=id }} + {{/each}} +
+
+ +
+ + {{localize "DAGGERHEART.APPLICATIONS.Downtime.shortRest.title"}} + + + + +
+ +
+ +
+
+ +
+ {{#each settingFields._source.restMoves.shortRest.moves as |move id|}} + {{> "systems/daggerheart/templates/settings/components/settings-item-line.hbs" this type="shortRest" id=id }} + {{/each}} +
+
+
+ +
+ + +
+
+ \ No newline at end of file diff --git a/templates/settings/homebrew-settings/change-currency-icon.hbs b/templates/settings/homebrew-settings/change-currency-icon.hbs deleted file mode 100644 index 3f5073e0..00000000 --- a/templates/settings/homebrew-settings/change-currency-icon.hbs +++ /dev/null @@ -1,10 +0,0 @@ -
-
- -
- {{localize "DAGGERHEART.SETTINGS.Homebrew.currency.iconName"}} ({{localize "DAGGERHEART.SETTINGS.Homebrew.currency.iconNameHint"}}) -
- - -
-
diff --git a/templates/settings/homebrew-settings/domains.hbs b/templates/settings/homebrew-settings/domains.hbs index b65422c5..0946f211 100644 --- a/templates/settings/homebrew-settings/domains.hbs +++ b/templates/settings/homebrew-settings/domains.hbs @@ -1,5 +1,5 @@
diff --git a/templates/settings/homebrew-settings/downtime.hbs b/templates/settings/homebrew-settings/downtime.hbs index 8612f3d5..890afddc 100644 --- a/templates/settings/homebrew-settings/downtime.hbs +++ b/templates/settings/homebrew-settings/downtime.hbs @@ -1,5 +1,5 @@
diff --git a/templates/settings/homebrew-settings/itemFeatures.hbs b/templates/settings/homebrew-settings/itemFeatures.hbs deleted file mode 100644 index 22c23af6..00000000 --- a/templates/settings/homebrew-settings/itemFeatures.hbs +++ /dev/null @@ -1,35 +0,0 @@ -
-
-
- - {{localize "DAGGERHEART.GENERAL.weaponFeatures"}} - - - - -
- {{#each settingFields._source.itemFeatures.weaponFeatures as |feature id|}} - {{> "systems/daggerheart/templates/settings/components/settings-item-line.hbs" this type="weaponFeatures" id=id }} - {{/each}} -
-
- -
- - {{localize "DAGGERHEART.GENERAL.armorFeatures"}} - - - - -
- {{#each settingFields._source.itemFeatures.armorFeatures as |feature id|}} - {{> "systems/daggerheart/templates/settings/components/settings-item-line.hbs" this type="armorFeatures" id=id }} - {{/each}} -
-
-
-
\ No newline at end of file diff --git a/templates/settings/homebrew-settings/settings.hbs b/templates/settings/homebrew-settings/settings.hbs index cdcbd461..1c7c787d 100644 --- a/templates/settings/homebrew-settings/settings.hbs +++ b/templates/settings/homebrew-settings/settings.hbs @@ -1,5 +1,5 @@
@@ -12,60 +12,27 @@ {{formGroup settingFields.schema.fields.maxLoadout value=settingFields._source.maxLoadout localize=true}}
-
- - {{localize "DAGGERHEART.SETTINGS.Homebrew.FIELDS.traitArray.label"}} - - +

{{localize "DAGGERHEART.SETTINGS.Homebrew.FIELDS.traitArray.label"}}

+
{{#each settingFields._source.traitArray as |trait index|}} -
- {{localize "DAGGERHEART.GENERAL.Modifier.single"}} {{add index 1}} - -
+
+ + +
{{/each}} -
- -
- - {{localize "Token Sizes"}} - - - - {{formGroup settingFields.schema.fields.tokenSizes.fields.tiny value=settingFields._source.tokenSizes.tiny localize=true}} - {{formGroup settingFields.schema.fields.tokenSizes.fields.small value=settingFields._source.tokenSizes.small localize=true}} - {{formGroup settingFields.schema.fields.tokenSizes.fields.medium value=settingFields._source.tokenSizes.medium localize=true}} - {{formGroup settingFields.schema.fields.tokenSizes.fields.large value=settingFields._source.tokenSizes.large localize=true}} - {{formGroup settingFields.schema.fields.tokenSizes.fields.huge value=settingFields._source.tokenSizes.huge localize=true}} - {{formGroup settingFields.schema.fields.tokenSizes.fields.gargantuan value=settingFields._source.tokenSizes.gargantuan localize=true}} -
+
{{localize "DAGGERHEART.SETTINGS.Homebrew.currency.title"}} -
- {{formGroup settingFields.schema.fields.currency.fields.title value=settingFields._source.currency.title localize=true}} -
-
- - {{formGroup settingFields.schema.fields.currency.fields.coins.fields.label value=settingFields._source.currency.coins.label localize=true}} - -
-
- - {{formGroup settingFields.schema.fields.currency.fields.handfuls.fields.label value=settingFields._source.currency.handfuls.label localize=true}} - -
-
- - {{formGroup settingFields.schema.fields.currency.fields.bags.fields.label value=settingFields._source.currency.bags.label localize=true}} - -
-
- - {{formGroup settingFields.schema.fields.currency.fields.chests.fields.label value=settingFields._source.currency.chests.label localize=true}} - -
+ {{formGroup settingFields.schema.fields.currency.fields.enabled value=settingFields._source.currency.enabled localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.title value=settingFields._source.currency.title localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.coins value=settingFields._source.currency.coins localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.handfuls value=settingFields._source.currency.handfuls localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.bags value=settingFields._source.currency.bags localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.chests value=settingFields._source.currency.chests localize=true}} +
\ No newline at end of file diff --git a/templates/settings/homebrew-settings/types.hbs b/templates/settings/homebrew-settings/types.hbs deleted file mode 100644 index bdb92ba0..00000000 --- a/templates/settings/homebrew-settings/types.hbs +++ /dev/null @@ -1,28 +0,0 @@ -
-
- - {{localize "DAGGERHEART.SETTINGS.Homebrew.adversaryType.title"}} - - - -
- {{#each settingFields.adversaryTypes as |type key|}} -
- {{type.label}} -
-
- {{/each}} -
- - {{#if selectedAdversaryType}} -
- {{formGroup settingFields.schema.fields.adversaryTypes.element.fields.label name=(concat "adversaryTypes." selectedAdversaryType.id ".label") value=selectedAdversaryType.label localize=true }} - -
- {{/if}} -
-
\ No newline at end of file diff --git a/templates/settings/variant-rules.hbs b/templates/settings/variant-rules.hbs index df7accb3..5cc5c90c 100644 --- a/templates/settings/variant-rules.hbs +++ b/templates/settings/variant-rules.hbs @@ -22,13 +22,6 @@ -
- -
- {{formGroup settingFields.schema.fields.massiveDamage.fields.enabled value=settingFields._source.massiveDamage.enabled localize=true}} -
-
-