diff --git a/.editorconfig b/.editorconfig index 6cfef2fc..8bbc2b52 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,5 +1,3 @@ [*] indent_size = 4 indent_style = spaces -[*.yml] -indent_size = 2 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index fd9b922e..00000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Project CI - -on: - pull_request: - branches: [main] - push: - branches: [main] - workflow_dispatch: - branches: [main] - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [24.x] - - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-node@v4 - with: - node-version: ${{ matrix.node-version }} - - - uses: pnpm/action-setup@v4 - with: - version: 10 - - - name: Cache NPM Deps - id: cache-npm - uses: actions/cache@v3 - with: - path: node_modules/ - key: npm-${{ hashFiles('package-lock.json') }} - - - name: Install NPM Deps - if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }} - run: npm ci - - - name: Lint - run: npm run lint \ No newline at end of file diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 553a1a17..e245c7fa 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -35,7 +35,7 @@ jobs: env: version: ${{steps.get_version.outputs.version-without-v}} url: https://github.com/${{github.repository}} - manifest: https://raw.githubusercontent.com/${{github.repository}}/v14/system.json + manifest: https://raw.githubusercontent.com/${{github.repository}}/main/system.json download: https://github.com/${{github.repository}}/releases/download/${{github.event.release.tag_name}}/system.zip # Create a zip file with all files required by the module to add to the release diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 261c26bd..b9099005 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,9 +1,78 @@ -# Contributing to Daggerheart +# Contributing to Foundryborne -Thank you for your interest in contributing to the Foundryborne project! +Welcome! This is a community-driven project to bring [Daggerheart](https://www.daggerheart.com/) to [FoundryVTT](https://foundryvtt.com/) as a full system. We're excited to have you here and appreciate your interest in contributing. -To ensure that all contributions align with our project goals and architectural standards, we ask that you **do not submit outside contributions without first receiving feedback from the development team.** +--- -If you have an idea or a fix you'd like to contribute, please start a discussion or open an issue first. We'd love to hear from you and collaborate on the best way to move forward! +## π€ How to Contribute -Thank you for your understanding and support. +We welcome contributions of all kinds: + +- Bug reports +- Feature suggestions +- Code contributions +- UI/UX mockups +- Documentation improvements +- Questions and discussions + +Please be respectful and collaborative β weβre all here to build something great together. + +### Community Translations + +Please note that we are not accepting community translations in the main project. Instead, community translations should be published as a module. + +--- + +## π§ General Guidelines + +- **Use GitHub Issues** to report bugs or propose features +- **Start a Discussion** for larger ideas or questions +- **Open a Pull Request** once you've confirmed your work aligns with project direction +- **Keep things modular and maintainable** β if you're not sure how to structure something, ask! +- **Orient your code on existing examples**, and feel free to suggest a standard if it makes things clearer + +--- + +## ποΈ Project Structure + +Please try to follow the general logic of the existing code when submitting PRs. + +We encourage contributors to leave comments or open Discussions when proposing structural or organizational changes. + +--- + +## π§Ύ 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 +- Keep PRs focused β smaller is better + +--- + +## π Labels and Boards + +We use GitHub labels to help organize contributions. If your issue or PR relates to a specific category, feel free to tag it. There is also a GitHub Project Board to help track active work and priorities. + +--- + +## π£ Communication + +Discussions are currently happening on GitHub β in Issues, PRs, and [GitHub Discussions](https://github.com/Foundryborne/daggerheart/discussions). You're welcome to use any of these, though we may consolidate to one in the future. + +--- + +## π€ 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**! + +πΈπ οΈ diff --git a/daggerheart.mjs b/daggerheart.mjs index e25f1b09..43aafce4 100644 --- a/daggerheart.mjs +++ b/daggerheart.mjs @@ -32,11 +32,6 @@ CONFIG.Dice.daggerheart = { FateRoll: FateRoll }; -CONFIG.RegionBehavior.dataModels = { - ...CONFIG.RegionBehavior.dataModels, - ...data.regionBehaviors -}; - Object.assign(CONFIG.Dice.termTypes, dice.diceTypes); CONFIG.Actor.documentClass = documents.DhpActor; @@ -360,8 +355,6 @@ Hooks.on(CONFIG.DH.HOOKS.hooksConfig.groupRollStart, async data => { }); const updateActorsRangeDependentEffects = async token => { - if (!token) return; - const rangeMeasurement = game.settings.get( CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index ce2bb86f..00000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,14 +0,0 @@ -import globals from 'globals'; -import { defineConfig } from 'eslint/config'; -import prettier from 'eslint-plugin-prettier'; - -export default defineConfig([ - { files: ['**/*.{js,mjs,cjs}'], languageOptions: { globals: globals.browser } }, - { plugins: { prettier } }, - { - files: ['**/*.{js,mjs,cjs}'], - rules: { - 'prettier/prettier': 'error' - } - } -]); diff --git a/lang/en.json b/lang/en.json index 2efd6d7b..65323790 100755 --- a/lang/en.json +++ b/lang/en.json @@ -74,7 +74,9 @@ "name": "Summon", "tooltip": "Create tokens in the scene.", "error": "You do not have permission to summon tokens or there is no active scene.", - "invalidDrop": "You can only drop Actor entities to summon." + "invalidDrop": "You can only drop Actor entities to summon.", + "chatMessageTitle": "Test2", + "chatMessageHeaderTitle": "Summoning" }, "transform": { "name": "Transform", @@ -109,18 +111,11 @@ "customFormula": "Custom Formula", "formula": "Formula" }, - "area": { - "sectionTitle": "Areas", - "shape": "Shape", - "size": "Size" - }, "displayInChat": "Display in chat", "deleteTriggerTitle": "Delete Trigger", "deleteTriggerContent": "Are you sure you want to delete the {trigger} trigger?", "advantageState": "Advantage State", - "damageOnSave": "Damage on Save", - "useDefaultItemValues": "Use default Item values", - "itemDamageIsUsed": "Item Damage Is Used" + "damageOnSave": "Damage on Save" }, "RollField": { "diceRolling": { @@ -135,7 +130,7 @@ "attackModifier": "Attack Modifier", "attackName": "Attack Name", "criticalThreshold": "Critical Threshold", - "includeBase": { "label": "Use Item Damage" }, + "includeBase": { "label": "Include Item Damage" }, "groupAttack": { "label": "Group Attack" }, "multiplier": "Multiplier", "saveHint": "Set a default Trait to enable Reaction Roll. It can be changed later in Reaction Roll Dialog.", @@ -168,8 +163,7 @@ "rangeDependence": { "title": "Range Dependence" }, - "stacking": { "title": "Stacking" }, - "targetDispositions": "Affected Dispositions" + "stacking": { "title": "Stacking" } }, "RangeDependance": { "hint": "Settings for an optional distance at which this effect should activate", @@ -216,13 +210,7 @@ "type": { "label": "Type" } }, "hordeDamage": "Horde Damage", - "horderHp": "Horde/HP", - "adversaryReactionRoll": { - "headerTitle": "Adversary Reaction Roll" - } - }, - "Base": { - "CannotAddType": "Cannot add {itemType} items to {actorType} actors." + "horderHp": "Horde/HP" }, "Character": { "advantageSources": { @@ -247,8 +235,6 @@ }, "defaultHopeDice": "Default Hope Dice", "defaultFearDice": "Default Fear Dice", - "defaultAdvantageDice": "Default Advantage Dice", - "defaultDisadvantageDice": "Default Disadvantage Dice", "disadvantageSources": { "label": "Disadvantage Sources", "hint": "Add single words or short text as reminders and hints of what a character has disadvantage on." @@ -347,8 +333,7 @@ "minor": "MIN", "major": "MAJ", "severe": "SEV" - }, - "triggerRestContent": "This will trigger a dialog to players make their downtime moves. Are you sure?" + } } }, "APPLICATIONS": { @@ -482,10 +467,6 @@ "defaultOwnershipTooltip": "The default player ownership of countdowns", "hideNewCountdowns": "Hide New Countdowns" }, - "CreateItemDialog": { - "createItem": "Create Item", - "browseCompendium": "Browse Compendium" - }, "DaggerheartMenu": { "title": "GM Tools", "refreshFeatures": "Refresh Features", @@ -700,12 +681,6 @@ "noPlayers": "No players to assign ownership to", "default": "Default Ownership" }, - "PendingReactionsDialog": { - "title": "Pending Reaction Rolls Found", - "unfinishedRolls": "Some Tokens still need to roll their Reaction Roll.", - "confirmation": "Are you sure you want to continue ?", - "warning": "Undone reaction rolls will be considered as failed" - }, "ReactionRoll": { "title": "Reaction Roll: {trait}" }, @@ -731,7 +706,7 @@ "FIELDS": { "initiator": { "memberId": { "label": "Initiating Character" }, - "cost": { "label": "Hope Cost" } + "cost": { "label": "Initiation Cost" } } }, "leaderTitle": "Initiating Character", @@ -760,11 +735,11 @@ }, "GroupRollSelect": { "title": "Group Roll", - "aidingCharacters": "Aiding Characters", "leader": "Leader", "leaderRoll": "Leader Roll", "openDialogForAll": "Open Dialog For All", "startGroupRoll": "Start Group Roll", + "cancelGroupRoll": "Cancel", "finishGroupRoll": "Finish Group Roll", "cancelConfirmTitle": "Cancel Group Roll", "cancelConfirmText": "Are you sure you want to cancel the Group Roll? This will close it for all other players too." @@ -789,11 +764,6 @@ "session": "Next Session", "custom": "Custom" }, - "ActionAutomationChoices": { - "never": "Never", - "showDialog": "Show Dialog Only", - "always": "Always" - }, "AdversaryTrait": { "relentless": { "name": "Relentless", @@ -1323,11 +1293,6 @@ "on": "On", "onWithToggle": "On With Toggle" }, - "SceneRangeMeasurementTypes": { - "disable": "Disable Daggerheart Range Measurement", - "default": "Default", - "custom": "Custom" - }, "SelectAction": { "selectType": "Select Action Type", "selectAction": "Action Selection" @@ -2027,10 +1992,6 @@ "hint": "Multiply any damage dealt to you by this number" } }, - "Battlepoints": { - "full": "Battlepoints", - "short": "BP" - }, "Bonuses": { "rest": { "downtimeAction": "Downtime Action", @@ -2441,13 +2402,10 @@ "maxWithThing": "Max {thing}", "missingDragDropThing": "Drop {thing} here", "multiclass": "Multiclass", - "name": "Name", "newCategory": "New Category", "newThing": "New {thing}", - "next": "Next", "none": "None", "noTarget": "No current target", - "optionalThing": "Optional {thing}", "partner": "Partner", "player": { "single": "Player", @@ -2474,11 +2432,9 @@ "rollDamage": "Roll Damage", "rollWith": "{roll} Roll", "save": "Save", - "saveSettings": "Save Settings", "scalable": "Scalable", "scars": "Scars", "situationalBonus": "Situational Bonus", - "searchPlaceholder": "Search...", "spent": "Spent", "step": "Step", "stress": "Stress", @@ -2629,14 +2585,8 @@ }, "Weapon": { "weaponType": "Weapon Type", - "primaryWeapon": { - "full": "Primary Weapon", - "short": "Primary" - }, - "secondaryWeapon": { - "full": "Secondary Weapon", - "short": "Secondary" - } + "primaryWeapon": "Primary Weapon", + "secondaryWeapon": "Secondary Weapon" } }, "MACROS": { @@ -2890,10 +2840,6 @@ } }, "Keybindings": { - "partySheet": { - "name": "Toggle Party Sheet", - "hint": "Open or close the active party's sheet" - }, "spotlight": { "name": "Spotlight Combatant", "hint": "Move the spotlight to a hovered or selected token that's present in an active encounter" @@ -3064,9 +3010,6 @@ "resourceRoll": { "playerMessage": "{user} rerolled their {name}" }, - "saveRoll": { - "reactionRollAllTargets": "Reaction Roll All Targets" - }, "tagTeam": { "title": "Tag Team", "membersTitle": "Members" @@ -3095,9 +3038,9 @@ }, "ItemBrowser": { "title": "Daggerheart Compendium Browser", - "windowTitle": "Compendium Browser", "hint": "Select a Folder in sidebar to start browsing through the compendium", "browserSettings": "Browser Settings", + "searchPlaceholder": "Search...", "columnName": "Name", "tooltipFilters": "Filters", "tooltipErase": "Erase", @@ -3133,7 +3076,7 @@ "weapons": "Weapons", "armors": "Armors", "consumables": "Consumables", - "loots": "Loot" + "loots": "Loots" } }, "Notifications": { @@ -3228,9 +3171,6 @@ "companion": "Level {level} - {partner}", "companionNoPartner": "No Partner", "duplicateToNewTier": "Duplicate to New Tier", - "activateParty": "Make Active Party", - "partyIsActive": "Active", - "createAdversary": "Create Adversary", "pickTierTitle": "Pick a new tier for this adversary" }, "daggerheartMenu": { @@ -3242,7 +3182,6 @@ "Tooltip": { "disableEffect": "Disable Effect", "enableEffect": "Enable Effect", - "edit": "Edit", "openItemWorld": "Open Item World", "openActorWorld": "Open Actor World", "sendToChat": "Send to Chat", diff --git a/module/applications/characterCreation/characterCreation.mjs b/module/applications/characterCreation/characterCreation.mjs index 936bb79d..e6c0f299 100644 --- a/module/applications/characterCreation/characterCreation.mjs +++ b/module/applications/characterCreation/characterCreation.mjs @@ -11,10 +11,7 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl this.character = character; this.setup = { - traits: Object.keys(this.character.system.traits).reduce((acc, key) => { - acc[key] = { value: null }; - return acc; - }, {}), + traits: this.character.system.traits, ancestryName: { primary: '', secondary: '' @@ -380,10 +377,8 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl ]; return Object.values(this.setup.traits).reduce((acc, x) => { const index = traitCompareArray.indexOf(x.value); - if (index === -1) return acc; - traitCompareArray.splice(index, 1); - acc += 1; + acc += index !== -1; return acc; }, 0); } diff --git a/module/applications/dialogs/actionSelectionDialog.mjs b/module/applications/dialogs/actionSelectionDialog.mjs index 995c4894..c421a577 100644 --- a/module/applications/dialogs/actionSelectionDialog.mjs +++ b/module/applications/dialogs/actionSelectionDialog.mjs @@ -72,8 +72,8 @@ export default class ActionSelectionDialog extends HandlebarsApplicationMixin(Ap static async #onChooseAction(event, button) { const { actionId } = button.dataset; - this.action = this.item.system.actionsList.find(a => a._id === actionId); - Object.defineProperty(this.event, 'shiftKey', { + this.#action = this.#item.system.actionsList.find(a => a._id === actionId); + Object.defineProperty(this.#event, 'shiftKey', { get() { return event.shiftKey; } diff --git a/module/applications/dialogs/d20RollDialog.mjs b/module/applications/dialogs/d20RollDialog.mjs index 067aa473..64fa168a 100644 --- a/module/applications/dialogs/d20RollDialog.mjs +++ b/module/applications/dialogs/d20RollDialog.mjs @@ -123,10 +123,6 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio context.advantage = this.config.roll?.advantage; context.disadvantage = this.config.roll?.disadvantage; context.diceOptions = CONFIG.DH.GENERAL.diceTypes; - context.dieFaces = CONFIG.DH.GENERAL.dieFaces.reduce((acc, face) => { - acc[face] = `d${face}`; - return acc; - }, {}); context.isLite = this.config.roll?.lite; context.extraFormula = this.config.extraFormula; context.formula = this.roll.constructFormula(this.config); @@ -156,7 +152,9 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio } if (this.config.uses) this.config.uses = foundry.utils.mergeObject(this.config.uses, rest.uses); if (rest.roll?.dice) { - this.roll = foundry.utils.mergeObject(this.roll, rest.roll.dice); + Object.entries(rest.roll.dice).forEach(([key, value]) => { + this.roll[key] = value; + }); } if (rest.hasOwnProperty('trait')) { this.config.roll.trait = rest.trait; @@ -175,15 +173,6 @@ export default class D20RollDialog extends HandlebarsApplicationMixin(Applicatio this.disadvantage = advantage === -1; this.config.roll.advantage = this.config.roll.advantage === advantage ? 0 : advantage; - - if (this.config.roll.advantage === 1 && this.config.data.rules.roll.defaultAdvantageDice) { - const faces = Number.parseInt(this.config.data.rules.roll.defaultAdvantageDice); - this.roll.advantageFaces = Number.isNaN(faces) ? this.roll.advantageFaces : faces; - } else if (this.config.roll.advantage === -1 && this.config.data.rules.roll.defaultDisadvantageDice) { - const faces = Number.parseInt(this.config.data.rules.roll.defaultDisadvantageDice); - this.roll.advantageFaces = Number.isNaN(faces) ? this.roll.advantageFaces : faces; - } - this.render(); } diff --git a/module/applications/dialogs/downtime.mjs b/module/applications/dialogs/downtime.mjs index 989e4625..3475dee7 100644 --- a/module/applications/dialogs/downtime.mjs +++ b/module/applications/dialogs/downtime.mjs @@ -259,9 +259,8 @@ export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV const resetValue = increasing ? 0 : feature.system.resource.max - ? new Roll(Roll.replaceFormulaData(feature.system.resource.max, this.actor)).evaluateSync().total + ? Roll.replaceFormulaData(feature.system.resource.max, this.actor) : 0; - await feature.update({ 'system.resource.value': resetValue }); } diff --git a/module/applications/dialogs/groupRollDialog.mjs b/module/applications/dialogs/groupRollDialog.mjs index a47dd0a8..2a7be791 100644 --- a/module/applications/dialogs/groupRollDialog.mjs +++ b/module/applications/dialogs/groupRollDialog.mjs @@ -116,7 +116,7 @@ export default class GroupRollDialog extends HandlebarsApplicationMixin(Applicat initializationPart.insertAdjacentHTML('afterend', '
'); initializationPart.insertAdjacentHTML( 'afterend', - `${game.i18n.localize('DAGGERHEART.APPLICATIONS.PendingReactionsDialog.unfinishedRolls')}
${game.i18n.localize('DAGGERHEART.APPLICATIONS.PendingReactionsDialog.confirmation')}
${game.i18n.localize('DAGGERHEART.APPLICATIONS.PendingReactionsDialog.warning')}
` + window: { title: 'Pending Reaction Rolls found' }, + content: `Some Tokens still need to roll their Reaction Roll.
Are you sure you want to continue ?
Undone reaction rolls will be considered as failed
` }); if (!confirm) return; } @@ -253,54 +249,6 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage { this.system.action?.workflow.get('effects')?.execute(config, targets, true); } - async onCreateAreas(event) { - const createArea = async selectedArea => { - const effects = selectedArea.effects.map(effect => this.system.action.item.effects.get(effect).uuid); - const { shape: type, size: range } = selectedArea; - const shapeData = CONFIG.Canvas.layers.regions.layerClass.getTemplateShape({ type, range }); - - await canvas.regions.placeRegion( - { - name: selectedArea.name, - shapes: [shapeData], - restriction: { enabled: false, type: 'move', priority: 0 }, - behaviors: [ - { - name: game.i18n.localize('TYPES.RegionBehavior.applyActiveEffect'), - type: 'applyActiveEffect', - system: { - effects: effects - } - } - ], - displayMeasurements: true, - locked: false, - ownership: { default: CONST.DOCUMENT_OWNERSHIP_LEVELS.NONE }, - visibility: CONST.REGION_VISIBILITY.ALWAYS - }, - { create: true } - ); - }; - - if (this.system.action.areas.length === 1) createArea(this.system.action.areas[0]); - else if (this.system.action.areas.length > 1) { - new foundry.applications.ux.ContextMenu.implementation( - event.target, - '.action-areas', - this.system.action.areas.map(area => ({ - label: area.name, - onClick: () => createArea(area) - })), - { - jQuery: false, - fixed: true - } - ); - - CONFIG.ux.ContextMenu.triggerContextMenu(event, '.action-areas'); - } - } - filterPermTargets(targets) { return targets.filter(t => fromUuidSync(t.actorId)?.canUserModify(game.user, 'update')); } diff --git a/module/documents/collections/actorCollection.mjs b/module/documents/collections/actorCollection.mjs index 115dd694..a3714b30 100644 --- a/module/documents/collections/actorCollection.mjs +++ b/module/documents/collections/actorCollection.mjs @@ -1,11 +1,4 @@ export default class DhActorCollection extends foundry.documents.collections.Actors { - /** @returns the active party */ - get party() { - const id = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.ActiveParty); - const actor = game.actors.get(id); - return actor?.type === 'party' ? actor : null; - } - /** Ensure companions are initialized after all other subtypes. */ _initialize() { super._initialize(); diff --git a/module/documents/item.mjs b/module/documents/item.mjs index 8ece56fa..d1a618c7 100644 --- a/module/documents/item.mjs +++ b/module/documents/item.mjs @@ -31,13 +31,8 @@ export default class DHItem extends foundry.documents.Item { static async createDocuments(sources, operation) { // Ensure that items being created are valid to the actor its being added to const actor = operation.parent; - const filtered = actor ? sources.filter(s => actor.system.isItemValid(s)) : sources; - if (actor && filtered.length === 0 && sources.length > 0) { - const itemType = _loc(`TYPES.Item.${sources[0].type}`); - const actorType = _loc(`TYPES.Actor.${actor.type}`); - ui.notifications.error('DAGGERHEART.ACTORS.Base.CannotAddType', { format: { itemType, actorType } }); - } - return super.createDocuments(filtered, operation); + sources = actor?.system?.isItemValid ? sources.filter(s => actor.system.isItemValid(s)) : sources; + return super.createDocuments(sources, operation); } /* -------------------------------------------- */ @@ -76,13 +71,6 @@ export default class DHItem extends foundry.documents.Item { return this.system.metadata.isInventoryItem ?? false; } - /** Returns true if the item can be used */ - get usable() { - const actor = this.actor; - const actionsList = this.system.actionsList; - return this.isOwner && actor?.type === 'character' && (actionsList?.size || actionsList?.length); - } - /** @inheritdoc */ static async createDialog(data = {}, createOptions = {}, options = {}) { const { folders, types, template, context = {}, ...dialogOptions } = options; diff --git a/module/documents/tokenManager.mjs b/module/documents/tokenManager.mjs index 3ccff4e2..f766a677 100644 --- a/module/documents/tokenManager.mjs +++ b/module/documents/tokenManager.mjs @@ -1,68 +1,104 @@ /** - * A singleton class that handles creating tokens. + * A singleton class that handles preview tokens. */ export default class DhTokenManager { + #activePreview; + #actor; + #resolve; + /** - * Create a token previer - * @param {Actor} actor - * @param {object} tokenData + * Create a template preview, deactivating any existing ones. + * @param {object} data */ async createPreview(actor, tokenData) { - const tokenSizes = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).tokenSizes; - if (actor?.system.metadata.usesSize) { - const tokenSize = tokenSizes[actor.system.size]; - if (tokenSize && actor.system.size !== CONFIG.DH.ACTOR.tokenSize.custom.id) { - tokenData.width = tokenSize; - tokenData.height = tokenSize; - } - } - - return await canvas.tokens.placeTokens( - [ - { - ...actor.prototypeToken.toObject(), - actorId: actor.id, - displayName: 50, - ...tokenData - } - ], - { create: false } + this.#actor = actor; + const token = await canvas.tokens._createPreview( + { + ...actor.prototypeToken, + displayName: 50, + ...tokenData + }, + { renderSheet: false, actor } ); + + this.#activePreview = { + document: token.document, + object: token, + origin: { x: token.document.x, y: token.document.y } + }; + + this.#activePreview.events = { + contextmenu: this.#cancelTemplate.bind(this), + mousedown: this.#confirmTemplate.bind(this), + mousemove: this.#onDragMouseMove.bind(this) + }; + + canvas.stage.on('mousemove', this.#activePreview.events.mousemove); + canvas.stage.on('mousedown', this.#activePreview.events.mousedown); + canvas.app.view.addEventListener('contextmenu', this.#activePreview.events.contextmenu); + } + + /* Currently intended for using as a preview of where to create a token. (note the flag) */ + async createPreviewAsync(actor, tokenData = {}) { + return new Promise(resolve => { + this.#resolve = resolve; + this.createPreview(actor, { ...tokenData, flags: { daggerheart: { createPlacement: true } } }); + }); } /** - * Creates new tokens on the canvas by placing previews. - * @param {object} tokenData - * @param {object} options + * Handles the movement of the token preview on mousedrag. + * @param {mousemove Event} event */ - async createTokensWithPreview(tokensData, { elevation } = {}) { - const scene = game.scenes.get(game.user.viewedScene); - if (!scene) return; + #onDragMouseMove(event) { + event.stopPropagation(); + const { moveTime, object } = this.#activePreview; + const update = {}; - const level = scene.levels.get(game.user.viewedLevel); - if (!level) return; + const now = Date.now(); + if (now - (moveTime || 0) <= 16) return; + this.#activePreview.moveTime = now; - const createElevation = elevation ?? level.elevation.bottom; - for (const tokenData of tokensData) { - const previewTokens = await this.createPreview(tokenData.actor, { - name: tokenData.tokenPreviewName, - level: game.user.viewedLevel, - elevation: createElevation, - flags: { daggerheart: { createPlacement: true } } - }); - if (!previewTokens?.length) return null; + let cursor = event.getLocalPosition(canvas.templates); - await canvas.scene.createEmbeddedDocuments( - 'Token', - previewTokens.map(x => ({ - ...x.toObject(), - name: tokenData.actor.prototypeToken.name, - displayName: tokenData.actor.prototypeToken.displayName, - flags: tokenData.actor.prototypeToken.flags - })), - { controlObject: true, parent: canvas.scene } - ); - } + Object.assign(update, canvas.grid.getTopLeftPoint(cursor)); + + object.document.updateSource(update); + object.renderFlags.set({ refresh: true }); + } + + /** + * Cancels the preview token on right-click. + * @param {contextmenu Event} event + */ + #cancelTemplate(_event, resolved) { + const { mousemove, mousedown, contextmenu } = this.#activePreview.events; + this.#activePreview.object.destroy(); + + canvas.stage.off('mousemove', mousemove); + canvas.stage.off('mousedown', mousedown); + canvas.app.view.removeEventListener('contextmenu', contextmenu); + if (this.#resolve && !resolved) this.#resolve(false); + } + + /** + * Creates a real Actor and token at the preview location and cancels the preview. + * @param {click Event} event + */ + async #confirmTemplate(event) { + event.stopPropagation(); + this.#cancelTemplate(event, true); + + const actor = this.#actor.inCompendium + ? await game.system.api.documents.DhpActor.create(this.#actor.toObject()) + : this.#actor; + const tokenData = await actor.getTokenDocument(); + const result = await canvas.scene.createEmbeddedDocuments('Token', [ + { ...tokenData.toObject(), x: this.#activePreview.document.x, y: this.#activePreview.document.y } + ]); + + this.#activePreview = undefined; + if (this.#resolve && result.length) this.#resolve(result[0]); } } diff --git a/module/enrichers/TemplateEnricher.mjs b/module/enrichers/TemplateEnricher.mjs index 8db3ec14..cd0e7d9c 100644 --- a/module/enrichers/TemplateEnricher.mjs +++ b/module/enrichers/TemplateEnricher.mjs @@ -12,7 +12,7 @@ export default function DhTemplateEnricher(match, _options) { )?.id : params.range; - if (!CONFIG.DH.GENERAL.templateTypes[type] || !range) return match[0]; + if (!Object.values(CONFIG.DH.GENERAL.templateTypes).find(x => x === type) || !range) return match[0]; const label = game.i18n.localize(`DAGGERHEART.CONFIG.TemplateTypes.${type}`); const rangeDisplay = Number.isNaN(Number(range)) @@ -49,6 +49,8 @@ export default function DhTemplateEnricher(match, _options) { } export const renderMeasuredTemplate = async event => { + const { LINE, RECTANGLE, INFRONT, CONE } = CONFIG.DH.GENERAL.templateTypes; + const button = event.currentTarget, type = button.dataset.type, range = button.dataset.range, @@ -57,16 +59,49 @@ export const renderMeasuredTemplate = async event => { if (!type || !range || !game.canvas.scene) return; - const shapeData = CONFIG.Canvas.layers.regions.layerClass.getTemplateShape({ - type, - angle, - range, - direction - }); + const usedType = type === 'inFront' ? 'cone' : type; + const usedAngle = + type === CONE ? (angle ?? CONFIG.MeasuredTemplate.defaults.angle) : type === INFRONT ? '180' : undefined; + + let baseDistance = getTemplateDistance(range); + + const { grid, distance } = CONFIG.Scene.documentClass.schema.fields.grid.fields; + const sceneGridSize = canvas.scene?.grid.size ?? grid.size.initial; + const sceneGridDistance = canvas.scene?.grid.distance ?? distance.getInitialValue(); + const dimensionConstant = sceneGridSize / sceneGridDistance; + + baseDistance *= dimensionConstant; + + const length = baseDistance; + const radius = length; + + const shapeWidth = type === LINE ? 5 * dimensionConstant : type === RECTANGLE ? length : undefined; + + const { width, height } = game.canvas.scene.dimensions; + const shapeData = { + x: width / 2, + y: height / 2, + base: { + type: 'token', + x: 0, + y: 0, + width: 1, + height: 1, + shape: game.canvas.grid.isHexagonal ? CONST.TOKEN_SHAPES.ELLIPSE_1 : CONST.TOKEN_SHAPES.RECTANGLE_1 + }, + t: usedType, + length: length, + width: shapeWidth, + height: length, + angle: usedAngle, + radius: radius, + direction: direction, + type: usedType + }; await canvas.regions.placeRegion( { - name: type.capitalize(), + name: usedType.capitalize(), shapes: [shapeData], restriction: { enabled: false, type: 'move', priority: 0 }, behaviors: [], @@ -78,3 +113,11 @@ export const renderMeasuredTemplate = async event => { { create: true } ); }; + +const getTemplateDistance = range => { + const rangeNumber = Number(range); + if (!Number.isNaN(rangeNumber)) return rangeNumber; + + const settings = canvas.scene?.rangeSettings; + return settings ? settings[range] : 0; +}; diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index 4527da1a..131f94b7 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -189,13 +189,7 @@ export const getDeleteKeys = (property, innerProperty, innerPropertyDefaultValue // Fix on Foundry native formula replacement for DH const nativeReplaceFormulaData = Roll.replaceFormulaData; -Roll.replaceFormulaData = function (formula, baseData = {}, { missing, warn = false } = {}) { - /* Inserting global data */ - const data = { - ...baseData, - partySize: game.actors?.party?.system.partyMembers.length ?? 0 - }; - +Roll.replaceFormulaData = function (formula, data = {}, { missing, warn = false } = {}) { const terms = Object.keys(CONFIG.DH.GENERAL.multiplierTypes).map(type => { return { term: type, default: 1 }; }); diff --git a/module/systemRegistration/handlebars.mjs b/module/systemRegistration/handlebars.mjs index 1b08e0ad..63e591c6 100644 --- a/module/systemRegistration/handlebars.mjs +++ b/module/systemRegistration/handlebars.mjs @@ -10,7 +10,6 @@ export const preloadHandlebarsTemplates = async function () { '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/gold.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', @@ -29,7 +28,6 @@ export const preloadHandlebarsTemplates = async function () { 'systems/daggerheart/templates/actionTypes/uses.hbs', 'systems/daggerheart/templates/actionTypes/roll.hbs', 'systems/daggerheart/templates/actionTypes/save.hbs', - 'systems/daggerheart/templates/actionTypes/areas.hbs', 'systems/daggerheart/templates/actionTypes/cost.hbs', 'systems/daggerheart/templates/actionTypes/range-target.hbs', 'systems/daggerheart/templates/actionTypes/effect.hbs', diff --git a/module/systemRegistration/settings.mjs b/module/systemRegistration/settings.mjs index 41cab011..63611cda 100644 --- a/module/systemRegistration/settings.mjs +++ b/module/systemRegistration/settings.mjs @@ -52,27 +52,6 @@ export const registerKeyBindings = () => { reservedModifiers: [], precedence: CONST.KEYBINDING_PRECEDENCE.NORMAL }); - - game.keybindings.register(CONFIG.DH.id, CONFIG.DH.SETTINGS.keybindings.partySheet, { - name: _loc('DAGGERHEART.SETTINGS.Keybindings.partySheet.name'), - hint: _loc('DAGGERHEART.SETTINGS.Keybindings.partySheet.hint'), - editable: [{ key: 'KeyP' }], - onDown: () => { - const controlled = canvas.ready ? canvas.tokens.controlled : []; - const selectedParty = controlled.find(c => c.actor?.type === 'party')?.actor; - const party = selectedParty ?? game.actors.party; - if (!party) return; - - const sheet = party.sheet; - if (!sheet.rendered) { - sheet.render(true); - } else if (sheet.minimized) { - sheet.maximize(); - } else { - sheet.close(); - } - } - }); }; const registerMenuSettings = () => { @@ -210,11 +189,4 @@ const registerNonConfigSettings = () => { config: false, type: SpotlightTracker }); - - game.settings.register(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.ActiveParty, { - scope: 'world', - config: false, - type: String, - default: null - }); }; diff --git a/package-lock.json b/package-lock.json index b8fef1cd..864d027c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,9 +16,6 @@ "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-node-resolve": "^15.2.3", "concurrently": "^8.2.2", - "eslint": "^10.2.1", - "eslint-plugin-prettier": "^5.5.5", - "globals": "^17.5.0", "husky": "^9.1.5", "lint-staged": "^15.2.10", "postcss": "^8.4.32", @@ -35,152 +32,6 @@ "node": ">=6.9.0" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", - "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", - "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.23.5", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", - "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^3.0.5", - "debug": "^4.3.1", - "minimatch": "^10.2.4" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, - "node_modules/@eslint/config-array/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@eslint/config-array/node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@eslint/config-helpers": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.5.tgz", - "integrity": "sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^1.2.1" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, - "node_modules/@eslint/core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", - "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, - "node_modules/@eslint/object-schema": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", - "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.1.tgz", - "integrity": "sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^1.2.1", - "levn": "^0.4.1" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, "node_modules/@foundryvtt/foundryvtt-cli": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@foundryvtt/foundryvtt-cli/-/foundryvtt-cli-1.1.0.tgz", @@ -221,91 +72,12 @@ "node": ">=10.13.0" } }, - "node_modules/@humanfs/core": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", - "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/types": "^0.15.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", - "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.2", - "@humanfs/types": "^0.15.0", - "@humanwhocodes/retry": "^0.4.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/types": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", - "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", - "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, - "node_modules/@pkgr/core": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", - "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/pkgr" - } - }, "node_modules/@rollup/plugin-commonjs": { "version": "25.0.8", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.8.tgz", @@ -643,25 +415,11 @@ "node": ">=10.13.0" } }, - "node_modules/@types/esrecurse": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", - "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", @@ -700,46 +458,6 @@ "node": ">=12" } }, - "node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", - "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/ansi-colors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", @@ -1699,13 +1417,6 @@ } } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -1911,190 +1622,6 @@ "node": ">=6" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.2.1.tgz", - "integrity": "sha512-wiyGaKsDgqXvF40P8mDwiUp/KQjE1FdrIEJsM8PZ3XCiniTMXS3OHWWUe5FI5agoCnr8x4xPrTDZuxsBlNHl+Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.2", - "@eslint/config-array": "^0.23.5", - "@eslint/config-helpers": "^0.5.5", - "@eslint/core": "^1.2.1", - "@eslint/plugin-kit": "^0.7.1", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "ajv": "^6.14.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^9.1.2", - "eslint-visitor-keys": "^5.0.1", - "espree": "^11.2.0", - "esquery": "^1.7.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "minimatch": "^10.2.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "5.5.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz", - "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.1", - "synckit": "^0.11.12" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-scope": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", - "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@types/esrecurse": "^4.3.1", - "@types/estree": "^1.0.8", - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", - "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/esm": { "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", @@ -2104,76 +1631,12 @@ "node": ">=6" } }, - "node_modules/espree": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", - "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.16.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^5.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", - "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", @@ -2231,32 +1694,11 @@ "node": ">=0.10.0" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/fast-fifo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, "node_modules/fast-levenshtein": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", @@ -2281,19 +1723,6 @@ "reusify": "^1.0.4" } }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -2305,23 +1734,6 @@ "node": ">=8" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/findup-sync": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", @@ -2359,27 +1771,6 @@ "node": ">= 10.13.0" } }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", - "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", - "dev": true, - "license": "ISC" - }, "node_modules/for-each": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", @@ -2642,19 +2033,6 @@ "which": "bin/which" } }, - "node_modules/globals": { - "version": "17.5.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.5.0.tgz", - "integrity": "sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/glogg": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/glogg/-/glogg-2.2.0.tgz", @@ -3003,16 +2381,6 @@ } ] }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", @@ -3055,16 +2423,6 @@ "node": ">=8" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3411,37 +2769,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, "node_modules/last-run": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/last-run/-/last-run-2.0.0.tgz", @@ -3505,20 +2832,6 @@ "node": ">=12" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/lie": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", @@ -3619,22 +2932,6 @@ "lie": "3.1.1" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -3905,13 +3202,6 @@ "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==", "dev": true }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, "node_modules/nedb-promises": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/nedb-promises/-/nedb-promises-6.2.3.tgz", @@ -4080,31 +3370,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/optionator/node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -4114,38 +3379,6 @@ "node": ">=4" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-queue": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", @@ -4209,16 +3442,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -4917,16 +4140,6 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/prettier": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", @@ -4942,19 +4155,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz", - "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/promise.series": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz", @@ -4981,16 +4181,6 @@ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "optional": true }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -5760,22 +4950,6 @@ "node": ">= 10" } }, - "node_modules/synckit": { - "version": "0.11.12", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz", - "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@pkgr/core": "^0.2.9" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/synckit" - } - }, "node_modules/teex": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", @@ -5836,19 +5010,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -5909,16 +5070,6 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", @@ -6071,16 +5222,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrap-ansi": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", @@ -6172,19 +5313,6 @@ "engines": { "node": ">=12" } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } } } } diff --git a/package.json b/package.json index 28c83549..183d2de2 100644 --- a/package.json +++ b/package.json @@ -17,18 +17,13 @@ "pullYMLtoLDB": "node ./tools/pullYMLtoLDB.mjs", "pullYMLtoLDBBuild": "node ./tools/pullYMLtoLDB.mjs --build", "createSymlink": "node ./tools/create-symlink.mjs", - "setup:dev": "node ./tools/dev-setup.mjs", - "lint": "eslint", - "lint:fix": "eslint --fix" + "setup:dev": "node ./tools/dev-setup.mjs" }, "devDependencies": { "@foundryvtt/foundryvtt-cli": "^1.0.2", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-node-resolve": "^15.2.3", "concurrently": "^8.2.2", - "eslint": "^10.2.1", - "eslint-plugin-prettier": "^5.5.5", - "globals": "^17.5.0", "husky": "^9.1.5", "lint-staged": "^15.2.10", "postcss": "^8.4.32", diff --git a/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json b/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json index d3c8c955..0dd182fa 100644 --- a/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json +++ b/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json @@ -169,9 +169,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -222,7 +225,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -248,8 +251,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -317,7 +319,7 @@ "_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.
", + "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]
", "resource": null, "actions": { "4ppSeiTdbqnMzWAs": { @@ -342,8 +344,7 @@ }, "damage": { "parts": {}, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -377,16 +378,7 @@ }, "name": "Roll Save", "img": "icons/magic/earth/barrier-stone-explosion-red.webp", - "range": "veryClose", - "areas": [ - { - "name": "Earth Eruption", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, @@ -589,7 +581,7 @@ "_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.
", + "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]
", "resource": null, "actions": { "XbtTzOBvlTaxOKTy": { @@ -635,8 +627,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -645,23 +636,7 @@ "effects": [], "name": "Splash", "img": "icons/magic/acid/dissolve-drip-droplet-smoke.webp", - "range": "close", - "areas": [ - { - "name": "Acid Bath: Damage Area", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - }, - { - "name": "Acid Ground", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "close" }, "xpcp1ECTWF20kxve": { "type": "damage", @@ -715,8 +690,7 @@ "effects": [], "name": "Acid Ground", "img": "icons/magic/acid/dissolve-pool-bubbles.webp", - "range": "", - "areas": [] + "range": "" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Adult_Flickerfly_G7jiltRjgvVhZewm.json b/src/packs/adversaries/adversary_Adult_Flickerfly_G7jiltRjgvVhZewm.json index ecb93d1b..c4b4eb2a 100644 --- a/src/packs/adversaries/adversary_Adult_Flickerfly_G7jiltRjgvVhZewm.json +++ b/src/packs/adversaries/adversary_Adult_Flickerfly_G7jiltRjgvVhZewm.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -374,7 +376,7 @@ "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.
", + "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]
", "resource": null, "actions": { "RV1wKufKrMPN6MOo": { @@ -427,8 +429,7 @@ } }, "includeBase": false, - "direct": true, - "groupAttack": "" + "direct": true }, "target": { "type": "any", @@ -457,16 +458,7 @@ }, "name": "Attack", "img": "icons/skills/melee/strike-slashes-orange.webp", - "range": "veryClose", - "areas": [ - { - "name": "Whirlwind", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, @@ -492,7 +484,7 @@ "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.
", + "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]
", "resource": null, "actions": { "GNwsDlCabx3fiG4g": { @@ -517,8 +509,7 @@ }, "damage": { "parts": {}, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -547,16 +538,7 @@ }, "name": "Roll Save", "img": "icons/magic/light/explosion-glow-spiral-yellow.webp", - "range": "close", - "areas": [ - { - "name": "Mind Dance", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, @@ -582,14 +564,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.
", + "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]
", "resource": null, "actions": { "YOyKyKGTUEWkMmJe": { "type": "attack", "_id": "YOyKyKGTUEWkMmJe", "systemPath": "actions", - "description": "", + "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]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -652,8 +634,7 @@ "type": [] } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -682,16 +663,7 @@ }, "name": "Roll Save", "img": "icons/magic/air/fog-gas-smoke-purple.webp", - "range": "far", - "areas": [ - { - "name": "Hallucinatory Breath", - "type": "placed", - "shape": "inFront", - "size": "far", - "effects": [] - } - ] + "range": "far" }, "lBhmLc33pcXzJHT3": { "type": "countdown", diff --git a/src/packs/adversaries/adversary_Arch_Necromancer_WPEOIGfclNJxWb87.json b/src/packs/adversaries/adversary_Arch_Necromancer_WPEOIGfclNJxWb87.json index 5da74eb3..dfae0598 100644 --- a/src/packs/adversaries/adversary_Arch_Necromancer_WPEOIGfclNJxWb87.json +++ b/src/packs/adversaries/adversary_Arch_Necromancer_WPEOIGfclNJxWb87.json @@ -143,9 +143,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -196,7 +199,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -222,8 +225,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -310,7 +312,7 @@ "name": "Beam Of Decay", "type": "feature", "system": { - "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.
", + "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]
", "resource": null, "actions": { "vaXLESD4sRkQ3Ahn": { @@ -362,8 +364,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -397,16 +398,7 @@ }, "name": "Roll Save", "img": "icons/magic/unholy/projectile-missile-green.webp", - "range": "far", - "areas": [ - { - "name": "Beam Of Decay", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" }, "ME8AMAjgTAChHa3C": { "type": "healing", diff --git a/src/packs/adversaries/adversary_Archer_Squadron_0ts6CGd93lLqGZI5.json b/src/packs/adversaries/adversary_Archer_Squadron_0ts6CGd93lLqGZI5.json index 1e45b90a..67e10c53 100644 --- a/src/packs/adversaries/adversary_Archer_Squadron_0ts6CGd93lLqGZI5.json +++ b/src/packs/adversaries/adversary_Archer_Squadron_0ts6CGd93lLqGZI5.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -244,7 +246,7 @@ "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.
", + "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]
", "resource": null, "actions": { "uG7Hl2DqaT69aNs1": { @@ -294,8 +296,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -324,16 +325,7 @@ }, "name": "Attack", "img": "icons/skills/ranged/arrows-flying-triple-brown.webp", - "range": "far", - "areas": [ - { - "name": "Focused Volley", - "type": "placed", - "shape": "circle", - "size": "close", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, @@ -359,7 +351,7 @@ "name": "Supressing Fire", "type": "feature", "system": { - "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.
", + "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]
", "resource": null, "actions": { "mH6mmJIMM1fwzePt": { @@ -402,8 +394,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -432,16 +423,7 @@ }, "name": "Agility Roll", "img": "icons/skills/ranged/arrows-flying-salvo-blue.webp", - "range": "", - "areas": [ - { - "name": "Supressing Fire", - "type": "placed", - "shape": "circle", - "size": "close", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Assassin_Poisoner_h5RuhzGL17dW5FBT.json b/src/packs/adversaries/adversary_Assassin_Poisoner_h5RuhzGL17dW5FBT.json index c1bce57b..4b3a872a 100644 --- a/src/packs/adversaries/adversary_Assassin_Poisoner_h5RuhzGL17dW5FBT.json +++ b/src/packs/adversaries/adversary_Assassin_Poisoner_h5RuhzGL17dW5FBT.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,8 +220,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -397,7 +399,7 @@ "name": "Fumigation", "type": "feature", "system": { - "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.
", + "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]
", "resource": null, "actions": { "sp7RfJRQJsEUm09m": { @@ -425,16 +427,7 @@ }, "name": "Drop Bomb", "img": "icons/magic/air/fog-gas-smoke-green.webp", - "range": "close", - "areas": [ - { - "name": "Fumigation", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, @@ -457,15 +450,18 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [] + } }, + "changes": [], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, "description": "Dizzied targets have disadvantage on their next action roll, then clear the condition.
", "tint": "#ffffff", @@ -475,9 +471,6 @@ "_stats": { "compendiumSource": null }, - "start": null, - "showIcon": 1, - "folder": null, "_key": "!actors.items.effects!h5RuhzGL17dW5FBT.lAmiK8wVxjyHwKlp.yP4ot8VqS56RnxnE" } ], diff --git a/src/packs/adversaries/adversary_Battle_Box_dgH3fW9FTYLaIDvS.json b/src/packs/adversaries/adversary_Battle_Box_dgH3fW9FTYLaIDvS.json index be47829b..74ed8dfd 100644 --- a/src/packs/adversaries/adversary_Battle_Box_dgH3fW9FTYLaIDvS.json +++ b/src/packs/adversaries/adversary_Battle_Box_dgH3fW9FTYLaIDvS.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,8 +220,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -463,7 +465,7 @@ "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.
", + "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]
", "resource": null, "actions": { "hRAKaOdzQXLYBNVV": { @@ -508,8 +510,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -538,16 +539,7 @@ }, "name": "Attack", "img": "icons/magic/fire/explosion-embers-orange.webp", - "range": "close", - "areas": [ - { - "name": "Fire Jets", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, @@ -573,7 +565,7 @@ "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.
", + "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]
", "resource": null, "actions": { "IOgPMu12Xnn33TfG": { @@ -618,8 +610,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -653,16 +644,7 @@ }, "name": "Attack", "img": "icons/skills/movement/arrow-upward-yellow.webp", - "range": "close", - "areas": [ - { - "name": "Trample", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, @@ -738,7 +720,7 @@ "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.
", + "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]
", "resource": null, "actions": { "ky4OMl558J5wCbDp": { @@ -782,8 +764,7 @@ "type": [] } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -812,16 +793,7 @@ }, "name": "Roll Save", "img": "icons/magic/lightning/bolt-strike-embers-teal.webp", - "range": "close", - "areas": [ - { - "name": "Shocking Gas", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, @@ -847,7 +819,7 @@ "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.
", + "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]
", "resource": null, "actions": { "LQtopkrtSlCQ5MAr": { @@ -865,8 +837,7 @@ }, "damage": { "parts": {}, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -900,16 +871,7 @@ }, "name": "Roll Save", "img": "icons/magic/sonic/explosion-impact-shock-wave.webp", - "range": "veryClose", - "areas": [ - { - "name": "Stunning Clap", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, @@ -985,7 +947,7 @@ "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.
", + "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]
", "resource": null, "actions": { "3R3pGOUj4rHaUzPK": { @@ -1030,8 +992,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -1060,16 +1021,7 @@ }, "name": "Bees!", "img": "icons/creatures/invertebrates/wasp-swarm-tan.webp", - "range": "close", - "areas": [ - { - "name": "Psionic Whine", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, @@ -1196,7 +1148,7 @@ "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
", + "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]
", "resource": null, "actions": { "oCpv4zi9jtEpo0K1": { @@ -1241,8 +1193,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -1271,16 +1222,7 @@ }, "name": "Roll Save", "img": "icons/magic/sonic/explosion-shock-wave-teal.webp", - "range": "close", - "areas": [ - { - "name": "Death Quake", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json b/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json index a1bf6bc9..cb081441 100644 --- a/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json +++ b/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json @@ -139,9 +139,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -192,7 +195,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -218,8 +221,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -310,7 +312,7 @@ "_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.
", + "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]
", "resource": null, "actions": { "3p1qfHy5uHe4H2hB": { @@ -365,8 +367,7 @@ } }, "includeBase": false, - "direct": true, - "groupAttack": "" + "direct": true }, "target": { "type": "any", @@ -395,16 +396,7 @@ }, "name": "Throw", "img": "icons/magic/earth/projectile-stone-boulder-orange.webp", - "range": "far", - "areas": [ - { - "name": "Hail of Boulders", - "type": "placed", - "shape": "inFront", - "size": "far", - "effects": [] - } - ] + "range": "far" }, "pmeromzI4eQOilbp": { "type": "healing", diff --git a/src/packs/adversaries/adversary_Chaos_Skull_jDmHqGvzg5wjgmxE.json b/src/packs/adversaries/adversary_Chaos_Skull_jDmHqGvzg5wjgmxE.json index 876519cf..a95db1b7 100644 --- a/src/packs/adversaries/adversary_Chaos_Skull_jDmHqGvzg5wjgmxE.json +++ b/src/packs/adversaries/adversary_Chaos_Skull_jDmHqGvzg5wjgmxE.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -357,7 +359,7 @@ "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.
", + "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]
", "resource": null, "actions": { "iF0PD1t3yovKMTfy": { @@ -409,8 +411,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -439,16 +440,7 @@ }, "name": "Attack", "img": "icons/magic/lightning/bolt-strike-purple.webp", - "range": "close", - "areas": [ - { - "name": "Magic Burst", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json b/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json index 3bd154ef..067248c9 100644 --- a/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json +++ b/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -560,8 +562,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -590,16 +591,7 @@ }, "name": "Attack", "img": "icons/magic/sonic/explosion-shock-wave-teal.webp", - "range": "veryClose", - "areas": [ - { - "name": "Death Quake", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Cult_Adept_0NxCSugvKQ4W8OYZ.json b/src/packs/adversaries/adversary_Cult_Adept_0NxCSugvKQ4W8OYZ.json index 27553d32..cbb48681 100644 --- a/src/packs/adversaries/adversary_Cult_Adept_0NxCSugvKQ4W8OYZ.json +++ b/src/packs/adversaries/adversary_Cult_Adept_0NxCSugvKQ4W8OYZ.json @@ -143,9 +143,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -196,7 +199,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -222,8 +225,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -484,7 +486,7 @@ "name": "Shadow Shackles", "type": "feature", "system": { - "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.
", + "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]
", "resource": null, "actions": { "g4RDHrY0AEYXjH52": { @@ -519,16 +521,7 @@ }, "name": "Spend Fear", "img": "icons/magic/air/fog-gas-smoke-dense-pink.webp", - "range": "far", - "areas": [ - { - "name": "Shadow Shackles", - "type": "placed", - "shape": "circle", - "size": "close", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json b/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json index 9ff0a161..aed2e08a 100644 --- a/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json +++ b/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json @@ -137,9 +137,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -190,7 +193,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -216,8 +219,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -226,7 +228,7 @@ "_id": "0DSCzAFXy0hV4afJ", "img": "icons/magic/earth/barrier-stone-brown-green.webp", "system": { - "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.
", + "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]
", "resource": null, "actions": { "55hCZsJQhJNcZ0lX": { @@ -270,8 +272,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -280,16 +281,7 @@ "effects": [], "name": "Stress Damage", "img": "icons/magic/earth/barrier-stone-brown-green.webp", - "range": "veryClose", - "areas": [ - { - "name": "Ground Slam", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Demon_of_Despair_kE4dfhqmIQpNd44e.json b/src/packs/adversaries/adversary_Demon_of_Despair_kE4dfhqmIQpNd44e.json index 6468c1aa..e2f58709 100644 --- a/src/packs/adversaries/adversary_Demon_of_Despair_kE4dfhqmIQpNd44e.json +++ b/src/packs/adversaries/adversary_Demon_of_Despair_kE4dfhqmIQpNd44e.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,8 +220,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -294,7 +296,7 @@ "name": "Your Struggle is Pointless", "type": "feature", "system": { - "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.
", + "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]
", "resource": null, "actions": { "n0RYO05pROFU6ov3": { @@ -329,16 +331,7 @@ }, "name": "Spend Fear", "img": "icons/magic/death/skull-flames-white-blue.webp", - "range": "far", - "areas": [ - { - "name": "Your Struggle is Pointless", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, @@ -418,7 +411,7 @@ "name": "Your Friends Will Fail You", "type": "feature", "system": { - "description": "When a PC fails with Fear, you can mark a Stress to cause all other PCs within Close range to lose a Hope.
", + "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]
", "resource": null, "actions": { "urrp8SCFgqbmSTvm": { @@ -469,8 +462,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -479,16 +471,7 @@ "effects": [], "name": "Lose Hope", "img": "icons/creatures/unholy/demon-fire-horned-mask.webp", - "range": "", - "areas": [ - { - "name": "Your Friends Will Fail You", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Demon_of_Hubris_2VN3BftageoTTIzu.json b/src/packs/adversaries/adversary_Demon_of_Hubris_2VN3BftageoTTIzu.json index 3a95c233..9f954437 100644 --- a/src/packs/adversaries/adversary_Demon_of_Hubris_2VN3BftageoTTIzu.json +++ b/src/packs/adversaries/adversary_Demon_of_Hubris_2VN3BftageoTTIzu.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,15 +220,14 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { "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.
", + "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]
", "resource": null, "actions": { "v3XbljQeHEyfuSXz": { @@ -276,8 +278,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -286,16 +287,7 @@ "effects": [], "name": "Lose Hope", "img": "icons/magic/death/skull-energy-light-purple.webp", - "range": "", - "areas": [ - { - "name": "Terrifying", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, @@ -541,7 +533,7 @@ "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.
", + "description": "When a PC fails a roll within Close range of the @Lookup[@name], they must mark a Stress.
@Template[type:emanation|range:c]
", "resource": null, "actions": { "kuCPWb9cu3pZdAhh": { @@ -585,8 +577,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -595,16 +586,7 @@ "effects": [], "name": "Mark Stress", "img": "icons/magic/control/fear-fright-shadow-monster-red.webp", - "range": "close", - "areas": [ - { - "name": "You Pale in Comparison", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Demon_of_Jealousy_SxSOkM4bcVOFyjbo.json b/src/packs/adversaries/adversary_Demon_of_Jealousy_SxSOkM4bcVOFyjbo.json index 0c743ac2..c083b183 100644 --- a/src/packs/adversaries/adversary_Demon_of_Jealousy_SxSOkM4bcVOFyjbo.json +++ b/src/packs/adversaries/adversary_Demon_of_Jealousy_SxSOkM4bcVOFyjbo.json @@ -139,9 +139,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -192,7 +195,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -218,8 +221,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -277,7 +279,7 @@ "name": "Rivalry", "type": "feature", "system": { - "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.
", + "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]
", "resource": null, "actions": { "UU3H5aPQejOSoFZw": { @@ -307,16 +309,7 @@ }, "name": "Mark Stress", "img": "icons/magic/perception/eye-ringed-glow-angry-small-teal.webp", - "range": "", - "areas": [ - { - "name": "Rivalry", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, @@ -342,7 +335,7 @@ "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.
", + "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]
", "resource": null, "actions": { "3cGZ2CofM9HUlELH": { @@ -360,8 +353,7 @@ }, "damage": { "parts": {}, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -390,16 +382,7 @@ }, "name": "Roll Save", "img": "icons/magic/perception/hand-eye-black.webp", - "range": "veryClose", - "areas": [ - { - "name": "What's Yours Is Mine", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Demon_of_Wrath_5lphJAgzoqZI3VoG.json b/src/packs/adversaries/adversary_Demon_of_Wrath_5lphJAgzoqZI3VoG.json index 0bc6bf2d..201b17fd 100644 --- a/src/packs/adversaries/adversary_Demon_of_Wrath_5lphJAgzoqZI3VoG.json +++ b/src/packs/adversaries/adversary_Demon_of_Wrath_5lphJAgzoqZI3VoG.json @@ -139,9 +139,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -192,7 +195,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -218,8 +221,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -251,7 +253,7 @@ "name": "Battle Lust", "type": "feature", "system": { - "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.
", + "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]
", "resource": null, "actions": { "jKvzbQT0vp66DDOH": { @@ -292,16 +294,7 @@ "amount": null }, "name": "Spend Fear", - "range": "far", - "areas": [ - { - "name": "Battle Lust", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, @@ -381,7 +374,7 @@ "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.
", + "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]
", "resource": null, "actions": { "hxrdtBm4dYN7KGZm": { @@ -434,8 +427,7 @@ } }, "includeBase": false, - "direct": true, - "groupAttack": "" + "direct": true }, "target": { "type": "any", @@ -464,16 +456,7 @@ }, "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", - "range": "veryClose", - "areas": [ - { - "name": "Retalliation", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Demonic_Hound_Pack_NoRZ1PqB8N5wcIw0.json b/src/packs/adversaries/adversary_Demonic_Hound_Pack_NoRZ1PqB8N5wcIw0.json index b534562b..2043d960 100644 --- a/src/packs/adversaries/adversary_Demonic_Hound_Pack_NoRZ1PqB8N5wcIw0.json +++ b/src/packs/adversaries/adversary_Demonic_Hound_Pack_NoRZ1PqB8N5wcIw0.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,8 +220,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -250,7 +252,7 @@ "name": "Dreadhowl", "type": "feature", "system": { - "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.
", + "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]
", "resource": null, "actions": { "XyLlX9RWSxciZ7oV": { @@ -294,8 +296,7 @@ "type": [] } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -304,16 +305,7 @@ "effects": [], "name": "Lose Hope", "img": "icons/creatures/unholy/demons-horned-glowing-pink.webp", - "range": "veryClose", - "areas": [ - { - "name": "Dreadhowl", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Dire_Bat_tBWHW00epmMnkawe.json b/src/packs/adversaries/adversary_Dire_Bat_tBWHW00epmMnkawe.json index c2064395..23d5550e 100644 --- a/src/packs/adversaries/adversary_Dire_Bat_tBWHW00epmMnkawe.json +++ b/src/packs/adversaries/adversary_Dire_Bat_tBWHW00epmMnkawe.json @@ -137,9 +137,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -190,7 +193,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -216,8 +219,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -293,7 +295,7 @@ "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.
", + "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]
", "resource": null, "actions": { "2ILfoiBoMyBCtBsL": { @@ -336,8 +338,7 @@ "type": [] } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -346,16 +347,7 @@ "effects": [], "name": "Mark Stress", "img": "icons/magic/sonic/projectile-sound-rings-wave.webp", - "range": "far", - "areas": [ - { - "name": "Screech", - "type": "placed", - "shape": "inFront", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Dryad_wR7cFKrHvRzbzhBT.json b/src/packs/adversaries/adversary_Dryad_wR7cFKrHvRzbzhBT.json index 62df584a..c69ee84e 100644 --- a/src/packs/adversaries/adversary_Dryad_wR7cFKrHvRzbzhBT.json +++ b/src/packs/adversaries/adversary_Dryad_wR7cFKrHvRzbzhBT.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,15 +220,14 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { "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.
", + "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]
", "resource": null, "actions": { "iCJdIs57hfh5Cb0u": { @@ -250,8 +252,7 @@ }, "damage": { "parts": {}, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -280,16 +281,7 @@ }, "name": "Mark Stress", "img": "icons/magic/nature/root-vines-grow-brown.webp", - "range": "", - "areas": [ - { - "name": "Bramble Patch", - "type": "placed", - "shape": "circle", - "size": "close", - "effects": [] - } - ] + "range": "" }, "cpZ5c9d3opSA4BN9": { "type": "damage", @@ -422,7 +414,7 @@ "name": "We Are All One", "type": "feature", "system": { - "description": "When an ally dies within Close range, you can spend a Fear to clear 2 HP and 2 Stress as the fallen allyβs life force is returned to the forest.
", + "description": "When an ally dies within Close range, you can spend a Fear to clear 2 HP and 2 Stress as the fallen allyβs life force is returned to the forest.
@Template[type:emanation|range:c]
", "resource": null, "actions": { "SrhuW3mfOuqg1ys6": { @@ -498,8 +490,7 @@ "type": [] } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "self", @@ -523,16 +514,7 @@ }, "name": "Spend Fear", "img": "icons/magic/unholy/orb-hands-pink.webp", - "range": "self", - "areas": [ - { - "name": "We Are All One", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "self" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Fallen_Sorcerer_PELRry1vqjBzSAlr.json b/src/packs/adversaries/adversary_Fallen_Sorcerer_PELRry1vqjBzSAlr.json index 975cf6aa..06db1453 100644 --- a/src/packs/adversaries/adversary_Fallen_Sorcerer_PELRry1vqjBzSAlr.json +++ b/src/packs/adversaries/adversary_Fallen_Sorcerer_PELRry1vqjBzSAlr.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,15 +220,14 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { "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.
", + "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]
", "resource": null, "actions": { "v7zZo52Dnj1e1i2G": { @@ -277,8 +279,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -307,16 +308,7 @@ }, "name": "Attack", "img": "icons/magic/fire/projectile-beams-salvo-red.webp", - "range": "close", - "areas": [ - { - "name": "Conflagration", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, @@ -473,14 +465,14 @@ "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.
", + "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]
", "resource": null, "actions": { "7b0FkpAnWz9a5EWx": { "type": "damage", "_id": "7b0FkpAnWz9a5EWx", "systemPath": "actions", - "description": "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.
", + "description": "When the countdown 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]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -517,8 +509,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -532,16 +523,7 @@ ], "name": "Mark Stress", "img": "icons/magic/unholy/strike-hand-glow-pink.webp", - "range": "", - "areas": [ - { - "name": "Shackles of Guilt", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "" }, "11PtfoxbgOXxNlkG": { "type": "countdown", 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 15663752..9fa49107 100644 --- a/src/packs/adversaries/adversary_Fallen_Warlord__Realm_Breaker_hxZ0sgoFJubh5aj6.json +++ b/src/packs/adversaries/adversary_Fallen_Warlord__Realm_Breaker_hxZ0sgoFJubh5aj6.json @@ -173,9 +173,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -226,7 +229,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -252,8 +255,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -390,7 +392,7 @@ "name": "Tormenting Lash", "type": "feature", "system": { - "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.
", + "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]
", "resource": null, "actions": { "zMVhUekP8pcyQGFR": { @@ -442,8 +444,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -472,16 +473,7 @@ }, "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", - "range": "veryClose", - "areas": [ - { - "name": "Tormenting Lash", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, @@ -507,14 +499,14 @@ "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.
", + "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]
", "resource": null, "actions": { "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.
", + "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]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -552,8 +544,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -582,16 +573,7 @@ }, "name": "Roll Save", "img": "icons/magic/control/fear-fright-monster-grin-red-orange.webp", - "range": "far", - "areas": [ - { - "name": "All-Consuming Rage", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" }, "8e3BHmOFLvRwPbTW": { "type": "countdown", @@ -654,7 +636,7 @@ "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.
", + "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]
", "resource": null, "actions": { "WEBPJCbXfBeyHFJ4": { @@ -698,8 +680,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -708,16 +689,7 @@ "effects": [], "name": "Lose Hope", "img": "icons/magic/death/skull-energy-light-purple.webp", - "range": "", - "areas": [ - { - "name": "Doombringer", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, 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 6cb1c0ce..5ad77ab0 100644 --- a/src/packs/adversaries/adversary_Fallen_Warlord__Undefeated_Champion_RXkZTwBRi4dJ3JE5.json +++ b/src/packs/adversaries/adversary_Fallen_Warlord__Undefeated_Champion_RXkZTwBRi4dJ3JE5.json @@ -174,9 +174,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -227,7 +230,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -253,8 +256,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -391,7 +393,7 @@ "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.
", + "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]
", "resource": null, "actions": { "t1GhGnEhNYyJ7p2U": { @@ -436,8 +438,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -466,16 +467,7 @@ }, "name": "Attack", "img": "icons/skills/melee/sword-stuck-glowing-pink.webp", - "range": "veryClose", - "areas": [ - { - "name": "Shattering Strike", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, @@ -504,42 +496,34 @@ "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.
", "resource": null, "actions": { - "SrU7qbh8LcOgfozT": { - "type": "summon", - "_id": "SrU7qbh8LcOgfozT", + "hGMzqw00JTlYfHYy": { + "type": "effect", + "_id": "hGMzqw00JTlYfHYy", "systemPath": "actions", - "baseAction": false, "description": "", "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, "actionType": "action", - "triggers": [], "cost": [ { "scalable": false, "key": "fear", "value": 1, - "itemId": null, - "step": null, - "consumeOnSuccess": false + "step": null } ], "uses": { "value": null, "max": "", - "recovery": null, - "consumeOnSuccess": false + "recovery": null + }, + "effects": [], + "target": { + "type": "self", + "amount": null }, - "summon": [ - { - "actorUUID": "Compendium.daggerheart.adversaries.Actor.OsLG2BjaEdTZUJU9", - "count": "@partySize*2" - } - ], "name": "Spend Fear", - "range": "far" + "img": "icons/magic/death/undead-skeleton-worn-blue.webp", + "range": "" } }, "originItemType": null, @@ -581,25 +565,19 @@ "max": "", "recovery": null }, - "effects": [], + "effects": [ + { + "_id": "eZp1PSCHZzdb47oM", + "onSave": false + } + ], "target": { "type": "any", "amount": null }, "name": "Circle", "img": "icons/magic/unholy/barrier-fire-pink.webp", - "range": "", - "areas": [ - { - "name": "Circle of Defilement", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [ - "KlTKlZXjdXQ9v6qB" - ] - } - ] + "range": "" }, "4x13WyksHU0u0j20": { "type": "countdown", @@ -647,58 +625,42 @@ "img": "icons/magic/unholy/barrier-fire-pink.webp", "effects": [ { - "name": "Circle Of Defilement", - "disabled": false, + "name": "Circle of Defilement", "img": "icons/magic/unholy/barrier-fire-pink.webp", - "description": "You are Vulnerable until you leave the circle.
", + "origin": "Compendium.daggerheart.adversaries.Actor.RXkZTwBRi4dJ3JE5.Item.55P7ZijSbQeVHCw4", "transfer": false, - "statuses": [ - "vulnerable" - ], + "_id": "eZp1PSCHZzdb47oM", + "type": "base", "system": { "rangeDependence": { "enabled": false, "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [], - "duration": { - "description": "", - "type": "" - }, - "stacking": null, - "targetDispositions": [ - 1, - 0 - ] - }, - "_id": "KlTKlZXjdXQ9v6qB", - "type": "base", - "start": { - "time": 0, - "combat": null, - "combatant": null, - "initiative": null, - "round": null, - "turn": null + } }, + "changes": [], + "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, - "origin": null, + "description": "Vulnerable until you leave the circle. The circle can be removed by dealing Severe damage to the Undefeated Champion.
", "tint": "#ffffff", - "showIcon": 1, - "folder": null, + "statuses": [ + "vulnerable" + ], "sort": 0, "flags": {}, "_stats": { "compendiumSource": null }, - "_key": "!actors.items.effects!RXkZTwBRi4dJ3JE5.55P7ZijSbQeVHCw4.KlTKlZXjdXQ9v6qB" + "_key": "!actors.items.effects!RXkZTwBRi4dJ3JE5.55P7ZijSbQeVHCw4.eZp1PSCHZzdb47oM" } ], "folder": null, @@ -813,7 +775,7 @@ "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.
", + "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]
", "resource": null, "actions": { "liwKSCTmQqZasAf6": { @@ -857,8 +819,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -867,16 +828,7 @@ "effects": [], "name": "Lose Hope", "img": "icons/magic/death/skull-energy-light-purple.webp", - "range": "far", - "areas": [ - { - "name": "Doombringer", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Giant_Brawler_YnObCleGjPT7yqEc.json b/src/packs/adversaries/adversary_Giant_Brawler_YnObCleGjPT7yqEc.json index acb9c219..8948c8b6 100644 --- a/src/packs/adversaries/adversary_Giant_Brawler_YnObCleGjPT7yqEc.json +++ b/src/packs/adversaries/adversary_Giant_Brawler_YnObCleGjPT7yqEc.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,15 +220,14 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { "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.
", + "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]
", "resource": null, "actions": { "zns57MqnZ6M1d4r0": { @@ -306,16 +308,7 @@ }, "name": "Roll Save", "img": "icons/skills/melee/shield-damaged-broken-orange.webp", - "range": "close", - "areas": [ - { - "name": "Battering Ram", - "type": "placed", - "shape": "circle", - "size": "veryClose", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json b/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json index f290875d..5876f55c 100644 --- a/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json +++ b/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -350,8 +352,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -380,16 +381,7 @@ }, "name": "Attack", "img": "icons/skills/melee/blood-slash-foam-red.webp", - "range": "veryClose", - "areas": [ - { - "name": "Spinning Serpent", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, @@ -416,7 +408,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.
", + "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]
", "resource": null, "actions": { "yx5fjMLLwSnvSbqs": { @@ -457,7 +449,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.
", + "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]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -495,8 +487,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -525,16 +516,7 @@ }, "name": "Spit Attack", "img": "icons/magic/acid/projectile-needles-salvo-green.webp", - "range": "far", - "areas": [ - { - "name": "Spitter", - "type": "placed", - "shape": "inFront", - "size": "far", - "effects": [] - } - ] + "range": "far" }, "xccwknU2xHUwQSdn": { "type": "attack", @@ -602,15 +584,18 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [] + } }, + "changes": [], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, "description": "You have 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.
", "tint": "#ffffff", @@ -620,9 +605,6 @@ "_stats": { "compendiumSource": null }, - "start": null, - "showIcon": 1, - "folder": null, "_key": "!actors.items.effects!8KWVLWXFhlY2kYx0.LR5XHauNtWcl18CY.Mchd23xNQ4nSWw9X" } ], diff --git a/src/packs/adversaries/adversary_Greater_Earth_Elemental_dsfB3YhoL5SudvS2.json b/src/packs/adversaries/adversary_Greater_Earth_Elemental_dsfB3YhoL5SudvS2.json index e59d2683..077373b2 100644 --- a/src/packs/adversaries/adversary_Greater_Earth_Elemental_dsfB3YhoL5SudvS2.json +++ b/src/packs/adversaries/adversary_Greater_Earth_Elemental_dsfB3YhoL5SudvS2.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -396,7 +398,7 @@ "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.
", + "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]
", "resource": null, "actions": { "eLGIC3kVjLo8FEvy": { @@ -448,8 +450,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -483,16 +484,7 @@ }, "name": "Roll Save", "img": "icons/magic/earth/barrier-stone-brown-green.webp", - "range": "", - "areas": [ - { - "name": "Rockslide", - "type": "placed", - "shape": "inFront", - "size": "close", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Greater_Water_Elemental_xIICT6tEdnA7dKDV.json b/src/packs/adversaries/adversary_Greater_Water_Elemental_xIICT6tEdnA7dKDV.json index db73a536..b44bb9cc 100644 --- a/src/packs/adversaries/adversary_Greater_Water_Elemental_xIICT6tEdnA7dKDV.json +++ b/src/packs/adversaries/adversary_Greater_Water_Elemental_xIICT6tEdnA7dKDV.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -375,7 +377,7 @@ "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.
", + "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]
", "resource": null, "actions": { "ooYbiLrYjoWXIfe9": { @@ -400,8 +402,7 @@ }, "damage": { "parts": {}, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -435,16 +436,7 @@ }, "name": "Attack", "img": "icons/magic/water/vortex-water-whirlpool-blue.webp", - "range": "veryClose", - "areas": [ - { - "name": "Drowning Embrace", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json b/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json index 9a6cc509..f0c050a9 100644 --- a/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json +++ b/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json @@ -143,9 +143,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -196,7 +199,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -222,8 +225,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -232,7 +234,7 @@ "_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.
", + "description": "Spend 2 Fear to spotlight the @Lookup[@name] and up to 2d4 allies within Far range.
@Template[type:emanation|range:f]
", "resource": null, "actions": { "lI0lnRb3xrUjqIYX": { @@ -257,8 +259,7 @@ }, "damage": { "parts": {}, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -287,16 +288,7 @@ }, "name": "Rally", "img": "icons/skills/movement/arrows-up-trio-red.webp", - "range": "", - "areas": [ - { - "name": "Rally Guards", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, @@ -323,7 +315,7 @@ "_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.
", + "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]
", "resource": null, "actions": { "xyhaCmPGiVMsTViH": { @@ -361,16 +353,7 @@ ], "name": "Start Countdown", "img": "icons/skills/ranged/target-bullseye-arrow-blue.webp", - "range": "", - "areas": [ - { - "name": "On My Signal", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Head_Vampire_i2UNbRvgyoSs07M6.json b/src/packs/adversaries/adversary_Head_Vampire_i2UNbRvgyoSs07M6.json index b17c85bc..322e4658 100644 --- a/src/packs/adversaries/adversary_Head_Vampire_i2UNbRvgyoSs07M6.json +++ b/src/packs/adversaries/adversary_Head_Vampire_i2UNbRvgyoSs07M6.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,15 +220,14 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { "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.
", + "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]
", "resource": null, "actions": { "Rf2ZL3EjCzudonRb": { @@ -269,8 +271,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -279,16 +280,7 @@ "effects": [], "name": "Lose Hope", "img": "icons/magic/death/skull-energy-light-purple.webp", - "range": "far", - "areas": [ - { - "name": "Terrifying", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, @@ -533,7 +525,7 @@ "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.
", + "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]
", "resource": null, "actions": { "DA8qT2omBcG4oryX": { @@ -577,8 +569,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -607,16 +598,7 @@ }, "name": "Roll d8", "img": "icons/magic/unholy/strike-beam-blood-small-red-purple.webp", - "range": "veryClose", - "areas": [ - { - "name": "Lifesuck", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Hydra_MI126iMOOobQ1Obn.json b/src/packs/adversaries/adversary_Hydra_MI126iMOOobQ1Obn.json index 9c53487a..7e71af98 100644 --- a/src/packs/adversaries/adversary_Hydra_MI126iMOOobQ1Obn.json +++ b/src/packs/adversaries/adversary_Hydra_MI126iMOOobQ1Obn.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -375,7 +377,7 @@ "name": "Terrifying Chorus", "type": "feature", "system": { - "description": "All PCs within Far range lose 2 Hope.
", + "description": "All PCs within Far range lose 2 Hope.
@Template[type:emanation|range:f]
", "resource": null, "actions": { "nJxpFR4Ul0e2RrL4": { @@ -419,8 +421,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -429,16 +430,7 @@ "effects": [], "name": "Lose Hope", "img": "icons/magic/death/skull-energy-light-white.webp", - "range": "far", - "areas": [ - { - "name": "Terrifying Chorus", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json b/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json index 771c6692..8820f30c 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json @@ -137,9 +137,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -190,7 +193,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -216,8 +219,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -256,16 +258,7 @@ }, "name": "Mark Stress", "img": "icons/skills/movement/arrows-up-trio-red.webp", - "range": "close", - "areas": [ - { - "name": "Tactician", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Juvenile_Flickerfly_MYXmTx2FHcIjdfYZ.json b/src/packs/adversaries/adversary_Juvenile_Flickerfly_MYXmTx2FHcIjdfYZ.json index 24683a37..562b42b8 100644 --- a/src/packs/adversaries/adversary_Juvenile_Flickerfly_MYXmTx2FHcIjdfYZ.json +++ b/src/packs/adversaries/adversary_Juvenile_Flickerfly_MYXmTx2FHcIjdfYZ.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -398,7 +400,7 @@ "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.
", + "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]
", "resource": null, "actions": { "0wL3ieMrXEb2gcxe": { @@ -416,8 +418,7 @@ }, "damage": { "parts": {}, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -446,16 +447,7 @@ }, "name": "Roll Save", "img": "icons/magic/light/explosion-glow-spiral-yellow.webp", - "range": "close", - "areas": [ - { - "name": "Mind Dance", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, @@ -481,7 +473,7 @@ "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.
", + "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]
", "resource": null, "actions": { "USEkCakSzYcZbBwY": { @@ -550,8 +542,7 @@ "type": [] } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -580,16 +571,7 @@ }, "name": "Roll Save", "img": "icons/magic/air/fog-gas-smoke-purple.webp", - "range": "far", - "areas": [ - { - "name": "Hallucinatory Breath", - "type": "placed", - "shape": "inFront", - "size": "far", - "effects": [] - } - ] + "range": "far" }, "n8ZuLjwTf2FJ7V6n": { "type": "countdown", diff --git a/src/packs/adversaries/adversary_Kraken_4nqv3ZwJGjnmic8j.json b/src/packs/adversaries/adversary_Kraken_4nqv3ZwJGjnmic8j.json index 4bcdc15d..4494e0e8 100644 --- a/src/packs/adversaries/adversary_Kraken_4nqv3ZwJGjnmic8j.json +++ b/src/packs/adversaries/adversary_Kraken_4nqv3ZwJGjnmic8j.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,8 +220,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -437,7 +439,7 @@ "name": "Boiling Blast", "type": "feature", "system": { - "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.
", + "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]
", "resource": null, "actions": { "pHZUiZRSj4FuG0uK": { @@ -482,8 +484,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -512,16 +513,7 @@ }, "name": "Attack", "img": "icons/magic/water/projectile-icecicle-glowing.webp", - "range": "", - "areas": [ - { - "name": "Boiling Blast", - "type": "placed", - "shape": "line", - "size": "far", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Masked_Thief_niBpVU7yeo5ccskE.json b/src/packs/adversaries/adversary_Masked_Thief_niBpVU7yeo5ccskE.json index 77d48be3..25740e52 100644 --- a/src/packs/adversaries/adversary_Masked_Thief_niBpVU7yeo5ccskE.json +++ b/src/packs/adversaries/adversary_Masked_Thief_niBpVU7yeo5ccskE.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,8 +220,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -323,7 +325,7 @@ "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).
", + "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]
", "resource": null, "actions": { "sq0q1l2Go4GduR3B": { @@ -375,16 +377,7 @@ }, "name": "Roll Save", "img": "icons/environment/traps/trap-jaw-tan.webp", - "range": "", - "areas": [ - { - "name": "Escape Plan", - "type": "placed", - "shape": "circle", - "size": "veryClose", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json b/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json index 9ddfb4f3..21564421 100644 --- a/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json +++ b/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -291,7 +293,7 @@ "_id": "oAxhAawgcK7DAdpa", "img": "icons/magic/sonic/explosion-shock-sound-wave.webp", "system": { - "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.
", + "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]
", "resource": null, "actions": { "g4CVwjDeJgTJ2oCw": { @@ -342,8 +344,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -357,16 +358,7 @@ ], "name": "Mark HP", "img": "icons/magic/sonic/explosion-shock-sound-wave.webp", - "range": "close", - "areas": [ - { - "name": "Sickening Flux", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, @@ -442,7 +434,7 @@ "_id": "updQuIK8sybf4YmW", "img": "icons/magic/light/explosion-glow-spiral-teal.webp", "system": { - "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.
", + "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]
", "resource": null, "actions": { "QzuQIAtSrgz9Zd5V": { @@ -494,8 +486,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -504,16 +495,7 @@ "effects": [], "name": "Spend Fear", "img": "icons/magic/light/explosion-glow-spiral-teal.webp", - "range": "veryClose", - "areas": [ - { - "name": "Remake Reality", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json b/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json index 626b1597..8f5f51f3 100644 --- a/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json +++ b/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -280,7 +282,7 @@ "_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.
", + "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]
", "resource": null, "actions": { "XQ7QebA0iGvMti4A": { @@ -324,8 +326,7 @@ "type": [] } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -334,16 +335,7 @@ "effects": [], "name": "Hope Damage", "img": "icons/magic/unholy/strike-hand-glow-pink.webp", - "range": "", - "areas": [ - { - "name": "All Must fall", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, @@ -369,7 +361,7 @@ "_id": "lA7vcvS7oGT9NTSy", "img": "icons/magic/fire/projectile-beams-salvo-red.webp", "system": { - "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.
", + "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]
", "resource": null, "actions": { "nOzLQ0NJzeB3vKiV": { @@ -421,8 +413,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -451,16 +442,7 @@ }, "name": "Spend Fear", "img": "icons/magic/fire/projectile-beams-salvo-red.webp", - "range": "far", - "areas": [ - { - "name": "Hellfire", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json b/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json index 859c207c..0cc9703c 100644 --- a/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json +++ b/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -271,7 +273,7 @@ "_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.
", + "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]
", "resource": null, "actions": { "x1VCkfcSYiPyg8fk": { @@ -352,16 +354,7 @@ }, "name": "Attack", "img": "icons/magic/fire/explosion-flame-lightning-strike.webp", - "range": "far", - "areas": [ - { - "name": "Scorched Earth", - "type": "placed", - "shape": "circle", - "size": "veryClose", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, @@ -388,14 +381,14 @@ "_id": "ESnu3I89BmUdBZEk", "img": "icons/magic/fire/explosion-fireball-large-red-orange.webp", "system": { - "description": "Spend a Fear to erupt in a fi ery explosion. Make an attack against all targets within Close range. Targets the Elemental succeeds against take 1d8 magic damage and are knocked back to Far range.
", + "description": "Spend a Fear to erupt in a fi ery explosion. Make an attack against all targets within Close range. Targets the Elemental succeeds against take 1d8 magic damage and are knocked back to Far range.
@Template[type:emanation|range:c]
", "resource": null, "actions": { "JQgqyW8H7fugR7F0": { "type": "attack", "_id": "JQgqyW8H7fugR7F0", "systemPath": "actions", - "description": "", + "description": "Spend a Fear to erupt in a fi ery explosion. Make an attack against all targets within Close range. Targets the Elemental succeeds against take 1d8 magic damage and are knocked back to Far range.
@Template[type:emanation|range:c]
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -440,8 +433,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -470,16 +462,7 @@ }, "name": "Attack", "img": "icons/magic/fire/explosion-fireball-large-red-orange.webp", - "range": "close", - "areas": [ - { - "name": "Explosion", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, @@ -509,11 +492,9 @@ "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.
", "resource": { "type": "simple", - "value": 3, + "value": 0, "max": "3", - "icon": "fa-solid fa-fire", - "progression": "decreasing", - "recovery": "scene" + "icon": "fa-solid fa-fire" }, "actions": { "CTWSVVisdgJgF7pd": { @@ -523,16 +504,7 @@ "description": "", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "resource", - "value": 1, - "itemId": "3u6wvKPJAS2v5nWV", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -566,8 +538,7 @@ "type": [] } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "self", @@ -600,16 +571,7 @@ "description": "", "chatDisplay": true, "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "resource", - "value": 1, - "itemId": "3u6wvKPJAS2v5nWV", - "step": null, - "consumeOnSuccess": false - } - ], + "cost": [], "uses": { "value": null, "max": "", @@ -643,8 +605,7 @@ "type": [] } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "self", diff --git a/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json b/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json index 33677263..2eaa9619 100644 --- a/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json +++ b/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,15 +220,14 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { "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.
", + "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]
", "resource": null, "actions": { "9T1g3FH38cnCRG8k": { @@ -269,8 +271,7 @@ "type": [] } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -279,16 +280,7 @@ "effects": [], "name": "Lose Hope", "img": "icons/magic/death/skull-energy-light-purple.webp", - "range": "far", - "areas": [ - { - "name": "Terrifying", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, @@ -582,7 +574,7 @@ "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.
", + "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]
", "resource": null, "actions": { "VjiFxuzfAaq5N1jy": { @@ -627,8 +619,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -657,16 +648,7 @@ }, "name": "Attack", "img": "icons/magic/movement/trail-streak-zigzag-yellow.webp", - "range": "far", - "areas": [ - { - "name": "Rampage", - "type": "placed", - "shape": "line", - "size": "far", - "effects": [] - } - ] + "range": "far" }, "BhA3vxCuMs4UbbQU": { "type": "countdown", diff --git a/src/packs/adversaries/adversary_Oracle_of_Doom_befIqd5IYKg6eUz2.json b/src/packs/adversaries/adversary_Oracle_of_Doom_befIqd5IYKg6eUz2.json index a9b865ae..343cfdc1 100644 --- a/src/packs/adversaries/adversary_Oracle_of_Doom_befIqd5IYKg6eUz2.json +++ b/src/packs/adversaries/adversary_Oracle_of_Doom_befIqd5IYKg6eUz2.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,15 +220,14 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { "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.
", + "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]
", "resource": null, "actions": { "VjdSO1lAdTIAlofM": { @@ -269,8 +271,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -279,16 +280,7 @@ "effects": [], "name": "Lose Hope", "img": "icons/magic/death/skull-energy-light-purple.webp", - "range": "far", - "areas": [ - { - "name": "Terrifying", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Outer_Realms_Abomination_A0SeeDzwjvqOsyof.json b/src/packs/adversaries/adversary_Outer_Realms_Abomination_A0SeeDzwjvqOsyof.json index 3e5bacf3..0f73354e 100644 --- a/src/packs/adversaries/adversary_Outer_Realms_Abomination_A0SeeDzwjvqOsyof.json +++ b/src/packs/adversaries/adversary_Outer_Realms_Abomination_A0SeeDzwjvqOsyof.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -365,7 +367,7 @@ "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.
", + "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]
", "resource": null, "actions": { "7apNSLz8m7sxyLhU": { @@ -383,8 +385,7 @@ }, "damage": { "parts": {}, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -418,16 +419,7 @@ }, "name": "Roll Save", "img": "icons/magic/sonic/explosion-shock-sound-wave.webp", - "range": "", - "areas": [ - { - "name": "Reality Quake", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Outer_Realms_Corrupter_ms6nuOl3NFkhPj1k.json b/src/packs/adversaries/adversary_Outer_Realms_Corrupter_ms6nuOl3NFkhPj1k.json index 9edf3f04..6c78dced 100644 --- a/src/packs/adversaries/adversary_Outer_Realms_Corrupter_ms6nuOl3NFkhPj1k.json +++ b/src/packs/adversaries/adversary_Outer_Realms_Corrupter_ms6nuOl3NFkhPj1k.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -297,7 +299,7 @@ "name": "Disgorge Realiy Flotsam", "type": "feature", "system": { - "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.
", + "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]
", "resource": null, "actions": { "6vX6VHpXX7OiGSWH": { @@ -341,8 +343,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -371,16 +372,7 @@ }, "name": "Roll Save", "img": "icons/magic/unholy/barrier-shield-glowing-pink.webp", - "range": "close", - "areas": [ - { - "name": "Disgorge Realiy Flotsam", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json b/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json index 8e82dcf7..999f89b9 100644 --- a/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json +++ b/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json @@ -143,9 +143,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -196,7 +199,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -222,8 +225,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -315,46 +317,9 @@ "_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.
", + "description": "When the @Lookup[@name] makes a standard attack, they can attack all targets within Very Close range.
@Template[type:emanation|range:vc]
", "resource": null, - "actions": { - "ngl1xlJT4IOh3bkJ": { - "type": "effect", - "_id": "ngl1xlJT4IOh3bkJ", - "systemPath": "actions", - "baseAction": false, - "description": "", - "chatDisplay": true, - "originItem": { - "type": "itemCollection" - }, - "actionType": "action", - "triggers": [], - "areas": [ - { - "name": "Flailing Limbs", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ], - "cost": [], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "", - "range": "" - } - }, + "actions": {}, "originItemType": null, "subType": null, "originId": null @@ -498,7 +463,7 @@ "_id": "uTtQwNg46NAjgzuD", "img": "icons/magic/death/skeleton-skull-soul-blue.webp", "system": { - "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.
", + "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]
", "resource": null, "actions": { "2NYC0D7wkBNrUAKl": { @@ -549,8 +514,7 @@ "type": [] } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -579,16 +543,7 @@ }, "name": "Mark Stress", "img": "icons/magic/death/skeleton-skull-soul-blue.webp", - "range": "far", - "areas": [ - { - "name": "Tormented Screams", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Perfected_Zombie_CP6iRfHdyFWniTHY.json b/src/packs/adversaries/adversary_Perfected_Zombie_CP6iRfHdyFWniTHY.json index 06a18345..a6ce78d5 100644 --- a/src/packs/adversaries/adversary_Perfected_Zombie_CP6iRfHdyFWniTHY.json +++ b/src/packs/adversaries/adversary_Perfected_Zombie_CP6iRfHdyFWniTHY.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,15 +214,14 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { "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.
", + "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]
", "resource": null, "actions": { "dquYnt5qiHZfnyD9": { @@ -263,8 +265,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -273,16 +274,7 @@ "effects": [], "name": "Lose Hope", "img": "icons/magic/death/skull-energy-light-purple.webp", - "range": "far", - "areas": [ - { - "name": "Terrifying", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, @@ -332,7 +324,7 @@ "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.
", + "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]
", "resource": null, "actions": { "un9btM1mN53JHIgV": { @@ -384,8 +376,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -419,16 +410,7 @@ }, "name": "Attack", "img": "icons/skills/melee/strike-axe-energy-pink.webp", - "range": "veryClose", - "areas": [ - { - "name": "Perfect Strike", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Shark_YmVAkdNsyuXWTtYp.json b/src/packs/adversaries/adversary_Shark_YmVAkdNsyuXWTtYp.json index 0a6f27b0..f9bad7ea 100644 --- a/src/packs/adversaries/adversary_Shark_YmVAkdNsyuXWTtYp.json +++ b/src/packs/adversaries/adversary_Shark_YmVAkdNsyuXWTtYp.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,15 +214,14 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { "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.
", + "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]
", "resource": null, "actions": { "NoEb6qR3ktIu9kRJ": { @@ -263,8 +265,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -273,16 +274,7 @@ "effects": [], "name": "Lose Hope", "img": "icons/magic/death/skull-energy-light-purple.webp", - "range": "", - "areas": [ - { - "name": "Terrifying", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Siren_BK4jwyXSRx7IOQiO.json b/src/packs/adversaries/adversary_Siren_BK4jwyXSRx7IOQiO.json index 39f6a5b9..38f77982 100644 --- a/src/packs/adversaries/adversary_Siren_BK4jwyXSRx7IOQiO.json +++ b/src/packs/adversaries/adversary_Siren_BK4jwyXSRx7IOQiO.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,8 +220,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -324,7 +326,7 @@ "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.
", + "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]
", "resource": null, "actions": { "FY8K8Nsg0TKAWok8": { @@ -349,8 +351,7 @@ }, "damage": { "parts": {}, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -384,16 +385,7 @@ }, "name": "Roll Save", "img": "icons/magic/control/hypnosis-mesmerism-eye.webp", - "range": "close", - "areas": [ - { - "name": "Enchanting Song", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json b/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json index e6982135..8b2042f3 100644 --- a/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json +++ b/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -300,7 +302,7 @@ "_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.
", + "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]
", "resource": null, "actions": { "vMv4monku9LOSxUZ": { @@ -377,8 +379,7 @@ "type": [] } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -407,16 +408,7 @@ }, "name": "Attack", "img": "icons/skills/melee/strike-sword-steel-yellow.webp", - "range": "veryClose", - "areas": [ - { - "name": "Cut to the Bone", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json b/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json index 5d72dfc7..90c7d68f 100644 --- a/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json +++ b/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json @@ -139,9 +139,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -192,7 +195,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -218,8 +221,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -254,7 +256,7 @@ "_id": "a76dNCrcoZOH1RRT", "img": "icons/magic/sonic/projectile-shock-wave-blue.webp", "system": { - "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.
", + "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]
", "resource": null, "actions": { "K4VnxigKTiu7hhZx": { @@ -306,8 +308,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -336,16 +337,7 @@ }, "name": "Attack", "img": "icons/magic/sonic/projectile-shock-wave-blue.webp", - "range": "far", - "areas": [ - { - "name": "Supressing Blast", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, @@ -402,16 +394,7 @@ }, "name": "Spend Fear", "img": "icons/skills/movement/arrows-up-trio-red.webp", - "range": "", - "areas": [ - { - "name": "Move as a Unit", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Stag_Knight_KGVwnLq85ywP9xvB.json b/src/packs/adversaries/adversary_Stag_Knight_KGVwnLq85ywP9xvB.json index 14e81a8c..e7738a46 100644 --- a/src/packs/adversaries/adversary_Stag_Knight_KGVwnLq85ywP9xvB.json +++ b/src/packs/adversaries/adversary_Stag_Knight_KGVwnLq85ywP9xvB.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,8 +220,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -304,7 +306,7 @@ "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.
", + "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]
", "resource": null, "actions": { "xPSVwVVOC5gc2KTi": { @@ -329,8 +331,7 @@ }, "damage": { "parts": {}, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -359,16 +360,7 @@ }, "name": "Attack", "img": "icons/skills/melee/strike-blade-hooked-green-purple.webp", - "range": "veryClose", - "areas": [ - { - "name": "Blade of the Forest", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Stonewraith_3aAS2Qm3R6cgaYfE.json b/src/packs/adversaries/adversary_Stonewraith_3aAS2Qm3R6cgaYfE.json index 52869085..c50c426d 100644 --- a/src/packs/adversaries/adversary_Stonewraith_3aAS2Qm3R6cgaYfE.json +++ b/src/packs/adversaries/adversary_Stonewraith_3aAS2Qm3R6cgaYfE.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,8 +220,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -409,7 +411,7 @@ "name": "Avalanche 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).
", + "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]
", "resource": null, "actions": { "4UGEEuK9XY8leCBV": { @@ -461,8 +463,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -491,16 +492,7 @@ }, "name": "Roll Save", "img": "icons/magic/sonic/projectile-sound-rings-wave.webp", - "range": "close", - "areas": [ - { - "name": "Avalanche Roar", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" }, "UurIzyyMRAJc2DUX": { "type": "countdown", diff --git a/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json b/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json index ba3f5c33..d4fa0340 100644 --- a/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json +++ b/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json @@ -349,7 +349,7 @@ "name": "Mana Bolt", "type": "feature", "system": { - "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.
", + "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]
", "resource": null, "actions": { "mI9i9iwrM48NjzeE": { @@ -430,16 +430,7 @@ }, "name": "Roll Save", "img": "icons/magic/sonic/projectile-shock-wave-blue.webp", - "range": "far", - "areas": [ - { - "name": "Mana Bolt", - "type": "placed", - "shape": "circle", - "size": "veryClose", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Vault_Guardian_Turret_c5hGdvY5UnSjlHws.json b/src/packs/adversaries/adversary_Vault_Guardian_Turret_c5hGdvY5UnSjlHws.json index 018d5b58..d723df80 100644 --- a/src/packs/adversaries/adversary_Vault_Guardian_Turret_c5hGdvY5UnSjlHws.json +++ b/src/packs/adversaries/adversary_Vault_Guardian_Turret_c5hGdvY5UnSjlHws.json @@ -132,9 +132,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -185,7 +188,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -211,8 +214,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -410,7 +412,7 @@ "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.
", + "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]
", "resource": null, "actions": { "i1PZ9ddYdOOs2xSb": { @@ -455,8 +457,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -485,16 +486,7 @@ }, "name": "Roll Save", "img": "icons/magic/sonic/explosion-shock-wave-teal.webp", - "range": "close", - "areas": [ - { - "name": "Detonation", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, 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 e360f0c8..f6a8bc84 100644 --- a/src/packs/adversaries/adversary_Volcanic_Dragon__Ashen_Tyrant_pMuXGCSOQaxpi5tb.json +++ b/src/packs/adversaries/adversary_Volcanic_Dragon__Ashen_Tyrant_pMuXGCSOQaxpi5tb.json @@ -163,9 +163,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -216,7 +219,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -242,8 +245,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -476,8 +478,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -486,16 +487,7 @@ "effects": [], "name": "Lose Hope", "img": "icons/magic/fire/flame-burning-skull-orange.webp", - "range": "close", - "areas": [ - { - "name": "Ashes to Ashes", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, @@ -520,7 +512,7 @@ "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.
", + "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]
", "resource": null, "actions": { "3glUQAcsLBcCumnS": { @@ -590,8 +582,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -620,16 +611,7 @@ }, "name": "Attack", "img": "icons/creatures/abilities/tail-swipe-green.webp", - "range": "close", - "areas": [ - { - "name": "Desperate Rampage", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, @@ -655,7 +637,7 @@ "name": "Ashen Cloud", "type": "feature", "system": { - "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.
", + "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]
", "resource": null, "actions": { "UrD4A68IBJgyfvvt": { @@ -685,16 +667,7 @@ }, "name": "Spend Fear", "img": "icons/magic/air/fog-gas-smoke-brown.webp", - "range": "", - "areas": [ - { - "name": "Ashen Cloud", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, @@ -720,14 +693,14 @@ "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.
", + "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]
", "resource": null, "actions": { "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.
", + "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]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -765,8 +738,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -800,16 +772,7 @@ }, "name": "Roll Save", "img": "icons/creatures/abilities/mouth-teeth-fire-orange.webp", - "range": "", - "areas": [ - { - "name": "Apocalyptic Thrasing", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "" }, "rZ7IwBnDzw7VmBT6": { "type": "countdown", 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 d4babd71..25c8b637 100644 --- a/src/packs/adversaries/adversary_Volcanic_Dragon__Molten_Scourge_eArAPuB38CNR0ZIM.json +++ b/src/packs/adversaries/adversary_Volcanic_Dragon__Molten_Scourge_eArAPuB38CNR0ZIM.json @@ -163,9 +163,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -216,7 +219,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -242,8 +245,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -440,7 +442,7 @@ "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.
", + "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]
", "resource": null, "actions": { "OpwKa8tQQoaEIZiS": { @@ -485,8 +487,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -515,16 +516,7 @@ }, "name": "Roll Save", "img": "icons/magic/fire/blast-jet-stream-embers-red.webp", - "range": "veryClose", - "areas": [ - { - "name": "Eruption", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, @@ -550,7 +542,7 @@ "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.
", + "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]
", "resource": null, "actions": { "OhrssSQhmciZt1Rm": { @@ -610,7 +602,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.
", + "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]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -672,8 +664,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -707,16 +698,7 @@ }, "name": "Roll Save", "img": "icons/magic/fire/blast-jet-stream-embers-orange.webp", - "range": "far", - "areas": [ - { - "name": "Volcanic Breath", - "type": "placed", - "shape": "inFront", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, 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 82daed6a..227efccc 100644 --- a/src/packs/adversaries/adversary_Volcanic_Dragon__Obsidian_Predator_ladm7wykhZczYzrQ.json +++ b/src/packs/adversaries/adversary_Volcanic_Dragon__Obsidian_Predator_ladm7wykhZczYzrQ.json @@ -163,9 +163,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -216,7 +219,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -242,8 +245,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -446,7 +448,7 @@ "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.
", + "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]
", "resource": null, "actions": { "23y0BoufIgNq62j9": { @@ -489,8 +491,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -524,16 +525,7 @@ }, "name": "Attack", "img": "icons/creatures/abilities/tail-swipe-green.webp", - "range": "close", - "areas": [ - { - "name": "Avalanche Tail", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, @@ -556,15 +548,18 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [] + } }, + "changes": [], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, "description": "Vulnerable until your next roll with Hope.
", "tint": "#ffffff", @@ -576,9 +571,6 @@ "_stats": { "compendiumSource": null }, - "start": null, - "showIcon": 1, - "folder": null, "_key": "!actors.items.effects!ladm7wykhZczYzrQ.8bMOItTuL7PfAYcJ.qtIaAZDW8QsjILgb" } ], @@ -598,7 +590,7 @@ "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.
", + "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]
", "resource": null, "actions": { "OpAT9nxlbgvnhdBg": { @@ -693,8 +685,7 @@ "type": [] } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -723,16 +714,7 @@ }, "name": "Attack", "img": "icons/creatures/reptiles/dragon-winged-blue.webp", - "range": "far", - "areas": [ - { - "name": "Dive-Bomb", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_War_Wizard_noDdT0tsN6FXSmC8.json b/src/packs/adversaries/adversary_War_Wizard_noDdT0tsN6FXSmC8.json index 0ba663ab..55be8e1a 100644 --- a/src/packs/adversaries/adversary_War_Wizard_noDdT0tsN6FXSmC8.json +++ b/src/packs/adversaries/adversary_War_Wizard_noDdT0tsN6FXSmC8.json @@ -143,9 +143,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -196,7 +199,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -222,8 +225,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -341,7 +343,7 @@ "name": "Eruption", "type": "feature", "system": { - "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.
", + "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]
", "resource": null, "actions": { "vnMq4NuQO6GYxWhM": { @@ -422,16 +424,7 @@ }, "name": "Roll Save", "img": "icons/magic/earth/barrier-stone-explosion-red.webp", - "range": "far", - "areas": [ - { - "name": "Eruption", - "type": "placed", - "shape": "circle", - "size": "veryClose", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, diff --git a/src/packs/adversaries/adversary_Young_Ice_Dragon_UGPiPLJsPvMTSKEF.json b/src/packs/adversaries/adversary_Young_Ice_Dragon_UGPiPLJsPvMTSKEF.json index 6c55ba15..09e76fa8 100644 --- a/src/packs/adversaries/adversary_Young_Ice_Dragon_UGPiPLJsPvMTSKEF.json +++ b/src/packs/adversaries/adversary_Young_Ice_Dragon_UGPiPLJsPvMTSKEF.json @@ -138,9 +138,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -191,7 +194,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -217,8 +220,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -386,7 +388,7 @@ "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.
", + "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]
", "resource": null, "actions": { "CBecTlgyUBFxgoi5": { @@ -438,8 +440,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -473,16 +474,7 @@ }, "name": "Roll Save", "img": "icons/magic/water/projectiles-ice-faceted-shard-salvo-blue.webp", - "range": "close", - "areas": [ - { - "name": "Blizzard Breath", - "type": "placed", - "shape": "inFront", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, @@ -505,15 +497,18 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [] + } }, + "changes": [], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, "description": "Restrained by ice until you break free with a successful Strength Roll.
", "tint": "#ffffff", @@ -525,9 +520,6 @@ "_stats": { "compendiumSource": null }, - "start": null, - "showIcon": 1, - "folder": null, "_key": "!actors.items.effects!UGPiPLJsPvMTSKEF.QV2ytK4b1VWF71OS.g9bUvmw3jet6T99e" } ], @@ -547,7 +539,7 @@ "name": "Avalanche", "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.
", + "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]
", "resource": null, "actions": { "G9LjoXShkCcgx8EC": { @@ -572,8 +564,7 @@ }, "damage": { "parts": {}, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -607,16 +598,7 @@ }, "name": "Attack", "img": "icons/magic/water/barrier-ice-wall-snow.webp", - "range": "far", - "areas": [ - { - "name": "Avalanche", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, diff --git a/src/packs/ancestries/feature_Elemental_Breath_sRaE3CgkgjBF1UpV.json b/src/packs/ancestries/feature_Elemental_Breath_sRaE3CgkgjBF1UpV.json index fd313fcf..a660daf5 100644 --- a/src/packs/ancestries/feature_Elemental_Breath_sRaE3CgkgjBF1UpV.json +++ b/src/packs/ancestries/feature_Elemental_Breath_sRaE3CgkgjBF1UpV.json @@ -77,16 +77,7 @@ }, "name": "Attack", "img": "icons/creatures/abilities/dragon-fire-breath-orange.webp", - "range": "veryClose", - "areas": [ - { - "name": "Elemental Breath", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, diff --git a/src/packs/ancestries/feature_Retract_UFR67BUOhNGLFyg9.json b/src/packs/ancestries/feature_Retract_UFR67BUOhNGLFyg9.json index eb9696b2..b17cd7da 100644 --- a/src/packs/ancestries/feature_Retract_UFR67BUOhNGLFyg9.json +++ b/src/packs/ancestries/feature_Retract_UFR67BUOhNGLFyg9.json @@ -68,33 +68,31 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [ - { - "key": "system.resistance.physical.resistance", - "type": "override", - "value": 1, - "priority": null, - "phase": "initial" - }, - { - "key": "system.disadvantageSources", - "type": "add", - "value": "Action rolls", - "priority": null, - "phase": "initial" - } - ], - "duration": { - "type": "" } }, + "changes": [ + { + "key": "system.resistance.physical.resistance", + "mode": 5, + "value": "1", + "priority": null + }, + { + "key": "system.disadvantageSources", + "mode": 2, + "value": "Retract", + "priority": null + } + ], "disabled": true, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "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.
", "tint": "#ffffff", @@ -104,16 +102,6 @@ "_stats": { "compendiumSource": null }, - "start": { - "time": 0, - "combat": null, - "combatant": null, - "initiative": null, - "round": null, - "turn": null - }, - "showIcon": 1, - "folder": null, "_key": "!items.effects!UFR67BUOhNGLFyg9.3V4FPoyjJUnFP9WS" } ], diff --git a/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json b/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json index 36080868..43ba16a8 100644 --- a/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json +++ b/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json @@ -3,7 +3,7 @@ "type": "feature", "img": "icons/magic/earth/barrier-stone-brown-green.webp", "system": { - "description": "Spend a Hope to move up to Far range in a straight line and make an attack against all targets within Melee range of the line. Targets you succeed against take d8+10 physical damage using your Proficiency and are temporarily Vulnerable.
", + "description": "Spend a Hope to move up to Far range in a straight line and make an attack against all targets within Melee range of the line. Targets you succeed against take d8+10 physical damage using your Proficiency and are temporarily Vulnerable.
@Template[type:ray|range:f]
", "resource": null, "actions": { "5SXMT39vrZoK7GBM": { @@ -23,7 +23,7 @@ ], "uses": { "value": null, - "max": "", + "max": null, "recovery": null }, "damage": { @@ -87,16 +87,7 @@ }, "name": "Attack", "img": "icons/magic/earth/barrier-stone-brown-green.webp", - "range": "far", - "areas": [ - { - "name": "Demolish", - "type": "placed", - "shape": "line", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, diff --git a/src/packs/beastforms/feature_Trample_A0lgd6eVEfX6oqSB.json b/src/packs/beastforms/feature_Trample_A0lgd6eVEfX6oqSB.json index 90801cf6..4f0ea6c3 100644 --- a/src/packs/beastforms/feature_Trample_A0lgd6eVEfX6oqSB.json +++ b/src/packs/beastforms/feature_Trample_A0lgd6eVEfX6oqSB.json @@ -3,7 +3,7 @@ "type": "feature", "img": "icons/environment/people/charge.webp", "system": { - "description": "Mark a Stress to move up to Close range in a straight line and make an attack against all targets within Melee range of the line. Targets you succeed against take d8+1 physical damage using your Proficiency and are temporarily Vulnerable.
", + "description": "Mark a Stress to move up to Close range in a straight line and make an attack against all targets within Melee range of the line. Targets you succeed against take d8+1 physical damage using your Proficiency and are temporarily Vulnerable.
@Template[type:ray|range:close]
", "resource": null, "actions": { "YCOTIv9IVEKpumbJ": { @@ -23,7 +23,7 @@ ], "uses": { "value": null, - "max": "", + "max": null, "recovery": null }, "damage": { @@ -56,7 +56,7 @@ "includeBase": false }, "target": { - "type": "", + "type": null, "amount": null }, "effects": [ @@ -87,16 +87,7 @@ }, "name": "Attack", "img": "icons/environment/people/charge.webp", - "range": "close", - "areas": [ - { - "name": "Trample", - "type": "placed", - "shape": "line", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "originItemType": null, diff --git a/src/packs/communities/feature_Low_Light_Living_aMla3xQuCHEwORGD.json b/src/packs/communities/feature_Low_Light_Living_aMla3xQuCHEwORGD.json index c95d9132..f1ed3ace 100644 --- a/src/packs/communities/feature_Low_Light_Living_aMla3xQuCHEwORGD.json +++ b/src/packs/communities/feature_Low_Light_Living_aMla3xQuCHEwORGD.json @@ -29,28 +29,39 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [ - { - "key": "system.advantageSources", - "type": "add", - "value": "Rolls to hide, investigate, or perceive details in low light", - "priority": null, - "phase": "initial" - } - ], - "duration": { - "type": "" } }, + "changes": [ + { + "key": "system.advantageSources", + "mode": 2, + "value": "In an area with low light or heavy shadow: hide, investigate, or perceive", + "priority": null + }, + { + "key": "system.advantageSources", + "mode": 2, + "value": "", + "priority": null + }, + { + "key": "", + "mode": 2, + "value": "", + "priority": null + } + ], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, - "description": "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": "", "origin": null, "tint": "#ffffff", "transfer": true, @@ -60,16 +71,6 @@ "_stats": { "compendiumSource": null }, - "start": { - "time": 0, - "combat": null, - "combatant": null, - "initiative": null, - "round": null, - "turn": null - }, - "showIcon": 1, - "folder": null, "_key": "!items.effects!aMla3xQuCHEwORGD.pCp32u7UwqxCI4WW" } ], diff --git a/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json b/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json index 1fde286d..c9ae6071 100644 --- a/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json +++ b/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json @@ -132,29 +132,27 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [ - { - "key": "system.advantageSources", - "type": "add", - "value": "On Attacks", - "priority": null, - "phase": "initial" - } - ], - "duration": { - "type": "temporary", - "description": "Until you or an ally rolls a failure with Fear.
" } }, + "changes": [ + { + "key": "system.advantageSources", + "mode": 2, + "value": "1", + "priority": null + } + ], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, - "description": "You gain advantage on attack rolls until you or an ally rolls a failure with Fear.
", + "description": "", "tint": "#ffffff", "statuses": [], "sort": 0, @@ -162,16 +160,6 @@ "_stats": { "compendiumSource": null }, - "start": { - "time": 0, - "combat": null, - "combatant": null, - "initiative": null, - "round": null, - "turn": null - }, - "showIcon": 1, - "folder": null, "_key": "!items.effects!Ef1JsUG50LIoKx2F.s7ma4TNgAvt0ZgEW" } ], diff --git a/src/packs/domains/domainCard_Book_of_Grynn_R0LNheiZycZlZzV3.json b/src/packs/domains/domainCard_Book_of_Grynn_R0LNheiZycZlZzV3.json index c01cb756..d84a8e18 100644 --- a/src/packs/domains/domainCard_Book_of_Grynn_R0LNheiZycZlZzV3.json +++ b/src/packs/domains/domainCard_Book_of_Grynn_R0LNheiZycZlZzV3.json @@ -66,7 +66,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.
", + "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]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -133,16 +133,7 @@ }, "name": "Wall Of Flame", "img": "icons/magic/fire/barrier-wall-flame-ring-yellow.webp", - "range": "", - "areas": [ - { - "name": "Book of Grynn", - "type": "placed", - "shape": "line", - "size": "far", - "effects": [] - } - ] + "range": "" } }, "attribution": { diff --git a/src/packs/domains/domainCard_Book_of_Korvax_cWRFHJdxEZ0M1dAg.json b/src/packs/domains/domainCard_Book_of_Korvax_cWRFHJdxEZ0M1dAg.json index 3eb501e8..d97c514b 100644 --- a/src/packs/domains/domainCard_Book_of_Korvax_cWRFHJdxEZ0M1dAg.json +++ b/src/packs/domains/domainCard_Book_of_Korvax_cWRFHJdxEZ0M1dAg.json @@ -113,7 +113,7 @@ "type": "damage", "_id": "fb2HYD9J759nHKhV", "systemPath": "actions", - "description": "Mark a Stress to create a temporary magical circle on the ground where you stand. All adversaries within Melee range, or who enter Melee range, take 2d12+4 magic damage and are knocked back to Very Close range.
", + "description": "Mark a Stress to create a temporary magical circle on the ground where you stand. All adversaries within Melee range, or who enter Melee range, take 2d12+4 magic damage and are knocked back to Very Close range.
@Template[type:emanation|range:m]
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -167,16 +167,7 @@ "effects": [], "name": "Rune Circle", "img": "icons/magic/symbols/runes-star-pentagon-blue.webp", - "range": "", - "areas": [ - { - "name": "Book of Korvax", - "type": "placed", - "shape": "emanation", - "size": "melee", - "effects": [] - } - ] + "range": "" } }, "attribution": { diff --git a/src/packs/domains/domainCard_Book_of_Yarrow_J1ovx2FpNDvPq1o6.json b/src/packs/domains/domainCard_Book_of_Yarrow_J1ovx2FpNDvPq1o6.json index 45fbc77f..17eb4223 100644 --- a/src/packs/domains/domainCard_Book_of_Yarrow_J1ovx2FpNDvPq1o6.json +++ b/src/packs/domains/domainCard_Book_of_Yarrow_J1ovx2FpNDvPq1o6.json @@ -14,7 +14,7 @@ "type": "attack", "_id": "IxoglRervMx9YdVn", "systemPath": "actions", - "description": "Make a Spellcast Roll (18). On a success, time temporarily slows to a halt for everyone within Far range except for you. It resumes the next time you make an action roll that targets another creature.
", + "description": "Make a Spellcast Roll (18). On a success, time temporarily slows to a halt for everyone within Far range except for you. It resumes the next time you make an action roll that targets another creature.
@Template[type:emanation|range:f]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -54,16 +54,7 @@ }, "name": "Timejammer", "img": "icons/magic/time/hourglass-tilted-glowing-gold.webp", - "range": "far", - "areas": [ - { - "name": "Book of Yarrow", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" }, "ZcQfbtGet0KQWjWS": { "type": "effect", diff --git a/src/packs/domains/domainCard_Chain_Lightning_0kAVO6rordCfZqYP.json b/src/packs/domains/domainCard_Chain_Lightning_0kAVO6rordCfZqYP.json index 6da2a76c..c2bf721f 100644 --- a/src/packs/domains/domainCard_Chain_Lightning_0kAVO6rordCfZqYP.json +++ b/src/packs/domains/domainCard_Chain_Lightning_0kAVO6rordCfZqYP.json @@ -90,16 +90,7 @@ }, "name": "Cast", "img": "icons/magic/lightning/bolts-forked-large-blue-yellow.webp", - "range": "close", - "areas": [ - { - "name": "Chain Lightning", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" }, "tRJNO3DVvVYwW3tt": { "type": "damage", diff --git a/src/packs/domains/domainCard_Conjure_Swarm_rZPH0BY8Sznc9sFG.json b/src/packs/domains/domainCard_Conjure_Swarm_rZPH0BY8Sznc9sFG.json index d9e8da6d..d1d1789d 100644 --- a/src/packs/domains/domainCard_Conjure_Swarm_rZPH0BY8Sznc9sFG.json +++ b/src/packs/domains/domainCard_Conjure_Swarm_rZPH0BY8Sznc9sFG.json @@ -178,16 +178,7 @@ }, "name": "Fire Flies: Cast", "img": "icons/creatures/invertebrates/wasp-swarm-movement.webp", - "range": "close", - "areas": [ - { - "name": "Conjure Swarm", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "attribution": { @@ -213,28 +204,31 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [ - { - "key": "system.rules.damageReduction.reduceSeverity.magical", - "value": 1, - "priority": null, - "type": "add" - }, - { - "key": "system.rules.damageReduction.reduceSeverity.physical", - "value": 1, - "priority": null, - "type": "add" - } - ] + } }, + "changes": [ + { + "key": "system.rules.damageReduction.reduceSeverity.magical", + "mode": 2, + "value": "1", + "priority": null + }, + { + "key": "system.rules.damageReduction.reduceSeverity.physical", + "mode": 2, + "value": "1", + "priority": null + } + ], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, "description": "", "tint": "#ffffff", @@ -244,9 +238,6 @@ "_stats": { "compendiumSource": null }, - "start": null, - "showIcon": 1, - "folder": null, "_key": "!items.effects!rZPH0BY8Sznc9sFG.dImnF8ZT2rVybiIP" } ], diff --git a/src/packs/domains/domainCard_Death_Grip_x0FVGE1YbfXalJiw.json b/src/packs/domains/domainCard_Death_Grip_x0FVGE1YbfXalJiw.json index d33b6bab..214dae17 100644 --- a/src/packs/domains/domainCard_Death_Grip_x0FVGE1YbfXalJiw.json +++ b/src/packs/domains/domainCard_Death_Grip_x0FVGE1YbfXalJiw.json @@ -214,16 +214,7 @@ }, "name": "Hit All Adversaries Between", "img": "icons/magic/nature/root-vine-beanstalk-moon.webp", - "range": "", - "areas": [ - { - "name": "Line To Target", - "type": "placed", - "shape": "line", - "size": "close", - "effects": [] - } - ] + "range": "" } }, "attribution": { @@ -249,15 +240,18 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [] + } }, + "changes": [], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, "description": "", "tint": "#ffffff", @@ -269,9 +263,6 @@ "_stats": { "compendiumSource": null }, - "start": null, - "showIcon": 1, - "folder": null, "_key": "!items.effects!x0FVGE1YbfXalJiw.wMXCIQxqLS9IbsEK" }, { @@ -287,15 +278,18 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [] + } }, + "changes": [], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, "description": "", "tint": "#ffffff", @@ -307,9 +301,6 @@ "_stats": { "compendiumSource": null }, - "start": null, - "showIcon": 1, - "folder": null, "_key": "!items.effects!x0FVGE1YbfXalJiw.bZ0xgZ6TT2099OYp" }, { @@ -325,15 +316,18 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [] + } }, + "changes": [], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, "description": "", "tint": "#ffffff", @@ -345,9 +339,6 @@ "_stats": { "compendiumSource": null }, - "start": null, - "showIcon": 1, - "folder": null, "_key": "!items.effects!x0FVGE1YbfXalJiw.Oe95zWWY41nH8y5l" } ], diff --git a/src/packs/domains/domainCard_Eclipse_62Sj67PdPFzwWVe3.json b/src/packs/domains/domainCard_Eclipse_62Sj67PdPFzwWVe3.json index e2afaf66..c797a148 100644 --- a/src/packs/domains/domainCard_Eclipse_62Sj67PdPFzwWVe3.json +++ b/src/packs/domains/domainCard_Eclipse_62Sj67PdPFzwWVe3.json @@ -60,16 +60,7 @@ }, "name": "Cast", "img": "icons/magic/nature/moon-crescent.webp", - "range": "far", - "areas": [ - { - "name": "Eclipse", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" }, "rvkNiqCr8N6t6KPo": { "type": "damage", @@ -147,22 +138,25 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [ - { - "key": "system.disadvantageSources", - "value": "Attacking you or an ally within this eclipse's shadow", - "priority": null, - "type": "add" - } - ] + } }, + "changes": [ + { + "key": "system.disadvantageSources", + "mode": 2, + "value": "Attacking you or an ally within this eclipse's shadow", + "priority": null + } + ], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, "description": "Attack rolls have disadvantage when targeting you or an ally within this shadow.
", "tint": "#ffffff", @@ -172,9 +166,6 @@ "_stats": { "compendiumSource": null }, - "start": null, - "showIcon": 1, - "folder": null, "_key": "!items.effects!62Sj67PdPFzwWVe3.ARMcw2FtKfaYr902" } ], diff --git a/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json b/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json index 2086deaa..05496132 100644 --- a/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json +++ b/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "7Cs44YADBTmmtCw6", "system": { - "description": "Make a Spellcast Roll against all adversaries within Far range. Mark any number of Stress to make shards of arcana rain down from above. Targets you succeed against take 1d20+2 magic damage for each Stress marked.
", + "description": "Make a Spellcast Roll against all adversaries within Far range. Mark any number of Stress to make shards of arcana rain down from above. Targets you succeed against take 1d20+2 magic damage for each Stress marked.
@Template[type:emanation|range:f]
", "domain": "arcana", "recallCost": 1, "level": 10, @@ -14,7 +14,7 @@ "type": "attack", "_id": "xJfXJDVsBayGaqkr", "systemPath": "actions", - "description": "", + "description": "Make a Spellcast Roll against all adversaries within Far range. Mark any number of Stress to make shards of arcana rain down from above. Targets you succeed against take 1d20+2 magic damage for each Stress marked.
@Template[type:emanation|range:f]
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -89,16 +89,7 @@ }, "name": "Attack", "img": "icons/magic/light/projectiles-star-purple.webp", - "range": "", - "areas": [ - { - "name": "Falling Sky", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "" } }, "attribution": { diff --git a/src/packs/domains/domainCard_Ground_Pound_WnGldYhJPDhx8v9X.json b/src/packs/domains/domainCard_Ground_Pound_WnGldYhJPDhx8v9X.json index 452e8f76..5663c6b3 100644 --- a/src/packs/domains/domainCard_Ground_Pound_WnGldYhJPDhx8v9X.json +++ b/src/packs/domains/domainCard_Ground_Pound_WnGldYhJPDhx8v9X.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "FUzQxkv4gFc46SIs", "system": { - "description": "Spend 2 Hope to strike the ground where you stand and make a Strength Roll against all targets within Very Close range. Targets you succeed against are thrown back to Far range and must make a Reaction Roll (17). Targets who fail take 4d10+8 damage. Targets who succeed take half damage.
", + "description": "Spend 2 Hope to strike the ground where you stand and make a Strength Roll against all targets within Very Close range. Targets you succeed against are thrown back to Far range and must make a Reaction Roll (17). Targets who fail take 4d10+8 damage. Targets who succeed take half damage.
@Template[type:emanation|range:vc]
", "domain": "valor", "recallCost": 2, "level": 8, @@ -14,7 +14,7 @@ "type": "attack", "_id": "FOrohOCnzfdBl4sM", "systemPath": "actions", - "description": "", + "description": "Spend 2 Hope to strike the ground where you stand and make a Strength Roll against all targets within Very Close range. Targets you succeed against are thrown back to Far range and must make a Reaction Roll (17). Targets who fail take 4d10+8 damage. Targets who succeed take half damage.
@Template[type:emanation|range:vc]
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -88,16 +88,7 @@ }, "name": "Strike Ground", "img": "icons/magic/earth/barrier-stone-brown-green.webp", - "range": "veryClose", - "areas": [ - { - "name": "Ground Pound", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "attribution": { diff --git a/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json b/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json index 8ee53c81..d918d49f 100644 --- a/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json +++ b/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json @@ -84,16 +84,7 @@ }, "name": "Heal 1 Hit Point", "img": "icons/commodities/gems/gem-faceted-diamond-green.webp", - "range": "close", - "areas": [ - { - "name": "Healing Field", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" }, "EqamWsxO86ZjY8WV": { "type": "healing", @@ -177,16 +168,7 @@ }, "name": "Heal 2 Hit Points", "img": "icons/commodities/gems/gem-faceted-diamond-green.webp", - "range": "close", - "areas": [ - { - "name": "Healing Field", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "resource": { diff --git a/src/packs/domains/domainCard_Hypnotic_Shimmer_2ZeuCGVatQdPOVC6.json b/src/packs/domains/domainCard_Hypnotic_Shimmer_2ZeuCGVatQdPOVC6.json index 08f0d3ee..15a59635 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.
", + "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]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -86,16 +86,7 @@ }, "name": "Cast", "img": "icons/magic/control/hypnosis-mesmerism-swirl.webp", - "range": "close", - "areas": [ - { - "name": "Hypnotic Shimmer", - "type": "placed", - "shape": "inFront", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "attribution": { diff --git a/src/packs/domains/domainCard_Manifest_Wall_TtGOtWkbr23VhHfH.json b/src/packs/domains/domainCard_Manifest_Wall_TtGOtWkbr23VhHfH.json index cde6cdc8..02f20956 100644 --- a/src/packs/domains/domainCard_Manifest_Wall_TtGOtWkbr23VhHfH.json +++ b/src/packs/domains/domainCard_Manifest_Wall_TtGOtWkbr23VhHfH.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "pDtffkb0SMv1O8pL", "system": { - "description": "Make a Spellcast Roll (15). Once per rest on a success, spend a Hope to create a temporary magical wall between two points within Far range. It can be up to 50 feet high and form at any angle. Creatures or objects in its path are shunted to a side of your choice. The wall stays up until your next rest or you cast Manifest Wall again.
", + "description": "Make a Spellcast Roll (15). Once per rest on a success, spend a Hope to create a temporary magical wall between two points within Far range. It can be up to 50 feet high and form at any angle. Creatures or objects in its path are shunted to a side of your choice. The wall stays up until your next rest or you cast Manifest Wall again.
@Template[type:ray|range:f]
", "domain": "codex", "recallCost": 2, "level": 5, @@ -14,7 +14,7 @@ "type": "attack", "_id": "nFzMCrW7wuXCCmJW", "systemPath": "actions", - "description": "", + "description": "Make a Spellcast Roll (15). Once per rest on a success, spend a Hope to create a temporary magical wall between two points within Far range. It can be up to 50 feet high and form at any angle. Creatures or objects in its path are shunted to a side of your choice. The wall stays up until your next rest or you cast Manifest Wall again.
@Template[type:ray|range:f]
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -63,16 +63,7 @@ }, "name": "Spend Hope", "img": "icons/magic/symbols/ring-circle-smoke-blue.webp", - "range": "", - "areas": [ - { - "name": "Manifest Wall", - "type": "placed", - "shape": "line", - "size": "far", - "effects": [] - } - ] + "range": "" } }, "attribution": { diff --git a/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json b/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json index 8ada8d80..7e925700 100644 --- a/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json +++ b/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "7O1tTswJMNdPgLsx", "system": { - "description": "Make a Spellcast Roll against all targets within Far range. Targets you succeed against become temporarily Enraptured. While Enraptured, a targetβs attention is fixed on you, narrowing their field of view and drowning out any sound but your voice. Mark a Stress to force all Enraptured targets to mark a Stress, ending this spell.
", + "description": "Make a Spellcast Roll against all targets within Far range. Targets you succeed against become temporarily Enraptured. While Enraptured, a targetβs attention is fixed on you, narrowing their field of view and drowning out any sound but your voice. Mark a Stress to force all Enraptured targets to mark a Stress, ending this spell.
@Template[type:emanation|range:f]
", "domain": "grace", "recallCost": 3, "level": 8, @@ -14,7 +14,7 @@ "type": "attack", "_id": "r5eA3tAH7EplOQCP", "systemPath": "actions", - "description": "", + "description": "Make a Spellcast Roll against all targets within Far range. Targets you succeed against become temporarily Enraptured. While Enraptured, a targetβs attention is fixed on you, narrowing their field of view and drowning out any sound but your voice. Mark a Stress to force all Enraptured targets to mark a Stress, ending this spell.
@Template[type:emanation|range:f]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -59,16 +59,7 @@ }, "name": "Enrapture", "img": "icons/magic/control/hypnosis-mesmerism-eye.webp", - "range": "far", - "areas": [ - { - "name": "Mass Enrapture", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" }, "QhBaM0LU9tmSI3IO": { "type": "damage", diff --git a/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json b/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json index 8eefeec4..d40b1c43 100644 --- a/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json +++ b/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "2rqOUxEglhhPKk2j", "system": { - "description": "Once per long rest, choose any targets within Very Close range to perceive you as a nightmarish horror. The targets must succeed on a Reaction Roll (16) or become temporarily Horrified. While Horrified, theyβre Vulnerable. Steal a number of Fear from the GM equal to the number of targets that are Horrified (up to the number of Fear in the GMβs pool). Roll a number of d6s equal to the number of stolen Fear and deal the total damage to each Horrified target. Discard the stolen Fear.
", + "description": "Once per long rest, choose any targets within Very Close range to perceive you as a nightmarish horror. The targets must succeed on a Reaction Roll (16) or become temporarily Horrified. While Horrified, theyβre Vulnerable. Steal a number of Fear from the GM equal to the number of targets that are Horrified (up to the number of Fear in the GMβs pool). Roll a number of d6s equal to the number of stolen Fear and deal the total damage to each Horrified target. Discard the stolen Fear.
@Template[type:emanation|range:vc]
", "domain": "midnight", "recallCost": 2, "level": 9, @@ -14,7 +14,7 @@ "type": "attack", "_id": "e4A6GQERsn08IBby", "systemPath": "actions", - "description": "", + "description": "Once per long rest, choose any targets within Very Close range to perceive you as a nightmarish horror. The targets must succeed on a Reaction Roll (16) or become temporarily Horrified. While Horrified, theyβre Vulnerable. Steal a number of Fear from the GM equal to the number of targets that are Horrified (up to the number of Fear in the GMβs pool). Roll a number of d6s equal to the number of stolen Fear and deal the total damage to each Horrified target. Discard the stolen Fear.
@Template[type:emanation|range:vc]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -59,16 +59,7 @@ }, "name": "Horrify", "img": "icons/creatures/magical/spirit-fear-energy-pink.webp", - "range": "veryClose", - "areas": [ - { - "name": "Night Terror", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" }, "ELzQvftGxZigPkBH": { "type": "damage", diff --git a/src/packs/domains/domainCard_Rain_of_Blades_Ucenef6JpjQxwXni.json b/src/packs/domains/domainCard_Rain_of_Blades_Ucenef6JpjQxwXni.json index ad41f6ec..293490e3 100644 --- a/src/packs/domains/domainCard_Rain_of_Blades_Ucenef6JpjQxwXni.json +++ b/src/packs/domains/domainCard_Rain_of_Blades_Ucenef6JpjQxwXni.json @@ -14,7 +14,7 @@ "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.
", + "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]
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -88,16 +88,7 @@ }, "name": "Cast", "img": "icons/skills/melee/spear-tips-three-green.webp", - "range": "veryClose", - "areas": [ - { - "name": "Rain of Blades", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "attribution": { diff --git a/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json b/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json index 6d8757f7..11e15a0b 100644 --- a/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json +++ b/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "qY4Zqc1Ch6p317uK", "system": { - "description": "Make a Spellcast Roll (15). Once per rest on a success, create a temporary barrier of protective energy around you at Very Close range. You and all allies within the barrier when this spell is cast clear 1d4 Hit Points. While the barrier is up, you and all allies within have resistance to physical damage from outside the barrier.
When you move, the barrier follows you.
", + "description": "Make a Spellcast Roll (15). Once per rest on a success, create a temporary barrier of protective energy around you at Very Close range. You and all allies within the barrier when this spell is cast clear 1d4 Hit Points. While the barrier is up, you and all allies within have resistance to physical damage from outside the barrier.
When you move, the barrier follows you.
@Template[type:emanation|range:vc]
", "domain": "sage", "recallCost": 1, "level": 8, @@ -14,7 +14,7 @@ "type": "healing", "_id": "XdAwXl2uWNinInFe", "systemPath": "actions", - "description": "", + "description": "Make a Spellcast Roll (15). Once per rest on a success, create a temporary barrier of protective energy around you at Very Close range. You and all allies within the barrier when this spell is cast clear 1d4 Hit Points. While the barrier is up, you and all allies within have resistance to physical damage from outside the barrier.
When you move, the barrier follows you.
@Template[type:emanation|range:vc]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -80,16 +80,7 @@ }, "name": "Cast", "img": "icons/magic/nature/leaf-hand-green.webp", - "range": "veryClose", - "areas": [ - { - "name": "Rejuvenation Barrier", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "attribution": { @@ -115,22 +106,25 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [ - { - "key": "system.resistance.physical.resistance", - "value": true, - "priority": null, - "type": "override" - } - ] + } }, + "changes": [ + { + "key": "system.resistance.physical.resistance", + "mode": 5, + "value": "true", + "priority": null + } + ], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "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.
", "tint": "#ffffff", @@ -140,9 +134,6 @@ "_stats": { "compendiumSource": null }, - "start": null, - "showIcon": 1, - "folder": null, "_key": "!items.effects!HtWx5IIemCoorMj2.obul9k0P4CjFuxJD" } ], diff --git a/src/packs/domains/domainCard_Salvation_Beam_4uAFGp3LxiC07woC.json b/src/packs/domains/domainCard_Salvation_Beam_4uAFGp3LxiC07woC.json index 05a62281..3f81c8ac 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": "", + "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]
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -84,16 +84,7 @@ }, "name": "Cast", "img": "icons/magic/light/beams-rays-orange-purple-large.webp", - "range": "far", - "areas": [ - { - "name": "Salvation Beam", - "type": "placed", - "shape": "line", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "attribution": { diff --git a/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json b/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json index a90ec0f7..0fc6ce4b 100644 --- a/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json +++ b/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "Abn46nCQst6kpGeA", "system": { - "description": "Make a Spellcast Roll against all adversaries within Very Close range. Targets you succeed against are temporarily Restrained as their shadow binds them in place.
", + "description": "Make a Spellcast Roll against all adversaries within Very Close range. Targets you succeed against are temporarily Restrained as their shadow binds them in place.
@Template[type:emanation|range:vc]
", "domain": "midnight", "recallCost": 0, "level": 2, @@ -14,7 +14,7 @@ "type": "attack", "_id": "Llr9uIDUCrfsiZNn", "systemPath": "actions", - "description": "", + "description": "Make a Spellcast Roll against all adversaries within Very Close range. Targets you succeed against are temporarily Restrained as their shadow binds them in place.
@Template[type:emanation|range:vc]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -59,16 +59,7 @@ }, "name": "Cast", "img": "icons/magic/control/debuff-energy-snare-blue.webp", - "range": "veryClose", - "areas": [ - { - "name": "Shadowbind", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "attribution": { diff --git a/src/packs/domains/domainCard_Stunning_Sunlight_lRHo6ZkK1zybeEoG.json b/src/packs/domains/domainCard_Stunning_Sunlight_lRHo6ZkK1zybeEoG.json index e2d68a10..2f66c1f0 100644 --- a/src/packs/domains/domainCard_Stunning_Sunlight_lRHo6ZkK1zybeEoG.json +++ b/src/packs/domains/domainCard_Stunning_Sunlight_lRHo6ZkK1zybeEoG.json @@ -95,16 +95,7 @@ }, "name": "Cast", "img": "icons/magic/light/beam-strike-village-yellow.webp", - "range": "far", - "areas": [ - { - "name": "Stunning Sunlight", - "type": "placed", - "shape": "inFront", - "size": "far", - "effects": [] - } - ] + "range": "far" }, "AI8sGbUXLw4gG8mW": { "type": "damage", diff --git a/src/packs/domains/domainCard_Tempest_X7YaZgFieBlqaPdZ.json b/src/packs/domains/domainCard_Tempest_X7YaZgFieBlqaPdZ.json index e027ca8f..3599017c 100644 --- a/src/packs/domains/domainCard_Tempest_X7YaZgFieBlqaPdZ.json +++ b/src/packs/domains/domainCard_Tempest_X7YaZgFieBlqaPdZ.json @@ -86,16 +86,7 @@ }, "name": "Blizzard", "img": "icons/magic/water/projectiles-ice-faceted-shard-salvo-blue.webp", - "range": "far", - "areas": [ - { - "name": "Tempest", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" }, "FEPhujGa5lvu5fXr": { "type": "attack", @@ -173,16 +164,7 @@ }, "name": "Hurricane", "img": "icons/magic/air/wind-tornado-cyclone-purple-blue.webp", - "range": "far", - "areas": [ - { - "name": "Tempest", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" }, "CzMlqo91kuTgg1As": { "type": "attack", @@ -260,16 +242,7 @@ }, "name": "Sandstorm", "img": "icons/magic/air/air-wave-gust-smoke-yellow.webp", - "range": "far", - "areas": [ - { - "name": "Tempest", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "attribution": { @@ -343,15 +316,18 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [] + } }, + "changes": [], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, "description": "Targets canβt move against the wind.
", "tint": "#ffffff", @@ -361,9 +337,6 @@ "_stats": { "compendiumSource": null }, - "start": null, - "showIcon": 1, - "folder": null, "_key": "!items.effects!X7YaZgFieBlqaPdZ.tB7AyDy0pbE9q5hM" }, { @@ -379,15 +352,18 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [] + } }, + "changes": [], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, "description": "Attacks made from beyond Melee range have disadvantage.
", "tint": "#ffffff", @@ -397,9 +373,6 @@ "_stats": { "compendiumSource": null }, - "start": null, - "showIcon": 1, - "folder": null, "_key": "!items.effects!X7YaZgFieBlqaPdZ.S4Vpgf3FMmq8MGrb" } ], diff --git a/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json b/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json index 70a1fbda..4696c144 100644 --- a/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json +++ b/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json @@ -98,16 +98,7 @@ }, "name": "Use as attack", "img": "icons/magic/nature/root-vine-entangled-humanoid.webp", - "range": "close", - "areas": [ - { - "name": "Towering Stalk", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" }, "I6eSBTpuYDU1nEgr": { "type": "effect", diff --git a/src/packs/domains/domainCard_Veil_of_Night_gV4L5ZZmfPrEbIDh.json b/src/packs/domains/domainCard_Veil_of_Night_gV4L5ZZmfPrEbIDh.json index cff0c185..abac35be 100644 --- a/src/packs/domains/domainCard_Veil_of_Night_gV4L5ZZmfPrEbIDh.json +++ b/src/packs/domains/domainCard_Veil_of_Night_gV4L5ZZmfPrEbIDh.json @@ -59,16 +59,7 @@ }, "name": "Cast", "img": "icons/magic/unholy/barrier-shield-glowing-pink.webp", - "range": "self", - "areas": [ - { - "name": "Veil of Night", - "type": "placed", - "shape": "line", - "size": "far", - "effects": [] - } - ] + "range": "self" } }, "attribution": { @@ -94,22 +85,25 @@ "type": "withinRange", "target": "hostile", "range": "melee" - }, - "changes": [ - { - "key": "system.advantageSources", - "value": "Attack rolls you make through the darkness", - "priority": null, - "type": "add" - } - ] + } }, + "changes": [ + { + "key": "system.advantageSources", + "mode": 2, + "value": "Attack rolls you make through the darkness", + "priority": null + } + ], "disabled": false, "duration": { - "value": null, - "units": "seconds", - "expiry": null, - "expired": false + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, "description": "", "tint": "#ffffff", @@ -121,9 +115,6 @@ "_stats": { "compendiumSource": null }, - "start": null, - "showIcon": 1, - "folder": null, "_key": "!items.effects!gV4L5ZZmfPrEbIDh.eSfBBZ7IP8qirLu7" } ], diff --git a/src/packs/domains/domainCard_Whirlwind_anO0arioUy7I5zBg.json b/src/packs/domains/domainCard_Whirlwind_anO0arioUy7I5zBg.json index 610ced15..237e5736 100644 --- a/src/packs/domains/domainCard_Whirlwind_anO0arioUy7I5zBg.json +++ b/src/packs/domains/domainCard_Whirlwind_anO0arioUy7I5zBg.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "9Xc6KzNyjDtTGZkp", "system": { - "description": "When you make a successful attack against a target within Very Close range, you can spend a Hope to use the attack against all other targets within Very Close range. All additional adversaries you succeed against with this ability take half damage.
", + "description": "When you make a successful attack against a target within Very Close range, you can spend a Hope to use the attack against all other targets within Very Close range. All additional adversaries you succeed against with this ability take half damage.
@Template[type:emanation|range:vc]
", "domain": "blade", "recallCost": 0, "level": 1, @@ -14,7 +14,7 @@ "type": "effect", "_id": "g9X0wRuCtAYzF576", "systemPath": "actions", - "description": "", + "description": "When you make a successful attack against a target within Very Close range, you can spend a Hope to use the attack against all other targets within Very Close range. All additional adversaries you succeed against with this ability take half damage.
@Template[type:emanation|range:vc]
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -39,16 +39,7 @@ }, "name": "Spend a Hope", "img": "icons/magic/control/buff-flight-wings-runes-purple-orange.webp", - "range": "", - "areas": [ - { - "name": "Whirlwind", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "" } }, "attribution": { diff --git a/src/packs/domains/domainCard_Wrangle_9DwSxHoUwl8Kxj3n.json b/src/packs/domains/domainCard_Wrangle_9DwSxHoUwl8Kxj3n.json index eec2e76e..22042f7d 100644 --- a/src/packs/domains/domainCard_Wrangle_9DwSxHoUwl8Kxj3n.json +++ b/src/packs/domains/domainCard_Wrangle_9DwSxHoUwl8Kxj3n.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "n7pgTBYSItMzCX0s", "system": { - "description": "Make an Agility Roll against all targets within Close range. Spend a Hope to move targets you succeed against, and any willing allies within Close range, to another point within Close range.
", + "description": "Make an Agility Roll against all targets within Close range. Spend a Hope to move targets you succeed against, and any willing allies within Close range, to another point within Close range.
@Template[type:emanation|range:c]
", "domain": "bone", "recallCost": 1, "level": 8, @@ -55,16 +55,7 @@ }, "name": "Agility Roll", "img": "icons/skills/melee/sword-engraved-glow-purple.webp", - "range": "close", - "areas": [ - { - "name": "Wrangle", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "close" } }, "attribution": { diff --git a/src/packs/domains/domainCard_Zone_of_Protection_lOZaRb4fCVgQsWB5.json b/src/packs/domains/domainCard_Zone_of_Protection_lOZaRb4fCVgQsWB5.json index b9090717..19bff136 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.
", + "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, @@ -55,16 +55,7 @@ }, "name": "Cast", "img": "icons/magic/control/buff-flight-wings-runes-purple-orange.webp", - "range": "far", - "areas": [ - { - "name": "Zone of Protection", - "type": "placed", - "shape": "emanation", - "size": "veryClose", - "effects": [] - } - ] + "range": "far" } }, "resource": null, diff --git a/src/packs/environments/environment_Abandoned_Grove_pGEdzdLkqYtBhxnG.json b/src/packs/environments/environment_Abandoned_Grove_pGEdzdLkqYtBhxnG.json index 25340e77..75fc932f 100644 --- a/src/packs/environments/environment_Abandoned_Grove_pGEdzdLkqYtBhxnG.json +++ b/src/packs/environments/environment_Abandoned_Grove_pGEdzdLkqYtBhxnG.json @@ -52,9 +52,12 @@ "src": "systems/daggerheart/assets/icons/documents/actors/forest.svg", "anchorX": 0.5, "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, "fit": "contain", "scaleX": 1, "scaleY": 1, + "rotation": 0, "tint": "#ffffff", "alphaThreshold": 0.75 }, @@ -105,7 +108,7 @@ "saturation": 0, "contrast": 0 }, - "detectionModes": {}, + "detectionModes": [], "occludable": { "radius": 0 }, @@ -131,8 +134,7 @@ "flags": {}, "randomImg": false, "appendNumber": false, - "prependAdjective": false, - "depth": 1 + "prependAdjective": false }, "items": [ { @@ -171,7 +173,7 @@ "type": "attack", "_id": "47fcdhe1FDdm9rQU", "systemPath": "actions", - "description": "", + "description": "Pick a point within the grove. All targets within Very Close range of that point must succeed on an Agility Reaction Roll or take 1d8+3 physical damage and become Restrained by barbed vines. Restrained lasts until theyβre freed with a successful Finesse or Strength roll or by dealing at least 6 damage to the vines.
@Template[type:rect|range:vc]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -209,8 +211,7 @@ } } }, - "includeBase": false, - "groupAttack": "" + "includeBase": false }, "target": { "type": "any", @@ -244,16 +245,7 @@ }, "name": "Roll Save", "img": "icons/magic/nature/root-vine-spiral-thorns-teal.webp", - "range": "veryClose", - "areas": [ - { - "name": "Barbed Vines", - "type": "placed", - "shape": "circle", - "size": "veryClose", - "effects": [] - } - ] + "range": "veryClose" } }, "originItemType": null, @@ -331,42 +323,7 @@ "system": { "description": "A @UUID[Compendium.daggerheart.adversaries.Actor.8yUj2Mzvnifhxegm]{Young Dryad}, two @UUID[Compendium.daggerheart.adversaries.Actor.VtFBt9XBE0WrGGxP]{Sylvan Soldiers}, and a number of @UUID[Compendium.daggerheart.adversaries.Actor.G62k4oSkhkoXEs2D]{Minor Treants} equal to the number of PCs appear to confront the party for their intrusion.
What are the grove guardians concealing? What threat to the forest could the PCs confront to appease the Dryad?
Warped animals wreathed in indigo flame trample through a point of your choice. All targets within Close range of that point must make an Agility Reaction Roll. Targets who fail take 3d12+3 physical damage. Targets who succeed take half damage instead.
Are these real animals consumed by the fl ame or merely constructs of the corrupting magic?
Warped animals wreathed in indigo flame trample through a point of your choice. All targets within Close range of that point must make an Agility Reaction Roll. Targets who fail take 3d12+3 physical damage. Targets who succeed take half damage instead.
@Template[type:emanation|range:c]
Are these real animals consumed by the fl ame or merely constructs of the corrupting magic?
Warped animals wreathed in indigo f l ame trample through a point of your choice. All targets within Close range of that point must make an Agility Reaction Roll. Targets who fail take 3d12+3 physical damage. Targets who succeed take half damage instead.
@Template[type:emanation|range:c]
Are these real animals consumed by the fl ame or merely constructs of the corrupting magic?
When an adversary is defeated, you can spend a Fear to have a stray attack from a siege weapon hit a point on the battlefield. All targets within Very Close range of that point must make an Agility Reaction Roll.
Targets who fail take 3d8+3 physical or magic damage and must mark a Stress.
Targets who succeed must mark a Stress.
What debris is scattered by the attack? What is broken by the strike that canβt be easily mended?
When an adversary is defeated, you can spend a Fear to have a stray attack from a siege weapon hit a point on the battlefield. All targets within Very Close range of that point must make an Agility Reaction Roll.
@Template[type:circle|range:vc]
Targets who fail take 3d8+3 physical or magic damage and must mark a Stress.
Targets who succeed must mark a Stress.
What debris is scattered by the attack? What is broken by the strike that canβt be easily mended?
When an adversary is defeated, you can spend a Fear to have a stray attack from a siege weapon hit a point on the battlefield. All targets within Very Close range of that point must make an Agility Reaction Roll.
Targets who fail take 3d8+3 physical or magic damage and must mark a Stress.
Targets who succeed must mark a Stress.
What debris is scattered by the attack? What is broken by the strike that canβt be easily mended?
When an adversary is defeated, you can spend a Fear to have a stray attack from a siege weapon hit a point on the battlefield. All targets within Very Close range of that point must make an Agility Reaction Roll.
@Template[type:circle|range:vc]
Targets who fail take 3d8+3 physical or magic damage and must mark a Stress.
Targets who succeed must mark a Stress.
What debris is scattered by the attack? What is broken by the strike that canβt be easily mended?
All targets within Close range of a point you choose in this environment must succeed on an Agility Reaction Roll or take 4d8+8 physical damage from skeletal shrapnel as part of the ossuary detonates around them.
What ancient skeletal architecture is destroyed? What bones stick in your armor?
All targets within Close range of a point you choose in this environment must succeed on an Agility Reaction Roll or take 4d8+8 physical damage from skeletal shrapnel as part of the ossuary detonates around them.
@Template[type:circle|range:c]
What ancient skeletal architecture is destroyed? What bones stick in your armor?
All targets within Close range of a point you choose in this environment must succeed on an Agility Reaction Roll or take 4d8+8 physical damage from skeletal shrapnel as part of the ossuary detonates around them.
What ancient skeletal architecture is destroyed? What bones stick in your armor?
All targets within Close range of a point you choose in this environment must succeed on an Agility Reaction Roll or take 4d8+8 physical damage from skeletal shrapnel as part of the ossuary detonates around them.
@Template[type:circle|range:c]
What ancient skeletal architecture is destroyed? What bones stick in your armor?
Spend a Fear as a mage from one side uses large-scale destructive magic. Pick a point on the battlefield within Very Far range of the mage. All targets within Close range of that point must make an Agility Reaction Roll. Targets who fail take 3d12+8 magic damage and must mark a Stress.
What form does the attack takeβfireball raining acid a storm of blades? What tactical objective is this attack meant to accomplish and what comes next?
Spend a Fear as a mage from one side uses large-scale destructive magic. Pick a point on the battlefield within Very Far range of the mage. All targets within Close range of that point must make an Agility Reaction Roll. Targets who fail take 3d12+8 magic damage and must mark a Stress.
@Template[type:circle|range:c]
What form does the attack takeβfireball raining acid a storm of blades? What tactical objective is this attack meant to accomplish and what comes next?
Spend a Fear as a mage from one side uses large-scale destructive magic. Pick a point on the battlefield within Very Far range of the mage. All targets within Close range of that point must make an Agility Reaction Roll. Targets who fail take 3d12+8 magic damage and must mark a Stress.
What form does the attack takeβfireball raining acid a storm of blades? What tactical objective is this attack meant to accomplish and what comes next?
Spend a Fear as a mage from one side uses large-scale destructive magic. Pick a point on the battlefield within Very Far range of the mage. All targets within Close range of that point must make an Agility Reaction Roll. Targets who fail take 3d12+8 magic damage and must mark a Stress.
@Template[type:circle|range:c]
What form does the attack takeβfireball raining acid a storm of blades? What tactical objective is this attack meant to accomplish and what comes next?
Make a Spellcast Roll (15). On a success, create a temporary dark cloud that covers any area within Close range. Anyone in this cloud canβt see outside of it, and anyone outside of it canβt see in. Youβre considered Cloaked from any adversary for whom the cloud blocks line of sight.
", + "description": "Make a Spellcast Roll (15). On a success, create a temporary dark cloud that covers any area within Close range. Anyone in this cloud canβt see outside of it, and anyone outside of it canβt see in. Youβre considered Cloaked from any adversary for whom the cloud blocks line of sight.
@Template[type:emanation|range:c]
", "resource": null, "actions": { "nIgBwYfAVAJ98lzb": { "type": "attack", "_id": "nIgBwYfAVAJ98lzb", "systemPath": "actions", - "description": "", + "description": "Make a Spellcast Roll (15). On a success, create a temporary dark cloud that covers any area within Close range. Anyone in this cloud canβt see outside of it, and anyone outside of it canβt see in. Youβre considered Cloaked from any adversary for whom the cloud blocks line of sight.
@Template[type:emanation|range:c]
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -52,8 +52,7 @@ }, "name": "SpellCast: Dark Cloud", "img": "icons/magic/air/wind-vortex-swirl-purple.webp", - "range": "", - "areas": [] + "range": "" } }, "originItemType": null, diff --git a/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json b/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json index b5ca1eba..ab7b4972 100644 --- a/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json +++ b/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json @@ -72,16 +72,7 @@ }, "name": "Talk to your allies!", "img": "icons/equipment/head/mask-plague-leather-brown.webp", - "range": "far", - "areas": [ - { - "name": "Rousing Speech", - "type": "placed", - "shape": "emanation", - "size": "far", - "effects": [] - } - ] + "range": "far" } }, "originItemType": null, diff --git a/src/packs/subclasses/feature_Warden_s_Protection_2F1bUFY80oce97C9.json b/src/packs/subclasses/feature_Warden_s_Protection_2F1bUFY80oce97C9.json index a6cb2d97..0c6ad3e3 100644 --- a/src/packs/subclasses/feature_Warden_s_Protection_2F1bUFY80oce97C9.json +++ b/src/packs/subclasses/feature_Warden_s_Protection_2F1bUFY80oce97C9.json @@ -74,16 +74,7 @@ }, "name": "Healing", "img": "icons/commodities/currency/coin-embossed-ruby-gold.webp", - "range": "", - "areas": [ - { - "name": "Wardenβs Protection", - "type": "placed", - "shape": "emanation", - "size": "close", - "effects": [] - } - ] + "range": "" } }, "originItemType": null, diff --git a/styles/less/dialog/character-creation/selections-container.less b/styles/less/dialog/character-creation/selections-container.less index 2bbac484..f9569fca 100644 --- a/styles/less/dialog/character-creation/selections-container.less +++ b/styles/less/dialog/character-creation/selections-container.less @@ -175,11 +175,6 @@ opacity: 0.2; } - &.no-horizontal-padding { - padding-left: 0; - padding-right: 0; - } - legend { margin-left: auto; margin-right: auto; @@ -255,11 +250,6 @@ height: 65px; background: url(../assets/svg/trait-shield.svg) no-repeat; background-size: 100%; - padding-top: 3px; - display: flex; - flex-direction: column; - align-items: center; - row-gap: 3px; div { filter: drop-shadow(0 0 3px black); @@ -288,15 +278,6 @@ flex-direction: column; gap: 5px; - &.separated { - border-bottom: 2px solid; - padding-bottom: 8px; - } - - .form-group { - padding: 0 0.75rem; - } - .experience-inner-container { position: relative; display: flex; diff --git a/styles/less/dialog/group-roll-dialog/initialization.less b/styles/less/dialog/group-roll-dialog/initialization.less index b2e7e021..96990339 100644 --- a/styles/less/dialog/group-roll-dialog/initialization.less +++ b/styles/less/dialog/group-roll-dialog/initialization.less @@ -34,7 +34,6 @@ margin-top: 4px; color: light-dark(@dark, @beige); background-image: url('../assets/parchments/dh-parchment-dark.png'); - text-align: center; } img { diff --git a/styles/less/dialog/group-roll-dialog/sheet.less b/styles/less/dialog/group-roll-dialog/sheet.less index 70afc1fe..823f6cbf 100644 --- a/styles/less/dialog/group-roll-dialog/sheet.less +++ b/styles/less/dialog/group-roll-dialog/sheet.less @@ -26,8 +26,9 @@ .member-info { display: flex; - align-items: start; + align-items: center; width: 100%; + height: 64px; img { height: 64px; diff --git a/styles/less/dialog/tag-team-dialog/initialization.less b/styles/less/dialog/tag-team-dialog/initialization.less index 8557d231..0d16aa3b 100644 --- a/styles/less/dialog/tag-team-dialog/initialization.less +++ b/styles/less/dialog/tag-team-dialog/initialization.less @@ -1,11 +1,3 @@ -.theme-light .daggerheart.dialog.dh-style.views.tag-team-dialog { - .initialization-container .members-container .member-container { - .member-name { - background-image: url('../assets/parchments/dh-parchment-light.png'); - } - } -} - .daggerheart.dialog.dh-style.views.tag-team-dialog { .initialization-container { h2 { @@ -34,7 +26,6 @@ margin-top: 4px; color: light-dark(@dark, @beige); background-image: url('../assets/parchments/dh-parchment-dark.png'); - text-align: center; } img { diff --git a/styles/less/global/inventory-item.less b/styles/less/global/inventory-item.less index a2b9ebd8..4bd4d0bb 100644 --- a/styles/less/global/inventory-item.less +++ b/styles/less/global/inventory-item.less @@ -24,15 +24,6 @@ width: 100%; list-style-type: none; - &.bordered { - border: 1px solid; - border-radius: 6px; - - .inventory-item-header .img-portait img.item-img { - border-radius: 6px 0 0 6px; - } - } - &:not(.single-img) { .img-portait:has(.roll-img):hover { .roll-img { diff --git a/styles/less/global/prose-mirror.less b/styles/less/global/prose-mirror.less index 8a663e28..3523dc89 100644 --- a/styles/less/global/prose-mirror.less +++ b/styles/less/global/prose-mirror.less @@ -25,7 +25,7 @@ } h4 { font-size: var(--font-size-16); - color: light-dark(@dark, @beige); + color: @beige; font-weight: 600; } diff --git a/styles/less/global/sheet.less b/styles/less/global/sheet.less index 0c400564..6f77a481 100755 --- a/styles/less/global/sheet.less +++ b/styles/less/global/sheet.less @@ -36,7 +36,7 @@ body.game:is(.performance-low, .noblur) { } button { - background: light-dark(#e8e6e3, @deep-black); + background: light-dark(transparent, @deep-black); color: light-dark(@dark-blue, @beige); border: 1px solid light-dark(@dark-blue, transparent); padding: 0; diff --git a/styles/less/sheets-settings/character-settings/sheet.less b/styles/less/sheets-settings/character-settings/sheet.less index eab29436..f7f16df4 100644 --- a/styles/less/sheets-settings/character-settings/sheet.less +++ b/styles/less/sheets-settings/character-settings/sheet.less @@ -27,11 +27,10 @@ height: 65px; background: url(../assets/svg/trait-shield.svg) no-repeat; background-size: 100%; - padding-top: 3px; + padding-top: 4px; display: flex; flex-direction: column; align-items: center; - row-gap: 3px; span { font-size: var(--font-size-10); diff --git a/styles/less/sheets/actions/actions.less b/styles/less/sheets/actions/actions.less index 485f8e91..5a18d622 100644 --- a/styles/less/sheets/actions/actions.less +++ b/styles/less/sheets/actions/actions.less @@ -147,10 +147,4 @@ padding-bottom: 7px; } } - - .sub-section-header { - display: flex; - align-items: center; - gap: 4px; - } } diff --git a/styles/less/sheets/actors/actor-sheet-shared.less b/styles/less/sheets/actors/actor-sheet-shared.less index bd82ef83..23db088a 100644 --- a/styles/less/sheets/actors/actor-sheet-shared.less +++ b/styles/less/sheets/actors/actor-sheet-shared.less @@ -37,59 +37,6 @@ color: light-dark(@chat-blue-bg, @beige-50); } - .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); - } - - &::-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); - } - } - - .gold-section { - display: grid; - grid-template-columns: 1fr 1fr 1fr 1fr; - gap: 10px; - padding: 10px 10px 0; - - .input { - color: light-dark(@dark, @beige); - } - } - } - &.limited { &.character, &.adversary, diff --git a/styles/less/sheets/actors/character/inventory.less b/styles/less/sheets/actors/character/inventory.less index 12f63753..b555aa3d 100644 --- a/styles/less/sheets/actors/character/inventory.less +++ b/styles/less/sheets/actors/character/inventory.less @@ -3,6 +3,47 @@ .application.sheet.daggerheart.actor.dh-style.character { .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); + } + + &::-webkit-search-cancel-button { + -webkit-appearance: none; + display: none; + } + } + + .icon { + align-content: center; + height: 32px; + position: absolute; + right: 20px; + font-size: var(--font-size-16); + z-index: 1; + color: light-dark(@dark-blue-50, @beige-50); + } + } + } + .items-section { display: flex; flex-direction: column; @@ -14,5 +55,16 @@ 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/character/sheet.less b/styles/less/sheets/actors/character/sheet.less index 68792c99..ee6580fd 100644 --- a/styles/less/sheets/actors/character/sheet.less +++ b/styles/less/sheets/actors/character/sheet.less @@ -11,6 +11,21 @@ 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 b159a8e8..e7027163 100644 --- a/styles/less/sheets/actors/character/sidebar.less +++ b/styles/less/sheets/actors/character/sidebar.less @@ -316,9 +316,9 @@ border-radius: 3px; background: light-dark(@dark-blue, @golden); clip-path: none; + cursor: pointer; display: flex; align-items: center; - justify-content: center; gap: 4px; border: 1px solid transparent; transition: all 0.3s ease; diff --git a/styles/less/sheets/actors/party/inventory.less b/styles/less/sheets/actors/party/inventory.less index ac59e1de..2dcc97d8 100644 --- a/styles/less/sheets/actors/party/inventory.less +++ b/styles/less/sheets/actors/party/inventory.less @@ -3,6 +3,51 @@ .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; @@ -14,5 +59,16 @@ 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 index 2e2f4cf8..155fcc36 100644 --- a/styles/less/sheets/actors/party/party-members.less +++ b/styles/less/sheets/actors/party/party-members.less @@ -35,8 +35,8 @@ body.game:is(.performance-low, .noblur) { .actor-img-frame { grid-area: img; - width: 7.375rem; - height: 7.375rem; + width: 7.5rem; + height: 7.5rem; position: relative; .actor-img { @@ -71,7 +71,6 @@ body.game:is(.performance-low, .noblur) { height: 1.75rem; background: url('../assets/svg/trait-shield.svg') no-repeat; background-size: 100%; - color: var(--color-light-1); font-size: var(--font-size-14); font-weight: 700; display: flex; @@ -88,7 +87,7 @@ body.game:is(.performance-low, .noblur) { display: flex; gap: 4px; - background-color: light-dark(var(--color-light-1), @dark-blue); + background-color: light-dark(transparent, @dark-blue); color: light-dark(@dark-blue, @golden); padding: 4px 6px; border: 1px solid light-dark(@dark-blue, @golden); @@ -126,7 +125,7 @@ body.game:is(.performance-low, .noblur) { width: 100%; z-index: 1; font-size: var(--font-size-20); - color: light-dark(@dark-blue, @golden); + color: light-dark(@beige, @golden); font-weight: bold; } diff --git a/styles/less/ui/chat/ability-use.less b/styles/less/ui/chat/ability-use.less index d028fa7a..b590911d 100644 --- a/styles/less/ui/chat/ability-use.less +++ b/styles/less/ui/chat/ability-use.less @@ -6,6 +6,12 @@ #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; @@ -23,13 +29,6 @@ } } - &:has(.description) .domain-card-move .domain-card-header { - border-bottom: 1px solid @dark-blue; - &:hover { - background: @dark-blue-10; - } - } - .description { color: @dark; } @@ -44,7 +43,7 @@ .card-img { width: 100%; - height: 180px; + height: 200px; mask-image: linear-gradient(0deg, transparent 0%, black 10%, black 90%, transparent 100%); object-fit: cover; } @@ -69,12 +68,23 @@ 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 { @@ -85,7 +95,7 @@ .tags { display: flex; - gap: 4px; + gap: 10px; flex-wrap: wrap; .tag { @@ -106,16 +116,6 @@ } } - &:has(.description) .domain-card-move .domain-card-header { - border-bottom: 1px solid @golden; - padding-bottom: 5px; - &:hover { - background: @golden-10; - cursor: pointer; - transition: all 0.3s ease; - } - } - .description { padding: 8px; } diff --git a/styles/less/ui/chat/chat.less b/styles/less/ui/chat/chat.less index 4d627e39..db6dceb9 100644 --- a/styles/less/ui/chat/chat.less +++ b/styles/less/ui/chat/chat.less @@ -624,14 +624,9 @@ display: flex; gap: 5px; margin-top: 8px; - button { height: 32px; flex: 1; - - &.end-button { - flex: 0; - } } } @@ -703,11 +698,6 @@ } } - .action-roll-buttons { - width: 100%; - padding: 0 8px; - } - .description { padding: 8px; diff --git a/styles/less/ui/combat-sidebar/encounter-controls.less b/styles/less/ui/combat-sidebar/encounter-controls.less index 66f265e0..16a8e11a 100644 --- a/styles/less/ui/combat-sidebar/encounter-controls.less +++ b/styles/less/ui/combat-sidebar/encounter-controls.less @@ -10,7 +10,6 @@ .encounter-battlepoints { display: flex; cursor: help; - color: light-dark(@dark, @beige); } .inner-controls { diff --git a/system.json b/system.json index babdde26..450c33b2 100644 --- a/system.json +++ b/system.json @@ -2,15 +2,12 @@ "id": "daggerheart", "title": "Daggerheart", "description": "An unofficial implementation of the Daggerheart system", - "version": "2.1.2", + "version": "2.1.1", "compatibility": { "minimum": "14.359", "verified": "14.360", "maximum": "14" }, - "url": "https://github.com/Foundryborne/daggerheart", - "manifest": "https://raw.githubusercontent.com/Foundryborne/daggerheart/v14/system.json", - "download": "https://github.com/Foundryborne/daggerheart/releases/download/2.1.2/system.zip", "authors": [ { "name": "WBHarry" @@ -298,5 +295,8 @@ }, "background": "systems/daggerheart/assets/logos/FoundrybornBackgroundLogo.png", "primaryTokenAttribute": "resources.hitPoints", - "secondaryTokenAttribute": "resources.stress" + "secondaryTokenAttribute": "resources.stress", + "url": "https://github.com/Foundryborne/daggerheart", + "manifest": "https://raw.githubusercontent.com/Foundryborne/daggerheart/main/system.json", + "download": "https://github.com/Foundryborne/daggerheart/releases/download/2.1.1/system.zip" } diff --git a/templates/actionTypes/areas.hbs b/templates/actionTypes/areas.hbs deleted file mode 100644 index 2e010c72..00000000 --- a/templates/actionTypes/areas.hbs +++ /dev/null @@ -1,46 +0,0 @@ - \ No newline at end of file diff --git a/templates/actionTypes/damage.hbs b/templates/actionTypes/damage.hbs index 454d0413..192c5be5 100644 --- a/templates/actionTypes/damage.hbs +++ b/templates/actionTypes/damage.hbs @@ -21,7 +21,7 @@ {{!-- Handlebars uses Symbol.Iterator to produce index|key. This isn't compatible with our parts object, so we instead use applyTo, which is the same value --}} - {{#each source.parts as |dmg key|}} + {{#each source.parts as |dmg|}}