} An object of value-specific errors by key.
+ */
+ _validateValues(value, options) {
+ const errors = {};
+ for (const [k, v] of Object.entries(value)) {
+ if (k.startsWith('-=')) continue;
+ const error = this.model.validate(v, options);
+ if (error) errors[k] = error;
+ }
+ return errors;
+ }
+
+ /* -------------------------------------------- */
+
+ /** @override */
+ initialize(value, model, options = {}) {
+ if (!value) return value;
+ const obj = {};
+ const initialKeys = this.initialKeys instanceof Array ? this.initialKeys : Object.keys(this.initialKeys ?? {});
+ const keys = this.initialKeysOnly ? initialKeys : Object.keys(value);
+ for (const key of keys) {
+ const data = value[key] ?? this._getInitialValueForKey(key, value);
+ obj[key] = this.model.initialize(data, model, options);
+ }
+ return obj;
+ }
+
+ /* -------------------------------------------- */
+
+ /** @inheritDoc */
+ _getField(path) {
+ if (path.length === 0) return this;
+ else if (path.length === 1) return this.model;
+ path.shift();
+ return this.model._getField(path);
+ }
+}
diff --git a/module/data/groupRollData.mjs b/module/data/groupRollData.mjs
deleted file mode 100644
index 78a06b13..00000000
--- a/module/data/groupRollData.mjs
+++ /dev/null
@@ -1,40 +0,0 @@
-export default class GroupRollData extends foundry.abstract.DataModel {
- static defineSchema() {
- const fields = foundry.data.fields;
-
- return {
- leader: new fields.EmbeddedDataField(CharacterData, { nullable: true, initial: null }),
- aidingCharacters: new fields.TypedObjectField(new fields.EmbeddedDataField(CharacterData))
- };
- }
-
- get participants() {
- return {
- ...(this.leader ? { [this.leader.id]: this.leader } : {}),
- ...this.aidingCharacters
- };
- }
-}
-
-export class CharacterData extends foundry.abstract.DataModel {
- static defineSchema() {
- const fields = foundry.data.fields;
-
- return {
- id: new fields.StringField({ required: true }),
- name: new fields.StringField({ required: true }),
- img: new fields.StringField({ required: true }),
- rollChoice: new fields.StringField({
- choices: CONFIG.DH.ACTOR.abilities,
- initial: CONFIG.DH.ACTOR.abilities.agility.id
- }),
- rollData: new fields.JSONField({ nullable: true, initial: null }),
- selected: new fields.BooleanField({ initial: false }),
- successfull: new fields.BooleanField({ nullable: true, initial: null })
- };
- }
-
- get roll() {
- return this.rollData ? CONFIG.Dice.daggerheart.DualityRoll.fromData(this.rollData) : null;
- }
-}
diff --git a/module/data/item/armor.mjs b/module/data/item/armor.mjs
index b0e4847f..0958a9f3 100644
--- a/module/data/item/armor.mjs
+++ b/module/data/item/armor.mjs
@@ -19,14 +19,7 @@ export default class DHArmor extends AttachableItem {
...super.defineSchema(),
tier: new fields.NumberField({ required: true, integer: true, initial: 1, min: 1 }),
equipped: new fields.BooleanField({ initial: false }),
- armor: new fields.SchemaField({
- current: new fields.NumberField({ integer: true, min: 0, initial: 0 }),
- max: new fields.NumberField({ required: true, integer: true, initial: 0 })
- }),
- baseThresholds: new fields.SchemaField({
- major: new fields.NumberField({ integer: true, initial: 0 }),
- severe: new fields.NumberField({ integer: true, initial: 0 })
- }),
+ baseScore: new fields.NumberField({ integer: true, initial: 0 }),
armorFeatures: new fields.ArrayField(
new fields.SchemaField({
value: new fields.StringField({
@@ -35,7 +28,14 @@ export default class DHArmor extends AttachableItem {
effectIds: new fields.ArrayField(new fields.StringField({ required: true })),
actionIds: new fields.ArrayField(new fields.StringField({ required: true }))
})
- )
+ ),
+ marks: new fields.SchemaField({
+ value: new fields.NumberField({ initial: 0, integer: true })
+ }),
+ baseThresholds: new fields.SchemaField({
+ major: new fields.NumberField({ integer: true, initial: 0 }),
+ severe: new fields.NumberField({ integer: true, initial: 0 })
+ })
};
}
@@ -84,7 +84,7 @@ export default class DHArmor extends AttachableItem {
}
await this.parent.deleteEmbeddedDocuments('ActiveEffect', effectIds);
changes.system.actions = actionIds.reduce((acc, id) => {
- acc[id] = _del;
+ acc[`-=${id}`] = null;
return acc;
}, {});
@@ -151,20 +151,13 @@ export default class DHArmor extends AttachableItem {
}
}
- /** @inheritDoc */
- static migrateDocumentData(source) {
- if (!source.system.armor) {
- source.system.armor = { current: source.system.marks?.value ?? 0, max: source.system.baseScore ?? 0 };
- }
- }
-
/**
* Generates a list of localized tags based on this item's type-specific properties.
* @returns {string[]} An array of localized tag strings.
*/
_getTags() {
const tags = [
- `${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.armor.max}`,
+ `${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.baseScore}`,
`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseThresholds.base')}: ${this.baseThresholds.major} / ${this.baseThresholds.severe}`
];
@@ -176,7 +169,9 @@ export default class DHArmor extends AttachableItem {
* @returns {(string | { value: string, icons: string[] })[]} An array of localized strings and damage label objects.
*/
_getLabels() {
- const labels = [`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.armor.max}`];
+ const labels = [];
+ if (this.baseScore)
+ labels.push(`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.baseScore}`);
return labels;
}
diff --git a/module/data/item/base.mjs b/module/data/item/base.mjs
index f6c794f1..6f3256e3 100644
--- a/module/data/item/base.mjs
+++ b/module/data/item/base.mjs
@@ -4,6 +4,7 @@
* @property {string} label - A localizable label used on application.
* @property {string} type - The system type that this data model represents.
* @property {boolean} hasDescription - Indicates whether items of this type have description field
+ * @property {boolean} isQuantifiable - Indicates whether items of this type have quantity field
* @property {boolean} isInventoryItem- Indicates whether items of this type is a Inventory Item
*/
@@ -23,6 +24,7 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel {
type: 'base',
hasDescription: false,
hasResource: false,
+ isQuantifiable: false,
isInventoryItem: false,
hasActions: false,
hasAttribution: true
@@ -81,7 +83,7 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel {
);
}
- if (this.metadata.isInventoryItem)
+ if (this.metadata.isQuantifiable)
schema.quantity = new fields.NumberField({ integer: true, initial: 1, min: 0, required: true });
if (this.metadata.hasActions) schema.actions = new ActionsField();
@@ -108,10 +110,6 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel {
}
get actionsList() {
- // No actions on non-characters
- if (this.metadata.isInventoryItem && this.actor && this.actor.type !== 'character') {
- return [];
- }
return this.actions;
}
@@ -224,22 +222,17 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel {
const autoSettings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation);
const armorChanged =
- changed.system?.armor?.current !== undefined && changed.system.armor.current !== this.armor.current;
+ changed.system?.marks?.value !== undefined && changed.system.marks.value !== this.marks.value;
if (armorChanged && autoSettings.resourceScrollTexts && this.parent.parent?.type === 'character') {
- const armorChangeValue = changed.system.armor.current - this.armor.current;
- const armorData = getScrollTextData(
- this.parent.parent,
- { value: armorChangeValue + this.parent.parent.system.armorScore.value },
- 'armor'
- );
+ const armorData = getScrollTextData(this.parent.parent, changed.system.marks, 'armor');
options.scrollingTextData = [armorData];
}
if (changed.system?.actions) {
const triggersToRemove = Object.keys(changed.system.actions).reduce((acc, key) => {
- const action = changed.system.actions[key];
- if (action && Object.keys(action).length === 0) {
- acc.push(...this.actions.get(key).triggers.map(x => x.trigger));
+ if (!changed.system.actions[key]) {
+ const strippedKey = key.replace('-=', '');
+ acc.push(...this.actions.get(strippedKey).triggers.map(x => x.trigger));
}
return acc;
diff --git a/module/data/item/beastform.mjs b/module/data/item/beastform.mjs
index d30d6046..3a41aa7e 100644
--- a/module/data/item/beastform.mjs
+++ b/module/data/item/beastform.mjs
@@ -99,22 +99,17 @@ export default class DHBeastform extends BaseDataItem {
get beastformAttackData() {
const effect = this.parent.effects.find(x => x.type === 'beastform');
- return DHBeastform.getBeastformAttackData(effect);
- }
-
- static getBeastformAttackData(effect) {
if (!effect) return null;
- const mainTrait = effect.system.changes.find(x => x.key === 'system.rules.attack.roll.trait')?.value;
- const traitBonus = effect.system.changes.find(x => x.key === `system.traits.${mainTrait}.value`)?.value ?? 0;
- const evasionBonus = effect.system.changes.find(x => x.key === 'system.evasion')?.value ?? 0;
+ const traitBonus = effect.changes.find(x => x.key === `system.traits.${this.mainTrait}.value`)?.value ?? 0;
+ const evasionBonus = effect.changes.find(x => x.key === 'system.evasion')?.value ?? 0;
- const damageDiceIndex = effect.system.changes.find(x => x.key === 'system.rules.attack.damage.diceIndex');
+ const damageDiceIndex = effect.changes.find(x => x.key === 'system.rules.attack.damage.diceIndex');
const damageDice = damageDiceIndex ? Object.keys(CONFIG.DH.GENERAL.diceTypes)[damageDiceIndex.value] : null;
- const damageBonus = effect.system.changes.find(x => x.key === 'system.rules.attack.damage.bonus')?.value ?? 0;
+ const damageBonus = effect.changes.find(x => x.key === 'system.rules.attack.damage.bonus')?.value ?? 0;
return {
- trait: game.i18n.localize(CONFIG.DH.ACTOR.abilities[mainTrait]?.label),
+ trait: game.i18n.localize(CONFIG.DH.ACTOR.abilities[this.mainTrait].label),
traitBonus: traitBonus ? Number(traitBonus).signedString() : '',
evasionBonus: evasionBonus ? Number(evasionBonus).signedString() : '',
damageDice: damageDice,
@@ -174,17 +169,17 @@ export default class DHBeastform extends BaseDataItem {
const beastformEffect = this.parent.effects.find(x => x.type === 'beastform');
await beastformEffect.updateSource({
+ changes: [
+ ...beastformEffect.changes,
+ {
+ key: 'system.advantageSources',
+ mode: 2,
+ value: Object.values(this.advantageOn)
+ .map(x => x.value)
+ .join(', ')
+ }
+ ],
system: {
- changes: [
- ...beastformEffect.system.changes,
- {
- key: 'system.advantageSources',
- mode: 2,
- value: Object.values(this.advantageOn)
- .map(x => x.value)
- .join(', ')
- }
- ],
characterTokenData: {
usesDynamicToken: this.parent.parent.prototypeToken.ring.enabled,
tokenImg: this.parent.parent.prototypeToken.texture.src,
diff --git a/module/data/item/consumable.mjs b/module/data/item/consumable.mjs
index e83a1a53..5a50525a 100644
--- a/module/data/item/consumable.mjs
+++ b/module/data/item/consumable.mjs
@@ -7,6 +7,7 @@ export default class DHConsumable extends BaseDataItem {
label: 'TYPES.Item.consumable',
type: 'consumable',
hasDescription: true,
+ isQuantifiable: true,
isInventoryItem: true,
hasActions: true
});
@@ -17,7 +18,8 @@ export default class DHConsumable extends BaseDataItem {
const fields = foundry.data.fields;
return {
...super.defineSchema(),
- consumeOnUse: new fields.BooleanField({ initial: true })
+ consumeOnUse: new fields.BooleanField({ initial: true }),
+ destroyOnEmpty: new fields.BooleanField({ initial: true })
};
}
diff --git a/module/data/item/loot.mjs b/module/data/item/loot.mjs
index d4092934..cdb0855e 100644
--- a/module/data/item/loot.mjs
+++ b/module/data/item/loot.mjs
@@ -7,6 +7,7 @@ export default class DHLoot extends BaseDataItem {
label: 'TYPES.Item.loot',
type: 'loot',
hasDescription: true,
+ isQuantifiable: true,
isInventoryItem: true,
hasActions: true
});
diff --git a/module/data/item/subclass.mjs b/module/data/item/subclass.mjs
index d421cc6d..06a80f7b 100644
--- a/module/data/item/subclass.mjs
+++ b/module/data/item/subclass.mjs
@@ -52,9 +52,6 @@ export default class DHSubclass extends BaseDataItem {
}
async _preCreate(data, options, user) {
- const allowed = await super._preCreate(data, options, user);
- if (allowed === false) return;
-
if (this.actor?.type === 'character') {
const dataUuid = data.uuid ?? data._stats.compendiumSource ?? `Item.${data._id}`;
if (this.actor.system.class.subclass) {
@@ -89,6 +86,9 @@ export default class DHSubclass extends BaseDataItem {
}
}
}
+
+ const allowed = await super._preCreate(data, options, user);
+ if (allowed === false) return;
}
/**@inheritdoc */
diff --git a/module/data/item/weapon.mjs b/module/data/item/weapon.mjs
index 75e6dc8e..bb7fde0a 100644
--- a/module/data/item/weapon.mjs
+++ b/module/data/item/weapon.mjs
@@ -63,15 +63,15 @@ export default class DHWeapon extends AttachableItem {
type: 'attack'
},
damage: {
- parts: {
- hitPoints: {
+ parts: [
+ {
type: ['physical'],
value: {
multiplier: 'prof',
dice: 'd8'
}
}
- }
+ ]
}
}
}),
@@ -99,9 +99,7 @@ export default class DHWeapon extends AttachableItem {
/* -------------------------------------------- */
get actionsList() {
- // No actions on non-characters
- if (this.actor && this.actor.type !== 'character') return [];
- return [this.attack, ...super.actionsList];
+ return [this.attack, ...this.actions];
}
get customActions() {
@@ -150,7 +148,7 @@ export default class DHWeapon extends AttachableItem {
await this.parent.deleteEmbeddedDocuments('ActiveEffect', removedEffectsUpdate);
changes.system.actions = removedActionsUpdate.reduce((acc, id) => {
- acc[id] = _del;
+ acc[`-=${id}`] = null;
return acc;
}, {});
diff --git a/module/data/regionBehavior/_module.mjs b/module/data/regionBehavior/_module.mjs
deleted file mode 100644
index d0c8172d..00000000
--- a/module/data/regionBehavior/_module.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { default as applyActiveEffect } from './applyActiveEffect.mjs';
diff --git a/module/data/regionBehavior/applyActiveEffect.mjs b/module/data/regionBehavior/applyActiveEffect.mjs
deleted file mode 100644
index 51406cfa..00000000
--- a/module/data/regionBehavior/applyActiveEffect.mjs
+++ /dev/null
@@ -1,40 +0,0 @@
-export default class DhApplyActiveEffect extends CONFIG.RegionBehavior.dataModels.applyActiveEffect {
- static async #getApplicableEffects(token) {
- const effects = await Promise.all(this.effects.map(foundry.utils.fromUuid));
- return effects.filter(
- effect => !effect.system.targetDispositions.size || effect.system.targetDispositions.has(token.disposition)
- );
- }
-
- static async #onTokenEnter(event) {
- if (!event.user.isSelf) return;
- const { token, movement } = event.data;
- const actor = token.actor;
- if (!actor) return;
- const resumeMovement = movement ? token.pauseMovement() : undefined;
- const effects = await DhApplyActiveEffect.#getApplicableEffects.bind(this)(event.data.token);
- const toCreate = [];
- for (const effect of effects) {
- const data = effect.toObject();
- delete data._id;
- if (effect.compendium) {
- data._stats.duplicateSource = null;
- data._stats.compendiumSource = effect.uuid;
- } else {
- data._stats.duplicateSource = effect.uuid;
- data._stats.compendiumSource = null;
- }
- data._stats.exportSource = null;
- data.origin = this.parent.uuid;
- toCreate.push(data);
- }
- if (toCreate.length) await actor.createEmbeddedDocuments('ActiveEffect', toCreate);
- await resumeMovement?.();
- }
-
- /** @override */
- static events = {
- ...CONFIG.RegionBehavior.dataModels.applyActiveEffect.events,
- [CONST.REGION_EVENTS.TOKEN_ENTER]: this.#onTokenEnter
- };
-}
diff --git a/module/data/settings/Appearance.mjs b/module/data/settings/Appearance.mjs
index 4db27be0..9da3afac 100644
--- a/module/data/settings/Appearance.mjs
+++ b/module/data/settings/Appearance.mjs
@@ -8,9 +8,6 @@ export default class DhAppearance extends foundry.abstract.DataModel {
initial: null,
blank: true,
choices: CONFIG.DH.GENERAL.diceSoNiceSFXClasses
- }),
- options: new foundry.data.fields.SchemaField({
- muteSound: new foundry.data.fields.BooleanField()
})
});
diff --git a/module/data/settings/Automation.mjs b/module/data/settings/Automation.mjs
index 35e87327..20fe0baf 100644
--- a/module/data/settings/Automation.mjs
+++ b/module/data/settings/Automation.mjs
@@ -196,11 +196,6 @@ export default class DhAutomation extends foundry.abstract.DataModel {
})
})
}),
- autoExpireActiveEffects: new fields.BooleanField({
- required: true,
- initial: true,
- label: 'DAGGERHEART.SETTINGS.Automation.FIELDS.autoExpireActiveEffects.label'
- }),
triggers: new fields.SchemaField({
enabled: new fields.BooleanField({
nullable: false,
diff --git a/module/data/spotlightTracker.mjs b/module/data/spotlightTracker.mjs
deleted file mode 100644
index 57f54e16..00000000
--- a/module/data/spotlightTracker.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-export default class SpotlightTracker extends foundry.abstract.DataModel {
- static defineSchema() {
- const fields = foundry.data.fields;
-
- return {
- spotlightedTokens: new fields.SetField(new fields.DocumentUUIDField())
- };
- }
-}
diff --git a/module/data/tagTeamData.mjs b/module/data/tagTeamData.mjs
deleted file mode 100644
index 640c2f6c..00000000
--- a/module/data/tagTeamData.mjs
+++ /dev/null
@@ -1,47 +0,0 @@
-export default class TagTeamData extends foundry.abstract.DataModel {
- static defineSchema() {
- const fields = foundry.data.fields;
-
- return {
- initiator: new fields.SchemaField(
- {
- memberId: new fields.StringField({
- required: true,
- label: 'DAGGERHEART.APPLICATIONS.TagTeamSelect.FIELDS.initiator.memberId.label'
- }),
- cost: new fields.NumberField({
- integer: true,
- initial: 3,
- label: 'DAGGERHEART.APPLICATIONS.TagTeamSelect.FIELDS.initiator.cost.label'
- })
- },
- { nullable: true, initial: null }
- ),
- members: new fields.TypedObjectField(new fields.EmbeddedDataField(MemberData))
- };
- }
-}
-
-export class MemberData extends foundry.abstract.DataModel {
- static defineSchema() {
- const fields = foundry.data.fields;
-
- return {
- name: new fields.StringField({ required: true }),
- img: new fields.StringField({ required: true }),
- rollType: new fields.StringField({
- required: true,
- choices: CONFIG.DH.GENERAL.tagTeamRollTypes,
- initial: CONFIG.DH.GENERAL.tagTeamRollTypes.trait.id,
- label: game.i18n.localize('DAGGERHEART.APPLICATIONS.TagTeamSelect.rollType')
- }),
- rollChoice: new fields.StringField({ nullable: true, initial: null }),
- rollData: new fields.JSONField({ nullable: true, initial: null }),
- selected: new fields.BooleanField({ initial: false })
- };
- }
-
- get roll() {
- return this.rollData ? CONFIG.Dice.daggerheart.DualityRoll.fromData(this.rollData) : null;
- }
-}
diff --git a/module/data/tagTeamRoll.mjs b/module/data/tagTeamRoll.mjs
new file mode 100644
index 00000000..de71a11b
--- /dev/null
+++ b/module/data/tagTeamRoll.mjs
@@ -0,0 +1,20 @@
+import { DhCharacter } from './actor/_module.mjs';
+
+export default class DhTagTeamRoll extends foundry.abstract.DataModel {
+ static defineSchema() {
+ const fields = foundry.data.fields;
+
+ return {
+ initiator: new fields.SchemaField({
+ id: new fields.StringField({ nullable: true, initial: null }),
+ cost: new fields.NumberField({ integer: true, min: 0, initial: 3 })
+ }),
+ members: new fields.TypedObjectField(
+ new fields.SchemaField({
+ messageId: new fields.StringField({ required: true, nullable: true, initial: null }),
+ selected: new fields.BooleanField({ required: true, initial: false })
+ })
+ )
+ };
+ }
+}
diff --git a/module/dice/_module.mjs b/module/dice/_module.mjs
index e1206f82..b9339d87 100644
--- a/module/dice/_module.mjs
+++ b/module/dice/_module.mjs
@@ -4,4 +4,3 @@ export { default as DamageRoll } from './damageRoll.mjs';
export { default as DHRoll } from './dhRoll.mjs';
export { default as DualityRoll } from './dualityRoll.mjs';
export { default as FateRoll } from './fateRoll.mjs';
-export { diceTypes } from './die/_module.mjs';
diff --git a/module/dice/d20Roll.mjs b/module/dice/d20Roll.mjs
index 509f5d69..f117ff65 100644
--- a/module/dice/d20Roll.mjs
+++ b/module/dice/d20Roll.mjs
@@ -36,7 +36,7 @@ export default class D20Roll extends DHRoll {
get isCritical() {
if (!this.d20._evaluated) return;
- const criticalThreshold = this.options.actionType === 'reaction' ? 20 : this.data.criticalThreshold;
+ const criticalThreshold = this.options.actionType === 'reaction' ? 20 : this.data.system.criticalThreshold;
return this.d20.total >= criticalThreshold;
}
@@ -207,7 +207,7 @@ export default class D20Roll extends DHRoll {
rerolls: dice.results.filter(x => x.rerolled)
}
}));
- data.isCritical = roll.isCritical;
+ data.isCritical = config.isCritical = roll.isCritical;
data.extra = roll.dice
.filter(d => !roll.baseTerms.includes(d))
.map(d => {
@@ -217,11 +217,49 @@ export default class D20Roll extends DHRoll {
results: d.results
};
});
- data.modifierTotal = roll.modifierTotal;
+ data.modifierTotal = this.calculateTotalModifiers(roll);
return data;
}
resetFormula() {
return (this._formula = this.constructor.getFormula(this.terms));
}
+
+ static async reroll(rollString, _target, message) {
+ let parsedRoll = game.system.api.dice.D20Roll.fromData(rollString);
+ parsedRoll = await parsedRoll.reroll();
+ const newRoll = game.system.api.dice.D20Roll.postEvaluate(parsedRoll, {
+ targets: message.system.targets,
+ roll: {
+ advantage: message.system.roll.advantage?.type,
+ difficulty: message.system.roll.difficulty ? Number(message.system.roll.difficulty) : null
+ }
+ });
+
+ if (game.modules.get('dice-so-nice')?.active) {
+ await game.dice3d.showForRoll(parsedRoll, game.user, true);
+ }
+
+ const rerolled = {
+ any: true,
+ rerolls: [
+ ...(message.system.roll.dice[0].rerolled?.rerolls?.length > 0
+ ? [message.system.roll.dice[0].rerolled?.rerolls]
+ : []),
+ rollString.terms[0].results
+ ]
+ };
+ return {
+ newRoll: {
+ ...newRoll,
+ dice: [
+ {
+ ...newRoll.dice[0],
+ rerolled: rerolled
+ }
+ ]
+ },
+ parsedRoll
+ };
+ }
}
diff --git a/module/dice/damageRoll.mjs b/module/dice/damageRoll.mjs
index 98fd8401..ef5f9434 100644
--- a/module/dice/damageRoll.mjs
+++ b/module/dice/damageRoll.mjs
@@ -1,5 +1,6 @@
import DamageDialog from '../applications/dialogs/damageDialog.mjs';
import { parseRallyDice } from '../helpers/utils.mjs';
+import { RefreshType, socketEvent } from '../systemRegistration/socket.mjs';
import DHRoll from './dhRoll.mjs';
export default class DamageRoll extends DHRoll {
@@ -7,10 +8,6 @@ export default class DamageRoll extends DHRoll {
super(formula, data, options);
}
- get isCritical() {
- return !!this.options.isCritical;
- }
-
static DefaultDialog = DamageDialog;
static async buildEvaluate(roll, config = {}, message = {}) {
@@ -37,7 +34,7 @@ export default class DamageRoll extends DHRoll {
static async buildPost(roll, config, message) {
const chatMessage = config.source?.message
? ui.chat.collection.get(config.source.message)
- : getDocumentClass('ChatMessage').applyMode({}, config.rollMode ?? 'public');
+ : getDocumentClass('ChatMessage').applyRollMode({}, config.rollMode ?? CONST.DICE_ROLL_MODES.PUBLIC);
if (game.modules.get('dice-so-nice')?.active) {
const pool = foundry.dice.terms.PoolTerm.fromRolls(
Object.values(config.damage).flatMap(r => r.parts.map(p => p.roll))
@@ -142,63 +139,57 @@ export default class DamageRoll extends DHRoll {
}
constructFormula(config) {
- this.options.isCritical = config.isCritical;
- for (const [index, part] of this.options.roll.entries()) {
- const isHitpointPart = part.applyTo === CONFIG.DH.GENERAL.healingTypes.hitPoints.id;
+ this.options.roll.forEach((part, index) => {
part.roll = new Roll(Roll.replaceFormulaData(part.formula, config.data));
- part.roll.terms = Roll.parse(part.roll.formula, config.data);
- if (part.applyTo === CONFIG.DH.GENERAL.healingTypes.hitPoints.id) {
- part.modifiers = this.applyBaseBonus(part);
- this.addModifiers(part);
- part.modifiers?.forEach(m => {
- part.roll.terms.push(...this.formatModifier(m.value));
- });
- }
-
- /* To Remove When Reaction System */
- if (index === 0 && part.applyTo === CONFIG.DH.GENERAL.healingTypes.hitPoints.id) {
- for (const mod in config.modifiers) {
- const modifier = config.modifiers[mod];
- if (modifier.beforeCrit === true && (modifier.enabled || modifier.value)) modifier.callback(part);
- }
- }
-
- if (part.extraFormula) {
- part.roll.terms.push(
- new foundry.dice.terms.OperatorTerm({ operator: '+' }),
- ...this.constructor.parse(part.extraFormula, this.options.data)
- );
- }
-
- if (config.damageOptions.groupAttack?.numAttackers > 1 && isHitpointPart) {
- const damageTypes = [foundry.dice.terms.Die, foundry.dice.terms.NumericTerm];
- for (const term of part.roll.terms) {
- if (damageTypes.some(type => term instanceof type)) {
- term.number *= config.damageOptions.groupAttack.numAttackers;
- }
- }
- }
-
- if (config.isCritical && isHitpointPart) {
- const total = part.roll.dice.reduce((acc, term) => acc + term._faces * term._number, 0);
- if (total > 0) {
- part.roll.terms.push(...this.formatModifier(total));
- }
- }
-
- /* To Remove When Reaction System */
- if (index === 0 && part.applyTo === CONFIG.DH.GENERAL.healingTypes.hitPoints.id) {
- for (const mod in config.modifiers) {
- const modifier = config.modifiers[mod];
- if (!modifier.beforeCrit && (modifier.enabled || modifier.value)) modifier.callback(part);
- }
- }
-
- part.roll._formula = this.constructor.getFormula(part.roll.terms);
- }
+ this.constructFormulaPart(config, part, index);
+ });
return this.options.roll;
}
+ constructFormulaPart(config, part, index) {
+ part.roll.terms = Roll.parse(part.roll.formula, config.data);
+
+ if (part.applyTo === CONFIG.DH.GENERAL.healingTypes.hitPoints.id) {
+ part.modifiers = this.applyBaseBonus(part);
+ this.addModifiers(part);
+ part.modifiers?.forEach(m => {
+ part.roll.terms.push(...this.formatModifier(m.value));
+ });
+ }
+
+ /* To Remove When Reaction System */
+ if (index === 0 && part.applyTo === CONFIG.DH.GENERAL.healingTypes.hitPoints.id) {
+ for (const mod in config.modifiers) {
+ const modifier = config.modifiers[mod];
+ if (modifier.beforeCrit === true && (modifier.enabled || modifier.value)) modifier.callback(part);
+ }
+ }
+
+ if (part.extraFormula) {
+ part.roll.terms.push(
+ new foundry.dice.terms.OperatorTerm({ operator: '+' }),
+ ...this.constructor.parse(part.extraFormula, this.options.data)
+ );
+ }
+
+ if (config.isCritical && part.applyTo === CONFIG.DH.GENERAL.healingTypes.hitPoints.id) {
+ const total = part.roll.dice.reduce((acc, term) => acc + term._faces * term._number, 0);
+ if (total > 0) {
+ part.roll.terms.push(...this.formatModifier(total));
+ }
+ }
+
+ /* To Remove When Reaction System */
+ if (index === 0 && part.applyTo === CONFIG.DH.GENERAL.healingTypes.hitPoints.id) {
+ for (const mod in config.modifiers) {
+ const modifier = config.modifiers[mod];
+ if (!modifier.beforeCrit && (modifier.enabled || modifier.value)) modifier.callback(part);
+ }
+ }
+
+ return (part.roll._formula = this.constructor.getFormula(part.roll.terms));
+ }
+
/* To Remove When Reaction System */
static temporaryModifierBuilder(config) {
const mods = {};
@@ -206,7 +197,7 @@ export default class DamageRoll extends DHRoll {
if (config.data.parent.appliedEffects) {
// Bardic Rally
const rallyChoices = config.data?.parent?.appliedEffects.reduce((a, c) => {
- const change = c.system.changes.find(ch => ch.key === 'system.bonuses.rally');
+ const change = c.changes.find(ch => ch.key === 'system.bonuses.rally');
if (change) a.push({ value: c.id, label: parseRallyDice(change.value, c) });
return a;
}, []);
@@ -290,7 +281,10 @@ export default class DamageRoll extends DHRoll {
return mods;
}
- static async reroll(rollPart, dice, result) {
+ static async reroll(target, message) {
+ const { damageType, part, dice, result } = target.dataset;
+ const rollPart = message.system.damage[damageType].parts[part];
+
let diceIndex = 0;
let parsedRoll = game.system.api.dice.DamageRoll.fromData({
...rollPart.roll,
@@ -359,6 +353,29 @@ export default class DamageRoll extends DHRoll {
};
});
- return { parsedRoll, rerolledDice };
+ const updateMessage = game.messages.get(message._id);
+ const damageParts = updateMessage.system.damage[damageType].parts.map((damagePart, index) => {
+ if (index !== Number(part)) return damagePart;
+ return {
+ ...rollPart,
+ total: parsedRoll.total,
+ dice: rerolledDice
+ };
+ });
+ await updateMessage.update({
+ [`system.damage.${damageType}`]: {
+ ...updateMessage,
+ total: parsedRoll.total,
+ parts: damageParts
+ }
+ });
+
+ Hooks.callAll(socketEvent.Refresh, { refreshType: RefreshType.TagTeamRoll });
+ await game.socket.emit(`system.${CONFIG.DH.id}`, {
+ action: socketEvent.Refresh,
+ data: {
+ refreshType: RefreshType.TagTeamRoll
+ }
+ });
}
}
diff --git a/module/dice/dhRoll.mjs b/module/dice/dhRoll.mjs
index 209631f6..912824e7 100644
--- a/module/dice/dhRoll.mjs
+++ b/module/dice/dhRoll.mjs
@@ -12,10 +12,6 @@ export default class DHRoll extends Roll {
return game.i18n.localize('DAGGERHEART.GENERAL.Roll.basic');
}
- get modifierTotal() {
- return this.constructor.calculateTotalModifiers(this);
- }
-
static messageType = 'adversaryRoll';
static CHAT_TEMPLATE = 'systems/daggerheart/templates/ui/chat/roll.hbs';
@@ -25,9 +21,6 @@ export default class DHRoll extends Roll {
static async build(config = {}, message = {}) {
const roll = await this.buildConfigure(config, message);
if (!roll) return;
-
- if (config.skips?.createMessage) config.messageRoll = roll;
-
await this.buildEvaluate(roll, config, (message = {}));
await this.buildPost(roll, config, (message = {}));
return config;
@@ -37,6 +30,12 @@ export default class DHRoll extends Roll {
config.hooks = [...this.getHooks(), ''];
config.dialog ??= {};
+ const actorIdSplit = config.source?.actor?.split('.');
+ if (actorIdSplit) {
+ const tagTeamSettings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll);
+ config.tagTeamSelected = Boolean(tagTeamSettings.members[actorIdSplit[actorIdSplit.length - 1]]);
+ }
+
for (const hook of config.hooks) {
if (Hooks.call(`${CONFIG.DH.id}.preRoll${hook.capitalize()}`, config, message) === false) return null;
}
@@ -121,10 +120,14 @@ export default class DHRoll extends Roll {
rolls: [roll]
};
- config.selectedMessageMode ??= game.settings.get('core', 'messageMode');
+ config.selectedRollMode ??= game.settings.get('core', 'rollMode');
if (roll._evaluated) {
- const message = await cls.create(msgData, { messageMode: config.selectedMessageMode });
+ const message = await cls.create(msgData, { rollMode: config.selectedRollMode });
+
+ if (config.tagTeamSelected) {
+ game.system.api.applications.dialogs.TagTeamDialog.assignRoll(message.speakerActor, message);
+ }
if (roll.formula !== '' && game.modules.get('dice-so-nice')?.active) {
await game.dice3d.waitFor3DAnimationByMessageID(message.id);
@@ -142,10 +145,7 @@ export default class DHRoll extends Roll {
const chatData = await this._prepareChatRenderContext({ flavor, isPrivate, ...options });
return foundry.applications.handlebars.renderTemplate(template, {
...chatData,
- roll: this,
parent: chatData.parent,
- targetMode: chatData.targetMode,
- areas: chatData.action?.areas,
metagamingSettings
});
}
@@ -247,21 +247,16 @@ export default class DHRoll extends Roll {
return (this._formula = this.constructor.getFormula(this.terms));
}
- /**
- * Calculate total modifiers of any rolls, including non-dh rolls.
- * This exists because damage rolls still may receive base roll classes
- */
static calculateTotalModifiers(roll) {
let modifierTotal = 0;
for (let i = 0; i < roll.terms.length; i++) {
- if (!roll.terms[i].isDeterministic) continue;
- const termTotal = roll.terms[i].total;
- if (typeof termTotal === 'number') {
- const multiplier = roll.terms[i - 1]?.operator === ' - ' ? -1 : 1;
- modifierTotal += multiplier * termTotal;
- }
+ if (
+ roll.terms[i] instanceof foundry.dice.terms.NumericTerm &&
+ !!roll.terms[i - 1] &&
+ roll.terms[i - 1] instanceof foundry.dice.terms.OperatorTerm
+ )
+ modifierTotal += Number(`${roll.terms[i - 1].operator}${roll.terms[i].total}`);
}
-
return modifierTotal;
}
@@ -273,12 +268,12 @@ export default class DHRoll extends Roll {
const changeKeys = this.getActionChangeKeys();
return (
this.options.effects?.reduce((acc, effect) => {
- if (effect.system.changes.some(x => changeKeys.some(key => x.key?.includes(key)))) {
+ if (effect.changes.some(x => changeKeys.some(key => x.key.includes(key)))) {
acc[effect.id] = {
id: effect.id,
name: effect.name,
description: effect.description,
- changes: effect.system.changes,
+ changes: effect.changes,
origEffect: effect,
selected: !effect.disabled
};
diff --git a/module/dice/die/_module.mjs b/module/dice/die/_module.mjs
deleted file mode 100644
index 19ca951a..00000000
--- a/module/dice/die/_module.mjs
+++ /dev/null
@@ -1,13 +0,0 @@
-import DualityDie from './dualityDie.mjs';
-import HopeDie from './hopeDie.mjs';
-import FearDie from './fearDie.mjs';
-import AdvantageDie from './advantageDie.mjs';
-import DisadvantageDie from './disadvantageDie.mjs';
-
-export const diceTypes = {
- DualityDie,
- HopeDie,
- FearDie,
- AdvantageDie,
- DisadvantageDie
-};
diff --git a/module/dice/die/advantageDie.mjs b/module/dice/die/advantageDie.mjs
deleted file mode 100644
index 9c2f0b03..00000000
--- a/module/dice/die/advantageDie.mjs
+++ /dev/null
@@ -1,7 +0,0 @@
-export default class AdvantageDie extends foundry.dice.terms.Die {
- constructor(options) {
- super(options);
-
- this.modifiers = [];
- }
-}
diff --git a/module/dice/die/disadvantageDie.mjs b/module/dice/die/disadvantageDie.mjs
deleted file mode 100644
index f56ebe96..00000000
--- a/module/dice/die/disadvantageDie.mjs
+++ /dev/null
@@ -1,7 +0,0 @@
-export default class DisadvantageDie extends foundry.dice.terms.Die {
- constructor(options) {
- super(options);
-
- this.modifiers = [];
- }
-}
diff --git a/module/dice/die/dualityDie.mjs b/module/dice/die/dualityDie.mjs
deleted file mode 100644
index 83229425..00000000
--- a/module/dice/die/dualityDie.mjs
+++ /dev/null
@@ -1,70 +0,0 @@
-import { ResourceUpdateMap } from '../../data/action/baseAction.mjs';
-
-export default class DualityDie extends foundry.dice.terms.Die {
- constructor(options) {
- super(options);
-
- this.modifiers = [];
- }
-
- #getDualityState(roll) {
- if (!roll) return null;
- return roll.withHope ? 1 : roll.withFear ? -1 : 0;
- }
-
- #updateResources(oldDuality, newDuality, actor) {
- const { hopeFear } = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation);
- if (game.user.isGM ? !hopeFear.gm : !hopeFear.players) return;
-
- const updates = [];
- const hope = (newDuality >= 0 ? 1 : 0) - (oldDuality >= 0 ? 1 : 0);
- const stress = (newDuality === 0 ? 1 : 0) - (oldDuality === 0 ? 1 : 0);
- const fear = (newDuality === -1 ? 1 : 0) - (oldDuality === -1 ? 1 : 0);
-
- if (hope !== 0) updates.push({ key: 'hope', value: hope, total: -1 * hope, enabled: true });
- if (stress !== 0) updates.push({ key: 'stress', value: -1 * stress, total: stress, enabled: true });
- if (fear !== 0) updates.push({ key: 'fear', value: fear, total: -1 * fear, enabled: true });
-
- const resourceUpdates = new ResourceUpdateMap(actor);
- resourceUpdates.addResources(updates);
- resourceUpdates.updateResources();
- }
-
- async reroll(modifier, options) {
- const oldDuality = this.#getDualityState(options.liveRoll.roll);
- await super.reroll(modifier, options);
-
- if (options?.liveRoll) {
- /* Can't currently test since DiceSoNice is not v14. Might need to set the appearance earlier if a roll is triggered by super.reroll */
- if (game.modules.get('dice-so-nice')?.active) {
- const diceSoNiceRoll = {
- _evaluated: true,
- dice: [this],
- options: { appearance: {} }
- };
-
- const diceAppearance = await this.getDiceSoNiceAppearance(options.liveRoll.roll);
- diceSoNiceRoll.dice[0].options.appearance = diceAppearance.appearance;
- diceSoNiceRoll.dice[0].options.modelFile = diceAppearance.modelFile;
- diceSoNiceRoll.dice[0].results = diceSoNiceRoll.dice[0].results.filter(x => x.active);
-
- await game.dice3d.showForRoll(diceSoNiceRoll, game.user, true);
- } else {
- foundry.audio.AudioHelper.play({ src: CONFIG.sounds.dice });
- }
-
- await options.liveRoll.roll._evaluate();
- if (options.liveRoll.isReaction) return;
-
- const newDuality = this.#getDualityState(options.liveRoll.roll);
- this.#updateResources(oldDuality, newDuality, options.liveRoll.actor);
- }
- }
-
- /**
- * Overridden by extending classes HopeDie and FearDie
- */
- async getDiceSoNiceAppearance() {
- return {};
- }
-}
diff --git a/module/dice/die/fearDie.mjs b/module/dice/die/fearDie.mjs
deleted file mode 100644
index 2a09d432..00000000
--- a/module/dice/die/fearDie.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-import { getDiceSoNicePresets } from '../../config/generalConfig.mjs';
-import DualityDie from './dualityDie.mjs';
-
-export default class FearDie extends DualityDie {
- async getDiceSoNiceAppearance(roll) {
- const { fear } = await getDiceSoNicePresets(roll, this.denomination, this.denomination);
- return fear;
- }
-}
diff --git a/module/dice/die/hopeDie.mjs b/module/dice/die/hopeDie.mjs
deleted file mode 100644
index af5a4425..00000000
--- a/module/dice/die/hopeDie.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-import { getDiceSoNicePresets } from '../../config/generalConfig.mjs';
-import DualityDie from './dualityDie.mjs';
-
-export default class HopeDie extends DualityDie {
- async getDiceSoNiceAppearance(roll) {
- const { hope } = await getDiceSoNicePresets(roll, this.denomination, this.denomination);
- return hope;
- }
-}
diff --git a/module/dice/dualityRoll.mjs b/module/dice/dualityRoll.mjs
index 5e03a680..75fbdf55 100644
--- a/module/dice/dualityRoll.mjs
+++ b/module/dice/dualityRoll.mjs
@@ -1,8 +1,11 @@
import D20RollDialog from '../applications/dialogs/d20RollDialog.mjs';
import D20Roll from './d20Roll.mjs';
import { parseRallyDice, setDiceSoNiceForDualityRoll } from '../helpers/utils.mjs';
+import { getDiceSoNicePresets } from '../config/generalConfig.mjs';
+import { ResourceUpdateMap } from '../data/action/baseAction.mjs';
export default class DualityRoll extends D20Roll {
+ _advantageFaces = 6;
_advantageNumber = 1;
_rallyIndex;
@@ -10,11 +13,6 @@ export default class DualityRoll extends D20Roll {
super(formula, data, options);
this.rallyChoices = this.setRallyChoices();
this.guaranteedCritical = options.guaranteedCritical;
-
- const advantageFaces = data.rules?.roll?.defaultAdvantageDice
- ? Number.parseInt(data.rules.roll.defaultAdvantageDice)
- : 6;
- this.advantageFaces = Number.isNaN(advantageFaces) ? 6 : advantageFaces;
}
static messageType = 'dualityRoll';
@@ -28,31 +26,35 @@ export default class DualityRoll extends D20Roll {
}
get dHope() {
- if (!(this.dice[0] instanceof game.system.api.dice.diceTypes.HopeDie)) this.createBaseDice();
+ if (!(this.dice[0] instanceof foundry.dice.terms.Die)) this.createBaseDice();
return this.dice[0];
}
set dHope(faces) {
- // TODO this should not be asymmetrical with the getter. updateRollConfiguration() should use dHope.faces
- this.dHope.faces = this.getFaces(faces);
+ if (!(this.dice[0] instanceof foundry.dice.terms.Die)) this.createBaseDice();
+ this.dice[0].faces = this.getFaces(faces);
}
get dFear() {
- if (!(this.dice[1] instanceof game.system.api.dice.diceTypes.FearDie)) this.createBaseDice();
+ if (!(this.dice[1] instanceof foundry.dice.terms.Die)) this.createBaseDice();
return this.dice[1];
}
set dFear(faces) {
- // TODO this should not be asymmetrical with the getter. updateRollConfiguration() should use dFear.faces
- this.dFear.faces = this.getFaces(faces);
+ if (!(this.dice[1] instanceof foundry.dice.terms.Die)) this.createBaseDice();
+ this.dice[1].faces = this.getFaces(faces);
}
get dAdvantage() {
- return this.dice[2] instanceof game.system.api.dice.diceTypes.AdvantageDie ? this.dice[2] : null;
+ return this.dice[2];
}
- get dDisadvantage() {
- return this.dice[2] instanceof game.system.api.dice.diceTypes.DisadvantageDie ? this.dice[2] : null;
+ get advantageFaces() {
+ return this._advantageFaces;
+ }
+
+ set advantageFaces(faces) {
+ this._advantageFaces = this.getFaces(faces);
}
get advantageNumber() {
@@ -63,14 +65,9 @@ export default class DualityRoll extends D20Roll {
this._advantageNumber = Number(value);
}
- get extraDice() {
- const { HopeDie, FearDie, AdvantageDie, DisadvantageDie } = game.system.api.dice.diceTypes;
- return this.dice.filter(x => ![HopeDie, FearDie, AdvantageDie, DisadvantageDie].some(die => x instanceof die));
- }
-
setRallyChoices() {
return this.data?.parent?.appliedEffects.reduce((a, c) => {
- const change = c.system.changes.find(ch => ch.key === 'system.bonuses.rally');
+ const change = c.changes.find(ch => ch.key === 'system.bonuses.rally');
if (change) a.push({ value: c.id, label: parseRallyDice(change.value, c) });
return a;
}, []);
@@ -121,28 +118,22 @@ export default class DualityRoll extends D20Roll {
/** @inheritDoc */
static fromData(data) {
- data.terms[0].class = 'HopeDie';
- data.terms[2].class = 'FearDie';
- if (data.options.roll.advantage?.type && data.terms[4]?.faces) {
- data.terms[4].class = data.options.roll.advantage.type === 1 ? 'AdvantageDie' : 'DisadvantageDie';
- }
+ data.terms[0].class = foundry.dice.terms.Die.name;
+ data.terms[2].class = foundry.dice.terms.Die.name;
return super.fromData(data);
}
createBaseDice() {
- if (
- this.dice[0] instanceof game.system.api.dice.diceTypes.HopeDie &&
- this.dice[1] instanceof game.system.api.dice.diceTypes.FearDie
- ) {
+ if (this.dice[0] instanceof foundry.dice.terms.Die && this.dice[1] instanceof foundry.dice.terms.Die) {
this.terms = [this.terms[0], this.terms[1], this.terms[2]];
return;
}
- this.terms[0] = new game.system.api.dice.diceTypes.HopeDie({
+ this.terms[0] = new foundry.dice.terms.Die({
faces: this.data.rules.dualityRoll?.defaultHopeDice ?? 12
});
this.terms[1] = new foundry.dice.terms.OperatorTerm({ operator: '+' });
- this.terms[2] = new game.system.api.dice.diceTypes.FearDie({
+ this.terms[2] = new foundry.dice.terms.Die({
faces: this.data.rules.dualityRoll?.defaultFearDice ?? 12
});
}
@@ -188,7 +179,7 @@ export default class DualityRoll extends D20Roll {
static async buildConfigure(config = {}, message = {}) {
config.dialog ??= {};
config.guaranteedCritical = config.data?.parent?.appliedEffects.reduce((a, c) => {
- const change = c.system.changes.find(ch => ch.key === 'system.rules.roll.guaranteedCritical');
+ const change = c.changes.find(ch => ch.key === 'system.rules.roll.guaranteedCritical');
if (change) a = true;
return a;
}, false);
@@ -314,6 +305,7 @@ export default class DualityRoll extends D20Roll {
!config.source?.actor ||
(game.user.isGM ? !hopeFearAutomation.gm : !hopeFearAutomation.players) ||
config.actionType === 'reaction' ||
+ config.tagTeamSelected ||
config.skips?.resources
)
return;
@@ -354,6 +346,7 @@ export default class DualityRoll extends D20Roll {
if (
automationSettings.countdownAutomation &&
config.actionType !== 'reaction' &&
+ !config.tagTeamSelected &&
!config.skips?.updateCountdowns
) {
const { updateCountdowns } = game.system.api.applications.ui.DhCountdowns;
@@ -380,4 +373,61 @@ export default class DualityRoll extends D20Roll {
if (currentCombatant?.actorId == config.data.id) ui.combat.setCombatantSpotlight(currentCombatant.id);
}
}
+
+ static async reroll(rollString, target, message) {
+ let parsedRoll = game.system.api.dice.DualityRoll.fromData({ ...rollString, evaluated: false });
+ const term = parsedRoll.terms[target.dataset.dieIndex];
+ await term.reroll(`/r1=${term.total}`);
+ const result = await parsedRoll.evaluate();
+
+ if (game.modules.get('dice-so-nice')?.active) {
+ const diceSoNiceRoll = {
+ _evaluated: true,
+ dice: [
+ new foundry.dice.terms.Die({
+ ...term,
+ faces: term._faces,
+ results: term.results.filter(x => !x.rerolled)
+ })
+ ],
+ options: { appearance: {} }
+ };
+
+ const diceSoNicePresets = await getDiceSoNicePresets(result, `d${term._faces}`, `d${term._faces}`);
+ const type = target.dataset.type;
+ if (diceSoNicePresets[type]) {
+ diceSoNiceRoll.dice[0].options = diceSoNicePresets[type];
+ }
+
+ await game.dice3d.showForRoll(diceSoNiceRoll, game.user, true);
+ }
+
+ const newRoll = game.system.api.dice.DualityRoll.postEvaluate(parsedRoll, {
+ targets: message.system.targets,
+ roll: {
+ advantage: message.system.roll.advantage?.type,
+ difficulty: message.system.roll.difficulty ? Number(message.system.roll.difficulty) : null
+ }
+ });
+
+ const extraIndex = newRoll.advantage ? 3 : 2;
+ newRoll.extra = newRoll.extra.slice(extraIndex);
+
+ const tagTeamSettings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll);
+
+ const actor = message.system.source.actor ? await foundry.utils.fromUuid(message.system.source.actor) : null;
+ const config = {
+ source: { actor: message.system.source.actor ?? '' },
+ targets: message.system.targets,
+ tagTeamSelected: Object.values(tagTeamSettings.members).some(x => x.messageId === message._id),
+ roll: newRoll,
+ rerolledRoll: message.system.roll,
+ resourceUpdates: new ResourceUpdateMap(actor)
+ };
+
+ await DualityRoll.addDualityResourceUpdates(config);
+ await config.resourceUpdates.updateResources();
+
+ return { newRoll, parsedRoll };
+ }
}
diff --git a/module/dice/fateRoll.mjs b/module/dice/fateRoll.mjs
index 114fad59..418c8465 100644
--- a/module/dice/fateRoll.mjs
+++ b/module/dice/fateRoll.mjs
@@ -21,8 +21,8 @@ export default class FateRoll extends D20Roll {
}
set dHope(faces) {
- // TODO this should not be asymmetrical with the getter. updateRollConfiguration() should use dHope.faces
- this.dHope.faces = this.getFaces(faces);
+ if (!(this.dice[0] instanceof foundry.dice.terms.Die)) this.createBaseDice();
+ this.dice[0].faces = this.getFaces(faces);
}
get dFear() {
@@ -31,8 +31,8 @@ export default class FateRoll extends D20Roll {
}
set dFear(faces) {
- // TODO this should not be asymmetrical with the getter. updateRollConfiguration() should use dFear.faces
- this.dFear.faces = this.getFaces(faces);
+ if (!(this.dice[0] instanceof foundry.dice.terms.Die)) this.createBaseDice();
+ this.dice[0].faces = this.getFaces(faces);
}
get isCritical() {
@@ -43,20 +43,6 @@ export default class FateRoll extends D20Roll {
return this.data.fateType;
}
- get withHope() {
- return this.data.fateType === 'Hope';
- }
-
- get withFear() {
- return this.data.fateType === 'Fear';
- }
-
- get totalLabel() {
- const label = this.withHope ? 'DAGGERHEART.GENERAL.hope' : 'DAGGERHEART.GENERAL.fear';
-
- return game.i18n.localize(label);
- }
-
static getHooks(hooks) {
return [...(hooks ?? []), 'Fate'];
}
diff --git a/module/documents/_module.mjs b/module/documents/_module.mjs
index aa08f0f4..b9cfd3f2 100644
--- a/module/documents/_module.mjs
+++ b/module/documents/_module.mjs
@@ -8,4 +8,5 @@ export { default as DhRollTable } from './rollTable.mjs';
export { default as DhScene } from './scene.mjs';
export { default as DhToken } from './token.mjs';
export { default as DhTooltipManager } from './tooltipManager.mjs';
+export { default as DhTemplateManager } from './templateManager.mjs';
export { default as DhTokenManager } from './tokenManager.mjs';
diff --git a/module/documents/activeEffect.mjs b/module/documents/activeEffect.mjs
index 227e2613..dd5f1b55 100644
--- a/module/documents/activeEffect.mjs
+++ b/module/documents/activeEffect.mjs
@@ -1,4 +1,5 @@
import { itemAbleRollParse } from '../helpers/utils.mjs';
+import { RefreshType, socketEvent } from '../systemRegistration/socket.mjs';
export default class DhActiveEffect extends foundry.documents.ActiveEffect {
/* -------------------------------------------- */
@@ -7,8 +8,6 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
/**@override */
get isSuppressed() {
- if (this.system.isSuppressed === true) return true;
-
// If this is a copied effect from an attachment, never suppress it
// (These effects have attachmentSource metadata)
if (this.flags?.daggerheart?.attachmentSource) {
@@ -16,7 +15,7 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
}
// Then apply the standard suppression rules
- if (['weapon', 'armor'].includes(this.parent?.type) && this.transfer) {
+ if (['weapon', 'armor'].includes(this.parent?.type)) {
return !this.parent.system.equipped;
}
@@ -51,55 +50,10 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
});
}
- /**
- * Whether this Active Effect is eligible to be registered with the {@link ActiveEffectRegistry}
- */
- get isExpiryTrackable() {
- return (
- this.persisted &&
- !this.inCompendium &&
- this.modifiesActor &&
- this.start &&
- this.isTemporary &&
- !this.isExpired
- );
- }
-
/* -------------------------------------------- */
/* Event Handlers */
/* -------------------------------------------- */
- /** @inheritdoc */
- static async createDialog(data = {}, createOptions = {}, options = {}) {
- const { folders, types, template, context = {}, ...dialogOptions } = options;
-
- if (types?.length === 0) {
- throw new Error('The array of sub-types to restrict to must not be empty.');
- }
-
- const creatableEffects = types || ['base'];
- const documentTypes = this.TYPES.filter(type => creatableEffects.includes(type)).map(type => {
- const labelKey = `TYPES.ActiveEffect.${type}`;
- const label = game.i18n.has(labelKey) ? game.i18n.localize(labelKey) : type;
-
- return { value: type, label };
- });
-
- if (!documentTypes.length) {
- throw new Error('No document types were permitted to be created.');
- }
-
- const sortedTypes = documentTypes.sort((a, b) => a.label.localeCompare(b.label, game.i18n.lang));
-
- return await super.createDialog(data, createOptions, {
- folders,
- types,
- template,
- context: { types: sortedTypes, ...context },
- ...dialogOptions
- });
- }
-
/**@inheritdoc*/
async _preCreate(data, options, user) {
const update = {};
@@ -107,41 +61,25 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
update.img = 'icons/magic/life/heart-cross-blue.webp';
}
- if (this.actor && data.origin) {
- const existingEffect = this.actor.effects.find(x => x.origin === data.origin);
- const stacks = Boolean(data.system?.stacking);
- if (existingEffect && !stacks) return false;
-
- if (existingEffect && stacks) {
- const incrementedValue = existingEffect.system.stacking.value + 1;
- await existingEffect.update({
- 'system.stacking.value': Math.min(incrementedValue, existingEffect.system.stacking.max ?? Infinity)
- });
- return false;
- }
- }
-
- if (this.parent) {
- const statuses = Object.keys(data.statuses ?? {});
- const immuneStatuses =
- statuses.filter(
- status =>
- this.parent.system.rules?.conditionImmunities &&
- this.parent.system.rules.conditionImmunities[status]
- ) ?? [];
- if (immuneStatuses.length > 0) {
- update.statuses = statuses.filter(x => !immuneStatuses.includes(x));
- const conditions = CONFIG.DH.GENERAL.conditions();
- const scrollingTexts = immuneStatuses.map(status => ({
- text: game.i18n.format('DAGGERHEART.ACTIVEEFFECT.immuneStatusText', {
- status: game.i18n.localize(conditions[status].name)
- })
- }));
- if (update.statuses.length > 0) {
- setTimeout(() => scrollingTexts, 500);
- } else {
- this.parent.queueScrollText(scrollingTexts);
- }
+ const statuses = Object.keys(data.statuses ?? {});
+ const immuneStatuses =
+ statuses.filter(
+ status =>
+ this.parent.system.rules?.conditionImmunities &&
+ this.parent.system.rules.conditionImmunities[status]
+ ) ?? [];
+ if (immuneStatuses.length > 0) {
+ update.statuses = statuses.filter(x => !immuneStatuses.includes(x));
+ const conditions = CONFIG.DH.GENERAL.conditions();
+ const scrollingTexts = immuneStatuses.map(status => ({
+ text: game.i18n.format('DAGGERHEART.ACTIVEEFFECT.immuneStatusText', {
+ status: game.i18n.localize(conditions[status].name)
+ })
+ }));
+ if (update.statuses.length > 0) {
+ setTimeout(() => scrollingTexts, 500);
+ } else {
+ this.parent.queueScrollText(scrollingTexts);
}
}
@@ -152,29 +90,42 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
await super._preCreate(data, options, user);
}
+ /** @inheritdoc */
+ _onCreate(data, options, userId) {
+ super._onCreate(data, options, userId);
+
+ Hooks.callAll(RefreshType.EffectsDisplay);
+ }
+
+ /** @inheritdoc */
+ _onDelete(data, options, userId) {
+ super._onDelete(data, options, userId);
+
+ Hooks.callAll(RefreshType.EffectsDisplay);
+ }
+
/* -------------------------------------------- */
/* Methods */
/* -------------------------------------------- */
/**@inheritdoc*/
- static applyChangeField(model, change, field) {
- change.value = Number.isNumeric(change.value)
- ? change.value
- : DhActiveEffect.getChangeValue(model, change, change.effect);
- super.applyChangeField(model, change, field);
+ static applyField(model, change, field) {
+ change.value = DhActiveEffect.getChangeValue(model, change, change.effect);
+ super.applyField(model, change, field);
}
- static _applyChangeUnguided(actor, change, changes, options) {
+ _applyLegacy(actor, change, changes) {
change.value = DhActiveEffect.getChangeValue(actor, change, change.effect);
- super._applyChangeUnguided(actor, change, changes, options);
+ super._applyLegacy(actor, change, changes);
}
+ /** */
static getChangeValue(model, change, effect) {
- let key = change.value.toString();
- const isOriginTarget = key.toLowerCase().includes('origin.@');
+ let value = change.value;
+ const isOriginTarget = value.toLowerCase().includes('origin.@');
let parseModel = model;
if (isOriginTarget && effect.origin) {
- key = change.key.replaceAll(/origin\.@/gi, '@');
+ value = change.value.replaceAll(/origin\.@/gi, '@');
try {
const originEffect = foundry.utils.fromUuidSync(effect.origin);
const doc =
@@ -185,11 +136,8 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
} catch (_) {}
}
- const stackingParsedValue = effect.system.stacking
- ? Roll.replaceFormulaData(key, { stacks: effect.system.stacking.value })
- : key;
- const evalValue = itemAbleRollParse(stackingParsedValue, parseModel, effect.parent);
- return evalValue ?? key;
+ const evalValue = this.effectSafeEval(itemAbleRollParse(value, parseModel, effect.parent));
+ return evalValue ?? value;
}
/**
@@ -200,6 +148,7 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
static effectSafeEval(expression) {
let result;
try {
+ // eslint-disable-next-line no-new-func
const evl = new Function('sandbox', `with (sandbox) { return ${expression}}`);
result = evl(Roll.MATH_PROXY);
} catch (err) {
diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs
index db249033..787797ff 100644
--- a/module/documents/actor.mjs
+++ b/module/documents/actor.mjs
@@ -4,7 +4,6 @@ import DHFeature from '../data/item/feature.mjs';
import { createScrollText, damageKeyToNumber, getDamageKey } from '../helpers/utils.mjs';
import DhCompanionLevelUp from '../applications/levelup/companionLevelup.mjs';
import { ResourceUpdateMap } from '../data/action/baseAction.mjs';
-import { abilities } from '../config/actorConfig.mjs';
export default class DhpActor extends Actor {
parties = new Set();
@@ -30,18 +29,6 @@ export default class DhpActor extends Actor {
return this.system.metadata.isNPC;
}
- prepareData() {
- super.prepareData();
-
- // Update effects if it is the user's character or is controlled
- if (canvas.ready) {
- const controlled = canvas.tokens.controlled.some(t => t.actor === this);
- if (game.user.character === this || controlled) {
- ui.effectsDisplay.render();
- }
- }
- }
-
/* -------------------------------------------- */
/** @inheritDoc */
@@ -113,13 +100,11 @@ export default class DhpActor extends Actor {
_onUpdate(changes, options, userId) {
super._onUpdate(changes, options, userId);
for (const party of this.parties) {
- party.render({ parts: ['partyMembers'] });
+ party.render();
}
}
- async _preDelete(options, user) {
- if ((await super._preDelete(options, user)) === false) return false;
-
+ async _preDelete() {
if (this.prototypeToken.actorLink) {
game.system.registeredTriggers.unregisterItemTriggers(this.items);
} else {
@@ -132,7 +117,7 @@ export default class DhpActor extends Actor {
_onDelete(options, userId) {
super._onDelete(options, userId);
for (const party of this.parties) {
- party.render({ parts: ['partyMembers'] });
+ party.render();
}
}
@@ -157,7 +142,7 @@ export default class DhpActor extends Actor {
}
const updatedLevelups = Object.keys(this.system.levelData.levelups).reduce((acc, level) => {
- if (Number(level) > usedLevel) acc[level] = _del;
+ if (Number(level) > usedLevel) acc[`-=${level}`] = null;
return acc;
}, {});
@@ -202,7 +187,7 @@ export default class DhpActor extends Actor {
if (experiences.length > 0) {
const getUpdate = () => ({
'system.experiences': experiences.reduce((acc, key) => {
- acc[key] = _del;
+ acc[`-=${key}`] = null;
return acc;
}, {})
});
@@ -524,30 +509,6 @@ export default class DhpActor extends Actor {
return await rollClass.build(config);
}
- async rollTrait(trait, options = {}) {
- const abilityLabel = game.i18n.localize(abilities[trait].label);
- const config = {
- event: event,
- title: `${game.i18n.localize('DAGGERHEART.GENERAL.dualityRoll')}: ${this.name}`,
- headerTitle: game.i18n.format('DAGGERHEART.UI.Chat.dualityRoll.abilityCheckTitle', {
- ability: abilityLabel
- }),
- effects: await game.system.api.data.actions.actionsTypes.base.getEffects(this),
- roll: {
- trait: trait,
- type: 'trait'
- },
- hasRoll: true,
- actionType: 'action',
- headerTitle: `${game.i18n.localize('DAGGERHEART.GENERAL.dualityRoll')}: ${this.name}`,
- title: game.i18n.format('DAGGERHEART.UI.Chat.dualityRoll.abilityCheckTitle', {
- ability: abilityLabel
- }),
- ...options
- };
- return await this.diceRoll(config);
- }
-
get rollClass() {
return CONFIG.Dice.daggerheart[['character', 'companion'].includes(this.type) ? 'DualityRoll' : 'D20Roll'];
}
@@ -602,7 +563,6 @@ export default class DhpActor extends Actor {
rollData.system = this.system.getRollData();
rollData.prof = this.system.proficiency ?? 1;
rollData.cast = this.system.spellcastModifier ?? 1;
-
return rollData;
}
@@ -613,7 +573,8 @@ export default class DhpActor extends Actor {
const availableStress = this.system.resources.stress.max - this.system.resources.stress.value;
const canUseArmor =
- this.system.armorScore.value < this.system.armorScore.max &&
+ this.system.armor &&
+ this.system.armor.system.marks.value < this.system.armorScore &&
type.every(t => this.system.armorApplicableDamageTypes[t] === true);
const canUseStress = Object.keys(stressDamageReduction).reduce((acc, x) => {
const rule = stressDamageReduction[x];
@@ -653,7 +614,12 @@ export default class DhpActor extends Actor {
const hpDamage = updates.find(u => u.key === CONFIG.DH.GENERAL.healingTypes.hitPoints.id);
if (hpDamage?.value) {
hpDamage.value = this.convertDamageToThreshold(hpDamage.value);
- if (this.type === 'character' && !isDirect && this.#canReduceDamage(hpDamage.value, hpDamage.damageTypes)) {
+ if (
+ this.type === 'character' &&
+ !isDirect &&
+ this.system.armor &&
+ this.#canReduceDamage(hpDamage.value, hpDamage.damageTypes)
+ ) {
const armorSlotResult = await this.owner.query(
'armorSlot',
{
@@ -666,10 +632,12 @@ export default class DhpActor extends Actor {
}
);
if (armorSlotResult) {
- const { modifiedDamage, armorChanges, stressSpent } = armorSlotResult;
+ const { modifiedDamage, armorSpent, stressSpent } = armorSlotResult;
updates.find(u => u.key === 'hitPoints').value = modifiedDamage;
- for (const armorChange of armorChanges) {
- updates.push({ value: armorChange.amount, key: 'armor', uuid: armorChange.uuid });
+ if (armorSpent) {
+ const armorUpdate = updates.find(u => u.key === 'armor');
+ if (armorUpdate) armorUpdate.value += armorSpent;
+ else updates.push({ value: armorSpent, key: 'armor' });
}
if (stressSpent) {
const stressUpdate = updates.find(u => u.key === 'stress');
@@ -786,10 +754,20 @@ export default class DhpActor extends Actor {
resources.forEach(r => {
if (r.itemId) {
const { path, value } = game.system.api.fields.ActionFields.CostField.getItemIdCostUpdate(r);
- updates.items[r.key] = {
- target: r.target,
- resources: { [path]: value }
- };
+
+ if (
+ r.key === 'quantity' &&
+ r.target.type === 'consumable' &&
+ value === 0 &&
+ r.target.system.destroyOnEmpty
+ ) {
+ r.target.delete();
+ } else {
+ updates.items[r.key] = {
+ target: r.target,
+ resources: { [path]: value }
+ };
+ }
} else {
const valueFunc = (base, resource, baseMax) => {
if (resource.clear) return baseMax && base.inverted ? baseMax : 0;
@@ -806,8 +784,12 @@ export default class DhpActor extends Actor {
);
break;
case 'armor':
- if (!r.uuid) this.system.updateArmorValue(r);
- else this.system.updateArmorEffectValue(r);
+ if (this.system.armor?.system?.marks) {
+ updates.armor.resources['system.marks.value'] = Math.max(
+ Math.min(valueFunc(this.system.armor.system.marks, r), this.system.armorScore),
+ 0
+ );
+ }
break;
default:
if (this.system.resources?.[r.key]) {
@@ -1023,20 +1005,4 @@ export default class DhpActor extends Actor {
return allTokens;
}
-
- /**@inheritdoc */
- *allApplicableEffects({ noSelfArmor, noTransferArmor } = {}) {
- for (const effect of this.effects) {
- if (!noSelfArmor || effect.type !== 'armor') yield effect;
- }
- for (const item of this.items) {
- for (const effect of item.effects) {
- if (effect.transfer && (!noTransferArmor || effect.type !== 'armor')) yield effect;
- }
- }
- }
-
- applyActiveEffects(phase) {
- super.applyActiveEffects(phase);
- }
}
diff --git a/module/documents/chatMessage.mjs b/module/documents/chatMessage.mjs
index 2e20fb87..53921329 100644
--- a/module/documents/chatMessage.mjs
+++ b/module/documents/chatMessage.mjs
@@ -1,4 +1,4 @@
-import { emitAsGM, GMUpdateEvent } from '../systemRegistration/socket.mjs';
+import { emitAsGM, GMUpdateEvent, RefreshType, socketEvent } from '../systemRegistration/socket.mjs';
export default class DhpChatMessage extends foundry.documents.ChatMessage {
targetHook = null;
@@ -78,14 +78,25 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage {
if (this.isContentVisible) {
if (this.type === 'dualityRoll') {
html.classList.add('duality');
- if (this.system.roll.withHope) html.classList.add('hope');
- else if (this.system.roll.withFear) html.classList.add('fear');
- else html.classList.add('critical');
+ switch (this.system.roll?.result?.duality) {
+ case 1:
+ html.classList.add('hope');
+ break;
+ case -1:
+ html.classList.add('fear');
+ break;
+ default:
+ html.classList.add('critical');
+ break;
+ }
}
if (this.type === 'fateRoll') {
html.classList.add('fate');
- if (this.system.roll?.fateDie) {
- html.classList.add(this.system.roll.fateDie.toLowerCase());
+ if (this.system.roll?.fate.fateDie == 'Hope') {
+ html.classList.add('hope');
+ }
+ if (this.system.roll?.fate.fateDie == 'Fear') {
+ html.classList.add('fear');
}
}
@@ -137,10 +148,6 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage {
element.addEventListener('click', this.onApplyEffect.bind(this))
);
- for (const element of html.querySelectorAll('.action-areas')) {
- element.addEventListener('click', this.onCreateAreas.bind(this));
- }
-
html.querySelectorAll('.roll-target').forEach(element => {
element.addEventListener('mouseenter', this.hoverTarget);
element.addEventListener('mouseleave', this.unhoverTarget);
@@ -170,6 +177,14 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage {
config.effects = await game.system.api.data.actions.actionsTypes.base.getEffects(actor, item);
await this.system.action.workflow.get('damage')?.execute(config, this._id, true);
}
+
+ Hooks.callAll(socketEvent.Refresh, { refreshType: RefreshType.TagTeamRoll });
+ await game.socket.emit(`system.${CONFIG.DH.id}`, {
+ action: socketEvent.Refresh,
+ data: {
+ refreshType: RefreshType.TagTeamRoll
+ }
+ });
}
async onApplyDamage(event) {
@@ -182,8 +197,8 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage {
const pendingingSaves = targets.filter(t => t.saved.success === null);
if (pendingingSaves.length) {
const confirm = await foundry.applications.api.DialogV2.confirm({
- window: { title: game.i18n.localize('DAGGERHEART.APPLICATIONS.PendingReactionsDialog.title') },
- content: `${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 +268,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..67f7d253 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;
@@ -209,6 +197,7 @@ export default class DHItem extends foundry.documents.Item {
actor: item.parent,
speaker: cls.getSpeaker(),
system: systemData,
+ title: game.i18n.localize('DAGGERHEART.ACTIONS.Config.displayInChat'),
content: await foundry.applications.handlebars.renderTemplate(
'systems/daggerheart/templates/ui/chat/ability-use.hbs',
systemData
@@ -241,14 +230,4 @@ export default class DHItem extends foundry.documents.Item {
async _preDelete() {
this.deleteTriggers();
}
-
- /** @inheritDoc */
- static migrateData(source) {
- const documentClass = game.system.api.data.items[`DH${source.type?.capitalize()}`];
- if (documentClass?.migrateDocumentData) {
- documentClass.migrateDocumentData(source);
- }
-
- return super.migrateData(source);
- }
}
diff --git a/module/documents/rollTable.mjs b/module/documents/rollTable.mjs
index 59652f44..50b8fe63 100644
--- a/module/documents/rollTable.mjs
+++ b/module/documents/rollTable.mjs
@@ -76,7 +76,7 @@ export default class DhRollTable extends foundry.documents.RollTable {
}
async toMessage(results, { roll, messageData = {}, messageOptions = {} } = {}) {
- messageOptions.rollMode ??= game.settings.get('core', 'messageMode');
+ messageOptions.rollMode ??= game.settings.get('core', 'rollMode');
// Construct chat data
messageData = foundry.utils.mergeObject(
diff --git a/module/documents/scene.mjs b/module/documents/scene.mjs
index 59b8091f..1c2faa34 100644
--- a/module/documents/scene.mjs
+++ b/module/documents/scene.mjs
@@ -1,16 +1,6 @@
import DHToken from './token.mjs';
export default class DhScene extends Scene {
- get rangeSettings() {
- const { custom } = CONFIG.DH.GENERAL.sceneRangeMeasurementSetting;
- const sceneMeasurements = this.flags.daggerheart?.rangeMeasurement;
- const globalMeasurements = game.settings.get(
- CONFIG.DH.id,
- CONFIG.DH.SETTINGS.gameSettings.variantRules
- ).rangeMeasurement;
- return sceneMeasurements?.setting === custom.id ? sceneMeasurements : globalMeasurements;
- }
-
/** A map of `TokenDocument` IDs embedded in this scene long with new dimensions from actor size-category changes */
#sizeSyncBatch = new Map();
diff --git a/module/documents/templateManager.mjs b/module/documents/templateManager.mjs
new file mode 100644
index 00000000..cf15c2e3
--- /dev/null
+++ b/module/documents/templateManager.mjs
@@ -0,0 +1,105 @@
+/**
+ * A singleton class that handles preview templates.
+ */
+
+export default class DhTemplateManager {
+ #activePreview;
+
+ /**
+ * Create a template preview, deactivating any existing ones.
+ * @param {object} data
+ */
+ async createPreview(data) {
+ const template = await canvas.templates._createPreview(data, { renderSheet: false });
+
+ this.#activePreview = {
+ document: template.document,
+ object: template,
+ origin: { x: template.document.x, y: template.document.y }
+ };
+
+ this.#activePreview.events = {
+ contextmenu: this.#cancelTemplate.bind(this),
+ mousedown: this.#confirmTemplate.bind(this),
+ mousemove: this.#onDragMouseMove.bind(this),
+ wheel: this.#onMouseWheel.bind(this)
+ };
+ canvas.stage.on('mousemove', this.#activePreview.events.mousemove);
+ canvas.stage.on('mousedown', this.#activePreview.events.mousedown);
+
+ canvas.app.view.addEventListener('wheel', this.#activePreview.events.wheel, true);
+ canvas.app.view.addEventListener('contextmenu', this.#activePreview.events.contextmenu);
+ }
+
+ /**
+ * Handles the movement of the temlate preview on mousedrag.
+ * @param {mousemove Event} event
+ */
+ #onDragMouseMove(event) {
+ event.stopPropagation();
+ const { moveTime, object } = this.#activePreview;
+ const update = {};
+
+ const now = Date.now();
+ if (now - (moveTime || 0) <= 16) return;
+ this.#activePreview.moveTime = now;
+
+ let cursor = event.getLocalPosition(canvas.templates);
+
+ Object.assign(update, canvas.grid.getCenterPoint(cursor));
+
+ object.document.updateSource(update);
+ object.renderFlags.set({ refresh: true });
+ }
+
+ /**
+ * Handles the rotation of the preview template on scrolling.
+ * @param {wheel Event} event
+ */
+ #onMouseWheel(event) {
+ if (!this.#activePreview) {
+ return;
+ }
+ if (!event.shiftKey && !event.ctrlKey) return;
+ event.stopPropagation();
+ event.preventDefault();
+ const { moveTime, object } = this.#activePreview;
+
+ const now = Date.now();
+ if (now - (moveTime || 0) <= 16) return;
+ this.#activePreview.moveTime = now;
+
+ const multiplier = event.shiftKey ? 0.2 : 0.1;
+
+ object.document.updateSource({
+ direction: object.document.direction + event.deltaY * multiplier
+ });
+ object.renderFlags.set({ refresh: true });
+ }
+
+ /**
+ * Cancels the preview template on right-click.
+ * @param {contextmenu Event} event
+ */
+ #cancelTemplate(event) {
+ const { mousemove, mousedown, contextmenu, wheel } = this.#activePreview.events;
+ canvas.templates._onDragLeftCancel(event);
+
+ canvas.stage.off('mousemove', mousemove);
+ canvas.stage.off('mousedown', mousedown);
+ canvas.app.view.removeEventListener('contextmenu', contextmenu);
+ canvas.app.view.removeEventListener('wheel', wheel);
+ }
+
+ /**
+ * Creates a real MeasuredTemplate at the preview location and cancels the preview.
+ * @param {click Event} event
+ */
+ #confirmTemplate(event) {
+ event.stopPropagation();
+ this.#cancelTemplate(event);
+
+ canvas.scene.createEmbeddedDocuments('MeasuredTemplate', [this.#activePreview.document.toObject()]);
+ this.#activePreview = undefined;
+ }
+}
diff --git a/module/documents/tokenManager.mjs b/module/documents/tokenManager.mjs
index 3ccff4e2..be5467da 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, 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/documents/tooltipManager.mjs b/module/documents/tooltipManager.mjs
index e10dc5fa..4793f1f7 100644
--- a/module/documents/tooltipManager.mjs
+++ b/module/documents/tooltipManager.mjs
@@ -31,39 +31,12 @@ export default class DhTooltipManager extends foundry.helpers.interaction.Toolti
this.#bordered = true;
let effect = {};
if (element.dataset.uuid) {
- const effectItem = await foundry.utils.fromUuid(element.dataset.uuid);
- const effectData = effectItem.toObject();
-
+ const effectData = (await foundry.utils.fromUuid(element.dataset.uuid)).toObject();
effect = {
...effectData,
- name: game.i18n.localize(effectData.name)
+ name: game.i18n.localize(effectData.name),
+ description: game.i18n.localize(effectData.description ?? effectData.parent.system.description)
};
-
- if (effectData.type === 'beastform') {
- const beastformData = {
- features: [],
- advantageOn: effectData.system.advantageOn,
- beastformAttackData: game.system.api.data.items.DHBeastform.getBeastformAttackData(effectItem)
- };
-
- const features = effectItem.parent.items.filter(x => effectItem.system.featureIds.includes(x.id));
- for (const feature of features) {
- const featureData = feature.toObject();
- featureData.enrichedDescription = await feature.system.getEnrichedDescription();
- beastformData.features.push(featureData);
- }
-
- effect.description = await foundry.applications.handlebars.renderTemplate(
- 'systems/daggerheart/templates/ui/tooltip/parts/beastformData.hbs',
- {
- item: { system: beastformData }
- }
- );
- } else {
- effect.description = game.i18n.localize(
- effectData.description ?? effectData.parent.system.description
- );
- }
} else {
const conditions = CONFIG.DH.GENERAL.conditions();
const condition = conditions[element.dataset.condition];
@@ -196,19 +169,70 @@ export default class DhTooltipManager extends foundry.helpers.interaction.Toolti
}
}
- this.noOffset = options.noOffset;
- super.activate(element, { ...options, html: html });
+ this.baseActivate(element, { ...options, html: html });
}
- _setAnchor(direction) {
+ /* Need to pass more options to _setAnchor, so have to copy whole foundry method >_< */
+ async baseActivate(element, options) {
+ let { text, direction, cssClass, locked = false, html, content } = options;
+ if (content && !html) {
+ foundry.utils.logCompatibilityWarning(
+ 'The content option has been deprecated in favor of the html option',
+ { since: 13, until: 15, once: true }
+ );
+ html = content;
+ }
+ if (text && html) throw new Error('Cannot provide both text and html options to TooltipManager#activate.');
+ // Deactivate currently active element
+ this.deactivate();
+ // Check if the element still exists in the DOM.
+ if (!document.body.contains(element)) return;
+ // Mark the new element as active
+ this.#active = true;
+ this.element = element;
+ element.setAttribute('aria-describedby', 'tooltip');
+ html ||= element.dataset.tooltipHtml;
+ if (html) {
+ if (typeof html === 'string') this.tooltip.innerHTML = foundry.utils.cleanHTML(html);
+ else {
+ this.tooltip.innerHTML = ''; // Clear existing HTML
+ this.tooltip.appendChild(html);
+ }
+ } else {
+ text ||= element.dataset.tooltipText;
+ if (text) this.tooltip.textContent = text;
+ else {
+ text = element.dataset.tooltip;
+ // Localized message should be safe
+ if (game.i18n.has(text)) this.tooltip.innerHTML = game.i18n.localize(text);
+ else this.tooltip.innerHTML = foundry.utils.cleanHTML(text);
+ }
+ }
+
+ // Activate display of the tooltip
+ this.tooltip.removeAttribute('class');
+ this.tooltip.classList.add('active', 'themed', 'theme-dark');
+ this.tooltip.showPopover();
+ cssClass ??= element.closest('[data-tooltip-class]')?.dataset.tooltipClass;
+ if (cssClass) this.tooltip.classList.add(...cssClass.split(' '));
+
+ // Set tooltip position
+ direction ??= element.closest('[data-tooltip-direction]')?.dataset.tooltipDirection;
+ if (!direction) direction = this._determineDirection();
+ this._setAnchor(direction, options);
+
+ if (locked || element.dataset.hasOwnProperty('locked')) this.lockTooltip();
+ }
+
+ _setAnchor(direction, options) {
const directions = this.constructor.TOOLTIP_DIRECTIONS;
const pad = this.constructor.TOOLTIP_MARGIN_PX;
const pos = this.element.getBoundingClientRect();
const { innerHeight, innerWidth } = this.tooltip.ownerDocument.defaultView;
const tooltipPadding = 16;
- const horizontalOffset = this.noOffset ? tooltipPadding : this.tooltip.offsetWidth / 2 - pos.width / 2;
- const verticalOffset = this.noOffset ? tooltipPadding : this.tooltip.offsetHeight / 2 - pos.height / 2;
+ const horizontalOffset = options.noOffset ? tooltipPadding : this.tooltip.offsetWidth / 2 - pos.width / 2;
+ const verticalOffset = options.noOffset ? tooltipPadding : this.tooltip.offsetHeight / 2 - pos.height / 2;
const style = {};
switch (direction) {
diff --git a/module/enrichers/TemplateEnricher.mjs b/module/enrichers/TemplateEnricher.mjs
index 8db3ec14..4bc8fdeb 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))
@@ -57,24 +57,32 @@ 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 === 'emanation' ? 'circle' : type;
+ const usedAngle =
+ type === CONST.MEASURED_TEMPLATE_TYPES.CONE
+ ? (angle ?? CONFIG.MeasuredTemplate.defaults.angle)
+ : type === CONFIG.DH.GENERAL.templateTypes.INFRONT
+ ? '180'
+ : undefined;
- await canvas.regions.placeRegion(
- {
- name: type.capitalize(),
- shapes: [shapeData],
- restriction: { enabled: false, type: 'move', priority: 0 },
- behaviors: [],
- displayMeasurements: true,
- locked: false,
- ownership: { default: CONST.DOCUMENT_OWNERSHIP_LEVELS.NONE },
- visibility: CONST.REGION_VISIBILITY.ALWAYS
- },
- { create: true }
- );
+ let baseDistance = range;
+ if (Number.isNaN(Number(range))) {
+ baseDistance = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules).rangeMeasurement[
+ range
+ ];
+ }
+ const distance = type === CONFIG.DH.GENERAL.templateTypes.EMANATION ? baseDistance + 2.5 : baseDistance;
+
+ const { width, height } = game.canvas.scene.dimensions;
+ const data = {
+ x: width / 2,
+ y: height / 2,
+ t: usedType,
+ distance: distance,
+ width: type === CONST.MEASURED_TEMPLATE_TYPES.RAY ? 5 : undefined,
+ angle: usedAngle,
+ direction: direction
+ };
+
+ CONFIG.ux.TemplateManager.createPreview(data);
};
diff --git a/module/helpers/handlebarsHelper.mjs b/module/helpers/handlebarsHelper.mjs
index 7f30d970..2faea830 100644
--- a/module/helpers/handlebarsHelper.mjs
+++ b/module/helpers/handlebarsHelper.mjs
@@ -49,8 +49,9 @@ export default class RegisterHandlebarsHelpers {
}
static damageSymbols(damageParts) {
- const allTypes = [...new Set([...damageParts].flatMap(x => Array.from(x.type)))];
- const symbols = allTypes.map(p => CONFIG.DH.GENERAL.damageTypes[p].icon);
+ const symbols = [...new Set(damageParts.reduce((a, c) => a.concat([...c.type]), []))].map(
+ p => CONFIG.DH.GENERAL.damageTypes[p].icon
+ );
return new Handlebars.SafeString(Array.from(symbols).map(symbol => ``));
}
diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs
index 4527da1a..b49a98ca 100644
--- a/module/helpers/utils.mjs
+++ b/module/helpers/utils.mjs
@@ -177,10 +177,10 @@ export const getDeleteKeys = (property, innerProperty, innerPropertyDefaultValue
[innerProperty]: innerPropertyDefaultValue
};
} else {
- acc[`${key}.${innerProperty}`] = _del;
+ acc[`${key}.-=${innerProperty}`] = null;
}
} else {
- acc[`${key}`] = _del;
+ acc[`-=${key}`] = null;
}
return acc;
@@ -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 };
});
@@ -428,12 +422,7 @@ export async function createEmbeddedItemWithEffects(actor, baseData, update) {
...baseData,
id: data.id,
uuid: data.uuid,
- _uuid: data.uuid,
- effects: data.effects?.map(effect => effect.toObject()),
- _stats: {
- ...data._stats,
- compendiumSource: data.pack ? `Compendium.${data.pack}.Item.${data.id}` : null
- }
+ effects: data.effects?.map(effect => effect.toObject())
}
]);
@@ -486,8 +475,6 @@ export async function waitForDiceSoNice(message) {
}
export function refreshIsAllowed(allowedTypes, typeToCheck) {
- if (!allowedTypes) return true;
-
switch (typeToCheck) {
case CONFIG.DH.GENERAL.refreshTypes.scene.id:
case CONFIG.DH.GENERAL.refreshTypes.session.id:
@@ -504,38 +491,9 @@ export function refreshIsAllowed(allowedTypes, typeToCheck) {
}
}
-function expireActiveEffectIsAllowed(allowedTypes, typeToCheck) {
- if (typeToCheck === CONFIG.DH.GENERAL.activeEffectDurations.act.id) return true;
-
- return refreshIsAllowed(allowedTypes, typeToCheck);
-}
-
-export function expireActiveEffects(actor, allowedTypes = null) {
- const shouldExpireEffects = game.settings.get(
- CONFIG.DH.id,
- CONFIG.DH.SETTINGS.gameSettings.Automation
- ).autoExpireActiveEffects;
- if (!shouldExpireEffects) return;
-
- const effectsToExpire = actor
- .getActiveEffects()
- .filter(effect => {
- if (!effect.system?.duration.type) return false;
-
- const { temporary, custom } = CONFIG.DH.GENERAL.activeEffectDurations;
- if ([temporary.id, custom.id].includes(effect.system.duration.type)) return false;
-
- return expireActiveEffectIsAllowed(allowedTypes, effect.system.duration.type);
- })
- .map(x => x.id);
-
- actor.deleteEmbeddedDocuments('ActiveEffect', effectsToExpire);
-}
-
export async function getCritDamageBonus(formula) {
const critRoll = new Roll(formula);
- await critRoll.evaluate();
- return critRoll.dice.reduce((acc, dice) => acc + dice.faces * dice.results.filter(r => r.active).length, 0);
+ return critRoll.dice.reduce((acc, dice) => acc + dice.faces * dice.number, 0);
}
export function htmlToText(html) {
@@ -545,16 +503,6 @@ export function htmlToText(html) {
return tempDivElement.textContent || tempDivElement.innerText || '';
}
-export function getIconVisibleActiveEffects(effects) {
- return effects.filter(effect => {
- if (!(effect instanceof game.system.api.documents.DhActiveEffect)) return true;
-
- const alwaysShown = effect.showIcon === CONST.ACTIVE_EFFECT_SHOW_ICON.ALWAYS;
- const conditionalShown = effect.showIcon === CONST.ACTIVE_EFFECT_SHOW_ICON.CONDITIONAL && !effect.transfer; // TODO: system specific logic
-
- return !effect.disabled && (alwaysShown || conditionalShown);
- });
-}
export async function getFeaturesHTMLData(features) {
const result = [];
for (const feature of features) {
@@ -640,8 +588,6 @@ export async function RefreshFeatures(
const refreshedActors = {};
for (let actor of game.actors) {
if (actorTypes.includes(actor.type) && actor.prototypeToken.actorLink) {
- expireActiveEffects(actor, refreshTypes);
-
const updates = {};
for (let item of actor.items) {
if (
@@ -736,79 +682,3 @@ export async function RefreshFeatures(
return refreshedActors;
}
-
-export function getUnusedDamageTypes(parts) {
- const usedKeys = Object.keys(parts);
- return Object.keys(CONFIG.DH.GENERAL.healingTypes).reduce((acc, key) => {
- if (!usedKeys.includes(key))
- acc.push({
- value: key,
- label: game.i18n.localize(CONFIG.DH.GENERAL.healingTypes[key].label)
- });
-
- return acc;
- }, []);
-}
-
-/** Returns resolved armor sources ordered by application order */
-export function getArmorSources(actor) {
- const rawArmorSources = Array.from(actor.allApplicableEffects()).filter(x => x.system.armorData);
- if (actor.system.armor) rawArmorSources.push(actor.system.armor);
-
- const data = rawArmorSources.map(doc => {
- // Get the origin item. Since the actor is already loaded, it should already be cached
- // Consider the relative function versions if this causes an issue
- const origin = doc.origin ? foundry.utils.fromUuidSync(doc.origin) : doc;
- return {
- origin,
- name: origin.name,
- document: doc,
- data: doc.system.armor ?? doc.system.armorData,
- disabled: !!doc.disabled || !!doc.isSuppressed
- };
- });
-
- return sortBy(data, ({ origin }) => {
- switch (origin?.type) {
- case 'class':
- case 'subclass':
- case 'ancestry':
- case 'community':
- case 'feature':
- case 'domainCard':
- return 2;
- case 'loot':
- case 'consumable':
- return 3;
- case 'character':
- return 4;
- case 'weapon':
- return 5;
- case 'armor':
- return 6;
- default:
- return 1;
- }
- });
-}
-
-/**
- * Returns an array sorted by a function that returns a thing to compare, or an array to compare in order
- * Similar to lodash's sortBy function.
- */
-export function sortBy(arr, fn) {
- const directCompare = (a, b) => (a < b ? -1 : a > b ? 1 : 0);
- const cmp = (a, b) => {
- const resultA = fn(a);
- const resultB = fn(b);
- if (Array.isArray(resultA) && Array.isArray(resultB)) {
- for (let idx = 0; idx < Math.min(resultA.length, resultB.length); idx++) {
- const result = directCompare(resultA[idx], resultB[idx]);
- if (result !== 0) return result;
- }
- return 0;
- }
- return directCompare(resultA, resultB);
- };
- return arr.sort(cmp);
-}
diff --git a/module/macros/_modules.mjs b/module/macros/_modules.mjs
deleted file mode 100644
index d4a5599f..00000000
--- a/module/macros/_modules.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { default as spotlightCombatant } from './spotlightCombatant.mjs';
diff --git a/module/macros/spotlightCombatant.mjs b/module/macros/spotlightCombatant.mjs
deleted file mode 100644
index dc8339ac..00000000
--- a/module/macros/spotlightCombatant.mjs
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * Spotlight a token on the canvas. If it is a combatant, run it through combatTracker's spotlight logic.
- * @param {TokenDocument} token - The token to spotlight
- * @returns {void}
- */
-const spotlightCombatantMacro = async token => {
- if (!token)
- return ui.notifications.error(game.i18n.localize('DAGGERHEART.MACROS.Spotlight.errors.noTokenSelected'));
-
- const combatantCombat = token.combatant
- ? game.combat
- : game.combats.find(combat => combat.combatants.some(x => x.token && x.token.id === token.document.id));
- if (combatantCombat) {
- const combatant = combatantCombat.combatants.find(x => x.token.id === token.document.id);
- if (!combatantCombat.active) {
- await combatantCombat.activate();
- if (combatantCombat.combatant?.id !== combatant.id) ui.combat.setCombatantSpotlight(combatant.id);
- } else {
- ui.combat.setCombatantSpotlight(combatant.id);
- }
- } else {
- if (game.combat) await ui.combat.clearTurn();
-
- const spotlightTracker = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.SpotlightTracker);
- const isSpotlighted = spotlightTracker.spotlightedTokens.has(token.document.uuid);
- if (!isSpotlighted) await clearPreviousSpotlight();
-
- spotlightTracker.updateSource({
- spotlightedTokens: isSpotlighted ? [] : [token.document.uuid]
- });
-
- await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.SpotlightTracker, spotlightTracker);
- token.renderFlags.set({ refreshTurnMarker: true });
- }
-};
-
-export const clearPreviousSpotlight = async () => {
- const spotlightTracker = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.SpotlightTracker);
- const previouslySpotlightedUuid =
- spotlightTracker.spotlightedTokens.size > 0 ? spotlightTracker.spotlightedTokens.first() : null;
- if (!previouslySpotlightedUuid) return;
-
- spotlightTracker.updateSource({ spotlightedTokens: [] });
- await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.SpotlightTracker, spotlightTracker);
-
- const previousToken = await foundry.utils.fromUuid(previouslySpotlightedUuid);
- previousToken.object.renderFlags.set({ refreshTurnMarker: true });
-};
-
-export default spotlightCombatantMacro;
diff --git a/module/systemRegistration/handlebars.mjs b/module/systemRegistration/handlebars.mjs
index 1b08e0ad..f51e1035 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',
@@ -38,11 +36,9 @@ export const preloadHandlebarsTemplates = async function () {
'systems/daggerheart/templates/actionTypes/summon.hbs',
'systems/daggerheart/templates/actionTypes/transform.hbs',
'systems/daggerheart/templates/settings/components/settings-item-line.hbs',
- 'systems/daggerheart/templates/ui/tooltip/parts/beastformData.hbs',
'systems/daggerheart/templates/ui/tooltip/parts/tooltipChips.hbs',
'systems/daggerheart/templates/ui/tooltip/parts/tooltipTags.hbs',
'systems/daggerheart/templates/dialogs/downtime/activities.hbs',
- 'systems/daggerheart/templates/dialogs/tagTeamDialog/parts/tagTeamDamageParts.hbs',
'systems/daggerheart/templates/dialogs/dice-roll/costSelection.hbs',
'systems/daggerheart/templates/ui/chat/parts/roll-part.hbs',
'systems/daggerheart/templates/ui/chat/parts/description-part.hbs',
@@ -51,7 +47,6 @@ export const preloadHandlebarsTemplates = async function () {
'systems/daggerheart/templates/ui/chat/parts/button-part.hbs',
'systems/daggerheart/templates/ui/itemBrowser/itemContainer.hbs',
'systems/daggerheart/templates/scene/dh-config.hbs',
- 'systems/daggerheart/templates/settings/appearance-settings/diceSoNiceTab.hbs',
- 'systems/daggerheart/templates/sheets/activeEffect/typeChanges/armorChange.hbs'
+ 'systems/daggerheart/templates/settings/appearance-settings/diceSoNiceTab.hbs'
]);
};
diff --git a/module/systemRegistration/migrations.mjs b/module/systemRegistration/migrations.mjs
index b4c446b2..743d42a4 100644
--- a/module/systemRegistration/migrations.mjs
+++ b/module/systemRegistration/migrations.mjs
@@ -1,4 +1,3 @@
-import { defaultRestOptions } from '../config/generalConfig.mjs';
import { RefreshType, socketEvent } from './socket.mjs';
export async function runMigrations() {
@@ -194,11 +193,11 @@ export async function runMigrations() {
}
if (foundry.utils.isNewerVersion('1.2.7', lastMigrationVersion)) {
- const tagTeam = game.settings.get(CONFIG.DH.id, 'TagTeamRoll');
+ const tagTeam = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll);
const initatorMissing = tagTeam.initiator && !game.actors.some(actor => actor.id === tagTeam.initiator);
const missingMembers = Object.keys(tagTeam.members).reduce((acc, id) => {
if (!game.actors.some(actor => actor.id === id)) {
- acc[id] = _del;
+ acc[`-=${id}`] = null;
}
return acc;
}, {});
@@ -207,7 +206,7 @@ export async function runMigrations() {
initiator: initatorMissing ? null : tagTeam.initiator,
members: missingMembers
});
- await game.settings.set(CONFIG.DH.id, 'TagTeamRoll', tagTeam);
+ await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll, tagTeam);
lastMigrationVersion = '1.2.7';
}
@@ -247,113 +246,6 @@ export async function runMigrations() {
lastMigrationVersion = '1.6.0';
}
-
- if (foundry.utils.isNewerVersion('2.0.0', lastMigrationVersion)) {
- const progress = game.system.api.applications.ui.DhProgress.createMigrationProgress(0);
- const progressBuffer = 50;
-
- //#region Data Setup
- const lockedPacks = [];
- const itemPacks = game.packs.filter(x => x.metadata.type === 'Item');
- const actorPacks = game.packs.filter(x => x.metadata.type === 'Actor');
-
- const getIndexes = async (packs, type) => {
- const indexes = [];
- for (const pack of packs) {
- const indexValues = pack.index.values().reduce((acc, index) => {
- if (!type || index.type === type) acc.push(index.uuid);
- return acc;
- }, []);
-
- if (indexValues.length && pack.locked) {
- lockedPacks.push(pack.collection);
- await pack.configure({ locked: false });
- }
-
- indexes.push(...indexValues);
- }
-
- return indexes;
- };
-
- const itemEntries = await getIndexes(itemPacks);
- const characterEntries = await getIndexes(actorPacks, 'character');
-
- const worldItems = game.items;
- const worldCharacters = game.actors.filter(x => x.type === 'character');
-
- /* The async fetches are the mainstay of time. Leaving 1 progress for the sync logic */
- const newMax = itemEntries.length + characterEntries.length + progressBuffer;
- progress.updateMax(newMax);
-
- const compendiumItems = [];
- for (const entry of itemEntries) {
- const item = await foundry.utils.fromUuid(entry);
- compendiumItems.push(item);
- progress.advance();
- }
-
- const compendiumCharacters = [];
- for (const entry of characterEntries) {
- const character = await foundry.utils.fromUuid(entry);
- compendiumCharacters.push(character);
- progress.advance();
- }
- //#endregion
-
- /* Migrate existing effects modifying armor, creating new Armor Effects instead */
- const migrateEffects = async entity => {
- for (const effect of entity.effects) {
- if (effect.system.changes.every(x => x.key !== 'system.armorScore')) continue;
-
- effect.update({
- 'system.changes': effect.system.changes.map(change => ({
- ...change,
- type: change.key === 'system.armorScore' ? 'armor' : change.type,
- value: change.key === 'system.armorScore' ? { current: 0, max: change.value } : change.value
- }))
- });
- }
- };
-
- /* Migrate existing armors effects */
- const migrateItems = async items => {
- for (const item of items) {
- await migrateEffects(item);
- }
- };
-
- await migrateItems([...compendiumItems, ...worldItems]);
- progress.advance({ by: progressBuffer / 2 });
-
- for (const actor of [...compendiumCharacters, ...worldCharacters]) {
- await migrateEffects(actor);
- await migrateItems(actor.items);
- }
-
- progress.advance({ by: progressBuffer / 2 });
-
- for (let packId of lockedPacks) {
- const pack = game.packs.get(packId);
- await pack.configure({ locked: true });
- }
-
- progress.close();
-
- lastMigrationVersion = '2.0.0';
- }
-
- if (foundry.utils.isNewerVersion('2.1.0', lastMigrationVersion)) {
- const downtimeMoves = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew);
- if (downtimeMoves.restMoves.longRest.moves.repairArmor) {
- await downtimeMoves.updateSource({
- 'restMoves.longRest.moves.repairArmor': defaultRestOptions.longRest().repairArmor
- });
- game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew, downtimeMoves.toObject());
- }
-
- lastMigrationVersion = '2.1.0';
- }
//#endregion
await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LastMigrationVersion, lastMigrationVersion);
diff --git a/module/systemRegistration/settings.mjs b/module/systemRegistration/settings.mjs
index 41cab011..e7ec37f5 100644
--- a/module/systemRegistration/settings.mjs
+++ b/module/systemRegistration/settings.mjs
@@ -15,11 +15,9 @@ import {
DhMetagamingSettings,
DhVariantRuleSettings
} from '../applications/settings/_module.mjs';
-import { CompendiumBrowserSettings } from '../data/_module.mjs';
-import SpotlightTracker from '../data/spotlightTracker.mjs';
+import { CompendiumBrowserSettings, DhTagTeamRoll } from '../data/_module.mjs';
export const registerDHSettings = () => {
- registerKeyBindings();
registerMenuSettings();
registerMenus();
registerNonConfigSettings();
@@ -35,46 +33,6 @@ export const registerDHSettings = () => {
});
};
-export const registerKeyBindings = () => {
- game.keybindings.register(CONFIG.DH.id, CONFIG.DH.SETTINGS.keybindings.spotlight, {
- name: game.i18n.localize('DAGGERHEART.SETTINGS.Keybindings.spotlight.name'),
- hint: game.i18n.localize('DAGGERHEART.SETTINGS.Keybindings.spotlight.hint'),
- uneditable: [],
- editable: [],
- onDown: () => {
- const selectedTokens = canvas.tokens.controlled.length > 0 ? canvas.tokens.controlled[0] : null;
- const hoveredTokens = game.canvas.tokens.hover ? game.canvas.tokens.hover : null;
- const tokens = selectedTokens ?? hoveredTokens;
- game.system.api.macros.spotlightCombatant(tokens);
- },
- onUp: () => {},
- restricted: true,
- 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 = () => {
game.settings.register(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules, {
scope: 'world',
@@ -199,22 +157,15 @@ const registerNonConfigSettings = () => {
type: DhCountdowns
});
+ game.settings.register(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll, {
+ scope: 'world',
+ config: false,
+ type: DhTagTeamRoll
+ });
+
game.settings.register(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.CompendiumBrowserSettings, {
scope: 'world',
config: false,
type: CompendiumBrowserSettings
});
-
- game.settings.register(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.SpotlightTracker, {
- scope: 'world',
- 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/module/systemRegistration/socket.mjs b/module/systemRegistration/socket.mjs
index 8fed346d..173ef02b 100644
--- a/module/systemRegistration/socket.mjs
+++ b/module/systemRegistration/socket.mjs
@@ -15,11 +15,6 @@ export function handleSocketEvent({ action = null, data = {} } = {}) {
case socketEvent.DowntimeTrigger:
Party.downtimeMoveQuery(data);
break;
- case socketEvent.TagTeamStart:
- Hooks.callAll(CONFIG.DH.HOOKS.hooksConfig.tagTeamStart, data);
- break;
- case socketEvent.GroupRollStart:
- Hooks.callAll(CONFIG.DH.HOOKS.hooksConfig.groupRollStart, data);
}
}
@@ -27,9 +22,7 @@ export const socketEvent = {
GMUpdate: 'DhGMUpdate',
Refresh: 'DhRefresh',
DhpFearUpdate: 'DhFearUpdate',
- DowntimeTrigger: 'DowntimeTrigger',
- TagTeamStart: 'DhTagTeamStart',
- GroupRollStart: 'DhGroupRollStart'
+ DowntimeTrigger: 'DowntimeTrigger'
};
export const GMUpdateEvent = {
@@ -44,7 +37,6 @@ export const GMUpdateEvent = {
export const RefreshType = {
Countdown: 'DhCoundownRefresh',
TagTeamRoll: 'DhTagTeamRollRefresh',
- GroupRoll: 'DhGroupRollRefresh',
EffectsDisplay: 'DhEffectsDisplayRefresh',
Scene: 'DhSceneRefresh',
CompendiumBrowser: 'DhCompendiumBrowserRefresh'
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..e2b3a444 100644
--- a/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json
+++ b/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json
@@ -91,8 +91,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -118,7 +118,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"_id": "TCKVaVweyJzhEArX",
@@ -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": {
@@ -341,9 +343,8 @@
"recovery": null
},
"damage": {
- "parts": {},
- "includeBase": false,
- "groupAttack": ""
+ "parts": [],
+ "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,
@@ -408,18 +400,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "act"
}
},
+ "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",
@@ -431,16 +423,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!89yAh30vaNQOALlz.ctXYwil2D1zfsekT.9PsnogEPsp1OOK64"
}
],
@@ -479,8 +461,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -507,7 +489,7 @@
}
}
},
- "armor": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -532,7 +514,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -589,7 +571,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": {
@@ -606,8 +588,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -634,9 +616,8 @@
}
}
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -645,23 +626,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",
@@ -677,8 +642,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -705,7 +670,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -715,8 +680,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..16fb61d8 100644
--- a/src/packs/adversaries/adversary_Adult_Flickerfly_G7jiltRjgvVhZewm.json
+++ b/src/packs/adversaries/adversary_Adult_Flickerfly_G7jiltRjgvVhZewm.json
@@ -75,8 +75,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": {
@@ -398,8 +400,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -425,10 +427,9 @@
}
}
}
- },
+ ],
"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": {
@@ -516,9 +508,8 @@
"recovery": null
},
"damage": {
- "parts": {},
- "includeBase": false,
- "groupAttack": ""
+ "parts": [],
+ "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": [],
@@ -599,8 +581,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -626,7 +608,7 @@
}
}
},
- "hope": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -651,9 +633,8 @@
},
"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_Apprentice_Assassin_vNIbYQ4YSzNf0WPE.json b/src/packs/adversaries/adversary_Apprentice_Assassin_vNIbYQ4YSzNf0WPE.json
index 12ec35ae..23f1f339 100644
--- a/src/packs/adversaries/adversary_Apprentice_Assassin_vNIbYQ4YSzNf0WPE.json
+++ b/src/packs/adversaries/adversary_Apprentice_Assassin_vNIbYQ4YSzNf0WPE.json
@@ -72,8 +72,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -100,7 +100,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/weapons/daggers/dagger-bone-black.webp",
"type": "attack",
@@ -131,9 +131,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
},
@@ -184,7 +187,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -210,8 +213,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -247,95 +249,33 @@
"description": "Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "SrNyZgPvCXMpbCLG": {
- "type": "attack",
- "_id": "SrNyZgPvCXMpbCLG",
+ "vgguNWz8vG8aoLXR": {
+ "type": "effect",
+ "_id": "vgguNWz8vG8aoLXR",
"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
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "4"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
+ "recovery": null
},
+ "effects": [],
"target": {
"type": "any",
"amount": null
},
- "effects": [],
- "roll": {
- "type": "attack",
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
- },
"name": "Spend Fear",
+ "img": "icons/magic/unholy/orb-hands-pink.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Arch_Necromancer_WPEOIGfclNJxWb87.json b/src/packs/adversaries/adversary_Arch_Necromancer_WPEOIGfclNJxWb87.json
index 5da74eb3..d4e506cb 100644
--- a/src/packs/adversaries/adversary_Arch_Necromancer_WPEOIGfclNJxWb87.json
+++ b/src/packs/adversaries/adversary_Arch_Necromancer_WPEOIGfclNJxWb87.json
@@ -85,8 +85,8 @@
},
"range": "far",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -112,7 +112,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/magic/unholy/beam-ringed-impact-purple.webp",
"type": "attack",
@@ -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": [
{
@@ -254,7 +256,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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": {
@@ -334,8 +336,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -361,9 +363,8 @@
}
}
}
- },
- "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",
@@ -422,8 +414,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -448,7 +440,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -496,19 +488,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until you roll with Hope.
"
}
},
+ "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 you roll with Hope.
",
"tint": "#ffffff",
@@ -520,16 +511,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!WPEOIGfclNJxWb87.4EECsXzHFG0RoIg0.KGdf2eqcXkdigg0u"
}
],
@@ -627,7 +608,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -700,8 +681,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -727,7 +708,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Archer_Guard_JRhrrEg5UroURiAD.json b/src/packs/adversaries/adversary_Archer_Guard_JRhrrEg5UroURiAD.json
index 965c5168..5a13b3d9 100644
--- a/src/packs/adversaries/adversary_Archer_Guard_JRhrrEg5UroURiAD.json
+++ b/src/packs/adversaries/adversary_Archer_Guard_JRhrrEg5UroURiAD.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/weapons/bows/longbow-recurve-leather-brown.webp",
"type": "attack",
@@ -246,8 +246,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -273,7 +273,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Archer_Squadron_0ts6CGd93lLqGZI5.json b/src/packs/adversaries/adversary_Archer_Squadron_0ts6CGd93lLqGZI5.json
index 1e45b90a..5b15bc09 100644
--- a/src/packs/adversaries/adversary_Archer_Squadron_0ts6CGd93lLqGZI5.json
+++ b/src/packs/adversaries/adversary_Archer_Squadron_0ts6CGd93lLqGZI5.json
@@ -68,8 +68,8 @@
"description": "A group of trained archers bearing massive bows.
",
"attack": {
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -95,7 +95,7 @@
"resultBased": false,
"base": false
}
- }
+ ]
},
"name": "Longbow",
"img": "icons/weapons/bows/longbow-recurve-leather-brown.webp",
@@ -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": {
@@ -268,8 +270,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -293,9 +295,8 @@
}
}
}
- },
- "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": {
@@ -376,8 +368,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -401,9 +393,8 @@
}
}
}
- },
- "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..8b553c83 100644
--- a/src/packs/adversaries/adversary_Assassin_Poisoner_h5RuhzGL17dW5FBT.json
+++ b/src/packs/adversaries/adversary_Assassin_Poisoner_h5RuhzGL17dW5FBT.json
@@ -81,8 +81,8 @@
},
"range": "close",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": [
{
@@ -275,21 +277,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until you clear a HP.
"
}
},
+ "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 you clear a HP.
",
+ "description": " Vulnerable until you clear a HP.
",
"tint": "#ffffff",
"statuses": [
"vulnerable"
@@ -299,16 +300,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!h5RuhzGL17dW5FBT.Fz2lnUEeBxsDpx0G.2iBVUGHtGW3I9VIj"
}
],
@@ -397,7 +388,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 +416,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 +439,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 +460,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..96a1b752 100644
--- a/src/packs/adversaries/adversary_Battle_Box_dgH3fW9FTYLaIDvS.json
+++ b/src/packs/adversaries/adversary_Battle_Box_dgH3fW9FTYLaIDvS.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"range": "melee",
"type": "attack",
@@ -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": [
{
@@ -307,7 +309,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -380,8 +382,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -407,7 +409,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -480,8 +482,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -507,9 +509,8 @@
}
}
}
- },
- "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": {
@@ -590,8 +582,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -617,9 +609,8 @@
}
}
}
- },
- "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,
@@ -685,21 +667,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until their next roll with Hope.
"
}
},
+ "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.
",
+ "description": "Vulnerable until your next roll with Hope.
",
"tint": "#ffffff",
"statuses": [
"vulnerable"
@@ -709,16 +690,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!dgH3fW9FTYLaIDvS.XtnByqUr9AuYU9Ip.9NQcCXMhjyBReJRd"
}
],
@@ -738,7 +709,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": {
@@ -755,8 +726,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -781,9 +752,8 @@
},
"type": []
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -812,16 +782,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 +808,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": {
@@ -864,9 +825,8 @@
"recovery": null
},
"damage": {
- "parts": {},
- "includeBase": false,
- "groupAttack": ""
+ "parts": [],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -900,16 +860,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,
@@ -932,21 +883,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until the cube is defeated.
"
}
},
+ "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 the cube is defeated.
",
+ "description": "Vulnerable until the cube is defeated.
",
"tint": "#ffffff",
"statuses": [
"vulnerable"
@@ -956,16 +906,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!dgH3fW9FTYLaIDvS.ijIaKjroxq3xZd9Z.S7kJlhnV8Nexzi8l"
}
],
@@ -985,7 +925,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": {
@@ -1002,8 +942,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -1029,9 +969,8 @@
}
}
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -1060,16 +999,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,
@@ -1119,8 +1049,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -1145,7 +1075,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -1196,7 +1126,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": {
@@ -1213,8 +1143,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -1240,9 +1170,8 @@
}
}
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -1271,16 +1200,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_Bear_71qKDLKO3CsrNkdy.json b/src/packs/adversaries/adversary_Bear_71qKDLKO3CsrNkdy.json
index cfc71120..da5de611 100644
--- a/src/packs/adversaries/adversary_Bear_71qKDLKO3CsrNkdy.json
+++ b/src/packs/adversaries/adversary_Bear_71qKDLKO3CsrNkdy.json
@@ -84,8 +84,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -111,7 +111,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/creatures/claws/claw-straight-brown.webp",
"type": "attack",
@@ -284,8 +284,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -311,7 +311,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -368,19 +368,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until you break free with a successful Strength Roll.
"
}
},
+ "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 are Restrained until you break free with a successful Strength Roll.
",
"tint": "#ffffff",
@@ -392,16 +391,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!71qKDLKO3CsrNkdy.zgR0MEqyobKp2yXr.U50Ccm9emMqAxma6"
}
],
@@ -441,8 +430,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -468,7 +457,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Bladed_Guard_B4LZcGuBAHzyVdzy.json b/src/packs/adversaries/adversary_Bladed_Guard_B4LZcGuBAHzyVdzy.json
index a315f91a..8ee7c56c 100644
--- a/src/packs/adversaries/adversary_Bladed_Guard_B4LZcGuBAHzyVdzy.json
+++ b/src/packs/adversaries/adversary_Bladed_Guard_B4LZcGuBAHzyVdzy.json
@@ -80,8 +80,8 @@
"name": "Longsword",
"img": "icons/weapons/swords/sword-guard.webp",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -246,7 +246,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -319,7 +319,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -376,19 +376,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until you break free with a successful attack, Finesse Roll, or Strength Roll.
"
}
},
+ "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 are Restrained until you break free with a successful attack, Finesse Roll, or Strength Roll.
",
"tint": "#ffffff",
@@ -400,16 +399,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!B4LZcGuBAHzyVdzy.9gizFt9ovKL05DXu.LmzztuktRkwOCy1a"
}
],
diff --git a/src/packs/adversaries/adversary_Brawny_Zombie_2UeZ0tEe7AzgSJNd.json b/src/packs/adversaries/adversary_Brawny_Zombie_2UeZ0tEe7AzgSJNd.json
index 8863641d..c829c3f9 100644
--- a/src/packs/adversaries/adversary_Brawny_Zombie_2UeZ0tEe7AzgSJNd.json
+++ b/src/packs/adversaries/adversary_Brawny_Zombie_2UeZ0tEe7AzgSJNd.json
@@ -83,8 +83,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -110,7 +110,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/skills/melee/unarmed-punch-fist-yellow-red.webp",
"type": "attack",
@@ -280,8 +280,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -307,7 +307,7 @@
}
}
}
- },
+ ],
"includeBase": false,
"direct": true
},
@@ -389,8 +389,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -415,7 +415,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -452,18 +452,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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",
@@ -475,16 +475,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!2UeZ0tEe7AzgSJNd.69reUZ5tv3splqyO.CjMrSdL6kgD8mKRQ"
}
],
diff --git a/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json b/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json
index a1bf6bc9..5b2d2e41 100644
--- a/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json
+++ b/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json
@@ -79,8 +79,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- },
+ ],
"direct": true
},
"name": "Club",
@@ -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": {
@@ -334,8 +336,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false,
@@ -363,10 +365,9 @@
}
}
}
- },
+ ],
"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",
@@ -420,8 +412,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -446,7 +438,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -515,8 +507,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -542,7 +534,7 @@
}
}
}
- },
+ ],
"includeBase": false,
"direct": true
},
diff --git a/src/packs/adversaries/adversary_Chaos_Skull_jDmHqGvzg5wjgmxE.json b/src/packs/adversaries/adversary_Chaos_Skull_jDmHqGvzg5wjgmxE.json
index 876519cf..f548870a 100644
--- a/src/packs/adversaries/adversary_Chaos_Skull_jDmHqGvzg5wjgmxE.json
+++ b/src/packs/adversaries/adversary_Chaos_Skull_jDmHqGvzg5wjgmxE.json
@@ -74,8 +74,8 @@
},
"range": "close",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/magic/light/beam-rays-magenta.webp",
"type": "attack",
@@ -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": {
@@ -381,8 +383,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -408,9 +410,8 @@
}
}
}
- },
- "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,
@@ -491,8 +483,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -516,7 +508,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Conscript_99TqczuQipBmaB8i.json b/src/packs/adversaries/adversary_Conscript_99TqczuQipBmaB8i.json
index 38e7ceab..35c43a3b 100644
--- a/src/packs/adversaries/adversary_Conscript_99TqczuQipBmaB8i.json
+++ b/src/packs/adversaries/adversary_Conscript_99TqczuQipBmaB8i.json
@@ -67,8 +67,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -95,7 +95,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -125,9 +125,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
},
@@ -178,7 +181,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -204,8 +207,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -240,95 +242,33 @@
"description": "Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "FCeTuf71gCzRiO5N": {
- "type": "attack",
- "_id": "FCeTuf71gCzRiO5N",
+ "cbAvPSIhwBMBTI3D": {
+ "type": "effect",
+ "_id": "cbAvPSIhwBMBTI3D",
"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
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "6"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
+ "recovery": null
},
+ "effects": [],
"target": {
"type": "any",
"amount": null
},
- "effects": [],
- "roll": {
- "type": "attack",
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
- },
"name": "Spend Fear",
+ "img": "icons/creatures/abilities/tail-strike-bone-orange.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json b/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json
index 3bd154ef..310eefce 100644
--- a/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json
+++ b/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json
@@ -72,8 +72,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -99,7 +99,7 @@
},
"base": false
}
- }
+ ]
},
"name": "Fist Slam",
"img": "icons/skills/melee/unarmed-punch-fist-yellow-red.webp",
@@ -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": [
{
@@ -330,8 +332,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -357,7 +359,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -532,8 +534,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -559,9 +561,8 @@
}
}
}
- },
- "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_Courtesan_ZxWaWPdzFIUPNC62.json b/src/packs/adversaries/adversary_Courtesan_ZxWaWPdzFIUPNC62.json
index aba9ea46..668cd943 100644
--- a/src/packs/adversaries/adversary_Courtesan_ZxWaWPdzFIUPNC62.json
+++ b/src/packs/adversaries/adversary_Courtesan_ZxWaWPdzFIUPNC62.json
@@ -84,8 +84,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -111,7 +111,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/weapons/daggers/dagger-straight-cracked.webp",
"type": "attack",
@@ -256,8 +256,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -282,7 +282,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -320,19 +320,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until the scene ends or they succeed on a social action against the Courtesan.
"
}
},
+ "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 the scene ends or they succeed on a social action against the Courtesan.
",
"tint": "#ffffff",
@@ -344,16 +343,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!ZxWaWPdzFIUPNC62.rSMUPC5GhR982ifg.blcRqns0PHqiuPac"
}
],
diff --git a/src/packs/adversaries/adversary_Courtier_CBBuEXAlLKFMJdjg.json b/src/packs/adversaries/adversary_Courtier_CBBuEXAlLKFMJdjg.json
index 8777ee06..6721666f 100644
--- a/src/packs/adversaries/adversary_Courtier_CBBuEXAlLKFMJdjg.json
+++ b/src/packs/adversaries/adversary_Courtier_CBBuEXAlLKFMJdjg.json
@@ -79,8 +79,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/weapons/daggers/dagger-twin-green.webp",
"type": "attack",
@@ -253,8 +253,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -279,7 +279,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -336,18 +336,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "scene"
}
},
+ "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",
@@ -359,16 +359,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!CBBuEXAlLKFMJdjg.LYNaKEYcYMgvF4Rf.YNMhgBZW8ndrCjIp"
}
],
diff --git a/src/packs/adversaries/adversary_Cult_Adept_0NxCSugvKQ4W8OYZ.json b/src/packs/adversaries/adversary_Cult_Adept_0NxCSugvKQ4W8OYZ.json
index 27553d32..14eb579b 100644
--- a/src/packs/adversaries/adversary_Cult_Adept_0NxCSugvKQ4W8OYZ.json
+++ b/src/packs/adversaries/adversary_Cult_Adept_0NxCSugvKQ4W8OYZ.json
@@ -84,8 +84,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -111,7 +111,7 @@
},
"base": false
}
- }
+ ]
},
"range": "far",
"img": "icons/weapons/staves/staff-ornate-purple.webp",
@@ -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": [
{
@@ -254,8 +256,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -281,7 +283,7 @@
}
}
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -306,7 +308,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -420,32 +422,31 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.resistance.magical.resistance",
- "value": 1,
- "priority": null,
- "type": "override"
- },
- {
- "key": "system.resistance.physical.resistance",
- "value": 1,
- "priority": null,
- "type": "override"
- }
- ],
- "duration": {
- "type": "temporary",
- "description": "Until the Cult Adept marks their last HP.
"
}
},
+ "changes": [
+ {
+ "key": "system.resistance.magical.resistance",
+ "mode": 5,
+ "value": "1",
+ "priority": null
+ },
+ {
+ "key": "system.resistance.physical.resistance",
+ "mode": 5,
+ "value": "1",
+ "priority": null
+ }
+ ],
"disabled": false,
"duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
+ "startTime": null,
+ "combat": null,
+ "seconds": null,
+ "rounds": null,
+ "turns": null,
+ "startRound": null,
+ "startTurn": null
},
"description": "Resistance to all damage until the Adept marks their last HP
",
"tint": "#ffffff",
@@ -455,16 +456,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!0NxCSugvKQ4W8OYZ.IHWDn097sRgjlZXO.U9lWz1LgeAiK5L85"
}
],
@@ -484,7 +475,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 +510,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,
@@ -551,19 +533,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until you break free with a successful Strength or Instinct Roll.
"
}
},
+ "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 are Restrained in smoky chains until you break free with a successful Strength or Instinct Roll. A target Restrained by this feature must spend a Hope to make an action roll.
",
"tint": "#ffffff",
@@ -575,16 +556,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!0NxCSugvKQ4W8OYZ.JpSrduK3vjd9h098.lNH6srSPyEprXZ4o"
}
],
@@ -621,8 +592,8 @@
"recovery": "scene"
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -647,7 +618,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Cult_Fang_tyBOpLfigAhI9bU3.json b/src/packs/adversaries/adversary_Cult_Fang_tyBOpLfigAhI9bU3.json
index e65f3202..57e7a7c7 100644
--- a/src/packs/adversaries/adversary_Cult_Fang_tyBOpLfigAhI9bU3.json
+++ b/src/packs/adversaries/adversary_Cult_Fang_tyBOpLfigAhI9bU3.json
@@ -74,8 +74,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- }
+ ]
},
"range": "melee",
"type": "attack",
@@ -300,8 +300,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -326,7 +326,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -384,18 +384,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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",
@@ -407,16 +407,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!tyBOpLfigAhI9bU3.ohASSruBxcvuItIK.LwWxRz7FTMA80VdA"
}
],
diff --git a/src/packs/adversaries/adversary_Cult_Initiate_zx99sOGTXicP4SSD.json b/src/packs/adversaries/adversary_Cult_Initiate_zx99sOGTXicP4SSD.json
index db26605d..a0c0713d 100644
--- a/src/packs/adversaries/adversary_Cult_Initiate_zx99sOGTXicP4SSD.json
+++ b/src/packs/adversaries/adversary_Cult_Initiate_zx99sOGTXicP4SSD.json
@@ -66,8 +66,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -94,7 +94,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -125,9 +125,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
},
@@ -178,7 +181,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -204,8 +207,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -240,95 +242,33 @@
"description": "Spend a Fear to choose a target and spotlight all Cult @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "4M2MvVzEgIQEQHBS": {
- "type": "attack",
- "_id": "4M2MvVzEgIQEQHBS",
+ "EH1preaTWBD4rOvx": {
+ "type": "effect",
+ "_id": "EH1preaTWBD4rOvx",
"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
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "5"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
- },
- "target": {
- "type": "any",
- "amount": null
+ "recovery": null
},
"effects": [],
- "roll": {
- "type": null,
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
+ "target": {
+ "type": "self",
+ "amount": null
},
"name": "Spend Fear",
+ "img": "icons/creatures/abilities/tail-strike-bone-orange.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json b/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json
index 9ff0a161..cd745eb6 100644
--- a/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json
+++ b/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json
@@ -79,8 +79,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/magic/nature/root-vines-grow-brown.webp",
"type": "attack",
@@ -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": {
@@ -243,8 +245,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -269,9 +271,8 @@
}
}
}
- },
- "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,
@@ -333,8 +325,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -358,7 +350,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -415,19 +407,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until the Deeproot Defender takes Severe damage.
"
}
},
+ "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 are Restrained until the Defender takes Severe damage.
",
"tint": "#ffffff",
@@ -439,16 +430,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!9x2xY9zwc3xzbXo5.rreGFW5TbhUoZf2T.F3E7fiz01AbF2kr5"
}
],
diff --git a/src/packs/adversaries/adversary_Demon_of_Avarice_pnyjIGxxvurcWmTv.json b/src/packs/adversaries/adversary_Demon_of_Avarice_pnyjIGxxvurcWmTv.json
index 1a3538da..e4ba41fb 100644
--- a/src/packs/adversaries/adversary_Demon_of_Avarice_pnyjIGxxvurcWmTv.json
+++ b/src/packs/adversaries/adversary_Demon_of_Avarice_pnyjIGxxvurcWmTv.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
diff --git a/src/packs/adversaries/adversary_Demon_of_Despair_kE4dfhqmIQpNd44e.json b/src/packs/adversaries/adversary_Demon_of_Despair_kE4dfhqmIQpNd44e.json
index 6468c1aa..830848c3 100644
--- a/src/packs/adversaries/adversary_Demon_of_Despair_kE4dfhqmIQpNd44e.json
+++ b/src/packs/adversaries/adversary_Demon_of_Despair_kE4dfhqmIQpNd44e.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "far",
@@ -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,
@@ -361,25 +354,25 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.rules.dualityRoll.defaultHopeDice",
- "value": "d8",
- "priority": null,
- "type": "override"
- }
- ],
- "duration": {
- "type": "shortRest"
}
},
+ "changes": [
+ {
+ "key": "system.rules.dualityRoll.defaultHopeDice",
+ "mode": 5,
+ "value": "d8",
+ "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": "All targets affected replace their Hope Die with a d8 until they roll a success with Hope or their next rest.
",
"tint": "#ffffff",
@@ -389,16 +382,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!kE4dfhqmIQpNd44e.FC8PIf4BVkhmoJX8.6WSx03mFbpbPWnOI"
}
],
@@ -418,7 +401,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": {
@@ -442,8 +425,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -468,9 +451,8 @@
}
}
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -479,16 +461,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,
@@ -532,8 +505,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -559,7 +532,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Demon_of_Hubris_2VN3BftageoTTIzu.json b/src/packs/adversaries/adversary_Demon_of_Hubris_2VN3BftageoTTIzu.json
index 3a95c233..16bc1d1f 100644
--- a/src/packs/adversaries/adversary_Demon_of_Hubris_2VN3BftageoTTIzu.json
+++ b/src/packs/adversaries/adversary_Demon_of_Hubris_2VN3BftageoTTIzu.json
@@ -81,8 +81,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": {
@@ -249,8 +251,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -275,9 +277,8 @@
}
}
}
- },
- "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,
@@ -337,8 +329,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -363,7 +355,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -422,8 +414,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -449,7 +441,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -558,8 +550,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -584,9 +576,8 @@
}
}
}
- },
- "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..31f9b942 100644
--- a/src/packs/adversaries/adversary_Demon_of_Jealousy_SxSOkM4bcVOFyjbo.json
+++ b/src/packs/adversaries/adversary_Demon_of_Jealousy_SxSOkM4bcVOFyjbo.json
@@ -80,8 +80,8 @@
},
"range": "far",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- },
+ ],
"direct": true
},
"img": "icons/magic/symbols/rune-sigil-rough-white-teal.webp",
@@ -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": {
@@ -359,9 +352,8 @@
"recovery": null
},
"damage": {
- "parts": {},
- "includeBase": false,
- "groupAttack": ""
+ "parts": [],
+ "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..2341ee8a 100644
--- a/src/packs/adversaries/adversary_Demon_of_Wrath_5lphJAgzoqZI3VoG.json
+++ b/src/packs/adversaries/adversary_Demon_of_Wrath_5lphJAgzoqZI3VoG.json
@@ -81,8 +81,8 @@
},
"img": "icons/skills/melee/unarmed-punch-fist-yellow-red.webp",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- },
+ ],
"direct": true
},
"type": "attack",
@@ -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,
@@ -324,25 +317,25 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.rules.dualityRoll.defaultFearDice",
- "value": "d20",
- "priority": null,
- "type": "override"
- }
- ],
- "duration": {
- "type": "scene"
}
},
+ "changes": [
+ {
+ "key": "system.rules.dualityRoll.defaultFearDice",
+ "mode": 5,
+ "value": "d20",
+ "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 use a d20 as your Fear Die until the end of the scene.
",
"tint": "#ffffff",
@@ -352,16 +345,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!5lphJAgzoqZI3VoG.a33PW8UkziliowlR.gFeHLGgeRoDdd3VG"
}
],
@@ -381,7 +364,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": {
@@ -405,8 +388,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -432,10 +415,9 @@
}
}
}
- },
+ ],
"includeBase": false,
- "direct": true,
- "groupAttack": ""
+ "direct": true
},
"target": {
"type": "any",
@@ -464,16 +446,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..7482c734 100644
--- a/src/packs/adversaries/adversary_Demonic_Hound_Pack_NoRZ1PqB8N5wcIw0.json
+++ b/src/packs/adversaries/adversary_Demonic_Hound_Pack_NoRZ1PqB8N5wcIw0.json
@@ -74,8 +74,8 @@
"motivesAndTactics": "Cause fear, consume fl esh, please masters",
"attack": {
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
"resultBased": false,
"base": false
}
- }
+ ]
},
"name": "Claws and Fangs",
"img": "icons/creatures/abilities/mouth-teeth-rows-red.webp",
@@ -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": {
@@ -267,8 +269,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -293,9 +295,8 @@
},
"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,
@@ -357,8 +349,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -384,7 +376,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Dire_Bat_tBWHW00epmMnkawe.json b/src/packs/adversaries/adversary_Dire_Bat_tBWHW00epmMnkawe.json
index c2064395..16ec7643 100644
--- a/src/packs/adversaries/adversary_Dire_Bat_tBWHW00epmMnkawe.json
+++ b/src/packs/adversaries/adversary_Dire_Bat_tBWHW00epmMnkawe.json
@@ -78,8 +78,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -105,7 +105,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/creatures/claws/claw-hooked-curved.webp",
"type": "attack",
@@ -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": {
@@ -310,8 +312,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -335,9 +337,8 @@
},
"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,
@@ -405,8 +397,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -432,7 +424,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Dire_Wolf_wNzeuQLfLUMvgHlQ.json b/src/packs/adversaries/adversary_Dire_Wolf_wNzeuQLfLUMvgHlQ.json
index 939a5307..e3ecda4e 100644
--- a/src/packs/adversaries/adversary_Dire_Wolf_wNzeuQLfLUMvgHlQ.json
+++ b/src/packs/adversaries/adversary_Dire_Wolf_wNzeuQLfLUMvgHlQ.json
@@ -79,8 +79,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/creatures/claws/claw-straight-brown.webp",
"type": "attack",
@@ -247,8 +247,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -272,7 +272,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -352,8 +352,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -377,7 +377,7 @@
}
}
}
- },
+ ],
"includeBase": false,
"direct": true
},
@@ -435,19 +435,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until they clear at least 1 HP.
"
}
},
+ "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",
@@ -459,16 +458,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!wNzeuQLfLUMvgHlQ.85XrqDvLP30YOO43.YNKHEFQ4ucGr4Rmc"
}
],
diff --git a/src/packs/adversaries/adversary_Dryad_wR7cFKrHvRzbzhBT.json b/src/packs/adversaries/adversary_Dryad_wR7cFKrHvRzbzhBT.json
index 62df584a..ca9ce647 100644
--- a/src/packs/adversaries/adversary_Dryad_wR7cFKrHvRzbzhBT.json
+++ b/src/packs/adversaries/adversary_Dryad_wR7cFKrHvRzbzhBT.json
@@ -81,8 +81,8 @@
},
"range": "far",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": {
@@ -249,9 +251,8 @@
"recovery": null
},
"damage": {
- "parts": {},
- "includeBase": false,
- "groupAttack": ""
+ "parts": [],
+ "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",
@@ -305,8 +297,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -332,7 +324,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -446,8 +438,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -472,7 +464,7 @@
},
"type": []
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -497,9 +489,8 @@
},
"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_Electric_Eels_TLzY1nDw0Bu9Ud40.json b/src/packs/adversaries/adversary_Electric_Eels_TLzY1nDw0Bu9Ud40.json
index 1909a74a..9386944f 100644
--- a/src/packs/adversaries/adversary_Electric_Eels_TLzY1nDw0Bu9Ud40.json
+++ b/src/packs/adversaries/adversary_Electric_Eels_TLzY1nDw0Bu9Ud40.json
@@ -68,8 +68,8 @@
"motivesAndTactics": "Avoid larger predators, shock prey, tear apart",
"attack": {
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -95,7 +95,7 @@
"resultBased": false,
"base": false
}
- }
+ ]
},
"name": "Shocking Bite",
"img": "icons/creatures/abilities/mouth-teeth-sharp.webp",
@@ -270,8 +270,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -297,7 +297,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Elemental_Spark_P7h54ZePFPHpYwvB.json b/src/packs/adversaries/adversary_Elemental_Spark_P7h54ZePFPHpYwvB.json
index 5b8fa7b2..5c25f63e 100644
--- a/src/packs/adversaries/adversary_Elemental_Spark_P7h54ZePFPHpYwvB.json
+++ b/src/packs/adversaries/adversary_Elemental_Spark_P7h54ZePFPHpYwvB.json
@@ -67,8 +67,8 @@
},
"range": "close",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -95,7 +95,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -125,9 +125,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
},
@@ -178,7 +181,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -204,8 +207,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -240,95 +242,33 @@
"description": "Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "S3dYxRclyhYINRi8": {
- "type": "attack",
- "_id": "S3dYxRclyhYINRi8",
+ "vXHZVb0Y7Hqu3uso": {
+ "type": "effect",
+ "_id": "vXHZVb0Y7Hqu3uso",
"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
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "5"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
- },
- "target": {
- "type": "any",
- "amount": null
+ "recovery": null
},
"effects": [],
- "roll": {
- "type": "attack",
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
+ "target": {
+ "type": "self",
+ "amount": null
},
"name": "Spend Fear",
+ "img": "icons/magic/unholy/orb-hands-pink.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Elite_Soldier_bfhVWMBUh61b9J6n.json b/src/packs/adversaries/adversary_Elite_Soldier_bfhVWMBUh61b9J6n.json
index df3e6d12..de5db0b2 100644
--- a/src/packs/adversaries/adversary_Elite_Soldier_bfhVWMBUh61b9J6n.json
+++ b/src/packs/adversaries/adversary_Elite_Soldier_bfhVWMBUh61b9J6n.json
@@ -98,8 +98,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -125,7 +125,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -276,8 +276,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -303,7 +303,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Failed_Experiment_ChwwVqowFw8hJQwT.json b/src/packs/adversaries/adversary_Failed_Experiment_ChwwVqowFw8hJQwT.json
index 70e56980..408d5102 100644
--- a/src/packs/adversaries/adversary_Failed_Experiment_ChwwVqowFw8hJQwT.json
+++ b/src/packs/adversaries/adversary_Failed_Experiment_ChwwVqowFw8hJQwT.json
@@ -79,8 +79,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/creatures/claws/claw-hooked-barbed.webp",
"range": "melee",
diff --git a/src/packs/adversaries/adversary_Fallen_Shock_Troop_OsLG2BjaEdTZUJU9.json b/src/packs/adversaries/adversary_Fallen_Shock_Troop_OsLG2BjaEdTZUJU9.json
index 484e161a..931e4c0a 100644
--- a/src/packs/adversaries/adversary_Fallen_Shock_Troop_OsLG2BjaEdTZUJU9.json
+++ b/src/packs/adversaries/adversary_Fallen_Shock_Troop_OsLG2BjaEdTZUJU9.json
@@ -67,8 +67,8 @@
"img": "icons/weapons/axes/axe-battle-skull-black.webp",
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -95,7 +95,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -125,9 +125,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
},
@@ -178,7 +181,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -204,8 +207,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -254,8 +256,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -280,7 +282,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -318,95 +320,33 @@
"description": "Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "G0DVft7h55pBnwJA": {
- "type": "attack",
- "_id": "G0DVft7h55pBnwJA",
+ "QHNRSEQmqOcaoXq4": {
+ "type": "effect",
+ "_id": "QHNRSEQmqOcaoXq4",
"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
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "12"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
- },
- "target": {
- "type": "any",
- "amount": null
+ "recovery": null
},
"effects": [],
- "roll": {
- "type": "attack",
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
+ "target": {
+ "type": "self",
+ "amount": null
},
"name": "Spend Fear",
+ "img": "icons/magic/unholy/orb-hands-pink.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Fallen_Sorcerer_PELRry1vqjBzSAlr.json b/src/packs/adversaries/adversary_Fallen_Sorcerer_PELRry1vqjBzSAlr.json
index 975cf6aa..fc064958 100644
--- a/src/packs/adversaries/adversary_Fallen_Sorcerer_PELRry1vqjBzSAlr.json
+++ b/src/packs/adversaries/adversary_Fallen_Sorcerer_PELRry1vqjBzSAlr.json
@@ -80,8 +80,8 @@
},
"range": "far",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/weapons/staves/staff-animal-skull-bull.webp",
"type": "attack",
@@ -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": {
@@ -249,8 +251,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -276,9 +278,8 @@
}
}
}
- },
- "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,
@@ -393,41 +385,30 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until youbreak free with a successful Instinct Roll.
"
}
},
+ "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 and Vulnerable until you break free, ending both conditions, with a successful Instinct Roll.
",
"tint": "#ffffff",
"statuses": [
- "vulnerable",
- "restrained"
+ "restrained",
+ "vulnerable"
],
"sort": 0,
"flags": {},
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!PELRry1vqjBzSAlr.ecp9o8t1dQFXGsse.Q99saHj6NOY2PSXf"
}
],
@@ -473,14 +454,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": [],
@@ -490,8 +471,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -516,9 +497,8 @@
}
}
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -532,16 +512,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",
@@ -601,19 +572,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "A target can break free from their regret with a successful Presence or Strength Roll.
"
}
},
+ "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 you break free from your regret with a successful Presence or Strength Roll. If you fail to break free, you lose a Hope.
",
"tint": "#ffffff",
@@ -625,16 +595,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!PELRry1vqjBzSAlr.gwSgBhkcekCGvXxz.pWDg0MADoohKu40O"
}
],
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..8f3865e9 100644
--- a/src/packs/adversaries/adversary_Fallen_Warlord__Realm_Breaker_hxZ0sgoFJubh5aj6.json
+++ b/src/packs/adversaries/adversary_Fallen_Warlord__Realm_Breaker_hxZ0sgoFJubh5aj6.json
@@ -67,8 +67,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -94,7 +94,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -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": [
{
@@ -335,7 +337,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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": {
@@ -414,8 +416,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -441,9 +443,8 @@
}
}
}
- },
- "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": [],
@@ -524,8 +516,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -551,9 +543,8 @@
}
}
}
- },
- "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": {
@@ -671,8 +653,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -697,9 +679,8 @@
}
}
}
- },
- "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..89d61c1c 100644
--- a/src/packs/adversaries/adversary_Fallen_Warlord__Undefeated_Champion_RXkZTwBRi4dJ3JE5.json
+++ b/src/packs/adversaries/adversary_Fallen_Warlord__Undefeated_Champion_RXkZTwBRi4dJ3JE5.json
@@ -67,8 +67,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -94,7 +94,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -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": [
{
@@ -336,7 +338,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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": {
@@ -408,8 +410,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -435,9 +437,8 @@
}
}
}
- },
- "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,
@@ -735,8 +697,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -762,7 +724,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -830,8 +792,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -856,9 +818,8 @@
}
}
}
- },
- "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_Beastmaster_8VZIgU12cB3cvlyH.json b/src/packs/adversaries/adversary_Giant_Beastmaster_8VZIgU12cB3cvlyH.json
index c6a482dd..6d09a490 100644
--- a/src/packs/adversaries/adversary_Giant_Beastmaster_8VZIgU12cB3cvlyH.json
+++ b/src/packs/adversaries/adversary_Giant_Beastmaster_8VZIgU12cB3cvlyH.json
@@ -81,8 +81,8 @@
},
"range": "far",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -269,8 +269,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -294,7 +294,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -352,19 +352,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until you break free with a successful Finesse or Strength Roll.
"
}
},
+ "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 are Restrained until you break free with a successful Finesse or Strength Roll.
",
"tint": "#ffffff",
@@ -376,16 +375,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!8VZIgU12cB3cvlyH.6ZrDjgnWufJohkp1.vb1sZCOLwDNLsr3j"
}
],
diff --git a/src/packs/adversaries/adversary_Giant_Brawler_YnObCleGjPT7yqEc.json b/src/packs/adversaries/adversary_Giant_Brawler_YnObCleGjPT7yqEc.json
index acb9c219..4f76b706 100644
--- a/src/packs/adversaries/adversary_Giant_Brawler_YnObCleGjPT7yqEc.json
+++ b/src/packs/adversaries/adversary_Giant_Brawler_YnObCleGjPT7yqEc.json
@@ -81,8 +81,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": {
@@ -249,8 +251,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -276,7 +278,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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,
@@ -358,8 +351,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -385,7 +378,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -459,8 +452,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -486,7 +479,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Giant_Eagle_OMQ0v6PE8s1mSU0K.json b/src/packs/adversaries/adversary_Giant_Eagle_OMQ0v6PE8s1mSU0K.json
index a8a33586..b0ba4170 100644
--- a/src/packs/adversaries/adversary_Giant_Eagle_OMQ0v6PE8s1mSU0K.json
+++ b/src/packs/adversaries/adversary_Giant_Eagle_OMQ0v6PE8s1mSU0K.json
@@ -98,8 +98,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -125,7 +125,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -345,8 +345,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -372,7 +372,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -430,18 +430,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "act"
}
},
+ "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 the next time you act.
",
"tint": "#ffffff",
@@ -453,16 +453,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!OMQ0v6PE8s1mSU0K.MabIQE1Kjn60j08J.m6qqQZxukDPVcGdQ"
}
],
@@ -499,8 +489,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -526,7 +516,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -643,8 +633,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -670,7 +660,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Giant_Mosquitoes_IIWV4ysJPFPnTP7W.json b/src/packs/adversaries/adversary_Giant_Mosquitoes_IIWV4ysJPFPnTP7W.json
index a74cb88d..fbb30d40 100644
--- a/src/packs/adversaries/adversary_Giant_Mosquitoes_IIWV4ysJPFPnTP7W.json
+++ b/src/packs/adversaries/adversary_Giant_Mosquitoes_IIWV4ysJPFPnTP7W.json
@@ -74,8 +74,8 @@
"motivesAndTactics": "Fly away, harass, steal blood",
"attack": {
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
"resultBased": false,
"base": false
}
- }
+ ]
},
"name": "Proboscis",
"img": "icons/skills/wounds/blood-cells-vessel-red.webp",
diff --git a/src/packs/adversaries/adversary_Giant_Rat_4PfLnaCrOcMdb4dK.json b/src/packs/adversaries/adversary_Giant_Rat_4PfLnaCrOcMdb4dK.json
index 746806d9..d1df6b57 100644
--- a/src/packs/adversaries/adversary_Giant_Rat_4PfLnaCrOcMdb4dK.json
+++ b/src/packs/adversaries/adversary_Giant_Rat_4PfLnaCrOcMdb4dK.json
@@ -72,8 +72,8 @@
"name": "Claws",
"img": "icons/creatures/claws/claw-straight-brown.webp",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -100,7 +100,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -131,9 +131,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
},
@@ -184,7 +187,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -210,8 +213,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -270,38 +272,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "1"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "groupAttack": "close"
+ "parts": [],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -328,7 +300,7 @@
"difficulty": null,
"damageMod": "none"
},
- "name": "Spend Fear",
+ "name": "Attack",
"img": "icons/creatures/abilities/tail-strike-bone-orange.webp",
"range": ""
}
diff --git a/src/packs/adversaries/adversary_Giant_Recruit_5s8wSvpyC5rxY5aD.json b/src/packs/adversaries/adversary_Giant_Recruit_5s8wSvpyC5rxY5aD.json
index 6611496f..adcdf015 100644
--- a/src/packs/adversaries/adversary_Giant_Recruit_5s8wSvpyC5rxY5aD.json
+++ b/src/packs/adversaries/adversary_Giant_Recruit_5s8wSvpyC5rxY5aD.json
@@ -62,8 +62,8 @@
"name": "Warhammer",
"img": "icons/weapons/hammers/hammer-double-stone-worn.webp",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -90,7 +90,7 @@
},
"base": false
}
- }
+ ]
},
"range": "veryClose",
"roll": {
@@ -125,9 +125,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
},
@@ -178,7 +181,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -204,8 +207,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -240,95 +242,35 @@
"description": "Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "wez1xgy9vScux9wi": {
- "type": "attack",
- "_id": "wez1xgy9vScux9wi",
+ "DjbPQowW1OdBD9Zn": {
+ "type": "effect",
+ "_id": "DjbPQowW1OdBD9Zn",
"systemPath": "actions",
- "baseAction": false,
"description": "",
"chatDisplay": true,
- "originItem": {
- "type": "itemCollection"
- },
"actionType": "action",
- "triggers": [],
"cost": [
{
- "consumeOnSuccess": false,
"scalable": false,
"key": "fear",
"value": 1,
- "itemId": null,
- "step": null
+ "keyIsID": false,
+ "step": null,
+ "consumeOnSuccess": false
}
],
"uses": {
"value": null,
"max": "",
- "recovery": null,
- "consumeOnSuccess": false
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "5"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
- },
- "target": {
- "type": "any",
- "amount": null
+ "recovery": null
},
"effects": [],
- "roll": {
- "type": "attack",
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
+ "target": {
+ "type": "self",
+ "amount": null
},
"name": "Spend Fear",
+ "img": "icons/creatures/abilities/tail-strike-bone-orange.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Giant_Scorpion_fmfntuJ8mHRCAktP.json b/src/packs/adversaries/adversary_Giant_Scorpion_fmfntuJ8mHRCAktP.json
index 03a0272d..99b5ed46 100644
--- a/src/packs/adversaries/adversary_Giant_Scorpion_fmfntuJ8mHRCAktP.json
+++ b/src/packs/adversaries/adversary_Giant_Scorpion_fmfntuJ8mHRCAktP.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -253,8 +253,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -280,7 +280,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -354,8 +354,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -381,7 +381,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -438,18 +438,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "shortRest"
}
},
+ "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 are Poisoned until your next rest or until you succeed on a Knowledge Roll (16). While Poisoned, you must roll a d6 before you make an action roll. On a result of 4 or lower, you must mark a Stress.
[[/dr trait=knowledge difficulty=16]]
",
"tint": "#ffffff",
@@ -459,16 +459,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!fmfntuJ8mHRCAktP.lANiDkxxth2sGacT.oILkLJlGNZl7KI1R"
}
],
@@ -508,8 +498,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -535,7 +525,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json b/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json
index f290875d..f02a1c52 100644
--- a/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json
+++ b/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json
@@ -75,8 +75,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": [
{
@@ -238,8 +240,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "armor": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -264,7 +266,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -324,8 +326,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -349,9 +351,8 @@
}
}
}
- },
- "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": [],
@@ -467,8 +459,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -494,9 +486,8 @@
}
}
}
- },
- "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",
@@ -550,7 +532,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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_Gorgon_8mJYMpbLTb8qIOrr.json b/src/packs/adversaries/adversary_Gorgon_8mJYMpbLTb8qIOrr.json
index 1fcfcce4..deeafa37 100644
--- a/src/packs/adversaries/adversary_Gorgon_8mJYMpbLTb8qIOrr.json
+++ b/src/packs/adversaries/adversary_Gorgon_8mJYMpbLTb8qIOrr.json
@@ -80,8 +80,8 @@
},
"range": "far",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/weapons/bows/shortbow-recurve-yellow.webp",
"type": "attack",
@@ -335,25 +335,25 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.rules.conditionImmunities.hidden",
- "value": 1,
- "priority": null,
- "type": "override"
- }
- ],
- "duration": {
- "type": "scene"
}
},
+ "changes": [
+ {
+ "key": "system.rules.conditionImmunities.hidden",
+ "mode": 5,
+ "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 Glow until the end of the scene and canβt become Hidden. Attack rolls made against you have advantage.
",
"tint": "#ffffff",
@@ -363,16 +363,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!8mJYMpbLTb8qIOrr.NepVGKOo1lHYjA1F.bYBrgiSwHwYfQyjn"
}
],
@@ -409,8 +399,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -436,7 +426,7 @@
}
}
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -461,7 +451,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -541,7 +531,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -652,8 +642,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -679,7 +669,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Greater_Earth_Elemental_dsfB3YhoL5SudvS2.json b/src/packs/adversaries/adversary_Greater_Earth_Elemental_dsfB3YhoL5SudvS2.json
index e59d2683..a20d80e6 100644
--- a/src/packs/adversaries/adversary_Greater_Earth_Elemental_dsfB3YhoL5SudvS2.json
+++ b/src/packs/adversaries/adversary_Greater_Earth_Elemental_dsfB3YhoL5SudvS2.json
@@ -75,8 +75,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": [
{
@@ -266,8 +268,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "armor": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -292,7 +294,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -420,8 +422,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -447,9 +449,8 @@
}
}
}
- },
- "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,
@@ -515,19 +507,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until your next roll with Hope.
"
}
},
+ "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",
@@ -539,16 +530,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!dsfB3YhoL5SudvS2.q45DiEFlXqcXZ5hv.38MUzfbH64EMLVse"
}
],
@@ -586,8 +567,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -613,7 +594,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Greater_Water_Elemental_xIICT6tEdnA7dKDV.json b/src/packs/adversaries/adversary_Greater_Water_Elemental_xIICT6tEdnA7dKDV.json
index db73a536..be037b10 100644
--- a/src/packs/adversaries/adversary_Greater_Water_Elemental_xIICT6tEdnA7dKDV.json
+++ b/src/packs/adversaries/adversary_Greater_Water_Elemental_xIICT6tEdnA7dKDV.json
@@ -75,8 +75,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": [
{
@@ -243,8 +245,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -270,7 +272,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -399,9 +401,8 @@
"recovery": null
},
"damage": {
- "parts": {},
- "includeBase": false,
- "groupAttack": ""
+ "parts": [],
+ "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,
@@ -467,41 +459,30 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "You can break free with a successful Strength or Instinct Roll.
"
}
},
+ "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 are Restrained and Vulnerable as you are drowning. You can break free, ending both conditions, with a successful Strength or Instinct Roll.
",
"tint": "#ffffff",
"statuses": [
- "vulnerable",
- "restrained"
+ "restrained",
+ "vulnerable"
],
"sort": 0,
"flags": {},
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!xIICT6tEdnA7dKDV.bcwFQeuU6ZfIGjau.X8NF2OB23mSpDvlx"
}
],
diff --git a/src/packs/adversaries/adversary_Green_Ooze_SHXedd9zZPVfUgUa.json b/src/packs/adversaries/adversary_Green_Ooze_SHXedd9zZPVfUgUa.json
index a3a76d7a..b03b5495 100644
--- a/src/packs/adversaries/adversary_Green_Ooze_SHXedd9zZPVfUgUa.json
+++ b/src/packs/adversaries/adversary_Green_Ooze_SHXedd9zZPVfUgUa.json
@@ -79,8 +79,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/creatures/slimes/slime-movement-dripping-pseudopods-green.webp",
"type": "attack",
@@ -277,8 +277,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "armor": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -303,7 +303,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -356,8 +356,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -383,7 +383,7 @@
}
}
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -408,7 +408,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -465,19 +465,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "If the Green Ooze takes Severe damage, the target is freed.
"
}
},
+ "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 must mark an additional Stress when you make an action roll. If the Ooze takes Severe damage, you are freed.
",
"tint": "#ffffff",
@@ -487,16 +486,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!SHXedd9zZPVfUgUa.Sm9Sk4mSvcq6PkmR.yk5kR5OVLCgDWfgY"
}
],
diff --git a/src/packs/adversaries/adversary_Hallowed_Archer_kabueAo6BALApWqp.json b/src/packs/adversaries/adversary_Hallowed_Archer_kabueAo6BALApWqp.json
index eb7eafc1..8cce1b94 100644
--- a/src/packs/adversaries/adversary_Hallowed_Archer_kabueAo6BALApWqp.json
+++ b/src/packs/adversaries/adversary_Hallowed_Archer_kabueAo6BALApWqp.json
@@ -75,8 +75,8 @@
"name": "Sanctified Longbow",
"img": "icons/weapons/bows/shortbow-recurve-yellow.webp",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -314,8 +314,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -341,7 +341,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Hallowed_Soldier_VENwg7xEFcYObjmT.json b/src/packs/adversaries/adversary_Hallowed_Soldier_VENwg7xEFcYObjmT.json
index 3e1ab854..95a2ecd0 100644
--- a/src/packs/adversaries/adversary_Hallowed_Soldier_VENwg7xEFcYObjmT.json
+++ b/src/packs/adversaries/adversary_Hallowed_Soldier_VENwg7xEFcYObjmT.json
@@ -65,8 +65,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -93,7 +93,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/skills/melee/sword-shield-stylized-white.webp",
"type": "attack",
@@ -125,9 +125,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
},
@@ -178,7 +181,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -204,8 +207,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -295,95 +297,33 @@
"description": "Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "irZGPKPpGLA6sP2y": {
- "type": "attack",
- "_id": "irZGPKPpGLA6sP2y",
+ "eo7J0v1B5zPHul1M": {
+ "type": "effect",
+ "_id": "eo7J0v1B5zPHul1M",
"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
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "10"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
- },
- "target": {
- "type": "any",
- "amount": null
+ "recovery": null
},
"effects": [],
- "roll": {
- "type": "attack",
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
+ "target": {
+ "type": "self",
+ "amount": null
},
"name": "Spend Fear",
+ "img": "icons/creatures/abilities/tail-strike-bone-orange.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Harrier_uRtghKE9mHlII4rs.json b/src/packs/adversaries/adversary_Harrier_uRtghKE9mHlII4rs.json
index 84034a7e..89d82a0b 100644
--- a/src/packs/adversaries/adversary_Harrier_uRtghKE9mHlII4rs.json
+++ b/src/packs/adversaries/adversary_Harrier_uRtghKE9mHlII4rs.json
@@ -79,8 +79,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/weapons/polearms/spear-hooked-rounded.webp",
"type": "attack",
@@ -278,8 +278,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -305,7 +305,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json b/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json
index 9a6cc509..75afed49 100644
--- a/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json
+++ b/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json
@@ -85,8 +85,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -112,7 +112,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -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": {
@@ -256,9 +258,8 @@
"recovery": null
},
"damage": {
- "parts": {},
- "includeBase": false,
- "groupAttack": ""
+ "parts": [],
+ "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,
@@ -415,8 +398,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -442,7 +425,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Head_Vampire_i2UNbRvgyoSs07M6.json b/src/packs/adversaries/adversary_Head_Vampire_i2UNbRvgyoSs07M6.json
index b17c85bc..d5891359 100644
--- a/src/packs/adversaries/adversary_Head_Vampire_i2UNbRvgyoSs07M6.json
+++ b/src/packs/adversaries/adversary_Head_Vampire_i2UNbRvgyoSs07M6.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -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": {
@@ -242,8 +244,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -268,9 +270,8 @@
}
}
}
- },
- "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,
@@ -330,7 +322,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -402,8 +394,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -428,7 +420,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -550,8 +542,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -576,9 +568,8 @@
}
}
}
- },
- "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_High_Seraph_r1mbfSSwKWdcFdAU.json b/src/packs/adversaries/adversary_High_Seraph_r1mbfSSwKWdcFdAU.json
index 3dc96fd5..0a952540 100644
--- a/src/packs/adversaries/adversary_High_Seraph_r1mbfSSwKWdcFdAU.json
+++ b/src/packs/adversaries/adversary_High_Seraph_r1mbfSSwKWdcFdAU.json
@@ -80,8 +80,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/skills/melee/strike-blade-hooked-orange-blue.webp",
"type": "attack",
@@ -391,21 +391,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until the High Seraph is defeated.Β The High Seraph can only mark one target at a time.
"
}
},
+ "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": "While Guilty, you donβt gain Hope on a result with Hope.
",
+ "description": "While Guilty, you donβt gain Hope on a result with Hope.
",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -413,16 +412,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!r1mbfSSwKWdcFdAU.FilEB21L5q9XxKE1.O8G0oOf9f3qzNOAT"
}
],
@@ -466,8 +455,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -493,7 +482,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Huge_Green_Ooze_6hbqmxDXFOzZJDk4.json b/src/packs/adversaries/adversary_Huge_Green_Ooze_6hbqmxDXFOzZJDk4.json
index 1615dec8..3bb8ae96 100644
--- a/src/packs/adversaries/adversary_Huge_Green_Ooze_6hbqmxDXFOzZJDk4.json
+++ b/src/packs/adversaries/adversary_Huge_Green_Ooze_6hbqmxDXFOzZJDk4.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -274,8 +274,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "armor": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -300,7 +300,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -352,8 +352,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -378,7 +378,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -436,19 +436,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "When the Huge Green Ooze takes Severe damage, all Enveloped targets are freed and the condition is cleared.
"
}
},
+ "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": "While Enveloped, you must mark an additional Stress every time you make an action roll. When the Ooze takes Severe damage, all Enveloped targets are freed and the condition is cleared.
",
"tint": "#ffffff",
@@ -458,16 +457,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!6hbqmxDXFOzZJDk4.pfXYuH7rtsyVjSXh.EwZ8owroJxFpg81e"
}
],
diff --git a/src/packs/adversaries/adversary_Hydra_MI126iMOOobQ1Obn.json b/src/packs/adversaries/adversary_Hydra_MI126iMOOobQ1Obn.json
index 9c53487a..4c6fd61f 100644
--- a/src/packs/adversaries/adversary_Hydra_MI126iMOOobQ1Obn.json
+++ b/src/packs/adversaries/adversary_Hydra_MI126iMOOobQ1Obn.json
@@ -75,8 +75,8 @@
},
"range": "close",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": [
{
@@ -298,8 +300,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -324,7 +326,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -392,8 +394,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -418,9 +420,8 @@
}
}
}
- },
- "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,
@@ -515,26 +507,25 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.resistance.magical.immunity",
- "value": 1,
- "priority": null,
- "type": "override"
- }
- ],
- "duration": {
- "type": "temporary",
- "description": "Until the next roll with Fear.
"
}
},
+ "changes": [
+ {
+ "key": "system.resistance.magical.immunity",
+ "mode": 5,
+ "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": "While Dazed, they canβt use their Regeneration action but are immune to magic damage.
",
"tint": "#ffffff",
@@ -544,16 +535,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!MI126iMOOobQ1Obn.sJzjcRBgYRp5f53E.iBJ3YhEkVsGKEIVk"
}
],
diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Bandit_5Lh1T0zaT8Pkr2U2.json b/src/packs/adversaries/adversary_Jagged_Knife_Bandit_5Lh1T0zaT8Pkr2U2.json
index bfbff494..ae359eaf 100644
--- a/src/packs/adversaries/adversary_Jagged_Knife_Bandit_5Lh1T0zaT8Pkr2U2.json
+++ b/src/packs/adversaries/adversary_Jagged_Knife_Bandit_5Lh1T0zaT8Pkr2U2.json
@@ -79,8 +79,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/weapons/daggers/dagger-twin-green.webp",
"type": "attack",
@@ -272,8 +272,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -299,7 +299,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Hexer_MbBPIOxaxXYNApXz.json b/src/packs/adversaries/adversary_Jagged_Knife_Hexer_MbBPIOxaxXYNApXz.json
index c6b2554e..6ca9749c 100644
--- a/src/packs/adversaries/adversary_Jagged_Knife_Hexer_MbBPIOxaxXYNApXz.json
+++ b/src/packs/adversaries/adversary_Jagged_Knife_Hexer_MbBPIOxaxXYNApXz.json
@@ -80,8 +80,8 @@
},
"img": "icons/weapons/staves/staff-blue-jewel.webp",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -278,18 +278,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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": "Whenever you roll with Hope, the hexer can mark a stress to make the roll be with Fear instead.
",
"tint": "#ffffff",
@@ -299,16 +299,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!MbBPIOxaxXYNApXz.Bl8L0RCGOgVUzuXo.ihy3kvEGSOEKdNfT"
}
],
@@ -347,8 +337,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -374,7 +364,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Kneebreaker_CBKixLH3yhivZZuL.json b/src/packs/adversaries/adversary_Jagged_Knife_Kneebreaker_CBKixLH3yhivZZuL.json
index 3ce6a165..c38260e9 100644
--- a/src/packs/adversaries/adversary_Jagged_Knife_Kneebreaker_CBKixLH3yhivZZuL.json
+++ b/src/packs/adversaries/adversary_Jagged_Knife_Kneebreaker_CBKixLH3yhivZZuL.json
@@ -85,8 +85,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -112,7 +112,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -277,7 +277,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -334,26 +334,25 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.rules.attack.damage.hpDamageTakenMultiplier",
- "value": 2,
- "priority": null,
- "type": "override"
- }
- ],
- "duration": {
- "type": "temporary",
- "description": "The target can break free, clearing both conditions, with a successful Strength Roll or is freed automatically if the Jagged Knife Kneebreaker takes Major or greater damage.
"
}
},
+ "changes": [
+ {
+ "key": "system.rules.attack.damage.hpDamageTakenMultiplier",
+ "mode": 5,
+ "value": "2",
+ "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",
@@ -366,16 +365,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!CBKixLH3yhivZZuL.Sa4Nt0eoDjirBKGf.d7sB1Qa1kJMnglqu"
}
],
diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Lackey_C0OMQqV7pN6t7ouR.json b/src/packs/adversaries/adversary_Jagged_Knife_Lackey_C0OMQqV7pN6t7ouR.json
index 076318c6..a52ec1c9 100644
--- a/src/packs/adversaries/adversary_Jagged_Knife_Lackey_C0OMQqV7pN6t7ouR.json
+++ b/src/packs/adversaries/adversary_Jagged_Knife_Lackey_C0OMQqV7pN6t7ouR.json
@@ -64,8 +64,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -92,7 +92,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -131,9 +131,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
},
@@ -184,7 +187,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -210,8 +213,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -249,95 +251,33 @@
"description": "Spend a Fear to choose a target and spotlight all @Lookup[@name] within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "ferZO3BuiP9zU46m": {
- "type": "attack",
- "_id": "ferZO3BuiP9zU46m",
+ "aoQDb2m32NDxE6ZP": {
+ "type": "effect",
+ "_id": "aoQDb2m32NDxE6ZP",
"systemPath": "actions",
- "baseAction": false,
"description": "",
"chatDisplay": true,
- "originItem": {
- "type": "itemCollection"
- },
"actionType": "action",
- "triggers": [],
"cost": [
{
- "consumeOnSuccess": false,
"scalable": false,
"key": "fear",
"value": 1,
- "itemId": null,
"step": null
}
],
"uses": {
"value": null,
"max": "",
- "recovery": null,
- "consumeOnSuccess": false
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "2"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
+ "recovery": null
},
+ "effects": [],
"target": {
"type": "any",
"amount": null
},
- "effects": [],
- "roll": {
- "type": "attack",
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
- },
"name": "Spend Fear",
+ "img": "icons/creatures/abilities/tail-strike-bone-orange.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json b/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json
index 771c6692..c139d76f 100644
--- a/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json
+++ b/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json
@@ -80,8 +80,8 @@
},
"range": "close",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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,
@@ -371,8 +364,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -398,7 +391,7 @@
}
}
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -423,7 +416,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -498,8 +491,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -525,7 +518,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Shadow_XF4tYTq9nPJAy2ox.json b/src/packs/adversaries/adversary_Jagged_Knife_Shadow_XF4tYTq9nPJAy2ox.json
index 81b95d8b..bca035c1 100644
--- a/src/packs/adversaries/adversary_Jagged_Knife_Shadow_XF4tYTq9nPJAy2ox.json
+++ b/src/packs/adversaries/adversary_Jagged_Knife_Shadow_XF4tYTq9nPJAy2ox.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -246,8 +246,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -273,7 +273,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Sniper_1zuyof1XuIfi3aMG.json b/src/packs/adversaries/adversary_Jagged_Knife_Sniper_1zuyof1XuIfi3aMG.json
index 62253d69..6fd02cb5 100644
--- a/src/packs/adversaries/adversary_Jagged_Knife_Sniper_1zuyof1XuIfi3aMG.json
+++ b/src/packs/adversaries/adversary_Jagged_Knife_Sniper_1zuyof1XuIfi3aMG.json
@@ -81,8 +81,8 @@
},
"range": "far",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -246,8 +246,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -273,7 +273,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Juvenile_Flickerfly_MYXmTx2FHcIjdfYZ.json b/src/packs/adversaries/adversary_Juvenile_Flickerfly_MYXmTx2FHcIjdfYZ.json
index 24683a37..86d69c37 100644
--- a/src/packs/adversaries/adversary_Juvenile_Flickerfly_MYXmTx2FHcIjdfYZ.json
+++ b/src/packs/adversaries/adversary_Juvenile_Flickerfly_MYXmTx2FHcIjdfYZ.json
@@ -75,8 +75,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": [
{
@@ -294,7 +296,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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": {
@@ -415,9 +417,8 @@
"recovery": null
},
"damage": {
- "parts": {},
- "includeBase": false,
- "groupAttack": ""
+ "parts": [],
+ "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": {
@@ -498,8 +490,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -524,7 +516,7 @@
},
"type": []
},
- "hope": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -549,9 +541,8 @@
},
"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_Knight_of_the_Realm_7ai2opemrclQe3VF.json b/src/packs/adversaries/adversary_Knight_of_the_Realm_7ai2opemrclQe3VF.json
index 01435922..71cb7a8d 100644
--- a/src/packs/adversaries/adversary_Knight_of_the_Realm_7ai2opemrclQe3VF.json
+++ b/src/packs/adversaries/adversary_Knight_of_the_Realm_7ai2opemrclQe3VF.json
@@ -90,8 +90,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -117,7 +117,7 @@
},
"base": false
}
- }
+ ]
},
"range": "melee",
"type": "attack",
@@ -392,8 +392,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -417,7 +417,7 @@
}
}
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -442,7 +442,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Kraken_4nqv3ZwJGjnmic8j.json b/src/packs/adversaries/adversary_Kraken_4nqv3ZwJGjnmic8j.json
index 4bcdc15d..3b84774e 100644
--- a/src/packs/adversaries/adversary_Kraken_4nqv3ZwJGjnmic8j.json
+++ b/src/packs/adversaries/adversary_Kraken_4nqv3ZwJGjnmic8j.json
@@ -80,8 +80,8 @@
},
"range": "close",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/creatures/tentacles/tentacles-octopus-black-pink.webp",
"type": "attack",
@@ -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": [
{
@@ -325,7 +327,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -383,41 +385,30 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until you break free with a successful Strength Roll or the Kraken takes Major or greater damage.
"
}
},
+ "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 are Restrained and Vulnerable until you break free with a successful Strength Roll or the Kraken takes Major or greater damage. While Restrained and Vulnerable in this way, you must mark a Stress when you make an action roll.
",
"tint": "#ffffff",
"statuses": [
- "vulnerable",
- "restrained"
+ "restrained",
+ "vulnerable"
],
"sort": 0,
"flags": {},
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!4nqv3ZwJGjnmic8j.vz2BWhispgR7mSWF.Xes6ZIE01CCN67KF"
}
],
@@ -437,7 +428,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": {
@@ -454,8 +445,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -481,9 +472,8 @@
}
}
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -512,16 +502,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,
@@ -565,8 +546,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -592,7 +573,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Masked_Thief_niBpVU7yeo5ccskE.json b/src/packs/adversaries/adversary_Masked_Thief_niBpVU7yeo5ccskE.json
index 77d48be3..528df6a9 100644
--- a/src/packs/adversaries/adversary_Masked_Thief_niBpVU7yeo5ccskE.json
+++ b/src/packs/adversaries/adversary_Masked_Thief_niBpVU7yeo5ccskE.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"range": "melee",
"type": "attack",
@@ -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": [
{
@@ -242,8 +244,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -267,7 +269,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -340,7 +342,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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,
@@ -407,41 +400,30 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until you break free with a successful Finesse or Strength Roll (13).
"
}
},
+ "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 are Restrained and Vulnerable until you break free, ending both conditions, with a successful Finesse or Strength Roll (13).
[[/dr trait=finesse difficulty=13]]
[[/dr trait=strength difficulty=13]]
",
"tint": "#ffffff",
"statuses": [
- "vulnerable",
- "restrained"
+ "restrained",
+ "vulnerable"
],
"sort": 0,
"flags": {},
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!niBpVU7yeo5ccskE.tP2DD751nOLxFVps.zMut1PRphlwE0xOa"
}
],
diff --git a/src/packs/adversaries/adversary_Master_Assassin_dNta0cUzr96xcFhf.json b/src/packs/adversaries/adversary_Master_Assassin_dNta0cUzr96xcFhf.json
index 2131023a..3cec6e0b 100644
--- a/src/packs/adversaries/adversary_Master_Assassin_dNta0cUzr96xcFhf.json
+++ b/src/packs/adversaries/adversary_Master_Assassin_dNta0cUzr96xcFhf.json
@@ -86,8 +86,8 @@
},
"range": "close",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -113,7 +113,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -254,8 +254,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false,
@@ -283,7 +283,7 @@
}
}
}
- },
+ ],
"includeBase": false,
"direct": true
},
@@ -469,8 +469,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -496,7 +496,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Merchant_Al3w2CgjfdT3p9ma.json b/src/packs/adversaries/adversary_Merchant_Al3w2CgjfdT3p9ma.json
index 482ba727..880b1a6e 100644
--- a/src/packs/adversaries/adversary_Merchant_Al3w2CgjfdT3p9ma.json
+++ b/src/packs/adversaries/adversary_Merchant_Al3w2CgjfdT3p9ma.json
@@ -79,8 +79,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/weapons/clubs/club-baton-blue.webp",
"type": "attack",
@@ -272,8 +272,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -298,7 +298,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Merchant_Baron_Vy02IhGhkJLuezu4.json b/src/packs/adversaries/adversary_Merchant_Baron_Vy02IhGhkJLuezu4.json
index 7ace67ac..15c0aeb9 100644
--- a/src/packs/adversaries/adversary_Merchant_Baron_Vy02IhGhkJLuezu4.json
+++ b/src/packs/adversaries/adversary_Merchant_Baron_Vy02IhGhkJLuezu4.json
@@ -85,8 +85,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -112,7 +112,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -249,8 +249,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -275,7 +275,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json b/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json
index 9ddfb4f3..b1732c71 100644
--- a/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json
+++ b/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json
@@ -74,8 +74,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- }
+ ]
},
"range": "close",
"type": "attack",
@@ -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": {
@@ -315,8 +317,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -341,9 +343,8 @@
}
}
}
- },
- "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,
@@ -388,18 +380,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "shortRest"
}
},
+ "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 rest or you clear a HP.
",
"tint": "#ffffff",
@@ -411,16 +403,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!sRn4bqerfARvhgSV.oAxhAawgcK7DAdpa.KIyV2eXDmmymXY5y"
}
],
@@ -442,7 +424,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": {
@@ -466,8 +448,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -493,9 +475,8 @@
}
}
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -504,16 +485,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,
@@ -585,8 +557,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -612,7 +584,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json b/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json
index 626b1597..0fceeba1 100644
--- a/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json
+++ b/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json
@@ -74,8 +74,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -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": {
@@ -297,8 +299,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -323,9 +325,8 @@
},
"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": {
@@ -393,8 +385,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -420,9 +412,8 @@
}
}
}
- },
- "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,
@@ -562,8 +544,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -589,7 +571,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json b/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json
index 859c207c..2980a141 100644
--- a/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json
+++ b/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json
@@ -75,8 +75,8 @@
},
"range": "far",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": {
@@ -295,8 +297,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -322,7 +324,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": [
@@ -412,8 +405,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -439,9 +432,8 @@
}
}
}
- },
- "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,24 +504,15 @@
"description": "",
"chatDisplay": true,
"actionType": "action",
- "cost": [
- {
- "scalable": false,
- "key": "resource",
- "value": 1,
- "itemId": "3u6wvKPJAS2v5nWV",
- "step": null,
- "consumeOnSuccess": false
- }
- ],
+ "cost": [],
"uses": {
"value": null,
"max": "",
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -565,9 +537,8 @@
},
"type": []
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "self",
@@ -600,24 +571,15 @@
"description": "",
"chatDisplay": true,
"actionType": "action",
- "cost": [
- {
- "scalable": false,
- "key": "resource",
- "value": 1,
- "itemId": "3u6wvKPJAS2v5nWV",
- "step": null,
- "consumeOnSuccess": false
- }
- ],
+ "cost": [],
"uses": {
"value": null,
"max": "",
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -642,9 +604,8 @@
},
"type": []
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "self",
@@ -713,8 +674,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -740,7 +701,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Minor_Treant_G62k4oSkhkoXEs2D.json b/src/packs/adversaries/adversary_Minor_Treant_G62k4oSkhkoXEs2D.json
index 163556e9..f05ba5fc 100644
--- a/src/packs/adversaries/adversary_Minor_Treant_G62k4oSkhkoXEs2D.json
+++ b/src/packs/adversaries/adversary_Minor_Treant_G62k4oSkhkoXEs2D.json
@@ -66,8 +66,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -94,7 +94,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -125,9 +125,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
},
@@ -178,7 +181,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -204,8 +207,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -243,95 +245,33 @@
"description": "Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "xFlhxnQWmVvDqQ55": {
- "type": "attack",
- "_id": "xFlhxnQWmVvDqQ55",
+ "xTMNAHcoErKuR6TZ": {
+ "type": "effect",
+ "_id": "xTMNAHcoErKuR6TZ",
"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
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "4"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
- },
- "target": {
- "type": "any",
- "amount": null
+ "recovery": null
},
"effects": [],
- "roll": {
- "type": "attack",
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
+ "target": {
+ "type": "self",
+ "amount": null
},
"name": "Spend Fear",
+ "img": "icons/creatures/abilities/tail-strike-bone-orange.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Minotaur_Wrecker_rM9qCIYeWg9I0B4l.json b/src/packs/adversaries/adversary_Minotaur_Wrecker_rM9qCIYeWg9I0B4l.json
index b4734967..85981374 100644
--- a/src/packs/adversaries/adversary_Minotaur_Wrecker_rM9qCIYeWg9I0B4l.json
+++ b/src/packs/adversaries/adversary_Minotaur_Wrecker_rM9qCIYeWg9I0B4l.json
@@ -74,8 +74,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/weapons/axes/axe-double.webp",
"type": "attack",
@@ -300,8 +300,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -327,7 +327,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -373,8 +373,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -401,7 +401,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -454,8 +454,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -479,7 +479,7 @@
}
}
}
- },
+ ],
"includeBase": false,
"direct": true
},
diff --git a/src/packs/adversaries/adversary_Monarch_yx0vK2yfNVZKWUUi.json b/src/packs/adversaries/adversary_Monarch_yx0vK2yfNVZKWUUi.json
index 8d5845a9..5320a0ed 100644
--- a/src/packs/adversaries/adversary_Monarch_yx0vK2yfNVZKWUUi.json
+++ b/src/packs/adversaries/adversary_Monarch_yx0vK2yfNVZKWUUi.json
@@ -85,8 +85,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -112,7 +112,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -381,8 +381,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false,
@@ -408,7 +408,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false,
"direct": false
},
diff --git a/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json b/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json
index 33677263..8bc7fe10 100644
--- a/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json
+++ b/src/packs/adversaries/adversary_Mortal_Hunter_mVV7a7KQAORoPMgZ.json
@@ -81,8 +81,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": {
@@ -242,8 +244,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -268,9 +270,8 @@
},
"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,
@@ -369,8 +361,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false,
@@ -398,7 +390,7 @@
}
}
}
- },
+ ],
"includeBase": false,
"direct": true
},
@@ -452,18 +444,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "scene"
}
},
+ "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 by the Hunter against a Deathlocked target deal direct damage.
",
"tint": "#ffffff",
@@ -473,16 +465,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!mVV7a7KQAORoPMgZ.r1T70u9n3bRfUTX5.YznseQP43jNrk07h"
}
],
@@ -526,7 +508,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -582,7 +564,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": {
@@ -599,8 +581,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -626,9 +608,8 @@
}
}
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -657,16 +638,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_Oak_Treant_XK78QUfY8c8Go8Uv.json b/src/packs/adversaries/adversary_Oak_Treant_XK78QUfY8c8Go8Uv.json
index c5feed37..3c110024 100644
--- a/src/packs/adversaries/adversary_Oak_Treant_XK78QUfY8c8Go8Uv.json
+++ b/src/packs/adversaries/adversary_Oak_Treant_XK78QUfY8c8Go8Uv.json
@@ -73,8 +73,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"multiplier": "flat",
"flatMultiplier": 3,
@@ -100,7 +100,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/skills/melee/blood-slash-foam-red.webp",
"type": "attack",
@@ -273,8 +273,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false,
@@ -302,7 +302,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -399,26 +399,25 @@
"type": "withinRange",
"target": "any",
"range": "self"
- },
- "changes": [
- {
- "key": "system.resistance.physical.resistance",
- "value": 1,
- "priority": null,
- "type": "add"
- }
- ],
- "duration": {
- "type": "temporary",
- "description": "Can end this effect instead of moving while they are spotlighted.
"
}
},
+ "changes": [
+ {
+ "key": "system.resistance.physical.resistance",
+ "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": "Mark a Stress to Root the Treant in place. The Treant is Restrained while Rooted and can end this effect instead of moving while they are spotlighted. While Rooted the Treant has resistance to physical damage.
",
"tint": "#ffffff",
@@ -428,16 +427,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!XK78QUfY8c8Go8Uv.sqkgw26P2KiQVtXT.3PY5KIG6d3dr3dty"
}
],
diff --git a/src/packs/adversaries/adversary_Oracle_of_Doom_befIqd5IYKg6eUz2.json b/src/packs/adversaries/adversary_Oracle_of_Doom_befIqd5IYKg6eUz2.json
index a9b865ae..66fa5ba1 100644
--- a/src/packs/adversaries/adversary_Oracle_of_Doom_befIqd5IYKg6eUz2.json
+++ b/src/packs/adversaries/adversary_Oracle_of_Doom_befIqd5IYKg6eUz2.json
@@ -80,8 +80,8 @@
},
"range": "far",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/magic/symbols/rune-sigil-rough-white-teal.webp",
"type": "attack",
@@ -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": {
@@ -242,8 +244,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -268,9 +270,8 @@
}
}
}
- },
- "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,
@@ -330,8 +322,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -356,7 +348,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -415,8 +407,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -442,7 +434,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -522,7 +514,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -628,8 +620,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -655,7 +647,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Outer_Realms_Abomination_A0SeeDzwjvqOsyof.json b/src/packs/adversaries/adversary_Outer_Realms_Abomination_A0SeeDzwjvqOsyof.json
index 3e5bacf3..5b565b8c 100644
--- a/src/packs/adversaries/adversary_Outer_Realms_Abomination_A0SeeDzwjvqOsyof.json
+++ b/src/packs/adversaries/adversary_Outer_Realms_Abomination_A0SeeDzwjvqOsyof.json
@@ -74,8 +74,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/creatures/tentacles/tentacle-earth-green.webp",
"type": "attack",
@@ -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": [
{
@@ -261,7 +263,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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": {
@@ -382,9 +384,8 @@
"recovery": null
},
"damage": {
- "parts": {},
- "includeBase": false,
- "groupAttack": ""
+ "parts": [],
+ "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,
@@ -450,20 +442,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "scene"
}
},
+ "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": "Unstuck from reality until the end of the scene. When you spend Hope or mark Armor Slots, HP, or Stress, you must double the amount spent or marked.
",
+ "description": "Unstuck from reality until the end of the scene. When you spend Hope or mark Armor Slots, HP, or Stress, you must double the amount spent or marked.
",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -471,16 +463,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!A0SeeDzwjvqOsyof.K3MQO1I42nmfM2F2.edEZER9ImWicMwRb"
}
],
@@ -517,7 +499,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Outer_Realms_Corrupter_ms6nuOl3NFkhPj1k.json b/src/packs/adversaries/adversary_Outer_Realms_Corrupter_ms6nuOl3NFkhPj1k.json
index 9edf3f04..83fbf4fa 100644
--- a/src/packs/adversaries/adversary_Outer_Realms_Corrupter_ms6nuOl3NFkhPj1k.json
+++ b/src/packs/adversaries/adversary_Outer_Realms_Corrupter_ms6nuOl3NFkhPj1k.json
@@ -75,8 +75,8 @@
},
"img": "icons/creatures/tentacles/tentacles-thing-green.webp",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": [
{
@@ -236,8 +238,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -262,7 +264,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -314,8 +316,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -340,9 +342,8 @@
}
}
}
- },
- "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_Outer_Realms_Thrall_moJhHgKqTKPS2WYS.json b/src/packs/adversaries/adversary_Outer_Realms_Thrall_moJhHgKqTKPS2WYS.json
index 0bb3a44c..5347bf49 100644
--- a/src/packs/adversaries/adversary_Outer_Realms_Thrall_moJhHgKqTKPS2WYS.json
+++ b/src/packs/adversaries/adversary_Outer_Realms_Thrall_moJhHgKqTKPS2WYS.json
@@ -60,8 +60,8 @@
},
"attack": {
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -88,7 +88,7 @@
},
"base": false
}
- }
+ ]
},
"name": "Claws and Teeth",
"roll": {
@@ -125,9 +125,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
},
@@ -178,7 +181,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -204,8 +207,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -240,95 +242,33 @@
"description": "Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "6VKv71tPUIGGIfkZ": {
- "type": "attack",
- "_id": "6VKv71tPUIGGIfkZ",
+ "tvQetauskZoHDR5y": {
+ "type": "effect",
+ "_id": "tvQetauskZoHDR5y",
"systemPath": "actions",
- "baseAction": false,
"description": "",
"chatDisplay": true,
- "originItem": {
- "type": "itemCollection"
- },
"actionType": "action",
- "triggers": [],
"cost": [
{
- "consumeOnSuccess": false,
"scalable": false,
"key": "fear",
"value": 1,
- "itemId": null,
"step": null
}
],
"uses": {
"value": null,
"max": "",
- "recovery": null,
- "consumeOnSuccess": false
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "11"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
- },
- "target": {
- "type": "any",
- "amount": null
+ "recovery": null
},
"effects": [],
- "roll": {
- "type": "attack",
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
+ "target": {
+ "type": "self",
+ "amount": null
},
"name": "Spend Fear",
+ "img": "icons/creatures/abilities/tail-strike-bone-orange.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json b/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json
index 8e82dcf7..b63e8cb7 100644
--- a/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json
+++ b/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json
@@ -85,8 +85,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -112,7 +112,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/commodities/biological/hand-clawed-blue.webp",
"type": "attack",
@@ -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": [
{
@@ -250,8 +252,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -279,7 +281,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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
@@ -395,8 +360,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -421,7 +386,7 @@
},
"type": []
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -446,7 +411,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -522,8 +487,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -548,9 +513,8 @@
},
"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..e3da56b6 100644
--- a/src/packs/adversaries/adversary_Perfected_Zombie_CP6iRfHdyFWniTHY.json
+++ b/src/packs/adversaries/adversary_Perfected_Zombie_CP6iRfHdyFWniTHY.json
@@ -75,8 +75,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": {
@@ -236,8 +238,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -262,9 +264,8 @@
}
}
}
- },
- "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": {
@@ -356,8 +348,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -383,9 +375,8 @@
}
}
}
- },
- "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,
@@ -451,19 +433,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "shortRest",
- "description": ""
}
},
+ "changes": [],
"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": "Vulnerable until your next rest.
",
"tint": "#ffffff",
@@ -475,16 +456,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!CP6iRfHdyFWniTHY.CKy2r6FguyTSO9Fm.Q5eeh0B6qaXFS1Ck"
}
],
diff --git a/src/packs/adversaries/adversary_Petty_Noble_wycLpvebWdUqRhpP.json b/src/packs/adversaries/adversary_Petty_Noble_wycLpvebWdUqRhpP.json
index bee77686..db284f40 100644
--- a/src/packs/adversaries/adversary_Petty_Noble_wycLpvebWdUqRhpP.json
+++ b/src/packs/adversaries/adversary_Petty_Noble_wycLpvebWdUqRhpP.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
diff --git a/src/packs/adversaries/adversary_Pirate_Captain_OROJbjsqagVh7ECV.json b/src/packs/adversaries/adversary_Pirate_Captain_OROJbjsqagVh7ECV.json
index 428a9607..5b00ec60 100644
--- a/src/packs/adversaries/adversary_Pirate_Captain_OROJbjsqagVh7ECV.json
+++ b/src/packs/adversaries/adversary_Pirate_Captain_OROJbjsqagVh7ECV.json
@@ -85,8 +85,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -112,7 +112,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -251,8 +251,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -277,7 +277,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -401,8 +401,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -426,7 +426,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -501,8 +501,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -528,7 +528,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Pirate_Raiders_5YgEajn0wa4i85kC.json b/src/packs/adversaries/adversary_Pirate_Raiders_5YgEajn0wa4i85kC.json
index 94137c2f..41f79b49 100644
--- a/src/packs/adversaries/adversary_Pirate_Raiders_5YgEajn0wa4i85kC.json
+++ b/src/packs/adversaries/adversary_Pirate_Raiders_5YgEajn0wa4i85kC.json
@@ -74,8 +74,8 @@
"description": "Seafaring scoundrels moving in a ravaging pack.
",
"attack": {
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
"resultBased": false,
"base": false
}
- }
+ ]
},
"name": "Cutlass",
"img": "icons/weapons/swords/scimitar-worn-blue.webp",
@@ -272,8 +272,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -298,7 +298,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Pirate_Tough_mhcVkVFrzIJ18FDm.json b/src/packs/adversaries/adversary_Pirate_Tough_mhcVkVFrzIJ18FDm.json
index 2817b191..69b59211 100644
--- a/src/packs/adversaries/adversary_Pirate_Tough_mhcVkVFrzIJ18FDm.json
+++ b/src/packs/adversaries/adversary_Pirate_Tough_mhcVkVFrzIJ18FDm.json
@@ -67,8 +67,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -94,7 +94,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -269,8 +269,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -295,7 +295,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -347,8 +347,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -374,7 +374,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Red_Ooze_9rVlbJVrDNn1x7PS.json b/src/packs/adversaries/adversary_Red_Ooze_9rVlbJVrDNn1x7PS.json
index f74da475..2c10ae3f 100644
--- a/src/packs/adversaries/adversary_Red_Ooze_9rVlbJVrDNn1x7PS.json
+++ b/src/packs/adversaries/adversary_Red_Ooze_9rVlbJVrDNn1x7PS.json
@@ -79,8 +79,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/creatures/slimes/slime-movement-dripping-pseudopods-green.webp",
"type": "attack",
@@ -272,8 +272,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -299,7 +299,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -350,8 +350,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -377,7 +377,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -409,19 +409,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until theyβre extinguished with a successful Finesse Roll (14)
"
}
},
+ "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 are Ignited until you are extinguished with a successful Finesse Roll (14). While Ignited, you take 1d4 magic damage whenever you make an action roll.
[[/dr trait=finesse difficulty=14]]
",
"tint": "#ffffff",
@@ -431,16 +430,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!9rVlbJVrDNn1x7PS.JU9uVwZSM0ItnZRq.9UBLk9M87VIUziAQ"
}
],
diff --git a/src/packs/adversaries/adversary_Rotted_Zombie_gP3fWTLzSFnpA8EJ.json b/src/packs/adversaries/adversary_Rotted_Zombie_gP3fWTLzSFnpA8EJ.json
index f1c7f470..7672961c 100644
--- a/src/packs/adversaries/adversary_Rotted_Zombie_gP3fWTLzSFnpA8EJ.json
+++ b/src/packs/adversaries/adversary_Rotted_Zombie_gP3fWTLzSFnpA8EJ.json
@@ -57,8 +57,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -85,7 +85,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/creatures/abilities/mouth-teeth-sharp.webp",
"type": "attack",
@@ -125,9 +125,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
},
@@ -178,7 +181,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -204,8 +207,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -243,95 +245,33 @@
"description": "Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "8wRrAWHU0xHW4zuE": {
- "type": "attack",
- "_id": "8wRrAWHU0xHW4zuE",
+ "DJBNtd3hWjwsjPwq": {
+ "type": "effect",
+ "_id": "DJBNtd3hWjwsjPwq",
"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
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "2"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
- },
- "target": {
- "type": "any",
- "amount": null
+ "recovery": null
},
"effects": [],
- "roll": {
- "type": "attack",
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
+ "target": {
+ "type": "self",
+ "amount": null
},
"name": "Spend Fear",
+ "img": "icons/creatures/abilities/tail-strike-bone-orange.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Royal_Advisor_EtLJiTsilPPZvLUX.json b/src/packs/adversaries/adversary_Royal_Advisor_EtLJiTsilPPZvLUX.json
index e215a444..8593ec01 100644
--- a/src/packs/adversaries/adversary_Royal_Advisor_EtLJiTsilPPZvLUX.json
+++ b/src/packs/adversaries/adversary_Royal_Advisor_EtLJiTsilPPZvLUX.json
@@ -86,8 +86,8 @@
},
"range": "far",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -113,7 +113,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -249,8 +249,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -275,7 +275,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Secret_Keeper_sLAccjvCWfeedbpI.json b/src/packs/adversaries/adversary_Secret_Keeper_sLAccjvCWfeedbpI.json
index 93bfef2c..d17c3f86 100644
--- a/src/packs/adversaries/adversary_Secret_Keeper_sLAccjvCWfeedbpI.json
+++ b/src/packs/adversaries/adversary_Secret_Keeper_sLAccjvCWfeedbpI.json
@@ -85,8 +85,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -112,7 +112,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/weapons/staves/staff-ornate-purple.webp",
"type": "attack",
@@ -256,7 +256,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -336,8 +336,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -362,7 +362,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Sellsword_bgreCaQ6ap2DVpCr.json b/src/packs/adversaries/adversary_Sellsword_bgreCaQ6ap2DVpCr.json
index 46bed122..514be8f5 100644
--- a/src/packs/adversaries/adversary_Sellsword_bgreCaQ6ap2DVpCr.json
+++ b/src/packs/adversaries/adversary_Sellsword_bgreCaQ6ap2DVpCr.json
@@ -61,8 +61,8 @@
"attack": {
"name": "Longsword",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -89,7 +89,7 @@
},
"base": false
}
- }
+ ]
},
"roll": {
"bonus": 3,
@@ -125,9 +125,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
},
@@ -178,7 +181,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -204,8 +207,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -243,95 +245,33 @@
"description": "Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "K3pF2DBnR9zJ90W8": {
- "type": "attack",
- "_id": "K3pF2DBnR9zJ90W8",
+ "ghgFZskDiizJDjcn": {
+ "type": "effect",
+ "_id": "ghgFZskDiizJDjcn",
"systemPath": "actions",
- "baseAction": false,
"description": "",
"chatDisplay": true,
- "originItem": {
- "type": "itemCollection"
- },
"actionType": "action",
- "triggers": [],
"cost": [
{
- "consumeOnSuccess": false,
"scalable": false,
"key": "fear",
"value": 1,
- "itemId": null,
"step": null
}
],
"uses": {
"value": null,
"max": "",
- "recovery": null,
- "consumeOnSuccess": false
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "3"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
- },
- "target": {
- "type": "any",
- "amount": null
+ "recovery": null
},
"effects": [],
- "roll": {
- "type": "attack",
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
+ "target": {
+ "type": "self",
+ "amount": null
},
"name": "Spend Fear",
+ "img": "icons/creatures/abilities/tail-strike-bone-orange.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json b/src/packs/adversaries/adversary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json
index 5161f8e2..7c3925ac 100644
--- a/src/packs/adversaries/adversary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json
+++ b/src/packs/adversaries/adversary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json
@@ -74,8 +74,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -266,8 +266,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -292,7 +292,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Shark_YmVAkdNsyuXWTtYp.json b/src/packs/adversaries/adversary_Shark_YmVAkdNsyuXWTtYp.json
index 0a6f27b0..e385a6c5 100644
--- a/src/packs/adversaries/adversary_Shark_YmVAkdNsyuXWTtYp.json
+++ b/src/packs/adversaries/adversary_Shark_YmVAkdNsyuXWTtYp.json
@@ -75,8 +75,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": {
@@ -236,8 +238,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -262,9 +264,8 @@
}
}
}
- },
- "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,
@@ -324,8 +316,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -351,7 +343,7 @@
}
}
},
- "armor": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -376,7 +368,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Siren_BK4jwyXSRx7IOQiO.json b/src/packs/adversaries/adversary_Siren_BK4jwyXSRx7IOQiO.json
index 39f6a5b9..a72c6d46 100644
--- a/src/packs/adversaries/adversary_Siren_BK4jwyXSRx7IOQiO.json
+++ b/src/packs/adversaries/adversary_Siren_BK4jwyXSRx7IOQiO.json
@@ -79,8 +79,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/creatures/abilities/mouth-teeth-sharp.webp",
"range": "melee",
@@ -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": [
{
@@ -242,8 +244,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -269,7 +271,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -348,9 +350,8 @@
"recovery": null
},
"damage": {
- "parts": {},
- "includeBase": false,
- "groupAttack": ""
+ "parts": [],
+ "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,
@@ -416,21 +408,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until you mark 2 Stress.
"
}
},
+ "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": "While Entranced, you canβt act and are Vulnerable.
",
+ "description": "While Entranced, you canβt act and are Vulnerable.
",
"tint": "#ffffff",
"statuses": [
"vulnerable"
@@ -440,16 +431,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!BK4jwyXSRx7IOQiO.Ks3HpB4W1l5FqR7p.xrm5786ckKbMYHjn"
}
],
diff --git a/src/packs/adversaries/adversary_Skeleton_Archer_7X5q7a6ueeHs5oA9.json b/src/packs/adversaries/adversary_Skeleton_Archer_7X5q7a6ueeHs5oA9.json
index f0dde9f0..9d837ac0 100644
--- a/src/packs/adversaries/adversary_Skeleton_Archer_7X5q7a6ueeHs5oA9.json
+++ b/src/packs/adversaries/adversary_Skeleton_Archer_7X5q7a6ueeHs5oA9.json
@@ -74,8 +74,8 @@
},
"range": "far",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/weapons/bows/shortbow-leather.webp",
"type": "attack",
@@ -310,8 +310,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -337,7 +337,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Skeleton_Dredge_6l1a3Fazq8BoKIcc.json b/src/packs/adversaries/adversary_Skeleton_Dredge_6l1a3Fazq8BoKIcc.json
index 1a82abb8..4013d7fe 100644
--- a/src/packs/adversaries/adversary_Skeleton_Dredge_6l1a3Fazq8BoKIcc.json
+++ b/src/packs/adversaries/adversary_Skeleton_Dredge_6l1a3Fazq8BoKIcc.json
@@ -58,8 +58,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -86,7 +86,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -125,9 +125,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
},
@@ -178,7 +181,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -204,8 +207,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -243,95 +245,33 @@
"description": "Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "6rdwJKwsSCO4R0Ty": {
- "type": "attack",
- "_id": "6rdwJKwsSCO4R0Ty",
+ "Sz55uB8xkoNytLwJ": {
+ "type": "effect",
+ "_id": "Sz55uB8xkoNytLwJ",
"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
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "1"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
- },
- "target": {
- "type": "any",
- "amount": null
+ "recovery": null
},
"effects": [],
- "roll": {
- "type": "attack",
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
+ "target": {
+ "type": "self",
+ "amount": null
},
"name": "Spend Fear",
+ "img": "icons/creatures/abilities/tail-strike-bone-orange.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json b/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json
index e6982135..3c26dd28 100644
--- a/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json
+++ b/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json
@@ -74,8 +74,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -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": [
{
@@ -238,8 +240,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -264,7 +266,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -324,8 +326,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -351,7 +353,7 @@
}
}
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -376,9 +378,8 @@
},
"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,
@@ -460,8 +452,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -487,7 +479,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Skeleton_Warrior_10YIQl0lvCJXZLfX.json b/src/packs/adversaries/adversary_Skeleton_Warrior_10YIQl0lvCJXZLfX.json
index 726b06e1..28003d5c 100644
--- a/src/packs/adversaries/adversary_Skeleton_Warrior_10YIQl0lvCJXZLfX.json
+++ b/src/packs/adversaries/adversary_Skeleton_Warrior_10YIQl0lvCJXZLfX.json
@@ -73,8 +73,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -100,7 +100,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/weapons/swords/sword-guard-brass-worn.webp",
"type": "attack",
@@ -310,7 +310,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Spectral_Archer_5tCkhnBByUIN5UdG.json b/src/packs/adversaries/adversary_Spectral_Archer_5tCkhnBByUIN5UdG.json
index 5b9cbb65..e6cc30f7 100644
--- a/src/packs/adversaries/adversary_Spectral_Archer_5tCkhnBByUIN5UdG.json
+++ b/src/packs/adversaries/adversary_Spectral_Archer_5tCkhnBByUIN5UdG.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"range": "far",
"type": "attack",
@@ -343,8 +343,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -370,7 +370,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Spectral_Captain_65cSO3EQEh6ZH6Xk.json b/src/packs/adversaries/adversary_Spectral_Captain_65cSO3EQEh6ZH6Xk.json
index 0572e018..b70a5d53 100644
--- a/src/packs/adversaries/adversary_Spectral_Captain_65cSO3EQEh6ZH6Xk.json
+++ b/src/packs/adversaries/adversary_Spectral_Captain_65cSO3EQEh6ZH6Xk.json
@@ -76,8 +76,8 @@
"name": "Longbow",
"img": "icons/weapons/bows/longbow-recurve-skull-brown.webp",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -103,7 +103,7 @@
},
"base": false
}
- }
+ ]
},
"roll": {
"bonus": 3,
@@ -456,8 +456,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -483,7 +483,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Spectral_Guardian_UFVGl1osOsJTneLf.json b/src/packs/adversaries/adversary_Spectral_Guardian_UFVGl1osOsJTneLf.json
index 85893254..577a7d25 100644
--- a/src/packs/adversaries/adversary_Spectral_Guardian_UFVGl1osOsJTneLf.json
+++ b/src/packs/adversaries/adversary_Spectral_Guardian_UFVGl1osOsJTneLf.json
@@ -81,8 +81,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -350,8 +350,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -377,7 +377,7 @@
}
}
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -402,7 +402,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json b/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json
index 5d72dfc7..13d6ed84 100644
--- a/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json
+++ b/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -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": {
@@ -278,8 +280,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -305,9 +307,8 @@
}
}
}
- },
- "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,
@@ -456,8 +439,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -483,7 +466,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Spy_8zlynOhnVA59KpKT.json b/src/packs/adversaries/adversary_Spy_8zlynOhnVA59KpKT.json
index 0e160edb..5affdc44 100644
--- a/src/packs/adversaries/adversary_Spy_8zlynOhnVA59KpKT.json
+++ b/src/packs/adversaries/adversary_Spy_8zlynOhnVA59KpKT.json
@@ -79,8 +79,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/weapons/daggers/dagger-curved-purple.webp",
"range": "melee",
@@ -329,8 +329,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -354,7 +354,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Stag_Knight_KGVwnLq85ywP9xvB.json b/src/packs/adversaries/adversary_Stag_Knight_KGVwnLq85ywP9xvB.json
index 14e81a8c..603182cc 100644
--- a/src/packs/adversaries/adversary_Stag_Knight_KGVwnLq85ywP9xvB.json
+++ b/src/packs/adversaries/adversary_Stag_Knight_KGVwnLq85ywP9xvB.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -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": [
{
@@ -242,8 +244,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -269,7 +271,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -328,9 +330,8 @@
"recovery": null
},
"damage": {
- "parts": {},
- "includeBase": false,
- "groupAttack": ""
+ "parts": [],
+ "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,
@@ -418,8 +410,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -443,7 +435,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Stonewraith_3aAS2Qm3R6cgaYfE.json b/src/packs/adversaries/adversary_Stonewraith_3aAS2Qm3R6cgaYfE.json
index 52869085..de3ef9f2 100644
--- a/src/packs/adversaries/adversary_Stonewraith_3aAS2Qm3R6cgaYfE.json
+++ b/src/packs/adversaries/adversary_Stonewraith_3aAS2Qm3R6cgaYfE.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"range": "melee",
"type": "attack",
@@ -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": [
{
@@ -274,8 +276,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -299,7 +301,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -357,18 +359,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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",
@@ -380,16 +382,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!3aAS2Qm3R6cgaYfE.tQgxiSS48TJ3X1Dl.6UgMuuJ8ZygbCsDh"
}
],
@@ -409,7 +401,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": {
@@ -433,8 +425,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -460,9 +452,8 @@
}
}
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -491,16 +482,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",
@@ -581,8 +563,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -608,7 +590,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Swarm_of_Rats_qNgs3AbLyJrY19nt.json b/src/packs/adversaries/adversary_Swarm_of_Rats_qNgs3AbLyJrY19nt.json
index 28d5dabe..014b3dc6 100644
--- a/src/packs/adversaries/adversary_Swarm_of_Rats_qNgs3AbLyJrY19nt.json
+++ b/src/packs/adversaries/adversary_Swarm_of_Rats_qNgs3AbLyJrY19nt.json
@@ -68,8 +68,8 @@
"description": "A skittering mass of ordinary rodents moving as one like a ravenous wave.
",
"attack": {
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -95,7 +95,7 @@
"resultBased": false,
"base": false
}
- }
+ ]
},
"name": "Claws",
"img": "icons/creatures/claws/claw-straight-brown.webp",
diff --git a/src/packs/adversaries/adversary_Sylvan_Soldier_VtFBt9XBE0WrGGxP.json b/src/packs/adversaries/adversary_Sylvan_Soldier_VtFBt9XBE0WrGGxP.json
index f3ce03c3..2ec5e924 100644
--- a/src/packs/adversaries/adversary_Sylvan_Soldier_VtFBt9XBE0WrGGxP.json
+++ b/src/packs/adversaries/adversary_Sylvan_Soldier_VtFBt9XBE0WrGGxP.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -246,8 +246,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -273,7 +273,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -353,8 +353,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -380,7 +380,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Tangle_Bramble_Swarm_PKSXFuaIHUCoH63A.json b/src/packs/adversaries/adversary_Tangle_Bramble_Swarm_PKSXFuaIHUCoH63A.json
index f8f93cf2..40297eb6 100644
--- a/src/packs/adversaries/adversary_Tangle_Bramble_Swarm_PKSXFuaIHUCoH63A.json
+++ b/src/packs/adversaries/adversary_Tangle_Bramble_Swarm_PKSXFuaIHUCoH63A.json
@@ -99,8 +99,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -126,7 +126,7 @@
"resultBased": false,
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -309,8 +309,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false,
@@ -338,7 +338,7 @@
}
}
}
- },
+ ],
"includeBase": false,
"direct": true
},
diff --git a/src/packs/adversaries/adversary_Tangle_Bramble_XcAGOSmtCFLT1unN.json b/src/packs/adversaries/adversary_Tangle_Bramble_XcAGOSmtCFLT1unN.json
index d635b2ca..33afaa3a 100644
--- a/src/packs/adversaries/adversary_Tangle_Bramble_XcAGOSmtCFLT1unN.json
+++ b/src/packs/adversaries/adversary_Tangle_Bramble_XcAGOSmtCFLT1unN.json
@@ -94,8 +94,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -122,7 +122,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -164,9 +164,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
},
@@ -217,7 +220,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -243,8 +246,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -282,95 +284,33 @@
"description": "Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "V58Ry90tvIjvfDTZ": {
- "type": "attack",
- "_id": "V58Ry90tvIjvfDTZ",
+ "ZC5pKIb9N82vgMWu": {
+ "type": "effect",
+ "_id": "ZC5pKIb9N82vgMWu",
"systemPath": "actions",
- "baseAction": false,
"description": "",
"chatDisplay": true,
- "originItem": {
- "type": "itemCollection"
- },
"actionType": "action",
- "triggers": [],
"cost": [
{
- "consumeOnSuccess": false,
"scalable": false,
"key": "fear",
"value": 1,
- "itemId": null,
"step": null
}
],
"uses": {
"value": null,
"max": "",
- "recovery": null,
- "consumeOnSuccess": false
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "2"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
- },
- "target": {
- "type": "any",
- "amount": null
+ "recovery": null
},
"effects": [],
- "roll": {
- "type": "attack",
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
+ "target": {
+ "type": "self",
+ "amount": null
},
"name": "Spend Fear",
+ "img": "icons/creatures/abilities/tail-strike-bone-orange.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json b/src/packs/adversaries/adversary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json
index 9470502c..6a984b3c 100644
--- a/src/packs/adversaries/adversary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json
+++ b/src/packs/adversaries/adversary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json
@@ -57,8 +57,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -84,7 +84,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/creatures/slimes/slime-movement-dripping-pseudopods-green.webp",
"type": "attack",
@@ -128,9 +128,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
},
@@ -181,7 +184,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -207,8 +210,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -217,7 +219,7 @@
"_id": "WpOh5kHHx7lcTvEY",
"img": "icons/magic/acid/dissolve-drip-droplet-smoke.webp",
"system": {
- "description": "When the @Lookup[@name] makes a successful attack, the target must mark an Armor Slot without receiving its benefits (they can still use armor to reduce the damage). If they canβt mark an Armor Slot, they must mark an additional HP.
",
+ "description": "When the @Lookup[@name] makes a successful attack, the target must mark an Armor Slot without receiving its benefi ts (they can still use armor to reduce the damage). If they canβt mark an Armor Slot, they must mark an additional HP.
",
"resource": null,
"actions": {
"HfK0u0c7NRppuF1Q": {
@@ -234,8 +236,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "armor": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -260,7 +262,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Tiny_Red_Ooze_1fkLQXVtmILqfJ44.json b/src/packs/adversaries/adversary_Tiny_Red_Ooze_1fkLQXVtmILqfJ44.json
index 28d6490e..116fffba 100644
--- a/src/packs/adversaries/adversary_Tiny_Red_Ooze_1fkLQXVtmILqfJ44.json
+++ b/src/packs/adversaries/adversary_Tiny_Red_Ooze_1fkLQXVtmILqfJ44.json
@@ -58,8 +58,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -85,7 +85,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -236,8 +236,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -263,7 +263,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Treant_Sapling_o63nS0k3wHu6EgKP.json b/src/packs/adversaries/adversary_Treant_Sapling_o63nS0k3wHu6EgKP.json
index c03a1b52..ad9d8107 100644
--- a/src/packs/adversaries/adversary_Treant_Sapling_o63nS0k3wHu6EgKP.json
+++ b/src/packs/adversaries/adversary_Treant_Sapling_o63nS0k3wHu6EgKP.json
@@ -66,8 +66,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -94,7 +94,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -125,9 +125,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
},
@@ -178,7 +181,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -204,8 +207,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -240,95 +242,33 @@
"description": "Spend a Fear to choose a target and spotlight all @Lookup[@name]s within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal @Lookup[@system.attack.damageFormula] physical damage each. Combine this damage.
",
"resource": null,
"actions": {
- "Itubbr63irPJcbXG": {
- "type": "attack",
- "_id": "Itubbr63irPJcbXG",
+ "euP8VA4wvfsCpwN1": {
+ "type": "effect",
+ "_id": "euP8VA4wvfsCpwN1",
"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
- },
- "damage": {
- "parts": {
- "hitPoints": {
- "applyTo": "hitPoints",
- "resultBased": false,
- "value": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": true,
- "formula": "8"
- }
- },
- "valueAlt": {
- "multiplier": "flat",
- "flatMultiplier": 1,
- "dice": "d6",
- "bonus": null,
- "custom": {
- "enabled": false,
- "formula": ""
- }
- },
- "base": false,
- "type": [
- "physical"
- ]
- }
- },
- "includeBase": false,
- "direct": false,
- "groupAttack": "close"
- },
- "target": {
- "type": "any",
- "amount": null
+ "recovery": null
},
"effects": [],
- "roll": {
- "type": "attack",
- "trait": null,
- "difficulty": null,
- "bonus": null,
- "advState": "neutral",
- "diceRolling": {
- "multiplier": "prof",
- "flatMultiplier": 1,
- "dice": "d6",
- "compare": null,
- "treshold": null
- },
- "useDefault": false
- },
- "save": {
- "trait": null,
- "difficulty": null,
- "damageMod": "none"
+ "target": {
+ "type": "self",
+ "amount": null
},
"name": "Spend Fear",
+ "img": "icons/magic/unholy/orb-hands-pink.webp",
"range": ""
}
},
diff --git a/src/packs/adversaries/adversary_Vampire_WWyUp6Mxl1S3KYUG.json b/src/packs/adversaries/adversary_Vampire_WWyUp6Mxl1S3KYUG.json
index 6ba4935a..4f51cd79 100644
--- a/src/packs/adversaries/adversary_Vampire_WWyUp6Mxl1S3KYUG.json
+++ b/src/packs/adversaries/adversary_Vampire_WWyUp6Mxl1S3KYUG.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -244,8 +244,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -269,7 +269,7 @@
}
}
},
- "hope": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -294,7 +294,7 @@
}
}
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -319,7 +319,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Vault_Guardian_Gaoler_JqYraOqNmmhHk4Yy.json b/src/packs/adversaries/adversary_Vault_Guardian_Gaoler_JqYraOqNmmhHk4Yy.json
index 97c493a8..d1cca592 100644
--- a/src/packs/adversaries/adversary_Vault_Guardian_Gaoler_JqYraOqNmmhHk4Yy.json
+++ b/src/packs/adversaries/adversary_Vault_Guardian_Gaoler_JqYraOqNmmhHk4Yy.json
@@ -75,8 +75,8 @@
},
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -270,7 +270,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -328,21 +328,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until freed with a successful Strength Roll (18).
"
}
},
+ "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 are Restrained within the Gaoler until freed with a successful Strength Roll (18). While Restrained, you can only attack the Gaoler.
",
+ "description": "You are Restrained within the Gaoler until freed with a successful Strength Roll (18). While Restrained, you can only attack the Gaoler.
",
"tint": "#ffffff",
"statuses": [
"restrained"
@@ -352,16 +351,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!JqYraOqNmmhHk4Yy.VlHp8RjHy7MK8rqC.6TZlstmWJPbeoL7i"
}
],
diff --git a/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json b/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json
index ba3f5c33..67139669 100644
--- a/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json
+++ b/src/packs/adversaries/adversary_Vault_Guardian_Sentinel_FVgYb28fhxlVcGwA.json
@@ -75,8 +75,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": "Box In",
"type": "feature",
"system": {
- "description": "Mark a Stress to choose a target within Very Close range to focus on. That target has disadvantage on attack rolls when theyβre within Very Close range of the @Lookup[@name]. The @Lookup[@name] can only focus on one target at a time.
",
+ "description": "Mark a Stress to choose a target within Very Close range to focus on. That target has disadvantage on attack rolls when theyβre within Very Close range of the @Lookup[@name]. The @Lookup[@name]Sentinel can only focus on one target at a time.
",
"resource": null,
"actions": {
"4RQnBu4kcUs3PcPH": {
@@ -349,7 +351,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": {
@@ -373,8 +375,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -400,7 +402,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -430,16 +432,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,
@@ -483,8 +476,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -510,7 +503,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Vault_Guardian_Turret_c5hGdvY5UnSjlHws.json b/src/packs/adversaries/adversary_Vault_Guardian_Turret_c5hGdvY5UnSjlHws.json
index 018d5b58..ab683607 100644
--- a/src/packs/adversaries/adversary_Vault_Guardian_Turret_c5hGdvY5UnSjlHws.json
+++ b/src/packs/adversaries/adversary_Vault_Guardian_Turret_c5hGdvY5UnSjlHws.json
@@ -74,8 +74,8 @@
},
"range": "far",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/commodities/tech/metal-joint.webp",
"type": "attack",
@@ -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": {
@@ -427,8 +429,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -454,9 +456,8 @@
}
}
}
- },
- "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..82bdd810 100644
--- a/src/packs/adversaries/adversary_Volcanic_Dragon__Ashen_Tyrant_pMuXGCSOQaxpi5tb.json
+++ b/src/packs/adversaries/adversary_Volcanic_Dragon__Ashen_Tyrant_pMuXGCSOQaxpi5tb.json
@@ -67,8 +67,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -94,7 +94,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -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": [
{
@@ -449,8 +451,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -475,9 +477,8 @@
}
}
}
- },
- "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": {
@@ -537,8 +529,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -564,7 +556,7 @@
}
}
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -589,9 +581,8 @@
}
}
}
- },
- "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": [],
@@ -737,8 +710,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -764,9 +737,8 @@
}
}
}
- },
- "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",
@@ -878,19 +841,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until you break free with a successful Strength Roll.
"
}
},
+ "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 the rubble until you break free with a successful Strength Roll.
",
"tint": "#ffffff",
@@ -902,16 +864,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!pMuXGCSOQaxpi5tb.uWiyaJPXcoW06pOM.YUjdwrEZ4zn7WR9X"
}
],
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..7f9deb6c 100644
--- a/src/packs/adversaries/adversary_Volcanic_Dragon__Molten_Scourge_eArAPuB38CNR0ZIM.json
+++ b/src/packs/adversaries/adversary_Volcanic_Dragon__Molten_Scourge_eArAPuB38CNR0ZIM.json
@@ -67,8 +67,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -94,7 +94,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -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": [
{
@@ -357,8 +359,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -384,7 +386,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -457,8 +459,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -484,9 +486,8 @@
}
}
}
- },
- "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": {
@@ -574,7 +566,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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": [],
@@ -620,8 +612,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -647,7 +639,7 @@
}
}
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": false
@@ -671,9 +663,8 @@
}
}
}
- },
- "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,
@@ -739,19 +721,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until you clear a Stress.
"
}
},
+ "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 you clear a Stress.
",
"tint": "#ffffff",
@@ -763,16 +744,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!eArAPuB38CNR0ZIM.2mK8kxfp2WBUeBri.xmzA6NC9zrulhzQs"
}
],
@@ -809,8 +780,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -836,7 +807,7 @@
}
}
}
- },
+ ],
"includeBase": false,
"direct": true
},
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..5f32aae5 100644
--- a/src/packs/adversaries/adversary_Volcanic_Dragon__Obsidian_Predator_ladm7wykhZczYzrQ.json
+++ b/src/packs/adversaries/adversary_Volcanic_Dragon__Obsidian_Predator_ladm7wykhZczYzrQ.json
@@ -67,8 +67,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -94,7 +94,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -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": {
@@ -463,8 +465,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -488,9 +490,8 @@
}
}
}
- },
- "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": {
@@ -615,8 +607,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -642,7 +634,7 @@
}
}
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -667,7 +659,7 @@
},
"type": []
},
- "hope": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -692,9 +684,8 @@
},
"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..f087c63d 100644
--- a/src/packs/adversaries/adversary_War_Wizard_noDdT0tsN6FXSmC8.json
+++ b/src/packs/adversaries/adversary_War_Wizard_noDdT0tsN6FXSmC8.json
@@ -86,8 +86,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -113,7 +113,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -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": {
@@ -365,8 +367,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -392,7 +394,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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,
@@ -481,8 +474,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -508,7 +501,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -581,8 +574,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -608,7 +601,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Weaponmaster_ZNbQ2jg35LG4t9eH.json b/src/packs/adversaries/adversary_Weaponmaster_ZNbQ2jg35LG4t9eH.json
index 8eaf56f9..2989468b 100644
--- a/src/packs/adversaries/adversary_Weaponmaster_ZNbQ2jg35LG4t9eH.json
+++ b/src/packs/adversaries/adversary_Weaponmaster_ZNbQ2jg35LG4t9eH.json
@@ -75,8 +75,8 @@
"img": "icons/weapons/swords/greatsword-guard-gold-worn.webp",
"range": "veryClose",
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"chatDisplay": false
@@ -240,8 +240,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -267,7 +267,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -324,19 +324,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until your next successful attack
"
}
},
+ "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": "The next time the Taunted target attacks, they have disadvantage against targets other than the Weaponmaster.
",
"tint": "#ffffff",
@@ -346,16 +345,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!ZNbQ2jg35LG4t9eH.tyGgOqQzDSIypoMz.j2jYmYbtWXvq32yX"
}
],
@@ -416,8 +405,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -442,7 +431,7 @@
},
"type": []
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -467,7 +456,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -537,8 +526,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -564,7 +553,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Young_Dryad_8yUj2Mzvnifhxegm.json b/src/packs/adversaries/adversary_Young_Dryad_8yUj2Mzvnifhxegm.json
index 9d7f66d0..446a4af3 100644
--- a/src/packs/adversaries/adversary_Young_Dryad_8yUj2Mzvnifhxegm.json
+++ b/src/packs/adversaries/adversary_Young_Dryad_8yUj2Mzvnifhxegm.json
@@ -80,8 +80,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- }
+ ]
},
"type": "attack",
"range": "melee",
@@ -253,7 +253,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -367,21 +367,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until theyβre freed with a successful Strength Roll.
"
}
},
+ "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 are Restrained until you're freed with a successful Strength Roll. When a creature makes an action roll against the cage, they must mark a Stress.
",
+ "description": "You are Restrained until you're freed with a successful Strength Roll. When a creature makes an action roll against the cage, they must mark a Stress.
",
"tint": "#ffffff",
"statuses": [
"restrained"
@@ -391,16 +390,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!8yUj2Mzvnifhxegm.i8NoUGUTNY2C5NhC.k8LzBWRZo6VPqvpH"
}
],
@@ -440,8 +429,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -467,7 +456,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Young_Ice_Dragon_UGPiPLJsPvMTSKEF.json b/src/packs/adversaries/adversary_Young_Ice_Dragon_UGPiPLJsPvMTSKEF.json
index 6c55ba15..c55262e4 100644
--- a/src/packs/adversaries/adversary_Young_Ice_Dragon_UGPiPLJsPvMTSKEF.json
+++ b/src/packs/adversaries/adversary_Young_Ice_Dragon_UGPiPLJsPvMTSKEF.json
@@ -79,8 +79,8 @@
"type": "attack"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- }
+ ]
},
"img": "icons/creatures/claws/claw-scaled-red.webp",
"type": "attack",
@@ -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": [
{
@@ -300,8 +302,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -326,7 +328,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -410,8 +412,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -437,9 +439,8 @@
}
}
}
- },
- "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": {
@@ -571,9 +563,8 @@
"recovery": null
},
"damage": {
- "parts": {},
- "includeBase": false,
- "groupAttack": ""
+ "parts": [],
+ "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,
@@ -639,19 +621,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until they dig themselves out from the debris.
"
}
},
+ "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 you dig yourself out from the debris.
",
"tint": "#ffffff",
@@ -663,16 +644,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!UGPiPLJsPvMTSKEF.CcRTxCDCJskiu3fI.40cFHuNdEvbUZ9rs"
}
],
@@ -709,8 +680,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -735,7 +706,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -773,26 +744,25 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.disadvantageSources",
- "value": "On attack rolls.",
- "priority": null,
- "type": "add"
- }
- ],
- "duration": {
- "type": "temporary",
- "description": "Until your next rest or you clear a Stress.
"
}
},
+ "changes": [
+ {
+ "key": "system.disadvantageSources",
+ "mode": 2,
+ "value": "On attack rolls.",
+ "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": "Chilled until your next rest or you clear a Stress. While you are Chilled, you have disadvantage on attack rolls.
",
"tint": "#ffffff",
@@ -802,16 +772,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!UGPiPLJsPvMTSKEF.nXZHOfcYvjg3YMNU.1JlRxa07i8T1a9x6"
}
],
@@ -849,8 +809,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -876,7 +836,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Zombie_Legion_YhJrP7rTBiRdX5Fp.json b/src/packs/adversaries/adversary_Zombie_Legion_YhJrP7rTBiRdX5Fp.json
index 2c3495ff..91bdab81 100644
--- a/src/packs/adversaries/adversary_Zombie_Legion_YhJrP7rTBiRdX5Fp.json
+++ b/src/packs/adversaries/adversary_Zombie_Legion_YhJrP7rTBiRdX5Fp.json
@@ -68,8 +68,8 @@
"motivesAndTactics": "Consume brain, shred fl esh, surround",
"attack": {
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -95,7 +95,7 @@
"resultBased": false,
"base": false
}
- }
+ ]
},
"name": "Undead Hands",
"roll": {
diff --git a/src/packs/adversaries/adversary_Zombie_Pack_Nf0v43rtflV56V2T.json b/src/packs/adversaries/adversary_Zombie_Pack_Nf0v43rtflV56V2T.json
index f418758a..017537ad 100644
--- a/src/packs/adversaries/adversary_Zombie_Pack_Nf0v43rtflV56V2T.json
+++ b/src/packs/adversaries/adversary_Zombie_Pack_Nf0v43rtflV56V2T.json
@@ -68,8 +68,8 @@
"description": "A group of shambling corpses instinctively moving together.
",
"attack": {
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -95,7 +95,7 @@
"resultBased": false,
"base": false
}
- }
+ ]
},
"name": "Bite",
"roll": {
diff --git a/src/packs/ancestries/feature_Charge_AA2CZlJSWW8GPhrR.json b/src/packs/ancestries/feature_Charge_AA2CZlJSWW8GPhrR.json
index 0af2610a..f1f7ae35 100644
--- a/src/packs/ancestries/feature_Charge_AA2CZlJSWW8GPhrR.json
+++ b/src/packs/ancestries/feature_Charge_AA2CZlJSWW8GPhrR.json
@@ -29,8 +29,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -56,7 +56,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/ancestries/feature_Elemental_Breath_sRaE3CgkgjBF1UpV.json b/src/packs/ancestries/feature_Elemental_Breath_sRaE3CgkgjBF1UpV.json
index fd313fcf..71ac4438 100644
--- a/src/packs/ancestries/feature_Elemental_Breath_sRaE3CgkgjBF1UpV.json
+++ b/src/packs/ancestries/feature_Elemental_Breath_sRaE3CgkgjBF1UpV.json
@@ -22,8 +22,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -47,7 +47,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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_Fungril_Network_9tmeXm623hl4Qnws.json b/src/packs/ancestries/feature_Fungril_Network_9tmeXm623hl4Qnws.json
index 87638f37..9d970a67 100644
--- a/src/packs/ancestries/feature_Fungril_Network_9tmeXm623hl4Qnws.json
+++ b/src/packs/ancestries/feature_Fungril_Network_9tmeXm623hl4Qnws.json
@@ -22,7 +22,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/ancestries/feature_Kick_gpW19TfJk0WWFh1S.json b/src/packs/ancestries/feature_Kick_gpW19TfJk0WWFh1S.json
index b363b6c2..89546ded 100644
--- a/src/packs/ancestries/feature_Kick_gpW19TfJk0WWFh1S.json
+++ b/src/packs/ancestries/feature_Kick_gpW19TfJk0WWFh1S.json
@@ -31,8 +31,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false,
@@ -58,7 +58,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/ancestries/feature_Long_Tongue_oWbdlh51ajn1Q5kL.json b/src/packs/ancestries/feature_Long_Tongue_oWbdlh51ajn1Q5kL.json
index 1f1156d7..aee64a9a 100644
--- a/src/packs/ancestries/feature_Long_Tongue_oWbdlh51ajn1Q5kL.json
+++ b/src/packs/ancestries/feature_Long_Tongue_oWbdlh51ajn1Q5kL.json
@@ -29,8 +29,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -54,7 +54,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/ancestries/feature_Luckbringer_8O6SQQMxKWr430QA.json b/src/packs/ancestries/feature_Luckbringer_8O6SQQMxKWr430QA.json
index 36fd73fb..3c31d62d 100644
--- a/src/packs/ancestries/feature_Luckbringer_8O6SQQMxKWr430QA.json
+++ b/src/packs/ancestries/feature_Luckbringer_8O6SQQMxKWr430QA.json
@@ -22,8 +22,8 @@
"recovery": "session"
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -48,7 +48,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
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/ancestries/feature_Retracting_Claws_Zj69cAeb3NjIa8Hn.json b/src/packs/ancestries/feature_Retracting_Claws_Zj69cAeb3NjIa8Hn.json
index b9b000f4..8e408ec6 100644
--- a/src/packs/ancestries/feature_Retracting_Claws_Zj69cAeb3NjIa8Hn.json
+++ b/src/packs/ancestries/feature_Retracting_Claws_Zj69cAeb3NjIa8Hn.json
@@ -22,7 +22,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -83,18 +83,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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",
@@ -106,16 +106,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!Zj69cAeb3NjIa8Hn.pO76svFkmWmZ6LjC"
}
],
diff --git a/src/packs/ancestries/feature_Tusks_YhxD1ujZpftPu19w.json b/src/packs/ancestries/feature_Tusks_YhxD1ujZpftPu19w.json
index 6038f2c6..5bd72773 100644
--- a/src/packs/ancestries/feature_Tusks_YhxD1ujZpftPu19w.json
+++ b/src/packs/ancestries/feature_Tusks_YhxD1ujZpftPu19w.json
@@ -31,8 +31,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false,
@@ -58,7 +58,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/ancestries/feature_Unshakeable_G5pE8FW94V1W9jJx.json b/src/packs/ancestries/feature_Unshakeable_G5pE8FW94V1W9jJx.json
index bf0a241b..195b10e8 100644
--- a/src/packs/ancestries/feature_Unshakeable_G5pE8FW94V1W9jJx.json
+++ b/src/packs/ancestries/feature_Unshakeable_G5pE8FW94V1W9jJx.json
@@ -22,7 +22,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/beastforms/beastform_Agile_Scout_a9UoCwtrbgKk02mK.json b/src/packs/beastforms/beastform_Agile_Scout_a9UoCwtrbgKk02mK.json
index bd9bfffb..71018bc9 100644
--- a/src/packs/beastforms/beastform_Agile_Scout_a9UoCwtrbgKk02mK.json
+++ b/src/packs/beastforms/beastform_Agile_Scout_a9UoCwtrbgKk02mK.json
@@ -29,7 +29,8 @@
"Compendium.daggerheart.beastforms.Item.QFg1hNCEoKVDd9Zo"
],
"evolved": {
- "mainTraitBonus": 0
+ "mainTraitBonus": 0,
+ "maximumTier": 1
},
"hybrid": {
"beastformOptions": 2,
diff --git a/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json b/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json
index 36080868..b7d85ef1 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,12 +23,12 @@
],
"uses": {
"value": null,
- "max": "",
+ "max": null,
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -52,7 +52,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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,
@@ -116,18 +107,17 @@
"transfer": false,
"_id": "FXdFgEgqVl5gIWJS",
"type": "base",
- "system": {
- "changes": [],
- "duration": {
- "type": "temporary"
- }
- },
+ "system": {},
+ "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",
@@ -139,16 +129,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!DfBXO8jTchwFG8dZ.FXdFgEgqVl5gIWJS"
}
],
diff --git a/src/packs/beastforms/feature_Elusive_Prey_a7Qvmm14nx9BCysA.json b/src/packs/beastforms/feature_Elusive_Prey_a7Qvmm14nx9BCysA.json
index a81eb8af..d99a6ab7 100644
--- a/src/packs/beastforms/feature_Elusive_Prey_a7Qvmm14nx9BCysA.json
+++ b/src/packs/beastforms/feature_Elusive_Prey_a7Qvmm14nx9BCysA.json
@@ -27,7 +27,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/beastforms/feature_Hobbling_Strike_8u0HkK3WgtU9lWYs.json b/src/packs/beastforms/feature_Hobbling_Strike_8u0HkK3WgtU9lWYs.json
index a1d80e5d..6a16f864 100644
--- a/src/packs/beastforms/feature_Hobbling_Strike_8u0HkK3WgtU9lWYs.json
+++ b/src/packs/beastforms/feature_Hobbling_Strike_8u0HkK3WgtU9lWYs.json
@@ -58,18 +58,17 @@
"transfer": false,
"_id": "2kKkV9zhfvqA2vlt",
"type": "base",
- "system": {
- "changes": [],
- "duration": {
- "type": "temporary"
- }
- },
+ "system": {},
+ "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",
@@ -81,16 +80,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!8u0HkK3WgtU9lWYs.2kKkV9zhfvqA2vlt"
}
],
diff --git a/src/packs/beastforms/feature_Ocean_Master_tGDdEH40wyOCsFmH.json b/src/packs/beastforms/feature_Ocean_Master_tGDdEH40wyOCsFmH.json
index aa0baa31..a4431417 100644
--- a/src/packs/beastforms/feature_Ocean_Master_tGDdEH40wyOCsFmH.json
+++ b/src/packs/beastforms/feature_Ocean_Master_tGDdEH40wyOCsFmH.json
@@ -51,18 +51,17 @@
"transfer": false,
"_id": "6GBczj8REkDmgX2Q",
"type": "base",
- "system": {
- "changes": [],
- "duration": {
- "type": "temporary"
- }
- },
+ "system": {},
+ "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",
@@ -74,16 +73,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!tGDdEH40wyOCsFmH.6GBczj8REkDmgX2Q"
}
],
diff --git a/src/packs/beastforms/feature_Snapping_Strike_Ky3rZD3sJMXYZOBC.json b/src/packs/beastforms/feature_Snapping_Strike_Ky3rZD3sJMXYZOBC.json
index 581bdcf5..d79c9018 100644
--- a/src/packs/beastforms/feature_Snapping_Strike_Ky3rZD3sJMXYZOBC.json
+++ b/src/packs/beastforms/feature_Snapping_Strike_Ky3rZD3sJMXYZOBC.json
@@ -58,18 +58,17 @@
"transfer": false,
"_id": "y3EsJuInxE7juNXT",
"type": "base",
- "system": {
- "changes": [],
- "duration": {
- "type": "temporary"
- }
- },
+ "system": {},
+ "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",
@@ -82,16 +81,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!Ky3rZD3sJMXYZOBC.y3EsJuInxE7juNXT"
}
],
diff --git a/src/packs/beastforms/feature_Takedown_0ey4kM9ssj2otHvb.json b/src/packs/beastforms/feature_Takedown_0ey4kM9ssj2otHvb.json
index 531b30ea..4dc2c0f7 100644
--- a/src/packs/beastforms/feature_Takedown_0ey4kM9ssj2otHvb.json
+++ b/src/packs/beastforms/feature_Takedown_0ey4kM9ssj2otHvb.json
@@ -27,8 +27,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -54,7 +54,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/beastforms/feature_Trample_A0lgd6eVEfX6oqSB.json b/src/packs/beastforms/feature_Trample_A0lgd6eVEfX6oqSB.json
index 90801cf6..e9878f02 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,12 +23,12 @@
],
"uses": {
"value": null,
- "max": "",
+ "max": null,
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -52,11 +52,11 @@
}
}
}
- },
+ ],
"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,
@@ -116,18 +107,17 @@
"transfer": false,
"_id": "LkekG4IngVW9rFjI",
"type": "base",
- "system": {
- "changes": [],
- "duration": {
- "type": "temporary"
- }
- },
+ "system": {},
+ "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",
@@ -139,16 +129,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!A0lgd6eVEfX6oqSB.LkekG4IngVW9rFjI"
}
],
diff --git a/src/packs/beastforms/feature_Unyielding_vEAQ4cfsoPmOv2Gg.json b/src/packs/beastforms/feature_Unyielding_vEAQ4cfsoPmOv2Gg.json
index 429b5a1a..6bfafa79 100644
--- a/src/packs/beastforms/feature_Unyielding_vEAQ4cfsoPmOv2Gg.json
+++ b/src/packs/beastforms/feature_Unyielding_vEAQ4cfsoPmOv2Gg.json
@@ -20,7 +20,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/beastforms/feature_Venomous_Bite_2KlTnfzO03vneVS8.json b/src/packs/beastforms/feature_Venomous_Bite_2KlTnfzO03vneVS8.json
index 30ace68f..00870086 100644
--- a/src/packs/beastforms/feature_Venomous_Bite_2KlTnfzO03vneVS8.json
+++ b/src/packs/beastforms/feature_Venomous_Bite_2KlTnfzO03vneVS8.json
@@ -51,18 +51,17 @@
"transfer": false,
"_id": "TTyAKKoUCoYXSMs4",
"type": "base",
- "system": {
- "changes": [],
- "duration": {
- "type": "temporary"
- }
- },
+ "system": {},
+ "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": "A Poisoned creature takes 1d10 direct physical damage each time they act.
",
"tint": "#ffffff",
@@ -72,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!2KlTnfzO03vneVS8.TTyAKKoUCoYXSMs4"
}
],
diff --git a/src/packs/beastforms/feature_Venomous_Strike_uW3853pViM9VAfHb.json b/src/packs/beastforms/feature_Venomous_Strike_uW3853pViM9VAfHb.json
index 923e43bd..57d5bb56 100644
--- a/src/packs/beastforms/feature_Venomous_Strike_uW3853pViM9VAfHb.json
+++ b/src/packs/beastforms/feature_Venomous_Strike_uW3853pViM9VAfHb.json
@@ -20,7 +20,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -75,18 +75,17 @@
"transfer": false,
"_id": "1iQPj96LqUNkRaxE",
"type": "base",
- "system": {
- "changes": [],
- "duration": {
- "type": "temporary"
- }
- },
+ "system": {},
+ "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": "A Poisoned creature takes 1d10 physical direct damage each time they act.
",
"tint": "#ffffff",
@@ -96,16 +95,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!uW3853pViM9VAfHb.1iQPj96LqUNkRaxE"
}
],
diff --git a/src/packs/beastforms/feature_Vicious_Maul_jYUBi7yLHap5ljpa.json b/src/packs/beastforms/feature_Vicious_Maul_jYUBi7yLHap5ljpa.json
index a3494ed0..2bdad760 100644
--- a/src/packs/beastforms/feature_Vicious_Maul_jYUBi7yLHap5ljpa.json
+++ b/src/packs/beastforms/feature_Vicious_Maul_jYUBi7yLHap5ljpa.json
@@ -27,8 +27,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -53,7 +53,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -88,18 +88,17 @@
"transfer": false,
"_id": "MIAh9XNwDXGDktCm",
"type": "base",
- "system": {
- "changes": [],
- "duration": {
- "type": "temporary"
- }
- },
+ "system": {},
+ "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",
@@ -111,16 +110,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!jYUBi7yLHap5ljpa.MIAh9XNwDXGDktCm"
}
],
diff --git a/src/packs/beastforms/feature_Webslinger_D73fS1iM4SZPFimu.json b/src/packs/beastforms/feature_Webslinger_D73fS1iM4SZPFimu.json
index 7cd48d25..40adb28b 100644
--- a/src/packs/beastforms/feature_Webslinger_D73fS1iM4SZPFimu.json
+++ b/src/packs/beastforms/feature_Webslinger_D73fS1iM4SZPFimu.json
@@ -20,7 +20,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -75,18 +75,17 @@
"transfer": false,
"_id": "cBJueH89gNvvDKfQ",
"type": "base",
- "system": {
- "changes": [],
- "duration": {
- "type": "temporary"
- }
- },
+ "system": {},
+ "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",
@@ -98,16 +97,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!D73fS1iM4SZPFimu.cBJueH89gNvvDKfQ"
}
],
diff --git a/src/packs/classes/class_Bard_vegl3bFOq3pcFTWT.json b/src/packs/classes/class_Bard_vegl3bFOq3pcFTWT.json
index 31288916..c4dd83a7 100644
--- a/src/packs/classes/class_Bard_vegl3bFOq3pcFTWT.json
+++ b/src/packs/classes/class_Bard_vegl3bFOq3pcFTWT.json
@@ -4,7 +4,7 @@
"type": "class",
"img": "icons/tools/instruments/harp-red.webp",
"system": {
- "description": "Bards are the most charismatic people in all the realms. Members of this class are masters of captivation and specialize in a variety of performance types, including singing, playing musical instruments, weaving tales, or telling jokes. Whether performing for an audience or speaking to an individual, bards thrive in social situations. Members of this profession bond and train at schools or guilds, but a current of egotism runs through those of the bardic persuasion. While they may be the most likely class to bring people together, a bard of ill temper can just as easily tear a party apart.
",
+ "description": "Note: At level 5 use Rally (Level 5) instead of Rally under class feature. (Automation will be implemented in a later release)
Bards are the most charismatic people in all the realms. Members of this class are masters of captivation and specialize in a variety of performance types, including singing, playing musical instruments, weaving tales, or telling jokes. Whether performing for an audience or speaking to an individual, bards thrive in social situations. Members of this profession bond and train at schools or guilds, but a current of egotism runs through those of the bardic persuasion. While they may be the most likely class to bring people together, a bard of ill temper can just as easily tear a party apart.
",
"domains": [
"grace",
"codex"
diff --git a/src/packs/classes/feature_Evolution_6rlxhrRwFaVgq9fe.json b/src/packs/classes/feature_Evolution_6rlxhrRwFaVgq9fe.json
index 421063a4..46380fe8 100644
--- a/src/packs/classes/feature_Evolution_6rlxhrRwFaVgq9fe.json
+++ b/src/packs/classes/feature_Evolution_6rlxhrRwFaVgq9fe.json
@@ -5,7 +5,7 @@
"_id": "6rlxhrRwFaVgq9fe",
"img": "icons/magic/nature/wolf-paw-glow-large-orange.webp",
"system": {
- "description": "Spend 3 Hope to transform into a Beastform without marking a Stress. When you do, choose one trait to raise by +1 until you drop out of that Beastform.
",
+ "description": "Spend 3 Hope to transform into a Beastform without marking a Stress. When you do, choose one trait to raise by +1 until you drop out of that Beastform.
Note: Toggle one of the Evolution Traits in the effects tab to raise a trait by 1, e.g. Evolution: Agility
",
"resource": null,
"actions": {
"bj4m9E8ObFT0xDQ4": {
@@ -31,13 +31,6 @@
"beastform": {
"tierAccess": {
"exact": null
- },
- "modifications": {
- "traitBonuses": [
- {
- "bonus": 1
- }
- ]
}
},
"name": "Beastform",
@@ -53,7 +46,266 @@
"artist": ""
}
},
- "effects": [],
+ "effects": [
+ {
+ "name": "Evolution: Agility",
+ "type": "base",
+ "system": {
+ "rangeDependence": {
+ "enabled": false,
+ "type": "withinRange",
+ "target": "hostile",
+ "range": "melee"
+ }
+ },
+ "_id": "vQOqLZAxOltAzsVv",
+ "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp",
+ "changes": [
+ {
+ "key": "system.traits.agility.value",
+ "mode": 2,
+ "value": "1",
+ "priority": null
+ }
+ ],
+ "disabled": true,
+ "duration": {
+ "startTime": null,
+ "combat": null,
+ "seconds": null,
+ "rounds": null,
+ "turns": null,
+ "startRound": null,
+ "startTurn": null
+ },
+ "description": "Toggle this for +1 to Agility when using Evolution. Turn it off when you leave Beastform.
",
+ "origin": null,
+ "tint": "#ffffff",
+ "transfer": true,
+ "statuses": [],
+ "sort": 0,
+ "flags": {},
+ "_stats": {
+ "compendiumSource": null
+ },
+ "_key": "!items.effects!6rlxhrRwFaVgq9fe.vQOqLZAxOltAzsVv"
+ },
+ {
+ "name": "Evolution: Strength",
+ "type": "base",
+ "system": {
+ "rangeDependence": {
+ "enabled": false,
+ "type": "withinRange",
+ "target": "hostile",
+ "range": "melee"
+ }
+ },
+ "_id": "cwEsO1NZpkQHuoTT",
+ "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp",
+ "changes": [
+ {
+ "key": "system.traits.strength.value",
+ "mode": 2,
+ "value": "1",
+ "priority": null
+ }
+ ],
+ "disabled": true,
+ "duration": {
+ "startTime": null,
+ "combat": null,
+ "seconds": null,
+ "rounds": null,
+ "turns": null,
+ "startRound": null,
+ "startTurn": null
+ },
+ "description": "Toggle this for +1 to Strength when using Evolution. Turn it off when you leave Beastform.
",
+ "origin": null,
+ "tint": "#ffffff",
+ "transfer": true,
+ "statuses": [],
+ "sort": 0,
+ "flags": {},
+ "_stats": {
+ "compendiumSource": null
+ },
+ "_key": "!items.effects!6rlxhrRwFaVgq9fe.cwEsO1NZpkQHuoTT"
+ },
+ {
+ "name": "Evolution: Finesse",
+ "type": "base",
+ "system": {
+ "rangeDependence": {
+ "enabled": false,
+ "type": "withinRange",
+ "target": "hostile",
+ "range": "melee"
+ }
+ },
+ "_id": "8P0nwRHNsVnHVPjq",
+ "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp",
+ "changes": [
+ {
+ "key": "system.traits.finesse.value",
+ "mode": 2,
+ "value": "1",
+ "priority": null
+ }
+ ],
+ "disabled": true,
+ "duration": {
+ "startTime": null,
+ "combat": null,
+ "seconds": null,
+ "rounds": null,
+ "turns": null,
+ "startRound": null,
+ "startTurn": null
+ },
+ "description": "Toggle this for +1 to Finesse when using Evolution. Turn it off when you leave Beastform.
",
+ "origin": null,
+ "tint": "#ffffff",
+ "transfer": true,
+ "statuses": [],
+ "sort": 0,
+ "flags": {},
+ "_stats": {
+ "compendiumSource": null
+ },
+ "_key": "!items.effects!6rlxhrRwFaVgq9fe.8P0nwRHNsVnHVPjq"
+ },
+ {
+ "name": "Evolution: Instinct",
+ "type": "base",
+ "system": {
+ "rangeDependence": {
+ "enabled": false,
+ "type": "withinRange",
+ "target": "hostile",
+ "range": "melee"
+ }
+ },
+ "_id": "i2GhNGo5TnGtLuA0",
+ "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp",
+ "changes": [
+ {
+ "key": "system.traits.instinct.value",
+ "mode": 2,
+ "value": "1",
+ "priority": null
+ }
+ ],
+ "disabled": true,
+ "duration": {
+ "startTime": null,
+ "combat": null,
+ "seconds": null,
+ "rounds": null,
+ "turns": null,
+ "startRound": null,
+ "startTurn": null
+ },
+ "description": "Toggle this for +1 to Instinct when using Evolution. Turn it off when you leave Beastform.
",
+ "origin": null,
+ "tint": "#ffffff",
+ "transfer": true,
+ "statuses": [],
+ "sort": 0,
+ "flags": {},
+ "_stats": {
+ "compendiumSource": null
+ },
+ "_key": "!items.effects!6rlxhrRwFaVgq9fe.i2GhNGo5TnGtLuA0"
+ },
+ {
+ "name": "Evolution: Presence",
+ "type": "base",
+ "system": {
+ "rangeDependence": {
+ "enabled": false,
+ "type": "withinRange",
+ "target": "hostile",
+ "range": "melee"
+ }
+ },
+ "_id": "APQF1in1LXjBZh9n",
+ "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp",
+ "changes": [
+ {
+ "key": "system.traits.presence.value",
+ "mode": 2,
+ "value": "1",
+ "priority": null
+ }
+ ],
+ "disabled": true,
+ "duration": {
+ "startTime": null,
+ "combat": null,
+ "seconds": null,
+ "rounds": null,
+ "turns": null,
+ "startRound": null,
+ "startTurn": null
+ },
+ "description": "Toggle this for +1 to Presence when using Evolution. Turn it off when you leave Beastform.
",
+ "origin": null,
+ "tint": "#ffffff",
+ "transfer": true,
+ "statuses": [],
+ "sort": 0,
+ "flags": {},
+ "_stats": {
+ "compendiumSource": null
+ },
+ "_key": "!items.effects!6rlxhrRwFaVgq9fe.APQF1in1LXjBZh9n"
+ },
+ {
+ "name": "Evolution: Knowledge",
+ "type": "base",
+ "system": {
+ "rangeDependence": {
+ "enabled": false,
+ "type": "withinRange",
+ "target": "hostile",
+ "range": "melee"
+ }
+ },
+ "_id": "WwOvGJYJb4d37cOy",
+ "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp",
+ "changes": [
+ {
+ "key": "system.traits.knowledge.value",
+ "mode": 2,
+ "value": "1",
+ "priority": null
+ }
+ ],
+ "disabled": true,
+ "duration": {
+ "startTime": null,
+ "combat": null,
+ "seconds": null,
+ "rounds": null,
+ "turns": null,
+ "startRound": null,
+ "startTurn": null
+ },
+ "description": "Toggle this for +1 to Knowledge when using Evolution. Turn it off when you leave Beastform.
",
+ "origin": null,
+ "tint": "#ffffff",
+ "transfer": true,
+ "statuses": [],
+ "sort": 0,
+ "flags": {},
+ "_stats": {
+ "compendiumSource": null
+ },
+ "_key": "!items.effects!6rlxhrRwFaVgq9fe.WwOvGJYJb4d37cOy"
+ }
+ ],
"sort": 100000,
"ownership": {
"default": 0,
diff --git a/src/packs/classes/feature_Frontline_Tank_YS1g7YdWwOaS629x.json b/src/packs/classes/feature_Frontline_Tank_YS1g7YdWwOaS629x.json
index 81fd08cc..7b7be61a 100644
--- a/src/packs/classes/feature_Frontline_Tank_YS1g7YdWwOaS629x.json
+++ b/src/packs/classes/feature_Frontline_Tank_YS1g7YdWwOaS629x.json
@@ -29,8 +29,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "armor": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -55,7 +55,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/classes/feature_Life_Support_lSlvSUHbOoX36q2j.json b/src/packs/classes/feature_Life_Support_lSlvSUHbOoX36q2j.json
index b788f1f4..9c4fc450 100644
--- a/src/packs/classes/feature_Life_Support_lSlvSUHbOoX36q2j.json
+++ b/src/packs/classes/feature_Life_Support_lSlvSUHbOoX36q2j.json
@@ -31,8 +31,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -57,7 +57,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/classes/feature_Make_a_Scene_N9E5skDDK2VgvohR.json b/src/packs/classes/feature_Make_a_Scene_N9E5skDDK2VgvohR.json
index 5f28c048..1a444728 100644
--- a/src/packs/classes/feature_Make_a_Scene_N9E5skDDK2VgvohR.json
+++ b/src/packs/classes/feature_Make_a_Scene_N9E5skDDK2VgvohR.json
@@ -53,7 +53,7 @@
"effects": [
{
"name": "Make a Scene",
- "img": "icons/magic/sonic/scream-wail-shout-teal.webp",
+ "img": "icons/svg/daze.svg",
"origin": "Compendium.daggerheart.classes.Item.OxmucTHHfuBSv2dn",
"transfer": false,
"_id": "8G9zDv1gac6dEHmS",
@@ -64,27 +64,27 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.difficulty",
- "value": -2,
- "priority": null,
- "type": "add"
- }
- ],
- "duration": {
- "type": "temporary"
}
},
+ "changes": [
+ {
+ "key": "system.difficulty",
+ "mode": 2,
+ "value": "-2",
+ "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": "Giving them a -2 penalty to their Difficulty.
",
+ "description": "",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -92,16 +92,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!N9E5skDDK2VgvohR.8G9zDv1gac6dEHmS"
}
],
diff --git a/src/packs/classes/feature_Minor_Illusion_cshTYdtz9yoXYYB3.json b/src/packs/classes/feature_Minor_Illusion_cshTYdtz9yoXYYB3.json
index 5f4d5fe7..fe18f68b 100644
--- a/src/packs/classes/feature_Minor_Illusion_cshTYdtz9yoXYYB3.json
+++ b/src/packs/classes/feature_Minor_Illusion_cshTYdtz9yoXYYB3.json
@@ -23,7 +23,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/classes/feature_No_Mercy_njj2C3tMDeCHHOoh.json b/src/packs/classes/feature_No_Mercy_njj2C3tMDeCHHOoh.json
index 5b770e5d..4d10c3b9 100644
--- a/src/packs/classes/feature_No_Mercy_njj2C3tMDeCHHOoh.json
+++ b/src/packs/classes/feature_No_Mercy_njj2C3tMDeCHHOoh.json
@@ -67,29 +67,25 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.bonuses.roll.attack.bonus",
- "type": "add",
- "value": "@stacks",
- "priority": null,
- "phase": "initial"
- }
- ],
- "duration": {
- "type": "shortRest"
- },
- "stacking": {
- "max": null
}
},
+ "changes": [
+ {
+ "key": "system.bonuses.roll.attack.bonus",
+ "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": "Gain a +1 bonus to your attack rolls until your next rest.
",
"tint": "#ffffff",
@@ -99,16 +95,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!njj2C3tMDeCHHOoh.XK4cCcz9sRGDJr0q"
}
],
diff --git a/src/packs/classes/feature_Rogue_s_Dodge_hVaaPIjxoextIgSL.json b/src/packs/classes/feature_Rogue_s_Dodge_hVaaPIjxoextIgSL.json
index b886b079..231295fc 100644
--- a/src/packs/classes/feature_Rogue_s_Dodge_hVaaPIjxoextIgSL.json
+++ b/src/packs/classes/feature_Rogue_s_Dodge_hVaaPIjxoextIgSL.json
@@ -65,30 +65,25 @@
"type": "withinRange",
"target": "any",
"range": "self"
- },
- "changes": [
- {
- "key": "system.evasion",
- "type": "add",
- "value": "2 * @stacks",
- "priority": null,
- "phase": "initial"
- }
- ],
- "duration": {
- "type": "temporary",
- "description": "Until the next time an attack succeeds against you.
"
- },
- "stacking": {
- "max": null
}
},
+ "changes": [
+ {
+ "key": "system.evasion",
+ "mode": 2,
+ "value": "2",
+ "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": "Spend 3 Hope to gain a +2 bonus to your Evasion until the next time an attack succeeds against you. Otherwise, this bonus lasts until your next rest.
",
"tint": "#ffffff",
@@ -98,16 +93,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!hVaaPIjxoextIgSL.hhVjBro2osGDTT5g"
}
],
diff --git a/src/packs/classes/feature_Strange_Patterns_6YsfFjmCGuFYVhT4.json b/src/packs/classes/feature_Strange_Patterns_6YsfFjmCGuFYVhT4.json
index 6939ff7f..953b3a2c 100644
--- a/src/packs/classes/feature_Strange_Patterns_6YsfFjmCGuFYVhT4.json
+++ b/src/packs/classes/feature_Strange_Patterns_6YsfFjmCGuFYVhT4.json
@@ -29,8 +29,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -55,7 +55,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -85,7 +85,7 @@
{
"trigger": "dualityRoll",
"triggeringActorType": "self",
- "command": "/* Check if there's a Strange Pattern match */\nconst dice = [roll.dFear.total, roll.dHope.total];\nconst resource = this.parent.resource?.diceStates ? Object.values(this.parent.resource.diceStates).map(x => x.value)[0] : null;\nconst nrMatches = dice.filter(x => x === resource).length;\n\nif (!nrMatches) return;\n\n/* Create a dialog to choose Hope or Stress - or to cancel*/\nconst content = `\n ${game.i18n.format('DAGGERHEART.CONFIG.Triggers.triggerTexts.strangePatternsContentTitle', { nr: nrMatches })}
\n
${game.i18n.format('DAGGERHEART.CONFIG.Triggers.triggerTexts.strangePatternsContentSubTitle', { nr: nrMatches })}
\n
${game.i18n.localize('DAGGERHEART.CONFIG.Triggers.triggerTexts.strangePatternsActionExplanation')}
\n
\n \n \n
\n
`;\n\nconst result = await foundry.applications.api.DialogV2.input({\n classes: ['dh-style', 'two-big-buttons'],\n window: { title: this.item.name },\n content: content,\n render: (_, dialog) => {\n const hopeButton = dialog.element.querySelector('#hopeButton');\n const stressButton = dialog.element.querySelector('#stressButton');\ndialog.element.querySelector('button[type=\"submit\"]').disabled = true;\n \n const updateFunc = (event, selector, adding, clamp) => {\n const button = event.target.closest(`#${selector}Button`);\n const parent = event.target.closest('.flexrow');\n const hope = Number.parseInt(parent.querySelector('#hopeButton label').innerHTML);\n const stress = Number.parseInt(parent.querySelector('#stressButton label').innerHTML);\n const currentTotal = (Number.isNumeric(hope) ? hope : 0) + (Number.isNumeric(stress) ? stress : 0);\n if (adding && currentTotal === nrMatches) return;\n \n const current = Number.parseInt(button.querySelector('label').innerHTML);\n if (!adding && current === 0) return;\n \n const value = Number.isNumeric(current) ? adding ? current+1 : current-1 : 1;\n if (!dialog.data) dialog.data = {};\n dialog.data[selector] = clamp(value);\n button.querySelector('label').innerHTML = dialog.data[selector];\n\n event.target.closest('.dialog-form').querySelector('button[type=\"submit\"]').disabled = !adding || currentTotal < (nrMatches-1);\n \n };\n hopeButton.addEventListener('click', event => updateFunc(event, 'hope', true, x => Math.min(x, nrMatches)));\n hopeButton.addEventListener('contextmenu', event => updateFunc(event, 'hope', false, x => Math.max(x, 0)));\n stressButton.addEventListener('click', event => updateFunc(event, 'stress', true, x => Math.min(x, nrMatches)));\n stressButton.addEventListener('contextmenu', event => updateFunc(event, 'stress', false, x => Math.max(x, 0)));\n },\n ok: { callback: (_event, _result, dialog) => {\n const hope = dialog.data.hope ?? 0;\n const stress = dialog.data.stress ?? 0;\n if (!hope && !stress) return;\n\n /* Return resource update according to choices */\n const hopeUpdate = hope ? { key: 'hope', value: hope, total: -hope, enabled: true } : null;\n const stressUpdate = stress ? { key: 'stress', value: -stress, total: stress, enabled: true } : null;\n return { updates: [hopeUpdate, stressUpdate].filter(x => x) };\n }}\n});\n\nreturn result;"
+ "command": "/* Ignore if it's a TagTeam roll */\nconst tagTeam = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll);\nif (tagTeam.members[actor.id]) return;\n\n/* Check if there's a Strange Pattern match */\nconst dice = [roll.dFear.total, roll.dHope.total];\nconst resource = this.parent.resource?.diceStates ? Object.values(this.parent.resource.diceStates).map(x => x.value)[0] : null;\nconst nrMatches = dice.filter(x => x === resource).length;\n\nif (!nrMatches) return;\n\n/* Create a dialog to choose Hope or Stress - or to cancel*/\nconst content = `\n ${game.i18n.format('DAGGERHEART.CONFIG.Triggers.triggerTexts.strangePatternsContentTitle', { nr: nrMatches })}
\n
${game.i18n.format('DAGGERHEART.CONFIG.Triggers.triggerTexts.strangePatternsContentSubTitle', { nr: nrMatches })}
\n
${game.i18n.localize('DAGGERHEART.CONFIG.Triggers.triggerTexts.strangePatternsActionExplanation')}
\n
\n \n \n
\n
`;\n\nconst result = await foundry.applications.api.DialogV2.input({\n classes: ['dh-style', 'two-big-buttons'],\n window: { title: this.item.name },\n content: content,\n render: (_, dialog) => {\n const hopeButton = dialog.element.querySelector('#hopeButton');\n const stressButton = dialog.element.querySelector('#stressButton');\ndialog.element.querySelector('button[type=\"submit\"]').disabled = true;\n \n const updateFunc = (event, selector, adding, clamp) => {\n const button = event.target.closest(`#${selector}Button`);\n const parent = event.target.closest('.flexrow');\n const hope = Number.parseInt(parent.querySelector('#hopeButton label').innerHTML);\n const stress = Number.parseInt(parent.querySelector('#stressButton label').innerHTML);\n const currentTotal = (Number.isNumeric(hope) ? hope : 0) + (Number.isNumeric(stress) ? stress : 0);\n if (adding && currentTotal === nrMatches) return;\n \n const current = Number.parseInt(button.querySelector('label').innerHTML);\n if (!adding && current === 0) return;\n \n const value = Number.isNumeric(current) ? adding ? current+1 : current-1 : 1;\n if (!dialog.data) dialog.data = {};\n dialog.data[selector] = clamp(value);\n button.querySelector('label').innerHTML = dialog.data[selector];\n\n event.target.closest('.dialog-form').querySelector('button[type=\"submit\"]').disabled = !adding || currentTotal < (nrMatches-1);\n \n };\n hopeButton.addEventListener('click', event => updateFunc(event, 'hope', true, x => Math.min(x, nrMatches)));\n hopeButton.addEventListener('contextmenu', event => updateFunc(event, 'hope', false, x => Math.max(x, 0)));\n stressButton.addEventListener('click', event => updateFunc(event, 'stress', true, x => Math.min(x, nrMatches)));\n stressButton.addEventListener('contextmenu', event => updateFunc(event, 'stress', false, x => Math.max(x, 0)));\n },\n ok: { callback: (_event, _result, dialog) => {\n const hope = dialog.data.hope ?? 0;\n const stress = dialog.data.stress ?? 0;\n if (!hope && !stress) return;\n\n /* Return resource update according to choices */\n const hopeUpdate = hope ? { key: 'hope', value: hope, total: -hope, enabled: true } : null;\n const stressUpdate = stress ? { key: 'stress', value: -stress, total: stress, enabled: true } : null;\n return { updates: [hopeUpdate, stressUpdate].filter(x => x) };\n }}\n});\n\nreturn result;"
}
]
}
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_A_Soldier_s_Bond_Y08dLFuPXsgeRrHi.json b/src/packs/domains/domainCard_A_Soldier_s_Bond_Y08dLFuPXsgeRrHi.json
index 09255a76..d3da85b6 100644
--- a/src/packs/domains/domainCard_A_Soldier_s_Bond_Y08dLFuPXsgeRrHi.json
+++ b/src/packs/domains/domainCard_A_Soldier_s_Bond_Y08dLFuPXsgeRrHi.json
@@ -25,8 +25,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -51,7 +51,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Arcane_Reflection_JzSvxy9Mu3RJp1jV.json b/src/packs/domains/domainCard_Arcane_Reflection_JzSvxy9Mu3RJp1jV.json
index e557b8cd..e6d38e3f 100644
--- a/src/packs/domains/domainCard_Arcane_Reflection_JzSvxy9Mu3RJp1jV.json
+++ b/src/packs/domains/domainCard_Arcane_Reflection_JzSvxy9Mu3RJp1jV.json
@@ -33,7 +33,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Armorer_cy8GjBPGc9w9RaGO.json b/src/packs/domains/domainCard_Armorer_cy8GjBPGc9w9RaGO.json
index cad6012e..aa9910dc 100644
--- a/src/packs/domains/domainCard_Armorer_cy8GjBPGc9w9RaGO.json
+++ b/src/packs/domains/domainCard_Armorer_cy8GjBPGc9w9RaGO.json
@@ -24,8 +24,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "armor": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -50,7 +50,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -92,28 +92,34 @@
"name": "Armorer",
"type": "base",
"system": {
- "changes": [
- {
- "type": "armor",
- "phase": "initial",
- "priority": 20,
- "value": {
- "max": "1",
- "interaction": "active"
- }
- }
- ]
+ "rangeDependence": {
+ "enabled": false,
+ "type": "withinRange",
+ "target": "hostile",
+ "range": "melee"
+ }
},
- "_id": "tJw2JIPcT9hEMRXg",
+ "_id": "cED730OjuMW5haJR",
"img": "icons/tools/hand/hammer-and-nail.webp",
+ "changes": [
+ {
+ "key": "system.armorScore",
+ "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": "While youβre wearing armor, gain a +1 bonus to your Armor Score.
",
+ "description": "While youβre wearing armor, gain a +1 bonus to your Armor Score.
",
"origin": null,
"tint": "#ffffff",
"transfer": true,
@@ -123,10 +129,7 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
- "_key": "!items.effects!cy8GjBPGc9w9RaGO.tJw2JIPcT9hEMRXg"
+ "_key": "!items.effects!cy8GjBPGc9w9RaGO.cED730OjuMW5haJR"
}
],
"ownership": {
diff --git a/src/packs/domains/domainCard_Banish_AIbHfryMA2Rvs1ut.json b/src/packs/domains/domainCard_Banish_AIbHfryMA2Rvs1ut.json
index e3c23dbf..b637a622 100644
--- a/src/packs/domains/domainCard_Banish_AIbHfryMA2Rvs1ut.json
+++ b/src/packs/domains/domainCard_Banish_AIbHfryMA2Rvs1ut.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Bare_Bones_l5D9kq901JDESaXw.json b/src/packs/domains/domainCard_Bare_Bones_l5D9kq901JDESaXw.json
index 7956d6eb..3b1ea76a 100644
--- a/src/packs/domains/domainCard_Bare_Bones_l5D9kq901JDESaXw.json
+++ b/src/packs/domains/domainCard_Bare_Bones_l5D9kq901JDESaXw.json
@@ -4,7 +4,7 @@
"type": "domainCard",
"folder": "QpOL7jPbMBzH96qR",
"system": {
- "description": "When you choose not to equip armor, you have a base Armor Score of 3 + your Strength and use the following as your base damage thresholds:
Tier 1: 9/19
Tier 2: 11/24
Tier 3: 13/31
Tier 4: 15/38
",
+ "description": "When you choose not to equip armor, you have a base Armor Score of 3 + your Strength and use the following as your base damage thresholds:
- Tier 1: 9/19
- Tier 2: 11/24
- Tier 3: 13/31
- Tier 4: 15/38
Equip the below armor to use Bare Bones.
@UUID[Compendium.daggerheart.armors.Item.ITAjcigTcUw5pMCN]{Bare Bones}
",
"domain": "valor",
"recallCost": 0,
"level": 1,
@@ -19,63 +19,7 @@
}
},
"flags": {},
- "effects": [
- {
- "name": "Bare Bones",
- "type": "base",
- "system": {
- "changes": [
- {
- "type": "armor",
- "phase": "initial",
- "value": {
- "current": 0,
- "max": "3 + @system.traits.strength.value",
- "interaction": "inactive",
- "damageThresholds": {
- "major": "9 + (@tier - 1) * 2",
- "severe": "19 + (@tier - 1) * 5 + max(0, (@tier -2) * 2 )"
- }
- },
- "priority": 20
- }
- ],
- "duration": {
- "type": ""
- }
- },
- "_id": "FCsgz7Tdsw6QUzBs",
- "img": "icons/magic/control/buff-strength-muscle-damage-orange.webp",
- "disabled": false,
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
- },
- "description": "You have a base Armor Score of 3 + your Strength.
",
- "origin": null,
- "tint": "#ffffff",
- "transfer": true,
- "statuses": [],
- "showIcon": 1,
- "folder": null,
- "sort": 0,
- "flags": {},
- "_stats": {
- "compendiumSource": null
- },
- "_key": "!items.effects!l5D9kq901JDESaXw.FCsgz7Tdsw6QUzBs"
- }
- ],
+ "effects": [],
"ownership": {
"default": 0,
"MQSznptE5yLT7kj8": 3
diff --git a/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json b/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json
index 1fde286d..432f9992 100644
--- a/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json
+++ b/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json
@@ -25,8 +25,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -51,7 +51,7 @@
},
"type": []
},
- "hope": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -76,7 +76,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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_Battle_Hardened_NeEOghgfyDUBTwBG.json b/src/packs/domains/domainCard_Battle_Hardened_NeEOghgfyDUBTwBG.json
index 852cd329..dfd0c68d 100644
--- a/src/packs/domains/domainCard_Battle_Hardened_NeEOghgfyDUBTwBG.json
+++ b/src/packs/domains/domainCard_Battle_Hardened_NeEOghgfyDUBTwBG.json
@@ -25,8 +25,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -51,7 +51,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Blink_Out_Qu0iA4s3Xov10Erd.json b/src/packs/domains/domainCard_Blink_Out_Qu0iA4s3Xov10Erd.json
index 617bd27b..0b96d99c 100644
--- a/src/packs/domains/domainCard_Blink_Out_Qu0iA4s3Xov10Erd.json
+++ b/src/packs/domains/domainCard_Blink_Out_Qu0iA4s3Xov10Erd.json
@@ -33,7 +33,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Bolt_Beacon_BNevJyGk7hmN7XOY.json b/src/packs/domains/domainCard_Bolt_Beacon_BNevJyGk7hmN7XOY.json
index df7d36a4..eb053b27 100644
--- a/src/packs/domains/domainCard_Bolt_Beacon_BNevJyGk7hmN7XOY.json
+++ b/src/packs/domains/domainCard_Bolt_Beacon_BNevJyGk7hmN7XOY.json
@@ -33,8 +33,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -58,7 +58,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -119,20 +119,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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": "Temporarily Vulnerable and glows brightly until this condition is cleared.
",
+ "description": "Temporarily Vulnerable and glows brightly until this condition is cleared.
",
"tint": "#ffffff",
"statuses": [
"vulnerable"
@@ -142,16 +142,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!BNevJyGk7hmN7XOY.veZpnhnF8NRRhKG4"
}
],
diff --git a/src/packs/domains/domainCard_Book_of_Ava_YtZzYBtR0yLPPA93.json b/src/packs/domains/domainCard_Book_of_Ava_YtZzYBtR0yLPPA93.json
index fa247c89..4ed5bd63 100644
--- a/src/packs/domains/domainCard_Book_of_Ava_YtZzYBtR0yLPPA93.json
+++ b/src/packs/domains/domainCard_Book_of_Ava_YtZzYBtR0yLPPA93.json
@@ -24,8 +24,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -51,7 +51,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -105,7 +105,7 @@
},
"effects": [
{
- "_id": "ptYT10JZ2WJHvFMd",
+ "_id": "LdcT1nrkd5ORCU4n",
"onSave": false
}
],
@@ -131,7 +131,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -177,8 +177,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -204,7 +204,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -252,7 +252,7 @@
"img": "icons/magic/defensive/shield-barrier-glowing-triangle-blue.webp",
"origin": "Compendium.daggerheart.domains.Item.YtZzYBtR0yLPPA93",
"transfer": false,
- "_id": "ptYT10JZ2WJHvFMd",
+ "_id": "LdcT1nrkd5ORCU4n",
"type": "base",
"system": {
"rangeDependence": {
@@ -260,27 +260,25 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "type": "armor",
- "phase": "initial",
- "priority": 20,
- "value": {
- "max": "1"
- }
- }
- ],
- "duration": {
- "type": "shortRest"
}
},
+ "changes": [
+ {
+ "key": "system.armorScore",
+ "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": "+1 bonus to your Armor Score until your next rest, or the caster cast's Tavaβs Armor again.
",
"tint": "#ffffff",
@@ -290,17 +288,7 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
- "_key": "!items.effects!YtZzYBtR0yLPPA93.ptYT10JZ2WJHvFMd"
+ "_key": "!items.effects!YtZzYBtR0yLPPA93.LdcT1nrkd5ORCU4n"
}
],
"ownership": {
diff --git a/src/packs/domains/domainCard_Book_of_Exota_oVs2MSC6Uf5GbgEG.json b/src/packs/domains/domainCard_Book_of_Exota_oVs2MSC6Uf5GbgEG.json
index d228d04b..032a2de2 100644
--- a/src/packs/domains/domainCard_Book_of_Exota_oVs2MSC6Uf5GbgEG.json
+++ b/src/packs/domains/domainCard_Book_of_Exota_oVs2MSC6Uf5GbgEG.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -100,8 +100,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -127,7 +127,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Book_of_Grynn_R0LNheiZycZlZzV3.json b/src/packs/domains/domainCard_Book_of_Grynn_R0LNheiZycZlZzV3.json
index c01cb756..05276707 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": [],
@@ -76,8 +76,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -103,7 +103,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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_Homet_gFMx08ogQ8hS2Obi.json b/src/packs/domains/domainCard_Book_of_Homet_gFMx08ogQ8hS2Obi.json
index f6f048d1..a0102739 100644
--- a/src/packs/domains/domainCard_Book_of_Homet_gFMx08ogQ8hS2Obi.json
+++ b/src/packs/domains/domainCard_Book_of_Homet_gFMx08ogQ8hS2Obi.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -72,7 +72,7 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Book_of_Illiat_df4iRqQzRntrF6Qw.json b/src/packs/domains/domainCard_Book_of_Illiat_df4iRqQzRntrF6Qw.json
index b34fa000..5acec2fd 100644
--- a/src/packs/domains/domainCard_Book_of_Illiat_df4iRqQzRntrF6Qw.json
+++ b/src/packs/domains/domainCard_Book_of_Illiat_df4iRqQzRntrF6Qw.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -82,8 +82,8 @@
"recovery": "shortRest"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -177,18 +177,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "shortRest"
}
},
+ "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": "Lasts until your next rest or the caster casts Telepathy again.
",
"tint": "#ffffff",
@@ -198,16 +198,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!df4iRqQzRntrF6Qw.zAEaETYSOE2fmcyB"
},
{
@@ -223,19 +213,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until they take damage or the GM spends a Fear on their turn to clear this condition.
"
}
},
+ "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": "Asleep until they take damage or the GM spends a Fear on their turn to clear this condition.
",
"tint": "#ffffff",
@@ -245,16 +234,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!df4iRqQzRntrF6Qw.gfZTHSgwYSDKsePW"
}
],
diff --git a/src/packs/domains/domainCard_Book_of_Korvax_cWRFHJdxEZ0M1dAg.json b/src/packs/domains/domainCard_Book_of_Korvax_cWRFHJdxEZ0M1dAg.json
index 3eb501e8..5bef4922 100644
--- a/src/packs/domains/domainCard_Book_of_Korvax_cWRFHJdxEZ0M1dAg.json
+++ b/src/packs/domains/domainCard_Book_of_Korvax_cWRFHJdxEZ0M1dAg.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -77,7 +77,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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": [
@@ -130,8 +130,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -157,7 +157,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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_Norai_WtwSWXTRZa7QVvmo.json b/src/packs/domains/domainCard_Book_of_Norai_WtwSWXTRZa7QVvmo.json
index f32f380a..6581cd52 100644
--- a/src/packs/domains/domainCard_Book_of_Norai_WtwSWXTRZa7QVvmo.json
+++ b/src/packs/domains/domainCard_Book_of_Norai_WtwSWXTRZa7QVvmo.json
@@ -24,8 +24,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -50,7 +50,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -101,8 +101,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -128,7 +128,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -184,18 +184,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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",
@@ -207,16 +207,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!WtwSWXTRZa7QVvmo.iPnT02apql16Zhjf"
}
],
diff --git a/src/packs/domains/domainCard_Book_of_Ronin_SZMNR3uGNinJcN4N.json b/src/packs/domains/domainCard_Book_of_Ronin_SZMNR3uGNinJcN4N.json
index 88bb759d..c809a8e0 100644
--- a/src/packs/domains/domainCard_Book_of_Ronin_SZMNR3uGNinJcN4N.json
+++ b/src/packs/domains/domainCard_Book_of_Ronin_SZMNR3uGNinJcN4N.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -75,7 +75,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Book_of_Sitil_eq8VNqYMRHhF9xw9.json b/src/packs/domains/domainCard_Book_of_Sitil_eq8VNqYMRHhF9xw9.json
index 16b7a63b..e88ccea9 100644
--- a/src/packs/domains/domainCard_Book_of_Sitil_eq8VNqYMRHhF9xw9.json
+++ b/src/packs/domains/domainCard_Book_of_Sitil_eq8VNqYMRHhF9xw9.json
@@ -85,7 +85,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Book_of_Tyfar_1VXzwRbvbBj5bd5V.json b/src/packs/domains/domainCard_Book_of_Tyfar_1VXzwRbvbBj5bd5V.json
index 37b71b9c..4eabb038 100644
--- a/src/packs/domains/domainCard_Book_of_Tyfar_1VXzwRbvbBj5bd5V.json
+++ b/src/packs/domains/domainCard_Book_of_Tyfar_1VXzwRbvbBj5bd5V.json
@@ -24,8 +24,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -51,7 +51,7 @@
}
}
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -76,7 +76,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -144,7 +144,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Book_of_Vagras_aknDDYtN7EObv94t.json b/src/packs/domains/domainCard_Book_of_Vagras_aknDDYtN7EObv94t.json
index a5764f48..eadd1550 100644
--- a/src/packs/domains/domainCard_Book_of_Vagras_aknDDYtN7EObv94t.json
+++ b/src/packs/domains/domainCard_Book_of_Vagras_aknDDYtN7EObv94t.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -79,7 +79,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -125,7 +125,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Book_of_Vyola_VOIgm2j2Ijszwc5m.json b/src/packs/domains/domainCard_Book_of_Vyola_VOIgm2j2Ijszwc5m.json
index 522a8f7c..b94cd702 100644
--- a/src/packs/domains/domainCard_Book_of_Vyola_VOIgm2j2Ijszwc5m.json
+++ b/src/packs/domains/domainCard_Book_of_Vyola_VOIgm2j2Ijszwc5m.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Book_of_Yarrow_J1ovx2FpNDvPq1o6.json b/src/packs/domains/domainCard_Book_of_Yarrow_J1ovx2FpNDvPq1o6.json
index 45fbc77f..2a48b31e 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": [],
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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",
@@ -123,25 +114,25 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.resistance.magical.immunity",
- "value": 1,
- "priority": null,
- "type": "override"
- }
- ],
- "duration": {
- "type": "shortRest"
}
},
+ "changes": [
+ {
+ "key": "system.resistance.magical.immunity",
+ "mode": 5,
+ "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": "Immune to magic damage until your next rest.
",
"tint": "#ffffff",
@@ -151,16 +142,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!J1ovx2FpNDvPq1o6.HWJYhSegVLeAa3dE"
}
],
diff --git a/src/packs/domains/domainCard_Chain_Lightning_0kAVO6rordCfZqYP.json b/src/packs/domains/domainCard_Chain_Lightning_0kAVO6rordCfZqYP.json
index 6da2a76c..682357cc 100644
--- a/src/packs/domains/domainCard_Chain_Lightning_0kAVO6rordCfZqYP.json
+++ b/src/packs/domains/domainCard_Chain_Lightning_0kAVO6rordCfZqYP.json
@@ -33,8 +33,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -60,7 +60,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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",
@@ -116,8 +107,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -143,7 +134,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Champion_s_Edge_rnejRbUQsNGX1GMC.json b/src/packs/domains/domainCard_Champion_s_Edge_rnejRbUQsNGX1GMC.json
index 304541e4..be639515 100644
--- a/src/packs/domains/domainCard_Champion_s_Edge_rnejRbUQsNGX1GMC.json
+++ b/src/packs/domains/domainCard_Champion_s_Edge_rnejRbUQsNGX1GMC.json
@@ -33,8 +33,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -59,7 +59,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -109,8 +109,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "armor": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -135,7 +135,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -185,8 +185,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -213,7 +213,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Chokehold_R5GYUalYXLLFRlNl.json b/src/packs/domains/domainCard_Chokehold_R5GYUalYXLLFRlNl.json
index 73424902..587e7855 100644
--- a/src/packs/domains/domainCard_Chokehold_R5GYUalYXLLFRlNl.json
+++ b/src/packs/domains/domainCard_Chokehold_R5GYUalYXLLFRlNl.json
@@ -65,7 +65,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Cinder_Grasp_5EP2Lgf7ojfrc0Is.json b/src/packs/domains/domainCard_Cinder_Grasp_5EP2Lgf7ojfrc0Is.json
index e3df986e..8ea51d7f 100644
--- a/src/packs/domains/domainCard_Cinder_Grasp_5EP2Lgf7ojfrc0Is.json
+++ b/src/packs/domains/domainCard_Cinder_Grasp_5EP2Lgf7ojfrc0Is.json
@@ -25,8 +25,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -52,7 +52,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -104,8 +104,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -131,7 +131,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -167,18 +167,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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": "When a creature acts while On Fire, they must take an extra 2d6 magic damage if they are still On Fire at the end of their action.
",
"tint": "#ffffff",
@@ -190,16 +190,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!5EP2Lgf7ojfrc0Is.HNKkaWi507whJuYN"
}
],
diff --git a/src/packs/domains/domainCard_Cloaking_Blast_Zhw7PtK8nMPlsOqD.json b/src/packs/domains/domainCard_Cloaking_Blast_Zhw7PtK8nMPlsOqD.json
index a2a06889..67817fc1 100644
--- a/src/packs/domains/domainCard_Cloaking_Blast_Zhw7PtK8nMPlsOqD.json
+++ b/src/packs/domains/domainCard_Cloaking_Blast_Zhw7PtK8nMPlsOqD.json
@@ -70,19 +70,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "When you move into or within an adversaryβs line of sight or make an attack, you are no longer Cloaked.
"
}
},
+ "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": "While Cloaked, you remain unseen if you are stationary when an adversary moves to where they would normally see you. When you move into or within an adversaryβs line of sight or make an attack, you are no longer Cloaked.
",
"tint": "#ffffff",
@@ -92,16 +91,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!Zhw7PtK8nMPlsOqD.twCBqXytmRkMz0kV"
}
],
diff --git a/src/packs/domains/domainCard_Confusing_Aura_R8NDiJXJWmC48WSr.json b/src/packs/domains/domainCard_Confusing_Aura_R8NDiJXJWmC48WSr.json
index a261da89..859635f3 100644
--- a/src/packs/domains/domainCard_Confusing_Aura_R8NDiJXJWmC48WSr.json
+++ b/src/packs/domains/domainCard_Confusing_Aura_R8NDiJXJWmC48WSr.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -80,7 +80,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Conjure_Swarm_rZPH0BY8Sznc9sFG.json b/src/packs/domains/domainCard_Conjure_Swarm_rZPH0BY8Sznc9sFG.json
index d9e8da6d..ededde93 100644
--- a/src/packs/domains/domainCard_Conjure_Swarm_rZPH0BY8Sznc9sFG.json
+++ b/src/packs/domains/domainCard_Conjure_Swarm_rZPH0BY8Sznc9sFG.json
@@ -31,7 +31,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -119,8 +119,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -148,7 +148,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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_Corrosive_Projectile_qJaSNTuDfbPVr8Lb.json b/src/packs/domains/domainCard_Corrosive_Projectile_qJaSNTuDfbPVr8Lb.json
index 6a039bbf..09dff08a 100644
--- a/src/packs/domains/domainCard_Corrosive_Projectile_qJaSNTuDfbPVr8Lb.json
+++ b/src/packs/domains/domainCard_Corrosive_Projectile_qJaSNTuDfbPVr8Lb.json
@@ -24,8 +24,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -49,7 +49,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -127,7 +127,7 @@
"sort": 3400000,
"effects": [
{
- "name": "Corroded",
+ "name": "Corroded (1 stack)",
"img": "icons/magic/acid/dissolve-bone-white.webp",
"origin": "Compendium.daggerheart.domains.Item.qJaSNTuDfbPVr8Lb",
"transfer": false,
@@ -139,31 +139,27 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.difficulty",
- "type": "add",
- "value": "-@stack",
- "priority": null,
- "phase": "initial"
- }
- ],
- "stacking": {
- "max": null
- },
- "duration": {
- "type": ""
}
},
+ "changes": [
+ {
+ "key": "system.difficulty",
+ "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": "While a target is Corroded, they gain a β1 penalty to their Difficulty for every 2 Stress you spent. This condition can stack.
",
+ "description": "While a target is Corroded, they gain a β1 penalty to their Difficulty for every 2 Stress you spent. This condition can stack.
",
"tint": "#ffffff",
"statuses": [
"corrode"
@@ -173,16 +169,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!qJaSNTuDfbPVr8Lb.zB95bjSSdVlApQnR"
}
],
diff --git a/src/packs/domains/domainCard_Counterspell_6dhqo1kzGxejCjHa.json b/src/packs/domains/domainCard_Counterspell_6dhqo1kzGxejCjHa.json
index a8d403d8..7d3a74c9 100644
--- a/src/packs/domains/domainCard_Counterspell_6dhqo1kzGxejCjHa.json
+++ b/src/packs/domains/domainCard_Counterspell_6dhqo1kzGxejCjHa.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Critical_Inspiration_ABp9pUfBS69NomTD.json b/src/packs/domains/domainCard_Critical_Inspiration_ABp9pUfBS69NomTD.json
index 252878ea..c8013a14 100644
--- a/src/packs/domains/domainCard_Critical_Inspiration_ABp9pUfBS69NomTD.json
+++ b/src/packs/domains/domainCard_Critical_Inspiration_ABp9pUfBS69NomTD.json
@@ -24,7 +24,7 @@
"recovery": "longRest"
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Dark_Whispers_yL2qrSWmTwXVOySH.json b/src/packs/domains/domainCard_Dark_Whispers_yL2qrSWmTwXVOySH.json
index 7d8ecf40..390a2526 100644
--- a/src/packs/domains/domainCard_Dark_Whispers_yL2qrSWmTwXVOySH.json
+++ b/src/packs/domains/domainCard_Dark_Whispers_yL2qrSWmTwXVOySH.json
@@ -31,7 +31,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Death_Grip_x0FVGE1YbfXalJiw.json b/src/packs/domains/domainCard_Death_Grip_x0FVGE1YbfXalJiw.json
index d33b6bab..6e7c6b64 100644
--- a/src/packs/domains/domainCard_Death_Grip_x0FVGE1YbfXalJiw.json
+++ b/src/packs/domains/domainCard_Death_Grip_x0FVGE1YbfXalJiw.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -75,8 +75,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -101,7 +101,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -152,8 +152,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -179,7 +179,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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_Disintegration_Wave_kja5qvh4rdeDBB96.json b/src/packs/domains/domainCard_Disintegration_Wave_kja5qvh4rdeDBB96.json
index 7d7ed27d..4e3c3083 100644
--- a/src/packs/domains/domainCard_Disintegration_Wave_kja5qvh4rdeDBB96.json
+++ b/src/packs/domains/domainCard_Disintegration_Wave_kja5qvh4rdeDBB96.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Earthquake_C0qLOwSSvZ6PG3Ws.json b/src/packs/domains/domainCard_Earthquake_C0qLOwSSvZ6PG3Ws.json
index 0a35c95f..57fc72db 100644
--- a/src/packs/domains/domainCard_Earthquake_C0qLOwSSvZ6PG3Ws.json
+++ b/src/packs/domains/domainCard_Earthquake_C0qLOwSSvZ6PG3Ws.json
@@ -34,8 +34,8 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -61,7 +61,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -123,20 +123,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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": "Temporarily Vulnerable.
",
+ "description": "Temporarily Vulnerable.
",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -144,16 +144,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!C0qLOwSSvZ6PG3Ws.Z31XqmGUKWYcZdMY"
}
],
diff --git a/src/packs/domains/domainCard_Eclipse_62Sj67PdPFzwWVe3.json b/src/packs/domains/domainCard_Eclipse_62Sj67PdPFzwWVe3.json
index e2afaf66..bd080f0d 100644
--- a/src/packs/domains/domainCard_Eclipse_62Sj67PdPFzwWVe3.json
+++ b/src/packs/domains/domainCard_Eclipse_62Sj67PdPFzwWVe3.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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",
@@ -85,8 +76,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -111,7 +102,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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_Encore_klahWDFwihqqEhXP.json b/src/packs/domains/domainCard_Encore_klahWDFwihqqEhXP.json
index fabc00e1..23358d47 100644
--- a/src/packs/domains/domainCard_Encore_klahWDFwihqqEhXP.json
+++ b/src/packs/domains/domainCard_Encore_klahWDFwihqqEhXP.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Enrapture_a8lFiKX1o8T924ze.json b/src/packs/domains/domainCard_Enrapture_a8lFiKX1o8T924ze.json
index 284682fa..fd27c8ce 100644
--- a/src/packs/domains/domainCard_Enrapture_a8lFiKX1o8T924ze.json
+++ b/src/packs/domains/domainCard_Enrapture_a8lFiKX1o8T924ze.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -82,8 +82,8 @@
"recovery": "shortRest"
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -108,7 +108,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -144,18 +144,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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": "While Enraptured, a targetβs attention is fixed on you, narrowing their field of view and drowning out any sound but your voice.
",
"tint": "#ffffff",
@@ -165,16 +165,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!a8lFiKX1o8T924ze.EYG5dLImk6GkmfRd"
}
],
diff --git a/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json b/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json
index 2086deaa..ee36e25d 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": [
@@ -33,8 +33,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -59,7 +59,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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_Final_Words_Nbw6Jnh1vRZzwHQI.json b/src/packs/domains/domainCard_Final_Words_Nbw6Jnh1vRZzwHQI.json
index 65d7dd83..757a705a 100644
--- a/src/packs/domains/domainCard_Final_Words_Nbw6Jnh1vRZzwHQI.json
+++ b/src/packs/domains/domainCard_Final_Words_Nbw6Jnh1vRZzwHQI.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Flight_54GUjNuBEy7xdzMz.json b/src/packs/domains/domainCard_Flight_54GUjNuBEy7xdzMz.json
index 4d1355ee..bd8744f7 100644
--- a/src/packs/domains/domainCard_Flight_54GUjNuBEy7xdzMz.json
+++ b/src/packs/domains/domainCard_Flight_54GUjNuBEy7xdzMz.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Forager_06UapZuaA5S6fAKl.json b/src/packs/domains/domainCard_Forager_06UapZuaA5S6fAKl.json
index e8919d6b..292961b8 100644
--- a/src/packs/domains/domainCard_Forager_06UapZuaA5S6fAKl.json
+++ b/src/packs/domains/domainCard_Forager_06UapZuaA5S6fAKl.json
@@ -24,8 +24,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -50,7 +50,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -91,8 +91,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -117,7 +117,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -185,8 +185,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -211,7 +211,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Forceful_Push_z8FFPhDh2SdFkFfS.json b/src/packs/domains/domainCard_Forceful_Push_z8FFPhDh2SdFkFfS.json
index 3d17ab5d..d77c8777 100644
--- a/src/packs/domains/domainCard_Forceful_Push_z8FFPhDh2SdFkFfS.json
+++ b/src/packs/domains/domainCard_Forceful_Push_z8FFPhDh2SdFkFfS.json
@@ -69,18 +69,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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",
@@ -92,16 +92,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!z8FFPhDh2SdFkFfS.95oX6QYPySdyyh2v"
}
],
diff --git a/src/packs/domains/domainCard_Forest_Sprites_JrkUMTzaFmQNBHVm.json b/src/packs/domains/domainCard_Forest_Sprites_JrkUMTzaFmQNBHVm.json
index 4fa469a6..feb095a2 100644
--- a/src/packs/domains/domainCard_Forest_Sprites_JrkUMTzaFmQNBHVm.json
+++ b/src/packs/domains/domainCard_Forest_Sprites_JrkUMTzaFmQNBHVm.json
@@ -32,7 +32,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Frenzy_MMl7abdGRLl7TJLO.json b/src/packs/domains/domainCard_Frenzy_MMl7abdGRLl7TJLO.json
index 6666bc28..2de4be7e 100644
--- a/src/packs/domains/domainCard_Frenzy_MMl7abdGRLl7TJLO.json
+++ b/src/packs/domains/domainCard_Frenzy_MMl7abdGRLl7TJLO.json
@@ -62,44 +62,43 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.bonuses.damage.physical.bonus",
- "value": 10,
- "priority": null,
- "type": "add"
- },
- {
- "key": "system.bonuses.damage.magical.bonus",
- "value": 10,
- "priority": null,
- "type": "add"
- },
- {
- "key": "system.damageThresholds.severe",
- "value": 8,
- "priority": null,
- "type": "add"
- },
- {
- "key": "system.rules.damageReduction.disabledArmor",
- "value": 1,
- "priority": null,
- "type": "override"
- }
- ],
- "duration": {
- "type": "temporary",
- "description": "Until there are no more adversaries within sight.
"
}
},
+ "changes": [
+ {
+ "key": "system.bonuses.damage.physical.bonus",
+ "mode": 2,
+ "value": "10",
+ "priority": null
+ },
+ {
+ "key": "system.bonuses.damage.magical.bonus",
+ "mode": 2,
+ "value": "10",
+ "priority": null
+ },
+ {
+ "key": "system.damageThresholds.severe",
+ "mode": 2,
+ "value": "8",
+ "priority": null
+ },
+ {
+ "key": "system.rules.damageReduction.disabledArmor",
+ "mode": 5,
+ "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": "Once per long rest, you can go into a Frenzy until there are no more adversaries within sight.
While Frenzied, you canβt use Armor Slots, and you gain a +10 bonus to your damage rolls and a +8 bonus to your Severe damage threshold.
",
"tint": "#ffffff",
@@ -109,16 +108,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!MMl7abdGRLl7TJLO.1POoAgObPOWDpUco"
}
],
diff --git a/src/packs/domains/domainCard_Full_Surge_SgvjJfMyubZowPxS.json b/src/packs/domains/domainCard_Full_Surge_SgvjJfMyubZowPxS.json
index fb0bd16d..43b4baf4 100644
--- a/src/packs/domains/domainCard_Full_Surge_SgvjJfMyubZowPxS.json
+++ b/src/packs/domains/domainCard_Full_Surge_SgvjJfMyubZowPxS.json
@@ -68,57 +68,57 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.traits.strength.value",
- "value": 2,
- "priority": null,
- "type": "add"
- },
- {
- "key": "system.traits.agility.value",
- "value": 2,
- "priority": null,
- "type": "add"
- },
- {
- "key": "system.traits.finesse.value",
- "value": 2,
- "priority": null,
- "type": "add"
- },
- {
- "key": "system.traits.instinct.value",
- "value": 2,
- "priority": null,
- "type": "add"
- },
- {
- "key": "system.traits.presence.value",
- "value": 2,
- "priority": null,
- "type": "add"
- },
- {
- "key": "system.traits.knowledge.value",
- "value": 2,
- "priority": null,
- "type": "add"
- }
- ],
- "duration": {
- "type": "shortRest"
}
},
+ "changes": [
+ {
+ "key": "system.traits.strength.value",
+ "mode": 2,
+ "value": "2",
+ "priority": null
+ },
+ {
+ "key": "system.traits.agility.value",
+ "mode": 2,
+ "value": "2",
+ "priority": null
+ },
+ {
+ "key": "system.traits.finesse.value",
+ "mode": 2,
+ "value": "2",
+ "priority": null
+ },
+ {
+ "key": "system.traits.instinct.value",
+ "mode": 2,
+ "value": "2",
+ "priority": null
+ },
+ {
+ "key": "system.traits.presence.value",
+ "mode": 2,
+ "value": "2",
+ "priority": null
+ },
+ {
+ "key": "system.traits.knowledge.value",
+ "mode": 2,
+ "value": "2",
+ "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": "Gain a +2 bonus to all of your character traits until your next rest.
",
+ "description": "Gain a +2 bonus to all of your character traits until your next rest.
",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -126,16 +126,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!SgvjJfMyubZowPxS.H5q5iYImr69TfZcp"
}
],
diff --git a/src/packs/domains/domainCard_Glancing_Blow_nCNCqSH7UgW4O3To.json b/src/packs/domains/domainCard_Glancing_Blow_nCNCqSH7UgW4O3To.json
index a0766c1c..70338c03 100644
--- a/src/packs/domains/domainCard_Glancing_Blow_nCNCqSH7UgW4O3To.json
+++ b/src/packs/domains/domainCard_Glancing_Blow_nCNCqSH7UgW4O3To.json
@@ -33,7 +33,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Glyph_of_Nightfall_B5HXqYRJiL3xMNKT.json b/src/packs/domains/domainCard_Glyph_of_Nightfall_B5HXqYRJiL3xMNKT.json
index 35100187..ef2b6df9 100644
--- a/src/packs/domains/domainCard_Glyph_of_Nightfall_B5HXqYRJiL3xMNKT.json
+++ b/src/packs/domains/domainCard_Glyph_of_Nightfall_B5HXqYRJiL3xMNKT.json
@@ -32,7 +32,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -41,7 +41,7 @@
},
"effects": [
{
- "_id": "9avDhppIdTqAR56f",
+ "_id": "X2w3kRHaETs8YWLO",
"onSave": false
}
],
@@ -82,25 +82,12 @@
"effects": [
{
"name": "Glyph of Nightfall",
- "img": "systems/daggerheart/assets/icons/domains/domain-card/midnight.png",
+ "img": "icons/magic/symbols/runes-triangle-magenta.webp",
"origin": "Compendium.daggerheart.domains.Item.B5HXqYRJiL3xMNKT",
"transfer": false,
- "_id": "9avDhppIdTqAR56f",
+ "_id": "st8Ji9ZNexvw64xM",
"type": "base",
"system": {
- "changes": [
- {
- "key": "system.difficulty",
- "type": "add",
- "value": "-max(ORIGIN.@system.traits.knowledge.value,1)",
- "priority": null,
- "phase": "initial"
- }
- ],
- "duration": {
- "description": "",
- "type": "temporary"
- },
"rangeDependence": {
"enabled": false,
"type": "withinRange",
@@ -108,32 +95,76 @@
"range": "melee"
}
},
+ "changes": [
+ {
+ "key": "system.difficulty",
+ "mode": 2,
+ "value": "-max(ORIGIN.@system.traits.knowledge.value,1)",
+ "priority": null
+ }
+ ],
"disabled": false,
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
"duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
+ "startTime": null,
+ "combat": null,
+ "seconds": null,
+ "rounds": null,
+ "turns": null,
+ "startRound": null,
+ "startTurn": null
},
- "description": "Conjure a dark glyph upon their body that exposes their weak points, temporarily reducing the targetβs Difficulty by a value equal to your Knowledge (minimum 1).
",
+ "description": "Conjure a dark glyph upon their body that exposes their weak points, temporarily reducing the targetβs Difficulty by a value equal to your Knowledge (minimum 1).
",
"tint": "#ffffff",
"statuses": [],
- "showIcon": 1,
- "folder": null,
"sort": 0,
"flags": {},
"_stats": {
"compendiumSource": null
},
- "_key": "!items.effects!B5HXqYRJiL3xMNKT.9avDhppIdTqAR56f"
+ "_key": "!items.effects!B5HXqYRJiL3xMNKT.st8Ji9ZNexvw64xM"
+ },
+ {
+ "name": "Glyph of Nightfall",
+ "img": "icons/magic/symbols/runes-triangle-magenta.webp",
+ "origin": "Compendium.daggerheart.domains.Item.B5HXqYRJiL3xMNKT",
+ "transfer": false,
+ "_id": "X2w3kRHaETs8YWLO",
+ "type": "base",
+ "system": {
+ "rangeDependence": {
+ "enabled": false,
+ "type": "withinRange",
+ "target": "hostile",
+ "range": "melee"
+ }
+ },
+ "changes": [
+ {
+ "key": "system.difficulty",
+ "mode": 2,
+ "value": "-max(ORIGIN.@system.traits.knowledge.value,1)",
+ "priority": null
+ }
+ ],
+ "disabled": false,
+ "duration": {
+ "startTime": null,
+ "combat": null,
+ "seconds": null,
+ "rounds": null,
+ "turns": null,
+ "startRound": null,
+ "startTurn": null
+ },
+ "description": "Conjure a dark glyph upon their body that exposes their weak points, temporarily reducing the targetβs Difficulty by a value equal to your Knowledge (minimum 1).
",
+ "tint": "#ffffff",
+ "statuses": [],
+ "sort": 0,
+ "flags": {},
+ "_stats": {
+ "compendiumSource": null
+ },
+ "_key": "!items.effects!B5HXqYRJiL3xMNKT.X2w3kRHaETs8YWLO"
}
],
"ownership": {
diff --git a/src/packs/domains/domainCard_Goad_Them_On_HufF5KzuNfEb9RTi.json b/src/packs/domains/domainCard_Goad_Them_On_HufF5KzuNfEb9RTi.json
index db28b8b5..190028ed 100644
--- a/src/packs/domains/domainCard_Goad_Them_On_HufF5KzuNfEb9RTi.json
+++ b/src/packs/domains/domainCard_Goad_Them_On_HufF5KzuNfEb9RTi.json
@@ -24,8 +24,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -50,7 +50,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Gore_and_Glory_3zvjgZ5Od343wHzx.json b/src/packs/domains/domainCard_Gore_and_Glory_3zvjgZ5Od343wHzx.json
index ff648409..8151beaa 100644
--- a/src/packs/domains/domainCard_Gore_and_Glory_3zvjgZ5Od343wHzx.json
+++ b/src/packs/domains/domainCard_Gore_and_Glory_3zvjgZ5Od343wHzx.json
@@ -25,8 +25,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -51,7 +51,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -93,8 +93,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -119,7 +119,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Grace_Touched_KAuNb51AwhD8KEXk.json b/src/packs/domains/domainCard_Grace_Touched_KAuNb51AwhD8KEXk.json
index 2e48f07b..346a81f2 100644
--- a/src/packs/domains/domainCard_Grace_Touched_KAuNb51AwhD8KEXk.json
+++ b/src/packs/domains/domainCard_Grace_Touched_KAuNb51AwhD8KEXk.json
@@ -53,8 +53,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -79,7 +79,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Ground_Pound_WnGldYhJPDhx8v9X.json b/src/packs/domains/domainCard_Ground_Pound_WnGldYhJPDhx8v9X.json
index 452e8f76..56387c50 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": [
@@ -31,8 +31,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -58,7 +58,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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..0f60cc32 100644
--- a/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json
+++ b/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json
@@ -33,8 +33,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -59,7 +59,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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",
@@ -126,8 +117,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -152,7 +143,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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_Healing_Hands_WTlhnQMajc1r8i50.json b/src/packs/domains/domainCard_Healing_Hands_WTlhnQMajc1r8i50.json
index c771562c..1245fc4b 100644
--- a/src/packs/domains/domainCard_Healing_Hands_WTlhnQMajc1r8i50.json
+++ b/src/packs/domains/domainCard_Healing_Hands_WTlhnQMajc1r8i50.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -85,8 +85,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -111,7 +111,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -161,8 +161,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -187,7 +187,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -237,8 +237,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -263,7 +263,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -313,8 +313,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -339,7 +339,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Healing_Strike_XtSc0jIJLOoMTMYS.json b/src/packs/domains/domainCard_Healing_Strike_XtSc0jIJLOoMTMYS.json
index 22f7f2c9..26fab1a9 100644
--- a/src/packs/domains/domainCard_Healing_Strike_XtSc0jIJLOoMTMYS.json
+++ b/src/packs/domains/domainCard_Healing_Strike_XtSc0jIJLOoMTMYS.json
@@ -33,8 +33,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -59,7 +59,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Hold_the_Line_kdFoLo3KXwn4LqTG.json b/src/packs/domains/domainCard_Hold_the_Line_kdFoLo3KXwn4LqTG.json
index 263220e4..5b3c95d3 100644
--- a/src/packs/domains/domainCard_Hold_the_Line_kdFoLo3KXwn4LqTG.json
+++ b/src/packs/domains/domainCard_Hold_the_Line_kdFoLo3KXwn4LqTG.json
@@ -132,18 +132,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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": "If an adversary moves within Very Close range, theyβre pulled into Melee range and Restrained.
",
"tint": "#ffffff",
@@ -155,16 +155,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!kdFoLo3KXwn4LqTG.WTYg0b8nE1XbnMiA"
}
],
diff --git a/src/packs/domains/domainCard_Hush_gwmYasmfgXZ7tFS6.json b/src/packs/domains/domainCard_Hush_gwmYasmfgXZ7tFS6.json
index 28c41c7e..f49c4a83 100644
--- a/src/packs/domains/domainCard_Hush_gwmYasmfgXZ7tFS6.json
+++ b/src/packs/domains/domainCard_Hush_gwmYasmfgXZ7tFS6.json
@@ -32,7 +32,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -82,7 +82,45 @@
"effects": [
{
"name": "Silenced",
- "img": "systems/daggerheart/assets/icons/domains/domain-card/midnight.png",
+ "img": "icons/svg/sound-off.svg",
+ "origin": "Compendium.daggerheart.domains.Item.gwmYasmfgXZ7tFS6",
+ "transfer": false,
+ "_id": "5hzzPTFccUSSNHgp",
+ "type": "base",
+ "system": {
+ "rangeDependence": {
+ "enabled": false,
+ "type": "withinRange",
+ "target": "hostile",
+ "range": "melee"
+ }
+ },
+ "changes": [],
+ "disabled": false,
+ "duration": {
+ "startTime": null,
+ "combat": null,
+ "seconds": null,
+ "rounds": null,
+ "turns": null,
+ "startRound": null,
+ "startTurn": null
+ },
+ "description": "Auppressive magic around the target that encompasses everything within Very Close range of them and follows them as they move.Β The target and anything within the area is Silenced until the GM spends a Fear on their turn to clear this condition, you cast Hush again, or you take Major damage. While Silenced, they canβt make noise and canβt cast spells.
",
+ "tint": "#ffffff",
+ "statuses": [
+ "silence"
+ ],
+ "sort": 0,
+ "flags": {},
+ "_stats": {
+ "compendiumSource": null
+ },
+ "_key": "!items.effects!gwmYasmfgXZ7tFS6.5hzzPTFccUSSNHgp"
+ },
+ {
+ "name": "Silenced",
+ "img": "icons/svg/sound-off.svg",
"origin": "Compendium.daggerheart.domains.Item.gwmYasmfgXZ7tFS6",
"transfer": false,
"_id": "pZ5YpjKidaj48IYF",
@@ -93,21 +131,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until the GM spends a Fear on their turn to clear this condition, you cast Hush again, or you take Major damage.
"
}
},
+ "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": "Suppressive magic around the target that encompasses everything within Very Close range of them and follows them as they move.Β The target and anything within the area is Silenced until the GM spends a Fear on their turn to clear this condition, you cast Hush again, or you take Major damage. While Silenced, they canβt make noise and canβt cast spells.
",
+ "description": "Suppressive magic around the target that encompasses everything within Very Close range of them and follows them as they move.Β The target and anything within the area is Silenced until the GM spends a Fear on their turn to clear this condition, you cast Hush again, or you take Major damage. While Silenced, they canβt make noise and canβt cast spells.
",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -115,16 +152,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!gwmYasmfgXZ7tFS6.pZ5YpjKidaj48IYF"
}
],
diff --git a/src/packs/domains/domainCard_Hypnotic_Shimmer_2ZeuCGVatQdPOVC6.json b/src/packs/domains/domainCard_Hypnotic_Shimmer_2ZeuCGVatQdPOVC6.json
index 08f0d3ee..67310781 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": [],
@@ -25,8 +25,8 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -51,7 +51,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -121,20 +112,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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": "An illusion of flashing colors and lights that temporarily Stuns targets. While Stunned, they canβt use reactions and canβt take any other actions until they clear this condition.
",
+ "description": "An illusion of flashing colors and lights that temporarily Stuns targets. While Stunned, they canβt use reactions and canβt take any other actions until they clear this condition.
",
"tint": "#ffffff",
"statuses": [
"stun"
@@ -144,16 +135,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!2ZeuCGVatQdPOVC6.xAG75UWUz3aDZH3m"
}
],
diff --git a/src/packs/domains/domainCard_I_See_It_Coming_Kp6RejHGimnuoBom.json b/src/packs/domains/domainCard_I_See_It_Coming_Kp6RejHGimnuoBom.json
index 5fa005b6..8d5f6536 100644
--- a/src/packs/domains/domainCard_I_See_It_Coming_Kp6RejHGimnuoBom.json
+++ b/src/packs/domains/domainCard_I_See_It_Coming_Kp6RejHGimnuoBom.json
@@ -33,7 +33,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Inspirational_Words_cWu1o82ZF7GvnbXc.json b/src/packs/domains/domainCard_Inspirational_Words_cWu1o82ZF7GvnbXc.json
index b1f15298..0c28d499 100644
--- a/src/packs/domains/domainCard_Inspirational_Words_cWu1o82ZF7GvnbXc.json
+++ b/src/packs/domains/domainCard_Inspirational_Words_cWu1o82ZF7GvnbXc.json
@@ -41,8 +41,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -67,7 +67,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -117,8 +117,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -143,7 +143,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -193,8 +193,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -219,7 +219,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Invigoration_X8OfkEoI5gLTRf1B.json b/src/packs/domains/domainCard_Invigoration_X8OfkEoI5gLTRf1B.json
index e3c5436c..658e12fd 100644
--- a/src/packs/domains/domainCard_Invigoration_X8OfkEoI5gLTRf1B.json
+++ b/src/packs/domains/domainCard_Invigoration_X8OfkEoI5gLTRf1B.json
@@ -33,7 +33,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Invisibility_KHkzA4Zrw8EWN1CH.json b/src/packs/domains/domainCard_Invisibility_KHkzA4Zrw8EWN1CH.json
index 5f67ff74..be46b1c3 100644
--- a/src/packs/domains/domainCard_Invisibility_KHkzA4Zrw8EWN1CH.json
+++ b/src/packs/domains/domainCard_Invisibility_KHkzA4Zrw8EWN1CH.json
@@ -32,7 +32,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Know_Thy_Enemy_O38MQMhJWdZnXi6b.json b/src/packs/domains/domainCard_Know_Thy_Enemy_O38MQMhJWdZnXi6b.json
index 44885c23..12308e6b 100644
--- a/src/packs/domains/domainCard_Know_Thy_Enemy_O38MQMhJWdZnXi6b.json
+++ b/src/packs/domains/domainCard_Know_Thy_Enemy_O38MQMhJWdZnXi6b.json
@@ -33,7 +33,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Lean_on_Me_BdePs1ZWpZTZvY1Z.json b/src/packs/domains/domainCard_Lean_on_Me_BdePs1ZWpZTZvY1Z.json
index ae8c5b82..883e2522 100644
--- a/src/packs/domains/domainCard_Lean_on_Me_BdePs1ZWpZTZvY1Z.json
+++ b/src/packs/domains/domainCard_Lean_on_Me_BdePs1ZWpZTZvY1Z.json
@@ -24,8 +24,8 @@
"recovery": "longRest"
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -50,7 +50,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Life_Ward_OszbCj0jTqq2ADx9.json b/src/packs/domains/domainCard_Life_Ward_OszbCj0jTqq2ADx9.json
index de841ffe..19a6fda6 100644
--- a/src/packs/domains/domainCard_Life_Ward_OszbCj0jTqq2ADx9.json
+++ b/src/packs/domains/domainCard_Life_Ward_OszbCj0jTqq2ADx9.json
@@ -70,18 +70,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "longRest"
}
},
+ "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": "Marked with a glowing sigil of protection. When this ally would make a death move, they clear a Hit Point instead.
This effect ends when it saves the target from a death move, you cast Life Ward on another target, or you take a long rest.
",
"tint": "#ffffff",
@@ -91,16 +91,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!OszbCj0jTqq2ADx9.E7Ou4OMEy3TeK1Gf"
}
],
diff --git a/src/packs/domains/domainCard_Manifest_Wall_TtGOtWkbr23VhHfH.json b/src/packs/domains/domainCard_Manifest_Wall_TtGOtWkbr23VhHfH.json
index cde6cdc8..6e4b4654 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": [
@@ -33,7 +33,7 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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..da64f16e 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": [],
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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",
@@ -91,8 +82,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -117,7 +108,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -153,20 +144,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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": "While Enraptured, a targetβs attention is fixed on you, narrowing their field of view and drowning out any sound but your voice.
",
+ "description": "While Enraptured, a targetβs attention is fixed on you, narrowing their field of view and drowning out any sound but your voice.
",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -174,16 +165,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!ubpixIgZrJXKyM3b.QNbnelRylVB0yCm0"
}
],
diff --git a/src/packs/domains/domainCard_Mending_Touch_TGjR4vJVNbQRV8zr.json b/src/packs/domains/domainCard_Mending_Touch_TGjR4vJVNbQRV8zr.json
index 60367dcc..4cb8c2a2 100644
--- a/src/packs/domains/domainCard_Mending_Touch_TGjR4vJVNbQRV8zr.json
+++ b/src/packs/domains/domainCard_Mending_Touch_TGjR4vJVNbQRV8zr.json
@@ -33,8 +33,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -59,7 +59,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -109,8 +109,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -135,7 +135,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -194,8 +194,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -220,7 +220,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -279,8 +279,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -305,7 +305,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Midnight_Spirit_FXLsB3QbQvTtqX5B.json b/src/packs/domains/domainCard_Midnight_Spirit_FXLsB3QbQvTtqX5B.json
index f951054e..f97fe53d 100644
--- a/src/packs/domains/domainCard_Midnight_Spirit_FXLsB3QbQvTtqX5B.json
+++ b/src/packs/domains/domainCard_Midnight_Spirit_FXLsB3QbQvTtqX5B.json
@@ -60,8 +60,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -87,7 +87,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Midnight_Touched_uSyGKVxOJcnp28po.json b/src/packs/domains/domainCard_Midnight_Touched_uSyGKVxOJcnp28po.json
index b859aafb..10c42418 100644
--- a/src/packs/domains/domainCard_Midnight_Touched_uSyGKVxOJcnp28po.json
+++ b/src/packs/domains/domainCard_Midnight_Touched_uSyGKVxOJcnp28po.json
@@ -24,8 +24,8 @@
"recovery": "shortRest"
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -50,7 +50,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Natural_Familiar_Tag303LoRNC5zGgl.json b/src/packs/domains/domainCard_Natural_Familiar_Tag303LoRNC5zGgl.json
index c14116d4..7aa85b0f 100644
--- a/src/packs/domains/domainCard_Natural_Familiar_Tag303LoRNC5zGgl.json
+++ b/src/packs/domains/domainCard_Natural_Familiar_Tag303LoRNC5zGgl.json
@@ -59,7 +59,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Nature_s_Tongue_atWLorlCOxcrq8WB.json b/src/packs/domains/domainCard_Nature_s_Tongue_atWLorlCOxcrq8WB.json
index b6c9464a..c722954b 100644
--- a/src/packs/domains/domainCard_Nature_s_Tongue_atWLorlCOxcrq8WB.json
+++ b/src/packs/domains/domainCard_Nature_s_Tongue_atWLorlCOxcrq8WB.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json b/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json
index 8eefeec4..6ffddbe7 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": [],
@@ -24,7 +24,7 @@
"recovery": "longRest"
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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",
@@ -93,8 +84,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -118,7 +109,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -155,20 +146,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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": "While Horrified, theyβre Vulnerable.
",
+ "description": "While Horrified, theyβre Vulnerable.
",
"tint": "#ffffff",
"statuses": [
"vulnerable"
@@ -178,16 +169,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!zcldCuqOg3dphUVI.32j3ZeNMMCk1QLlM"
}
],
diff --git a/src/packs/domains/domainCard_Onslaught_I7pNsQ9Yx6mRJX4V.json b/src/packs/domains/domainCard_Onslaught_I7pNsQ9Yx6mRJX4V.json
index 5122ec4b..d2d7361d 100644
--- a/src/packs/domains/domainCard_Onslaught_I7pNsQ9Yx6mRJX4V.json
+++ b/src/packs/domains/domainCard_Onslaught_I7pNsQ9Yx6mRJX4V.json
@@ -33,7 +33,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Overwhelming_Aura_iEBLySZD9z8CLdz7.json b/src/packs/domains/domainCard_Overwhelming_Aura_iEBLySZD9z8CLdz7.json
index 9aa2f5b4..cc04c9c9 100644
--- a/src/packs/domains/domainCard_Overwhelming_Aura_iEBLySZD9z8CLdz7.json
+++ b/src/packs/domains/domainCard_Overwhelming_Aura_iEBLySZD9z8CLdz7.json
@@ -33,7 +33,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -94,25 +94,25 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.traits.presence.value",
- "value": "@cast",
- "priority": 51,
- "type": "override"
- }
- ],
- "duration": {
- "type": "longRest"
}
},
+ "changes": [
+ {
+ "key": "system.traits.presence.value",
+ "mode": 5,
+ "value": "@cast",
+ "priority": 51
+ }
+ ],
"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": "Your Presence is equal to your Spellcast trait until your next long rest.
While this spell is active, an adversary must mark a Stress when they target you with an attack.
",
"tint": "#ffffff",
@@ -122,16 +122,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!iEBLySZD9z8CLdz7.ba9GO4NtQHYkaRR9"
}
],
diff --git a/src/packs/domains/domainCard_Plant_Dominion_9a6xP5pxhVvdugk9.json b/src/packs/domains/domainCard_Plant_Dominion_9a6xP5pxhVvdugk9.json
index 4b4767fa..64b1e1c2 100644
--- a/src/packs/domains/domainCard_Plant_Dominion_9a6xP5pxhVvdugk9.json
+++ b/src/packs/domains/domainCard_Plant_Dominion_9a6xP5pxhVvdugk9.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Preservation_Blast_1p1cOmbnRd5CoKBp.json b/src/packs/domains/domainCard_Preservation_Blast_1p1cOmbnRd5CoKBp.json
index 5470c340..46dc2bdb 100644
--- a/src/packs/domains/domainCard_Preservation_Blast_1p1cOmbnRd5CoKBp.json
+++ b/src/packs/domains/domainCard_Preservation_Blast_1p1cOmbnRd5CoKBp.json
@@ -25,8 +25,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -52,7 +52,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Rage_Up_GRL0cvs96vrTDckZ.json b/src/packs/domains/domainCard_Rage_Up_GRL0cvs96vrTDckZ.json
index c3493aea..6f8b481d 100644
--- a/src/packs/domains/domainCard_Rage_Up_GRL0cvs96vrTDckZ.json
+++ b/src/packs/domains/domainCard_Rage_Up_GRL0cvs96vrTDckZ.json
@@ -42,8 +42,44 @@
"type": "self",
"amount": null
},
- "name": "Mark Stress",
- "img": "icons/skills/wounds/injury-face-impact-orange.webp",
+ "name": "Mark 1 Stress",
+ "img": "icons/magic/control/silhouette-aura-energy.webp",
+ "range": "self"
+ },
+ "fKY9NcYBwCFwMsgV": {
+ "type": "effect",
+ "_id": "fKY9NcYBwCFwMsgV",
+ "systemPath": "actions",
+ "description": "You can mark a Stress to gain a bonus to your damage roll equal to twice your Strength.
",
+ "chatDisplay": true,
+ "actionType": "action",
+ "cost": [
+ {
+ "scalable": false,
+ "key": "stress",
+ "value": 2,
+ "step": null,
+ "consumeOnSuccess": false
+ }
+ ],
+ "uses": {
+ "value": null,
+ "max": "",
+ "recovery": null,
+ "consumeOnSuccess": false
+ },
+ "effects": [
+ {
+ "_id": "t6SIjQxB6UBUJ98f",
+ "onSave": false
+ }
+ ],
+ "target": {
+ "type": "self",
+ "amount": null
+ },
+ "name": "Mark 2 Stress",
+ "img": "icons/magic/control/silhouette-aura-energy.webp",
"range": "self"
}
},
@@ -58,8 +94,8 @@
"sort": 3400000,
"effects": [
{
- "name": "Rage Up",
- "img": "icons/skills/wounds/injury-face-impact-orange.webp",
+ "name": "Rage Up (1)",
+ "img": "systems/daggerheart/assets/icons/domains/domain-card/blade.png",
"origin": "Compendium.daggerheart.domains.Item.GRL0cvs96vrTDckZ",
"transfer": false,
"_id": "bq1MhcmoP6Wo5CXF",
@@ -70,38 +106,33 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.bonuses.damage.magical.bonus",
- "type": "add",
- "value": "2*@system.traits.strength.value*@stacks",
- "priority": 21,
- "phase": "initial"
- },
- {
- "key": "system.bonuses.damage.physical.bonus",
- "type": "add",
- "value": "2*@system.traits.strength.value*@stacks",
- "priority": 21,
- "phase": "initial"
- }
- ],
- "stacking": {
- "max": 2
- },
- "duration": {
- "type": ""
}
},
+ "changes": [
+ {
+ "key": "system.bonuses.damage.magical.bonus",
+ "mode": 2,
+ "value": "2*@system.traits.strength.value",
+ "priority": 21
+ },
+ {
+ "key": "system.bonuses.damage.physical.bonus",
+ "mode": 2,
+ "value": "2*@system.traits.strength.value",
+ "priority": 21
+ }
+ ],
"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": "For your next attack you have a bonus to your damage roll equal to twice your Strength.
",
+ "description": "",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -109,16 +140,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!GRL0cvs96vrTDckZ.bq1MhcmoP6Wo5CXF"
},
{
@@ -134,28 +155,31 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.bonuses.damage.magical.bonus",
- "value": "4*@system.traits.strength.value",
- "priority": 21,
- "type": "add"
- },
- {
- "key": "system.bonuses.damage.physical.bonus",
- "value": "4*@system.traits.strength.value",
- "priority": 21,
- "type": "add"
- }
- ]
+ }
},
+ "changes": [
+ {
+ "key": "system.bonuses.damage.magical.bonus",
+ "mode": 2,
+ "value": "4*@system.traits.strength.value",
+ "priority": 21
+ },
+ {
+ "key": "system.bonuses.damage.physical.bonus",
+ "mode": 2,
+ "value": "4*@system.traits.strength.value",
+ "priority": 21
+ }
+ ],
"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",
@@ -165,9 +189,6 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!GRL0cvs96vrTDckZ.t6SIjQxB6UBUJ98f"
}
],
diff --git a/src/packs/domains/domainCard_Rain_of_Blades_Ucenef6JpjQxwXni.json b/src/packs/domains/domainCard_Rain_of_Blades_Ucenef6JpjQxwXni.json
index ad41f6ec..839dc2c2 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": [
@@ -31,8 +31,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -44,9 +44,7 @@
"flatMultiplier": 1
},
"applyTo": "hitPoints",
- "type": [
- "magical"
- ],
+ "type": [],
"base": false,
"valueAlt": {
"multiplier": "prof",
@@ -58,7 +56,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -88,16 +86,58 @@
},
"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"
+ },
+ "CUKoYyDxQhNc0pLs": {
+ "type": "damage",
+ "_id": "CUKoYyDxQhNc0pLs",
+ "systemPath": "actions",
+ "description": "If a target you hit is Vulnerable, they take an extra 1d8 damage.
",
+ "chatDisplay": true,
+ "actionType": "action",
+ "cost": [],
+ "uses": {
+ "value": null,
+ "max": "",
+ "recovery": null
+ },
+ "damage": {
+ "parts": [
+ {
+ "value": {
+ "custom": {
+ "enabled": false
+ },
+ "multiplier": "flat",
+ "flatMultiplier": 1,
+ "dice": "d8",
+ "bonus": null
+ },
+ "applyTo": "hitPoints",
+ "type": [],
+ "base": false,
+ "resultBased": false,
+ "valueAlt": {
+ "multiplier": "prof",
+ "flatMultiplier": 1,
+ "dice": "d6",
+ "bonus": null,
+ "custom": {
+ "enabled": false
+ }
+ }
+ }
+ ],
+ "includeBase": false
+ },
+ "target": {
+ "type": "any",
+ "amount": null
+ },
+ "effects": [],
+ "name": "Damage Against Vulnerable",
+ "img": "icons/skills/melee/spear-tips-three-purple.webp",
+ "range": ""
}
},
"attribution": {
diff --git a/src/packs/domains/domainCard_Reaper_s_Strike_MCgNRlh0s5XUPCfl.json b/src/packs/domains/domainCard_Reaper_s_Strike_MCgNRlh0s5XUPCfl.json
index 3bb8accd..f4feebbb 100644
--- a/src/packs/domains/domainCard_Reaper_s_Strike_MCgNRlh0s5XUPCfl.json
+++ b/src/packs/domains/domainCard_Reaper_s_Strike_MCgNRlh0s5XUPCfl.json
@@ -33,7 +33,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Redirect_faU0XkJCbar69PiN.json b/src/packs/domains/domainCard_Redirect_faU0XkJCbar69PiN.json
index aeb20f1d..4adb8240 100644
--- a/src/packs/domains/domainCard_Redirect_faU0XkJCbar69PiN.json
+++ b/src/packs/domains/domainCard_Redirect_faU0XkJCbar69PiN.json
@@ -50,7 +50,7 @@
},
"flags": {},
"_id": "faU0XkJCbar69PiN",
- "sort": 3500000,
+ "sort": 3400000,
"effects": [],
"ownership": {
"default": 0
diff --git a/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json b/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json
index 6d8757f7..25c991c2 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": [],
@@ -25,8 +25,8 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -50,7 +50,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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_Restoration_wUQFsRtww18naYaq.json b/src/packs/domains/domainCard_Restoration_wUQFsRtww18naYaq.json
index a83044a0..8d4d7695 100644
--- a/src/packs/domains/domainCard_Restoration_wUQFsRtww18naYaq.json
+++ b/src/packs/domains/domainCard_Restoration_wUQFsRtww18naYaq.json
@@ -42,8 +42,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -68,7 +68,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -119,8 +119,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -145,7 +145,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Resurrection_z30ciOwQI7g3tHla.json b/src/packs/domains/domainCard_Resurrection_z30ciOwQI7g3tHla.json
index b7faa7ae..82b1b4fa 100644
--- a/src/packs/domains/domainCard_Resurrection_z30ciOwQI7g3tHla.json
+++ b/src/packs/domains/domainCard_Resurrection_z30ciOwQI7g3tHla.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -72,7 +72,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Rift_Walker_vd5STqX29RpYbGxa.json b/src/packs/domains/domainCard_Rift_Walker_vd5STqX29RpYbGxa.json
index 163cd293..c112e373 100644
--- a/src/packs/domains/domainCard_Rift_Walker_vd5STqX29RpYbGxa.json
+++ b/src/packs/domains/domainCard_Rift_Walker_vd5STqX29RpYbGxa.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Rise_Up_oDIZoC4l19Nli0Fj.json b/src/packs/domains/domainCard_Rise_Up_oDIZoC4l19Nli0Fj.json
index 5d46562d..38c900b2 100644
--- a/src/packs/domains/domainCard_Rise_Up_oDIZoC4l19Nli0Fj.json
+++ b/src/packs/domains/domainCard_Rise_Up_oDIZoC4l19Nli0Fj.json
@@ -24,8 +24,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -50,7 +50,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Rune_Ward_GEhBUmv9Bj7oJfHk.json b/src/packs/domains/domainCard_Rune_Ward_GEhBUmv9Bj7oJfHk.json
index 01515230..54b0edbb 100644
--- a/src/packs/domains/domainCard_Rune_Ward_GEhBUmv9Bj7oJfHk.json
+++ b/src/packs/domains/domainCard_Rune_Ward_GEhBUmv9Bj7oJfHk.json
@@ -31,7 +31,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Salvation_Beam_4uAFGp3LxiC07woC.json b/src/packs/domains/domainCard_Salvation_Beam_4uAFGp3LxiC07woC.json
index 05a62281..c7aeb02f 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": [
@@ -33,8 +33,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -59,7 +59,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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_Second_Wind_ffPbSEvLuFrFsMxl.json b/src/packs/domains/domainCard_Second_Wind_ffPbSEvLuFrFsMxl.json
index 764a3c87..8dc535cc 100644
--- a/src/packs/domains/domainCard_Second_Wind_ffPbSEvLuFrFsMxl.json
+++ b/src/packs/domains/domainCard_Second_Wind_ffPbSEvLuFrFsMxl.json
@@ -34,8 +34,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -60,7 +60,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -111,8 +111,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -137,7 +137,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Sensory_Projection_gZOMzskSOfeiXn54.json b/src/packs/domains/domainCard_Sensory_Projection_gZOMzskSOfeiXn54.json
index c0aea3df..2701b0ce 100644
--- a/src/packs/domains/domainCard_Sensory_Projection_gZOMzskSOfeiXn54.json
+++ b/src/packs/domains/domainCard_Sensory_Projection_gZOMzskSOfeiXn54.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json b/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json
index a90ec0f7..cd906eaa 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": [],
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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": {
@@ -94,18 +85,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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",
@@ -117,16 +108,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!kguhWlidhxe2GbT0.RFB4V0V4bDJ6vCL2"
}
],
diff --git a/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json b/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json
index 3e757308..7cabf19d 100644
--- a/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json
+++ b/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json
@@ -32,7 +32,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Soothing_Speech_QED2PDYePOSTbLtC.json b/src/packs/domains/domainCard_Soothing_Speech_QED2PDYePOSTbLtC.json
index b7ef626d..daecba3b 100644
--- a/src/packs/domains/domainCard_Soothing_Speech_QED2PDYePOSTbLtC.json
+++ b/src/packs/domains/domainCard_Soothing_Speech_QED2PDYePOSTbLtC.json
@@ -24,8 +24,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -50,7 +50,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -91,8 +91,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -117,7 +117,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Splintering_Strike_TYKfM3H9vBXyWiH4.json b/src/packs/domains/domainCard_Splintering_Strike_TYKfM3H9vBXyWiH4.json
index a63fd477..e36c744c 100644
--- a/src/packs/domains/domainCard_Splintering_Strike_TYKfM3H9vBXyWiH4.json
+++ b/src/packs/domains/domainCard_Splintering_Strike_TYKfM3H9vBXyWiH4.json
@@ -33,7 +33,7 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Stunning_Sunlight_lRHo6ZkK1zybeEoG.json b/src/packs/domains/domainCard_Stunning_Sunlight_lRHo6ZkK1zybeEoG.json
index e2d68a10..6fde5d18 100644
--- a/src/packs/domains/domainCard_Stunning_Sunlight_lRHo6ZkK1zybeEoG.json
+++ b/src/packs/domains/domainCard_Stunning_Sunlight_lRHo6ZkK1zybeEoG.json
@@ -33,8 +33,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -60,7 +60,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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",
@@ -121,8 +112,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -148,7 +139,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -184,20 +175,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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": "Temporarily Stunned. While Stunned, they canβt use reactions and canβt take any other actions until they clear this condition.
",
+ "description": "Temporarily Stunned. While Stunned, they canβt use reactions and canβt take any other actions until they clear this condition.
",
"tint": "#ffffff",
"statuses": [
"stun"
@@ -207,16 +198,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!lRHo6ZkK1zybeEoG.kSLuGSI6FLhOJaGp"
}
],
diff --git a/src/packs/domains/domainCard_Swift_Step_H6TqCJBaa1eWEQ1z.json b/src/packs/domains/domainCard_Swift_Step_H6TqCJBaa1eWEQ1z.json
index 76e9e6e9..bd153045 100644
--- a/src/packs/domains/domainCard_Swift_Step_H6TqCJBaa1eWEQ1z.json
+++ b/src/packs/domains/domainCard_Swift_Step_H6TqCJBaa1eWEQ1z.json
@@ -25,8 +25,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -51,7 +51,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -93,8 +93,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -119,7 +119,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Telekinesis_FgzBppvLjXr0UbUI.json b/src/packs/domains/domainCard_Telekinesis_FgzBppvLjXr0UbUI.json
index 0436b1aa..f80954e7 100644
--- a/src/packs/domains/domainCard_Telekinesis_FgzBppvLjXr0UbUI.json
+++ b/src/packs/domains/domainCard_Telekinesis_FgzBppvLjXr0UbUI.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -72,8 +72,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -99,7 +99,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Teleport_HnPwVrWblYa9hwSt.json b/src/packs/domains/domainCard_Teleport_HnPwVrWblYa9hwSt.json
index ff262d6f..b4563eac 100644
--- a/src/packs/domains/domainCard_Teleport_HnPwVrWblYa9hwSt.json
+++ b/src/packs/domains/domainCard_Teleport_HnPwVrWblYa9hwSt.json
@@ -24,7 +24,7 @@
"recovery": "longRest"
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Tell_No_Lies_HTv9QEPS466WsstP.json b/src/packs/domains/domainCard_Tell_No_Lies_HTv9QEPS466WsstP.json
index 1efb1374..f1056dfc 100644
--- a/src/packs/domains/domainCard_Tell_No_Lies_HTv9QEPS466WsstP.json
+++ b/src/packs/domains/domainCard_Tell_No_Lies_HTv9QEPS466WsstP.json
@@ -24,8 +24,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -50,7 +50,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Tempest_X7YaZgFieBlqaPdZ.json b/src/packs/domains/domainCard_Tempest_X7YaZgFieBlqaPdZ.json
index e027ca8f..d82dd9fa 100644
--- a/src/packs/domains/domainCard_Tempest_X7YaZgFieBlqaPdZ.json
+++ b/src/packs/domains/domainCard_Tempest_X7YaZgFieBlqaPdZ.json
@@ -24,8 +24,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -51,7 +51,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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",
@@ -111,8 +102,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -138,7 +129,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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",
@@ -198,8 +180,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -225,7 +207,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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": {
@@ -295,18 +268,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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",
@@ -318,16 +291,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!X7YaZgFieBlqaPdZ.oqPY3I9oO9J6l5Aj"
},
{
@@ -343,15 +306,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 +327,6 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!X7YaZgFieBlqaPdZ.tB7AyDy0pbE9q5hM"
},
{
@@ -379,15 +342,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 +363,6 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!X7YaZgFieBlqaPdZ.S4Vpgf3FMmq8MGrb"
}
],
diff --git a/src/packs/domains/domainCard_Thought_Delver_B4choj481tqajWb9.json b/src/packs/domains/domainCard_Thought_Delver_B4choj481tqajWb9.json
index 7c8d6235..0dbc078d 100644
--- a/src/packs/domains/domainCard_Thought_Delver_B4choj481tqajWb9.json
+++ b/src/packs/domains/domainCard_Thought_Delver_B4choj481tqajWb9.json
@@ -58,7 +58,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Through_Your_Eyes_7b0mzV5QMPjVPT4o.json b/src/packs/domains/domainCard_Through_Your_Eyes_7b0mzV5QMPjVPT4o.json
index 529950b5..ed01392d 100644
--- a/src/packs/domains/domainCard_Through_Your_Eyes_7b0mzV5QMPjVPT4o.json
+++ b/src/packs/domains/domainCard_Through_Your_Eyes_7b0mzV5QMPjVPT4o.json
@@ -61,20 +61,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "shortRest"
}
},
+ "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": "Can see through their eyes and hear through their ears.
",
+ "description": "Can see through their eyes and hear through their ears.
",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -82,16 +82,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!7b0mzV5QMPjVPT4o.TCOHV7tWpunCZDxn"
}
],
diff --git a/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json b/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json
index 70a1fbda..d7d984d1 100644
--- a/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json
+++ b/src/packs/domains/domainCard_Towering_Stalk_n0P3VS1WfxvmXbB6.json
@@ -41,8 +41,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -68,7 +68,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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_Transcendent_Union_kVkoCLBXLAIifqpz.json b/src/packs/domains/domainCard_Transcendent_Union_kVkoCLBXLAIifqpz.json
index 4460a5db..7d8d9bbe 100644
--- a/src/packs/domains/domainCard_Transcendent_Union_kVkoCLBXLAIifqpz.json
+++ b/src/packs/domains/domainCard_Transcendent_Union_kVkoCLBXLAIifqpz.json
@@ -70,18 +70,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "shortRest"
}
},
+ "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": "Until your next rest, when a creature connected by this union would mark Stress or Hit Points, the connected creatures can choose who marks it.
",
"tint": "#ffffff",
@@ -91,16 +91,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!kVkoCLBXLAIifqpz.kMcvp2QKmBP4uinB"
}
],
diff --git a/src/packs/domains/domainCard_Troublemaker_JrdZedm1BFKeV7Yb.json b/src/packs/domains/domainCard_Troublemaker_JrdZedm1BFKeV7Yb.json
index 161c499f..9d740283 100644
--- a/src/packs/domains/domainCard_Troublemaker_JrdZedm1BFKeV7Yb.json
+++ b/src/packs/domains/domainCard_Troublemaker_JrdZedm1BFKeV7Yb.json
@@ -25,8 +25,8 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -51,7 +51,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Twilight_Toll_SDjjV61TC1NceV1m.json b/src/packs/domains/domainCard_Twilight_Toll_SDjjV61TC1NceV1m.json
index cc7f45c7..a6a987dd 100644
--- a/src/packs/domains/domainCard_Twilight_Toll_SDjjV61TC1NceV1m.json
+++ b/src/packs/domains/domainCard_Twilight_Toll_SDjjV61TC1NceV1m.json
@@ -40,8 +40,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -65,7 +65,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Unbreakable_CUIQmrPjf9VCHmwJ.json b/src/packs/domains/domainCard_Unbreakable_CUIQmrPjf9VCHmwJ.json
index b822b632..e4847ee4 100644
--- a/src/packs/domains/domainCard_Unbreakable_CUIQmrPjf9VCHmwJ.json
+++ b/src/packs/domains/domainCard_Unbreakable_CUIQmrPjf9VCHmwJ.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Uncanny_Disguise_TV56wSysbU5xAlOa.json b/src/packs/domains/domainCard_Uncanny_Disguise_TV56wSysbU5xAlOa.json
index 62953005..46d9c472 100644
--- a/src/packs/domains/domainCard_Uncanny_Disguise_TV56wSysbU5xAlOa.json
+++ b/src/packs/domains/domainCard_Uncanny_Disguise_TV56wSysbU5xAlOa.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Unleash_Chaos_o62i0QdbUDIiAhSq.json b/src/packs/domains/domainCard_Unleash_Chaos_o62i0QdbUDIiAhSq.json
index 69049d01..62bd00a0 100644
--- a/src/packs/domains/domainCard_Unleash_Chaos_o62i0QdbUDIiAhSq.json
+++ b/src/packs/domains/domainCard_Unleash_Chaos_o62i0QdbUDIiAhSq.json
@@ -42,8 +42,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -69,7 +69,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Valor_Touched_k1AtYd3lSchIymBr.json b/src/packs/domains/domainCard_Valor_Touched_k1AtYd3lSchIymBr.json
index 61c7ace8..20fe18ea 100644
--- a/src/packs/domains/domainCard_Valor_Touched_k1AtYd3lSchIymBr.json
+++ b/src/packs/domains/domainCard_Valor_Touched_k1AtYd3lSchIymBr.json
@@ -24,8 +24,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "armor": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -50,7 +50,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -93,25 +93,32 @@
"name": "Valor-Touched",
"type": "base",
"system": {
- "changes": [
- {
- "type": "armor",
- "phase": "initial",
- "priority": 20,
- "value": {
- "max": "1"
- }
- }
- ]
+ "rangeDependence": {
+ "enabled": false,
+ "type": "withinRange",
+ "target": "hostile",
+ "range": "melee"
+ }
},
- "_id": "Ma8Zp005QYKPWIEN",
+ "_id": "H9lgIqqp1imSNOv9",
"img": "icons/magic/control/control-influence-rally-purple.webp",
+ "changes": [
+ {
+ "key": "system.armorScore",
+ "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": "+1 bonus to your Armor Score
When you mark 1 or more Hit Points without marking an Armor Slot, clear an Armor Slot.
",
"origin": null,
@@ -123,10 +130,7 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
- "_key": "!items.effects!k1AtYd3lSchIymBr.Ma8Zp005QYKPWIEN"
+ "_key": "!items.effects!k1AtYd3lSchIymBr.H9lgIqqp1imSNOv9"
}
],
"ownership": {
diff --git a/src/packs/domains/domainCard_Veil_of_Night_gV4L5ZZmfPrEbIDh.json b/src/packs/domains/domainCard_Veil_of_Night_gV4L5ZZmfPrEbIDh.json
index cff0c185..a6263afe 100644
--- a/src/packs/domains/domainCard_Veil_of_Night_gV4L5ZZmfPrEbIDh.json
+++ b/src/packs/domains/domainCard_Veil_of_Night_gV4L5ZZmfPrEbIDh.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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_Vicious_Entangle_qvpvTnkAoRn9vYO4.json b/src/packs/domains/domainCard_Vicious_Entangle_qvpvTnkAoRn9vYO4.json
index 3b7358bc..dae448e9 100644
--- a/src/packs/domains/domainCard_Vicious_Entangle_qvpvTnkAoRn9vYO4.json
+++ b/src/packs/domains/domainCard_Vicious_Entangle_qvpvTnkAoRn9vYO4.json
@@ -24,8 +24,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -51,7 +51,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -146,18 +146,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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",
@@ -169,16 +169,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!qvpvTnkAoRn9vYO4.Xh0wrgRUuYpwChBU"
},
{
@@ -194,18 +184,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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",
@@ -217,16 +207,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!qvpvTnkAoRn9vYO4.2xzOqTaPJQzGqFJv"
}
],
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_Wild_Fortress_9dFvcM1i3bxG3BSA.json b/src/packs/domains/domainCard_Wild_Fortress_9dFvcM1i3bxG3BSA.json
index d61f914b..655f0c2b 100644
--- a/src/packs/domains/domainCard_Wild_Fortress_9dFvcM1i3bxG3BSA.json
+++ b/src/packs/domains/domainCard_Wild_Fortress_9dFvcM1i3bxG3BSA.json
@@ -32,7 +32,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Words_of_Discord_ZjAdi1FSNCDDHI3X.json b/src/packs/domains/domainCard_Words_of_Discord_ZjAdi1FSNCDDHI3X.json
index d743f5e1..fb3c6611 100644
--- a/src/packs/domains/domainCard_Words_of_Discord_ZjAdi1FSNCDDHI3X.json
+++ b/src/packs/domains/domainCard_Words_of_Discord_ZjAdi1FSNCDDHI3X.json
@@ -24,8 +24,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -50,7 +50,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Wrangle_9DwSxHoUwl8Kxj3n.json b/src/packs/domains/domainCard_Wrangle_9DwSxHoUwl8Kxj3n.json
index eec2e76e..16753e1e 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,
@@ -25,7 +25,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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..5669173d 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,
@@ -25,7 +25,7 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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..c1006da4 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": [],
@@ -181,8 +183,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -208,9 +210,8 @@
}
}
}
- },
- "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,
@@ -276,19 +268,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until youβre freed with a successful Finesse or Strength roll or by dealing at least 6 damage to the vines.
"
}
},
+ "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 lasts until youβre freed with a successful Finesse or Strength roll or by dealing at least 6 damage to the vines.
",
"tint": "#ffffff",
@@ -300,16 +291,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!pGEdzdLkqYtBhxnG.maK5OyfrOxcjCoPt.LSeftEwgBbXXkLw3"
}
],
@@ -331,42 +312,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?
",
"resource": null,
- "actions": {
- "TPm6rpKA4mbili82": {
- "type": "summon",
- "_id": "TPm6rpKA4mbili82",
- "systemPath": "actions",
- "baseAction": false,
- "description": "",
- "chatDisplay": true,
- "originItem": {
- "type": "itemCollection"
- },
- "actionType": "action",
- "triggers": [],
- "cost": [],
- "uses": {
- "value": null,
- "max": null,
- "recovery": null,
- "consumeOnSuccess": false
- },
- "summon": [
- {
- "actorUUID": "Compendium.daggerheart.adversaries.Actor.8yUj2Mzvnifhxegm",
- "count": "1"
- },
- {
- "actorUUID": "Compendium.daggerheart.adversaries.Actor.VtFBt9XBE0WrGGxP",
- "count": "2"
- },
- {
- "actorUUID": "Compendium.daggerheart.adversaries.Actor.G62k4oSkhkoXEs2D",
- "count": "@partySize"
- }
- ]
- }
- },
+ "actions": {},
"originItemType": null,
"originId": null,
"featureForm": "action"
diff --git a/src/packs/environments/environment_Ambushed_uGEdNYERCTJBEjc5.json b/src/packs/environments/environment_Ambushed_uGEdNYERCTJBEjc5.json
index ea1a158c..b0ccd435 100644
--- a/src/packs/environments/environment_Ambushed_uGEdNYERCTJBEjc5.json
+++ b/src/packs/environments/environment_Ambushed_uGEdNYERCTJBEjc5.json
@@ -166,8 +166,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -192,7 +192,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/environments/environment_Burning_Heart_of_the_Woods_oY69NN4rYxoRE4hl.json b/src/packs/environments/environment_Burning_Heart_of_the_Woods_oY69NN4rYxoRE4hl.json
index 86d3eff4..ea4f1951 100644
--- a/src/packs/environments/environment_Burning_Heart_of_the_Woods_oY69NN4rYxoRE4hl.json
+++ b/src/packs/environments/environment_Burning_Heart_of_the_Woods_oY69NN4rYxoRE4hl.json
@@ -57,9 +57,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
},
@@ -110,7 +113,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -136,8 +139,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -211,7 +213,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -269,41 +271,30 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until you break free with a successful Finesse or Strength Roll or by dealing 10 damage to the vines.
"
}
},
+ "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 and Vulnerable until you break free, clearing both conditions, with a successful Finesse or Strength Roll or by dealing 10 damage to the vines. When the target makes a roll to escape, they take 1d8+4 physical damage and lose a Hope.
What painful memories do the vines bring to the surface as they pierce flesh?
",
+ "description": "Restrained and Vulnerable until you break free, clearing both conditions, with a successful Finesse or Strength Roll or by dealing 10 damage to the vines. When the target makes a roll to escape, they take 1d8+4 physical damage and lose a Hope.
What painful memories do the vines bring to the surface as they pierce flesh?
",
"tint": "#ffffff",
"statuses": [
- "vulnerable",
- "restrained"
+ "restrained",
+ "vulnerable"
],
"sort": 0,
"flags": {},
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!oY69NN4rYxoRE4hl.1aOeMMX0XuDtZbbB.gCkqvBUljsOsYacB"
}
],
@@ -323,14 +314,14 @@
"name": "Charcoal Constructs",
"type": "feature",
"system": {
- "description": "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?
",
+ "description": "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?
",
"resource": null,
"actions": {
"gbXIaKr8em134IZC": {
"type": "attack",
"_id": "gbXIaKr8em134IZC",
"systemPath": "actions",
- "description": "",
+ "description": "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?
",
"chatDisplay": true,
"actionType": "action",
"cost": [],
@@ -340,8 +331,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -367,9 +358,8 @@
}
}
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -398,16 +388,7 @@
},
"name": "Roll Save",
"img": "icons/creatures/magical/construct-face-stone-pink.webp",
- "range": "close",
- "areas": [
- {
- "name": "Charcoal Constructs",
- "type": "placed",
- "shape": "circle",
- "size": "close",
- "effects": []
- }
- ]
+ "range": "close"
}
},
"originItemType": null,
@@ -450,8 +431,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -477,7 +458,7 @@
}
}
}
- },
+ ],
"includeBase": false,
"direct": true
},
diff --git a/src/packs/environments/environment_Bustling_Marketplace_HZKA7hkej7JJY503.json b/src/packs/environments/environment_Bustling_Marketplace_HZKA7hkej7JJY503.json
index e10fad1a..ad96108b 100644
--- a/src/packs/environments/environment_Bustling_Marketplace_HZKA7hkej7JJY503.json
+++ b/src/packs/environments/environment_Bustling_Marketplace_HZKA7hkej7JJY503.json
@@ -50,9 +50,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
},
@@ -103,7 +106,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -129,15 +132,14 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
"name": "Tip the Scales",
"type": "feature",
"system": {
- "description": "PCs can gain advantage on a Presence Roll by offering a handful of gold as part of the interaction.
Will any coin be accepted or only local currency? How overt are the PCs in offering this bribe?
",
+ "description": "PCs can gain advantage on a Presence Roll by off ering a handful of gold as part of the interaction.
Will any coin be accepted or only local currency? How overt are the PCs in offering this bribe?
",
"resource": null,
"actions": {},
"originItemType": null,
@@ -205,7 +207,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/environments/environment_Castle_Siege_1eZ32Esq7rfZOjlu.json b/src/packs/environments/environment_Castle_Siege_1eZ32Esq7rfZOjlu.json
index 190d78b1..411a10c7 100644
--- a/src/packs/environments/environment_Castle_Siege_1eZ32Esq7rfZOjlu.json
+++ b/src/packs/environments/environment_Castle_Siege_1eZ32Esq7rfZOjlu.json
@@ -54,9 +54,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
},
@@ -107,7 +110,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -133,8 +136,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -183,8 +185,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "fear": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -209,7 +211,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -323,14 +325,14 @@
"name": "Collateral Damage",
"type": "feature",
"system": {
- "description": "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.
What debris is scattered by the attack? What is broken by the strike that canβt be easily mended?
",
+ "description": "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]
What debris is scattered by the attack? What is broken by the strike that canβt be easily mended?
",
"resource": null,
"actions": {
"r5JN5oFYL5DC6Qqw": {
"type": "attack",
"_id": "r5JN5oFYL5DC6Qqw",
"systemPath": "actions",
- "description": "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.
What debris is scattered by the attack? What is broken by the strike that canβt be easily mended?
",
+ "description": "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]
What debris is scattered by the attack? What is broken by the strike that canβt be easily mended?
",
"chatDisplay": true,
"actionType": "action",
"cost": [],
@@ -340,8 +342,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -367,9 +369,8 @@
}
}
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -398,16 +399,7 @@
},
"name": "Roll Save",
"img": "icons/magic/earth/projectile-stone-boulder-brown.webp",
- "range": "",
- "areas": [
- {
- "name": "Collateral Damage",
- "type": "placed",
- "shape": "circle",
- "size": "veryClose",
- "effects": []
- }
- ]
+ "range": ""
}
},
"originItemType": null,
diff --git a/src/packs/environments/environment_Chaos_Realm_2Z1mKc65LxNk2PqR.json b/src/packs/environments/environment_Chaos_Realm_2Z1mKc65LxNk2PqR.json
index e7c2c4e0..361b15bc 100644
--- a/src/packs/environments/environment_Chaos_Realm_2Z1mKc65LxNk2PqR.json
+++ b/src/packs/environments/environment_Chaos_Realm_2Z1mKc65LxNk2PqR.json
@@ -150,8 +150,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -176,7 +176,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -265,7 +265,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -381,8 +381,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -408,7 +408,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -552,8 +552,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -578,7 +578,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/environments/environment_Cliffside_Ascent_LPpfdlNKqiZIl04w.json b/src/packs/environments/environment_Cliffside_Ascent_LPpfdlNKqiZIl04w.json
index ef367d67..548cf7c4 100644
--- a/src/packs/environments/environment_Cliffside_Ascent_LPpfdlNKqiZIl04w.json
+++ b/src/packs/environments/environment_Cliffside_Ascent_LPpfdlNKqiZIl04w.json
@@ -214,8 +214,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -240,7 +240,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -292,8 +292,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -317,7 +317,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -343,8 +343,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -368,7 +368,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -394,8 +394,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -419,7 +419,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/environments/environment_Divine_Usurpation_4DLYez7VbMCFDAuZ.json b/src/packs/environments/environment_Divine_Usurpation_4DLYez7VbMCFDAuZ.json
index 637cdd41..d8e9cded 100644
--- a/src/packs/environments/environment_Divine_Usurpation_4DLYez7VbMCFDAuZ.json
+++ b/src/packs/environments/environment_Divine_Usurpation_4DLYez7VbMCFDAuZ.json
@@ -323,8 +323,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -349,7 +349,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -600,8 +600,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -625,7 +625,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/environments/environment_Hallowed_Temple_dsA6j69AnaJhUyqH.json b/src/packs/environments/environment_Hallowed_Temple_dsA6j69AnaJhUyqH.json
index c510a87f..f005fa59 100644
--- a/src/packs/environments/environment_Hallowed_Temple_dsA6j69AnaJhUyqH.json
+++ b/src/packs/environments/environment_Hallowed_Temple_dsA6j69AnaJhUyqH.json
@@ -150,8 +150,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -176,7 +176,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -268,8 +268,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -294,7 +294,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/environments/environment_Imperial_Court_jr1xAoXzVwVblzxI.json b/src/packs/environments/environment_Imperial_Court_jr1xAoXzVwVblzxI.json
index 5807d43c..4b49c341 100644
--- a/src/packs/environments/environment_Imperial_Court_jr1xAoXzVwVblzxI.json
+++ b/src/packs/environments/environment_Imperial_Court_jr1xAoXzVwVblzxI.json
@@ -209,8 +209,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -234,7 +234,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -307,7 +307,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -387,7 +387,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/environments/environment_Local_Tavern_cM4X81DOyvxNIi52.json b/src/packs/environments/environment_Local_Tavern_cM4X81DOyvxNIi52.json
index da2d2830..105f230f 100644
--- a/src/packs/environments/environment_Local_Tavern_cM4X81DOyvxNIi52.json
+++ b/src/packs/environments/environment_Local_Tavern_cM4X81DOyvxNIi52.json
@@ -266,8 +266,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -291,7 +291,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/environments/environment_Mountain_Pass_acMu9wJrMZZzLSTJ.json b/src/packs/environments/environment_Mountain_Pass_acMu9wJrMZZzLSTJ.json
index eaad99f7..9ba6a918 100644
--- a/src/packs/environments/environment_Mountain_Pass_acMu9wJrMZZzLSTJ.json
+++ b/src/packs/environments/environment_Mountain_Pass_acMu9wJrMZZzLSTJ.json
@@ -183,8 +183,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -208,7 +208,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -315,8 +315,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -341,7 +341,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/environments/environment_Necromancer_s_Ossuary_h3KyRL7AshhLAmcH.json b/src/packs/environments/environment_Necromancer_s_Ossuary_h3KyRL7AshhLAmcH.json
index 299e8729..e96b9177 100644
--- a/src/packs/environments/environment_Necromancer_s_Ossuary_h3KyRL7AshhLAmcH.json
+++ b/src/packs/environments/environment_Necromancer_s_Ossuary_h3KyRL7AshhLAmcH.json
@@ -43,9 +43,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
},
@@ -96,7 +99,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -122,8 +125,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -147,8 +149,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -173,7 +175,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -233,14 +235,14 @@
"name": "Skeletal Burst",
"type": "feature",
"system": {
- "description": "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?
",
+ "description": "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?
",
"resource": null,
"actions": {
"M1mOwi4Limw2hRwL": {
"type": "attack",
"_id": "M1mOwi4Limw2hRwL",
"systemPath": "actions",
- "description": "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?
",
+ "description": "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?
",
"chatDisplay": true,
"actionType": "action",
"cost": [],
@@ -250,8 +252,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -275,9 +277,8 @@
}
}
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -306,16 +307,7 @@
},
"name": "Roll Save",
"img": "icons/magic/death/bones-crossed-gray.webp",
- "range": "",
- "areas": [
- {
- "name": "Skeletal Burst",
- "type": "placed",
- "shape": "circle",
- "size": "close",
- "effects": []
- }
- ]
+ "range": ""
}
},
"originItemType": null,
@@ -358,7 +350,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/environments/environment_Pitched_Battle_EWD3ZsLoK6VMVOf7.json b/src/packs/environments/environment_Pitched_Battle_EWD3ZsLoK6VMVOf7.json
index 42fbd8f9..7be27924 100644
--- a/src/packs/environments/environment_Pitched_Battle_EWD3ZsLoK6VMVOf7.json
+++ b/src/packs/environments/environment_Pitched_Battle_EWD3ZsLoK6VMVOf7.json
@@ -54,9 +54,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
},
@@ -107,7 +110,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": {},
+ "detectionModes": [],
"occludable": {
"radius": 0
},
@@ -133,8 +136,7 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false,
- "depth": 1
+ "prependAdjective": false
},
"items": [
{
@@ -192,14 +194,14 @@
"name": "War Magic",
"type": "feature",
"system": {
- "description": "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?
",
+ "description": "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?
",
"resource": null,
"actions": {
"1giAFbu3tGqXwi8g": {
"type": "attack",
"_id": "1giAFbu3tGqXwi8g",
"systemPath": "actions",
- "description": "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?
",
+ "description": "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?
",
"chatDisplay": true,
"actionType": "action",
"cost": [
@@ -216,8 +218,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -243,9 +245,8 @@
}
}
}
- },
- "includeBase": false,
- "groupAttack": ""
+ ],
+ "includeBase": false
},
"target": {
"type": "any",
@@ -274,16 +275,7 @@
},
"name": "Roll Save",
"img": "icons/magic/fire/explosion-flame-lightning-strike.webp",
- "range": "far",
- "areas": [
- {
- "name": "War Magic",
- "type": "placed",
- "shape": "circle",
- "size": "close",
- "effects": []
- }
- ]
+ "range": "far"
}
},
"originItemType": null,
diff --git a/src/packs/environments/environment_Raging_River_t4cdqTfzcqP3H1vJ.json b/src/packs/environments/environment_Raging_River_t4cdqTfzcqP3H1vJ.json
index 6c87c446..6c34c296 100644
--- a/src/packs/environments/environment_Raging_River_t4cdqTfzcqP3H1vJ.json
+++ b/src/packs/environments/environment_Raging_River_t4cdqTfzcqP3H1vJ.json
@@ -230,8 +230,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -257,7 +257,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -315,19 +315,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until you get out of the river.
"
}
},
+ "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 you get out of the river.
",
"tint": "#ffffff",
@@ -339,16 +338,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!actors.items.effects!t4cdqTfzcqP3H1vJ.WsNoSwwtv0r80BMj.T0ouSQyR8cVpAn79"
}
],
diff --git a/src/packs/environments/folders_Tier_1_GQ0VnOLrKBIHR6Us.json b/src/packs/environments/folders_Tier_1_GQ0VnOLrKBIHR6Us.json
index 38f35169..7e6595b9 100644
--- a/src/packs/environments/folders_Tier_1_GQ0VnOLrKBIHR6Us.json
+++ b/src/packs/environments/folders_Tier_1_GQ0VnOLrKBIHR6Us.json
@@ -1,5 +1,5 @@
{
- "type": "Actor",
+ "type": "Item",
"folder": null,
"name": "Tier 1",
"color": null,
diff --git a/src/packs/environments/folders_Tier_2_XMeecO3IRvu5ck6F.json b/src/packs/environments/folders_Tier_2_XMeecO3IRvu5ck6F.json
index 2af9df23..9a77a641 100644
--- a/src/packs/environments/folders_Tier_2_XMeecO3IRvu5ck6F.json
+++ b/src/packs/environments/folders_Tier_2_XMeecO3IRvu5ck6F.json
@@ -1,5 +1,5 @@
{
- "type": "Actor",
+ "type": "Item",
"folder": null,
"name": "Tier 2",
"color": null,
diff --git a/src/packs/environments/folders_Tier_3_MfrIkJK12PAEfbPL.json b/src/packs/environments/folders_Tier_3_MfrIkJK12PAEfbPL.json
index 400a2ca9..1ae0a609 100644
--- a/src/packs/environments/folders_Tier_3_MfrIkJK12PAEfbPL.json
+++ b/src/packs/environments/folders_Tier_3_MfrIkJK12PAEfbPL.json
@@ -1,5 +1,5 @@
{
- "type": "Actor",
+ "type": "Item",
"folder": null,
"name": "Tier 3",
"color": null,
diff --git a/src/packs/environments/folders_Tier_4_IKumu5HTLqONLYqb.json b/src/packs/environments/folders_Tier_4_IKumu5HTLqONLYqb.json
index 3a171ddb..ed5b9f0a 100644
--- a/src/packs/environments/folders_Tier_4_IKumu5HTLqONLYqb.json
+++ b/src/packs/environments/folders_Tier_4_IKumu5HTLqONLYqb.json
@@ -1,5 +1,5 @@
{
- "type": "Actor",
+ "type": "Item",
"folder": null,
"name": "Tier 4",
"color": null,
diff --git a/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json b/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json
index 4566396a..174f20c8 100644
--- a/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json
+++ b/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json
@@ -5,10 +5,6 @@
"_id": "LzLOJ9EVaHWAjoq9",
"img": "icons/equipment/chest/breastplate-banded-steel-gold.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 6
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Advanced_Full_Plate_Armor_crIbCb9NZ4K0VpoU.json b/src/packs/items/armors/armor_Advanced_Full_Plate_Armor_crIbCb9NZ4K0VpoU.json
index 52adc7aa..dbc9d29f 100644
--- a/src/packs/items/armors/armor_Advanced_Full_Plate_Armor_crIbCb9NZ4K0VpoU.json
+++ b/src/packs/items/armors/armor_Advanced_Full_Plate_Armor_crIbCb9NZ4K0VpoU.json
@@ -5,10 +5,6 @@
"_id": "crIbCb9NZ4K0VpoU",
"img": "icons/equipment/chest/breastplate-layered-steel-grey.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 6
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json b/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json
index 36edec39..c9ffc8a3 100644
--- a/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json
+++ b/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json
@@ -5,10 +5,6 @@
"_id": "epkAmlZVk7HOfUUT",
"img": "icons/equipment/chest/breastplate-purple.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 5
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json b/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json
index 3e5dbd3b..4e1927e3 100644
--- a/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json
+++ b/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json
@@ -5,10 +5,6 @@
"_id": "itSOp2GCyem0f7oM",
"img": "icons/equipment/chest/breastplate-layered-leather-blue.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 5
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Bare_Bones_ITAjcigTcUw5pMCN.json b/src/packs/items/armors/armor_Bare_Bones_ITAjcigTcUw5pMCN.json
new file mode 100644
index 00000000..5158b100
--- /dev/null
+++ b/src/packs/items/armors/armor_Bare_Bones_ITAjcigTcUw5pMCN.json
@@ -0,0 +1,75 @@
+{
+ "folder": "tI3bfr6Sgi16Z7zm",
+ "name": "Bare Bones",
+ "type": "armor",
+ "_id": "ITAjcigTcUw5pMCN",
+ "img": "icons/magic/control/buff-strength-muscle-damage.webp",
+ "system": {
+ "description": "When you choose not to equip armor, you have a base Armor Score of 3 + your Strength and use the following as your base damage thresholds:
- Tier 1: 9/19
- Tier 2: 11/24
- Tier 3: 13/31
- Tier 4: 15/38
",
+ "actions": {},
+ "attached": [],
+ "tier": 1,
+ "equipped": false,
+ "baseScore": 3,
+ "armorFeatures": [],
+ "marks": {
+ "value": 0
+ },
+ "baseThresholds": {
+ "major": 9,
+ "severe": 19
+ }
+ },
+ "effects": [
+ {
+ "name": "Bare Bones",
+ "type": "base",
+ "system": {
+ "rangeDependence": {
+ "enabled": false,
+ "type": "withinRange",
+ "target": "hostile",
+ "range": "melee"
+ }
+ },
+ "_id": "8ze88zUwdkQSKKJq",
+ "img": "icons/magic/control/buff-strength-muscle-damage.webp",
+ "changes": [
+ {
+ "key": "system.armorScore",
+ "mode": 2,
+ "value": "@system.traits.strength.value",
+ "priority": 21
+ }
+ ],
+ "disabled": false,
+ "duration": {
+ "startTime": null,
+ "combat": null,
+ "seconds": null,
+ "rounds": null,
+ "turns": null,
+ "startRound": null,
+ "startTurn": null
+ },
+ "description": "When you choose not to equip armor, you have a base Armor Score of 3 + your Strength and use the following as your base damage thresholds:
- Tier 1: 9/19
- Tier 2: 11/24
- Tier 3: 13/31
- Tier 4: 15/38
",
+ "origin": null,
+ "tint": "#ffffff",
+ "transfer": true,
+ "statuses": [],
+ "sort": 0,
+ "flags": {},
+ "_stats": {
+ "compendiumSource": null
+ },
+ "_key": "!items.effects!ITAjcigTcUw5pMCN.8ze88zUwdkQSKKJq"
+ }
+ ],
+ "sort": 0,
+ "ownership": {
+ "default": 0,
+ "MQSznptE5yLT7kj8": 3
+ },
+ "flags": {},
+ "_key": "!items!ITAjcigTcUw5pMCN"
+}
diff --git a/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json b/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json
index c470de87..ce4e35fd 100644
--- a/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json
+++ b/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json
@@ -5,10 +5,6 @@
"_id": "WuoVwZA53XRAIt6d",
"img": "icons/equipment/chest/breastplate-layered-gold.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 5
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json b/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json
index 4ee73939..8b276d5f 100644
--- a/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json
+++ b/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json
@@ -5,10 +5,6 @@
"_id": "mNN6pvcsS10ChrWF",
"img": "icons/equipment/chest/breastplate-collared-steel-grey.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 6
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json b/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json
index 4f0719a7..f7526e96 100644
--- a/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json
+++ b/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json
@@ -5,10 +5,6 @@
"_id": "haULhuEg37zUUvhb",
"img": "icons/equipment/chest/breastplate-scale-grey.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 4
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json b/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json
index e805d5d1..a4bd0fea 100644
--- a/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json
+++ b/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json
@@ -5,10 +5,6 @@
"_id": "vMJxEWz1srfwMsoj",
"img": "icons/equipment/chest/robe-collared-blue.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 5
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json b/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json
index 4b270234..5b39e41d 100644
--- a/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json
+++ b/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json
@@ -5,10 +5,6 @@
"_id": "mdQ69eFHyAQUDmE7",
"img": "icons/equipment/chest/breastplate-rivited-red.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 5
- },
"description": "",
"actions": {
"J1MCpcfXByKaSSgx": {
diff --git a/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json b/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json
index 6d223ada..df692143 100644
--- a/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json
+++ b/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json
@@ -5,10 +5,6 @@
"_id": "hAY6UgdGT7dj22Pr",
"img": "icons/equipment/chest/robe-layered-red.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 7
- },
"description": "",
"actions": {
"8PD5JQuS05IA6HJT": {
@@ -52,7 +48,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json b/src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json
index 1cf74e2e..d63ce4df 100644
--- a/src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json
+++ b/src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json
@@ -5,10 +5,6 @@
"_id": "Q6LxmtFetDDkoZVZ",
"img": "icons/equipment/chest/breastplate-sculpted-green.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 4
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json b/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json
index 616bbadf..8ccc27e3 100644
--- a/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json
+++ b/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json
@@ -5,10 +5,6 @@
"_id": "bcQUh4QG3qFX0Vx6",
"img": "icons/equipment/chest/breastplate-layered-gilded-orange.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 6
- },
"description": "",
"actions": {
"L8mHf4A8SylyxsMH": {
@@ -24,8 +20,8 @@
"amount": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"applyTo": "stress",
"value": {
"custom": {
@@ -50,7 +46,7 @@
"base": false,
"type": []
}
- },
+ ],
"includeBase": false
},
"_id": "L8mHf4A8SylyxsMH",
diff --git a/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json b/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json
index 9f2d7ece..8eb964cc 100644
--- a/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json
+++ b/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json
@@ -5,10 +5,6 @@
"_id": "7emTSt6nhZuTlvt5",
"img": "icons/equipment/chest/breastplate-layered-steel.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 4
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json b/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json
index 7701d063..1ea120ed 100644
--- a/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json
+++ b/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json
@@ -5,10 +5,6 @@
"_id": "UdUJNa31WxFW2noa",
"img": "icons/equipment/chest/breastplate-collared-steel.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 4
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json b/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json
index 0ede5b60..1c775402 100644
--- a/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json
+++ b/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json
@@ -5,10 +5,6 @@
"_id": "yJFp1bfpecDcStVK",
"img": "icons/equipment/chest/vest-leather-tattered-white.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 3
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json b/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json
index 85ad1d6a..61d1fed7 100644
--- a/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json
+++ b/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json
@@ -5,10 +5,6 @@
"_id": "dvyQeUVRLc9y6rnt",
"img": "icons/equipment/chest/breastplate-gorget-steel.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 4
- },
"description": "",
"actions": {
"IzM88FIxQ35P5VB2": {
@@ -43,7 +39,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json b/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json
index ef93ecdd..96e320d1 100644
--- a/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json
+++ b/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json
@@ -5,10 +5,6 @@
"_id": "K5WkjS0NGqHYmhU3",
"img": "icons/equipment/chest/breastplate-metal-scaled-grey.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 5
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Improved_Full_Plate_Armor_9f7RozpPTqrzJS1m.json b/src/packs/items/armors/armor_Improved_Full_Plate_Armor_9f7RozpPTqrzJS1m.json
index 1723c53a..ee63a774 100644
--- a/src/packs/items/armors/armor_Improved_Full_Plate_Armor_9f7RozpPTqrzJS1m.json
+++ b/src/packs/items/armors/armor_Improved_Full_Plate_Armor_9f7RozpPTqrzJS1m.json
@@ -5,10 +5,6 @@
"_id": "9f7RozpPTqrzJS1m",
"img": "icons/equipment/chest/breastplate-cuirass-steel-grey.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 5
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json b/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json
index a2ff6554..6f4ea1c3 100644
--- a/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json
+++ b/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json
@@ -5,10 +5,6 @@
"_id": "jphnMZjnS2FkOH3s",
"img": "icons/equipment/chest/breastplate-quilted-brown.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 4
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json b/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json
index efa3643d..a4f38cc6 100644
--- a/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json
+++ b/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json
@@ -5,10 +5,6 @@
"_id": "t91M61pSCMKStTNt",
"img": "icons/equipment/chest/breastplate-banded-simple-leather-brown.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 4
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json b/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json
index a664ad9c..a9e9eaca 100644
--- a/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json
+++ b/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json
@@ -5,10 +5,6 @@
"_id": "tzZntboNtHL5C6VM",
"img": "icons/equipment/chest/breastplate-layered-leather-brown-silver.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 4
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json b/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json
index 93d8f0cc..37a13f2b 100644
--- a/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json
+++ b/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json
@@ -5,10 +5,6 @@
"_id": "nibfdNtp2PtxvbVz",
"img": "icons/equipment/chest/breastplate-layered-leather-brown.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 3
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json b/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json
index 6c93cbe4..4bee5e4f 100644
--- a/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json
+++ b/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json
@@ -5,10 +5,6 @@
"_id": "EsIN5OLKe9ZYFNXZ",
"img": "icons/equipment/chest/breastplate-banded-blue.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 7
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Legendary_Full_Plate_Armor_SXWjUR2aUR6bYvdl.json b/src/packs/items/armors/armor_Legendary_Full_Plate_Armor_SXWjUR2aUR6bYvdl.json
index f66e4c38..baf544c2 100644
--- a/src/packs/items/armors/armor_Legendary_Full_Plate_Armor_SXWjUR2aUR6bYvdl.json
+++ b/src/packs/items/armors/armor_Legendary_Full_Plate_Armor_SXWjUR2aUR6bYvdl.json
@@ -5,10 +5,6 @@
"_id": "SXWjUR2aUR6bYvdl",
"img": "icons/equipment/chest/breastplate-layered-steel-blue-gold.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 7
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json b/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json
index 4cf1c856..338c85e8 100644
--- a/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json
+++ b/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json
@@ -5,10 +5,6 @@
"_id": "c6tMXz4rPf9ioQrf",
"img": "icons/equipment/chest/breastplate-layered-leather-blue-gold.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 6
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json b/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json
index 3ddc5ed7..42334dc4 100644
--- a/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json
+++ b/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json
@@ -5,10 +5,6 @@
"_id": "Tptgl5WOj76TyFn7",
"img": "icons/equipment/chest/breastplate-layered-gilded-black.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 6
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json b/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json
index 6bb479a4..9a8e1f22 100644
--- a/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json
+++ b/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json
@@ -5,10 +5,6 @@
"_id": "AQzU2RsqS5V5bd1v",
"img": "icons/equipment/chest/coat-collared-red.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 6
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json b/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json
index e3cde9fb..0f0f6430 100644
--- a/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json
+++ b/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json
@@ -5,10 +5,6 @@
"_id": "tN8kAeBvNKM3EBFo",
"img": "icons/equipment/chest/breastplate-banded-leather-purple.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 5
- },
"description": "",
"actions": {
"QRTnCYxJfuJHdnyV": {
diff --git a/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json b/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json
index 2ccc80da..240a4f3e 100644
--- a/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json
+++ b/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json
@@ -5,10 +5,6 @@
"_id": "P4qAEDJUoNLgVRsA",
"img": "icons/magic/symbols/rune-sigil-red-orange.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 6
- },
"description": "",
"actions": {
"37KLF2bim9nRdPTU": {
diff --git a/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json b/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json
index 593bc8e0..8d4af425 100644
--- a/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json
+++ b/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json
@@ -5,10 +5,6 @@
"_id": "tHlBUDQC24YMZqd6",
"img": "icons/equipment/chest/breastplate-layered-leather-black.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 4
- },
"description": "",
"actions": {
"Nn33zCIcWe6LQMDH": {
diff --git a/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json b/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json
index 6826254a..714e8592 100644
--- a/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json
+++ b/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json
@@ -5,10 +5,6 @@
"_id": "8X16lJQ3xltTwynm",
"img": "icons/equipment/chest/breastplate-layered-leather-green.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 8
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json b/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json
index ac9115a2..cb5fc720 100644
--- a/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json
+++ b/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json
@@ -5,10 +5,6 @@
"_id": "QjwsIhXKqnlvRBMv",
"img": "icons/equipment/chest/breastplate-banded-steel-studded.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 5
- },
"description": "",
"actions": {},
"attached": [],
diff --git a/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json b/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json
index c6766018..da640830 100644
--- a/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json
+++ b/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json
@@ -5,10 +5,6 @@
"_id": "PSW3BxCGmtLeWOxM",
"img": "icons/equipment/chest/robe-layered-purple.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 5
- },
"description": "",
"actions": {
"Ch6IhuPewBeseGez": {
diff --git a/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json b/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json
index 403b79e8..08a1b573 100644
--- a/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json
+++ b/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json
@@ -5,10 +5,6 @@
"_id": "OvzgUTYy2RCN85vV",
"img": "icons/equipment/chest/breastplate-collared-steel-green.webp",
"system": {
- "armor": {
- "current": 0,
- "max": 6
- },
"description": "",
"actions": {
"sY3W5JYspN5Du5ag": {
diff --git a/src/packs/items/armors/folders_Special_tI3bfr6Sgi16Z7zm.json b/src/packs/items/armors/folders_Special_tI3bfr6Sgi16Z7zm.json
new file mode 100644
index 00000000..65c4eca8
--- /dev/null
+++ b/src/packs/items/armors/folders_Special_tI3bfr6Sgi16Z7zm.json
@@ -0,0 +1,12 @@
+{
+ "type": "Item",
+ "folder": null,
+ "name": "Special",
+ "color": null,
+ "sorting": "a",
+ "_id": "tI3bfr6Sgi16Z7zm",
+ "description": "",
+ "sort": 0,
+ "flags": {},
+ "_key": "!folders!tI3bfr6Sgi16Z7zm"
+}
diff --git a/src/packs/items/consumables/consumable_Acidpaste_cfVFmS8vT9dbq9s1.json b/src/packs/items/consumables/consumable_Acidpaste_cfVFmS8vT9dbq9s1.json
index c1833e87..7c2d113d 100644
--- a/src/packs/items/consumables/consumable_Acidpaste_cfVFmS8vT9dbq9s1.json
+++ b/src/packs/items/consumables/consumable_Acidpaste_cfVFmS8vT9dbq9s1.json
@@ -40,6 +40,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json b/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json
index d78986cf..58efc3cc 100644
--- a/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json
+++ b/src/packs/items/consumables/consumable_Armor_Stitcher_VlbsCjvvLNfTzNXb.json
@@ -48,6 +48,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Attune_Potion_JGD3M9hBHtVAA8XP.json b/src/packs/items/consumables/consumable_Attune_Potion_JGD3M9hBHtVAA8XP.json
index e034976a..f19c55c3 100644
--- a/src/packs/items/consumables/consumable_Attune_Potion_JGD3M9hBHtVAA8XP.json
+++ b/src/packs/items/consumables/consumable_Attune_Potion_JGD3M9hBHtVAA8XP.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 60,
diff --git a/src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json b/src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json
index 1282ceeb..94a6671b 100644
--- a/src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json
+++ b/src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 62,
@@ -59,21 +60,19 @@
"transfer": false,
"_id": "nryJhrF26hyFQUxH",
"type": "base",
- "system": {
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until they mark HP.
"
- }
- },
+ "system": {},
+ "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 are Vulnerable until you mark a Hit Point.
",
+ "description": "You are Vulnerable until you mark a Hit Point.
",
"tint": "#ffffff",
"statuses": [
"vulnerable"
@@ -83,16 +82,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!eAXHdzA5qNPldOpn.nryJhrF26hyFQUxH"
}
],
diff --git a/src/packs/items/consumables/consumable_Blood_of_the_Yorgi_pDGzmczoTlKGmKgd.json b/src/packs/items/consumables/consumable_Blood_of_the_Yorgi_pDGzmczoTlKGmKgd.json
index df40e563..6a84b89b 100644
--- a/src/packs/items/consumables/consumable_Blood_of_the_Yorgi_pDGzmczoTlKGmKgd.json
+++ b/src/packs/items/consumables/consumable_Blood_of_the_Yorgi_pDGzmczoTlKGmKgd.json
@@ -40,6 +40,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Bolster_Potion_FOPQNqXbiVO0ilYL.json b/src/packs/items/consumables/consumable_Bolster_Potion_FOPQNqXbiVO0ilYL.json
index 421acdc3..c6241a9c 100644
--- a/src/packs/items/consumables/consumable_Bolster_Potion_FOPQNqXbiVO0ilYL.json
+++ b/src/packs/items/consumables/consumable_Bolster_Potion_FOPQNqXbiVO0ilYL.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 60,
diff --git a/src/packs/items/consumables/consumable_Bonding_Honey_PfQvqopXgvroBklL.json b/src/packs/items/consumables/consumable_Bonding_Honey_PfQvqopXgvroBklL.json
index 04532b27..4240ae2e 100644
--- a/src/packs/items/consumables/consumable_Bonding_Honey_PfQvqopXgvroBklL.json
+++ b/src/packs/items/consumables/consumable_Bonding_Honey_PfQvqopXgvroBklL.json
@@ -40,6 +40,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 62,
diff --git a/src/packs/items/consumables/consumable_Bridge_Seed_RrIasiMCt6mqVTps.json b/src/packs/items/consumables/consumable_Bridge_Seed_RrIasiMCt6mqVTps.json
index b81e7f36..a80481d5 100644
--- a/src/packs/items/consumables/consumable_Bridge_Seed_RrIasiMCt6mqVTps.json
+++ b/src/packs/items/consumables/consumable_Bridge_Seed_RrIasiMCt6mqVTps.json
@@ -40,6 +40,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Channelstone_IKMVQ6VwtapwoUim.json b/src/packs/items/consumables/consumable_Channelstone_IKMVQ6VwtapwoUim.json
index 28a13044..f4ec4476 100644
--- a/src/packs/items/consumables/consumable_Channelstone_IKMVQ6VwtapwoUim.json
+++ b/src/packs/items/consumables/consumable_Channelstone_IKMVQ6VwtapwoUim.json
@@ -40,6 +40,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Charm_Potion_CVBbFfOY75YwyQsp.json b/src/packs/items/consumables/consumable_Charm_Potion_CVBbFfOY75YwyQsp.json
index f1d7b058..48303854 100644
--- a/src/packs/items/consumables/consumable_Charm_Potion_CVBbFfOY75YwyQsp.json
+++ b/src/packs/items/consumables/consumable_Charm_Potion_CVBbFfOY75YwyQsp.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 60,
diff --git a/src/packs/items/consumables/consumable_Circle_of_the_Void_elsyP6VhHw1JjGSl.json b/src/packs/items/consumables/consumable_Circle_of_the_Void_elsyP6VhHw1JjGSl.json
index 7c93342e..159a1381 100644
--- a/src/packs/items/consumables/consumable_Circle_of_the_Void_elsyP6VhHw1JjGSl.json
+++ b/src/packs/items/consumables/consumable_Circle_of_the_Void_elsyP6VhHw1JjGSl.json
@@ -40,6 +40,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Control_Potion_eeBhZSGLjuNZuJuI.json b/src/packs/items/consumables/consumable_Control_Potion_eeBhZSGLjuNZuJuI.json
index 2c6b9a93..9523cdce 100644
--- a/src/packs/items/consumables/consumable_Control_Potion_eeBhZSGLjuNZuJuI.json
+++ b/src/packs/items/consumables/consumable_Control_Potion_eeBhZSGLjuNZuJuI.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 60,
diff --git a/src/packs/items/consumables/consumable_Death_Tea_xDnJeF1grkmKck8Q.json b/src/packs/items/consumables/consumable_Death_Tea_xDnJeF1grkmKck8Q.json
index 5fbae976..1a7ae1a5 100644
--- a/src/packs/items/consumables/consumable_Death_Tea_xDnJeF1grkmKck8Q.json
+++ b/src/packs/items/consumables/consumable_Death_Tea_xDnJeF1grkmKck8Q.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 62,
diff --git a/src/packs/items/consumables/consumable_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json b/src/packs/items/consumables/consumable_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json
index 5e877f6d..f484f3c9 100644
--- a/src/packs/items/consumables/consumable_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json
+++ b/src/packs/items/consumables/consumable_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -55,7 +55,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -89,6 +89,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Dripfang_Poison_eU8VpbWB2NHIL47n.json b/src/packs/items/consumables/consumable_Dripfang_Poison_eU8VpbWB2NHIL47n.json
index cb2c7997..70070ab2 100644
--- a/src/packs/items/consumables/consumable_Dripfang_Poison_eU8VpbWB2NHIL47n.json
+++ b/src/packs/items/consumables/consumable_Dripfang_Poison_eU8VpbWB2NHIL47n.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -57,7 +57,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -71,6 +71,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Enlighten_Potion_aWHSO2AqDufi7nL4.json b/src/packs/items/consumables/consumable_Enlighten_Potion_aWHSO2AqDufi7nL4.json
index bff70126..02ffa6d9 100644
--- a/src/packs/items/consumables/consumable_Enlighten_Potion_aWHSO2AqDufi7nL4.json
+++ b/src/packs/items/consumables/consumable_Enlighten_Potion_aWHSO2AqDufi7nL4.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 60,
diff --git a/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json b/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json
index 159e0442..f98d86f1 100644
--- a/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json
+++ b/src/packs/items/consumables/consumable_Feast_of_Xuria_aX6NyxkNzu0LcJpt.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -56,7 +56,7 @@
},
"type": []
},
- "stress": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -81,7 +81,7 @@
},
"type": []
},
- "hope": {
+ {
"value": {
"custom": {
"enabled": false
@@ -105,7 +105,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -134,6 +134,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 62,
diff --git a/src/packs/items/consumables/consumable_Featherbone_DpxEMpwfasEBpORU.json b/src/packs/items/consumables/consumable_Featherbone_DpxEMpwfasEBpORU.json
index 9b5bd0df..dbf5b19a 100644
--- a/src/packs/items/consumables/consumable_Featherbone_DpxEMpwfasEBpORU.json
+++ b/src/packs/items/consumables/consumable_Featherbone_DpxEMpwfasEBpORU.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Gill_Salve_Nvbb9mze6o5D0AEg.json b/src/packs/items/consumables/consumable_Gill_Salve_Nvbb9mze6o5D0AEg.json
index 890c61e4..e69c440c 100644
--- a/src/packs/items/consumables/consumable_Gill_Salve_Nvbb9mze6o5D0AEg.json
+++ b/src/packs/items/consumables/consumable_Gill_Salve_Nvbb9mze6o5D0AEg.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Grindletooth_Venom_8WkhvSzeOmLdnoLJ.json b/src/packs/items/consumables/consumable_Grindletooth_Venom_8WkhvSzeOmLdnoLJ.json
index 70291404..75d19c32 100644
--- a/src/packs/items/consumables/consumable_Grindletooth_Venom_8WkhvSzeOmLdnoLJ.json
+++ b/src/packs/items/consumables/consumable_Grindletooth_Venom_8WkhvSzeOmLdnoLJ.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 60,
diff --git a/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json b/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json
index 833e7055..e4493348 100644
--- a/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json
+++ b/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 62,
@@ -59,31 +60,30 @@
"transfer": false,
"_id": "YEGd74Lssj7rCmpF",
"type": "base",
- "system": {
- "changes": [
- {
- "key": "system.traits.strength.value",
- "value": 2,
- "priority": null,
- "type": "add"
- },
- {
- "key": "system.proficiency",
- "value": 1,
- "priority": null,
- "type": "add"
- }
- ],
- "duration": {
- "type": "shortRest"
+ "system": {},
+ "changes": [
+ {
+ "key": "system.traits.strength.value",
+ "mode": 2,
+ "value": "2",
+ "priority": null
+ },
+ {
+ "key": "system.proficiency",
+ "mode": 2,
+ "value": "1",
+ "priority": null
}
- },
+ ],
"disabled": false,
"duration": {
- "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",
@@ -93,16 +93,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!fl2f3ees8RFMze9t.YEGd74Lssj7rCmpF"
}
],
diff --git a/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json b/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json
index 7365b375..8c620942 100644
--- a/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json
+++ b/src/packs/items/consumables/consumable_Health_Potion_Aruc2NLutWuVIjP1.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -55,7 +55,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -84,6 +84,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Homet_s_Secret_Potion_VSwa1LpQ9PjZKsWF.json b/src/packs/items/consumables/consumable_Homet_s_Secret_Potion_VSwa1LpQ9PjZKsWF.json
index 00eb03f1..8ee6f171 100644
--- a/src/packs/items/consumables/consumable_Homet_s_Secret_Potion_VSwa1LpQ9PjZKsWF.json
+++ b/src/packs/items/consumables/consumable_Homet_s_Secret_Potion_VSwa1LpQ9PjZKsWF.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Hopehold_Flare_EhaQCPJ8oiqpRIwB.json b/src/packs/items/consumables/consumable_Hopehold_Flare_EhaQCPJ8oiqpRIwB.json
index 2d83ed52..809ad08e 100644
--- a/src/packs/items/consumables/consumable_Hopehold_Flare_EhaQCPJ8oiqpRIwB.json
+++ b/src/packs/items/consumables/consumable_Hopehold_Flare_EhaQCPJ8oiqpRIwB.json
@@ -40,6 +40,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Improved_Arcane_Shard_nQTo6mNoPTEVBtkm.json b/src/packs/items/consumables/consumable_Improved_Arcane_Shard_nQTo6mNoPTEVBtkm.json
index 707a395f..2081f33b 100644
--- a/src/packs/items/consumables/consumable_Improved_Arcane_Shard_nQTo6mNoPTEVBtkm.json
+++ b/src/packs/items/consumables/consumable_Improved_Arcane_Shard_nQTo6mNoPTEVBtkm.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -57,7 +57,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -91,6 +91,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Improved_Grindletooth_Venom_BqBWXXe9T07AMV4u.json b/src/packs/items/consumables/consumable_Improved_Grindletooth_Venom_BqBWXXe9T07AMV4u.json
index 560644b3..904c4675 100644
--- a/src/packs/items/consumables/consumable_Improved_Grindletooth_Venom_BqBWXXe9T07AMV4u.json
+++ b/src/packs/items/consumables/consumable_Improved_Grindletooth_Venom_BqBWXXe9T07AMV4u.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 60,
diff --git a/src/packs/items/consumables/consumable_Jar_of_Lost_Voices_yUol6M5b8jsbk9za.json b/src/packs/items/consumables/consumable_Jar_of_Lost_Voices_yUol6M5b8jsbk9za.json
index c8e6e75b..c655f7ca 100644
--- a/src/packs/items/consumables/consumable_Jar_of_Lost_Voices_yUol6M5b8jsbk9za.json
+++ b/src/packs/items/consumables/consumable_Jar_of_Lost_Voices_yUol6M5b8jsbk9za.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -57,7 +57,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -71,6 +71,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Jumping_Root_c2putn9apuurJhWX.json b/src/packs/items/consumables/consumable_Jumping_Root_c2putn9apuurJhWX.json
index c1b5eee1..dec72da8 100644
--- a/src/packs/items/consumables/consumable_Jumping_Root_c2putn9apuurJhWX.json
+++ b/src/packs/items/consumables/consumable_Jumping_Root_c2putn9apuurJhWX.json
@@ -40,6 +40,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Knowledge_Stone_nL9IALzm9BNi5oSt.json b/src/packs/items/consumables/consumable_Knowledge_Stone_nL9IALzm9BNi5oSt.json
index 9685a44f..19f273ed 100644
--- a/src/packs/items/consumables/consumable_Knowledge_Stone_nL9IALzm9BNi5oSt.json
+++ b/src/packs/items/consumables/consumable_Knowledge_Stone_nL9IALzm9BNi5oSt.json
@@ -40,6 +40,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 62,
diff --git a/src/packs/items/consumables/consumable_Major_Arcane_Shard_AA7bmiwv00lshPrC.json b/src/packs/items/consumables/consumable_Major_Arcane_Shard_AA7bmiwv00lshPrC.json
index 5e95fe66..b9293362 100644
--- a/src/packs/items/consumables/consumable_Major_Arcane_Shard_AA7bmiwv00lshPrC.json
+++ b/src/packs/items/consumables/consumable_Major_Arcane_Shard_AA7bmiwv00lshPrC.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -55,7 +55,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -89,6 +89,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Major_Attune_Potion_CCPFm5iXXwvyYYwR.json b/src/packs/items/consumables/consumable_Major_Attune_Potion_CCPFm5iXXwvyYYwR.json
index b27fee91..6090c631 100644
--- a/src/packs/items/consumables/consumable_Major_Attune_Potion_CCPFm5iXXwvyYYwR.json
+++ b/src/packs/items/consumables/consumable_Major_Attune_Potion_CCPFm5iXXwvyYYwR.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Major_Bolster_Potion_mnyQDRtngWWQeRXF.json b/src/packs/items/consumables/consumable_Major_Bolster_Potion_mnyQDRtngWWQeRXF.json
index 95cd6c92..98329c78 100644
--- a/src/packs/items/consumables/consumable_Major_Bolster_Potion_mnyQDRtngWWQeRXF.json
+++ b/src/packs/items/consumables/consumable_Major_Bolster_Potion_mnyQDRtngWWQeRXF.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Major_Charm_Potion_IJLAUlQymbSjzsri.json b/src/packs/items/consumables/consumable_Major_Charm_Potion_IJLAUlQymbSjzsri.json
index c7e22aeb..aebb9435 100644
--- a/src/packs/items/consumables/consumable_Major_Charm_Potion_IJLAUlQymbSjzsri.json
+++ b/src/packs/items/consumables/consumable_Major_Charm_Potion_IJLAUlQymbSjzsri.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Major_Control_Potion_80s1FLmTLtohZ5GH.json b/src/packs/items/consumables/consumable_Major_Control_Potion_80s1FLmTLtohZ5GH.json
index 1dabf6c6..76d4ea3c 100644
--- a/src/packs/items/consumables/consumable_Major_Control_Potion_80s1FLmTLtohZ5GH.json
+++ b/src/packs/items/consumables/consumable_Major_Control_Potion_80s1FLmTLtohZ5GH.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Major_Enlighten_Potion_SDdv1G2veMLKrxcJ.json b/src/packs/items/consumables/consumable_Major_Enlighten_Potion_SDdv1G2veMLKrxcJ.json
index 5a9a2d28..9bbd4290 100644
--- a/src/packs/items/consumables/consumable_Major_Enlighten_Potion_SDdv1G2veMLKrxcJ.json
+++ b/src/packs/items/consumables/consumable_Major_Enlighten_Potion_SDdv1G2veMLKrxcJ.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json b/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json
index 67be0b08..201233ce 100644
--- a/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json
+++ b/src/packs/items/consumables/consumable_Major_Health_Potion_cM7pHe8bBAxSZ2xR.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -55,7 +55,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -84,6 +84,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json b/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json
index 703c2cbe..3f7d2a00 100644
--- a/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json
+++ b/src/packs/items/consumables/consumable_Major_Stamina_Potion_I4cQ03xbxnc81EGa.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -55,7 +55,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -84,6 +84,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Major_Stride_Potion_yK6eEDUrsPbZA8G0.json b/src/packs/items/consumables/consumable_Major_Stride_Potion_yK6eEDUrsPbZA8G0.json
index dbfe2dcc..320a77a3 100644
--- a/src/packs/items/consumables/consumable_Major_Stride_Potion_yK6eEDUrsPbZA8G0.json
+++ b/src/packs/items/consumables/consumable_Major_Stride_Potion_yK6eEDUrsPbZA8G0.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
@@ -59,25 +60,24 @@
"transfer": false,
"_id": "L9dAw8pws1o02XkE",
"type": "base",
- "system": {
- "changes": [
- {
- "key": "system.traits.agility.value",
- "value": 1,
- "priority": null,
- "type": "add"
- }
- ],
- "duration": {
- "type": "shortRest"
+ "system": {},
+ "changes": [
+ {
+ "key": "system.traits.agility.value",
+ "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",
@@ -87,16 +87,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!yK6eEDUrsPbZA8G0.L9dAw8pws1o02XkE"
}
],
diff --git a/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json b/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json
index fe86bf95..1e1e31f1 100644
--- a/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json
+++ b/src/packs/items/consumables/consumable_Minor_Health_Potion_tPfKtKRRjv8qdSqy.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -55,7 +55,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -84,6 +84,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 60,
diff --git a/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json b/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json
index 625167e1..9895b3ef 100644
--- a/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json
+++ b/src/packs/items/consumables/consumable_Minor_Stamina_Potion_b6vGSPFWOlzZZDLO.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -55,7 +55,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -84,6 +84,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 60,
diff --git a/src/packs/items/consumables/consumable_Mirror_of_Marigold_UFQVwgYOUZ88UxcH.json b/src/packs/items/consumables/consumable_Mirror_of_Marigold_UFQVwgYOUZ88UxcH.json
index 7adaf3e6..ba3a3f17 100644
--- a/src/packs/items/consumables/consumable_Mirror_of_Marigold_UFQVwgYOUZ88UxcH.json
+++ b/src/packs/items/consumables/consumable_Mirror_of_Marigold_UFQVwgYOUZ88UxcH.json
@@ -40,6 +40,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 62,
diff --git a/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json b/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json
index 90dd4fdc..970cabd4 100644
--- a/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json
+++ b/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
@@ -65,20 +66,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "shortRest"
}
},
+ "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": "Your face is unrecognizable until your next rest.
",
+ "description": "Your face is unrecognizable until your next rest.
",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -86,16 +87,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!f1NHVSIHJJCIOaBl.rMno0zO5Cbwlu4zn"
}
],
diff --git a/src/packs/items/consumables/consumable_Mythic_Dust_Zsh2AvZr8EkGtLyw.json b/src/packs/items/consumables/consumable_Mythic_Dust_Zsh2AvZr8EkGtLyw.json
index 342bf60b..e281399e 100644
--- a/src/packs/items/consumables/consumable_Mythic_Dust_Zsh2AvZr8EkGtLyw.json
+++ b/src/packs/items/consumables/consumable_Mythic_Dust_Zsh2AvZr8EkGtLyw.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json b/src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json
index 59e51e80..874072cc 100644
--- a/src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json
+++ b/src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
@@ -65,20 +66,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "shortRest"
}
},
+ "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 cannot be tracked by mundane or magical means until your next rest.
",
+ "description": "You cannot be tracked by mundane or magical means until your next rest.
",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -86,16 +87,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!qr1bosjFcUfuwq4B.n73d0J4oMCBIPWHN"
}
],
diff --git a/src/packs/items/consumables/consumable_Potion_of_Stability_dvL8oaxpEF6jKvYN.json b/src/packs/items/consumables/consumable_Potion_of_Stability_dvL8oaxpEF6jKvYN.json
index ddff33f0..ba2f2b30 100644
--- a/src/packs/items/consumables/consumable_Potion_of_Stability_dvL8oaxpEF6jKvYN.json
+++ b/src/packs/items/consumables/consumable_Potion_of_Stability_dvL8oaxpEF6jKvYN.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 60,
diff --git a/src/packs/items/consumables/consumable_Redthorn_Saliva_s2Exl2XFuoOhtIov.json b/src/packs/items/consumables/consumable_Redthorn_Saliva_s2Exl2XFuoOhtIov.json
index 69edf2df..654470db 100644
--- a/src/packs/items/consumables/consumable_Redthorn_Saliva_s2Exl2XFuoOhtIov.json
+++ b/src/packs/items/consumables/consumable_Redthorn_Saliva_s2Exl2XFuoOhtIov.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Replication_Parchment_yJkwz4AP6yhGo8Vj.json b/src/packs/items/consumables/consumable_Replication_Parchment_yJkwz4AP6yhGo8Vj.json
index 702d10ca..c2176ca0 100644
--- a/src/packs/items/consumables/consumable_Replication_Parchment_yJkwz4AP6yhGo8Vj.json
+++ b/src/packs/items/consumables/consumable_Replication_Parchment_yJkwz4AP6yhGo8Vj.json
@@ -40,6 +40,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json b/src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json
index a31a13f1..7bf8c686 100644
--- a/src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json
+++ b/src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 62,
@@ -59,31 +60,30 @@
"transfer": false,
"_id": "yaRLd7eHWYm2MHRM",
"type": "base",
- "system": {
- "changes": [
- {
- "key": "system.traits.agility.value",
- "value": 2,
- "priority": null,
- "type": "add"
- },
- {
- "key": "system.proficiency",
- "value": -1,
- "priority": null,
- "type": "add"
- }
- ],
- "duration": {
- "type": "shortRest"
+ "system": {},
+ "changes": [
+ {
+ "key": "system.traits.agility.value",
+ "mode": 2,
+ "value": "2",
+ "priority": null
+ },
+ {
+ "key": "system.proficiency",
+ "mode": 2,
+ "value": "-1",
+ "priority": null
}
- },
+ ],
"disabled": false,
"duration": {
- "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",
@@ -93,16 +93,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!HGixKenQwhyRAYNk.yaRLd7eHWYm2MHRM"
}
],
diff --git a/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json b/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json
index d66ff42b..74fbf749 100644
--- a/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json
+++ b/src/packs/items/consumables/consumable_Sleeping_Sap_XZavUVlHEvE2srEt.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -56,7 +56,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -85,6 +85,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 62,
diff --git a/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json b/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json
index 506cb1cf..adcf8a31 100644
--- a/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json
+++ b/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -56,7 +56,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -85,6 +85,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json b/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json
index f464ee61..9cb4716e 100644
--- a/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json
+++ b/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -55,7 +55,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -84,6 +84,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Stardrop_y4c1jrlHrf0wBWOq.json b/src/packs/items/consumables/consumable_Stardrop_y4c1jrlHrf0wBWOq.json
index 3351c24f..1a8800cd 100644
--- a/src/packs/items/consumables/consumable_Stardrop_y4c1jrlHrf0wBWOq.json
+++ b/src/packs/items/consumables/consumable_Stardrop_y4c1jrlHrf0wBWOq.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -57,7 +57,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -71,6 +71,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 62,
diff --git a/src/packs/items/consumables/consumable_Stride_Potion_lNtcrkgFGOJNaroE.json b/src/packs/items/consumables/consumable_Stride_Potion_lNtcrkgFGOJNaroE.json
index 76d43d33..94baa901 100644
--- a/src/packs/items/consumables/consumable_Stride_Potion_lNtcrkgFGOJNaroE.json
+++ b/src/packs/items/consumables/consumable_Stride_Potion_lNtcrkgFGOJNaroE.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 60,
diff --git a/src/packs/items/consumables/consumable_Sun_Tree_Sap_kwexUzdM9wm1Qums.json b/src/packs/items/consumables/consumable_Sun_Tree_Sap_kwexUzdM9wm1Qums.json
index cfe0a63c..48a61a28 100644
--- a/src/packs/items/consumables/consumable_Sun_Tree_Sap_kwexUzdM9wm1Qums.json
+++ b/src/packs/items/consumables/consumable_Sun_Tree_Sap_kwexUzdM9wm1Qums.json
@@ -30,7 +30,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -64,6 +64,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json b/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json
index 84663fb4..f8b6fbb7 100644
--- a/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json
+++ b/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -55,7 +55,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -105,8 +105,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -130,7 +130,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -159,6 +159,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 62,
diff --git a/src/packs/items/consumables/consumable_Unstable_Arcane_Shard_mUepnLbkvFk0ha4Z.json b/src/packs/items/consumables/consumable_Unstable_Arcane_Shard_mUepnLbkvFk0ha4Z.json
index b6f18539..96b83780 100644
--- a/src/packs/items/consumables/consumable_Unstable_Arcane_Shard_mUepnLbkvFk0ha4Z.json
+++ b/src/packs/items/consumables/consumable_Unstable_Arcane_Shard_mUepnLbkvFk0ha4Z.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -57,7 +57,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -91,6 +91,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 60,
diff --git a/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json b/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json
index 7e2f0c08..79f4d11e 100644
--- a/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json
+++ b/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json
@@ -30,8 +30,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -56,7 +56,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -85,6 +85,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 60,
diff --git a/src/packs/items/consumables/consumable_Vial_of_Darksmoke_Nwv5ydGf0MWnzq1n.json b/src/packs/items/consumables/consumable_Vial_of_Darksmoke_Nwv5ydGf0MWnzq1n.json
index b956477d..9de41467 100644
--- a/src/packs/items/consumables/consumable_Vial_of_Darksmoke_Nwv5ydGf0MWnzq1n.json
+++ b/src/packs/items/consumables/consumable_Vial_of_Darksmoke_Nwv5ydGf0MWnzq1n.json
@@ -40,6 +40,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/consumables/consumable_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json b/src/packs/items/consumables/consumable_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json
index 3fc572fd..42359fe8 100644
--- a/src/packs/items/consumables/consumable_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json
+++ b/src/packs/items/consumables/consumable_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 60,
@@ -65,20 +66,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "shortRest"
}
},
+ "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 can see in total darkness until your next rest.
",
+ "description": "You can see in total darkness until your next rest.
",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -86,16 +87,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!VqEX5YwK5oL3r1t6.548KAUPcSbQLsivh"
}
],
diff --git a/src/packs/items/consumables/consumable_Wingsprout_n10vozlmosVR6lo4.json b/src/packs/items/consumables/consumable_Wingsprout_n10vozlmosVR6lo4.json
index 1bdd4bc0..7196b296 100644
--- a/src/packs/items/consumables/consumable_Wingsprout_n10vozlmosVR6lo4.json
+++ b/src/packs/items/consumables/consumable_Wingsprout_n10vozlmosVR6lo4.json
@@ -45,6 +45,7 @@
}
},
"consumeOnUse": true,
+ "destroyOnEmpty": true,
"attribution": {
"source": "Daggerheart SRD",
"page": 61,
diff --git a/src/packs/items/loot/loot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json b/src/packs/items/loot/loot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json
index 2cb80d86..c083e7ca 100644
--- a/src/packs/items/loot/loot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json
+++ b/src/packs/items/loot/loot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json
@@ -21,7 +21,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/items/loot/loot_Box_of_Many_Goods_bZyT7Qw7iafswlTY.json b/src/packs/items/loot/loot_Box_of_Many_Goods_bZyT7Qw7iafswlTY.json
index cb603dc7..1090323f 100644
--- a/src/packs/items/loot/loot_Box_of_Many_Goods_bZyT7Qw7iafswlTY.json
+++ b/src/packs/items/loot/loot_Box_of_Many_Goods_bZyT7Qw7iafswlTY.json
@@ -21,7 +21,7 @@
"recovery": "longRest"
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/items/loot/loot_Calming_Pendant_tgFFMxpuRSiRrrEB.json b/src/packs/items/loot/loot_Calming_Pendant_tgFFMxpuRSiRrrEB.json
index ea5b50eb..3d5b9651 100644
--- a/src/packs/items/loot/loot_Calming_Pendant_tgFFMxpuRSiRrrEB.json
+++ b/src/packs/items/loot/loot_Calming_Pendant_tgFFMxpuRSiRrrEB.json
@@ -21,7 +21,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/items/loot/loot_Skeleton_Key_edkNgwy4xghZreBa.json b/src/packs/items/loot/loot_Skeleton_Key_edkNgwy4xghZreBa.json
index b5769661..72a8d3e0 100644
--- a/src/packs/items/loot/loot_Skeleton_Key_edkNgwy4xghZreBa.json
+++ b/src/packs/items/loot/loot_Skeleton_Key_edkNgwy4xghZreBa.json
@@ -21,7 +21,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/items/loot/loot_Woven_Net_ARuv48PWUGJGBC4n.json b/src/packs/items/loot/loot_Woven_Net_ARuv48PWUGJGBC4n.json
index 2732b61f..99d52ea9 100644
--- a/src/packs/items/loot/loot_Woven_Net_ARuv48PWUGJGBC4n.json
+++ b/src/packs/items/loot/loot_Woven_Net_ARuv48PWUGJGBC4n.json
@@ -21,7 +21,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/items/weapons/weapon_Aantari_Bow_ijodu5yNBoMxpkHV.json b/src/packs/items/weapons/weapon_Aantari_Bow_ijodu5yNBoMxpkHV.json
index 7b51d436..93e6404c 100644
--- a/src/packs/items/weapons/weapon_Aantari_Bow_ijodu5yNBoMxpkHV.json
+++ b/src/packs/items/weapons/weapon_Aantari_Bow_ijodu5yNBoMxpkHV.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 11,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Arcane_Frame_Wheelchair_la3sAWgnvadc4NvP.json b/src/packs/items/weapons/weapon_Advanced_Arcane_Frame_Wheelchair_la3sAWgnvadc4NvP.json
index a727bcd5..36f1be3a 100644
--- a/src/packs/items/weapons/weapon_Advanced_Arcane_Frame_Wheelchair_la3sAWgnvadc4NvP.json
+++ b/src/packs/items/weapons/weapon_Advanced_Arcane_Frame_Wheelchair_la3sAWgnvadc4NvP.json
@@ -48,8 +48,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 6,
@@ -75,7 +75,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Arcane_Gauntlets_hXR56fTKwZ6s1obs.json b/src/packs/items/weapons/weapon_Advanced_Arcane_Gauntlets_hXR56fTKwZ6s1obs.json
index 67400768..183ac117 100644
--- a/src/packs/items/weapons/weapon_Advanced_Arcane_Gauntlets_hXR56fTKwZ6s1obs.json
+++ b/src/packs/items/weapons/weapon_Advanced_Arcane_Gauntlets_hXR56fTKwZ6s1obs.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 9,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Battleaxe_FcbvY1ydbNVMjKvk.json b/src/packs/items/weapons/weapon_Advanced_Battleaxe_FcbvY1ydbNVMjKvk.json
index e780eeed..6d2879d7 100644
--- a/src/packs/items/weapons/weapon_Advanced_Battleaxe_FcbvY1ydbNVMjKvk.json
+++ b/src/packs/items/weapons/weapon_Advanced_Battleaxe_FcbvY1ydbNVMjKvk.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 9,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Broadsword_WtQAGz0TUgz8Xg70.json b/src/packs/items/weapons/weapon_Advanced_Broadsword_WtQAGz0TUgz8Xg70.json
index 4581c52f..9e4a67b0 100644
--- a/src/packs/items/weapons/weapon_Advanced_Broadsword_WtQAGz0TUgz8Xg70.json
+++ b/src/packs/items/weapons/weapon_Advanced_Broadsword_WtQAGz0TUgz8Xg70.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 6,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Crossbow_3HGs0AgVrdIBTaKG.json b/src/packs/items/weapons/weapon_Advanced_Crossbow_3HGs0AgVrdIBTaKG.json
index 437423f5..44e47499 100644
--- a/src/packs/items/weapons/weapon_Advanced_Crossbow_3HGs0AgVrdIBTaKG.json
+++ b/src/packs/items/weapons/weapon_Advanced_Crossbow_3HGs0AgVrdIBTaKG.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 7,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Cutlass_bw9WO9lxkM9bWZxQ.json b/src/packs/items/weapons/weapon_Advanced_Cutlass_bw9WO9lxkM9bWZxQ.json
index 45d9a597..a20acb5b 100644
--- a/src/packs/items/weapons/weapon_Advanced_Cutlass_bw9WO9lxkM9bWZxQ.json
+++ b/src/packs/items/weapons/weapon_Advanced_Cutlass_bw9WO9lxkM9bWZxQ.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 7,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Dagger_mrioysDjNQEIE8hN.json b/src/packs/items/weapons/weapon_Advanced_Dagger_mrioysDjNQEIE8hN.json
index 03f27c99..a7004807 100644
--- a/src/packs/items/weapons/weapon_Advanced_Dagger_mrioysDjNQEIE8hN.json
+++ b/src/packs/items/weapons/weapon_Advanced_Dagger_mrioysDjNQEIE8hN.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 7,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Dualstaff_X5x3sC7v2f3L9sjL.json b/src/packs/items/weapons/weapon_Advanced_Dualstaff_X5x3sC7v2f3L9sjL.json
index 033b873c..3baed3d4 100644
--- a/src/packs/items/weapons/weapon_Advanced_Dualstaff_X5x3sC7v2f3L9sjL.json
+++ b/src/packs/items/weapons/weapon_Advanced_Dualstaff_X5x3sC7v2f3L9sjL.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 9,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Glowing_Rings_InQoh8mZPnwarQkX.json b/src/packs/items/weapons/weapon_Advanced_Glowing_Rings_InQoh8mZPnwarQkX.json
index 2ea7b20d..2bdfed49 100644
--- a/src/packs/items/weapons/weapon_Advanced_Glowing_Rings_InQoh8mZPnwarQkX.json
+++ b/src/packs/items/weapons/weapon_Advanced_Glowing_Rings_InQoh8mZPnwarQkX.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 8,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Grappler_7vvhVl4TDJHtjpFK.json b/src/packs/items/weapons/weapon_Advanced_Grappler_7vvhVl4TDJHtjpFK.json
index 390a0b9a..01bef9b2 100644
--- a/src/packs/items/weapons/weapon_Advanced_Grappler_7vvhVl4TDJHtjpFK.json
+++ b/src/packs/items/weapons/weapon_Advanced_Grappler_7vvhVl4TDJHtjpFK.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 4,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Greatstaff_4UzxqfkwF8gDSdu7.json b/src/packs/items/weapons/weapon_Advanced_Greatstaff_4UzxqfkwF8gDSdu7.json
index 3cc7b986..c66354c2 100644
--- a/src/packs/items/weapons/weapon_Advanced_Greatstaff_4UzxqfkwF8gDSdu7.json
+++ b/src/packs/items/weapons/weapon_Advanced_Greatstaff_4UzxqfkwF8gDSdu7.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 6,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Greatsword_MAC6YWTo4lzSotQc.json b/src/packs/items/weapons/weapon_Advanced_Greatsword_MAC6YWTo4lzSotQc.json
index 9e04bf7a..71226630 100644
--- a/src/packs/items/weapons/weapon_Advanced_Greatsword_MAC6YWTo4lzSotQc.json
+++ b/src/packs/items/weapons/weapon_Advanced_Greatsword_MAC6YWTo4lzSotQc.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 9,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Halberd_C8gQn7onAc9wsrCs.json b/src/packs/items/weapons/weapon_Advanced_Halberd_C8gQn7onAc9wsrCs.json
index 6c11724c..59d7437d 100644
--- a/src/packs/items/weapons/weapon_Advanced_Halberd_C8gQn7onAc9wsrCs.json
+++ b/src/packs/items/weapons/weapon_Advanced_Halberd_C8gQn7onAc9wsrCs.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 8,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Hallowed_Axe_BiyXKX2Mo1TQbKgk.json b/src/packs/items/weapons/weapon_Advanced_Hallowed_Axe_BiyXKX2Mo1TQbKgk.json
index ce89ccc2..e6403810 100644
--- a/src/packs/items/weapons/weapon_Advanced_Hallowed_Axe_BiyXKX2Mo1TQbKgk.json
+++ b/src/packs/items/weapons/weapon_Advanced_Hallowed_Axe_BiyXKX2Mo1TQbKgk.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 7,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Hand_Crossbow_Lsvocst8aGqkBj7g.json b/src/packs/items/weapons/weapon_Advanced_Hand_Crossbow_Lsvocst8aGqkBj7g.json
index 88ba7077..521ee38d 100644
--- a/src/packs/items/weapons/weapon_Advanced_Hand_Crossbow_Lsvocst8aGqkBj7g.json
+++ b/src/packs/items/weapons/weapon_Advanced_Hand_Crossbow_Lsvocst8aGqkBj7g.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 5,
@@ -70,7 +70,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Hand_Runes_PQACczSghZIVTdgZ.json b/src/packs/items/weapons/weapon_Advanced_Hand_Runes_PQACczSghZIVTdgZ.json
index 60ffb789..23f33ba1 100644
--- a/src/packs/items/weapons/weapon_Advanced_Hand_Runes_PQACczSghZIVTdgZ.json
+++ b/src/packs/items/weapons/weapon_Advanced_Hand_Runes_PQACczSghZIVTdgZ.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 6,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Heavy_Frame_Wheelchair_eT2Qwb0RdrLX2hH1.json b/src/packs/items/weapons/weapon_Advanced_Heavy_Frame_Wheelchair_eT2Qwb0RdrLX2hH1.json
index 7f5bb9c7..39afe3e6 100644
--- a/src/packs/items/weapons/weapon_Advanced_Heavy_Frame_Wheelchair_eT2Qwb0RdrLX2hH1.json
+++ b/src/packs/items/weapons/weapon_Advanced_Heavy_Frame_Wheelchair_eT2Qwb0RdrLX2hH1.json
@@ -48,8 +48,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d12",
"bonus": 9,
@@ -75,7 +75,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Light_Frame_Wheelchair_BuMfupnCzHbziQ8o.json b/src/packs/items/weapons/weapon_Advanced_Light_Frame_Wheelchair_BuMfupnCzHbziQ8o.json
index fca77911..4600088d 100644
--- a/src/packs/items/weapons/weapon_Advanced_Light_Frame_Wheelchair_BuMfupnCzHbziQ8o.json
+++ b/src/packs/items/weapons/weapon_Advanced_Light_Frame_Wheelchair_BuMfupnCzHbziQ8o.json
@@ -77,8 +77,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 6,
@@ -104,7 +104,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Longbow_M5CywMAyPKGgebsJ.json b/src/packs/items/weapons/weapon_Advanced_Longbow_M5CywMAyPKGgebsJ.json
index 14327a8c..ad8a5bc9 100644
--- a/src/packs/items/weapons/weapon_Advanced_Longbow_M5CywMAyPKGgebsJ.json
+++ b/src/packs/items/weapons/weapon_Advanced_Longbow_M5CywMAyPKGgebsJ.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 9,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Longsword_9xkB3MWXahrsVP4N.json b/src/packs/items/weapons/weapon_Advanced_Longsword_9xkB3MWXahrsVP4N.json
index 0b51f2ae..2cf2c43c 100644
--- a/src/packs/items/weapons/weapon_Advanced_Longsword_9xkB3MWXahrsVP4N.json
+++ b/src/packs/items/weapons/weapon_Advanced_Longsword_9xkB3MWXahrsVP4N.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 9,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Mace_WreMYiH5uhVDaoVw.json b/src/packs/items/weapons/weapon_Advanced_Mace_WreMYiH5uhVDaoVw.json
index e255da65..db8cde18 100644
--- a/src/packs/items/weapons/weapon_Advanced_Mace_WreMYiH5uhVDaoVw.json
+++ b/src/packs/items/weapons/weapon_Advanced_Mace_WreMYiH5uhVDaoVw.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 7,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Quarterstaff_zJtm2f9ZFKZRtCRg.json b/src/packs/items/weapons/weapon_Advanced_Quarterstaff_zJtm2f9ZFKZRtCRg.json
index 00f0b694..d6beafb2 100644
--- a/src/packs/items/weapons/weapon_Advanced_Quarterstaff_zJtm2f9ZFKZRtCRg.json
+++ b/src/packs/items/weapons/weapon_Advanced_Quarterstaff_zJtm2f9ZFKZRtCRg.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 9,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Rapier_KxFne76d7cak15dO.json b/src/packs/items/weapons/weapon_Advanced_Rapier_KxFne76d7cak15dO.json
index 28c508b8..315d8401 100644
--- a/src/packs/items/weapons/weapon_Advanced_Rapier_KxFne76d7cak15dO.json
+++ b/src/packs/items/weapons/weapon_Advanced_Rapier_KxFne76d7cak15dO.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 6,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Returning_Blade_sIGXA4KMeYBUjcEO.json b/src/packs/items/weapons/weapon_Advanced_Returning_Blade_sIGXA4KMeYBUjcEO.json
index 0694a020..bbdce2d4 100644
--- a/src/packs/items/weapons/weapon_Advanced_Returning_Blade_sIGXA4KMeYBUjcEO.json
+++ b/src/packs/items/weapons/weapon_Advanced_Returning_Blade_sIGXA4KMeYBUjcEO.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 6,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Round_Shield_hiEOGF2reabGLUoi.json b/src/packs/items/weapons/weapon_Advanced_Round_Shield_hiEOGF2reabGLUoi.json
index 54800642..c1c4fba5 100644
--- a/src/packs/items/weapons/weapon_Advanced_Round_Shield_hiEOGF2reabGLUoi.json
+++ b/src/packs/items/weapons/weapon_Advanced_Round_Shield_hiEOGF2reabGLUoi.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d4",
"bonus": 4,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -113,26 +113,26 @@
"name": "Protective",
"description": "Add the item's Tier to your Armor Score
",
"img": "icons/skills/melee/shield-block-gray-orange.webp",
- "_id": "7285CRGdZfHCEtT2",
+ "changes": [
+ {
+ "key": "system.armorScore",
+ "mode": 2,
+ "value": "ITEM.@system.tier",
+ "priority": null
+ }
+ ],
+ "_id": "i5HfkF5aKQuUCTEG",
"type": "base",
- "system": {
- "changes": [
- {
- "type": "armor",
- "phase": "initial",
- "priority": 20,
- "value": {
- "max": "ITEM.@system.tier"
- }
- }
- ]
- },
+ "system": {},
"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,
"tint": "#ffffff",
@@ -143,10 +143,7 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
- "_key": "!items.effects!hiEOGF2reabGLUoi.7285CRGdZfHCEtT2"
+ "_key": "!items.effects!hiEOGF2reabGLUoi.i5HfkF5aKQuUCTEG"
}
],
"sort": 0,
diff --git a/src/packs/items/weapons/weapon_Advanced_Scepter_2Khzuj768yoWN9QK.json b/src/packs/items/weapons/weapon_Advanced_Scepter_2Khzuj768yoWN9QK.json
index 6dff775a..cf619a89 100644
--- a/src/packs/items/weapons/weapon_Advanced_Scepter_2Khzuj768yoWN9QK.json
+++ b/src/packs/items/weapons/weapon_Advanced_Scepter_2Khzuj768yoWN9QK.json
@@ -11,8 +11,8 @@
"type": "attack",
"damage": {
"includeBase": false,
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -38,7 +38,7 @@
}
}
}
- }
+ ]
},
"range": "melee",
"roll": {
@@ -115,8 +115,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 6,
@@ -142,7 +142,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Shortbow_JpSlJvDR0X8VFDns.json b/src/packs/items/weapons/weapon_Advanced_Shortbow_JpSlJvDR0X8VFDns.json
index f5efc9a9..5693e814 100644
--- a/src/packs/items/weapons/weapon_Advanced_Shortbow_JpSlJvDR0X8VFDns.json
+++ b/src/packs/items/weapons/weapon_Advanced_Shortbow_JpSlJvDR0X8VFDns.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 9,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Shortstaff_T5exRCqOXhrjSYnI.json b/src/packs/items/weapons/weapon_Advanced_Shortstaff_T5exRCqOXhrjSYnI.json
index 0e3b3161..71d66d82 100644
--- a/src/packs/items/weapons/weapon_Advanced_Shortstaff_T5exRCqOXhrjSYnI.json
+++ b/src/packs/items/weapons/weapon_Advanced_Shortstaff_T5exRCqOXhrjSYnI.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 7,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Shortsword_p3nz5CaGUoyuGVg0.json b/src/packs/items/weapons/weapon_Advanced_Shortsword_p3nz5CaGUoyuGVg0.json
index dd48db21..397fa061 100644
--- a/src/packs/items/weapons/weapon_Advanced_Shortsword_p3nz5CaGUoyuGVg0.json
+++ b/src/packs/items/weapons/weapon_Advanced_Shortsword_p3nz5CaGUoyuGVg0.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 4,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Small_Dagger_0thN0BpN05KT8Avx.json b/src/packs/items/weapons/weapon_Advanced_Small_Dagger_0thN0BpN05KT8Avx.json
index a63789f3..7af59440 100644
--- a/src/packs/items/weapons/weapon_Advanced_Small_Dagger_0thN0BpN05KT8Avx.json
+++ b/src/packs/items/weapons/weapon_Advanced_Small_Dagger_0thN0BpN05KT8Avx.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 4,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Spear_pK6dsNABKKp1CIGN.json b/src/packs/items/weapons/weapon_Advanced_Spear_pK6dsNABKKp1CIGN.json
index 099761b4..e5f3f8ec 100644
--- a/src/packs/items/weapons/weapon_Advanced_Spear_pK6dsNABKKp1CIGN.json
+++ b/src/packs/items/weapons/weapon_Advanced_Spear_pK6dsNABKKp1CIGN.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 9,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Tower_Shield_OfOzQbs4hg6QbfTG.json b/src/packs/items/weapons/weapon_Advanced_Tower_Shield_OfOzQbs4hg6QbfTG.json
index a88749a8..b2fb16d8 100644
--- a/src/packs/items/weapons/weapon_Advanced_Tower_Shield_OfOzQbs4hg6QbfTG.json
+++ b/src/packs/items/weapons/weapon_Advanced_Tower_Shield_OfOzQbs4hg6QbfTG.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 4,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -113,25 +113,25 @@
"name": "Barrier",
"description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
"img": "icons/skills/melee/shield-block-bash-blue.webp",
+ "changes": [
+ {
+ "key": "system.armorScore",
+ "mode": 2,
+ "value": "ITEM.@system.tier + 1"
+ },
+ {
+ "key": "system.evasion",
+ "mode": 2,
+ "value": "-1"
+ }
+ ],
"_id": "87gedjJZGdFY81Mt",
"type": "base",
- "system": {
- "changes": [
- {
- "key": "system.evasion",
- "type": "add",
- "value": -1,
- "phase": "initial",
- "priority": 0
- }
- ]
- },
+ "system": {},
"disabled": false,
"duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
+ "startTime": null,
+ "combat": null
},
"origin": null,
"tint": "#ffffff",
@@ -142,49 +142,7 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!OfOzQbs4hg6QbfTG.87gedjJZGdFY81Mt"
- },
- {
- "name": "Barrier",
- "description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
- "img": "icons/skills/melee/shield-block-bash-blue.webp",
- "_id": "J0f7zqqOr61ADpdy",
- "type": "base",
- "system": {
- "changes": [
- {
- "type": "armor",
- "phase": "initial",
- "priority": 20,
- "value": {
- "max": "ITEM.@system.tier + 1"
- }
- }
- ]
- },
- "disabled": false,
- "duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
- },
- "origin": null,
- "tint": "#ffffff",
- "transfer": true,
- "statuses": [],
- "sort": 0,
- "flags": {},
- "_stats": {
- "compendiumSource": null
- },
- "start": null,
- "showIcon": 1,
- "folder": null,
- "_key": "!items.effects!OfOzQbs4hg6QbfTG.J0f7zqqOr61ADpdy"
}
],
"sort": 0,
diff --git a/src/packs/items/weapons/weapon_Advanced_Wand_jU9jWIardjtdAQcs.json b/src/packs/items/weapons/weapon_Advanced_Wand_jU9jWIardjtdAQcs.json
index 8043e360..4cb4e2b2 100644
--- a/src/packs/items/weapons/weapon_Advanced_Wand_jU9jWIardjtdAQcs.json
+++ b/src/packs/items/weapons/weapon_Advanced_Wand_jU9jWIardjtdAQcs.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 7,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Warhammer_8Lipw3RRKDgBVP0p.json b/src/packs/items/weapons/weapon_Advanced_Warhammer_8Lipw3RRKDgBVP0p.json
index bb142281..72983f6b 100644
--- a/src/packs/items/weapons/weapon_Advanced_Warhammer_8Lipw3RRKDgBVP0p.json
+++ b/src/packs/items/weapons/weapon_Advanced_Warhammer_8Lipw3RRKDgBVP0p.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d12",
"bonus": 9,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Advanced_Whip_01izMUSJcAUo79IX.json b/src/packs/items/weapons/weapon_Advanced_Whip_01izMUSJcAUo79IX.json
index 142eb542..6e1753c8 100644
--- a/src/packs/items/weapons/weapon_Advanced_Whip_01izMUSJcAUo79IX.json
+++ b/src/packs/items/weapons/weapon_Advanced_Whip_01izMUSJcAUo79IX.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 4,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Arcane_Frame_Wheelchair_XRChepscgr75Uug7.json b/src/packs/items/weapons/weapon_Arcane_Frame_Wheelchair_XRChepscgr75Uug7.json
index 6959fb30..58ef5f4b 100644
--- a/src/packs/items/weapons/weapon_Arcane_Frame_Wheelchair_XRChepscgr75Uug7.json
+++ b/src/packs/items/weapons/weapon_Arcane_Frame_Wheelchair_XRChepscgr75Uug7.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": null,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Arcane_Gauntlets_PC5EyEIq7NWBV0n5.json b/src/packs/items/weapons/weapon_Arcane_Gauntlets_PC5EyEIq7NWBV0n5.json
index 29afcc13..8d9e3c31 100644
--- a/src/packs/items/weapons/weapon_Arcane_Gauntlets_PC5EyEIq7NWBV0n5.json
+++ b/src/packs/items/weapons/weapon_Arcane_Gauntlets_PC5EyEIq7NWBV0n5.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 3,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Axe_of_Fortunis_YcS1rHgfnSlla8Xf.json b/src/packs/items/weapons/weapon_Axe_of_Fortunis_YcS1rHgfnSlla8Xf.json
index 8e4b00c5..6ce0ce68 100644
--- a/src/packs/items/weapons/weapon_Axe_of_Fortunis_YcS1rHgfnSlla8Xf.json
+++ b/src/packs/items/weapons/weapon_Axe_of_Fortunis_YcS1rHgfnSlla8Xf.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 8,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Battleaxe_fbDYUja3ll9vCtrB.json b/src/packs/items/weapons/weapon_Battleaxe_fbDYUja3ll9vCtrB.json
index 9ab3321e..9b43f8dc 100644
--- a/src/packs/items/weapons/weapon_Battleaxe_fbDYUja3ll9vCtrB.json
+++ b/src/packs/items/weapons/weapon_Battleaxe_fbDYUja3ll9vCtrB.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 3,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Black_Powder_Revolver_AokqTusPzn0hghkE.json b/src/packs/items/weapons/weapon_Black_Powder_Revolver_AokqTusPzn0hghkE.json
index 34371c2b..845fee44 100644
--- a/src/packs/items/weapons/weapon_Black_Powder_Revolver_AokqTusPzn0hghkE.json
+++ b/src/packs/items/weapons/weapon_Black_Powder_Revolver_AokqTusPzn0hghkE.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 8,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Bladed_Whip_5faflfNz20cFW1EM.json b/src/packs/items/weapons/weapon_Bladed_Whip_5faflfNz20cFW1EM.json
index 2b2a5b9c..5238578f 100644
--- a/src/packs/items/weapons/weapon_Bladed_Whip_5faflfNz20cFW1EM.json
+++ b/src/packs/items/weapons/weapon_Bladed_Whip_5faflfNz20cFW1EM.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 3,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Blessed_Anlace_n1oPTk5czTIGTkVj.json b/src/packs/items/weapons/weapon_Blessed_Anlace_n1oPTk5czTIGTkVj.json
index 14448edc..82140411 100644
--- a/src/packs/items/weapons/weapon_Blessed_Anlace_n1oPTk5czTIGTkVj.json
+++ b/src/packs/items/weapons/weapon_Blessed_Anlace_n1oPTk5czTIGTkVj.json
@@ -19,8 +19,8 @@
"amount": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"applyTo": "hitPoints",
"value": {
"custom": {
@@ -45,7 +45,7 @@
"base": false,
"type": []
}
- },
+ ],
"includeBase": false
},
"_id": "o18UvqLPWLe1A8XJ",
@@ -117,8 +117,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 6,
@@ -144,7 +144,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Bloodstaff_IoMVDz92WVvfGGdc.json b/src/packs/items/weapons/weapon_Bloodstaff_IoMVDz92WVvfGGdc.json
index ab6bb15d..2450d69c 100644
--- a/src/packs/items/weapons/weapon_Bloodstaff_IoMVDz92WVvfGGdc.json
+++ b/src/packs/items/weapons/weapon_Bloodstaff_IoMVDz92WVvfGGdc.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d20",
"bonus": 7,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Blunderbuss_SLFrK0WmldPo0shz.json b/src/packs/items/weapons/weapon_Blunderbuss_SLFrK0WmldPo0shz.json
index 9b2f455a..1fba6130 100644
--- a/src/packs/items/weapons/weapon_Blunderbuss_SLFrK0WmldPo0shz.json
+++ b/src/packs/items/weapons/weapon_Blunderbuss_SLFrK0WmldPo0shz.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 6,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Braveshield_QEvgVoz9xKBSKsGi.json b/src/packs/items/weapons/weapon_Braveshield_QEvgVoz9xKBSKsGi.json
index 2f5ec85d..aef812a6 100644
--- a/src/packs/items/weapons/weapon_Braveshield_QEvgVoz9xKBSKsGi.json
+++ b/src/packs/items/weapons/weapon_Braveshield_QEvgVoz9xKBSKsGi.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d4",
"bonus": 6,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Bravesword_QZrWAkprA2tL2MOI.json b/src/packs/items/weapons/weapon_Bravesword_QZrWAkprA2tL2MOI.json
index 412a7083..7c3e65f5 100644
--- a/src/packs/items/weapons/weapon_Bravesword_QZrWAkprA2tL2MOI.json
+++ b/src/packs/items/weapons/weapon_Bravesword_QZrWAkprA2tL2MOI.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 7,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Broadsword_1cwWNt4sqlgA8gCT.json b/src/packs/items/weapons/weapon_Broadsword_1cwWNt4sqlgA8gCT.json
index 87c6f7e8..0e9a557e 100644
--- a/src/packs/items/weapons/weapon_Broadsword_1cwWNt4sqlgA8gCT.json
+++ b/src/packs/items/weapons/weapon_Broadsword_1cwWNt4sqlgA8gCT.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"type": [
"physical"
],
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Buckler_EmFTp9wzT6MHSaNz.json b/src/packs/items/weapons/weapon_Buckler_EmFTp9wzT6MHSaNz.json
index be147888..4d815a6c 100644
--- a/src/packs/items/weapons/weapon_Buckler_EmFTp9wzT6MHSaNz.json
+++ b/src/packs/items/weapons/weapon_Buckler_EmFTp9wzT6MHSaNz.json
@@ -87,8 +87,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d4",
"bonus": 4,
@@ -114,7 +114,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Casting_Sword_2Fbf2cxLfbdGkU4I.json b/src/packs/items/weapons/weapon_Casting_Sword_2Fbf2cxLfbdGkU4I.json
index c861e735..9af34d45 100644
--- a/src/packs/items/weapons/weapon_Casting_Sword_2Fbf2cxLfbdGkU4I.json
+++ b/src/packs/items/weapons/weapon_Casting_Sword_2Fbf2cxLfbdGkU4I.json
@@ -11,8 +11,8 @@
"type": "attack",
"damage": {
"includeBase": false,
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -36,7 +36,7 @@
}
}
}
- }
+ ]
},
"range": "far",
"roll": {
@@ -113,8 +113,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 4,
@@ -140,7 +140,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Crossbow_cw7HG1Z7hp7OOLD0.json b/src/packs/items/weapons/weapon_Crossbow_cw7HG1Z7hp7OOLD0.json
index 62ad7f3d..749ef4aa 100644
--- a/src/packs/items/weapons/weapon_Crossbow_cw7HG1Z7hp7OOLD0.json
+++ b/src/packs/items/weapons/weapon_Crossbow_cw7HG1Z7hp7OOLD0.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 1,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Curved_Dagger_Fk69R40svV0kanZD.json b/src/packs/items/weapons/weapon_Curved_Dagger_Fk69R40svV0kanZD.json
index 1af2c372..a98a56b1 100644
--- a/src/packs/items/weapons/weapon_Curved_Dagger_Fk69R40svV0kanZD.json
+++ b/src/packs/items/weapons/weapon_Curved_Dagger_Fk69R40svV0kanZD.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 9,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Cutlass_CWrbnethuILXrEpA.json b/src/packs/items/weapons/weapon_Cutlass_CWrbnethuILXrEpA.json
index 4750891f..7343b92c 100644
--- a/src/packs/items/weapons/weapon_Cutlass_CWrbnethuILXrEpA.json
+++ b/src/packs/items/weapons/weapon_Cutlass_CWrbnethuILXrEpA.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 1,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Dagger_iStO0BbeMTTR0rQi.json b/src/packs/items/weapons/weapon_Dagger_iStO0BbeMTTR0rQi.json
index 4818c79f..5ef12e05 100644
--- a/src/packs/items/weapons/weapon_Dagger_iStO0BbeMTTR0rQi.json
+++ b/src/packs/items/weapons/weapon_Dagger_iStO0BbeMTTR0rQi.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 1,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Devouring_Dagger_C5wSGglR8e0euQnY.json b/src/packs/items/weapons/weapon_Devouring_Dagger_C5wSGglR8e0euQnY.json
index 7775501d..e00d665c 100644
--- a/src/packs/items/weapons/weapon_Devouring_Dagger_C5wSGglR8e0euQnY.json
+++ b/src/packs/items/weapons/weapon_Devouring_Dagger_C5wSGglR8e0euQnY.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 4,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Double_Flail_xm1yU7k58fMgXxRR.json b/src/packs/items/weapons/weapon_Double_Flail_xm1yU7k58fMgXxRR.json
index e5b603c6..a118b399 100644
--- a/src/packs/items/weapons/weapon_Double_Flail_xm1yU7k58fMgXxRR.json
+++ b/src/packs/items/weapons/weapon_Double_Flail_xm1yU7k58fMgXxRR.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 8,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Dual_Ended_Sword_nXjuBa215H1sTUK3.json b/src/packs/items/weapons/weapon_Dual_Ended_Sword_nXjuBa215H1sTUK3.json
index df1c3e54..da15604c 100644
--- a/src/packs/items/weapons/weapon_Dual_Ended_Sword_nXjuBa215H1sTUK3.json
+++ b/src/packs/items/weapons/weapon_Dual_Ended_Sword_nXjuBa215H1sTUK3.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 9,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Dualstaff_j8cdNeIUYxxzFVji.json b/src/packs/items/weapons/weapon_Dualstaff_j8cdNeIUYxxzFVji.json
index a3b44d76..e7c458c3 100644
--- a/src/packs/items/weapons/weapon_Dualstaff_j8cdNeIUYxxzFVji.json
+++ b/src/packs/items/weapons/weapon_Dualstaff_j8cdNeIUYxxzFVji.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 3,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Ego_Blade_G7rH31KQ5eEZXcv0.json b/src/packs/items/weapons/weapon_Ego_Blade_G7rH31KQ5eEZXcv0.json
index 17e24aea..36d3b0ba 100644
--- a/src/packs/items/weapons/weapon_Ego_Blade_G7rH31KQ5eEZXcv0.json
+++ b/src/packs/items/weapons/weapon_Ego_Blade_G7rH31KQ5eEZXcv0.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d12",
"bonus": 4,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Elder_Bow_JdWcn9W1edhAEInL.json b/src/packs/items/weapons/weapon_Elder_Bow_JdWcn9W1edhAEInL.json
index 73bb5a46..35659402 100644
--- a/src/packs/items/weapons/weapon_Elder_Bow_JdWcn9W1edhAEInL.json
+++ b/src/packs/items/weapons/weapon_Elder_Bow_JdWcn9W1edhAEInL.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 4,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Extended_Polearm_fJHKMxZokVP34MCi.json b/src/packs/items/weapons/weapon_Extended_Polearm_fJHKMxZokVP34MCi.json
index 35829bd5..62bcb3e0 100644
--- a/src/packs/items/weapons/weapon_Extended_Polearm_fJHKMxZokVP34MCi.json
+++ b/src/packs/items/weapons/weapon_Extended_Polearm_fJHKMxZokVP34MCi.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 10,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Finehair_Bow_ykF3jouxHZ6YR8Bg.json b/src/packs/items/weapons/weapon_Finehair_Bow_ykF3jouxHZ6YR8Bg.json
index d1bd58b5..6dc27659 100644
--- a/src/packs/items/weapons/weapon_Finehair_Bow_ykF3jouxHZ6YR8Bg.json
+++ b/src/packs/items/weapons/weapon_Finehair_Bow_ykF3jouxHZ6YR8Bg.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 5,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Firestaff_BtCm2RhWEfs00g38.json b/src/packs/items/weapons/weapon_Firestaff_BtCm2RhWEfs00g38.json
index ba7350f4..983f98d1 100644
--- a/src/packs/items/weapons/weapon_Firestaff_BtCm2RhWEfs00g38.json
+++ b/src/packs/items/weapons/weapon_Firestaff_BtCm2RhWEfs00g38.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 7,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Flickerfly_Blade_xLJ5RRpUoTRmAC3G.json b/src/packs/items/weapons/weapon_Flickerfly_Blade_xLJ5RRpUoTRmAC3G.json
index acf0cfd6..5dd5f04e 100644
--- a/src/packs/items/weapons/weapon_Flickerfly_Blade_xLJ5RRpUoTRmAC3G.json
+++ b/src/packs/items/weapons/weapon_Flickerfly_Blade_xLJ5RRpUoTRmAC3G.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 5,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Floating_Bladeshards_3vti3xfo0wJND7ew.json b/src/packs/items/weapons/weapon_Floating_Bladeshards_3vti3xfo0wJND7ew.json
index 0460e12d..232f26e9 100644
--- a/src/packs/items/weapons/weapon_Floating_Bladeshards_3vti3xfo0wJND7ew.json
+++ b/src/packs/items/weapons/weapon_Floating_Bladeshards_3vti3xfo0wJND7ew.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 9,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Fusion_Gloves_uK1RhtYAsDeoPNGx.json b/src/packs/items/weapons/weapon_Fusion_Gloves_uK1RhtYAsDeoPNGx.json
index 034ad5cf..747bc046 100644
--- a/src/packs/items/weapons/weapon_Fusion_Gloves_uK1RhtYAsDeoPNGx.json
+++ b/src/packs/items/weapons/weapon_Fusion_Gloves_uK1RhtYAsDeoPNGx.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 9,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Ghostblade_6gFvOFTE97QZ74Zr.json b/src/packs/items/weapons/weapon_Ghostblade_6gFvOFTE97QZ74Zr.json
index 0e17e0c2..7784b43d 100644
--- a/src/packs/items/weapons/weapon_Ghostblade_6gFvOFTE97QZ74Zr.json
+++ b/src/packs/items/weapons/weapon_Ghostblade_6gFvOFTE97QZ74Zr.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 7,
@@ -69,7 +69,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Gilded_Bow_ctTgFfMbM3YtmsYU.json b/src/packs/items/weapons/weapon_Gilded_Bow_ctTgFfMbM3YtmsYU.json
index 0147cfdb..88f5a163 100644
--- a/src/packs/items/weapons/weapon_Gilded_Bow_ctTgFfMbM3YtmsYU.json
+++ b/src/packs/items/weapons/weapon_Gilded_Bow_ctTgFfMbM3YtmsYU.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 7,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Gilded_Falchion_VwcOgqnzjf9LBj2S.json b/src/packs/items/weapons/weapon_Gilded_Falchion_VwcOgqnzjf9LBj2S.json
index fdf5835e..ee8afebc 100644
--- a/src/packs/items/weapons/weapon_Gilded_Falchion_VwcOgqnzjf9LBj2S.json
+++ b/src/packs/items/weapons/weapon_Gilded_Falchion_VwcOgqnzjf9LBj2S.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 4,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Glowing_Rings_wG9f5NpCwSbaLy8t.json b/src/packs/items/weapons/weapon_Glowing_Rings_wG9f5NpCwSbaLy8t.json
index 8996dbc8..214d08a9 100644
--- a/src/packs/items/weapons/weapon_Glowing_Rings_wG9f5NpCwSbaLy8t.json
+++ b/src/packs/items/weapons/weapon_Glowing_Rings_wG9f5NpCwSbaLy8t.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 1,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Grappler_iEzPscUc18GuFoB6.json b/src/packs/items/weapons/weapon_Grappler_iEzPscUc18GuFoB6.json
index 9a9158c7..7f42998b 100644
--- a/src/packs/items/weapons/weapon_Grappler_iEzPscUc18GuFoB6.json
+++ b/src/packs/items/weapons/weapon_Grappler_iEzPscUc18GuFoB6.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": null,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Greatbow_MXBpbqQsZFln4rZk.json b/src/packs/items/weapons/weapon_Greatbow_MXBpbqQsZFln4rZk.json
index 87118bb8..f56e77c7 100644
--- a/src/packs/items/weapons/weapon_Greatbow_MXBpbqQsZFln4rZk.json
+++ b/src/packs/items/weapons/weapon_Greatbow_MXBpbqQsZFln4rZk.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 6,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Greatstaff_Yk8pTEmyLLi4095S.json b/src/packs/items/weapons/weapon_Greatstaff_Yk8pTEmyLLi4095S.json
index 798541d1..66c12e5e 100644
--- a/src/packs/items/weapons/weapon_Greatstaff_Yk8pTEmyLLi4095S.json
+++ b/src/packs/items/weapons/weapon_Greatstaff_Yk8pTEmyLLi4095S.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": null,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Greatsword_70ysaFJDREwTgvZa.json b/src/packs/items/weapons/weapon_Greatsword_70ysaFJDREwTgvZa.json
index f0e450a4..f60e438d 100644
--- a/src/packs/items/weapons/weapon_Greatsword_70ysaFJDREwTgvZa.json
+++ b/src/packs/items/weapons/weapon_Greatsword_70ysaFJDREwTgvZa.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 3,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Halberd_qT7FfmauAumOjJoq.json b/src/packs/items/weapons/weapon_Halberd_qT7FfmauAumOjJoq.json
index 5a990da3..6259e63e 100644
--- a/src/packs/items/weapons/weapon_Halberd_qT7FfmauAumOjJoq.json
+++ b/src/packs/items/weapons/weapon_Halberd_qT7FfmauAumOjJoq.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 2,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Hallowed_Axe_Vayg7CnRTFBrunjM.json b/src/packs/items/weapons/weapon_Hallowed_Axe_Vayg7CnRTFBrunjM.json
index 1fe37eba..9d8885b9 100644
--- a/src/packs/items/weapons/weapon_Hallowed_Axe_Vayg7CnRTFBrunjM.json
+++ b/src/packs/items/weapons/weapon_Hallowed_Axe_Vayg7CnRTFBrunjM.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 1,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Hammer_of_Exota_0lAkBEUvbM9Osmqb.json b/src/packs/items/weapons/weapon_Hammer_of_Exota_0lAkBEUvbM9Osmqb.json
index 15e00303..ba955850 100644
--- a/src/packs/items/weapons/weapon_Hammer_of_Exota_0lAkBEUvbM9Osmqb.json
+++ b/src/packs/items/weapons/weapon_Hammer_of_Exota_0lAkBEUvbM9Osmqb.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 6,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Hammer_of_Wrath_1R4uzOpWD8bkYRUm.json b/src/packs/items/weapons/weapon_Hammer_of_Wrath_1R4uzOpWD8bkYRUm.json
index fdab6f80..122c0769 100644
--- a/src/packs/items/weapons/weapon_Hammer_of_Wrath_1R4uzOpWD8bkYRUm.json
+++ b/src/packs/items/weapons/weapon_Hammer_of_Wrath_1R4uzOpWD8bkYRUm.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 7,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Hand_Cannon_MyGz8nd5sieRQ7zl.json b/src/packs/items/weapons/weapon_Hand_Cannon_MyGz8nd5sieRQ7zl.json
index 4967c6e4..1396fb1d 100644
--- a/src/packs/items/weapons/weapon_Hand_Cannon_MyGz8nd5sieRQ7zl.json
+++ b/src/packs/items/weapons/weapon_Hand_Cannon_MyGz8nd5sieRQ7zl.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 12,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Hand_Crossbow_zxKt6qXe7uZB6ljm.json b/src/packs/items/weapons/weapon_Hand_Crossbow_zxKt6qXe7uZB6ljm.json
index 6501f5d4..9f69ffc9 100644
--- a/src/packs/items/weapons/weapon_Hand_Crossbow_zxKt6qXe7uZB6ljm.json
+++ b/src/packs/items/weapons/weapon_Hand_Crossbow_zxKt6qXe7uZB6ljm.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 1,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Hand_Runes_3whiedn0jBMNRdIb.json b/src/packs/items/weapons/weapon_Hand_Runes_3whiedn0jBMNRdIb.json
index 00cb6e9b..32761768 100644
--- a/src/packs/items/weapons/weapon_Hand_Runes_3whiedn0jBMNRdIb.json
+++ b/src/packs/items/weapons/weapon_Hand_Runes_3whiedn0jBMNRdIb.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": null,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Hand_Sling_RAIaoMi6iO1PKIlK.json b/src/packs/items/weapons/weapon_Hand_Sling_RAIaoMi6iO1PKIlK.json
index 5c110b70..82641ca1 100644
--- a/src/packs/items/weapons/weapon_Hand_Sling_RAIaoMi6iO1PKIlK.json
+++ b/src/packs/items/weapons/weapon_Hand_Sling_RAIaoMi6iO1PKIlK.json
@@ -11,8 +11,8 @@
"type": "attack",
"damage": {
"includeBase": false,
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -36,7 +36,7 @@
}
}
}
- }
+ ]
},
"range": "close",
"roll": {
@@ -113,8 +113,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 4,
@@ -140,7 +140,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Heavy_Frame_Wheelchair_XjPQjhRCH08VUIbr.json b/src/packs/items/weapons/weapon_Heavy_Frame_Wheelchair_XjPQjhRCH08VUIbr.json
index e74ff4aa..db20063d 100644
--- a/src/packs/items/weapons/weapon_Heavy_Frame_Wheelchair_XjPQjhRCH08VUIbr.json
+++ b/src/packs/items/weapons/weapon_Heavy_Frame_Wheelchair_XjPQjhRCH08VUIbr.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d12",
"bonus": 3,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Ilmari_s_Rifle_TMrUzVC3KvcHmdt8.json b/src/packs/items/weapons/weapon_Ilmari_s_Rifle_TMrUzVC3KvcHmdt8.json
index cddd762a..8234ab3a 100644
--- a/src/packs/items/weapons/weapon_Ilmari_s_Rifle_TMrUzVC3KvcHmdt8.json
+++ b/src/packs/items/weapons/weapon_Ilmari_s_Rifle_TMrUzVC3KvcHmdt8.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 6,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Impact_Gauntlet_Zg6IutksQVOqAg8K.json b/src/packs/items/weapons/weapon_Impact_Gauntlet_Zg6IutksQVOqAg8K.json
index 5e9891f9..8c8cc81d 100644
--- a/src/packs/items/weapons/weapon_Impact_Gauntlet_Zg6IutksQVOqAg8K.json
+++ b/src/packs/items/weapons/weapon_Impact_Gauntlet_Zg6IutksQVOqAg8K.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 11,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Arcane_Frame_Wheelchair_N9P695V5KKlJbAY5.json b/src/packs/items/weapons/weapon_Improved_Arcane_Frame_Wheelchair_N9P695V5KKlJbAY5.json
index 33f96030..fad45a2b 100644
--- a/src/packs/items/weapons/weapon_Improved_Arcane_Frame_Wheelchair_N9P695V5KKlJbAY5.json
+++ b/src/packs/items/weapons/weapon_Improved_Arcane_Frame_Wheelchair_N9P695V5KKlJbAY5.json
@@ -48,8 +48,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 3,
@@ -75,7 +75,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Arcane_Gauntlets_kENTDpa1hr5LDhIT.json b/src/packs/items/weapons/weapon_Improved_Arcane_Gauntlets_kENTDpa1hr5LDhIT.json
index 1880d45b..40b85dde 100644
--- a/src/packs/items/weapons/weapon_Improved_Arcane_Gauntlets_kENTDpa1hr5LDhIT.json
+++ b/src/packs/items/weapons/weapon_Improved_Arcane_Gauntlets_kENTDpa1hr5LDhIT.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 6,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Battleaxe_nxGUpuHLmuKdKsDC.json b/src/packs/items/weapons/weapon_Improved_Battleaxe_nxGUpuHLmuKdKsDC.json
index 4652d62d..23068751 100644
--- a/src/packs/items/weapons/weapon_Improved_Battleaxe_nxGUpuHLmuKdKsDC.json
+++ b/src/packs/items/weapons/weapon_Improved_Battleaxe_nxGUpuHLmuKdKsDC.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 6,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Broadsword_OcKeLJxvmdT81VBc.json b/src/packs/items/weapons/weapon_Improved_Broadsword_OcKeLJxvmdT81VBc.json
index 6d6f1921..a17caadf 100644
--- a/src/packs/items/weapons/weapon_Improved_Broadsword_OcKeLJxvmdT81VBc.json
+++ b/src/packs/items/weapons/weapon_Improved_Broadsword_OcKeLJxvmdT81VBc.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 3,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Crossbow_55NwHIIZHUeKSE3M.json b/src/packs/items/weapons/weapon_Improved_Crossbow_55NwHIIZHUeKSE3M.json
index 5bc082ef..185f8f11 100644
--- a/src/packs/items/weapons/weapon_Improved_Crossbow_55NwHIIZHUeKSE3M.json
+++ b/src/packs/items/weapons/weapon_Improved_Crossbow_55NwHIIZHUeKSE3M.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 4,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Cutlass_ddRjXnp2vbohu7rJ.json b/src/packs/items/weapons/weapon_Improved_Cutlass_ddRjXnp2vbohu7rJ.json
index 87dfbfae..520e5679 100644
--- a/src/packs/items/weapons/weapon_Improved_Cutlass_ddRjXnp2vbohu7rJ.json
+++ b/src/packs/items/weapons/weapon_Improved_Cutlass_ddRjXnp2vbohu7rJ.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 4,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Dagger_ScjTkb9qrndhlk9S.json b/src/packs/items/weapons/weapon_Improved_Dagger_ScjTkb9qrndhlk9S.json
index 194ec879..1db4504e 100644
--- a/src/packs/items/weapons/weapon_Improved_Dagger_ScjTkb9qrndhlk9S.json
+++ b/src/packs/items/weapons/weapon_Improved_Dagger_ScjTkb9qrndhlk9S.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 4,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Dualstaff_f7hhHlZ5nL3AhYEM.json b/src/packs/items/weapons/weapon_Improved_Dualstaff_f7hhHlZ5nL3AhYEM.json
index d614130e..84cc75ba 100644
--- a/src/packs/items/weapons/weapon_Improved_Dualstaff_f7hhHlZ5nL3AhYEM.json
+++ b/src/packs/items/weapons/weapon_Improved_Dualstaff_f7hhHlZ5nL3AhYEM.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 6,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Glowing_Rings_N5amhkxR1xn3B7r2.json b/src/packs/items/weapons/weapon_Improved_Glowing_Rings_N5amhkxR1xn3B7r2.json
index f8b29720..01439f5b 100644
--- a/src/packs/items/weapons/weapon_Improved_Glowing_Rings_N5amhkxR1xn3B7r2.json
+++ b/src/packs/items/weapons/weapon_Improved_Glowing_Rings_N5amhkxR1xn3B7r2.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 5,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Grappler_3T3o9zfe61t22L1H.json b/src/packs/items/weapons/weapon_Improved_Grappler_3T3o9zfe61t22L1H.json
index 31dfff22..74ee510a 100644
--- a/src/packs/items/weapons/weapon_Improved_Grappler_3T3o9zfe61t22L1H.json
+++ b/src/packs/items/weapons/weapon_Improved_Grappler_3T3o9zfe61t22L1H.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 2,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Greatstaff_LCuTrYXi4lhg6LqW.json b/src/packs/items/weapons/weapon_Improved_Greatstaff_LCuTrYXi4lhg6LqW.json
index 25be3393..cf1bdf63 100644
--- a/src/packs/items/weapons/weapon_Improved_Greatstaff_LCuTrYXi4lhg6LqW.json
+++ b/src/packs/items/weapons/weapon_Improved_Greatstaff_LCuTrYXi4lhg6LqW.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 3,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Greatsword_FPX4ouDrxXiQ5MDf.json b/src/packs/items/weapons/weapon_Improved_Greatsword_FPX4ouDrxXiQ5MDf.json
index 60e5dd53..f71e5ea6 100644
--- a/src/packs/items/weapons/weapon_Improved_Greatsword_FPX4ouDrxXiQ5MDf.json
+++ b/src/packs/items/weapons/weapon_Improved_Greatsword_FPX4ouDrxXiQ5MDf.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 6,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Halberd_F9PETfCQGwczBPif.json b/src/packs/items/weapons/weapon_Improved_Halberd_F9PETfCQGwczBPif.json
index fb5a1dcc..168d8953 100644
--- a/src/packs/items/weapons/weapon_Improved_Halberd_F9PETfCQGwczBPif.json
+++ b/src/packs/items/weapons/weapon_Improved_Halberd_F9PETfCQGwczBPif.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 5,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Hallowed_Axe_wFOXMN2uiX4j6Gd9.json b/src/packs/items/weapons/weapon_Improved_Hallowed_Axe_wFOXMN2uiX4j6Gd9.json
index 71b28bea..a79ad56d 100644
--- a/src/packs/items/weapons/weapon_Improved_Hallowed_Axe_wFOXMN2uiX4j6Gd9.json
+++ b/src/packs/items/weapons/weapon_Improved_Hallowed_Axe_wFOXMN2uiX4j6Gd9.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 4,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Hand_Crossbow_XEDRkuw3BhMoVBn9.json b/src/packs/items/weapons/weapon_Improved_Hand_Crossbow_XEDRkuw3BhMoVBn9.json
index 91641856..74e74f2c 100644
--- a/src/packs/items/weapons/weapon_Improved_Hand_Crossbow_XEDRkuw3BhMoVBn9.json
+++ b/src/packs/items/weapons/weapon_Improved_Hand_Crossbow_XEDRkuw3BhMoVBn9.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 3,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Hand_Runes_jMEukC3VpNDz5AOD.json b/src/packs/items/weapons/weapon_Improved_Hand_Runes_jMEukC3VpNDz5AOD.json
index dc7f2005..546e9762 100644
--- a/src/packs/items/weapons/weapon_Improved_Hand_Runes_jMEukC3VpNDz5AOD.json
+++ b/src/packs/items/weapons/weapon_Improved_Hand_Runes_jMEukC3VpNDz5AOD.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 3,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Heavy_Frame_Wheelchair_L5KeCtrs768PmYWW.json b/src/packs/items/weapons/weapon_Improved_Heavy_Frame_Wheelchair_L5KeCtrs768PmYWW.json
index e65cc221..3a386fa8 100644
--- a/src/packs/items/weapons/weapon_Improved_Heavy_Frame_Wheelchair_L5KeCtrs768PmYWW.json
+++ b/src/packs/items/weapons/weapon_Improved_Heavy_Frame_Wheelchair_L5KeCtrs768PmYWW.json
@@ -48,8 +48,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d12",
"bonus": 6,
@@ -75,7 +75,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Light_Frame_Wheelchair_ZJsetdHKV77ygtCE.json b/src/packs/items/weapons/weapon_Improved_Light_Frame_Wheelchair_ZJsetdHKV77ygtCE.json
index 315ceaf3..6fbe3c9d 100644
--- a/src/packs/items/weapons/weapon_Improved_Light_Frame_Wheelchair_ZJsetdHKV77ygtCE.json
+++ b/src/packs/items/weapons/weapon_Improved_Light_Frame_Wheelchair_ZJsetdHKV77ygtCE.json
@@ -77,8 +77,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 3,
@@ -104,7 +104,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Longbow_NacNonjbzyoVMNhI.json b/src/packs/items/weapons/weapon_Improved_Longbow_NacNonjbzyoVMNhI.json
index c197f726..787d5a28 100644
--- a/src/packs/items/weapons/weapon_Improved_Longbow_NacNonjbzyoVMNhI.json
+++ b/src/packs/items/weapons/weapon_Improved_Longbow_NacNonjbzyoVMNhI.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 6,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Longsword_QyBZ5NxM8F9nCL9s.json b/src/packs/items/weapons/weapon_Improved_Longsword_QyBZ5NxM8F9nCL9s.json
index aaa38270..982ca3ac 100644
--- a/src/packs/items/weapons/weapon_Improved_Longsword_QyBZ5NxM8F9nCL9s.json
+++ b/src/packs/items/weapons/weapon_Improved_Longsword_QyBZ5NxM8F9nCL9s.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 6,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Mace_zSLx52U4Yltqx8F1.json b/src/packs/items/weapons/weapon_Improved_Mace_zSLx52U4Yltqx8F1.json
index 1ce84304..c1b626d5 100644
--- a/src/packs/items/weapons/weapon_Improved_Mace_zSLx52U4Yltqx8F1.json
+++ b/src/packs/items/weapons/weapon_Improved_Mace_zSLx52U4Yltqx8F1.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 4,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Quarterstaff_BEmAR60PM3ZaiNXa.json b/src/packs/items/weapons/weapon_Improved_Quarterstaff_BEmAR60PM3ZaiNXa.json
index 9dc81b98..888022ed 100644
--- a/src/packs/items/weapons/weapon_Improved_Quarterstaff_BEmAR60PM3ZaiNXa.json
+++ b/src/packs/items/weapons/weapon_Improved_Quarterstaff_BEmAR60PM3ZaiNXa.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 6,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Rapier_LFPH8nD2f4Blv3AM.json b/src/packs/items/weapons/weapon_Improved_Rapier_LFPH8nD2f4Blv3AM.json
index e9db95d1..cc6099da 100644
--- a/src/packs/items/weapons/weapon_Improved_Rapier_LFPH8nD2f4Blv3AM.json
+++ b/src/packs/items/weapons/weapon_Improved_Rapier_LFPH8nD2f4Blv3AM.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 3,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Returning_Blade_SKNwkW23eVQjN4Zy.json b/src/packs/items/weapons/weapon_Improved_Returning_Blade_SKNwkW23eVQjN4Zy.json
index 1dff30a1..31688a23 100644
--- a/src/packs/items/weapons/weapon_Improved_Returning_Blade_SKNwkW23eVQjN4Zy.json
+++ b/src/packs/items/weapons/weapon_Improved_Returning_Blade_SKNwkW23eVQjN4Zy.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 3,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Round_Shield_DlinEBGZfIlvreO3.json b/src/packs/items/weapons/weapon_Improved_Round_Shield_DlinEBGZfIlvreO3.json
index 65868950..53a8e9b6 100644
--- a/src/packs/items/weapons/weapon_Improved_Round_Shield_DlinEBGZfIlvreO3.json
+++ b/src/packs/items/weapons/weapon_Improved_Round_Shield_DlinEBGZfIlvreO3.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d4",
"bonus": 2,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -113,26 +113,26 @@
"name": "Protective",
"description": "Add the item's Tier to your Armor Score
",
"img": "icons/skills/melee/shield-block-gray-orange.webp",
- "_id": "pZCrWd7zLTarvEQK",
+ "changes": [
+ {
+ "key": "system.armorScore",
+ "mode": 2,
+ "value": "ITEM.@system.tier",
+ "priority": null
+ }
+ ],
+ "_id": "cXWSV50apzaNQkdA",
"type": "base",
- "system": {
- "changes": [
- {
- "type": "armor",
- "phase": "initial",
- "priority": 20,
- "value": {
- "max": "ITEM.@system.tier"
- }
- }
- ]
- },
+ "system": {},
"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,
"tint": "#ffffff",
@@ -143,10 +143,7 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
- "_key": "!items.effects!DlinEBGZfIlvreO3.pZCrWd7zLTarvEQK"
+ "_key": "!items.effects!DlinEBGZfIlvreO3.cXWSV50apzaNQkdA"
}
],
"sort": 0,
diff --git a/src/packs/items/weapons/weapon_Improved_Scepter_tj26lbNkwy8bORF4.json b/src/packs/items/weapons/weapon_Improved_Scepter_tj26lbNkwy8bORF4.json
index ac226b84..dc41692f 100644
--- a/src/packs/items/weapons/weapon_Improved_Scepter_tj26lbNkwy8bORF4.json
+++ b/src/packs/items/weapons/weapon_Improved_Scepter_tj26lbNkwy8bORF4.json
@@ -11,8 +11,8 @@
"type": "attack",
"damage": {
"includeBase": false,
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -38,7 +38,7 @@
}
}
}
- }
+ ]
},
"range": "melee",
"roll": {
@@ -115,8 +115,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 3,
@@ -142,7 +142,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Shortbow_6ZWl6ARfvYBaAMwY.json b/src/packs/items/weapons/weapon_Improved_Shortbow_6ZWl6ARfvYBaAMwY.json
index b0e101fb..421b8f8e 100644
--- a/src/packs/items/weapons/weapon_Improved_Shortbow_6ZWl6ARfvYBaAMwY.json
+++ b/src/packs/items/weapons/weapon_Improved_Shortbow_6ZWl6ARfvYBaAMwY.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 6,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Shortstaff_Mn8ja5Oi1sXvvPSk.json b/src/packs/items/weapons/weapon_Improved_Shortstaff_Mn8ja5Oi1sXvvPSk.json
index 7d90cf94..08bf9251 100644
--- a/src/packs/items/weapons/weapon_Improved_Shortstaff_Mn8ja5Oi1sXvvPSk.json
+++ b/src/packs/items/weapons/weapon_Improved_Shortstaff_Mn8ja5Oi1sXvvPSk.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 4,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Shortsword_rSyBNRwemBVuTo3H.json b/src/packs/items/weapons/weapon_Improved_Shortsword_rSyBNRwemBVuTo3H.json
index 96ecd37f..df2f324c 100644
--- a/src/packs/items/weapons/weapon_Improved_Shortsword_rSyBNRwemBVuTo3H.json
+++ b/src/packs/items/weapons/weapon_Improved_Shortsword_rSyBNRwemBVuTo3H.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 2,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Small_Dagger_nMuF8ZDZ2aXZVTg6.json b/src/packs/items/weapons/weapon_Improved_Small_Dagger_nMuF8ZDZ2aXZVTg6.json
index 1553d75d..b69332a5 100644
--- a/src/packs/items/weapons/weapon_Improved_Small_Dagger_nMuF8ZDZ2aXZVTg6.json
+++ b/src/packs/items/weapons/weapon_Improved_Small_Dagger_nMuF8ZDZ2aXZVTg6.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 2,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Spear_j5Pt1thLfcvopBij.json b/src/packs/items/weapons/weapon_Improved_Spear_j5Pt1thLfcvopBij.json
index 790f9e51..ae6b0987 100644
--- a/src/packs/items/weapons/weapon_Improved_Spear_j5Pt1thLfcvopBij.json
+++ b/src/packs/items/weapons/weapon_Improved_Spear_j5Pt1thLfcvopBij.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 6,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Tower_Shield_bxt3NsbMqTSdI5ab.json b/src/packs/items/weapons/weapon_Improved_Tower_Shield_bxt3NsbMqTSdI5ab.json
index 64555dfa..839d4352 100644
--- a/src/packs/items/weapons/weapon_Improved_Tower_Shield_bxt3NsbMqTSdI5ab.json
+++ b/src/packs/items/weapons/weapon_Improved_Tower_Shield_bxt3NsbMqTSdI5ab.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 2,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -113,25 +113,25 @@
"name": "Barrier",
"description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
"img": "icons/skills/melee/shield-block-bash-blue.webp",
+ "changes": [
+ {
+ "key": "system.armorScore",
+ "mode": 2,
+ "value": "ITEM.@system.tier + 1"
+ },
+ {
+ "key": "system.evasion",
+ "mode": 2,
+ "value": "-1"
+ }
+ ],
"_id": "tkNEA1PO3jEFhKCa",
"type": "base",
- "system": {
- "changes": [
- {
- "key": "system.evasion",
- "type": "add",
- "value": -1,
- "phase": "initial",
- "priority": 0
- }
- ]
- },
+ "system": {},
"disabled": false,
"duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
+ "startTime": null,
+ "combat": null
},
"origin": null,
"tint": "#ffffff",
@@ -142,49 +142,7 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!bxt3NsbMqTSdI5ab.tkNEA1PO3jEFhKCa"
- },
- {
- "name": "Barrier",
- "description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
- "img": "icons/skills/melee/shield-block-bash-blue.webp",
- "_id": "XugJeHJdnC6IymSa",
- "type": "base",
- "system": {
- "changes": [
- {
- "type": "armor",
- "phase": "initial",
- "priority": 20,
- "value": {
- "max": "ITEM.@system.tier + 1"
- }
- }
- ]
- },
- "disabled": false,
- "duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
- },
- "origin": null,
- "tint": "#ffffff",
- "transfer": true,
- "statuses": [],
- "sort": 0,
- "flags": {},
- "_stats": {
- "compendiumSource": null
- },
- "start": null,
- "showIcon": 1,
- "folder": null,
- "_key": "!items.effects!bxt3NsbMqTSdI5ab.XugJeHJdnC6IymSa"
}
],
"sort": 0,
diff --git a/src/packs/items/weapons/weapon_Improved_Wand_6d9B2b5X2d2U56jt.json b/src/packs/items/weapons/weapon_Improved_Wand_6d9B2b5X2d2U56jt.json
index 53ee6746..cecb818d 100644
--- a/src/packs/items/weapons/weapon_Improved_Wand_6d9B2b5X2d2U56jt.json
+++ b/src/packs/items/weapons/weapon_Improved_Wand_6d9B2b5X2d2U56jt.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 4,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Warhammer_pxaN4ZK4eqKrjtWj.json b/src/packs/items/weapons/weapon_Improved_Warhammer_pxaN4ZK4eqKrjtWj.json
index aa24c4ad..40a5faba 100644
--- a/src/packs/items/weapons/weapon_Improved_Warhammer_pxaN4ZK4eqKrjtWj.json
+++ b/src/packs/items/weapons/weapon_Improved_Warhammer_pxaN4ZK4eqKrjtWj.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d12",
"bonus": 6,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Improved_Whip_ftTp8VlsBQ1r4LFD.json b/src/packs/items/weapons/weapon_Improved_Whip_ftTp8VlsBQ1r4LFD.json
index 4dd1dcb1..dff7fb25 100644
--- a/src/packs/items/weapons/weapon_Improved_Whip_ftTp8VlsBQ1r4LFD.json
+++ b/src/packs/items/weapons/weapon_Improved_Whip_ftTp8VlsBQ1r4LFD.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 2,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Keeper_s_Staff_q382JqMkqLaaFLIr.json b/src/packs/items/weapons/weapon_Keeper_s_Staff_q382JqMkqLaaFLIr.json
index 21fe863b..27b8044b 100644
--- a/src/packs/items/weapons/weapon_Keeper_s_Staff_q382JqMkqLaaFLIr.json
+++ b/src/packs/items/weapons/weapon_Keeper_s_Staff_q382JqMkqLaaFLIr.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 4,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Knuckle_Blades_U8gfyvxoHm024inM.json b/src/packs/items/weapons/weapon_Knuckle_Blades_U8gfyvxoHm024inM.json
index ffe92071..a5d00ff4 100644
--- a/src/packs/items/weapons/weapon_Knuckle_Blades_U8gfyvxoHm024inM.json
+++ b/src/packs/items/weapons/weapon_Knuckle_Blades_U8gfyvxoHm024inM.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 6,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Knuckle_Claws_SFqganS8Du4aEKjQ.json b/src/packs/items/weapons/weapon_Knuckle_Claws_SFqganS8Du4aEKjQ.json
index a7629e7d..df995a3f 100644
--- a/src/packs/items/weapons/weapon_Knuckle_Claws_SFqganS8Du4aEKjQ.json
+++ b/src/packs/items/weapons/weapon_Knuckle_Claws_SFqganS8Du4aEKjQ.json
@@ -72,8 +72,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 8,
@@ -99,7 +99,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Labrys_Axe_ijWppQzSOqVCb3rE.json b/src/packs/items/weapons/weapon_Labrys_Axe_ijWppQzSOqVCb3rE.json
index d5af9b14..4958bbe5 100644
--- a/src/packs/items/weapons/weapon_Labrys_Axe_ijWppQzSOqVCb3rE.json
+++ b/src/packs/items/weapons/weapon_Labrys_Axe_ijWppQzSOqVCb3rE.json
@@ -5,14 +5,22 @@
"_id": "ijWppQzSOqVCb3rE",
"img": "icons/weapons/axes/axe-battle-jagged.webp",
"system": {
- "description": "Protective: +1 to Armor Score",
+ "description": "",
"actions": {},
"attached": [],
"tier": 3,
"equipped": false,
"secondary": false,
"burden": "twoHanded",
- "weaponFeatures": [],
+ "weaponFeatures": [
+ {
+ "value": "protective",
+ "effectIds": [
+ "qTxADRsQnKiYfOiQ"
+ ],
+ "actionIds": []
+ }
+ ],
"attack": {
"name": "Attack",
"img": "icons/skills/melee/blood-slash-foam-red.webp",
@@ -41,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 7,
@@ -68,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -103,28 +111,22 @@
"effects": [
{
"name": "Protective",
- "description": "+1 to Armor Score",
- "img": "icons/magic/defensive/shield-barrier-deflect-teal.webp",
- "_id": "vnR4Zhnb0rOqwrFw",
+ "description": "Add your character's Tier to your Armor Score",
+ "img": "icons/skills/melee/shield-block-gray-orange.webp",
+ "changes": [
+ {
+ "key": "system.armorScore",
+ "mode": 2,
+ "value": "ITEM.@system.tier"
+ }
+ ],
+ "_id": "qTxADRsQnKiYfOiQ",
"type": "base",
- "system": {
- "changes": [
- {
- "type": "armor",
- "phase": "initial",
- "priority": 20,
- "value": {
- "max": "1"
- }
- }
- ]
- },
+ "system": {},
"disabled": false,
"duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
+ "startTime": null,
+ "combat": null
},
"origin": null,
"tint": "#ffffff",
@@ -135,10 +137,7 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
- "_key": "!items.effects!ijWppQzSOqVCb3rE.vnR4Zhnb0rOqwrFw"
+ "_key": "!items.effects!ijWppQzSOqVCb3rE.qTxADRsQnKiYfOiQ"
}
],
"sort": 0,
diff --git a/src/packs/items/weapons/weapon_Legendary_Arcane_Frame_Wheelchair_gA2tiET9VHGhwMoO.json b/src/packs/items/weapons/weapon_Legendary_Arcane_Frame_Wheelchair_gA2tiET9VHGhwMoO.json
index f947acac..d8068f41 100644
--- a/src/packs/items/weapons/weapon_Legendary_Arcane_Frame_Wheelchair_gA2tiET9VHGhwMoO.json
+++ b/src/packs/items/weapons/weapon_Legendary_Arcane_Frame_Wheelchair_gA2tiET9VHGhwMoO.json
@@ -48,8 +48,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 9,
@@ -75,7 +75,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Arcane_Gauntlets_umADDPYCaykXDc1v.json b/src/packs/items/weapons/weapon_Legendary_Arcane_Gauntlets_umADDPYCaykXDc1v.json
index c7adc0f2..94da915c 100644
--- a/src/packs/items/weapons/weapon_Legendary_Arcane_Gauntlets_umADDPYCaykXDc1v.json
+++ b/src/packs/items/weapons/weapon_Legendary_Arcane_Gauntlets_umADDPYCaykXDc1v.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 12,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Battleaxe_1nztpLzoHGfbKf5x.json b/src/packs/items/weapons/weapon_Legendary_Battleaxe_1nztpLzoHGfbKf5x.json
index 3c22e3f2..06a8a85f 100644
--- a/src/packs/items/weapons/weapon_Legendary_Battleaxe_1nztpLzoHGfbKf5x.json
+++ b/src/packs/items/weapons/weapon_Legendary_Battleaxe_1nztpLzoHGfbKf5x.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 12,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Broadsword_y3hfTPfZhMognyaJ.json b/src/packs/items/weapons/weapon_Legendary_Broadsword_y3hfTPfZhMognyaJ.json
index 361d0353..786ba8b6 100644
--- a/src/packs/items/weapons/weapon_Legendary_Broadsword_y3hfTPfZhMognyaJ.json
+++ b/src/packs/items/weapons/weapon_Legendary_Broadsword_y3hfTPfZhMognyaJ.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 9,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Crossbow_1G6xX2QL9O0Rsgz7.json b/src/packs/items/weapons/weapon_Legendary_Crossbow_1G6xX2QL9O0Rsgz7.json
index 358cdd56..e263bcbe 100644
--- a/src/packs/items/weapons/weapon_Legendary_Crossbow_1G6xX2QL9O0Rsgz7.json
+++ b/src/packs/items/weapons/weapon_Legendary_Crossbow_1G6xX2QL9O0Rsgz7.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 10,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Cutlass_Rpyz0jbFJ1SwqfyD.json b/src/packs/items/weapons/weapon_Legendary_Cutlass_Rpyz0jbFJ1SwqfyD.json
index 9ce1b48a..2c284332 100644
--- a/src/packs/items/weapons/weapon_Legendary_Cutlass_Rpyz0jbFJ1SwqfyD.json
+++ b/src/packs/items/weapons/weapon_Legendary_Cutlass_Rpyz0jbFJ1SwqfyD.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 10,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Dagger_GmTg3Fdne1UPNs8t.json b/src/packs/items/weapons/weapon_Legendary_Dagger_GmTg3Fdne1UPNs8t.json
index a7bb2fc9..0e9e988d 100644
--- a/src/packs/items/weapons/weapon_Legendary_Dagger_GmTg3Fdne1UPNs8t.json
+++ b/src/packs/items/weapons/weapon_Legendary_Dagger_GmTg3Fdne1UPNs8t.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 10,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Dualstaff_o3rsLvImcLAx5TvD.json b/src/packs/items/weapons/weapon_Legendary_Dualstaff_o3rsLvImcLAx5TvD.json
index b06909e4..9c618ba5 100644
--- a/src/packs/items/weapons/weapon_Legendary_Dualstaff_o3rsLvImcLAx5TvD.json
+++ b/src/packs/items/weapons/weapon_Legendary_Dualstaff_o3rsLvImcLAx5TvD.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 12,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Glowing_Rings_PReWrfuPjoNQuieo.json b/src/packs/items/weapons/weapon_Legendary_Glowing_Rings_PReWrfuPjoNQuieo.json
index ca9937ee..1710084f 100644
--- a/src/packs/items/weapons/weapon_Legendary_Glowing_Rings_PReWrfuPjoNQuieo.json
+++ b/src/packs/items/weapons/weapon_Legendary_Glowing_Rings_PReWrfuPjoNQuieo.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 11,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Grappler_IrtUj0UntBMNn49G.json b/src/packs/items/weapons/weapon_Legendary_Grappler_IrtUj0UntBMNn49G.json
index f20425b2..83334710 100644
--- a/src/packs/items/weapons/weapon_Legendary_Grappler_IrtUj0UntBMNn49G.json
+++ b/src/packs/items/weapons/weapon_Legendary_Grappler_IrtUj0UntBMNn49G.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 6,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Greatstaff_jDtvEabkHY1GFgfc.json b/src/packs/items/weapons/weapon_Legendary_Greatstaff_jDtvEabkHY1GFgfc.json
index 09fd1f7a..a5ea82f9 100644
--- a/src/packs/items/weapons/weapon_Legendary_Greatstaff_jDtvEabkHY1GFgfc.json
+++ b/src/packs/items/weapons/weapon_Legendary_Greatstaff_jDtvEabkHY1GFgfc.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 9,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Greatsword_zMZ46F9VR7zdTxb9.json b/src/packs/items/weapons/weapon_Legendary_Greatsword_zMZ46F9VR7zdTxb9.json
index aa9d2ef0..840e7ec7 100644
--- a/src/packs/items/weapons/weapon_Legendary_Greatsword_zMZ46F9VR7zdTxb9.json
+++ b/src/packs/items/weapons/weapon_Legendary_Greatsword_zMZ46F9VR7zdTxb9.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 12,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Halberd_1AuMNiJz96Ez9fur.json b/src/packs/items/weapons/weapon_Legendary_Halberd_1AuMNiJz96Ez9fur.json
index af6b2a07..22e6af1b 100644
--- a/src/packs/items/weapons/weapon_Legendary_Halberd_1AuMNiJz96Ez9fur.json
+++ b/src/packs/items/weapons/weapon_Legendary_Halberd_1AuMNiJz96Ez9fur.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 11,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Hallowed_Axe_0HmhnZnv1I6uX69c.json b/src/packs/items/weapons/weapon_Legendary_Hallowed_Axe_0HmhnZnv1I6uX69c.json
index 70379d45..2bf11f05 100644
--- a/src/packs/items/weapons/weapon_Legendary_Hallowed_Axe_0HmhnZnv1I6uX69c.json
+++ b/src/packs/items/weapons/weapon_Legendary_Hallowed_Axe_0HmhnZnv1I6uX69c.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 10,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Hand_Crossbow_32nYyMaeDWaakSxz.json b/src/packs/items/weapons/weapon_Legendary_Hand_Crossbow_32nYyMaeDWaakSxz.json
index 930310a8..ff43c21b 100644
--- a/src/packs/items/weapons/weapon_Legendary_Hand_Crossbow_32nYyMaeDWaakSxz.json
+++ b/src/packs/items/weapons/weapon_Legendary_Hand_Crossbow_32nYyMaeDWaakSxz.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 7,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Hand_Runes_DWLkswhluXuMy3bB.json b/src/packs/items/weapons/weapon_Legendary_Hand_Runes_DWLkswhluXuMy3bB.json
index e909f460..2dcad490 100644
--- a/src/packs/items/weapons/weapon_Legendary_Hand_Runes_DWLkswhluXuMy3bB.json
+++ b/src/packs/items/weapons/weapon_Legendary_Hand_Runes_DWLkswhluXuMy3bB.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 9,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Heavy_Frame_Wheelchair_S6nB0CNlzdU05o5U.json b/src/packs/items/weapons/weapon_Legendary_Heavy_Frame_Wheelchair_S6nB0CNlzdU05o5U.json
index d8816fc9..7e561c26 100644
--- a/src/packs/items/weapons/weapon_Legendary_Heavy_Frame_Wheelchair_S6nB0CNlzdU05o5U.json
+++ b/src/packs/items/weapons/weapon_Legendary_Heavy_Frame_Wheelchair_S6nB0CNlzdU05o5U.json
@@ -48,8 +48,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d12",
"bonus": 12,
@@ -75,7 +75,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Light_Frame_Wheelchair_Xt8tVSn5Fu6ly6LF.json b/src/packs/items/weapons/weapon_Legendary_Light_Frame_Wheelchair_Xt8tVSn5Fu6ly6LF.json
index 7afbd979..9f96601c 100644
--- a/src/packs/items/weapons/weapon_Legendary_Light_Frame_Wheelchair_Xt8tVSn5Fu6ly6LF.json
+++ b/src/packs/items/weapons/weapon_Legendary_Light_Frame_Wheelchair_Xt8tVSn5Fu6ly6LF.json
@@ -77,8 +77,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 9,
@@ -104,7 +104,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Longbow_Utt1GpoH1fhaTOtN.json b/src/packs/items/weapons/weapon_Legendary_Longbow_Utt1GpoH1fhaTOtN.json
index bd5ab13b..bb0b8ab3 100644
--- a/src/packs/items/weapons/weapon_Legendary_Longbow_Utt1GpoH1fhaTOtN.json
+++ b/src/packs/items/weapons/weapon_Legendary_Longbow_Utt1GpoH1fhaTOtN.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 12,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Longsword_14abPqQcROJfDChR.json b/src/packs/items/weapons/weapon_Legendary_Longsword_14abPqQcROJfDChR.json
index e6555b02..9399edd4 100644
--- a/src/packs/items/weapons/weapon_Legendary_Longsword_14abPqQcROJfDChR.json
+++ b/src/packs/items/weapons/weapon_Legendary_Longsword_14abPqQcROJfDChR.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 12,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Mace_RsDsy7tIhrhaAQQc.json b/src/packs/items/weapons/weapon_Legendary_Mace_RsDsy7tIhrhaAQQc.json
index 7f4a9dab..95de32f0 100644
--- a/src/packs/items/weapons/weapon_Legendary_Mace_RsDsy7tIhrhaAQQc.json
+++ b/src/packs/items/weapons/weapon_Legendary_Mace_RsDsy7tIhrhaAQQc.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 10,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Quarterstaff_1ZciqG7vIKLYpKsP.json b/src/packs/items/weapons/weapon_Legendary_Quarterstaff_1ZciqG7vIKLYpKsP.json
index 91bc8ac8..cf25daa7 100644
--- a/src/packs/items/weapons/weapon_Legendary_Quarterstaff_1ZciqG7vIKLYpKsP.json
+++ b/src/packs/items/weapons/weapon_Legendary_Quarterstaff_1ZciqG7vIKLYpKsP.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 12,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Rapier_BakN97v4jTePcXiZ.json b/src/packs/items/weapons/weapon_Legendary_Rapier_BakN97v4jTePcXiZ.json
index d5bac6d1..59a49063 100644
--- a/src/packs/items/weapons/weapon_Legendary_Rapier_BakN97v4jTePcXiZ.json
+++ b/src/packs/items/weapons/weapon_Legendary_Rapier_BakN97v4jTePcXiZ.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 9,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Returning_Blade_mcj3CPkcSSDdAcBB.json b/src/packs/items/weapons/weapon_Legendary_Returning_Blade_mcj3CPkcSSDdAcBB.json
index b3f3fc3d..211c88c2 100644
--- a/src/packs/items/weapons/weapon_Legendary_Returning_Blade_mcj3CPkcSSDdAcBB.json
+++ b/src/packs/items/weapons/weapon_Legendary_Returning_Blade_mcj3CPkcSSDdAcBB.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 9,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Round_Shield_A28WL9E2lJ3iLZHW.json b/src/packs/items/weapons/weapon_Legendary_Round_Shield_A28WL9E2lJ3iLZHW.json
index 85134d21..c7b18355 100644
--- a/src/packs/items/weapons/weapon_Legendary_Round_Shield_A28WL9E2lJ3iLZHW.json
+++ b/src/packs/items/weapons/weapon_Legendary_Round_Shield_A28WL9E2lJ3iLZHW.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d4",
"bonus": 6,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -113,26 +113,26 @@
"name": "Protective",
"description": "Add the item's Tier to your Armor Score
",
"img": "icons/skills/melee/shield-block-gray-orange.webp",
- "_id": "EixxJrRHyc6kj3Wg",
+ "changes": [
+ {
+ "key": "system.armorScore",
+ "mode": 2,
+ "value": "ITEM.@system.tier",
+ "priority": null
+ }
+ ],
+ "_id": "Z2p00q5h6x6seXys",
"type": "base",
- "system": {
- "changes": [
- {
- "type": "armor",
- "phase": "initial",
- "priority": 20,
- "value": {
- "max": "ITEM.@system.tier"
- }
- }
- ]
- },
+ "system": {},
"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,
"tint": "#ffffff",
@@ -143,10 +143,7 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
- "_key": "!items.effects!A28WL9E2lJ3iLZHW.EixxJrRHyc6kj3Wg"
+ "_key": "!items.effects!A28WL9E2lJ3iLZHW.Z2p00q5h6x6seXys"
}
],
"sort": 0,
diff --git a/src/packs/items/weapons/weapon_Legendary_Scepter_IZ4CWNxfuM46JeCN.json b/src/packs/items/weapons/weapon_Legendary_Scepter_IZ4CWNxfuM46JeCN.json
index 882ecfdf..9630fd69 100644
--- a/src/packs/items/weapons/weapon_Legendary_Scepter_IZ4CWNxfuM46JeCN.json
+++ b/src/packs/items/weapons/weapon_Legendary_Scepter_IZ4CWNxfuM46JeCN.json
@@ -11,8 +11,8 @@
"type": "attack",
"damage": {
"includeBase": false,
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -38,7 +38,7 @@
}
}
}
- }
+ ]
},
"range": "melee",
"roll": {
@@ -115,8 +115,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 9,
@@ -142,7 +142,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Shortbow_j7kp36jaetfn5jb3.json b/src/packs/items/weapons/weapon_Legendary_Shortbow_j7kp36jaetfn5jb3.json
index b3dbd210..7fad3f95 100644
--- a/src/packs/items/weapons/weapon_Legendary_Shortbow_j7kp36jaetfn5jb3.json
+++ b/src/packs/items/weapons/weapon_Legendary_Shortbow_j7kp36jaetfn5jb3.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 12,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Shortstaff_D3SbNvNJZAFuzfhg.json b/src/packs/items/weapons/weapon_Legendary_Shortstaff_D3SbNvNJZAFuzfhg.json
index 3d29bc25..59d53e44 100644
--- a/src/packs/items/weapons/weapon_Legendary_Shortstaff_D3SbNvNJZAFuzfhg.json
+++ b/src/packs/items/weapons/weapon_Legendary_Shortstaff_D3SbNvNJZAFuzfhg.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 10,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Shortsword_dEumq3BIZBk5xYTk.json b/src/packs/items/weapons/weapon_Legendary_Shortsword_dEumq3BIZBk5xYTk.json
index a2203a1d..d7f9632a 100644
--- a/src/packs/items/weapons/weapon_Legendary_Shortsword_dEumq3BIZBk5xYTk.json
+++ b/src/packs/items/weapons/weapon_Legendary_Shortsword_dEumq3BIZBk5xYTk.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 6,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Small_Dagger_Px3Rh3kIvAqyISxJ.json b/src/packs/items/weapons/weapon_Legendary_Small_Dagger_Px3Rh3kIvAqyISxJ.json
index cf63bde2..c6bf5437 100644
--- a/src/packs/items/weapons/weapon_Legendary_Small_Dagger_Px3Rh3kIvAqyISxJ.json
+++ b/src/packs/items/weapons/weapon_Legendary_Small_Dagger_Px3Rh3kIvAqyISxJ.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 6,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Spear_4e5pWxi2qohuGsWh.json b/src/packs/items/weapons/weapon_Legendary_Spear_4e5pWxi2qohuGsWh.json
index e0248f4b..114ea79e 100644
--- a/src/packs/items/weapons/weapon_Legendary_Spear_4e5pWxi2qohuGsWh.json
+++ b/src/packs/items/weapons/weapon_Legendary_Spear_4e5pWxi2qohuGsWh.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 12,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Tower_Shield_MaJIROht7A9LxIZx.json b/src/packs/items/weapons/weapon_Legendary_Tower_Shield_MaJIROht7A9LxIZx.json
index 772e9ca9..47e707d3 100644
--- a/src/packs/items/weapons/weapon_Legendary_Tower_Shield_MaJIROht7A9LxIZx.json
+++ b/src/packs/items/weapons/weapon_Legendary_Tower_Shield_MaJIROht7A9LxIZx.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 6,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -113,25 +113,25 @@
"name": "Barrier",
"description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
"img": "icons/skills/melee/shield-block-bash-blue.webp",
+ "changes": [
+ {
+ "key": "system.armorScore",
+ "mode": 2,
+ "value": "ITEM.@system.tier + 1"
+ },
+ {
+ "key": "system.evasion",
+ "mode": 2,
+ "value": "-1"
+ }
+ ],
"_id": "lBJMzxdGO2nJdTQS",
"type": "base",
- "system": {
- "changes": [
- {
- "key": "system.evasion",
- "type": "add",
- "value": -1,
- "phase": "initial",
- "priority": 0
- }
- ]
- },
+ "system": {},
"disabled": false,
"duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
+ "startTime": null,
+ "combat": null
},
"origin": null,
"tint": "#ffffff",
@@ -142,49 +142,7 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!MaJIROht7A9LxIZx.lBJMzxdGO2nJdTQS"
- },
- {
- "name": "Barrier",
- "description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
- "img": "icons/skills/melee/shield-block-bash-blue.webp",
- "_id": "1fgUIaXl6VQrhP7j",
- "type": "base",
- "system": {
- "changes": [
- {
- "type": "armor",
- "phase": "initial",
- "priority": 20,
- "value": {
- "max": "ITEM.@system.tier + 1"
- }
- }
- ]
- },
- "disabled": false,
- "duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
- },
- "origin": null,
- "tint": "#ffffff",
- "transfer": true,
- "statuses": [],
- "sort": 0,
- "flags": {},
- "_stats": {
- "compendiumSource": null
- },
- "start": null,
- "showIcon": 1,
- "folder": null,
- "_key": "!items.effects!MaJIROht7A9LxIZx.1fgUIaXl6VQrhP7j"
}
],
"sort": 0,
diff --git a/src/packs/items/weapons/weapon_Legendary_Wand_wPjg0LufJH9vUfVM.json b/src/packs/items/weapons/weapon_Legendary_Wand_wPjg0LufJH9vUfVM.json
index 65925525..4bb0acd9 100644
--- a/src/packs/items/weapons/weapon_Legendary_Wand_wPjg0LufJH9vUfVM.json
+++ b/src/packs/items/weapons/weapon_Legendary_Wand_wPjg0LufJH9vUfVM.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 10,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Warhammer_W9ymfEDck2icfvla.json b/src/packs/items/weapons/weapon_Legendary_Warhammer_W9ymfEDck2icfvla.json
index 562122d2..0918f8b1 100644
--- a/src/packs/items/weapons/weapon_Legendary_Warhammer_W9ymfEDck2icfvla.json
+++ b/src/packs/items/weapons/weapon_Legendary_Warhammer_W9ymfEDck2icfvla.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d12",
"bonus": 12,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Legendary_Whip_Wcdbf6yS3LEt7nsg.json b/src/packs/items/weapons/weapon_Legendary_Whip_Wcdbf6yS3LEt7nsg.json
index baf6d369..83ac59c7 100644
--- a/src/packs/items/weapons/weapon_Legendary_Whip_Wcdbf6yS3LEt7nsg.json
+++ b/src/packs/items/weapons/weapon_Legendary_Whip_Wcdbf6yS3LEt7nsg.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 6,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Light_Frame_Wheelchair_iaGnlUkShBgdeMo0.json b/src/packs/items/weapons/weapon_Light_Frame_Wheelchair_iaGnlUkShBgdeMo0.json
index 7fadde01..fdda2b56 100644
--- a/src/packs/items/weapons/weapon_Light_Frame_Wheelchair_iaGnlUkShBgdeMo0.json
+++ b/src/packs/items/weapons/weapon_Light_Frame_Wheelchair_iaGnlUkShBgdeMo0.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"type": [
"physical"
],
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Longbow_YfVs6Se903az4Yet.json b/src/packs/items/weapons/weapon_Longbow_YfVs6Se903az4Yet.json
index 43af46ab..c6e98bc4 100644
--- a/src/packs/items/weapons/weapon_Longbow_YfVs6Se903az4Yet.json
+++ b/src/packs/items/weapons/weapon_Longbow_YfVs6Se903az4Yet.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 3,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Longsword_Iv8BZM1R24QMT72M.json b/src/packs/items/weapons/weapon_Longsword_Iv8BZM1R24QMT72M.json
index 3961d7c3..cba1bac8 100644
--- a/src/packs/items/weapons/weapon_Longsword_Iv8BZM1R24QMT72M.json
+++ b/src/packs/items/weapons/weapon_Longsword_Iv8BZM1R24QMT72M.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 3,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Mace_cKQCDyM2UopDL9zF.json b/src/packs/items/weapons/weapon_Mace_cKQCDyM2UopDL9zF.json
index 7a7582cb..0e6670f4 100644
--- a/src/packs/items/weapons/weapon_Mace_cKQCDyM2UopDL9zF.json
+++ b/src/packs/items/weapons/weapon_Mace_cKQCDyM2UopDL9zF.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 1,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Mage_Orb_XKBmBUEoGLdLcuqQ.json b/src/packs/items/weapons/weapon_Mage_Orb_XKBmBUEoGLdLcuqQ.json
index dbd218f1..3b5983f5 100644
--- a/src/packs/items/weapons/weapon_Mage_Orb_XKBmBUEoGLdLcuqQ.json
+++ b/src/packs/items/weapons/weapon_Mage_Orb_XKBmBUEoGLdLcuqQ.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 7,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Magus_Revolver_jGykNGQiKm63tCiE.json b/src/packs/items/weapons/weapon_Magus_Revolver_jGykNGQiKm63tCiE.json
index 9dbbb1c1..42a65010 100644
--- a/src/packs/items/weapons/weapon_Magus_Revolver_jGykNGQiKm63tCiE.json
+++ b/src/packs/items/weapons/weapon_Magus_Revolver_jGykNGQiKm63tCiE.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 13,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Meridian_Cutlass_Gi26Zk9VqlAAgx3E.json b/src/packs/items/weapons/weapon_Meridian_Cutlass_Gi26Zk9VqlAAgx3E.json
index b83a18be..dcc236a0 100644
--- a/src/packs/items/weapons/weapon_Meridian_Cutlass_Gi26Zk9VqlAAgx3E.json
+++ b/src/packs/items/weapons/weapon_Meridian_Cutlass_Gi26Zk9VqlAAgx3E.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 5,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Midas_Scythe_BdLfy5i488VZgkjP.json b/src/packs/items/weapons/weapon_Midas_Scythe_BdLfy5i488VZgkjP.json
index 57fe2367..799413be 100644
--- a/src/packs/items/weapons/weapon_Midas_Scythe_BdLfy5i488VZgkjP.json
+++ b/src/packs/items/weapons/weapon_Midas_Scythe_BdLfy5i488VZgkjP.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 9,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Parrying_Dagger_taAZDkDCpeNgxhnn.json b/src/packs/items/weapons/weapon_Parrying_Dagger_taAZDkDCpeNgxhnn.json
index b5844e89..482d813b 100644
--- a/src/packs/items/weapons/weapon_Parrying_Dagger_taAZDkDCpeNgxhnn.json
+++ b/src/packs/items/weapons/weapon_Parrying_Dagger_taAZDkDCpeNgxhnn.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 2,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Powered_Gauntlet_bW3xw5S9DbaLCN3E.json b/src/packs/items/weapons/weapon_Powered_Gauntlet_bW3xw5S9DbaLCN3E.json
index 3c4ebd1c..67922f8b 100644
--- a/src/packs/items/weapons/weapon_Powered_Gauntlet_bW3xw5S9DbaLCN3E.json
+++ b/src/packs/items/weapons/weapon_Powered_Gauntlet_bW3xw5S9DbaLCN3E.json
@@ -85,8 +85,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 4,
@@ -112,7 +112,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Primer_Shard_SxcblanBvqaest3A.json b/src/packs/items/weapons/weapon_Primer_Shard_SxcblanBvqaest3A.json
index 0cf59179..fb42af74 100644
--- a/src/packs/items/weapons/weapon_Primer_Shard_SxcblanBvqaest3A.json
+++ b/src/packs/items/weapons/weapon_Primer_Shard_SxcblanBvqaest3A.json
@@ -72,8 +72,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d4",
"bonus": null,
@@ -99,7 +99,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Quarterstaff_mlIj88p1wcQNjEDG.json b/src/packs/items/weapons/weapon_Quarterstaff_mlIj88p1wcQNjEDG.json
index 00940b6c..37c56a21 100644
--- a/src/packs/items/weapons/weapon_Quarterstaff_mlIj88p1wcQNjEDG.json
+++ b/src/packs/items/weapons/weapon_Quarterstaff_mlIj88p1wcQNjEDG.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 3,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Rapier_zkAgEW6zMkRZalEm.json b/src/packs/items/weapons/weapon_Rapier_zkAgEW6zMkRZalEm.json
index 45642f14..b4de1c00 100644
--- a/src/packs/items/weapons/weapon_Rapier_zkAgEW6zMkRZalEm.json
+++ b/src/packs/items/weapons/weapon_Rapier_zkAgEW6zMkRZalEm.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"type": [
"physical"
],
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Retractable_Saber_i8CqVTzqoRoCewNe.json b/src/packs/items/weapons/weapon_Retractable_Saber_i8CqVTzqoRoCewNe.json
index 548de60f..c1b350a3 100644
--- a/src/packs/items/weapons/weapon_Retractable_Saber_i8CqVTzqoRoCewNe.json
+++ b/src/packs/items/weapons/weapon_Retractable_Saber_i8CqVTzqoRoCewNe.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 7,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Returning_Axe_FtsQGwOg3r8uUCST.json b/src/packs/items/weapons/weapon_Returning_Axe_FtsQGwOg3r8uUCST.json
index 9f3cca62..76a887ae 100644
--- a/src/packs/items/weapons/weapon_Returning_Axe_FtsQGwOg3r8uUCST.json
+++ b/src/packs/items/weapons/weapon_Returning_Axe_FtsQGwOg3r8uUCST.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 4,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Returning_Blade_4fQpVfQ3NVwTHStA.json b/src/packs/items/weapons/weapon_Returning_Blade_4fQpVfQ3NVwTHStA.json
index efd81e48..74be4227 100644
--- a/src/packs/items/weapons/weapon_Returning_Blade_4fQpVfQ3NVwTHStA.json
+++ b/src/packs/items/weapons/weapon_Returning_Blade_4fQpVfQ3NVwTHStA.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": null,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Ricochet_Axes_E9QDh5o9eQ1Qx0kH.json b/src/packs/items/weapons/weapon_Ricochet_Axes_E9QDh5o9eQ1Qx0kH.json
index 34f3b200..1067bb02 100644
--- a/src/packs/items/weapons/weapon_Ricochet_Axes_E9QDh5o9eQ1Qx0kH.json
+++ b/src/packs/items/weapons/weapon_Ricochet_Axes_E9QDh5o9eQ1Qx0kH.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 11,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Round_Shield_mxwWKDujgsRcZWPT.json b/src/packs/items/weapons/weapon_Round_Shield_mxwWKDujgsRcZWPT.json
index 55e92f01..47b096af 100644
--- a/src/packs/items/weapons/weapon_Round_Shield_mxwWKDujgsRcZWPT.json
+++ b/src/packs/items/weapons/weapon_Round_Shield_mxwWKDujgsRcZWPT.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d4",
"bonus": null,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -113,26 +113,26 @@
"name": "Protective",
"description": "Add the item's Tier to your Armor Score
",
"img": "icons/skills/melee/shield-block-gray-orange.webp",
- "_id": "eV4lFIpQMiKERj4U",
+ "changes": [
+ {
+ "key": "system.armorScore",
+ "mode": 2,
+ "value": "ITEM.@system.tier",
+ "priority": null
+ }
+ ],
+ "_id": "M70a81e0Mg66jHRL",
"type": "base",
- "system": {
- "changes": [
- {
- "type": "armor",
- "phase": "initial",
- "priority": 20,
- "value": {
- "max": "ITEM.@system.tier"
- }
- }
- ]
- },
+ "system": {},
"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,
"tint": "#ffffff",
@@ -143,10 +143,7 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
- "_key": "!items.effects!mxwWKDujgsRcZWPT.eV4lFIpQMiKERj4U"
+ "_key": "!items.effects!mxwWKDujgsRcZWPT.M70a81e0Mg66jHRL"
}
],
"sort": 0,
diff --git a/src/packs/items/weapons/weapon_Runes_of_Ruination_EG6mZhr3ib56r974.json b/src/packs/items/weapons/weapon_Runes_of_Ruination_EG6mZhr3ib56r974.json
index 3a966fe0..e0676ed2 100644
--- a/src/packs/items/weapons/weapon_Runes_of_Ruination_EG6mZhr3ib56r974.json
+++ b/src/packs/items/weapons/weapon_Runes_of_Ruination_EG6mZhr3ib56r974.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d20",
"bonus": 4,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Scepter_GZh345N8fmuS4Jeh.json b/src/packs/items/weapons/weapon_Scepter_GZh345N8fmuS4Jeh.json
index f1e85577..04ce4c4b 100644
--- a/src/packs/items/weapons/weapon_Scepter_GZh345N8fmuS4Jeh.json
+++ b/src/packs/items/weapons/weapon_Scepter_GZh345N8fmuS4Jeh.json
@@ -11,8 +11,8 @@
"type": "attack",
"damage": {
"includeBase": false,
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -38,7 +38,7 @@
}
}
}
- }
+ ]
},
"range": "melee",
"roll": {
@@ -115,8 +115,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": null,
@@ -142,7 +142,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Scepter_of_Elias_acPGwIaUhx3R0mTq.json b/src/packs/items/weapons/weapon_Scepter_of_Elias_acPGwIaUhx3R0mTq.json
index f2c13441..8c8e50af 100644
--- a/src/packs/items/weapons/weapon_Scepter_of_Elias_acPGwIaUhx3R0mTq.json
+++ b/src/packs/items/weapons/weapon_Scepter_of_Elias_acPGwIaUhx3R0mTq.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 3,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Shortbow_p9tdjQr2AZP19RYm.json b/src/packs/items/weapons/weapon_Shortbow_p9tdjQr2AZP19RYm.json
index 56a791ba..82216a2d 100644
--- a/src/packs/items/weapons/weapon_Shortbow_p9tdjQr2AZP19RYm.json
+++ b/src/packs/items/weapons/weapon_Shortbow_p9tdjQr2AZP19RYm.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 3,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Shortstaff_vHDHG3STcxTEfYAM.json b/src/packs/items/weapons/weapon_Shortstaff_vHDHG3STcxTEfYAM.json
index 3dc3a137..0d468da8 100644
--- a/src/packs/items/weapons/weapon_Shortstaff_vHDHG3STcxTEfYAM.json
+++ b/src/packs/items/weapons/weapon_Shortstaff_vHDHG3STcxTEfYAM.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 1,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Shortsword_cjGZpXCoshEqi1FI.json b/src/packs/items/weapons/weapon_Shortsword_cjGZpXCoshEqi1FI.json
index 0ea874f8..84ae1a2a 100644
--- a/src/packs/items/weapons/weapon_Shortsword_cjGZpXCoshEqi1FI.json
+++ b/src/packs/items/weapons/weapon_Shortsword_cjGZpXCoshEqi1FI.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": null,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Siphoning_Gauntlets_1N1jggda5DfdzdMj.json b/src/packs/items/weapons/weapon_Siphoning_Gauntlets_1N1jggda5DfdzdMj.json
index 205aa4e0..0eb65689 100644
--- a/src/packs/items/weapons/weapon_Siphoning_Gauntlets_1N1jggda5DfdzdMj.json
+++ b/src/packs/items/weapons/weapon_Siphoning_Gauntlets_1N1jggda5DfdzdMj.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 9,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Sledge_Axe_OxsEmffWriiQmqJK.json b/src/packs/items/weapons/weapon_Sledge_Axe_OxsEmffWriiQmqJK.json
index d0230362..b5ffe457 100644
--- a/src/packs/items/weapons/weapon_Sledge_Axe_OxsEmffWriiQmqJK.json
+++ b/src/packs/items/weapons/weapon_Sledge_Axe_OxsEmffWriiQmqJK.json
@@ -20,8 +20,8 @@
"amount": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"applyTo": "stress",
"value": {
"custom": {
@@ -46,7 +46,7 @@
"base": false,
"type": []
}
- },
+ ],
"includeBase": false
},
"_id": "0qVTvNMfapVST3sQ",
@@ -104,8 +104,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d12",
"bonus": 13,
@@ -131,7 +131,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Small_Dagger_wKklDxs5nkzILNp4.json b/src/packs/items/weapons/weapon_Small_Dagger_wKklDxs5nkzILNp4.json
index 058d138e..5b63acd7 100644
--- a/src/packs/items/weapons/weapon_Small_Dagger_wKklDxs5nkzILNp4.json
+++ b/src/packs/items/weapons/weapon_Small_Dagger_wKklDxs5nkzILNp4.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"type": [
"physical"
],
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Spear_TF85tKJetUjLwh54.json b/src/packs/items/weapons/weapon_Spear_TF85tKJetUjLwh54.json
index a0ebc4ec..ea217ad9 100644
--- a/src/packs/items/weapons/weapon_Spear_TF85tKJetUjLwh54.json
+++ b/src/packs/items/weapons/weapon_Spear_TF85tKJetUjLwh54.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 3,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Spiked_Bow_O1w8KPYH85ZS8X64.json b/src/packs/items/weapons/weapon_Spiked_Bow_O1w8KPYH85ZS8X64.json
index 5421fc10..99faed64 100644
--- a/src/packs/items/weapons/weapon_Spiked_Bow_O1w8KPYH85ZS8X64.json
+++ b/src/packs/items/weapons/weapon_Spiked_Bow_O1w8KPYH85ZS8X64.json
@@ -11,8 +11,8 @@
"type": "attack",
"damage": {
"includeBase": false,
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"resultBased": false,
"value": {
"custom": {
@@ -36,7 +36,7 @@
}
}
}
- }
+ ]
},
"range": "melee",
"roll": {
@@ -113,8 +113,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 7,
@@ -140,7 +140,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json b/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json
index 39c18b08..edadecf9 100644
--- a/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json
+++ b/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 2,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -113,31 +113,32 @@
"name": "Double Duty",
"description": "+1 to Armor Score; +1 to primary weapon damage within Melee range",
"img": "icons/skills/melee/sword-shield-stylized-white.webp",
+ "changes": [
+ {
+ "key": "system.armorScore",
+ "mode": 2,
+ "value": "1"
+ },
+ {
+ "key": "system.bonuses.damage.primaryWeapon.bonus",
+ "mode": 2,
+ "value": "1"
+ }
+ ],
"system": {
"rangeDependence": {
"enabled": true,
"range": "melee",
"target": "hostile",
"type": "withinRange"
- },
- "changes": [
- {
- "key": "system.bonuses.damage.primaryWeapon.bonus",
- "type": "add",
- "value": 1,
- "phase": "initial",
- "priority": 0
- }
- ]
+ }
},
"_id": "d3TJtlpoHBCztbom",
"type": "base",
"disabled": false,
"duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
+ "startTime": null,
+ "combat": null
},
"origin": null,
"tint": "#ffffff",
@@ -148,49 +149,7 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!vzyzFwLUniWZV1rt.d3TJtlpoHBCztbom"
- },
- {
- "name": "Double Duty",
- "description": "+1 to Armor Score; +1 to primary weapon damage within Melee range",
- "img": "icons/skills/melee/sword-shield-stylized-white.webp",
- "system": {
- "changes": [
- {
- "type": "armor",
- "phase": "initial",
- "priority": 20,
- "value": {
- "max": "1"
- }
- }
- ]
- },
- "_id": "mvUY9LGfwICak7cE",
- "type": "base",
- "disabled": false,
- "duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
- },
- "origin": null,
- "tint": "#ffffff",
- "transfer": true,
- "statuses": [],
- "sort": 0,
- "flags": {},
- "_stats": {
- "compendiumSource": null
- },
- "start": null,
- "showIcon": 1,
- "folder": null,
- "_key": "!items.effects!vzyzFwLUniWZV1rt.mvUY9LGfwICak7cE"
}
],
"sort": 0,
diff --git a/src/packs/items/weapons/weapon_Steelforged_Halberd_6bkbw4Ap644KZGvJ.json b/src/packs/items/weapons/weapon_Steelforged_Halberd_6bkbw4Ap644KZGvJ.json
index 1fccc471..c4730e94 100644
--- a/src/packs/items/weapons/weapon_Steelforged_Halberd_6bkbw4Ap644KZGvJ.json
+++ b/src/packs/items/weapons/weapon_Steelforged_Halberd_6bkbw4Ap644KZGvJ.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 4,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Swinging_Ropeblade_1jOJHHKdtk3s2jaY.json b/src/packs/items/weapons/weapon_Swinging_Ropeblade_1jOJHHKdtk3s2jaY.json
index cd9490f2..b8fe04b6 100644
--- a/src/packs/items/weapons/weapon_Swinging_Ropeblade_1jOJHHKdtk3s2jaY.json
+++ b/src/packs/items/weapons/weapon_Swinging_Ropeblade_1jOJHHKdtk3s2jaY.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 9,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Sword_of_Light___Flame_TVPCWnSELOVBv6G1.json b/src/packs/items/weapons/weapon_Sword_of_Light___Flame_TVPCWnSELOVBv6G1.json
index 63112b3e..7a74cf3d 100644
--- a/src/packs/items/weapons/weapon_Sword_of_Light___Flame_TVPCWnSELOVBv6G1.json
+++ b/src/packs/items/weapons/weapon_Sword_of_Light___Flame_TVPCWnSELOVBv6G1.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 11,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Talon_Blades_jlLtgK468rO5IssR.json b/src/packs/items/weapons/weapon_Talon_Blades_jlLtgK468rO5IssR.json
index a7c96705..13542a63 100644
--- a/src/packs/items/weapons/weapon_Talon_Blades_jlLtgK468rO5IssR.json
+++ b/src/packs/items/weapons/weapon_Talon_Blades_jlLtgK468rO5IssR.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 7,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Thistlebow_I1nDGpulg29GpWOW.json b/src/packs/items/weapons/weapon_Thistlebow_I1nDGpulg29GpWOW.json
index 18f635eb..65fef12a 100644
--- a/src/packs/items/weapons/weapon_Thistlebow_I1nDGpulg29GpWOW.json
+++ b/src/packs/items/weapons/weapon_Thistlebow_I1nDGpulg29GpWOW.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 13,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Tower_Shield_C9aWpK1shVMWP4m5.json b/src/packs/items/weapons/weapon_Tower_Shield_C9aWpK1shVMWP4m5.json
index e584b63c..d49b7de7 100644
--- a/src/packs/items/weapons/weapon_Tower_Shield_C9aWpK1shVMWP4m5.json
+++ b/src/packs/items/weapons/weapon_Tower_Shield_C9aWpK1shVMWP4m5.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": null,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
@@ -113,25 +113,25 @@
"name": "Barrier",
"description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
"img": "icons/skills/melee/shield-block-bash-blue.webp",
+ "changes": [
+ {
+ "key": "system.armorScore",
+ "mode": 2,
+ "value": "ITEM.@system.tier + 1"
+ },
+ {
+ "key": "system.evasion",
+ "mode": 2,
+ "value": "-1"
+ }
+ ],
"_id": "8r0TcKWXboFV0eqS",
"type": "base",
- "system": {
- "changes": [
- {
- "key": "system.evasion",
- "type": "add",
- "value": -1,
- "phase": "initial",
- "priority": 0
- }
- ]
- },
+ "system": {},
"disabled": false,
"duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
+ "startTime": null,
+ "combat": null
},
"origin": null,
"tint": "#ffffff",
@@ -142,49 +142,7 @@
"_stats": {
"compendiumSource": null
},
- "start": null,
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!C9aWpK1shVMWP4m5.8r0TcKWXboFV0eqS"
- },
- {
- "name": "Barrier",
- "description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
- "img": "icons/skills/melee/shield-block-bash-blue.webp",
- "_id": "tLRc4UAnGuIq7er3",
- "type": "base",
- "system": {
- "changes": [
- {
- "type": "armor",
- "phase": "initial",
- "priority": 20,
- "value": {
- "max": "ITEM.@system.tier + 1"
- }
- }
- ]
- },
- "disabled": false,
- "duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
- },
- "origin": null,
- "tint": "#ffffff",
- "transfer": true,
- "statuses": [],
- "sort": 0,
- "flags": {},
- "_stats": {
- "compendiumSource": null
- },
- "start": null,
- "showIcon": 1,
- "folder": null,
- "_key": "!items.effects!C9aWpK1shVMWP4m5.tLRc4UAnGuIq7er3"
}
],
"sort": 0,
diff --git a/src/packs/items/weapons/weapon_Urok_Broadsword_zGm6Wa1fGF6cECY5.json b/src/packs/items/weapons/weapon_Urok_Broadsword_zGm6Wa1fGF6cECY5.json
index 6727c333..708e920f 100644
--- a/src/packs/items/weapons/weapon_Urok_Broadsword_zGm6Wa1fGF6cECY5.json
+++ b/src/packs/items/weapons/weapon_Urok_Broadsword_zGm6Wa1fGF6cECY5.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 3,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Wand_ItWisJFNGMNWeaCV.json b/src/packs/items/weapons/weapon_Wand_ItWisJFNGMNWeaCV.json
index 8084f261..35fc7866 100644
--- a/src/packs/items/weapons/weapon_Wand_ItWisJFNGMNWeaCV.json
+++ b/src/packs/items/weapons/weapon_Wand_ItWisJFNGMNWeaCV.json
@@ -41,8 +41,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 1,
@@ -68,7 +68,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Wand_of_Enthrallment_tP6vmnrmTq2h5sj7.json b/src/packs/items/weapons/weapon_Wand_of_Enthrallment_tP6vmnrmTq2h5sj7.json
index 84c7b3f2..f2b2f308 100644
--- a/src/packs/items/weapons/weapon_Wand_of_Enthrallment_tP6vmnrmTq2h5sj7.json
+++ b/src/packs/items/weapons/weapon_Wand_of_Enthrallment_tP6vmnrmTq2h5sj7.json
@@ -85,8 +85,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 4,
@@ -112,7 +112,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Wand_of_Essek_ZrRGNjGCgZTTfgDG.json b/src/packs/items/weapons/weapon_Wand_of_Essek_ZrRGNjGCgZTTfgDG.json
index d788d008..23fb1003 100644
--- a/src/packs/items/weapons/weapon_Wand_of_Essek_ZrRGNjGCgZTTfgDG.json
+++ b/src/packs/items/weapons/weapon_Wand_of_Essek_ZrRGNjGCgZTTfgDG.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 13,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_War_Scythe_z6yEdFYQJ5IzgTX3.json b/src/packs/items/weapons/weapon_War_Scythe_z6yEdFYQJ5IzgTX3.json
index 0c57dd50..e80ddfad 100644
--- a/src/packs/items/weapons/weapon_War_Scythe_z6yEdFYQJ5IzgTX3.json
+++ b/src/packs/items/weapons/weapon_War_Scythe_z6yEdFYQJ5IzgTX3.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d8",
"bonus": 5,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Warhammer_ZXh1GQahBiODfSTC.json b/src/packs/items/weapons/weapon_Warhammer_ZXh1GQahBiODfSTC.json
index a94950c7..50b1a829 100644
--- a/src/packs/items/weapons/weapon_Warhammer_ZXh1GQahBiODfSTC.json
+++ b/src/packs/items/weapons/weapon_Warhammer_ZXh1GQahBiODfSTC.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d12",
"bonus": 3,
@@ -76,7 +76,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Whip_CmtWqw6DwoePnX7W.json b/src/packs/items/weapons/weapon_Whip_CmtWqw6DwoePnX7W.json
index 287d8afe..2e548ab6 100644
--- a/src/packs/items/weapons/weapon_Whip_CmtWqw6DwoePnX7W.json
+++ b/src/packs/items/weapons/weapon_Whip_CmtWqw6DwoePnX7W.json
@@ -78,8 +78,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": null,
@@ -105,7 +105,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Widogast_Pendant_8Z5QrThfwkYPXNco.json b/src/packs/items/weapons/weapon_Widogast_Pendant_8Z5QrThfwkYPXNco.json
index 44e4dfd6..a03efe6b 100644
--- a/src/packs/items/weapons/weapon_Widogast_Pendant_8Z5QrThfwkYPXNco.json
+++ b/src/packs/items/weapons/weapon_Widogast_Pendant_8Z5QrThfwkYPXNco.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d10",
"bonus": 5,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/items/weapons/weapon_Yutari_Bloodbow_0XpSBYXxtywvBFQi.json b/src/packs/items/weapons/weapon_Yutari_Bloodbow_0XpSBYXxtywvBFQi.json
index 17e02976..d07a986e 100644
--- a/src/packs/items/weapons/weapon_Yutari_Bloodbow_0XpSBYXxtywvBFQi.json
+++ b/src/packs/items/weapons/weapon_Yutari_Bloodbow_0XpSBYXxtywvBFQi.json
@@ -71,8 +71,8 @@
"useDefault": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"dice": "d6",
"bonus": 4,
@@ -98,7 +98,7 @@
},
"base": false
}
- },
+ ],
"includeBase": false
},
"description": "",
diff --git a/src/packs/subclasses/feature_Act_of_Reprisal_k7vvMJtEcxMWUUrW.json b/src/packs/subclasses/feature_Act_of_Reprisal_k7vvMJtEcxMWUUrW.json
index 5dee0c1c..304bd29c 100644
--- a/src/packs/subclasses/feature_Act_of_Reprisal_k7vvMJtEcxMWUUrW.json
+++ b/src/packs/subclasses/feature_Act_of_Reprisal_k7vvMJtEcxMWUUrW.json
@@ -59,19 +59,13 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [],
- "duration": {
- "type": "temporary",
- "description": "Until the next successful attack you make against that adversary.
"
}
},
+ "changes": [],
"disabled": false,
"duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
+ "startTime": null,
+ "combat": null
},
"description": "",
"tint": "#ffffff",
@@ -81,16 +75,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!k7vvMJtEcxMWUUrW.9Uo0yOYGn3vandPp"
}
],
diff --git a/src/packs/subclasses/feature_Battle_Bonded_hWsKyed1vfILg0I8.json b/src/packs/subclasses/feature_Battle_Bonded_hWsKyed1vfILg0I8.json
index 578be0a3..106b0057 100644
--- a/src/packs/subclasses/feature_Battle_Bonded_hWsKyed1vfILg0I8.json
+++ b/src/packs/subclasses/feature_Battle_Bonded_hWsKyed1vfILg0I8.json
@@ -26,28 +26,27 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.evasion",
- "value": 2,
- "priority": null,
- "type": "add"
- }
- ],
- "duration": {
- "type": "",
- "description": "Against the attack.
"
}
},
"_id": "IZhakv6EuG8DO4a3",
"img": "icons/creatures/mammals/humanoid-wolf-dog-blue.webp",
+ "changes": [
+ {
+ "key": "system.evasion",
+ "mode": 2,
+ "value": "2",
+ "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": "When an adversary attacks you while theyβre within your companionβs Melee range, you gain a +2 bonus to your Evasion against the attack.
",
"origin": null,
@@ -59,16 +58,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!hWsKyed1vfILg0I8.IZhakv6EuG8DO4a3"
}
],
diff --git a/src/packs/subclasses/feature_Battle_Ritual_qqb5acyUSl1sCpWW.json b/src/packs/subclasses/feature_Battle_Ritual_qqb5acyUSl1sCpWW.json
index 2b012aee..6dee9f9d 100644
--- a/src/packs/subclasses/feature_Battle_Ritual_qqb5acyUSl1sCpWW.json
+++ b/src/packs/subclasses/feature_Battle_Ritual_qqb5acyUSl1sCpWW.json
@@ -23,8 +23,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -49,7 +49,7 @@
},
"type": []
},
- "hope": {
+ {
"value": {
"custom": {
"enabled": true,
@@ -74,7 +74,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/subclasses/feature_Clarity_of_Nature_etaQ01yGJhBLDUqZ.json b/src/packs/subclasses/feature_Clarity_of_Nature_etaQ01yGJhBLDUqZ.json
index 886f0b61..09d6f953 100644
--- a/src/packs/subclasses/feature_Clarity_of_Nature_etaQ01yGJhBLDUqZ.json
+++ b/src/packs/subclasses/feature_Clarity_of_Nature_etaQ01yGJhBLDUqZ.json
@@ -22,8 +22,8 @@
"recovery": "longRest"
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -48,7 +48,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/subclasses/feature_Dark_Cloud_frBTtNMX9Y2gkuPz.json b/src/packs/subclasses/feature_Dark_Cloud_frBTtNMX9Y2gkuPz.json
index 8ac6aef2..95534b9f 100644
--- a/src/packs/subclasses/feature_Dark_Cloud_frBTtNMX9Y2gkuPz.json
+++ b/src/packs/subclasses/feature_Dark_Cloud_frBTtNMX9Y2gkuPz.json
@@ -5,14 +5,14 @@
"_id": "frBTtNMX9Y2gkuPz",
"img": "icons/magic/air/wind-vortex-swirl-purple.webp",
"system": {
- "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.
",
+ "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": [],
@@ -22,7 +22,7 @@
"recovery": null
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
@@ -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_Elemental_Aura_2JH9NaOh69yN80Gw.json b/src/packs/subclasses/feature_Elemental_Aura_2JH9NaOh69yN80Gw.json
index 7a3ebd91..7dbae2f6 100644
--- a/src/packs/subclasses/feature_Elemental_Aura_2JH9NaOh69yN80Gw.json
+++ b/src/packs/subclasses/feature_Elemental_Aura_2JH9NaOh69yN80Gw.json
@@ -22,8 +22,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -48,7 +48,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -134,7 +134,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/subclasses/feature_Elemental_Dominion_EFUJHrkTuyv8uA9l.json b/src/packs/subclasses/feature_Elemental_Dominion_EFUJHrkTuyv8uA9l.json
index 2476046c..4297173f 100644
--- a/src/packs/subclasses/feature_Elemental_Dominion_EFUJHrkTuyv8uA9l.json
+++ b/src/packs/subclasses/feature_Elemental_Dominion_EFUJHrkTuyv8uA9l.json
@@ -189,18 +189,18 @@
"type": "withinRange",
"target": "hostile",
"range": "veryFar"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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": "When an attack against you succeeds, you can mark a Stress to make the attacker temporarily Vulnerable.
",
"tint": "#ffffff",
@@ -212,16 +212,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!EFUJHrkTuyv8uA9l.bGwFZZT4juuaIRmZ"
},
{
diff --git a/src/packs/subclasses/feature_Elemental_Incarnation_f37TTgCc0Q3Ih1A1.json b/src/packs/subclasses/feature_Elemental_Incarnation_f37TTgCc0Q3Ih1A1.json
index 45ffde60..30ffb50b 100644
--- a/src/packs/subclasses/feature_Elemental_Incarnation_f37TTgCc0Q3Ih1A1.json
+++ b/src/packs/subclasses/feature_Elemental_Incarnation_f37TTgCc0Q3Ih1A1.json
@@ -29,8 +29,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -56,7 +56,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -148,8 +148,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -174,7 +174,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/subclasses/feature_Elusive_Predator_Cjtc43V3IzAmfIFG.json b/src/packs/subclasses/feature_Elusive_Predator_Cjtc43V3IzAmfIFG.json
index 82cd55a0..18f80cdb 100644
--- a/src/packs/subclasses/feature_Elusive_Predator_Cjtc43V3IzAmfIFG.json
+++ b/src/packs/subclasses/feature_Elusive_Predator_Cjtc43V3IzAmfIFG.json
@@ -26,28 +26,27 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.evasion",
- "value": 2,
- "priority": null,
- "type": "add"
- }
- ],
- "duration": {
- "type": "",
- "description": "Against the attack.
"
}
},
"_id": "X4llFOcAcdJLbear",
"img": "icons/creatures/mammals/beast-horned-scaled-glowing-orange.webp",
+ "changes": [
+ {
+ "key": "system.evasion",
+ "mode": 2,
+ "value": "2",
+ "priority": null
+ }
+ ],
"disabled": true,
"duration": {
- "value": null,
- "units": "seconds",
- "expiry": null,
- "expired": false
+ "startTime": null,
+ "combat": null,
+ "seconds": null,
+ "rounds": null,
+ "turns": null,
+ "startRound": null,
+ "startTurn": null
},
"description": "When your Focus makes an attack against you, you gain a +2 bonus to your Evasion against the attack.
",
"origin": null,
@@ -59,16 +58,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!Cjtc43V3IzAmfIFG.X4llFOcAcdJLbear"
}
],
diff --git a/src/packs/subclasses/feature_Gifted_Performer_99U7YWNCxFZHCiT0.json b/src/packs/subclasses/feature_Gifted_Performer_99U7YWNCxFZHCiT0.json
index f65cd041..f53f7c31 100644
--- a/src/packs/subclasses/feature_Gifted_Performer_99U7YWNCxFZHCiT0.json
+++ b/src/packs/subclasses/feature_Gifted_Performer_99U7YWNCxFZHCiT0.json
@@ -21,8 +21,8 @@
"recovery": "longRest"
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -47,7 +47,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -115,8 +115,8 @@
"recovery": "longRest"
},
"damage": {
- "parts": {
- "hope": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -141,7 +141,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -180,7 +180,7 @@
"effects": [
{
"name": "Epic Song",
- "img": "icons/tools/instruments/harp-yellow-teal.webp",
+ "img": "icons/svg/ice-aura.svg",
"origin": "Compendium.daggerheart.subclasses.Item.6j1RP4fz3BwSfoli",
"transfer": false,
"_id": "FK4IdbxluRErfYor",
@@ -191,18 +191,18 @@
"type": "withinRange",
"target": "hostile",
"range": "close"
- },
- "changes": [],
- "duration": {
- "type": "temporary"
}
},
+ "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": "Make a target within Close range temporarily Vulnerable.
",
"tint": "#ffffff",
@@ -214,16 +214,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!99U7YWNCxFZHCiT0.FK4IdbxluRErfYor"
}
],
diff --git a/src/packs/subclasses/feature_Honed_Expertise_w1BwNKxbQOSizLmZ.json b/src/packs/subclasses/feature_Honed_Expertise_w1BwNKxbQOSizLmZ.json
index 48973ad9..1fad2396 100644
--- a/src/packs/subclasses/feature_Honed_Expertise_w1BwNKxbQOSizLmZ.json
+++ b/src/packs/subclasses/feature_Honed_Expertise_w1BwNKxbQOSizLmZ.json
@@ -23,7 +23,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/subclasses/feature_Natural_Evasion_TnuLBtHQGbqyzn82.json b/src/packs/subclasses/feature_Natural_Evasion_TnuLBtHQGbqyzn82.json
index 517e1fe1..628fabed 100644
--- a/src/packs/subclasses/feature_Natural_Evasion_TnuLBtHQGbqyzn82.json
+++ b/src/packs/subclasses/feature_Natural_Evasion_TnuLBtHQGbqyzn82.json
@@ -31,7 +31,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/subclasses/feature_Regeneration_KRyrbSLVGreIOTZe.json b/src/packs/subclasses/feature_Regeneration_KRyrbSLVGreIOTZe.json
index ab748169..b7c39f2a 100644
--- a/src/packs/subclasses/feature_Regeneration_KRyrbSLVGreIOTZe.json
+++ b/src/packs/subclasses/feature_Regeneration_KRyrbSLVGreIOTZe.json
@@ -29,8 +29,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": false
@@ -54,7 +54,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/subclasses/feature_Revenge_oNfA5F9cKwNR7joq.json b/src/packs/subclasses/feature_Revenge_oNfA5F9cKwNR7joq.json
index b7e2e8b9..f663201d 100644
--- a/src/packs/subclasses/feature_Revenge_oNfA5F9cKwNR7joq.json
+++ b/src/packs/subclasses/feature_Revenge_oNfA5F9cKwNR7joq.json
@@ -29,8 +29,8 @@
"recovery": null
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -55,7 +55,7 @@
}
}
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json b/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json
index b5ca1eba..f1596519 100644
--- a/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json
+++ b/src/packs/subclasses/feature_Rousing_Speech_PCmYTX02JLzBpgml.json
@@ -21,8 +21,8 @@
"recovery": "longRest"
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -47,7 +47,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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_Sparing_Touch_GfOSgVJW8bS1OjNq.json b/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json
index 86de0fe8..deb4af6b 100644
--- a/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json
+++ b/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json
@@ -39,8 +39,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -65,7 +65,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -116,8 +116,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "stress": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -142,7 +142,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
diff --git a/src/packs/subclasses/feature_Thrive_in_Chaos_1nmFmkNXY6OYyyju.json b/src/packs/subclasses/feature_Thrive_in_Chaos_1nmFmkNXY6OYyyju.json
index b65184e9..bbdd8707 100644
--- a/src/packs/subclasses/feature_Thrive_in_Chaos_1nmFmkNXY6OYyyju.json
+++ b/src/packs/subclasses/feature_Thrive_in_Chaos_1nmFmkNXY6OYyyju.json
@@ -31,7 +31,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {},
+ "parts": [],
"includeBase": false
},
"target": {
diff --git a/src/packs/subclasses/feature_Transcendence_th6HZwEFnVBjUtqm.json b/src/packs/subclasses/feature_Transcendence_th6HZwEFnVBjUtqm.json
index c03c10b5..5f2df7cb 100644
--- a/src/packs/subclasses/feature_Transcendence_th6HZwEFnVBjUtqm.json
+++ b/src/packs/subclasses/feature_Transcendence_th6HZwEFnVBjUtqm.json
@@ -58,29 +58,29 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- },
- "changes": [
- {
- "key": "system.damageThresholds.severe",
- "value": "+4",
- "priority": null,
- "type": "add"
- }
- ],
- "duration": {
- "type": ""
}
},
"_id": "zFOpzO3tBJPcZcRc",
"img": "icons/magic/fire/elemental-fire-flying.webp",
+ "changes": [
+ {
+ "key": "system.damageThresholds.severe",
+ "mode": 2,
+ "value": "+4",
+ "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": "+4 bonus to your Severe threshold
",
+ "description": "+4 bonus to your Severe threshold
",
"origin": null,
"tint": "#ffffff",
"transfer": true,
@@ -90,16 +90,6 @@
"_stats": {
"compendiumSource": null
},
- "start": {
- "time": 0,
- "combat": null,
- "combatant": null,
- "initiative": null,
- "round": null,
- "turn": null
- },
- "showIcon": 1,
- "folder": null,
"_key": "!items.effects!th6HZwEFnVBjUtqm.zFOpzO3tBJPcZcRc"
},
{
diff --git a/src/packs/subclasses/feature_Warden_s_Protection_2F1bUFY80oce97C9.json b/src/packs/subclasses/feature_Warden_s_Protection_2F1bUFY80oce97C9.json
index a6cb2d97..e80a770a 100644
--- a/src/packs/subclasses/feature_Warden_s_Protection_2F1bUFY80oce97C9.json
+++ b/src/packs/subclasses/feature_Warden_s_Protection_2F1bUFY80oce97C9.json
@@ -23,8 +23,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": {
- "hitPoints": {
+ "parts": [
+ {
"value": {
"custom": {
"enabled": true,
@@ -49,7 +49,7 @@
},
"type": []
}
- },
+ ],
"includeBase": false
},
"target": {
@@ -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/beastform/sheet.less b/styles/less/dialog/beastform/sheet.less
index 0e1fe746..9e87f53b 100644
--- a/styles/less/dialog/beastform/sheet.less
+++ b/styles/less/dialog/beastform/sheet.less
@@ -204,44 +204,6 @@
}
}
- .modifications-container {
- display: flex;
- flex-direction: column;
- gap: 16px;
-
- .trait-bonuses-container {
- display: flex;
- flex-direction: column;
- gap: 8px;
-
- .bonus-separator {
- background: light-dark(@dark-blue, @golden);
- mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%);
- height: 2px;
- width: calc(100% - 10px);
- }
-
- .trait-bonus-container {
- display: flex;
- gap: 4px;
-
- .trait-card {
- border: 1px solid light-dark(@dark-blue, @golden);
- border-radius: 6px;
- padding: 2px;
- opacity: 0.4;
- flex: 1;
- white-space: nowrap;
- text-align: center;
-
- &.selected {
- opacity: 1;
- }
- }
- }
- }
- }
-
footer {
margin-top: 8px;
display: flex;
diff --git a/styles/less/dialog/character-creation/selections-container.less b/styles/less/dialog/character-creation/selections-container.less
index 2bbac484..1de3d870 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;
@@ -245,21 +240,12 @@
display: flex;
align-items: center;
justify-content: space-evenly;
- gap: 2px;
+ gap: 8px;
.trait-container {
- span {
- font-size: var(--font-size-10);
- }
- width: 65px;
- height: 65px;
+ width: 60px;
+ height: 60px;
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 +274,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/damage-reduction/damage-reduction-container.less b/styles/less/dialog/damage-reduction/damage-reduction-container.less
index e8242bdd..2f343fb3 100644
--- a/styles/less/dialog/damage-reduction/damage-reduction-container.less
+++ b/styles/less/dialog/damage-reduction/damage-reduction-container.less
@@ -35,10 +35,7 @@
display: flex;
flex-direction: column;
align-items: center;
-
- &.full-width {
- width: 100%;
- }
+ width: 100%;
}
.padded {
@@ -48,7 +45,6 @@
.armor-title {
margin: 0;
white-space: nowrap;
- width: 100%;
}
.resources-container {
@@ -66,17 +62,12 @@
.mark-selection {
display: flex;
- flex-direction: column;
+ align-items: center;
width: 100%;
margin: 0;
- h4 {
- margin: 0;
- }
-
.mark-selection-inner {
display: flex;
- justify-content: center;
gap: 8px;
.mark-container {
@@ -100,19 +91,6 @@
opacity: 0.2;
}
- &.spent {
- ::after {
- position: absolute;
- content: '/';
- color: red;
- font-weight: 700;
- font-size: 1.8em;
- left: -1px;
- top: -7px;
- rotate: 13deg;
- }
- }
-
.fa-shield {
position: relative;
right: 0.5px;
diff --git a/styles/less/dialog/damage-selection/sheet.less b/styles/less/dialog/damage-selection/sheet.less
index 9f8cfc8a..461fb0b5 100644
--- a/styles/less/dialog/damage-selection/sheet.less
+++ b/styles/less/dialog/damage-selection/sheet.less
@@ -17,50 +17,6 @@
}
}
- .bonuses {
- gap: 4px;
- .critical-chip {
- flex: 0;
-
- display: flex;
- align-items: center;
- border-radius: 5px;
- width: fit-content;
- gap: 5px;
- cursor: pointer;
- padding: 5px;
- transition: all 0.3s ease;
-
- background: @green-10;
- color: @green;
-
- &.selected {
- color: @beige;
- background: @gradient-green;
- }
- }
- }
-
- .group-attack-container {
- margin: 0;
-
- .group-attack-inner-container {
- display: flex;
- align-items: center;
- gap: 16px;
-
- > * {
- flex: 1;
- }
-
- .group-attack-tools {
- display: flex;
- align-items: center;
- gap: 4px;
- }
- }
- }
-
.damage-section-controls {
display: flex;
align-items: center;
diff --git a/styles/less/dialog/dice-roll/roll-selection.less b/styles/less/dialog/dice-roll/roll-selection.less
index a1a01e6b..7fdae77a 100644
--- a/styles/less/dialog/dice-roll/roll-selection.less
+++ b/styles/less/dialog/dice-roll/roll-selection.less
@@ -69,6 +69,29 @@
background: light-dark(@dark-blue-40, @golden-40);
}
}
+
+ .tag-team-controller {
+ display: flex;
+ align-items: center;
+ border-radius: 5px;
+ width: fit-content;
+ gap: 5px;
+ cursor: pointer;
+ padding: 5px;
+ background: light-dark(@dark-blue-10, @golden-10);
+ color: light-dark(@dark-blue, @golden);
+
+ .label {
+ font-style: normal;
+ font-weight: 400;
+ font-size: var(--font-size-14);
+ line-height: 17px;
+ }
+
+ &.selected {
+ background: light-dark(@dark-blue-40, @golden-40);
+ }
+ }
}
.roll-dialog-container {
diff --git a/styles/less/dialog/group-roll-dialog/initialization.less b/styles/less/dialog/group-roll-dialog/initialization.less
deleted file mode 100644
index b2e7e021..00000000
--- a/styles/less/dialog/group-roll-dialog/initialization.less
+++ /dev/null
@@ -1,79 +0,0 @@
-.theme-light .daggerheart.dialog.dh-style.views.group-roll-dialog {
- .initialization-container .members-container .member-container {
- .member-name {
- background-image: url('../assets/parchments/dh-parchment-light.png');
- }
- }
-}
-
-.daggerheart.dialog.dh-style.views.group-roll-dialog {
- .initialization-container {
- h2 {
- text-align: center;
- }
-
- .members-container {
- display: grid;
- grid-template-columns: 1fr 1fr 1fr 1fr;
- gap: 8px;
-
- .member-container {
- position: relative;
- display: flex;
- justify-content: center;
-
- &.inactive {
- opacity: 0.4;
- }
-
- .member-name {
- position: absolute;
- padding: 0 2px;
- border: 1px solid;
- border-radius: 6px;
- margin-top: 4px;
- color: light-dark(@dark, @beige);
- background-image: url('../assets/parchments/dh-parchment-dark.png');
- text-align: center;
- }
-
- img {
- border-radius: 6px;
- border: 1px solid light-dark(@dark-blue, @golden);
- }
- }
- }
-
- .main-roll {
- margin-top: 8px;
- display: grid;
- grid-template-columns: 1fr 1fr;
- gap: 8px;
-
- &.inactive {
- opacity: 0.4;
- }
- }
-
- footer {
- margin-top: 8px;
- display: flex;
- gap: 8px;
-
- button {
- flex: 1;
- }
-
- .finish-tools {
- flex: none;
- display: flex;
- align-items: center;
- gap: 4px;
-
- &.inactive {
- opacity: 0.4;
- }
- }
- }
- }
-}
diff --git a/styles/less/dialog/group-roll-dialog/leader.less b/styles/less/dialog/group-roll-dialog/leader.less
deleted file mode 100644
index b3fa3a3b..00000000
--- a/styles/less/dialog/group-roll-dialog/leader.less
+++ /dev/null
@@ -1,35 +0,0 @@
-.daggerheart.dialog.dh-style.views.group-roll-dialog {
- .main-character-outer-container {
- &.inactive {
- opacity: 0.3;
- pointer-events: none;
- }
-
- .main-character-container {
- .character-info {
- display: flex;
- align-items: center;
- justify-content: space-between;
- width: 100%;
- height: 64px;
-
- img {
- height: 64px;
- border-radius: 6px;
- border: 1px solid light-dark(@dark-blue, @golden);
- }
-
- .character-data {
- padding-left: 0.75rem;
- flex: 1;
- height: 100%;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- text-align: left;
- font-size: var(--font-size-18);
- }
- }
- }
- }
-}
diff --git a/styles/less/dialog/group-roll-dialog/sheet.less b/styles/less/dialog/group-roll-dialog/sheet.less
deleted file mode 100644
index 70afc1fe..00000000
--- a/styles/less/dialog/group-roll-dialog/sheet.less
+++ /dev/null
@@ -1,265 +0,0 @@
-.daggerheart.dialog.dh-style.views.group-roll-dialog {
- .team-container {
- display: grid;
- grid-template-columns: 1fr 1fr;
- gap: 16px;
- margin-bottom: 16px;
-
- .team-member-container {
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- gap: 8px;
- flex: 1;
-
- &.inactive {
- opacity: 0.3;
- pointer-events: none;
- }
-
- .data-container {
- display: flex;
- flex-direction: column;
- gap: 8px;
- width: 100%;
- }
-
- .member-info {
- display: flex;
- align-items: start;
- width: 100%;
-
- img {
- height: 64px;
- border-radius: 6px;
- border: 1px solid light-dark(@dark-blue, @golden);
- }
-
- .member-data {
- padding-left: 0.75rem;
- flex: 1;
- height: 100%;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- text-align: left;
- font-size: var(--font-size-18);
- }
- }
- }
- }
-
- .roll-container {
- display: flex;
- flex-direction: column;
- }
-
- .roll-title {
- font-size: var(--font-size-20);
- font-weight: bold;
- color: light-dark(@dark-blue, @golden);
- text-align: center;
- display: flex;
- align-items: center;
- gap: 8px;
-
- &.hope,
- &.fear,
- &.critical {
- color: var(--text-color);
- }
-
- &.hope {
- --text-color: @golden;
- }
-
- &.fear {
- --text-color: @chat-blue;
- }
-
- &.critical {
- --text-color: @chat-purple;
- }
-
- &::before,
- &::after {
- color: var(--text-color);
- content: '';
- flex: 1;
- height: 2px;
- }
-
- &::before {
- background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, light-dark(@dark-blue, @golden) 100%);
- }
-
- &::after {
- background: linear-gradient(90deg, light-dark(@dark-blue, @golden) 0%, rgba(0, 0, 0, 0) 100%);
- }
- }
-
- .roll-tools {
- display: flex;
- gap: 4px;
- align-items: center;
-
- img {
- height: 16px;
- }
-
- a {
- display: flex;
- font-size: 16px;
-
- &:hover {
- text-shadow: none;
- filter: drop-shadow(0 0 8px var(--golden));
- }
- }
- }
-
- .roll-data {
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 4px;
-
- &.hope {
- --text-color: @golden;
- --bg-color: @golden-40;
- }
-
- &.fear {
- --text-color: @chat-blue;
- --bg-color: @chat-blue-40;
- }
-
- &.critical {
- --text-color: @chat-purple;
- --bg-color: @chat-purple-40;
- }
-
- .duality-label {
- color: var(--text-color);
- font-size: var(--font-size-20);
- font-weight: bold;
- text-align: center;
-
- .unused-damage {
- text-decoration: line-through;
- }
- }
-
- .roll-dice-container {
- display: flex;
- align-items: center;
- justify-content: center;
- flex-wrap: wrap;
- gap: 8px;
-
- .roll-dice {
- position: relative;
- display: flex;
- align-items: center;
- justify-content: center;
-
- .dice-label {
- position: absolute;
- color: white;
- font-size: 1rem;
- paint-order: stroke fill;
- -webkit-text-stroke: 2px black;
- }
-
- img {
- height: 32px;
- }
- }
-
- .roll-operator {
- font-size: var(--font-size-24);
- }
-
- .roll-value {
- font-size: 18px;
- }
- }
-
- .roll-total {
- background: var(--bg-color);
- color: var(--text-color);
- border-radius: 4px;
- padding: 3px;
- }
- }
-
- .roll-success-container {
- display: flex;
- align-items: center;
- justify-content: space-around;
-
- .roll-success-tools {
- display: flex;
- align-items: center;
- gap: 4px;
- color: light-dark(@dark-blue, @golden);
-
- i {
- font-size: 24px;
- }
- }
-
- .roll-success-modifier {
- display: flex;
- align-items: center;
- justify-content: right;
- gap: 2px;
- font-size: var(--font-size-20);
- padding: 0px 4px;
-
- &.success {
- background: @green-10;
- color: @green;
- }
-
- &.failure {
- background: @red-10;
- color: @red;
- }
- }
- }
-
- .section-title {
- font-size: var(--font-size-18);
- font-weight: bold;
- }
-
- .group-roll-results {
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 4px;
- font-size: var(--font-size-20);
-
- .group-roll-container {
- display: flex;
- align-items: center;
- gap: 2px;
- }
- }
-
- .finish-container {
- margin-top: 16px;
- gap: 16px;
- display: grid;
- grid-template-columns: 1fr 1fr 1fr;
-
- .finish-button {
- grid-column: span 2;
- }
- }
-
- .hint {
- text-align: center;
- }
-}
diff --git a/styles/less/dialog/index.less b/styles/less/dialog/index.less
index 947142ff..0c70df9f 100644
--- a/styles/less/dialog/index.less
+++ b/styles/less/dialog/index.less
@@ -32,14 +32,8 @@
@import './reroll-dialog/sheet.less';
@import './group-roll/group-roll.less';
-
-@import './tag-team-dialog/initialization.less';
@import './tag-team-dialog/sheet.less';
-@import './group-roll-dialog/initialization.less';
-@import './group-roll-dialog/leader.less';
-@import './group-roll-dialog/sheet.less';
-
@import './image-select/sheet.less';
@import './item-transfer/sheet.less';
diff --git a/styles/less/dialog/tag-team-dialog/initialization.less b/styles/less/dialog/tag-team-dialog/initialization.less
deleted file mode 100644
index 8557d231..00000000
--- a/styles/less/dialog/tag-team-dialog/initialization.less
+++ /dev/null
@@ -1,79 +0,0 @@
-.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 {
- text-align: center;
- }
-
- .members-container {
- display: grid;
- grid-template-columns: 1fr 1fr 1fr 1fr;
- gap: 8px;
-
- .member-container {
- position: relative;
- display: flex;
- justify-content: center;
-
- &.inactive {
- opacity: 0.4;
- }
-
- .member-name {
- position: absolute;
- padding: 0 2px;
- border: 1px solid;
- border-radius: 6px;
- margin-top: 4px;
- color: light-dark(@dark, @beige);
- background-image: url('../assets/parchments/dh-parchment-dark.png');
- text-align: center;
- }
-
- img {
- border-radius: 6px;
- border: 1px solid light-dark(@dark-blue, @golden);
- }
- }
- }
-
- .initiator-container {
- margin-top: 8px;
- display: grid;
- grid-template-columns: 1fr 1fr;
- gap: 8px;
-
- &.inactive {
- opacity: 0.4;
- }
- }
-
- footer {
- margin-top: 8px;
- display: flex;
- gap: 8px;
-
- button {
- flex: 1;
- }
-
- .finish-tools {
- flex: none;
- display: flex;
- align-items: center;
- gap: 4px;
-
- &.inactive {
- opacity: 0.4;
- }
- }
- }
- }
-}
diff --git a/styles/less/dialog/tag-team-dialog/sheet.less b/styles/less/dialog/tag-team-dialog/sheet.less
index dc8f16dc..767c66ca 100644
--- a/styles/less/dialog/tag-team-dialog/sheet.less
+++ b/styles/less/dialog/tag-team-dialog/sheet.less
@@ -1,272 +1,178 @@
.daggerheart.dialog.dh-style.views.tag-team-dialog {
- .team-container {
- display: flex;
- gap: 16px;
- margin-bottom: 16px;
-
- .team-member-container {
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- gap: 8px;
- flex: 1;
-
- &.select-padding {
- padding-bottom: 64px;
- }
-
- &.inactive {
- opacity: 0.4;
- pointer-events: none;
- }
-
- .data-container {
- display: flex;
- flex-direction: column;
- gap: 8px;
- width: 100%;
- }
-
- .member-info {
- display: flex;
- align-items: center;
- justify-content: space-between;
- width: 100%;
-
- img {
- height: 64px;
- border-radius: 6px;
- border: 1px solid light-dark(@dark-blue, @golden);
- }
-
- .member-name {
- flex: 1;
- text-align: center;
- font-size: var(--font-size-18);
- }
- }
-
- .roll-setup {
- width: 100%;
- }
-
- .roll-container {
- display: flex;
- flex-direction: column;
- }
-
- .roll-title {
- font-size: var(--font-size-20);
- font-weight: bold;
- color: light-dark(@dark-blue, @golden);
- text-align: center;
- display: flex;
- align-items: center;
- gap: 8px;
-
- &::before,
- &::after {
- color: light-dark(@dark-blue, @golden);
- content: '';
- flex: 1;
- height: 2px;
- }
-
- &::before {
- background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, light-dark(@dark-blue, @golden) 100%);
- }
-
- &::after {
- background: linear-gradient(90deg, light-dark(@dark-blue, @golden) 0%, rgba(0, 0, 0, 0) 100%);
- }
- }
-
- .roll-tools {
- display: flex;
- gap: 4px;
- align-items: center;
-
- img {
- height: 16px;
- }
-
- a {
- display: flex;
- font-size: 16px;
-
- &:hover {
- text-shadow: none;
- filter: drop-shadow(0 0 8px var(--golden));
- }
- }
- }
-
- .roll-data {
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 4px;
-
- &.hope {
- --text-color: @golden;
- --bg-color: @golden-40;
- }
-
- &.fear {
- --text-color: @chat-blue;
- --bg-color: @chat-blue-40;
- }
-
- &.critical {
- --text-color: @chat-purple;
- --bg-color: @chat-purple-40;
- }
-
- .duality-label {
- color: var(--text-color);
- font-size: var(--font-size-20);
- font-weight: bold;
- text-align: center;
-
- .unused-damage {
- text-decoration: line-through;
- }
- }
-
- .roll-dice-container {
- display: flex;
- align-items: center;
- justify-content: center;
- flex-wrap: wrap;
- gap: 8px;
-
- .roll-dice {
- position: relative;
- display: flex;
- align-items: center;
- justify-content: center;
-
- .dice-label {
- position: absolute;
- color: white;
- font-size: 1rem;
- paint-order: stroke fill;
- -webkit-text-stroke: 2px black;
- }
-
- img {
- height: 32px;
- }
- }
-
- .roll-operator {
- font-size: var(--font-size-24);
- }
-
- .roll-value {
- font-size: 18px;
- }
- }
-
- .roll-total {
- background: var(--bg-color);
- color: var(--text-color);
- border-radius: 4px;
- padding: 3px;
- }
- }
- }
- }
-
- .roll-selection {
- position: relative;
- top: -80px;
-
- &.rendered {
- margin-bottom: -56px;
- }
-
- .roll-selection-container {
- display: flex;
-
- .select-roll-button {
- margin-top: 8px;
- flex: 1;
- display: flex;
- justify-content: center;
-
- i {
- color: light-dark(@dark-blue, @golden);
- font-size: 48px;
-
- &.inactive {
- opacity: 0.4;
- }
- }
- }
- }
- }
-
- .tag-team-roll-container {
+ .tag-team-container {
display: flex;
flex-direction: column;
gap: 16px;
- &.inactive {
- opacity: 0.4;
- pointer-events: none;
- }
-
- .results-container {
+ .tag-team-data-container {
display: flex;
- flex-direction: column;
align-items: center;
- gap: 4px;
- border: 2px solid light-dark(@dark-blue, @golden);
- border-radius: 6px;
- padding: 8px 10px;
+ gap: 8px;
- .result-container-label {
- font-size: var(--font-size-24);
- font-weight: bold;
- }
+ .form-group {
+ flex: 0;
- .results-inner-container {
- display: flex;
- justify-content: space-between;
- gap: 8px;
- width: 100%;
-
- .result-section-label {
- font-size: var(--font-size-20);
+ label {
+ white-space: nowrap;
}
- .result-container {
- width: 100%;
- text-align: center;
+ &.flex-group {
+ flex: 1;
+ }
+ }
+ }
- .result-info {
+ .title-row {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+
+ h2 {
+ text-align: start;
+ }
+
+ select {
+ flex: 1;
+ }
+ }
+
+ .participants-container {
+ margin-top: 8px;
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+
+ .participant-outer-container {
+ padding: 8px;
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+ cursor: pointer;
+ border-radius: 6px;
+
+ &.selected,
+ &:hover {
+ background-color: light-dark(@golden-40, @golden-40);
+ }
+
+ .participant-container {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 8px;
+
+ .participant-inner-container {
+ flex: 1;
display: flex;
+ align-items: center;
gap: 4px;
+
+ img {
+ height: 48px;
+ width: 48px;
+ border-radius: 50%;
+ }
+
+ .participant-labels {
+ display: flex;
+ flex-direction: column;
+ gap: 2px;
+
+ .participant-label-title {
+ font-size: 18px;
+ }
+
+ .participant-label-info {
+ display: flex;
+ gap: 4px;
+
+ .participant-label-info-part {
+ border: 1px solid light-dark(white, white);
+ border-radius: 4px;
+ padding: 2px 4px;
+ background-color: light-dark(@beige-80, @soft-white-shadow);
+ color: white;
+ }
+ }
+ }
+ }
+ }
+
+ .participant-empty-roll-container {
+ border: 1px dashed white;
+ padding: 8px 2px;
+ text-align: center;
+ font-style: italic;
+ }
+
+ .participant-roll-outer-container {
+ display: flex;
+ flex-direction: column;
+ gap: 2px;
+ color: light-dark(@dark-blue, @golden);
+
+ h4 {
+ text-align: center;
+ color: light-dark(@dark-blue, @golden);
+ }
+
+ .participant-roll-container {
+ display: flex;
align-items: center;
justify-content: center;
+ white-space: nowrap;
+
+ .participant-roll-text-container {
+ padding: 0 8px;
+ white-space: nowrap;
+ display: flex;
+ }
+ }
+
+ .damage-values-container {
+ display: flex;
+ justify-content: space-around;
+ gap: 8px;
+
+ .damage-container {
+ border: 1px solid light-dark(white, white);
+ border-radius: 6px;
+ padding: 0 4px;
+ display: flex;
+ gap: 4px;
+ }
}
}
}
}
- .finish-container {
- gap: 16px;
- display: grid;
- grid-template-columns: 1fr 1fr 1fr;
+ h2 {
+ text-align: center;
+ }
- .finish-button {
- grid-column: span 2;
+ .result-container {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ align-items: center;
+ gap: 8px;
+
+ .result-damages-container {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 4px;
+
+ .result-damage-container {
+ border: 1px solid light-dark(white, white);
+ border-radius: 6px;
+ padding: 0 4px;
+ }
}
}
- }
- .hint {
- text-align: center;
+ .roll-leader-container {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 8px;
+ }
}
}
diff --git a/styles/less/global/elements.less b/styles/less/global/elements.less
index c5bca1da..beffefbb 100755
--- a/styles/less/global/elements.less
+++ b/styles/less/global/elements.less
@@ -293,20 +293,6 @@
}
}
- &.optional,
- &.one-column.optional {
- padding-top: 0;
- padding-bottom: 4px;
- min-height: auto;
- row-gap: 0;
-
- legend {
- display: flex;
- align-items: center;
- padding-left: 3px;
- }
- }
-
.list-w-img {
padding: 5px;
label {
@@ -347,15 +333,6 @@
legend {
font-weight: bold;
color: light-dark(@dark-blue, @golden);
-
- &.with-icon {
- display: flex;
- align-items: center;
-
- i {
- padding: 0 4px;
- }
- }
}
input[type='text'],
@@ -419,19 +396,11 @@
width: fit-content;
display: flex;
align-items: center;
-
.form-fields {
height: 32px;
align-content: center;
}
}
-
- &.select {
- width: fit-content;
- display: flex;
- align-items: center;
- gap: 4px;
- }
}
.scalable-input {
@@ -491,10 +460,6 @@
&.even {
grid-template-columns: 1fr 1fr;
}
-
- &.full-width {
- width: 100%;
- }
}
.three-columns {
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..506fb8b7 100644
--- a/styles/less/global/prose-mirror.less
+++ b/styles/less/global/prose-mirror.less
@@ -4,7 +4,6 @@
.application.daggerheart {
prose-mirror {
height: 100% !important;
- width: 100%;
.editor-menu {
background-color: transparent;
@@ -25,7 +24,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..1e7bad0a 100755
--- a/styles/less/global/sheet.less
+++ b/styles/less/global/sheet.less
@@ -14,7 +14,11 @@ body.game:is(.performance-low, .noblur) {
.themed.theme-dark .application.daggerheart.sheet.dh-style,
.themed.theme-dark.application.daggerheart.sheet.dh-style,
&.theme-dark .application.daggerheart {
- background: @dark-blue;
+ &.adversary,
+ &.character,
+ &.item {
+ background: @dark-blue;
+ }
}
}
@@ -36,7 +40,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..f0c7c94e 100644
--- a/styles/less/sheets-settings/character-settings/sheet.less
+++ b/styles/less/sheets-settings/character-settings/sheet.less
@@ -20,22 +20,15 @@
display: flex;
align-items: center;
justify-content: space-evenly;
- gap: 2px;
+ gap: 8px;
.trait-container {
- width: 65px;
- height: 65px;
+ width: 60px;
+ height: 60px;
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;
-
- span {
- font-size: var(--font-size-10);
- }
div {
filter: drop-shadow(0 0 3px black);
diff --git a/styles/less/sheets/actions/actions.less b/styles/less/sheets/actions/actions.less
index 485f8e91..5c21dc60 100644
--- a/styles/less/sheets/actions/actions.less
+++ b/styles/less/sheets/actions/actions.less
@@ -133,24 +133,4 @@
height: 300px;
}
}
-
- .deletable-row {
- display: flex;
- align-items: end;
- gap: 8px;
-
- input {
- flex: 1;
- }
-
- a {
- padding-bottom: 7px;
- }
- }
-
- .sub-section-header {
- display: flex;
- align-items: center;
- gap: 4px;
- }
}
diff --git a/styles/less/sheets/activeEffects/activeEffects.less b/styles/less/sheets/activeEffects/activeEffects.less
deleted file mode 100644
index e4f5c541..00000000
--- a/styles/less/sheets/activeEffects/activeEffects.less
+++ /dev/null
@@ -1,90 +0,0 @@
-.application.sheet.daggerheart.dh-style.active-effect-config {
- .custom-duration-section {
- width: 100%;
- display: flex;
- flex-direction: column;
- gap: 10px;
- overflow: hidden;
- height: 0;
- transition: height ease-in-out 0.3s;
-
- &.visible {
- height: auto;
- }
- }
-
- .duration-description {
- height: 0;
- overflow: hidden;
- transition: height ease-in-out 0.3s;
-
- &.visible {
- height: 100px;
- }
- }
-
- .tab.changes {
- gap: 0;
-
- header {
- div {
- text-align: center;
- }
- }
-
- .armor-change-container {
- header {
- padding: 0;
- left: -0.25rem; // TODO: Find why this header is offset 0.25rem to the right so this can be removed.
- }
-
- header,
- ol {
- grid-template-columns: 5rem 7rem 12rem 4rem;
- }
-
- .damage-thresholds-container {
- width: 100%;
- display: flex;
- flex-direction: column;
- gap: 4px;
-
- .damage-threshold-title {
- display: flex;
- align-items: center;
- justify-content: center;
- gap: 8px;
-
- &::before,
- &::after {
- content: '';
- flex: 1;
- height: 2px;
- }
-
- &::before {
- background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, light-dark(@dark-blue, @golden) 100%);
- }
-
- &::after {
- background: linear-gradient(90deg, light-dark(@dark-blue, @golden) 0%, rgba(0, 0, 0, 0) 100%);
- }
-
- span {
- font-size: var(--font-size-18);
- }
- }
-
- .form-group {
- flex-direction: column;
- gap: 0;
-
- label {
- color: inherit;
- line-height: 16px;
- }
- }
- }
- }
- }
-}
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..04baf2b9 100644
--- a/styles/less/sheets/actors/character/sidebar.less
+++ b/styles/less/sheets/actors/character/sidebar.less
@@ -276,23 +276,6 @@
}
}
- .slot-label {
- .slot-value-container {
- position: relative;
- display: flex;
- align-items: center;
- justify-content: center;
- width: 100%;
-
- i {
- position: absolute;
- right: 0;
- font-size: 12px;
- color: light-dark(@beige, @dark-blue);
- }
- }
- }
-
.status-value {
padding: 0 5px;
}
@@ -305,7 +288,6 @@
position: relative;
width: 95px;
height: 30px;
- white-space: nowrap;
.status-label {
padding: 2px 2px;
@@ -316,12 +298,6 @@
border-radius: 3px;
background: light-dark(@dark-blue, @golden);
clip-path: none;
- display: flex;
- align-items: center;
- justify-content: center;
- gap: 4px;
- border: 1px solid transparent;
- transition: all 0.3s ease;
h4 {
font-weight: bold;
@@ -330,21 +306,6 @@
color: light-dark(@beige, @dark-blue);
font-size: var(--font-size-12);
}
-
- i {
- font-size: 12px;
- color: light-dark(@beige, @dark-blue);
- }
-
- &:hover {
- background: light-dark(@light-black, @dark-blue);
- border: 1px solid light-dark(@dark-blue, @golden);
-
- h4,
- i {
- color: light-dark(@dark-blue, @golden);
- }
- }
}
.slot-value {
position: absolute;
@@ -394,19 +355,6 @@
font-size: var(--font-size-12);
flex-wrap: wrap;
justify-content: center;
- border: 1px solid transparent;
- transition: all 0.3s ease;
-
- &:hover {
- background: light-dark(@light-black, @dark-blue);
- border: 1px solid light-dark(@dark-blue, @golden);
-
- .label,
- .value,
- i {
- color: light-dark(@dark-blue, @golden);
- }
- }
.label {
padding-right: 1px;
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..a433ae34 100644
--- a/styles/less/sheets/actors/party/party-members.less
+++ b/styles/less/sheets/actors/party/party-members.less
@@ -1,294 +1,28 @@
@import '../../../utils/colors.less';
@import '../../../utils/fonts.less';
-@import '../../../utils/mixin.less';
-body.game:is(.performance-low, .noblur) {
- .application.sheet.daggerheart.actor.dh-style.party .tab.resources .actors-list .actor-resources {
- background: light-dark(@dark-blue, @dark-golden);
+.application.sheet.daggerheart.actor.dh-style.party {
+ .tab.partyMembers {
+ max-height: 400px;
+ overflow: auto;
- .actor-name {
- background: light-dark(@dark-blue, @dark-golden);
+ .actors-list {
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+ align-items: center;
+ width: 100%;
+ }
+ .actors-dragger {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ box-sizing: border-box;
+ width: 100%;
+ height: 40px;
+ border: 1px dashed light-dark(@dark-blue-50, @beige-50);
+ border-radius: 3px;
+ color: light-dark(@dark-blue-50, @beige-50);
}
}
}
-
-.application.sheet.daggerheart.actor.dh-style.party .tab.partyMembers {
- overflow: auto;
-
- .actors-list {
- display: flex;
- flex-direction: column;
- gap: 8px;
- align-items: stretch;
- width: 100%;
-
- .actor-resources {
- display: grid;
- grid-template:
- "img header" min-content
- "img body" 1fr
- / 7.5rem 1fr;
- gap: 6px;
- column-gap: 12px;
- padding: 6px;
- background-color: light-dark(@dark-blue-10, @golden-10);
-
- .actor-img-frame {
- grid-area: img;
- width: 7.375rem;
- height: 7.375rem;
- position: relative;
-
- .actor-img {
- object-fit: cover;
- object-position: top center;
- border-radius: 6px;
- width: 100%;
- height: 100%;
- }
-
- .equipped-weapons {
- position: absolute;
- top: -2px;
- left: -3px;
- display: flex;
- flex-direction: column;
- gap: 1px;
- img {
- border-radius: 50%;
- width: 24px;
- height: 24px;
- border: 1px solid light-dark(@dark-blue, @golden);
- object-fit: cover;
- }
- }
-
- .evasion {
- position: absolute;
- top: 1px;
- right: 1px;
- width: 1.75rem;
- 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;
- align-items: center;
- justify-content: center;
- }
-
- .threshold-section {
- position: absolute;
- left: 0;
- right: 0;
- bottom: -2px;
- margin: auto;
-
- display: flex;
- gap: 4px;
- background-color: light-dark(var(--color-light-1), @dark-blue);
- color: light-dark(@dark-blue, @golden);
- padding: 4px 6px;
- border: 1px solid light-dark(@dark-blue, @golden);
- border-radius: 3px;
- align-items: baseline;
- width: fit-content;
-
- h4 {
- font-weight: bold;
- text-transform: uppercase;
- white-space: nowrap;
-
- &.threshold-label {
- font-size: var(--font-size-10);
- color: light-dark(@dark-blue, @golden);
- }
-
- &.threshold-value {
- font-size: var(--font-size-11);
- color: light-dark(@dark, @beige);
- }
- }
- }
- }
-
- header {
- grid-area: header;
- display: grid;
- grid-template:
- "name hope" min-content
- "subtitle subtitle" min-content
- / 1fr min-content;
-
- .actor-name {
- width: 100%;
- z-index: 1;
- font-size: var(--font-size-20);
- color: light-dark(@dark-blue, @golden);
- font-weight: bold;
- }
-
- .delete-icon {
- font-size: 0.75em;
- }
-
- .subtitle {
- grid-area: subtitle;
- font-size: var(--font-size-14);
- }
-
- .hope-section {
- display: flex;
- background-color: light-dark(transparent, @dark-blue);
- color: light-dark(@dark-blue, @golden);
- padding: 3px 6px;
- border: 1px solid light-dark(@dark-blue, @golden);
- border-radius: 3px;
- align-items: center;
- width: fit-content;
- margin-left: auto;
-
- h4 {
- font-size: var(--font-size-12);
- font-weight: bold;
- text-transform: uppercase;
- color: light-dark(@dark-blue, @golden);
- margin-right: 3px;
- }
-
- .hope-value {
- display: flex;
- cursor: pointer;
- font-size: var(--font-size-12);
- margin-left: 1px;
- }
- }
- }
-
- .body {
- grid-area: body;
- display: flex;
- align-items: start;
- justify-content: space-between;
- }
-
- .resources {
- display: flex;
- flex-direction: column;
- gap: 4px;
-
- .slot-section {
- display: flex;
- flex-direction: row;
- align-items: stretch;
-
- .slot-label {
- display: flex;
- align-items: center;
- color: light-dark(@beige, @dark-blue);
- background: light-dark(@dark-blue, @golden);
- padding: 0 4px;
- width: fit-content;
- font-weight: bold;
- border-radius: 6px 0px 0px 6px;
- font-size: var(--font-size-12);
- white-space: nowrap;
-
- .label {
- padding-right: 2px;
- }
-
- .value {
- font-variant-numeric: tabular-nums;
- .current {
- display: inline-block;
- text-align: end;
- width: 2ch;
- }
- .max {
- display: inline-block;
- text-align: start;
- width: 2ch;
- }
- }
- }
-
- .slot-bar {
- display: flex;
- align-items: center;
- flex-wrap: wrap;
- gap: 4px;
-
- background-color: light-dark(@dark-blue-10, @dark-blue);
- color: light-dark(@dark-blue, @golden);
- padding: 2px 5px;
- border: 1px solid light-dark(@dark-blue, @golden);
- border-radius: 0 6px 6px 0;
- width: fit-content;
- min-height: 22px;
-
- .armor-slot {
- cursor: pointer;
- transition: all 0.3s ease;
- font-size: var(--font-size-12);
-
- .fa-shield-halved {
- color: light-dark(@dark-blue-40, @golden-40);
- }
- }
-
- .slot {
- width: 16px;
- height: 10px;
- border: 1px solid light-dark(@dark-blue, @golden);
- background: light-dark(@dark-blue-10, @golden-10);
- border-radius: 3px;
- transition: all 0.3s ease;
- cursor: pointer;
-
- &.filled {
- background: light-dark(@dark-blue, @golden);
- }
- }
- }
- }
- }
-
- .traits {
- background-color: light-dark(@dark-blue-10, @dark-blue);
- border: 1px solid light-dark(@dark-blue, @golden);
- border-radius: 6px;
- display: grid;
- grid-template-columns: 1fr 1fr;
- font-size: var(--font-size-12);
- padding: 3px 4px;
- gap: 3px 7px;
- .trait {
- display: flex;
- justify-content: space-between;
- gap: 3px;
- .label {
- color: light-dark(@dark-blue, @golden);
- }
- .value {
- font-weight: 600;
- }
- }
- }
- }
- }
-
- .actors-dragger {
- display: flex;
- align-items: center;
- justify-content: center;
- box-sizing: border-box;
- width: 100%;
- height: 40px;
- border: 1px dashed light-dark(@dark-blue-50, @beige-50);
- border-radius: 3px;
- color: light-dark(@dark-blue-50, @beige-50);
- }
-}
diff --git a/styles/less/sheets/actors/party/resources.less b/styles/less/sheets/actors/party/resources.less
new file mode 100644
index 00000000..4db254bf
--- /dev/null
+++ b/styles/less/sheets/actors/party/resources.less
@@ -0,0 +1,196 @@
+@import '../../../utils/colors.less';
+@import '../../../utils/fonts.less';
+@import '../../../utils/mixin.less';
+
+body.game:is(.performance-low, .noblur) {
+ .application.sheet.daggerheart.actor.dh-style.party .tab.resources .actors-list .actor-resources {
+ background: light-dark(@dark-blue, @dark-golden);
+
+ .actor-name {
+ background: light-dark(@dark-blue, @dark-golden);
+ }
+ }
+}
+
+.application.sheet.daggerheart.actor.dh-style.party {
+ .tab.resources {
+ overflow: auto;
+
+ .actors-list {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ gap: 10px;
+ align-items: center;
+ width: 100%;
+ justify-content: center;
+
+ .actor-resources {
+ display: flex;
+ flex-direction: column;
+ position: relative;
+ background: light-dark(@dark-blue-40, @dark-golden-40);
+ border-radius: 6px;
+ border: 1px solid light-dark(@dark-blue, @golden);
+ width: 230px;
+ height: -webkit-fill-available;
+
+ .actor-name {
+ position: absolute;
+ top: 0px;
+ background: light-dark(@dark-blue-90, @dark-golden-80);
+ backdrop-filter: blur(6.5px);
+ border-radius: 6px 6px 0px 0px;
+ text-align: center;
+ width: 100%;
+ z-index: 1;
+ font-size: var(--font-size-20);
+ color: light-dark(@beige, @golden);
+ font-weight: bold;
+ padding: 5px 0;
+ }
+
+ .actor-img {
+ height: 150px;
+ object-fit: cover;
+ object-position: top center;
+ border-radius: 6px 6px 0px 0px;
+ mask-image: linear-gradient(180deg, black 88%, transparent 100%);
+ }
+
+ .resources {
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+ align-items: center;
+ margin: 10px;
+
+ .slot-section {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+
+ .slot-bar {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 5px;
+ width: 239px;
+
+ background-color: light-dark(@dark-blue-10, @dark-blue);
+ color: light-dark(@dark-blue, @golden);
+ padding: 5px;
+ border: 1px solid light-dark(@dark-blue, @golden);
+ border-radius: 6px;
+ width: fit-content;
+
+ .armor-slot {
+ cursor: pointer;
+ transition: all 0.3s ease;
+ font-size: var(--font-size-12);
+
+ .fa-shield-halved {
+ color: light-dark(@dark-blue-40, @golden-40);
+ }
+ }
+
+ .slot {
+ width: 20px;
+ height: 10px;
+ border: 1px solid light-dark(@dark-blue, @golden);
+ background: light-dark(@dark-blue-10, @golden-10);
+ border-radius: 3px;
+ transition: all 0.3s ease;
+ cursor: pointer;
+
+ &.filled {
+ background: light-dark(@dark-blue, @golden);
+ }
+ }
+ }
+ .slot-label {
+ display: flex;
+ align-items: center;
+ color: light-dark(@beige, @dark-blue);
+ background: light-dark(@dark-blue, @golden);
+ padding: 0 5px;
+ width: fit-content;
+ font-weight: bold;
+ border-radius: 0px 0px 5px 5px;
+ font-size: var(--font-size-12);
+
+ .label {
+ padding-right: 5px;
+ }
+
+ .value {
+ padding-left: 6px;
+ border-left: 1px solid light-dark(@beige, @dark-golden);
+ }
+ }
+ }
+
+ .hope-section {
+ position: relative;
+ display: flex;
+ gap: 10px;
+ background-color: light-dark(transparent, @dark-blue);
+ color: light-dark(@dark-blue, @golden);
+ padding: 5px 10px;
+ border: 1px solid light-dark(@dark-blue, @golden);
+ border-radius: 3px;
+ align-items: center;
+ width: fit-content;
+
+ h4 {
+ font-size: var(--font-size-12);
+ font-weight: bold;
+ text-transform: uppercase;
+ color: light-dark(@dark-blue, @golden);
+ }
+
+ .hope-value {
+ display: flex;
+ cursor: pointer;
+ font-size: var(--font-size-12);
+ }
+ }
+
+ .threshold-section {
+ display: flex;
+ align-self: center;
+ gap: 10px;
+ background-color: light-dark(transparent, @dark-blue);
+ color: light-dark(@dark-blue, @golden);
+ padding: 5px 10px;
+ border: 1px solid light-dark(@dark-blue, @golden);
+ border-radius: 3px;
+ align-items: center;
+ width: fit-content;
+
+ h4 {
+ font-size: var(--font-size-12);
+ font-weight: bold;
+ text-transform: uppercase;
+ color: light-dark(@dark-blue, @golden);
+
+ &.threshold-value {
+ color: light-dark(@dark, @beige);
+ }
+ }
+ }
+ }
+ }
+ }
+ .actors-dragger {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ box-sizing: border-box;
+ width: 100%;
+ height: 40px;
+ border: 1px dashed light-dark(@dark-blue-50, @beige-50);
+ border-radius: 3px;
+ color: light-dark(@dark-blue-50, @beige-50);
+ }
+ }
+}
diff --git a/styles/less/sheets/actors/party/sheet.less b/styles/less/sheets/actors/party/sheet.less
index 6b51de53..2d1344e8 100644
--- a/styles/less/sheets/actors/party/sheet.less
+++ b/styles/less/sheets/actors/party/sheet.less
@@ -7,12 +7,8 @@
background-image: url('../assets/parchments/dh-parchment-dark.png');
}
}, {
- &.sheet.actor.dh-style.party {
+ &.party {
background: url('../assets/parchments/dh-parchment-light.png');
-
- .tab .actions-section .active-action {
- animation: glow-dark 0.75s infinite alternate;
- }
}
});
@@ -44,10 +40,6 @@
font-size: 12px;
}
}
-
- .active-action {
- animation: glow 0.75s infinite alternate;
- }
}
}
}
diff --git a/styles/less/sheets/index.less b/styles/less/sheets/index.less
index 7d595614..1bdb451a 100644
--- a/styles/less/sheets/index.less
+++ b/styles/less/sheets/index.less
@@ -31,6 +31,7 @@
@import './actors/party/party-members.less';
@import './actors/party/sheet.less';
@import './actors/party/inventory.less';
+@import './actors/party/resources.less';
@import './items/beastform.less';
@import './items/class.less';
@@ -41,5 +42,3 @@
@import './rollTables/sheet.less';
@import './actions/actions.less';
-
-@import './activeEffects/activeEffects.less';
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..e9ef9147 100644
--- a/styles/less/ui/chat/chat.less
+++ b/styles/less/ui/chat/chat.less
@@ -384,15 +384,6 @@
justify-content: center;
width: 15px;
}
- &.has-minus:before {
- content: '-';
- font-size: var(--font-size-20);
- grid-area: c;
- display: flex;
- align-items: center;
- justify-content: center;
- width: 15px;
- }
}
}
@@ -624,14 +615,9 @@
display: flex;
gap: 5px;
margin-top: 8px;
-
button {
height: 32px;
flex: 1;
-
- &.end-button {
- flex: 0;
- }
}
}
@@ -703,11 +689,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/styles/less/ui/effects-display/sheet.less b/styles/less/ui/effects-display/sheet.less
index 17d9889f..1331b094 100644
--- a/styles/less/ui/effects-display/sheet.less
+++ b/styles/less/ui/effects-display/sheet.less
@@ -35,21 +35,6 @@
color: @golden;
filter: drop-shadow(0 0 3px black);
}
-
- .stacking-value {
- position: absolute;
- top: 4px;
- right: 4px;
- font-size: 16px;
- font-weight: bold;
- font-variant-numeric: tabular-nums;
- color: @golden;
- background: black;
- padding: 1px;
- border-radius: 6px;
- border: 1px solid @golden;
- pointer-events: none;
- }
}
}
}
diff --git a/styles/less/ui/scene-config/scene-config.less b/styles/less/ui/scene-config/scene-config.less
index ba1afb0b..664e7526 100644
--- a/styles/less/ui/scene-config/scene-config.less
+++ b/styles/less/ui/scene-config/scene-config.less
@@ -13,8 +13,6 @@
.application.sheet.scene-config {
.sheet-tabs.tabs {
- font-size: 12px;
-
a[data-tab='dh'] {
display: flex;
align-items: center;
diff --git a/styles/less/ui/settings/appearance-settings/diceSoNice.less b/styles/less/ui/settings/appearance-settings/diceSoNice.less
index a4846596..079bebc5 100644
--- a/styles/less/ui/settings/appearance-settings/diceSoNice.less
+++ b/styles/less/ui/settings/appearance-settings/diceSoNice.less
@@ -68,29 +68,5 @@
text-align: center;
white-space: nowrap;
}
-
- color-picker {
- gap: 4px;
- background: inherit;
- }
- }
-
- .animation-container {
- display: flex;
- align-items: center;
- justify-content: space-between;
-
- .animation-inner-container {
- display: flex;
- align-items: center;
- justify-content: right;
- gap: 8px;
-
- .animation-control {
- display: flex;
- align-items: center;
- gap: 2px;
- }
- }
}
}
diff --git a/styles/less/ui/sidebar/daggerheartMenu.less b/styles/less/ui/sidebar/daggerheartMenu.less
index 88b139c5..677214d7 100644
--- a/styles/less/ui/sidebar/daggerheartMenu.less
+++ b/styles/less/ui/sidebar/daggerheartMenu.less
@@ -15,17 +15,17 @@
font-weight: bold;
}
- .menu-options-container {
+ .menu-refresh-container {
display: flex;
flex-direction: column;
gap: 8px;
- .menu-options-inner-container {
+ .menu-refresh-inner-container {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
- .option-chip {
+ .experience-chip {
display: flex;
align-items: center;
border-radius: 5px;
diff --git a/styles/less/ux/index.less b/styles/less/ux/index.less
index a73f2d1c..c6c40f78 100644
--- a/styles/less/ux/index.less
+++ b/styles/less/ux/index.less
@@ -1,6 +1,4 @@
-@import './tooltip/sheet.less';
@import './tooltip/tooltip.less';
-@import './tooltip/armorManagement.less';
@import './tooltip/battlepoints.less';
@import './tooltip/bordered-tooltip.less';
@import './tooltip/domain-cards.less';
diff --git a/styles/less/ux/tooltip/armorManagement.less b/styles/less/ux/tooltip/armorManagement.less
deleted file mode 100644
index e1ac6bb9..00000000
--- a/styles/less/ux/tooltip/armorManagement.less
+++ /dev/null
@@ -1,141 +0,0 @@
-@import '../../utils/fonts.less';
-@import '../../utils/colors.less';
-
-.bordered-tooltip.locked-tooltip .daggerheart.armor-management-container {
- display: flex;
- flex-direction: column;
- gap: 10px;
- padding-bottom: 10px;
-
- h3 {
- font-family: @font-subtitle;
- margin: 0;
- border: none;
- font-weight: normal;
- font-size: var(--font-size-20);
- }
-
- .armor-source-container {
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 4px;
-
- .armor-source-label {
- font-family: @font-body;
- margin: 0;
- }
-
- .status-bar {
- display: flex;
- justify-content: center;
- position: relative;
- width: 100%;
- height: 30px;
-
- .status-value {
- position: absolute;
- display: flex;
- padding: 0 5px;
- font-size: 1rem;
- align-items: center;
- width: 100%;
- height: 30px;
- justify-content: center;
- text-align: center;
- z-index: 2;
- color: @beige;
-
- input[type='number'] {
- background: transparent;
- font-size: 1.2rem;
- width: 30px;
- text-align: center;
- border: none;
- outline: 2px solid transparent;
- color: @beige;
- font-family: @font-body;
-
- &.bar-input {
- padding: 0;
- color: @beige;
- backdrop-filter: none;
- background: transparent;
- transition: all 0.3s ease;
- height: 25px;
-
- &:hover,
- &:focus {
- background: @semi-transparent-dark-blue;
- backdrop-filter: blur(9.5px);
- }
- }
- }
-
- .bar-label {
- font-family: @font-body;
- width: 40px;
- font-size: 1.2rem;
- }
- }
- .progress-bar {
- position: absolute;
- appearance: none;
- width: 100%;
- height: 30px;
- border: 1px solid light-dark(@dark-blue, @golden);
- border-radius: 6px;
- z-index: 1;
- background: @dark-blue;
-
- &::-webkit-progress-bar {
- border: none;
- background: @dark-blue;
- border-radius: 6px;
- }
- &::-webkit-progress-value {
- background: @gradient-hp;
- border-radius: 6px;
- }
- &.stress-color::-webkit-progress-value {
- background: @gradient-stress;
- border-radius: 6px;
- }
- &::-moz-progress-bar {
- background: @gradient-hp;
- border-radius: 6px;
- }
- &.stress-color::-moz-progress-bar {
- background: @gradient-stress;
- border-radius: 6px;
- }
- }
- }
- }
-
- .slot-bar {
- display: flex;
- flex-wrap: wrap;
- gap: 4px;
- padding: 5px;
- border: 1px solid light-dark(@dark-blue, @golden);
- border-radius: 6px;
- z-index: 1;
- background: @dark-blue;
- align-items: center;
- justify-content: center;
- color: light-dark(@dark-blue, @golden);
- min-height: 30px;
- width: 100%;
-
- .armor-slot {
- cursor: pointer;
- transition: all 0.3s ease;
- font-size: var(--font-size-12);
-
- .fa-shield-halved {
- color: light-dark(@dark-blue-40, @golden-40);
- }
- }
- }
-}
diff --git a/styles/less/ux/tooltip/bordered-tooltip.less b/styles/less/ux/tooltip/bordered-tooltip.less
index d72f635e..78622377 100644
--- a/styles/less/ux/tooltip/bordered-tooltip.less
+++ b/styles/less/ux/tooltip/bordered-tooltip.less
@@ -6,7 +6,6 @@
.daggerheart.dh-style.tooltip {
display: flex;
flex-direction: column;
- align-items: start;
text-align: start;
width: 100%;
gap: 5px;
@@ -14,11 +13,10 @@
border-radius: 3px;
.tooltip-header {
- width: 100%;
display: flex;
flex-direction: column;
align-items: center;
- text-align: center;
+ text-align: start;
padding: 5px;
gap: 0px;
@@ -37,80 +35,12 @@
}
}
- .effect-stacks-outer-container {
- display: flex;
- flex-direction: column;
- gap: 4px;
- width: 100%;
-
- .effect-stacks-title {
- font-size: var(--font-size-20);
- font-weight: bold;
- text-align: center;
- }
-
- .effect-stacks-container {
- display: flex;
- justify-content: space-between;
-
- .effect-stacks-inner-container {
- display: flex;
- flex-direction: column;
- gap: 2px;
-
- .effect-stack-title {
- font-weight: bold;
- }
- }
- }
- }
-
- .close-hints {
- margin-top: 0.5rem;
- display: flex;
- flex-direction: column;
- gap: 4px;
-
- .close-hint {
- border-radius: 3px;
- padding: 3px;
- background: @rustic-brown-80;
- color: @golden;
- font-size: 12px;
- margin: 0;
- }
- }
-
- .duration-container {
- display: flex;
- flex-direction: column;
- text-align: center;
- margin-top: 0.5rem;
- width: 100%;
-
- &::before,
- &::after {
- content: '';
- background: var(--golden, #f3c267);
- mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%);
- height: 2px;
- width: calc(100% - 10px);
- }
-
- &::before {
- margin-bottom: 8px;
- }
-
- &::after {
- margin-top: 8px;
- }
-
- .duration-inner-container {
- display: flex;
- justify-content: center;
- gap: 2px;
- width: 100%;
- }
+ .close-hint {
+ border-radius: 3px;
+ padding: 3px;
+ background: @rustic-brown-80;
+ color: @golden;
+ font-size: 12px;
}
}
}
diff --git a/styles/less/ux/tooltip/sheet.less b/styles/less/ux/tooltip/sheet.less
deleted file mode 100644
index 59e4e638..00000000
--- a/styles/less/ux/tooltip/sheet.less
+++ /dev/null
@@ -1,129 +0,0 @@
-#tooltip:has(div.daggerheart.dh-style.tooltip.card-style),
-aside[role='tooltip']:has(div.daggerheart.dh-style.tooltip),
-#tooltip.bordered-tooltip {
- .tooltip-title {
- font-size: var(--font-size-20);
- color: light-dark(@dark-blue, @golden);
- font-weight: 700;
- }
-
- .tooltip-description {
- font-style: inherit;
- text-align: inherit;
- width: 100%;
- padding: 5px 10px;
- position: relative;
- margin-top: 5px;
-
- &::before {
- content: '';
- background: @golden;
- mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%);
- height: 2px;
- width: calc(100% - 10px);
- }
-
- &::before {
- position: absolute;
- top: -5px;
- }
- }
-
- .tooltip-separator {
- background: @golden;
- mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%);
- height: 2px;
- width: calc(100% - 10px);
- margin-bottom: 2px;
- }
-
- .tooltip-tags {
- display: flex;
- flex-direction: column;
- gap: 10px;
- width: 100%;
- padding: 5px 10px;
- position: relative;
- max-height: 150px;
- overflow-y: auto;
- position: relative;
-
- scrollbar-width: thin;
- scrollbar-color: light-dark(@dark-blue, @golden) transparent;
-
- .tooltip-tag {
- display: flex;
- gap: 10px;
- flex-direction: column;
-
- .tooltip-tag-label-container {
- display: flex;
- align-items: center;
- gap: 5px;
-
- img {
- width: 40px;
- height: 40px;
- border-radius: 3px;
- }
- }
- }
- }
-
- .tags {
- display: flex;
- gap: 5px 10px;
- padding-bottom: 16px;
- flex-wrap: wrap;
- justify-content: center;
-
- &.advantages {
- width: 100%;
- padding: 5px 10px;
- padding-bottom: 16px;
- position: relative;
- margin-top: 5px;
-
- &::before {
- content: '';
- background: @golden;
- mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%);
- height: 2px;
- width: calc(100% - 10px);
- }
-
- &::before {
- position: absolute;
- top: -5px;
- }
-
- .tag {
- background: @green-10;
- color: @green;
- border-color: @green;
- }
- }
-
- .tag {
- display: flex;
- flex-direction: row;
- justify-content: center;
- align-items: center;
- padding: 3px 5px;
- font-size: var(--font-size-12);
- font: @font-body;
-
- background: light-dark(@dark-15, @beige-15);
- border: 1px solid light-dark(@dark, @beige);
- border-radius: 3px;
- }
-
- .label {
- display: flex;
- flex-direction: row;
- justify-content: center;
- align-items: center;
- font-size: var(--font-size-12);
- }
- }
-}
diff --git a/styles/less/ux/tooltip/tooltip.less b/styles/less/ux/tooltip/tooltip.less
index 1566059f..8e6f638d 100644
--- a/styles/less/ux/tooltip/tooltip.less
+++ b/styles/less/ux/tooltip/tooltip.less
@@ -13,6 +13,13 @@ aside[role='tooltip']:has(div.daggerheart.dh-style.tooltip.card-style) {
outline: 1px solid light-dark(@dark-80, @beige-80);
box-shadow: 0 0 25px rgba(0, 0, 0, 0.8);
+ .tooltip-title {
+ font-size: var(--font-size-20);
+ color: light-dark(@dark-blue, @golden);
+ font-weight: 700;
+ margin-bottom: 5px;
+ }
+
.tooltip-subtitle {
margin: 0;
}
@@ -46,13 +53,20 @@ aside[role='tooltip']:has(div.daggerheart.dh-style.tooltip.card-style) {
}
}
- .tooltip-duration {
- font-style: italic;
- text-align: start;
- position: relative;
+ .tooltip-tags {
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
width: 100%;
padding: 5px 10px;
- margin: 5px 0px;
+ position: relative;
+ padding-top: 10px;
+ max-height: 150px;
+ overflow-y: auto;
+ position: relative;
+
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
&::before {
content: '';
@@ -60,16 +74,86 @@ aside[role='tooltip']:has(div.daggerheart.dh-style.tooltip.card-style) {
mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%);
height: 2px;
width: calc(100% - 10px);
- position: absolute;
- top: -5px;
- font-size: 14px;
}
- .duration-inner-container {
+ &::before {
+ position: absolute;
+ top: 0px;
+ }
+
+ .tooltip-tag {
display: flex;
- justify-content: center;
- gap: 2px;
+ gap: 10px;
+ flex-direction: column;
+
+ .tooltip-tag-label-container {
+ display: flex;
+ align-items: center;
+ gap: 5px;
+
+ img {
+ width: 40px;
+ height: 40px;
+ border-radius: 3px;
+ }
+ }
+ }
+ }
+
+ .tags {
+ display: flex;
+ gap: 5px 10px;
+ padding-bottom: 16px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ &.advantages {
width: 100%;
+ padding: 5px 10px;
+ padding-bottom: 16px;
+ position: relative;
+ margin-top: 5px;
+
+ &::before {
+ content: '';
+ background: @golden;
+ mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%);
+ height: 2px;
+ width: calc(100% - 10px);
+ }
+
+ &::before {
+ position: absolute;
+ top: -5px;
+ }
+
+ .tag {
+ background: @green-10;
+ color: @green;
+ border-color: @green;
+ }
+ }
+
+ .tag {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ padding: 3px 5px;
+ font-size: var(--font-size-12);
+ font: @font-body;
+
+ background: light-dark(@dark-15, @beige-15);
+ border: 1px solid light-dark(@dark, @beige);
+ border-radius: 3px;
+ }
+
+ .label {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ font-size: var(--font-size-12);
}
}
diff --git a/system.json b/system.json
index babdde26..4bd0f863 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": "1.9.2",
"compatibility": {
- "minimum": "14.359",
- "verified": "14.360",
- "maximum": "14"
+ "minimum": "13.346",
+ "verified": "13.351",
+ "maximum": "13"
},
- "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"
@@ -293,10 +290,14 @@
"damageRoll": {},
"abilityUse": {},
"tagTeam": {},
+ "groupRoll": {},
"systemMessage": {}
}
},
"background": "systems/daggerheart/assets/logos/FoundrybornBackgroundLogo.png",
"primaryTokenAttribute": "resources.hitPoints",
- "secondaryTokenAttribute": "resources.stress"
+ "secondaryTokenAttribute": "resources.stress",
+ "url": "https://your/hosted/system/repo/",
+ "manifest": "https://your/hosted/system/repo/system.json",
+ "download": "https://your/packaged/download/archive.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/beastform.hbs b/templates/actionTypes/beastform.hbs
index 885038a1..b9bea445 100644
--- a/templates/actionTypes/beastform.hbs
+++ b/templates/actionTypes/beastform.hbs
@@ -1,16 +1,4 @@
-{{formGroup fields.tierAccess.fields.exact value=source.tierAccess.exact name="beastform.tierAccess.exact" labelAttr="label" valueAttr="key" localize=true blank=""}}
-
\ No newline at end of file
diff --git a/templates/actionTypes/damage.hbs b/templates/actionTypes/damage.hbs
index 454d0413..96bb361c 100644
--- a/templates/actionTypes/damage.hbs
+++ b/templates/actionTypes/damage.hbs
@@ -1,96 +1,90 @@
- {{> 'systems/daggerheart/templates/actionTypes/damage.hbs' fields=systemFields.attack.fields.damage.fields.parts.element.fields source=document.system.attack.damage path="system.attack." baseFields=systemFields.attack.fields.damage.fields}}
+ {{> 'systems/daggerheart/templates/actionTypes/damage.hbs' fields=systemFields.attack.fields.damage.fields.parts.element.fields source=document.system.attack.damage path="system.attack." directField=systemFields.attack.fields.damage.fields.direct}}
\ No newline at end of file
diff --git a/templates/sheets/activeEffect/change.hbs b/templates/sheets/activeEffect/change.hbs
deleted file mode 100644
index d7d396e4..00000000
--- a/templates/sheets/activeEffect/change.hbs
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
- {{formInput fields.value name=change.valuePath value=change.value elementType="input"}}
-
-
- {{formInput fields.priority name=change.priorityPath value=change.priority placeholder=defaultPriority}}
-
-
-
diff --git a/templates/sheets/activeEffect/changes.hbs b/templates/sheets/activeEffect/changes.hbs
index 37feb845..75f49e4a 100644
--- a/templates/sheets/activeEffect/changes.hbs
+++ b/templates/sheets/activeEffect/changes.hbs
@@ -1,27 +1,31 @@
- {{localize "EFFECT.FIELDS.changes.element.key.label"}}
- {{localize "EFFECT.FIELDS.changes.element.type.label"}}
- {{localize "EFFECT.FIELDS.changes.element.value.label"}}
- {{localize "EFFECT.FIELDS.changes.element.priority.label"}}
-
+ {{localize "EFFECT.ChangeKey"}}
+ {{localize "EFFECT.ChangeMode"}}
+ {{localize "EFFECT.ChangeValue"}}
+ {{localize "EFFECT.ChangePriority"}}
+
- {{#each changes as |change|}}
- {{{change}}}
+ {{#each source.changes as |change i|}}
+ {{#with ../fields.changes.element.fields as |changeFields|}}
+ -
+
+
+
+
+ {{formInput changeFields.mode name=(concat "changes." i ".mode") value=change.mode choices=@root.modes}}
+
+
+ {{formInput changeFields.value name=(concat "changes." i ".value") value=change.value}}
+
+
+ {{formInput changeFields.priority name=(concat "changes." i ".priority") value=change.priority
+ placeholder=(lookup ../../priorities change.mode)}}
+
+
+
+ {{/with}}
{{/each}}
-
-
-
-
- {{#if typedChanges.armor}}
- {{> "systems/daggerheart/templates/sheets/activeEffect/typeChanges/armorChange.hbs" typedChanges.armor fields=@root.systemFields.changes.element.types.armor.fields}}
- {{/if}}
-
-
+
\ No newline at end of file
diff --git a/templates/sheets/activeEffect/details.hbs b/templates/sheets/activeEffect/details.hbs
index dc19b3dc..22c95a1e 100644
--- a/templates/sheets/activeEffect/details.hbs
+++ b/templates/sheets/activeEffect/details.hbs
@@ -2,15 +2,9 @@
{{formGroup fields.tint value=source.tint rootId=rootId placeholder="#ffffff"}}
{{formGroup fields.description value=source.description rootId=rootId}}
{{formGroup fields.disabled value=source.disabled rootId=rootId}}
- {{formGroup systemFields.targetDispositions value=source.system.targetDispositions name=(concat "system.targetDispositions") localize=true}}
{{#if isActorEffect}}
-
+ {{formGroup fields.origin value=source.origin rootId=rootId disabled=true}}
{{/if}}
{{#if isItemEffect}}
@@ -18,5 +12,4 @@
{{/if}}
{{formGroup fields.statuses value=source.statuses options=statuses rootId=rootId classes="statuses"}}
- {{formGroup fields.showIcon value=source.showIcon options=showIconOptions rootId=rootId}}
-
\ No newline at end of file
+
diff --git a/templates/sheets/activeEffect/settings.hbs b/templates/sheets/activeEffect/settings.hbs
index 09b78856..cf98c786 100644
--- a/templates/sheets/activeEffect/settings.hbs
+++ b/templates/sheets/activeEffect/settings.hbs
@@ -1,18 +1,4 @@
\ No newline at end of file
diff --git a/templates/sheets/actors/character/features.hbs b/templates/sheets/actors/character/features.hbs
index 70544683..3e942468 100644
--- a/templates/sheets/actors/character/features.hbs
+++ b/templates/sheets/actors/character/features.hbs
@@ -8,8 +8,8 @@
type='feature'
actorType='character'
collection=category.values
- canCreate=@root.editable
- showActions=@root.editable
+ canCreate=true
+ showActions=true
}}
{{else if category.values}}
{{> 'daggerheart.inventory-items'
@@ -18,7 +18,7 @@
actorType='character'
collection=category.values
canCreate=false
- showActions=@root.editable
+ showActions=true
}}
{{/if}}
diff --git a/templates/sheets/actors/character/header.hbs b/templates/sheets/actors/character/header.hbs
index a75b2c2f..06f464fa 100644
--- a/templates/sheets/actors/character/header.hbs
+++ b/templates/sheets/actors/character/header.hbs
@@ -4,29 +4,17 @@
- {{#if @root.editable}}
- {{#if document.system.needsCharacterSetup}}
-
- {{else if document.system.levelData.canLevelUp}}
-
- {{/if}}
+ {{#if (or document.system.needsCharacterSetup document.system.levelData.canLevelUp)}}
+
{{/if}}
- {{#unless document.system.needsCharacterSetup}}
- {{localize 'DAGGERHEART.GENERAL.level'}}
-
- {{/unless}}
+ {{localize 'DAGGERHEART.GENERAL.level'}}
+
@@ -112,14 +100,12 @@
{{/if}}
- {{#if @root.editable}}
-
-
- {{/if}}
+
+
diff --git a/templates/sheets/actors/character/inventory.hbs b/templates/sheets/actors/character/inventory.hbs
index c3ddb0ad..a05fed35 100644
--- a/templates/sheets/actors/character/inventory.hbs
+++ b/templates/sheets/actors/character/inventory.hbs
@@ -5,7 +5,7 @@
-
+
@@ -13,7 +13,18 @@
{{#if this.inventory.hasCurrency}}
- {{> "systems/daggerheart/templates/sheets/global/partials/gold.hbs" currencies=inventory.currencies}}
+
+ {{#each this.inventory.currencies as |currency key|}}
+ {{#if currency.enabled}}
+
+
+ {{localize currency.label}}
+
+
+
+ {{/if}}
+ {{/each}}
+
{{/if}}
@@ -22,7 +33,7 @@
type='weapon'
collection=@root.inventory.weapons
isGlassy=true
- canCreate=@root.editable
+ canCreate=true
hideResources=true
}}
{{> 'daggerheart.inventory-items'
@@ -30,7 +41,7 @@
type='armor'
collection=@root.inventory.armor
isGlassy=true
- canCreate=@root.editable
+ canCreate=true
hideResources=true
}}
{{> 'daggerheart.inventory-items'
@@ -38,17 +49,15 @@
type='consumable'
collection=@root.inventory.consumables
isGlassy=true
- canCreate=@root.editable
- isQuantifiable=true
+ canCreate=true
}}
{{> 'daggerheart.inventory-items'
title='TYPES.Item.loot'
type='loot'
collection=@root.inventory.loot
isGlassy=true
- canCreate=@root.editable
- showActions=@root.editable
- isQuantifiable=true
+ canCreate=true
+ showActions=true
}}
\ No newline at end of file
diff --git a/templates/sheets/actors/character/loadout.hbs b/templates/sheets/actors/character/loadout.hbs
index 9ba3fb04..0319d56f 100644
--- a/templates/sheets/actors/character/loadout.hbs
+++ b/templates/sheets/actors/character/loadout.hbs
@@ -5,7 +5,7 @@
-
+
@@ -27,7 +27,7 @@
isGlassy=true
cardView=cardView
collection=document.system.domainCards.loadout
- canCreate=@root.editable
+ canCreate=true
}}
{{> 'daggerheart.inventory-items'
title='DAGGERHEART.GENERAL.Tabs.vault'
@@ -35,7 +35,7 @@
isGlassy=true
cardView=cardView
collection=document.system.domainCards.vault
- canCreate=@root.editable
+ canCreate=true
inVault=true
}}
diff --git a/templates/sheets/actors/character/sidebar.hbs b/templates/sheets/actors/character/sidebar.hbs
index 0142ac1d..b2757b55 100644
--- a/templates/sheets/actors/character/sidebar.hbs
+++ b/templates/sheets/actors/character/sidebar.hbs
@@ -30,14 +30,14 @@
- {{#if document.system.armorScore.max}}
+ {{#if document.system.armor.system.marks}}
{{else}}
diff --git a/templates/sheets/actors/companion/effects.hbs b/templates/sheets/actors/companion/effects.hbs
index 087e8b30..cefb6e57 100644
--- a/templates/sheets/actors/companion/effects.hbs
+++ b/templates/sheets/actors/companion/effects.hbs
@@ -6,7 +6,7 @@
type='effect'
isGlassy=true
collection=effects.actives
- canCreate=@root.editable
+ canCreate=true
hideResources=true
}}
@@ -15,7 +15,7 @@
type='effect'
isGlassy=true
collection=effects.inactives
- canCreate=@root.editable
+ canCreate=true
hideResources=true
}}
diff --git a/templates/sheets/actors/environment/features.hbs b/templates/sheets/actors/environment/features.hbs
index 3fd512da..3ad36023 100644
--- a/templates/sheets/actors/environment/features.hbs
+++ b/templates/sheets/actors/environment/features.hbs
@@ -9,8 +9,8 @@
type='feature'
collection=@root.features
hideContextMenu=true
- canCreate=@root.editable
- showActions=@root.editable
+ canCreate=true
+ showActions=true
}}
\ No newline at end of file
diff --git a/templates/sheets/actors/party/header.hbs b/templates/sheets/actors/party/header.hbs
index 3fdb137d..f39f683f 100644
--- a/templates/sheets/actors/party/header.hbs
+++ b/templates/sheets/actors/party/header.hbs
@@ -3,6 +3,7 @@
\ No newline at end of file
diff --git a/templates/sheets/actors/party/inventory.hbs b/templates/sheets/actors/party/inventory.hbs
index cf056608..92371b8d 100644
--- a/templates/sheets/actors/party/inventory.hbs
+++ b/templates/sheets/actors/party/inventory.hbs
@@ -5,7 +5,7 @@
-
+
@@ -16,7 +16,18 @@
{{#if inventory.hasCurrency}}
- {{> "systems/daggerheart/templates/sheets/global/partials/gold.hbs" currencies=inventory.currencies}}
+
+ {{#each this.inventory.currencies as |currency key|}}
+ {{#if currency.enabled}}
+
+
+ {{localize currency.label}}
+
+
+
+ {{/if}}
+ {{/each}}
+
{{/if}}
@@ -26,10 +37,9 @@
actorType='party'
collection=@root.inventory.weapons
isGlassy=true
- canCreate=@root.editable
+ canCreate=true
hideResources=true
hideContextMenu=true
- isQuantifiable=true
}}
{{> 'daggerheart.inventory-items'
title='TYPES.Item.armor'
@@ -37,10 +47,9 @@
actorType='party'
collection=@root.inventory.armor
isGlassy=true
- canCreate=@root.editable
+ canCreate=true
hideResources=true
hideContextMenu=true
- isQuantifiable=true
}}
{{> 'daggerheart.inventory-items'
title='TYPES.Item.consumable'
@@ -48,9 +57,8 @@
actorType='party'
collection=@root.inventory.consumables
isGlassy=true
- canCreate=@root.editable
+ canCreate=true
hideContextMenu=true
- isQuantifiable=true
}}
{{> 'daggerheart.inventory-items'
title='TYPES.Item.loot'
@@ -58,9 +66,8 @@
actorType='party'
collection=@root.inventory.loot
isGlassy=true
- canCreate=@root.editable
+ canCreate=true
hideContextMenu=true
- isQuantifiable=true
}}
\ No newline at end of file
diff --git a/templates/sheets/actors/party/party-members.hbs b/templates/sheets/actors/party/party-members.hbs
index aa41aeaa..b5903cfc 100644
--- a/templates/sheets/actors/party/party-members.hbs
+++ b/templates/sheets/actors/party/party-members.hbs
@@ -5,164 +5,37 @@
>
-
-
- {{#each partyMembers as |member id|}}
- -
-
-

- {{#if member.weapons}}
-
- {{#each member.weapons as |weapon|}}
-

- {{/each}}
-
- {{/if}}
- {{#if member.evasion includeZero=true}}
-
{{member.evasion}}
- {{/if}}
- {{#if member.difficulty includeZero=true}}
-
{{member.difficulty}}
- {{/if}}
- {{#unless (eq member.type 'companion')}}
-
-
{{localize "DAGGERHEART.ACTORS.Party.Thresholds.minor"}}
- {{member.damageThresholds.major}}
- {{localize "DAGGERHEART.ACTORS.Party.Thresholds.major"}}
- {{member.damageThresholds.severe}}
- {{localize "DAGGERHEART.ACTORS.Party.Thresholds.severe"}}
-
- {{/unless}}
-
-
-
-
- {{#unless (eq member.type 'companion') }}
-
-
-
-
-
-
- {{member.resources.hitPoints.value}}
- /
- {{member.resources.hitPoints.max}}
-
-
-
- {{#times member.resources.hitPoints.max}}
-
-
- {{/times}}
-
-
- {{/unless}}
-
-
-
-
-
-
-
- {{member.resources.stress.value}}
- /
- {{member.resources.stress.max}}
-
-
-
- {{#times member.resources.stress.max}}
-
-
- {{/times}}
-
-
-
- {{#if member.armorScore.max}}
-
-
-
-
-
-
- {{member.armorScore.value}}
- /
- {{member.armorScore.max}}
-
-
-
-
- {{/if}}
-
- {{#if member.traits}}
-
- {{#each member.traits as |trait|}}
-
- {{trait.label}}
- {{trait.value}}
-
- {{/each}}
-
- {{/if}}
-
-
- {{/each}}
-
- {{#unless document.system.partyMembers.length}}
-
- {{localize "DAGGERHEART.GENERAL.dropActorsHere"}}
-
- {{/unless}}
-
+
+
+
+ {{#each document.system.partyMembers as |actor id|}}
+ {{> 'daggerheart.inventory-item'
+ item=actor
+ type='character'
+ isActor=true
+ hideContextMenu=true
+ }}
+ {{/each}}
+
+ {{#unless document.system.partyMembers.length}}
+
+ {{localize "DAGGERHEART.GENERAL.dropActorsHere"}}
+
+ {{/unless}}
+
+
\ No newline at end of file
diff --git a/templates/sheets/actors/party/resources.hbs b/templates/sheets/actors/party/resources.hbs
new file mode 100644
index 00000000..74f94806
--- /dev/null
+++ b/templates/sheets/actors/party/resources.hbs
@@ -0,0 +1,105 @@
+
+
+
+
+ {{localize "DAGGERHEART.APPLICATIONS.Downtime.longRest.title"}}
+
+
+
+ {{localize "DAGGERHEART.APPLICATIONS.Downtime.shortRest.title"}}
+
+
+
+
+
+
+ {{#each document.system.partyMembers as |actor id|}}
+ -
+
{{actor.name}}
+
+
+ {{#unless (eq actor.type 'companion') }}
+
+
+ {{#times actor.system.resources.hitPoints.max}}
+
+
+ {{/times}}
+
+
+ {{localize "DAGGERHEART.GENERAL.HitPoints.short"}}
+ {{actor.system.resources.hitPoints.value}} / {{actor.system.resources.hitPoints.max}}
+
+
+ {{/unless}}
+
+
+
+ {{#times actor.system.resources.stress.max}}
+
+
+ {{/times}}
+
+
+ {{localize "DAGGERHEART.GENERAL.stress"}}
+ {{actor.system.resources.stress.value}} / {{actor.system.resources.stress.max}}
+
+
+
+ {{#if actor.system.armor.system.marks}}
+
+
+
+ {{localize "DAGGERHEART.GENERAL.armorSlots"}}
+ {{actor.system.armor.system.marks.value}} / {{actor.system.armorScore}}
+
+
+ {{/if}}
+
+ {{#unless (or (eq actor.type 'companion') (eq actor.type 'adversary')) }}
+
+
{{localize "DAGGERHEART.GENERAL.hope"}}
+ {{#times actor.system.resources.hope.max}}
+
+ {{#if (gte actor.system.resources.hope.value (add this 1))}}
+
+ {{else}}
+
+ {{/if}}
+
+ {{/times}}
+
+ {{/unless}}
+
+ {{#unless (eq actor.type 'companion')}}
+
+
{{localize "DAGGERHEART.GENERAL.DamageThresholds.minor"}}
+ {{actor.system.damageThresholds.major}}
+ {{localize "DAGGERHEART.GENERAL.DamageThresholds.major"}}
+ {{actor.system.damageThresholds.severe}}
+ {{localize "DAGGERHEART.GENERAL.DamageThresholds.severe"}}
+
+ {{/unless}}
+
+
+ {{/each}}
+
+
+
\ No newline at end of file
diff --git a/templates/sheets/global/partials/gold.hbs b/templates/sheets/global/partials/gold.hbs
deleted file mode 100644
index 7aba2815..00000000
--- a/templates/sheets/global/partials/gold.hbs
+++ /dev/null
@@ -1,12 +0,0 @@
-
- {{#each currencies as |currency key|}}
- {{#if currency.enabled}}
-
-
- {{localize currency.label}}
-
-
-
- {{/if}}
- {{/each}}
-
\ No newline at end of file
diff --git a/templates/sheets/global/partials/inventory-fieldset-items-V2.hbs b/templates/sheets/global/partials/inventory-fieldset-items-V2.hbs
index 3f58b80b..31c8f7f5 100644
--- a/templates/sheets/global/partials/inventory-fieldset-items-V2.hbs
+++ b/templates/sheets/global/partials/inventory-fieldset-items-V2.hbs
@@ -52,11 +52,12 @@ Parameters:
{{else}}
{{#each collection as |item|}}
+
{{> 'daggerheart.inventory-item'
item=item
type=../type
disabledEffect=../disabledEffect
- actorType=(ifThen ../actorType ../actorType @root.document.type)
+ actorType=../actorType
hideControls=../hideControls
hideContextMenu=../hideContextMenu
isActor=../isActor
@@ -65,7 +66,6 @@ Parameters:
showLabels=../showLabels
isAction=../isAction
hideResources=../hideResources
- isQuantifiable=../isQuantifiable
showActions=../showActions
}}
diff --git a/templates/sheets/global/partials/inventory-item-V2.hbs b/templates/sheets/global/partials/inventory-item-V2.hbs
index d76f2897..a758a28f 100644
--- a/templates/sheets/global/partials/inventory-item-V2.hbs
+++ b/templates/sheets/global/partials/inventory-item-V2.hbs
@@ -17,7 +17,7 @@ Parameters:
- showActions {boolean} : If true show feature's actions.
--}}
--