} 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/item/armor.mjs b/module/data/item/armor.mjs
index 0958a9f3..b0e4847f 100644
--- a/module/data/item/armor.mjs
+++ b/module/data/item/armor.mjs
@@ -19,7 +19,14 @@ 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 }),
- baseScore: new fields.NumberField({ integer: true, initial: 0 }),
+ 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 })
+ }),
armorFeatures: new fields.ArrayField(
new fields.SchemaField({
value: new fields.StringField({
@@ -28,14 +35,7 @@ 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}`] = null;
+ acc[id] = _del;
return acc;
}, {});
@@ -151,13 +151,20 @@ 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.baseScore}`,
+ `${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.armor.max}`,
`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseThresholds.base')}: ${this.baseThresholds.major} / ${this.baseThresholds.severe}`
];
@@ -169,9 +176,7 @@ export default class DHArmor extends AttachableItem {
* @returns {(string | { value: string, icons: string[] })[]} An array of localized strings and damage label objects.
*/
_getLabels() {
- const labels = [];
- if (this.baseScore)
- labels.push(`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.baseScore}`);
+ const labels = [`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.armor.max}`];
return labels;
}
diff --git a/module/data/item/base.mjs b/module/data/item/base.mjs
index 6f3256e3..21a11149 100644
--- a/module/data/item/base.mjs
+++ b/module/data/item/base.mjs
@@ -222,17 +222,22 @@ 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?.marks?.value !== undefined && changed.system.marks.value !== this.marks.value;
+ changed.system?.armor?.current !== undefined && changed.system.armor.current !== this.armor.current;
if (armorChanged && autoSettings.resourceScrollTexts && this.parent.parent?.type === 'character') {
- const armorData = getScrollTextData(this.parent.parent, changed.system.marks, 'armor');
+ const armorChangeValue = changed.system.armor.current - this.armor.current;
+ const armorData = getScrollTextData(
+ this.parent.parent,
+ { value: armorChangeValue + this.parent.parent.system.armorScore.value },
+ 'armor'
+ );
options.scrollingTextData = [armorData];
}
if (changed.system?.actions) {
const triggersToRemove = Object.keys(changed.system.actions).reduce((acc, key) => {
- if (!changed.system.actions[key]) {
- const strippedKey = key.replace('-=', '');
- acc.push(...this.actions.get(strippedKey).triggers.map(x => x.trigger));
+ const action = changed.system.actions[key];
+ if (action && Object.keys(action).length === 0) {
+ acc.push(...this.actions.get(key).triggers.map(x => x.trigger));
}
return acc;
diff --git a/module/data/item/beastform.mjs b/module/data/item/beastform.mjs
index 3a41aa7e..d30d6046 100644
--- a/module/data/item/beastform.mjs
+++ b/module/data/item/beastform.mjs
@@ -99,17 +99,22 @@ 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 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 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 damageDiceIndex = effect.changes.find(x => x.key === 'system.rules.attack.damage.diceIndex');
+ const damageDiceIndex = effect.system.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.changes.find(x => x.key === 'system.rules.attack.damage.bonus')?.value ?? 0;
+ const damageBonus = effect.system.changes.find(x => x.key === 'system.rules.attack.damage.bonus')?.value ?? 0;
return {
- trait: game.i18n.localize(CONFIG.DH.ACTOR.abilities[this.mainTrait].label),
+ trait: game.i18n.localize(CONFIG.DH.ACTOR.abilities[mainTrait]?.label),
traitBonus: traitBonus ? Number(traitBonus).signedString() : '',
evasionBonus: evasionBonus ? Number(evasionBonus).signedString() : '',
damageDice: damageDice,
@@ -169,17 +174,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/subclass.mjs b/module/data/item/subclass.mjs
index 06a80f7b..d421cc6d 100644
--- a/module/data/item/subclass.mjs
+++ b/module/data/item/subclass.mjs
@@ -52,6 +52,9 @@ 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) {
@@ -86,9 +89,6 @@ 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 bb7fde0a..9335037c 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: [
- {
+ parts: {
+ hitPoints: {
type: ['physical'],
value: {
multiplier: 'prof',
dice: 'd8'
}
}
- ]
+ }
}
}
}),
@@ -148,7 +148,7 @@ export default class DHWeapon extends AttachableItem {
await this.parent.deleteEmbeddedDocuments('ActiveEffect', removedEffectsUpdate);
changes.system.actions = removedActionsUpdate.reduce((acc, id) => {
- acc[`-=${id}`] = null;
+ acc[id] = _del;
return acc;
}, {});
diff --git a/module/data/settings/Automation.mjs b/module/data/settings/Automation.mjs
index 20fe0baf..35e87327 100644
--- a/module/data/settings/Automation.mjs
+++ b/module/data/settings/Automation.mjs
@@ -196,6 +196,11 @@ 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
new file mode 100644
index 00000000..57f54e16
--- /dev/null
+++ b/module/data/spotlightTracker.mjs
@@ -0,0 +1,9 @@
+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
new file mode 100644
index 00000000..25158606
--- /dev/null
+++ b/module/data/tagTeamData.mjs
@@ -0,0 +1,47 @@
+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: 'Roll Type'
+ }),
+ 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
deleted file mode 100644
index de71a11b..00000000
--- a/module/data/tagTeamRoll.mjs
+++ /dev/null
@@ -1,20 +0,0 @@
-import { DhCharacter } from './actor/_module.mjs';
-
-export default class DhTagTeamRoll extends foundry.abstract.DataModel {
- static defineSchema() {
- const fields = foundry.data.fields;
-
- return {
- initiator: new fields.SchemaField({
- id: new fields.StringField({ nullable: true, initial: null }),
- cost: new fields.NumberField({ integer: true, min: 0, initial: 3 })
- }),
- members: new fields.TypedObjectField(
- new fields.SchemaField({
- messageId: new fields.StringField({ required: true, nullable: true, initial: null }),
- selected: new fields.BooleanField({ required: true, initial: false })
- })
- )
- };
- }
-}
diff --git a/module/dice/_module.mjs b/module/dice/_module.mjs
index b9339d87..e1206f82 100644
--- a/module/dice/_module.mjs
+++ b/module/dice/_module.mjs
@@ -4,3 +4,4 @@ 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 f117ff65..509f5d69 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.system.criticalThreshold;
+ const criticalThreshold = this.options.actionType === 'reaction' ? 20 : this.data.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 = config.isCritical = roll.isCritical;
+ data.isCritical = roll.isCritical;
data.extra = roll.dice
.filter(d => !roll.baseTerms.includes(d))
.map(d => {
@@ -217,49 +217,11 @@ export default class D20Roll extends DHRoll {
results: d.results
};
});
- data.modifierTotal = this.calculateTotalModifiers(roll);
+ data.modifierTotal = roll.modifierTotal;
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 ef5f9434..1d680a1b 100644
--- a/module/dice/damageRoll.mjs
+++ b/module/dice/damageRoll.mjs
@@ -1,6 +1,5 @@
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 {
@@ -8,6 +7,10 @@ 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 = {}) {
@@ -34,7 +37,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').applyRollMode({}, config.rollMode ?? CONST.DICE_ROLL_MODES.PUBLIC);
+ : getDocumentClass('ChatMessage').applyMode({}, config.rollMode ?? '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))
@@ -139,57 +142,53 @@ export default class DamageRoll extends DHRoll {
}
constructFormula(config) {
- this.options.roll.forEach((part, index) => {
+ this.options.isCritical = config.isCritical;
+ for (const [index, part] of this.options.roll.entries()) {
part.roll = new Roll(Roll.replaceFormulaData(part.formula, config.data));
- this.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);
+ }
+ }
+
+ part.roll._formula = this.constructor.getFormula(part.roll.terms);
+ }
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 = {};
@@ -197,7 +196,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.changes.find(ch => ch.key === 'system.bonuses.rally');
+ const change = c.system.changes.find(ch => ch.key === 'system.bonuses.rally');
if (change) a.push({ value: c.id, label: parseRallyDice(change.value, c) });
return a;
}, []);
@@ -281,10 +280,7 @@ export default class DamageRoll extends DHRoll {
return mods;
}
- static async reroll(target, message) {
- const { damageType, part, dice, result } = target.dataset;
- const rollPart = message.system.damage[damageType].parts[part];
-
+ static async reroll(rollPart, dice, result) {
let diceIndex = 0;
let parsedRoll = game.system.api.dice.DamageRoll.fromData({
...rollPart.roll,
@@ -353,29 +349,6 @@ export default class DamageRoll extends DHRoll {
};
});
- 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
- }
- });
+ return { parsedRoll, rerolledDice };
}
}
diff --git a/module/dice/dhRoll.mjs b/module/dice/dhRoll.mjs
index c216e740..e4a34bd4 100644
--- a/module/dice/dhRoll.mjs
+++ b/module/dice/dhRoll.mjs
@@ -12,6 +12,10 @@ 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';
@@ -21,6 +25,9 @@ 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;
@@ -30,12 +37,6 @@ 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;
}
@@ -120,14 +121,10 @@ export default class DHRoll extends Roll {
rolls: [roll]
};
- config.selectedRollMode ??= game.settings.get('core', 'rollMode');
+ config.selectedMessageMode ??= game.settings.get('core', 'messageMode');
if (roll._evaluated) {
- const message = await cls.create(msgData, { rollMode: config.selectedRollMode });
-
- if (config.tagTeamSelected) {
- game.system.api.applications.dialogs.TagTeamDialog.assignRoll(message.speakerActor, message);
- }
+ const message = await cls.create(msgData, { messageMode: config.selectedMessageMode });
if (roll.formula !== '' && game.modules.get('dice-so-nice')?.active) {
await game.dice3d.waitFor3DAnimationByMessageID(message.id);
@@ -145,6 +142,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,
metagamingSettings
@@ -248,16 +246,21 @@ 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] 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}`);
+ 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;
+ }
}
+
return modifierTotal;
}
@@ -269,12 +272,12 @@ export default class DHRoll extends Roll {
const changeKeys = this.getActionChangeKeys();
return (
this.options.effects?.reduce((acc, effect) => {
- if (effect.changes.some(x => changeKeys.some(key => x.key.includes(key)))) {
+ if (effect.system.changes.some(x => changeKeys.some(key => x.key.includes(key)))) {
acc[effect.id] = {
id: effect.id,
name: effect.name,
description: effect.description,
- changes: effect.changes,
+ changes: effect.system.changes,
origEffect: effect,
selected: !effect.disabled
};
diff --git a/module/dice/die/_module.mjs b/module/dice/die/_module.mjs
new file mode 100644
index 00000000..ed892f6a
--- /dev/null
+++ b/module/dice/die/_module.mjs
@@ -0,0 +1,9 @@
+import DualityDie from './dualityDie.mjs';
+import AdvantageDie from './advantageDie.mjs';
+import DisadvantageDie from './disadvantageDie.mjs';
+
+export const diceTypes = {
+ DualityDie,
+ AdvantageDie,
+ DisadvantageDie
+};
diff --git a/module/dice/die/advantageDie.mjs b/module/dice/die/advantageDie.mjs
new file mode 100644
index 00000000..9c2f0b03
--- /dev/null
+++ b/module/dice/die/advantageDie.mjs
@@ -0,0 +1,7 @@
+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
new file mode 100644
index 00000000..f56ebe96
--- /dev/null
+++ b/module/dice/die/disadvantageDie.mjs
@@ -0,0 +1,7 @@
+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
new file mode 100644
index 00000000..e9deb77f
--- /dev/null
+++ b/module/dice/die/dualityDie.mjs
@@ -0,0 +1,62 @@
+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 preset = await getDiceSoNicePreset(diceSoNice[key], faces);
+ diceSoNiceRoll.dice[0].options.appearance = preset.appearance;
+ diceSoNiceRoll.dice[0].options.modelFile = preset.modelFile;
+
+ 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);
+ }
+ }
+}
diff --git a/module/dice/dualityRoll.mjs b/module/dice/dualityRoll.mjs
index 75fbdf55..bc381f07 100644
--- a/module/dice/dualityRoll.mjs
+++ b/module/dice/dualityRoll.mjs
@@ -1,8 +1,6 @@
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;
@@ -26,27 +24,31 @@ export default class DualityRoll extends D20Roll {
}
get dHope() {
- if (!(this.dice[0] instanceof foundry.dice.terms.Die)) this.createBaseDice();
+ if (!(this.dice[0] instanceof game.system.api.dice.diceTypes.DualityDie)) this.createBaseDice();
return this.dice[0];
}
set dHope(faces) {
- if (!(this.dice[0] instanceof foundry.dice.terms.Die)) this.createBaseDice();
- this.dice[0].faces = this.getFaces(faces);
+ // TODO this should not be asymmetrical with the getter. updateRollConfiguration() should use dHope.faces
+ this.dHope.faces = this.getFaces(faces);
}
get dFear() {
- if (!(this.dice[1] instanceof foundry.dice.terms.Die)) this.createBaseDice();
+ if (!(this.dice[1] instanceof game.system.api.dice.diceTypes.DualityDie)) this.createBaseDice();
return this.dice[1];
}
set dFear(faces) {
- if (!(this.dice[1] instanceof foundry.dice.terms.Die)) this.createBaseDice();
- this.dice[1].faces = this.getFaces(faces);
+ // TODO this should not be asymmetrical with the getter. updateRollConfiguration() should use dFear.faces
+ this.dFear.faces = this.getFaces(faces);
}
get dAdvantage() {
- return this.dice[2];
+ return this.dice[2] instanceof game.system.api.dice.diceTypes.AdvantageDie ? this.dice[2] : null;
+ }
+
+ get dDisadvantage() {
+ return this.dice[2] instanceof game.system.api.dice.diceTypes.DisadvantageDie ? this.dice[2] : null;
}
get advantageFaces() {
@@ -65,9 +67,14 @@ export default class DualityRoll extends D20Roll {
this._advantageNumber = Number(value);
}
+ get extraDice() {
+ const { DualityDie, AdvantageDie, DisadvantageDie } = game.system.api.dice.diceTypes;
+ return this.dice.filter(x => ![DualityDie, AdvantageDie, DisadvantageDie].some(die => x instanceof die));
+ }
+
setRallyChoices() {
return this.data?.parent?.appliedEffects.reduce((a, c) => {
- const change = c.changes.find(ch => ch.key === 'system.bonuses.rally');
+ const change = c.system.changes.find(ch => ch.key === 'system.bonuses.rally');
if (change) a.push({ value: c.id, label: parseRallyDice(change.value, c) });
return a;
}, []);
@@ -118,22 +125,28 @@ export default class DualityRoll extends D20Roll {
/** @inheritDoc */
static fromData(data) {
- data.terms[0].class = foundry.dice.terms.Die.name;
- data.terms[2].class = foundry.dice.terms.Die.name;
+ data.terms[0].class = 'DualityDie';
+ data.terms[2].class = 'DualityDie';
+ if (data.options.roll.advantage?.type && data.terms[4]?.faces) {
+ data.terms[4].class = data.options.roll.advantage.type === 1 ? 'AdvantageDie' : 'DisadvantageDie';
+ }
return super.fromData(data);
}
createBaseDice() {
- if (this.dice[0] instanceof foundry.dice.terms.Die && this.dice[1] instanceof foundry.dice.terms.Die) {
+ if (
+ this.dice[0] instanceof game.system.api.dice.diceTypes.DualityDie &&
+ this.dice[1] instanceof game.system.api.dice.diceTypes.DualityDie
+ ) {
this.terms = [this.terms[0], this.terms[1], this.terms[2]];
return;
}
- this.terms[0] = new foundry.dice.terms.Die({
+ this.terms[0] = new game.system.api.dice.diceTypes.DualityDie({
faces: this.data.rules.dualityRoll?.defaultHopeDice ?? 12
});
this.terms[1] = new foundry.dice.terms.OperatorTerm({ operator: '+' });
- this.terms[2] = new foundry.dice.terms.Die({
+ this.terms[2] = new game.system.api.dice.diceTypes.DualityDie({
faces: this.data.rules.dualityRoll?.defaultFearDice ?? 12
});
}
@@ -179,7 +192,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.changes.find(ch => ch.key === 'system.rules.roll.guaranteedCritical');
+ const change = c.system.changes.find(ch => ch.key === 'system.rules.roll.guaranteedCritical');
if (change) a = true;
return a;
}, false);
@@ -305,7 +318,6 @@ 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;
@@ -346,7 +358,6 @@ 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;
@@ -373,61 +384,4 @@ 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 418c8465..114fad59 100644
--- a/module/dice/fateRoll.mjs
+++ b/module/dice/fateRoll.mjs
@@ -21,8 +21,8 @@ export default class FateRoll extends D20Roll {
}
set dHope(faces) {
- if (!(this.dice[0] instanceof foundry.dice.terms.Die)) this.createBaseDice();
- this.dice[0].faces = this.getFaces(faces);
+ // TODO this should not be asymmetrical with the getter. updateRollConfiguration() should use dHope.faces
+ this.dHope.faces = this.getFaces(faces);
}
get dFear() {
@@ -31,8 +31,8 @@ export default class FateRoll extends D20Roll {
}
set dFear(faces) {
- if (!(this.dice[0] instanceof foundry.dice.terms.Die)) this.createBaseDice();
- this.dice[0].faces = this.getFaces(faces);
+ // TODO this should not be asymmetrical with the getter. updateRollConfiguration() should use dFear.faces
+ this.dFear.faces = this.getFaces(faces);
}
get isCritical() {
@@ -43,6 +43,20 @@ 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 b9cfd3f2..aa08f0f4 100644
--- a/module/documents/_module.mjs
+++ b/module/documents/_module.mjs
@@ -8,5 +8,4 @@ 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 dd5f1b55..8ec7a751 100644
--- a/module/documents/activeEffect.mjs
+++ b/module/documents/activeEffect.mjs
@@ -1,5 +1,4 @@
import { itemAbleRollParse } from '../helpers/utils.mjs';
-import { RefreshType, socketEvent } from '../systemRegistration/socket.mjs';
export default class DhActiveEffect extends foundry.documents.ActiveEffect {
/* -------------------------------------------- */
@@ -8,6 +7,8 @@ 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) {
@@ -15,7 +16,7 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
}
// Then apply the standard suppression rules
- if (['weapon', 'armor'].includes(this.parent?.type)) {
+ if (['weapon', 'armor'].includes(this.parent?.type) && this.transfer) {
return !this.parent.system.equipped;
}
@@ -50,10 +51,55 @@ 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 = {};
@@ -61,25 +107,41 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
update.img = 'icons/magic/life/heart-cross-blue.webp';
}
- 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);
+ 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);
+ }
}
}
@@ -90,42 +152,29 @@ 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 applyField(model, change, field) {
- change.value = DhActiveEffect.getChangeValue(model, change, change.effect);
- super.applyField(model, change, field);
+ static applyChangeField(model, change, field) {
+ change.value = Number.isNumeric(change.value)
+ ? change.value
+ : DhActiveEffect.getChangeValue(model, change, change.effect);
+ super.applyChangeField(model, change, field);
}
- _applyLegacy(actor, change, changes) {
+ static _applyChangeUnguided(actor, change, changes, options) {
change.value = DhActiveEffect.getChangeValue(actor, change, change.effect);
- super._applyLegacy(actor, change, changes);
+ super._applyChangeUnguided(actor, change, changes, options);
}
- /** */
static getChangeValue(model, change, effect) {
- let value = change.value;
- const isOriginTarget = value.toLowerCase().includes('origin.@');
+ let key = change.value.toString();
+ const isOriginTarget = key.toLowerCase().includes('origin.@');
let parseModel = model;
if (isOriginTarget && effect.origin) {
- value = change.value.replaceAll(/origin\.@/gi, '@');
+ key = change.key.replaceAll(/origin\.@/gi, '@');
try {
const originEffect = foundry.utils.fromUuidSync(effect.origin);
const doc =
@@ -136,8 +185,11 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
} catch (_) {}
}
- const evalValue = this.effectSafeEval(itemAbleRollParse(value, parseModel, effect.parent));
- return evalValue ?? value;
+ const stackingParsedValue = effect.system.stacking
+ ? Roll.replaceFormulaData(key, { stacks: effect.system.stacking.value })
+ : key;
+ const evalValue = itemAbleRollParse(stackingParsedValue, parseModel, effect.parent);
+ return evalValue ?? key;
}
/**
diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs
index eea2e212..3e3dfde4 100644
--- a/module/documents/actor.mjs
+++ b/module/documents/actor.mjs
@@ -4,6 +4,7 @@ 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();
@@ -34,7 +35,7 @@ export default class DhpActor extends Actor {
// 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);
+ const controlled = canvas.tokens.controlled.some(t => t.actor === this);
if (game.user.character === this || controlled) {
ui.effectsDisplay.render();
}
@@ -154,7 +155,7 @@ export default class DhpActor extends Actor {
}
const updatedLevelups = Object.keys(this.system.levelData.levelups).reduce((acc, level) => {
- if (Number(level) > usedLevel) acc[`-=${level}`] = null;
+ if (Number(level) > usedLevel) acc[level] = _del;
return acc;
}, {});
@@ -199,7 +200,7 @@ export default class DhpActor extends Actor {
if (experiences.length > 0) {
const getUpdate = () => ({
'system.experiences': experiences.reduce((acc, key) => {
- acc[`-=${key}`] = null;
+ acc[key] = _del;
return acc;
}, {})
});
@@ -521,6 +522,30 @@ 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'];
}
@@ -585,8 +610,7 @@ export default class DhpActor extends Actor {
const availableStress = this.system.resources.stress.max - this.system.resources.stress.value;
const canUseArmor =
- this.system.armor &&
- this.system.armor.system.marks.value < this.system.armorScore &&
+ this.system.armorScore.value < this.system.armorScore.max &&
type.every(t => this.system.armorApplicableDamageTypes[t] === true);
const canUseStress = Object.keys(stressDamageReduction).reduce((acc, x) => {
const rule = stressDamageReduction[x];
@@ -626,12 +650,7 @@ 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.system.armor &&
- this.#canReduceDamage(hpDamage.value, hpDamage.damageTypes)
- ) {
+ if (this.type === 'character' && !isDirect && this.#canReduceDamage(hpDamage.value, hpDamage.damageTypes)) {
const armorSlotResult = await this.owner.query(
'armorSlot',
{
@@ -644,12 +663,10 @@ export default class DhpActor extends Actor {
}
);
if (armorSlotResult) {
- const { modifiedDamage, armorSpent, stressSpent } = armorSlotResult;
+ const { modifiedDamage, armorChanges, stressSpent } = armorSlotResult;
updates.find(u => u.key === 'hitPoints').value = modifiedDamage;
- if (armorSpent) {
- const armorUpdate = updates.find(u => u.key === 'armor');
- if (armorUpdate) armorUpdate.value += armorSpent;
- else updates.push({ value: armorSpent, key: 'armor' });
+ for (const armorChange of armorChanges) {
+ updates.push({ value: armorChange.amount, key: 'armor', uuid: armorChange.uuid });
}
if (stressSpent) {
const stressUpdate = updates.find(u => u.key === 'stress');
@@ -786,12 +803,8 @@ export default class DhpActor extends Actor {
);
break;
case 'armor':
- 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
- );
- }
+ if (!r.uuid) this.system.updateArmorValue(r);
+ else this.system.updateArmorEffectValue(r);
break;
default:
if (this.system.resources?.[r.key]) {
@@ -1007,4 +1020,20 @@ 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 53921329..307677bb 100644
--- a/module/documents/chatMessage.mjs
+++ b/module/documents/chatMessage.mjs
@@ -1,4 +1,4 @@
-import { emitAsGM, GMUpdateEvent, RefreshType, socketEvent } from '../systemRegistration/socket.mjs';
+import { emitAsGM, GMUpdateEvent } from '../systemRegistration/socket.mjs';
export default class DhpChatMessage extends foundry.documents.ChatMessage {
targetHook = null;
@@ -78,25 +78,14 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage {
if (this.isContentVisible) {
if (this.type === 'dualityRoll') {
html.classList.add('duality');
- 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.system.roll.withHope) html.classList.add('hope');
+ else if (this.system.roll.withFear) html.classList.add('fear');
+ else html.classList.add('critical');
}
if (this.type === 'fateRoll') {
html.classList.add('fate');
- if (this.system.roll?.fate.fateDie == 'Hope') {
- html.classList.add('hope');
- }
- if (this.system.roll?.fate.fateDie == 'Fear') {
- html.classList.add('fear');
+ if (this.system.roll?.fateDie) {
+ html.classList.add(this.system.roll.fateDie.toLowerCase());
}
}
@@ -177,14 +166,6 @@ 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) {
diff --git a/module/documents/item.mjs b/module/documents/item.mjs
index 67f7d253..d1a618c7 100644
--- a/module/documents/item.mjs
+++ b/module/documents/item.mjs
@@ -197,7 +197,6 @@ 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
@@ -230,4 +229,14 @@ 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 50b8fe63..59652f44 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', 'rollMode');
+ messageOptions.rollMode ??= game.settings.get('core', 'messageMode');
// Construct chat data
messageData = foundry.utils.mergeObject(
diff --git a/module/documents/templateManager.mjs b/module/documents/templateManager.mjs
deleted file mode 100644
index cf15c2e3..00000000
--- a/module/documents/templateManager.mjs
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * 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/tooltipManager.mjs b/module/documents/tooltipManager.mjs
index bf107a42..e10dc5fa 100644
--- a/module/documents/tooltipManager.mjs
+++ b/module/documents/tooltipManager.mjs
@@ -31,12 +31,39 @@ export default class DhTooltipManager extends foundry.helpers.interaction.Toolti
this.#bordered = true;
let effect = {};
if (element.dataset.uuid) {
- const effectData = (await foundry.utils.fromUuid(element.dataset.uuid)).toObject();
+ const effectItem = await foundry.utils.fromUuid(element.dataset.uuid);
+ const effectData = effectItem.toObject();
+
effect = {
...effectData,
- name: game.i18n.localize(effectData.name),
- description: game.i18n.localize(effectData.description ?? effectData.parent.system.description)
+ name: game.i18n.localize(effectData.name)
};
+
+ 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];
diff --git a/module/enrichers/TemplateEnricher.mjs b/module/enrichers/TemplateEnricher.mjs
index 4bc8fdeb..fd0e78eb 100644
--- a/module/enrichers/TemplateEnricher.mjs
+++ b/module/enrichers/TemplateEnricher.mjs
@@ -49,6 +49,8 @@ export default function DhTemplateEnricher(match, _options) {
}
export const renderMeasuredTemplate = async event => {
+ const { LINE, RECTANGLE, INFRONT, CONE } = CONFIG.DH.GENERAL.templateTypes;
+
const button = event.currentTarget,
type = button.dataset.type,
range = button.dataset.range,
@@ -57,13 +59,9 @@ export const renderMeasuredTemplate = async event => {
if (!type || !range || !game.canvas.scene) return;
- const usedType = type === 'inFront' ? 'cone' : type === 'emanation' ? 'circle' : type;
+ const usedType = type === 'inFront' ? 'cone' : type;
const usedAngle =
- type === CONST.MEASURED_TEMPLATE_TYPES.CONE
- ? (angle ?? CONFIG.MeasuredTemplate.defaults.angle)
- : type === CONFIG.DH.GENERAL.templateTypes.INFRONT
- ? '180'
- : undefined;
+ type === CONE ? (angle ?? CONFIG.MeasuredTemplate.defaults.angle) : type === INFRONT ? '180' : undefined;
let baseDistance = range;
if (Number.isNaN(Number(range))) {
@@ -71,18 +69,49 @@ export const renderMeasuredTemplate = async event => {
range
];
}
- const distance = type === CONFIG.DH.GENERAL.templateTypes.EMANATION ? baseDistance + 2.5 : baseDistance;
+
+ const dimensionConstant = game.scenes.active.grid.size / game.scenes.active.grid.distance;
+
+ baseDistance *= dimensionConstant;
+
+ const length = baseDistance;
+ const radius = length;
+
+ const shapeWidth = type === LINE ? 5 * dimensionConstant : type === RECTANGLE ? length : undefined;
const { width, height } = game.canvas.scene.dimensions;
- const data = {
+ const shapeData = {
x: width / 2,
y: height / 2,
+ base: {
+ type: 'token',
+ x: 0,
+ y: 0,
+ width: 1,
+ height: 1,
+ shape: game.canvas.grid.isHexagonal ? CONST.TOKEN_SHAPES.ELLIPSE_1 : CONST.TOKEN_SHAPES.RECTANGLE_1
+ },
t: usedType,
- distance: distance,
- width: type === CONST.MEASURED_TEMPLATE_TYPES.RAY ? 5 : undefined,
+ length: length,
+ width: shapeWidth,
+ height: length,
angle: usedAngle,
- direction: direction
+ radius: radius,
+ direction: direction,
+ type: usedType
};
- CONFIG.ux.TemplateManager.createPreview(data);
+ await canvas.regions.placeRegion(
+ {
+ name: usedType.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 }
+ );
};
diff --git a/module/helpers/handlebarsHelper.mjs b/module/helpers/handlebarsHelper.mjs
index 2faea830..7f30d970 100644
--- a/module/helpers/handlebarsHelper.mjs
+++ b/module/helpers/handlebarsHelper.mjs
@@ -49,9 +49,8 @@ export default class RegisterHandlebarsHelpers {
}
static damageSymbols(damageParts) {
- const symbols = [...new Set(damageParts.reduce((a, c) => a.concat([...c.type]), []))].map(
- p => CONFIG.DH.GENERAL.damageTypes[p].icon
- );
+ const allTypes = [...new Set([...damageParts].flatMap(x => Array.from(x.type)))];
+ const symbols = allTypes.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 b49a98ca..131f94b7 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}`] = null;
+ acc[`${key}.${innerProperty}`] = _del;
}
} else {
- acc[`-=${key}`] = null;
+ acc[`${key}`] = _del;
}
return acc;
@@ -422,7 +422,12 @@ export async function createEmbeddedItemWithEffects(actor, baseData, update) {
...baseData,
id: data.id,
uuid: data.uuid,
- effects: data.effects?.map(effect => effect.toObject())
+ _uuid: data.uuid,
+ effects: data.effects?.map(effect => effect.toObject()),
+ _stats: {
+ ...data._stats,
+ compendiumSource: data.pack ? `Compendium.${data.pack}.Item.${data.id}` : null
+ }
}
]);
@@ -475,6 +480,8 @@ 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:
@@ -491,9 +498,38 @@ 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);
- return critRoll.dice.reduce((acc, dice) => acc + dice.faces * dice.number, 0);
+ await critRoll.evaluate();
+ return critRoll.dice.reduce((acc, dice) => acc + dice.faces * dice.results.filter(r => r.active).length, 0);
}
export function htmlToText(html) {
@@ -503,6 +539,16 @@ 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) {
@@ -588,6 +634,8 @@ 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 (
@@ -682,3 +730,79 @@ 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/spotlightCombatant.mjs b/module/macros/spotlightCombatant.mjs
index 68a26ff9..dc8339ac 100644
--- a/module/macros/spotlightCombatant.mjs
+++ b/module/macros/spotlightCombatant.mjs
@@ -1,21 +1,50 @@
/**
- * Spotlights a combatant.
- * The combatant can be selected in a number of ways. If many are applied at the same time, the following order is used:
- * 1) SelectedCombatant
- * 2) HoveredCombatant
+ * 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 spotlightCombatant = () => {
- if (!game.combat)
- return ui.notifications.error(game.i18n.localize('DAGGERHEART.MACROS.Spotlight.errors.noActiveCombat'));
+const spotlightCombatantMacro = async token => {
+ if (!token)
+ return ui.notifications.error(game.i18n.localize('DAGGERHEART.MACROS.Spotlight.errors.noTokenSelected'));
- const selectedCombatant = canvas.tokens.controlled.length > 0 ? canvas.tokens.controlled[0].combatant : null;
- const hoveredCombatant = game.canvas.tokens.hover?.combatant;
+ 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 combatant = selectedCombatant ?? hoveredCombatant;
- if (!combatant)
- return ui.notifications.error(game.i18n.localize('DAGGERHEART.MACROS.Spotlight.errors.noCombatantSelected'));
+ 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();
- ui.combat.setCombatantSpotlight(combatant.id);
+ 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 default spotlightCombatant;
+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 f51e1035..63e591c6 100644
--- a/module/systemRegistration/handlebars.mjs
+++ b/module/systemRegistration/handlebars.mjs
@@ -36,9 +36,11 @@ 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',
@@ -47,6 +49,7 @@ 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/settings/appearance-settings/diceSoNiceTab.hbs',
+ 'systems/daggerheart/templates/sheets/activeEffect/typeChanges/armorChange.hbs'
]);
};
diff --git a/module/systemRegistration/migrations.mjs b/module/systemRegistration/migrations.mjs
index 743d42a4..458ee6ef 100644
--- a/module/systemRegistration/migrations.mjs
+++ b/module/systemRegistration/migrations.mjs
@@ -193,11 +193,11 @@ export async function runMigrations() {
}
if (foundry.utils.isNewerVersion('1.2.7', lastMigrationVersion)) {
- const tagTeam = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll);
+ const tagTeam = game.settings.get(CONFIG.DH.id, 'TagTeamRoll');
const initatorMissing = tagTeam.initiator && !game.actors.some(actor => actor.id === tagTeam.initiator);
const missingMembers = Object.keys(tagTeam.members).reduce((acc, id) => {
if (!game.actors.some(actor => actor.id === id)) {
- acc[`-=${id}`] = null;
+ acc[id] = _del;
}
return acc;
}, {});
@@ -206,7 +206,7 @@ export async function runMigrations() {
initiator: initatorMissing ? null : tagTeam.initiator,
members: missingMembers
});
- await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll, tagTeam);
+ await game.settings.set(CONFIG.DH.id, 'TagTeamRoll', tagTeam);
lastMigrationVersion = '1.2.7';
}
@@ -246,6 +246,101 @@ 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';
+ }
//#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 17dab6f7..63611cda 100644
--- a/module/systemRegistration/settings.mjs
+++ b/module/systemRegistration/settings.mjs
@@ -15,7 +15,8 @@ import {
DhMetagamingSettings,
DhVariantRuleSettings
} from '../applications/settings/_module.mjs';
-import { CompendiumBrowserSettings, DhTagTeamRoll } from '../data/_module.mjs';
+import { CompendiumBrowserSettings } from '../data/_module.mjs';
+import SpotlightTracker from '../data/spotlightTracker.mjs';
export const registerDHSettings = () => {
registerKeyBindings();
@@ -40,7 +41,12 @@ export const registerKeyBindings = () => {
hint: game.i18n.localize('DAGGERHEART.SETTINGS.Keybindings.spotlight.hint'),
uneditable: [],
editable: [],
- onDown: game.system.api.macros.spotlightCombatant,
+ 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: [],
@@ -172,15 +178,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
+ });
};
diff --git a/module/systemRegistration/socket.mjs b/module/systemRegistration/socket.mjs
index 173ef02b..fb152959 100644
--- a/module/systemRegistration/socket.mjs
+++ b/module/systemRegistration/socket.mjs
@@ -15,6 +15,9 @@ 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;
}
}
@@ -22,7 +25,8 @@ export const socketEvent = {
GMUpdate: 'DhGMUpdate',
Refresh: 'DhRefresh',
DhpFearUpdate: 'DhFearUpdate',
- DowntimeTrigger: 'DowntimeTrigger'
+ DowntimeTrigger: 'DowntimeTrigger',
+ TagTeamStart: 'DhTagTeamStart'
};
export const GMUpdateEvent = {
diff --git a/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json b/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json
index e2b3a444..0dd182fa 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -118,7 +118,7 @@
},
"base": false
}
- ],
+ },
"includeBase": false
},
"_id": "TCKVaVweyJzhEArX",
@@ -343,7 +343,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -400,18 +400,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "act"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -423,6 +423,16 @@
"_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"
}
],
@@ -461,8 +471,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -489,7 +499,7 @@
}
}
},
- {
+ "armor": {
"value": {
"custom": {
"enabled": true,
@@ -514,7 +524,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -588,8 +598,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -616,7 +626,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -642,8 +652,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -670,7 +680,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Adult_Flickerfly_G7jiltRjgvVhZewm.json b/src/packs/adversaries/adversary_Adult_Flickerfly_G7jiltRjgvVhZewm.json
index 16fb61d8..c4b4eb2a 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -400,8 +400,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -427,7 +427,7 @@
}
}
}
- ],
+ },
"includeBase": false,
"direct": true
},
@@ -508,7 +508,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -581,8 +581,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -608,7 +608,7 @@
}
}
},
- {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -633,7 +633,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Apprentice_Assassin_vNIbYQ4YSzNf0WPE.json b/src/packs/adversaries/adversary_Apprentice_Assassin_vNIbYQ4YSzNf0WPE.json
index 23f1f339..4c63297d 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -100,7 +100,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/weapons/daggers/dagger-bone-black.webp",
"type": "attack",
diff --git a/src/packs/adversaries/adversary_Arch_Necromancer_WPEOIGfclNJxWb87.json b/src/packs/adversaries/adversary_Arch_Necromancer_WPEOIGfclNJxWb87.json
index d4e506cb..dfae0598 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -112,7 +112,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/magic/unholy/beam-ringed-impact-purple.webp",
"type": "attack",
@@ -256,7 +256,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -336,8 +336,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -363,7 +363,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -414,8 +414,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -440,7 +440,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -488,18 +488,19 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until you roll with Hope.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Vulnerable until you roll with Hope.
",
"tint": "#ffffff",
@@ -511,6 +512,16 @@
"_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"
}
],
@@ -608,7 +619,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -681,8 +692,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -708,7 +719,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 5a13b3d9..965c5168 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "hitPoints": {
"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 5b15bc09..67e10c53 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -95,7 +95,7 @@
"resultBased": false,
"base": false
}
- ]
+ }
},
"name": "Longbow",
"img": "icons/weapons/bows/longbow-recurve-leather-brown.webp",
@@ -270,8 +270,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -295,7 +295,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -368,8 +368,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -393,7 +393,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Assassin_Poisoner_h5RuhzGL17dW5FBT.json b/src/packs/adversaries/adversary_Assassin_Poisoner_h5RuhzGL17dW5FBT.json
index 8b553c83..4b3a872a 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -277,20 +277,21 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until you clear a HP.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "description": " Vulnerable until you clear a HP.
",
+ "description": "Vulnerable until you clear a HP.
",
"tint": "#ffffff",
"statuses": [
"vulnerable"
@@ -300,6 +301,16 @@
"_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"
}
],
diff --git a/src/packs/adversaries/adversary_Battle_Box_dgH3fW9FTYLaIDvS.json b/src/packs/adversaries/adversary_Battle_Box_dgH3fW9FTYLaIDvS.json
index 96a1b752..74ed8dfd 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"range": "melee",
"type": "attack",
@@ -309,7 +309,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -382,8 +382,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -409,7 +409,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -482,8 +482,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -509,7 +509,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -582,8 +582,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -609,7 +609,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -667,20 +667,21 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until their next roll with Hope.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "description": "Vulnerable until your next roll with Hope.
",
+ "description": "Vulnerable until your next roll with Hope.
",
"tint": "#ffffff",
"statuses": [
"vulnerable"
@@ -690,6 +691,16 @@
"_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"
}
],
@@ -726,8 +737,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -752,7 +763,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -825,7 +836,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -883,20 +894,21 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until the cube is defeated.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "description": "Vulnerable until the cube is defeated.
",
+ "description": "Vulnerable until the cube is defeated.
",
"tint": "#ffffff",
"statuses": [
"vulnerable"
@@ -906,6 +918,16 @@
"_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"
}
],
@@ -942,8 +964,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -969,7 +991,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -1049,8 +1071,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -1075,7 +1097,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -1143,8 +1165,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -1170,7 +1192,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Bear_71qKDLKO3CsrNkdy.json b/src/packs/adversaries/adversary_Bear_71qKDLKO3CsrNkdy.json
index da5de611..cfc71120 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -311,7 +311,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -368,18 +368,19 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until you break free with a successful Strength Roll.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "You are Restrained until you break free with a successful Strength Roll.
",
"tint": "#ffffff",
@@ -391,6 +392,16 @@
"_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"
}
],
@@ -430,8 +441,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -457,7 +468,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 8ee7c56c..a315f91a 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": [
- {
+ "parts": {
+ "hitPoints": {
"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,18 +376,19 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "You are Restrained until you break free with a successful attack, Finesse Roll, or Strength Roll.
",
"tint": "#ffffff",
@@ -399,6 +400,16 @@
"_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 c829c3f9..8863641d 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -307,7 +307,7 @@
}
}
}
- ],
+ },
"includeBase": false,
"direct": true
},
@@ -389,8 +389,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -475,6 +475,16 @@
"_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 5b2d2e41..cb081441 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- ],
+ },
"direct": true
},
"name": "Club",
@@ -336,8 +336,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false,
@@ -365,7 +365,7 @@
}
}
}
- ],
+ },
"includeBase": false,
"direct": true
},
@@ -412,8 +412,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -438,7 +438,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -507,8 +507,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -534,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 f548870a..a95db1b7 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/magic/light/beam-rays-magenta.webp",
"type": "attack",
@@ -383,8 +383,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -410,7 +410,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -483,8 +483,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": false
@@ -508,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 35c43a3b..5cbc1f82 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -95,7 +95,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
diff --git a/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json b/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json
index 310eefce..067248c9 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -99,7 +99,7 @@
},
"base": false
}
- ]
+ }
},
"name": "Fist Slam",
"img": "icons/skills/melee/unarmed-punch-fist-yellow-red.webp",
@@ -332,8 +332,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -359,7 +359,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -534,8 +534,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -561,7 +561,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Courtesan_ZxWaWPdzFIUPNC62.json b/src/packs/adversaries/adversary_Courtesan_ZxWaWPdzFIUPNC62.json
index 668cd943..aba9ea46 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -282,7 +282,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -320,18 +320,19 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Vulnerable until the scene ends or they succeed on a social action against the Courtesan.
",
"tint": "#ffffff",
@@ -343,6 +344,16 @@
"_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 6721666f..8777ee06 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "stress": {
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -359,6 +359,16 @@
"_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 14eb579b..cbb48681 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -111,7 +111,7 @@
},
"base": false
}
- ]
+ }
},
"range": "far",
"img": "icons/weapons/staves/staff-ornate-purple.webp",
@@ -256,8 +256,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -283,7 +283,7 @@
}
}
},
- {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -308,7 +308,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -422,31 +422,32 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Resistance to all damage until the Adept marks their last HP
",
"tint": "#ffffff",
@@ -456,6 +457,16 @@
"_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"
}
],
@@ -533,18 +544,19 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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",
@@ -556,6 +568,16 @@
"_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"
}
],
@@ -592,8 +614,8 @@
"recovery": "scene"
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -618,7 +640,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 57e7a7c7..e65f3202 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- ]
+ }
},
"range": "melee",
"type": "attack",
@@ -300,8 +300,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -407,6 +407,16 @@
"_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 a0c0713d..4f04a85a 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -94,7 +94,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
diff --git a/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json b/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json
index cd745eb6..aed2e08a 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/magic/nature/root-vines-grow-brown.webp",
"type": "attack",
@@ -245,8 +245,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -271,7 +271,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -325,8 +325,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -350,7 +350,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -407,18 +407,19 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until the Deeproot Defender takes Severe damage.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "You are Restrained until the Defender takes Severe damage.
",
"tint": "#ffffff",
@@ -430,6 +431,16 @@
"_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 e4ba41fb..1a3538da 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 830848c3..e2f58709 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "far",
@@ -354,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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "All targets affected replace their Hope Die with a d8 until they roll a success with Hope or their next rest.
",
"tint": "#ffffff",
@@ -382,6 +382,16 @@
"_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"
}
],
@@ -425,8 +435,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -451,7 +461,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -505,8 +515,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -532,7 +542,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 16bc1d1f..9f954437 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -251,8 +251,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -277,7 +277,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -329,8 +329,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -355,7 +355,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -414,8 +414,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -441,7 +441,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -550,8 +550,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -576,7 +576,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Demon_of_Jealousy_SxSOkM4bcVOFyjbo.json b/src/packs/adversaries/adversary_Demon_of_Jealousy_SxSOkM4bcVOFyjbo.json
index 31f9b942..c083b183 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ],
+ },
"direct": true
},
"img": "icons/magic/symbols/rune-sigil-rough-white-teal.webp",
@@ -352,7 +352,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Demon_of_Wrath_5lphJAgzoqZI3VoG.json b/src/packs/adversaries/adversary_Demon_of_Wrath_5lphJAgzoqZI3VoG.json
index 2341ee8a..201b17fd 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- ],
+ },
"direct": true
},
"type": "attack",
@@ -317,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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "You use a d20 as your Fear Die until the end of the scene.
",
"tint": "#ffffff",
@@ -345,6 +345,16 @@
"_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"
}
],
@@ -388,8 +398,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -415,7 +425,7 @@
}
}
}
- ],
+ },
"includeBase": false,
"direct": true
},
diff --git a/src/packs/adversaries/adversary_Demonic_Hound_Pack_NoRZ1PqB8N5wcIw0.json b/src/packs/adversaries/adversary_Demonic_Hound_Pack_NoRZ1PqB8N5wcIw0.json
index 7482c734..2043d960 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": [
- {
+ "parts": {
+ "hitPoints": {
"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",
@@ -269,8 +269,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -295,7 +295,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -349,8 +349,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -376,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 16ec7643..23d5550e 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -105,7 +105,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/creatures/claws/claw-hooked-curved.webp",
"type": "attack",
@@ -312,8 +312,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": false
@@ -337,7 +337,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -397,8 +397,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -424,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 e3ecda4e..939a5307 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -272,7 +272,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -352,8 +352,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -377,7 +377,7 @@
}
}
}
- ],
+ },
"includeBase": false,
"direct": true
},
@@ -435,18 +435,19 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until they clear at least 1 HP.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -458,6 +459,16 @@
"_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 ca9ce647..c69ee84e 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -251,7 +251,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -297,8 +297,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -324,7 +324,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -438,8 +438,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -464,7 +464,7 @@
},
"type": []
},
- {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -489,7 +489,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Electric_Eels_TLzY1nDw0Bu9Ud40.json b/src/packs/adversaries/adversary_Electric_Eels_TLzY1nDw0Bu9Ud40.json
index 9386944f..1909a74a 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "hitPoints": {
"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 5c25f63e..2c2633ea 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -95,7 +95,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
diff --git a/src/packs/adversaries/adversary_Elite_Soldier_bfhVWMBUh61b9J6n.json b/src/packs/adversaries/adversary_Elite_Soldier_bfhVWMBUh61b9J6n.json
index de5db0b2..df3e6d12 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -125,7 +125,7 @@
},
"base": false
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -276,8 +276,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 408d5102..70e56980 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 931e4c0a..8c0d7b95 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -95,7 +95,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -256,8 +256,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -282,7 +282,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Fallen_Sorcerer_PELRry1vqjBzSAlr.json b/src/packs/adversaries/adversary_Fallen_Sorcerer_PELRry1vqjBzSAlr.json
index fc064958..06db1453 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/weapons/staves/staff-animal-skull-bull.webp",
"type": "attack",
@@ -251,8 +251,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -278,7 +278,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -385,30 +385,41 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until youbreak free with a successful Instinct Roll.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Restrained and Vulnerable until you break free, ending both conditions, with a successful Instinct Roll.
",
"tint": "#ffffff",
"statuses": [
- "restrained",
- "vulnerable"
+ "vulnerable",
+ "restrained"
],
"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"
}
],
@@ -471,8 +482,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -497,7 +508,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -572,18 +583,19 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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",
@@ -595,6 +607,16 @@
"_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 8f3865e9..9fa49107 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -94,7 +94,7 @@
},
"base": false
}
- ],
+ },
"includeBase": false
},
"description": "",
@@ -337,7 +337,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -416,8 +416,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -443,7 +443,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -516,8 +516,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -543,7 +543,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -653,8 +653,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -679,7 +679,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Fallen_Warlord__Undefeated_Champion_RXkZTwBRi4dJ3JE5.json b/src/packs/adversaries/adversary_Fallen_Warlord__Undefeated_Champion_RXkZTwBRi4dJ3JE5.json
index 89d61c1c..5ad77ab0 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -94,7 +94,7 @@
},
"base": false
}
- ],
+ },
"includeBase": false
},
"description": "",
@@ -338,7 +338,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -410,8 +410,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -437,7 +437,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -697,8 +697,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -724,7 +724,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -792,8 +792,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -818,7 +818,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Giant_Beastmaster_8VZIgU12cB3cvlyH.json b/src/packs/adversaries/adversary_Giant_Beastmaster_8VZIgU12cB3cvlyH.json
index 6d09a490..c6a482dd 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -269,8 +269,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -294,7 +294,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -352,18 +352,19 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "You are Restrained until you break free with a successful Finesse or Strength Roll.
",
"tint": "#ffffff",
@@ -375,6 +376,16 @@
"_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 4f76b706..8948c8b6 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -251,8 +251,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -278,7 +278,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -351,8 +351,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -378,7 +378,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -452,8 +452,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -479,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 b0ba4170..a8a33586 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -125,7 +125,7 @@
},
"base": false
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -345,8 +345,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Vulnerable until the next time you act.
",
"tint": "#ffffff",
@@ -453,6 +453,16 @@
"_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"
}
],
@@ -489,8 +499,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -516,7 +526,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -633,8 +643,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -660,7 +670,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 fbb30d40..a74cb88d 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 d1df6b57..822ee035 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -100,7 +100,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -272,7 +272,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Giant_Recruit_5s8wSvpyC5rxY5aD.json b/src/packs/adversaries/adversary_Giant_Recruit_5s8wSvpyC5rxY5aD.json
index adcdf015..376ebace 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -90,7 +90,7 @@
},
"base": false
}
- ]
+ }
},
"range": "veryClose",
"roll": {
diff --git a/src/packs/adversaries/adversary_Giant_Scorpion_fmfntuJ8mHRCAktP.json b/src/packs/adversaries/adversary_Giant_Scorpion_fmfntuJ8mHRCAktP.json
index 99b5ed46..03a0272d 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -253,8 +253,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -280,7 +280,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -354,8 +354,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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,6 +459,16 @@
"_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"
}
],
@@ -498,8 +508,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -525,7 +535,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 f02a1c52..5876f55c 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -240,8 +240,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "armor": {
"value": {
"custom": {
"enabled": true,
@@ -266,7 +266,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -326,8 +326,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -351,7 +351,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -459,8 +459,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -486,7 +486,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -532,7 +532,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Gorgon_8mJYMpbLTb8qIOrr.json b/src/packs/adversaries/adversary_Gorgon_8mJYMpbLTb8qIOrr.json
index deeafa37..1fcfcce4 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "You Glow until the end of the scene and can’t become Hidden. Attack rolls made against you have advantage.
",
"tint": "#ffffff",
@@ -363,6 +363,16 @@
"_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"
}
],
@@ -399,8 +409,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -426,7 +436,7 @@
}
}
},
- {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -451,7 +461,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -531,7 +541,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -642,8 +652,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -669,7 +679,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 a20d80e6..077373b2 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -268,8 +268,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "armor": {
"value": {
"custom": {
"enabled": true,
@@ -294,7 +294,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -422,8 +422,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -449,7 +449,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -507,18 +507,19 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until your next roll with Hope.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Vulnerable until your next roll with Hope.
",
"tint": "#ffffff",
@@ -530,6 +531,16 @@
"_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"
}
],
@@ -567,8 +578,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -594,7 +605,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 be037b10..b44bb9cc 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -245,8 +245,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -272,7 +272,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -401,7 +401,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -459,30 +459,41 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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": [
- "restrained",
- "vulnerable"
+ "vulnerable",
+ "restrained"
],
"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 b03b5495..a3a76d7a 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "armor": {
"value": {
"custom": {
"enabled": true,
@@ -303,7 +303,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -356,8 +356,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -383,7 +383,7 @@
}
}
},
- {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -408,7 +408,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -465,18 +465,19 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "You must mark an additional Stress when you make an action roll. If the Ooze takes Severe damage, you are freed.
",
"tint": "#ffffff",
@@ -486,6 +487,16 @@
"_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 8cce1b94..eb7eafc1 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -314,8 +314,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 95a2ecd0..6a131c86 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -93,7 +93,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/skills/melee/sword-shield-stylized-white.webp",
"type": "attack",
diff --git a/src/packs/adversaries/adversary_Harrier_uRtghKE9mHlII4rs.json b/src/packs/adversaries/adversary_Harrier_uRtghKE9mHlII4rs.json
index 89d82a0b..84034a7e 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "hitPoints": {
"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 75afed49..f0c050a9 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -112,7 +112,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -258,7 +258,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -398,8 +398,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -425,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 d5891359..322e4658 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -244,8 +244,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -270,7 +270,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -322,7 +322,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -394,8 +394,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -420,7 +420,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -542,8 +542,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -568,7 +568,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_High_Seraph_r1mbfSSwKWdcFdAU.json b/src/packs/adversaries/adversary_High_Seraph_r1mbfSSwKWdcFdAU.json
index 0a952540..3dc96fd5 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/skills/melee/strike-blade-hooked-orange-blue.webp",
"type": "attack",
@@ -391,20 +391,21 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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,
@@ -412,6 +413,16 @@
"_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"
}
],
@@ -455,8 +466,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -482,7 +493,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 3bb8ae96..1615dec8 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -274,8 +274,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "armor": {
"value": {
"custom": {
"enabled": true,
@@ -300,7 +300,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -352,8 +352,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -378,7 +378,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -436,18 +436,19 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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",
@@ -457,6 +458,16 @@
"_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 4c6fd61f..7e71af98 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -300,8 +300,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -326,7 +326,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -394,8 +394,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -420,7 +420,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -507,25 +507,26 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "While Dazed, they can’t use their Regeneration action but are immune to magic damage.
",
"tint": "#ffffff",
@@ -535,6 +536,16 @@
"_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 ae359eaf..bfbff494 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "hitPoints": {
"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 6ca9749c..c6b2554e 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Whenever you roll with Hope, the hexer can mark a stress to make the roll be with Fear instead.
",
"tint": "#ffffff",
@@ -299,6 +299,16 @@
"_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"
}
],
@@ -337,8 +347,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -364,7 +374,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 c38260e9..3ce6a165 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": [
- {
+ "parts": {
+ "hitPoints": {
"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,25 +334,26 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -365,6 +366,16 @@
"_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 a52ec1c9..cfcdea8b 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -92,7 +92,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json b/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json
index c139d76f..8820f30c 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -364,8 +364,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -391,7 +391,7 @@
}
}
},
- {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -416,7 +416,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -491,8 +491,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -518,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 bca035c1..81b95d8b 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -246,8 +246,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 6fd02cb5..62253d69 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -246,8 +246,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 86d69c37..562b42b8 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -296,7 +296,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -417,7 +417,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -490,8 +490,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -516,7 +516,7 @@
},
"type": []
},
- {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -541,7 +541,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Knight_of_the_Realm_7ai2opemrclQe3VF.json b/src/packs/adversaries/adversary_Knight_of_the_Realm_7ai2opemrclQe3VF.json
index 71cb7a8d..01435922 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -117,7 +117,7 @@
},
"base": false
}
- ]
+ }
},
"range": "melee",
"type": "attack",
@@ -392,8 +392,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 3b84774e..4494e0e8 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/creatures/tentacles/tentacles-octopus-black-pink.webp",
"type": "attack",
@@ -327,7 +327,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -385,30 +385,41 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "You are Restrained and Vulnerable until you break free with a successful Strength Roll or the Kraken takes Major or greater damage. While Restrained and Vulnerable in this way, you must mark a Stress when you make an action roll.
",
"tint": "#ffffff",
"statuses": [
- "restrained",
- "vulnerable"
+ "vulnerable",
+ "restrained"
],
"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"
}
],
@@ -445,8 +456,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -472,7 +483,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -546,8 +557,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -573,7 +584,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 528df6a9..25740e52 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"range": "melee",
"type": "attack",
@@ -244,8 +244,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -269,7 +269,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -342,7 +342,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -400,30 +400,41 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "You are Restrained and Vulnerable until you break free, ending both conditions, with a successful Finesse or Strength Roll (13).
[[/dr trait=finesse difficulty=13]]
[[/dr trait=strength difficulty=13]]
",
"tint": "#ffffff",
"statuses": [
- "restrained",
- "vulnerable"
+ "vulnerable",
+ "restrained"
],
"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 3cec6e0b..2131023a 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -113,7 +113,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -254,8 +254,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false,
@@ -283,7 +283,7 @@
}
}
}
- ],
+ },
"includeBase": false,
"direct": true
},
@@ -469,8 +469,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"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 880b1a6e..482ba727 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "stress": {
"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 15c0aeb9..7ace67ac 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -112,7 +112,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -249,8 +249,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"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 b1732c71..21564421 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- ]
+ }
},
"range": "close",
"type": "attack",
@@ -317,8 +317,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -343,7 +343,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -380,18 +380,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "shortRest"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Vulnerable until your next rest or you clear a HP.
",
"tint": "#ffffff",
@@ -403,6 +403,16 @@
"_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"
}
],
@@ -448,8 +458,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -475,7 +485,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -557,8 +567,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -584,7 +594,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 0fceeba1..8f5f51f3 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -299,8 +299,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -325,7 +325,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -385,8 +385,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -412,7 +412,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -544,8 +544,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -571,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 2980a141..0cc9703c 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -297,8 +297,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -324,7 +324,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -405,8 +405,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -432,7 +432,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -511,8 +511,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -537,7 +537,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -578,8 +578,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -604,7 +604,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -674,8 +674,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -701,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 f05ba5fc..b2217e66 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -94,7 +94,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
diff --git a/src/packs/adversaries/adversary_Minotaur_Wrecker_rM9qCIYeWg9I0B4l.json b/src/packs/adversaries/adversary_Minotaur_Wrecker_rM9qCIYeWg9I0B4l.json
index 85981374..b4734967 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -327,7 +327,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -373,8 +373,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -401,7 +401,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -454,8 +454,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 5320a0ed..8d5845a9 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -112,7 +112,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -381,8 +381,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"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 8bc7fe10..2eaa9619 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -244,8 +244,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -270,7 +270,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -361,8 +361,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false,
@@ -390,7 +390,7 @@
}
}
}
- ],
+ },
"includeBase": false,
"direct": true
},
@@ -444,18 +444,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "scene"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Attacks made by the Hunter against a Deathlocked target deal direct damage.
",
"tint": "#ffffff",
@@ -465,6 +465,16 @@
"_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"
}
],
@@ -508,7 +518,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -581,8 +591,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -608,7 +618,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Oak_Treant_XK78QUfY8c8Go8Uv.json b/src/packs/adversaries/adversary_Oak_Treant_XK78QUfY8c8Go8Uv.json
index 3c110024..c5feed37 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false,
@@ -302,7 +302,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -399,25 +399,26 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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",
@@ -427,6 +428,16 @@
"_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 66fa5ba1..343cfdc1 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/magic/symbols/rune-sigil-rough-white-teal.webp",
"type": "attack",
@@ -244,8 +244,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -270,7 +270,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -322,8 +322,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -348,7 +348,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -407,8 +407,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -434,7 +434,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -514,7 +514,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -620,8 +620,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -647,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 5b565b8c..0f73354e 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/creatures/tentacles/tentacle-earth-green.webp",
"type": "attack",
@@ -263,7 +263,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -384,7 +384,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -442,20 +442,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "scene"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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,
@@ -463,6 +463,16 @@
"_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"
}
],
@@ -499,7 +509,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 83fbf4fa..6c78dced 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -238,8 +238,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -264,7 +264,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -316,8 +316,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -342,7 +342,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Outer_Realms_Thrall_moJhHgKqTKPS2WYS.json b/src/packs/adversaries/adversary_Outer_Realms_Thrall_moJhHgKqTKPS2WYS.json
index 5347bf49..5a7a605a 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -88,7 +88,7 @@
},
"base": false
}
- ]
+ }
},
"name": "Claws and Teeth",
"roll": {
diff --git a/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json b/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json
index b63e8cb7..999f89b9 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -112,7 +112,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/commodities/biological/hand-clawed-blue.webp",
"type": "attack",
@@ -252,8 +252,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -281,7 +281,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -360,8 +360,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -386,7 +386,7 @@
},
"type": []
},
- {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -411,7 +411,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -487,8 +487,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -513,7 +513,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Perfected_Zombie_CP6iRfHdyFWniTHY.json b/src/packs/adversaries/adversary_Perfected_Zombie_CP6iRfHdyFWniTHY.json
index e3da56b6..a6ce78d5 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -238,8 +238,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -264,7 +264,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -348,8 +348,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -375,7 +375,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -433,18 +433,19 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "shortRest",
+ "description": ""
}
},
- "changes": [],
"disabled": true,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Vulnerable until your next rest.
",
"tint": "#ffffff",
@@ -456,6 +457,16 @@
"_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 db284f40..bee77686 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 5b00ec60..428a9607 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -112,7 +112,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -251,8 +251,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -277,7 +277,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -401,8 +401,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": false
@@ -426,7 +426,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -501,8 +501,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"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 41f79b49..94137c2f 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "stress": {
"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 69b59211..2817b191 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -94,7 +94,7 @@
},
"base": false
}
- ],
+ },
"includeBase": false
},
"description": "",
@@ -269,8 +269,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -295,7 +295,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -347,8 +347,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 2c10ae3f..f74da475 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -299,7 +299,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -350,8 +350,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -377,7 +377,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -409,18 +409,19 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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",
@@ -430,6 +431,16 @@
"_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 7672961c..6755d27f 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -85,7 +85,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/creatures/abilities/mouth-teeth-sharp.webp",
"type": "attack",
diff --git a/src/packs/adversaries/adversary_Royal_Advisor_EtLJiTsilPPZvLUX.json b/src/packs/adversaries/adversary_Royal_Advisor_EtLJiTsilPPZvLUX.json
index 8593ec01..e215a444 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -113,7 +113,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -249,8 +249,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"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 d17c3f86..93bfef2c 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "fear": {
"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 514be8f5..ed6d7775 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -89,7 +89,7 @@
},
"base": false
}
- ]
+ }
},
"roll": {
"bonus": 3,
diff --git a/src/packs/adversaries/adversary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json b/src/packs/adversaries/adversary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json
index 7c3925ac..5161f8e2 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -266,8 +266,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"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 e385a6c5..f9bad7ea 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -238,8 +238,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -264,7 +264,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -316,8 +316,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -343,7 +343,7 @@
}
}
},
- {
+ "armor": {
"value": {
"custom": {
"enabled": true,
@@ -368,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 a72c6d46..38f77982 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/creatures/abilities/mouth-teeth-sharp.webp",
"range": "melee",
@@ -244,8 +244,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -271,7 +271,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -350,7 +350,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -408,20 +408,21 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until you mark 2 Stress.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "description": "While Entranced, you can’t act and are Vulnerable.
",
+ "description": "While Entranced, you can’t act and are Vulnerable.
",
"tint": "#ffffff",
"statuses": [
"vulnerable"
@@ -431,6 +432,16 @@
"_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 9d837ac0..f0dde9f0 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "hitPoints": {
"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 4013d7fe..e4cbab5e 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -86,7 +86,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
diff --git a/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json b/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json
index 3c26dd28..8b2042f3 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -240,8 +240,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -266,7 +266,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -326,8 +326,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -353,7 +353,7 @@
}
}
},
- {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -378,7 +378,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -452,8 +452,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -479,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 28003d5c..726b06e1 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 e6cc30f7..5b9cbb65 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"range": "far",
"type": "attack",
@@ -343,8 +343,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 b70a5d53..0572e018 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -103,7 +103,7 @@
},
"base": false
}
- ]
+ }
},
"roll": {
"bonus": 3,
@@ -456,8 +456,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"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 577a7d25..85893254 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -350,8 +350,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 13d6ed84..90c7d68f 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -108,7 +108,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -280,8 +280,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -307,7 +307,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -439,8 +439,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -466,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 5affdc44..0e160edb 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": [
- {
+ "parts": {
+ "fear": {
"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 603182cc..e7738a46 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -244,8 +244,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -271,7 +271,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -330,7 +330,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -410,8 +410,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -435,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 de3ef9f2..c50c426d 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"range": "melee",
"type": "attack",
@@ -276,8 +276,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -301,7 +301,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -359,18 +359,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -382,6 +382,16 @@
"_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"
}
],
@@ -425,8 +435,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -452,7 +462,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -563,8 +573,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -590,7 +600,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 014b3dc6..28d5dabe 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 2ec5e924..f3ce03c3 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -246,8 +246,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -273,7 +273,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -353,8 +353,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 40297eb6..f8f93cf2 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -126,7 +126,7 @@
"resultBased": false,
"base": false
}
- ],
+ },
"includeBase": false
},
"description": "",
@@ -309,8 +309,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 33afaa3a..c36502de 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -122,7 +122,7 @@
},
"base": false
}
- ],
+ },
"includeBase": false
},
"description": "",
diff --git a/src/packs/adversaries/adversary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json b/src/packs/adversaries/adversary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json
index 6a984b3c..9470502c 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -84,7 +84,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/creatures/slimes/slime-movement-dripping-pseudopods-green.webp",
"type": "attack",
@@ -128,12 +128,9 @@
"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 +181,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": [],
+ "detectionModes": {},
"occludable": {
"radius": 0
},
@@ -210,7 +207,8 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false
+ "prependAdjective": false,
+ "depth": 1
},
"items": [
{
@@ -219,7 +217,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 benefi ts (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.
",
+ "description": "When the @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.
",
"resource": null,
"actions": {
"HfK0u0c7NRppuF1Q": {
@@ -236,8 +234,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "armor": {
"value": {
"custom": {
"enabled": true,
@@ -262,7 +260,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 116fffba..28d6490e 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -85,7 +85,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -236,8 +236,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 ad9d8107..c6c11d36 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -94,7 +94,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
diff --git a/src/packs/adversaries/adversary_Vampire_WWyUp6Mxl1S3KYUG.json b/src/packs/adversaries/adversary_Vampire_WWyUp6Mxl1S3KYUG.json
index 4f51cd79..6ba4935a 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -107,7 +107,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"range": "melee",
@@ -244,8 +244,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 d1cca592..97c493a8 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": [
- {
+ "parts": {
+ "hitPoints": {
"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,20 +328,21 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until freed with a successful Strength Roll (18).
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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"
@@ -351,6 +352,16 @@
"_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 67139669..d4fa0340 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -132,12 +132,9 @@
"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
},
@@ -188,7 +185,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": [],
+ "detectionModes": {},
"occludable": {
"radius": 0
},
@@ -214,7 +211,8 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false
+ "prependAdjective": false,
+ "depth": 1
},
"items": [
{
@@ -246,7 +244,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]Sentinel can only focus on one target at a time.
",
+ "description": "Mark a Stress to choose a target within Very Close range to focus on. That target has disadvantage on attack rolls when they’re within Very Close range of the @Lookup[@name]. The @Lookup[@name] can only focus on one target at a time.
",
"resource": null,
"actions": {
"4RQnBu4kcUs3PcPH": {
@@ -375,8 +373,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -402,7 +400,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -476,8 +474,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -503,7 +501,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 ab683607..d723df80 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -101,7 +101,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/commodities/tech/metal-joint.webp",
"type": "attack",
@@ -429,8 +429,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -456,7 +456,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_Volcanic_Dragon__Ashen_Tyrant_pMuXGCSOQaxpi5tb.json b/src/packs/adversaries/adversary_Volcanic_Dragon__Ashen_Tyrant_pMuXGCSOQaxpi5tb.json
index 82bdd810..f6a8bc84 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -94,7 +94,7 @@
},
"base": false
}
- ],
+ },
"includeBase": false
},
"description": "",
@@ -451,8 +451,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -477,7 +477,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -529,8 +529,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -556,7 +556,7 @@
}
}
},
- {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -581,7 +581,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -710,8 +710,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -737,7 +737,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -841,18 +841,19 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until you break free with a successful Strength Roll.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Restrained by the rubble until you break free with a successful Strength Roll.
",
"tint": "#ffffff",
@@ -864,6 +865,16 @@
"_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 7f9deb6c..25c8b637 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -94,7 +94,7 @@
},
"base": false
}
- ],
+ },
"includeBase": false
},
"description": "",
@@ -359,8 +359,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -386,7 +386,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -459,8 +459,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -486,7 +486,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -566,7 +566,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -612,8 +612,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -639,7 +639,7 @@
}
}
},
- {
+ "stress": {
"value": {
"custom": {
"enabled": false
@@ -663,7 +663,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -721,18 +721,19 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until you clear a Stress.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Vulnerable until you clear a Stress.
",
"tint": "#ffffff",
@@ -744,6 +745,16 @@
"_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"
}
],
@@ -780,8 +791,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -807,7 +818,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 5f32aae5..227efccc 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -94,7 +94,7 @@
},
"base": false
}
- ],
+ },
"includeBase": false
},
"description": "",
@@ -465,8 +465,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -490,7 +490,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -607,8 +607,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -634,7 +634,7 @@
}
}
},
- {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -659,7 +659,7 @@
},
"type": []
},
- {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -684,7 +684,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/adversaries/adversary_War_Wizard_noDdT0tsN6FXSmC8.json b/src/packs/adversaries/adversary_War_Wizard_noDdT0tsN6FXSmC8.json
index f087c63d..55be8e1a 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -113,7 +113,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -367,8 +367,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -394,7 +394,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -474,8 +474,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -501,7 +501,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -574,8 +574,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -601,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 2989468b..8eaf56f9 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -102,7 +102,7 @@
},
"base": false
}
- ]
+ }
},
"type": "attack",
"chatDisplay": false
@@ -240,8 +240,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -267,7 +267,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -324,18 +324,19 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until your next successful attack
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "The next time the Taunted target attacks, they have disadvantage against targets other than the Weaponmaster.
",
"tint": "#ffffff",
@@ -345,6 +346,16 @@
"_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"
}
],
@@ -405,8 +416,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -431,7 +442,7 @@
},
"type": []
},
- {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -456,7 +467,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -526,8 +537,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -553,7 +564,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 446a4af3..9d7f66d0 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": [
- {
+ "parts": {
+ "hitPoints": {
"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,20 +367,21 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until they’re freed with a successful Strength Roll.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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"
@@ -390,6 +391,16 @@
"_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"
}
],
@@ -429,8 +440,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -456,7 +467,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 c55262e4..09e76fa8 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -106,7 +106,7 @@
},
"base": false
}
- ]
+ }
},
"img": "icons/creatures/claws/claw-scaled-red.webp",
"type": "attack",
@@ -302,8 +302,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -328,7 +328,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -412,8 +412,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -439,7 +439,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -563,7 +563,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -621,18 +621,19 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until they dig themselves out from the debris.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Vulnerable until you dig yourself out from the debris.
",
"tint": "#ffffff",
@@ -644,6 +645,16 @@
"_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"
}
],
@@ -680,8 +691,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -706,7 +717,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -744,25 +755,26 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Chilled until your next rest or you clear a Stress. While you are Chilled, you have disadvantage on attack rolls.
",
"tint": "#ffffff",
@@ -772,6 +784,16 @@
"_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"
}
],
@@ -809,8 +831,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -836,7 +858,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 91bdab81..2c3495ff 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 017537ad..f418758a 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 f1f7ae35..0af2610a 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 71ac4438..a660daf5 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -47,7 +47,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/ancestries/feature_Fungril_Network_9tmeXm623hl4Qnws.json b/src/packs/ancestries/feature_Fungril_Network_9tmeXm623hl4Qnws.json
index 9d970a67..87638f37 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 89546ded..b363b6c2 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 aee64a9a..1f1156d7 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 3c31d62d..36fd73fb 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": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -48,7 +48,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/ancestries/feature_Retracting_Claws_Zj69cAeb3NjIa8Hn.json b/src/packs/ancestries/feature_Retracting_Claws_Zj69cAeb3NjIa8Hn.json
index 8e408ec6..b9b000f4 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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -106,6 +106,16 @@
"_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 5bd72773..6038f2c6 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 195b10e8..bf0a241b 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 71018bc9..bd9bfffb 100644
--- a/src/packs/beastforms/beastform_Agile_Scout_a9UoCwtrbgKk02mK.json
+++ b/src/packs/beastforms/beastform_Agile_Scout_a9UoCwtrbgKk02mK.json
@@ -29,8 +29,7 @@
"Compendium.daggerheart.beastforms.Item.QFg1hNCEoKVDd9Zo"
],
"evolved": {
- "mainTraitBonus": 0,
- "maximumTier": 1
+ "mainTraitBonus": 0
},
"hybrid": {
"beastformOptions": 2,
diff --git a/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json b/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json
index b7d85ef1..43ba16a8 100644
--- a/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json
+++ b/src/packs/beastforms/feature_Demolish_DfBXO8jTchwFG8dZ.json
@@ -27,8 +27,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -52,7 +52,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -107,17 +107,18 @@
"transfer": false,
"_id": "FXdFgEgqVl5gIWJS",
"type": "base",
- "system": {},
- "changes": [],
+ "system": {
+ "changes": [],
+ "duration": {
+ "type": "temporary"
+ }
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -129,6 +130,16 @@
"_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 d99a6ab7..a81eb8af 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 6a16f864..a1d80e5d 100644
--- a/src/packs/beastforms/feature_Hobbling_Strike_8u0HkK3WgtU9lWYs.json
+++ b/src/packs/beastforms/feature_Hobbling_Strike_8u0HkK3WgtU9lWYs.json
@@ -58,17 +58,18 @@
"transfer": false,
"_id": "2kKkV9zhfvqA2vlt",
"type": "base",
- "system": {},
- "changes": [],
+ "system": {
+ "changes": [],
+ "duration": {
+ "type": "temporary"
+ }
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -80,6 +81,16 @@
"_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 a4431417..aa0baa31 100644
--- a/src/packs/beastforms/feature_Ocean_Master_tGDdEH40wyOCsFmH.json
+++ b/src/packs/beastforms/feature_Ocean_Master_tGDdEH40wyOCsFmH.json
@@ -51,17 +51,18 @@
"transfer": false,
"_id": "6GBczj8REkDmgX2Q",
"type": "base",
- "system": {},
- "changes": [],
+ "system": {
+ "changes": [],
+ "duration": {
+ "type": "temporary"
+ }
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -73,6 +74,16 @@
"_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 d79c9018..581bdcf5 100644
--- a/src/packs/beastforms/feature_Snapping_Strike_Ky3rZD3sJMXYZOBC.json
+++ b/src/packs/beastforms/feature_Snapping_Strike_Ky3rZD3sJMXYZOBC.json
@@ -58,17 +58,18 @@
"transfer": false,
"_id": "y3EsJuInxE7juNXT",
"type": "base",
- "system": {},
- "changes": [],
+ "system": {
+ "changes": [],
+ "duration": {
+ "type": "temporary"
+ }
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -81,6 +82,16 @@
"_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 4dc2c0f7..531b30ea 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 e9878f02..4f0ea6c3 100644
--- a/src/packs/beastforms/feature_Trample_A0lgd6eVEfX6oqSB.json
+++ b/src/packs/beastforms/feature_Trample_A0lgd6eVEfX6oqSB.json
@@ -27,8 +27,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -52,7 +52,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -107,17 +107,18 @@
"transfer": false,
"_id": "LkekG4IngVW9rFjI",
"type": "base",
- "system": {},
- "changes": [],
+ "system": {
+ "changes": [],
+ "duration": {
+ "type": "temporary"
+ }
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -129,6 +130,16 @@
"_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 6bfafa79..429b5a1a 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 00870086..30ace68f 100644
--- a/src/packs/beastforms/feature_Venomous_Bite_2KlTnfzO03vneVS8.json
+++ b/src/packs/beastforms/feature_Venomous_Bite_2KlTnfzO03vneVS8.json
@@ -51,17 +51,18 @@
"transfer": false,
"_id": "TTyAKKoUCoYXSMs4",
"type": "base",
- "system": {},
- "changes": [],
+ "system": {
+ "changes": [],
+ "duration": {
+ "type": "temporary"
+ }
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "A Poisoned creature takes 1d10 direct physical damage each time they act.
",
"tint": "#ffffff",
@@ -71,6 +72,16 @@
"_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 57d5bb56..923e43bd 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,17 +75,18 @@
"transfer": false,
"_id": "1iQPj96LqUNkRaxE",
"type": "base",
- "system": {},
- "changes": [],
+ "system": {
+ "changes": [],
+ "duration": {
+ "type": "temporary"
+ }
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "A Poisoned creature takes 1d10 physical direct damage each time they act.
",
"tint": "#ffffff",
@@ -95,6 +96,16 @@
"_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 2bdad760..a3494ed0 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -53,7 +53,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -88,17 +88,18 @@
"transfer": false,
"_id": "MIAh9XNwDXGDktCm",
"type": "base",
- "system": {},
- "changes": [],
+ "system": {
+ "changes": [],
+ "duration": {
+ "type": "temporary"
+ }
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -110,6 +111,16 @@
"_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 40adb28b..7cd48d25 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,17 +75,18 @@
"transfer": false,
"_id": "cBJueH89gNvvDKfQ",
"type": "base",
- "system": {},
- "changes": [],
+ "system": {
+ "changes": [],
+ "duration": {
+ "type": "temporary"
+ }
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -97,6 +98,16 @@
"_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 c4dd83a7..31288916 100644
--- a/src/packs/classes/class_Bard_vegl3bFOq3pcFTWT.json
+++ b/src/packs/classes/class_Bard_vegl3bFOq3pcFTWT.json
@@ -4,7 +4,7 @@
"type": "class",
"img": "icons/tools/instruments/harp-red.webp",
"system": {
- "description": "Note: At level 5 use Rally (Level 5) instead of Rally under class feature. (Automation will be implemented in a later release)
Bards are the most charismatic people in all the realms. Members of this class are masters of captivation and specialize in a variety of performance types, including singing, playing musical instruments, weaving tales, or telling jokes. Whether performing for an audience or speaking to an individual, bards thrive in social situations. Members of this profession bond and train at schools or guilds, but a current of egotism runs through those of the bardic persuasion. While they may be the most likely class to bring people together, a bard of ill temper can just as easily tear a party apart.
",
+ "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.
",
"domains": [
"grace",
"codex"
diff --git a/src/packs/classes/feature_Evolution_6rlxhrRwFaVgq9fe.json b/src/packs/classes/feature_Evolution_6rlxhrRwFaVgq9fe.json
index 46380fe8..421063a4 100644
--- a/src/packs/classes/feature_Evolution_6rlxhrRwFaVgq9fe.json
+++ b/src/packs/classes/feature_Evolution_6rlxhrRwFaVgq9fe.json
@@ -5,7 +5,7 @@
"_id": "6rlxhrRwFaVgq9fe",
"img": "icons/magic/nature/wolf-paw-glow-large-orange.webp",
"system": {
- "description": "Spend 3 Hope to transform into a Beastform without marking a Stress. When you do, choose one trait to raise by +1 until you drop out of that Beastform.
Note: Toggle one of the Evolution Traits in the effects tab to raise a trait by 1, e.g. Evolution: Agility
",
+ "description": "Spend 3 Hope to transform into a Beastform without marking a Stress. When you do, choose one trait to raise by +1 until you drop out of that Beastform.
",
"resource": null,
"actions": {
"bj4m9E8ObFT0xDQ4": {
@@ -31,6 +31,13 @@
"beastform": {
"tierAccess": {
"exact": null
+ },
+ "modifications": {
+ "traitBonuses": [
+ {
+ "bonus": 1
+ }
+ ]
}
},
"name": "Beastform",
@@ -46,266 +53,7 @@
"artist": ""
}
},
- "effects": [
- {
- "name": "Evolution: Agility",
- "type": "base",
- "system": {
- "rangeDependence": {
- "enabled": false,
- "type": "withinRange",
- "target": "hostile",
- "range": "melee"
- }
- },
- "_id": "vQOqLZAxOltAzsVv",
- "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp",
- "changes": [
- {
- "key": "system.traits.agility.value",
- "mode": 2,
- "value": "1",
- "priority": null
- }
- ],
- "disabled": true,
- "duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
- },
- "description": "Toggle this for +1 to Agility when using Evolution. Turn it off when you leave Beastform.
",
- "origin": null,
- "tint": "#ffffff",
- "transfer": true,
- "statuses": [],
- "sort": 0,
- "flags": {},
- "_stats": {
- "compendiumSource": null
- },
- "_key": "!items.effects!6rlxhrRwFaVgq9fe.vQOqLZAxOltAzsVv"
- },
- {
- "name": "Evolution: Strength",
- "type": "base",
- "system": {
- "rangeDependence": {
- "enabled": false,
- "type": "withinRange",
- "target": "hostile",
- "range": "melee"
- }
- },
- "_id": "cwEsO1NZpkQHuoTT",
- "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp",
- "changes": [
- {
- "key": "system.traits.strength.value",
- "mode": 2,
- "value": "1",
- "priority": null
- }
- ],
- "disabled": true,
- "duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
- },
- "description": "Toggle this for +1 to Strength when using Evolution. Turn it off when you leave Beastform.
",
- "origin": null,
- "tint": "#ffffff",
- "transfer": true,
- "statuses": [],
- "sort": 0,
- "flags": {},
- "_stats": {
- "compendiumSource": null
- },
- "_key": "!items.effects!6rlxhrRwFaVgq9fe.cwEsO1NZpkQHuoTT"
- },
- {
- "name": "Evolution: Finesse",
- "type": "base",
- "system": {
- "rangeDependence": {
- "enabled": false,
- "type": "withinRange",
- "target": "hostile",
- "range": "melee"
- }
- },
- "_id": "8P0nwRHNsVnHVPjq",
- "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp",
- "changes": [
- {
- "key": "system.traits.finesse.value",
- "mode": 2,
- "value": "1",
- "priority": null
- }
- ],
- "disabled": true,
- "duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
- },
- "description": "Toggle this for +1 to Finesse when using Evolution. Turn it off when you leave Beastform.
",
- "origin": null,
- "tint": "#ffffff",
- "transfer": true,
- "statuses": [],
- "sort": 0,
- "flags": {},
- "_stats": {
- "compendiumSource": null
- },
- "_key": "!items.effects!6rlxhrRwFaVgq9fe.8P0nwRHNsVnHVPjq"
- },
- {
- "name": "Evolution: Instinct",
- "type": "base",
- "system": {
- "rangeDependence": {
- "enabled": false,
- "type": "withinRange",
- "target": "hostile",
- "range": "melee"
- }
- },
- "_id": "i2GhNGo5TnGtLuA0",
- "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp",
- "changes": [
- {
- "key": "system.traits.instinct.value",
- "mode": 2,
- "value": "1",
- "priority": null
- }
- ],
- "disabled": true,
- "duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
- },
- "description": "Toggle this for +1 to Instinct when using Evolution. Turn it off when you leave Beastform.
",
- "origin": null,
- "tint": "#ffffff",
- "transfer": true,
- "statuses": [],
- "sort": 0,
- "flags": {},
- "_stats": {
- "compendiumSource": null
- },
- "_key": "!items.effects!6rlxhrRwFaVgq9fe.i2GhNGo5TnGtLuA0"
- },
- {
- "name": "Evolution: Presence",
- "type": "base",
- "system": {
- "rangeDependence": {
- "enabled": false,
- "type": "withinRange",
- "target": "hostile",
- "range": "melee"
- }
- },
- "_id": "APQF1in1LXjBZh9n",
- "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp",
- "changes": [
- {
- "key": "system.traits.presence.value",
- "mode": 2,
- "value": "1",
- "priority": null
- }
- ],
- "disabled": true,
- "duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
- },
- "description": "Toggle this for +1 to Presence when using Evolution. Turn it off when you leave Beastform.
",
- "origin": null,
- "tint": "#ffffff",
- "transfer": true,
- "statuses": [],
- "sort": 0,
- "flags": {},
- "_stats": {
- "compendiumSource": null
- },
- "_key": "!items.effects!6rlxhrRwFaVgq9fe.APQF1in1LXjBZh9n"
- },
- {
- "name": "Evolution: Knowledge",
- "type": "base",
- "system": {
- "rangeDependence": {
- "enabled": false,
- "type": "withinRange",
- "target": "hostile",
- "range": "melee"
- }
- },
- "_id": "WwOvGJYJb4d37cOy",
- "img": "icons/magic/nature/wolf-paw-glow-large-orange.webp",
- "changes": [
- {
- "key": "system.traits.knowledge.value",
- "mode": 2,
- "value": "1",
- "priority": null
- }
- ],
- "disabled": true,
- "duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
- },
- "description": "Toggle this for +1 to Knowledge when using Evolution. Turn it off when you leave Beastform.
",
- "origin": null,
- "tint": "#ffffff",
- "transfer": true,
- "statuses": [],
- "sort": 0,
- "flags": {},
- "_stats": {
- "compendiumSource": null
- },
- "_key": "!items.effects!6rlxhrRwFaVgq9fe.WwOvGJYJb4d37cOy"
- }
- ],
+ "effects": [],
"sort": 100000,
"ownership": {
"default": 0,
diff --git a/src/packs/classes/feature_Frontline_Tank_YS1g7YdWwOaS629x.json b/src/packs/classes/feature_Frontline_Tank_YS1g7YdWwOaS629x.json
index 7b7be61a..81fd08cc 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": [
- {
+ "parts": {
+ "armor": {
"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 9c4fc450..b788f1f4 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 1a444728..5f28c048 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/svg/daze.svg",
+ "img": "icons/magic/sonic/scream-wail-shout-teal.webp",
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "description": "",
+ "description": "Giving them a -2 penalty to their Difficulty.
",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -92,6 +92,16 @@
"_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 fe18f68b..5f4d5fe7 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 4d10c3b9..5b770e5d 100644
--- a/src/packs/classes/feature_No_Mercy_njj2C3tMDeCHHOoh.json
+++ b/src/packs/classes/feature_No_Mercy_njj2C3tMDeCHHOoh.json
@@ -67,25 +67,29 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Gain a +1 bonus to your attack rolls until your next rest.
",
"tint": "#ffffff",
@@ -95,6 +99,16 @@
"_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 231295fc..b886b079 100644
--- a/src/packs/classes/feature_Rogue_s_Dodge_hVaaPIjxoextIgSL.json
+++ b/src/packs/classes/feature_Rogue_s_Dodge_hVaaPIjxoextIgSL.json
@@ -65,25 +65,30 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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",
@@ -93,6 +98,16 @@
"_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 953b3a2c..6939ff7f 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": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -55,7 +55,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -85,7 +85,7 @@
{
"trigger": "dualityRoll",
"triggeringActorType": "self",
- "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;"
+ "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;"
}
]
}
diff --git a/src/packs/domains/domainCard_A_Soldier_s_Bond_Y08dLFuPXsgeRrHi.json b/src/packs/domains/domainCard_A_Soldier_s_Bond_Y08dLFuPXsgeRrHi.json
index d3da85b6..09255a76 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": [
- {
+ "parts": {
+ "hope": {
"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 e6d38e3f..e557b8cd 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 aa9910dc..cad6012e 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": [
- {
+ "parts": {
+ "armor": {
"value": {
"custom": {
"enabled": true,
@@ -50,7 +50,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -92,34 +92,28 @@
"name": "Armorer",
"type": "base",
"system": {
- "rangeDependence": {
- "enabled": false,
- "type": "withinRange",
- "target": "hostile",
- "range": "melee"
- }
+ "changes": [
+ {
+ "type": "armor",
+ "phase": "initial",
+ "priority": 20,
+ "value": {
+ "max": "1",
+ "interaction": "active"
+ }
+ }
+ ]
},
- "_id": "cED730OjuMW5haJR",
+ "_id": "tJw2JIPcT9hEMRXg",
"img": "icons/tools/hand/hammer-and-nail.webp",
- "changes": [
- {
- "key": "system.armorScore",
- "mode": 2,
- "value": "1",
- "priority": null
- }
- ],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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,
@@ -129,7 +123,10 @@
"_stats": {
"compendiumSource": null
},
- "_key": "!items.effects!cy8GjBPGc9w9RaGO.cED730OjuMW5haJR"
+ "start": null,
+ "showIcon": 1,
+ "folder": null,
+ "_key": "!items.effects!cy8GjBPGc9w9RaGO.tJw2JIPcT9hEMRXg"
}
],
"ownership": {
diff --git a/src/packs/domains/domainCard_Banish_AIbHfryMA2Rvs1ut.json b/src/packs/domains/domainCard_Banish_AIbHfryMA2Rvs1ut.json
index b637a622..e3c23dbf 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 3b1ea76a..098f5f4c 100644
--- a/src/packs/domains/domainCard_Bare_Bones_l5D9kq901JDESaXw.json
+++ b/src/packs/domains/domainCard_Bare_Bones_l5D9kq901JDESaXw.json
@@ -19,7 +19,52 @@
}
},
"flags": {},
- "effects": [],
+ "effects": [
+ {
+ "name": "Bare Bones",
+ "type": "base",
+ "system": {
+ "changes": [
+ {
+ "type": "armor",
+ "phase": "initial",
+ "priority": 20,
+ "value": {
+ "max": "3 + @system.traits.strength.value",
+ "interaction": "inactive",
+ "damageThresholds": {
+ "major": "9 + (@tier - 1) * 5 + max(0, (@tier -2) * 2 )",
+ "severe": "19 + (@tier - 1) * 5 + max(0, (@tier -2) * 2 )"
+ }
+ }
+ }
+ ]
+ },
+ "_id": "FCsgz7Tdsw6QUzBs",
+ "img": "icons/magic/control/buff-strength-muscle-damage-orange.webp",
+ "disabled": false,
+ "start": 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"
+ }
+ ],
"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 432f9992..c9ae6071 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": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -51,7 +51,7 @@
},
"type": []
},
- {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -76,7 +76,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Battle_Hardened_NeEOghgfyDUBTwBG.json b/src/packs/domains/domainCard_Battle_Hardened_NeEOghgfyDUBTwBG.json
index dfd0c68d..852cd329 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 0b96d99c..617bd27b 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 eb053b27..df7d36a4 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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,6 +142,16 @@
"_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 4ed5bd63..fa247c89 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -51,7 +51,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -105,7 +105,7 @@
},
"effects": [
{
- "_id": "LdcT1nrkd5ORCU4n",
+ "_id": "ptYT10JZ2WJHvFMd",
"onSave": false
}
],
@@ -131,7 +131,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -177,8 +177,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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": "LdcT1nrkd5ORCU4n",
+ "_id": "ptYT10JZ2WJHvFMd",
"type": "base",
"system": {
"rangeDependence": {
@@ -260,25 +260,27 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "+1 bonus to your Armor Score until your next rest, or the caster cast's Tava’s Armor again.
",
"tint": "#ffffff",
@@ -288,7 +290,17 @@
"_stats": {
"compendiumSource": null
},
- "_key": "!items.effects!YtZzYBtR0yLPPA93.LdcT1nrkd5ORCU4n"
+ "start": {
+ "time": 0,
+ "combat": null,
+ "combatant": null,
+ "initiative": null,
+ "round": null,
+ "turn": null
+ },
+ "showIcon": 1,
+ "folder": null,
+ "_key": "!items.effects!YtZzYBtR0yLPPA93.ptYT10JZ2WJHvFMd"
}
],
"ownership": {
diff --git a/src/packs/domains/domainCard_Book_of_Exota_oVs2MSC6Uf5GbgEG.json b/src/packs/domains/domainCard_Book_of_Exota_oVs2MSC6Uf5GbgEG.json
index 032a2de2..d228d04b 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 05276707..d84a8e18 100644
--- a/src/packs/domains/domainCard_Book_of_Grynn_R0LNheiZycZlZzV3.json
+++ b/src/packs/domains/domainCard_Book_of_Grynn_R0LNheiZycZlZzV3.json
@@ -76,8 +76,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -103,7 +103,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Book_of_Homet_gFMx08ogQ8hS2Obi.json b/src/packs/domains/domainCard_Book_of_Homet_gFMx08ogQ8hS2Obi.json
index a0102739..f6f048d1 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 5acec2fd..b34fa000 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Lasts until your next rest or the caster casts Telepathy again.
",
"tint": "#ffffff",
@@ -198,6 +198,16 @@
"_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"
},
{
@@ -213,18 +223,19 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Asleep until they take damage or the GM spends a Fear on their turn to clear this condition.
",
"tint": "#ffffff",
@@ -234,6 +245,16 @@
"_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 5bef4922..d97c514b 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": {
@@ -130,8 +130,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -157,7 +157,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Book_of_Norai_WtwSWXTRZa7QVvmo.json b/src/packs/domains/domainCard_Book_of_Norai_WtwSWXTRZa7QVvmo.json
index 6581cd52..f32f380a 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": [
- {
+ "parts": {
+ "stress": {
"resultBased": false,
"value": {
"custom": {
@@ -50,7 +50,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -101,8 +101,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -207,6 +207,16 @@
"_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 c809a8e0..88bb759d 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 e88ccea9..16b7a63b 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 4eabb038..37b71b9c 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 eadd1550..a5764f48 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 b94cd702..522a8f7c 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 2a48b31e..17eb4223 100644
--- a/src/packs/domains/domainCard_Book_of_Yarrow_J1ovx2FpNDvPq1o6.json
+++ b/src/packs/domains/domainCard_Book_of_Yarrow_J1ovx2FpNDvPq1o6.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -114,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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Immune to magic damage until your next rest.
",
"tint": "#ffffff",
@@ -142,6 +142,16 @@
"_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 682357cc..c2bf721f 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -60,7 +60,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -107,8 +107,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -134,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 be639515..304541e4 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -59,7 +59,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -109,8 +109,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "armor": {
"value": {
"custom": {
"enabled": true,
@@ -135,7 +135,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -185,8 +185,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 587e7855..73424902 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 8ea51d7f..e3df986e 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -52,7 +52,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -104,8 +104,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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,6 +190,16 @@
"_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 67817fc1..a2a06889 100644
--- a/src/packs/domains/domainCard_Cloaking_Blast_Zhw7PtK8nMPlsOqD.json
+++ b/src/packs/domains/domainCard_Cloaking_Blast_Zhw7PtK8nMPlsOqD.json
@@ -70,18 +70,19 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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",
@@ -91,6 +92,16 @@
"_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 859635f3..a261da89 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 ededde93..d1d1789d 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -148,7 +148,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Corrosive_Projectile_qJaSNTuDfbPVr8Lb.json b/src/packs/domains/domainCard_Corrosive_Projectile_qJaSNTuDfbPVr8Lb.json
index 09dff08a..6a039bbf 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -49,7 +49,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -127,7 +127,7 @@
"sort": 3400000,
"effects": [
{
- "name": "Corroded (1 stack)",
+ "name": "Corroded",
"img": "icons/magic/acid/dissolve-bone-white.webp",
"origin": "Compendium.daggerheart.domains.Item.qJaSNTuDfbPVr8Lb",
"transfer": false,
@@ -139,27 +139,31 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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"
@@ -169,6 +173,16 @@
"_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 7d3a74c9..a8d403d8 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 c8013a14..252878ea 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 390a2526..7d8ecf40 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 6e7c6b64..214dae17 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": [
- {
+ "parts": {
+ "stress": {
"resultBased": false,
"value": {
"custom": {
@@ -101,7 +101,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -152,8 +152,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -179,7 +179,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Disintegration_Wave_kja5qvh4rdeDBB96.json b/src/packs/domains/domainCard_Disintegration_Wave_kja5qvh4rdeDBB96.json
index 4e3c3083..7d7ed27d 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 57fc72db..0a35c95f 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "description": "Temporarily Vulnerable.
",
+ "description": "Temporarily Vulnerable.
",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -144,6 +144,16 @@
"_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 bd080f0d..c797a148 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": {
@@ -76,8 +76,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -102,7 +102,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Encore_klahWDFwihqqEhXP.json b/src/packs/domains/domainCard_Encore_klahWDFwihqqEhXP.json
index 23358d47..fabc00e1 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 fd27c8ce..284682fa 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": [
- {
+ "parts": {
+ "stress": {
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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,6 +165,16 @@
"_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 ee36e25d..05496132 100644
--- a/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json
+++ b/src/packs/domains/domainCard_Falling_Sky_hZJp9mdkMnqKDROe.json
@@ -33,8 +33,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -59,7 +59,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Final_Words_Nbw6Jnh1vRZzwHQI.json b/src/packs/domains/domainCard_Final_Words_Nbw6Jnh1vRZzwHQI.json
index 757a705a..65d7dd83 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 bd8744f7..4d1355ee 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 292961b8..e8919d6b 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": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -50,7 +50,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -91,8 +91,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -117,7 +117,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -185,8 +185,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 d77c8777..3d17ab5d 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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -92,6 +92,16 @@
"_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 feb095a2..4fa469a6 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 2de4be7e..6666bc28 100644
--- a/src/packs/domains/domainCard_Frenzy_MMl7abdGRLl7TJLO.json
+++ b/src/packs/domains/domainCard_Frenzy_MMl7abdGRLl7TJLO.json
@@ -62,43 +62,44 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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",
@@ -108,6 +109,16 @@
"_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 43b4baf4..fb0bd16d 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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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,6 +126,16 @@
"_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 70338c03..a0766c1c 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 ef2b6df9..35100187 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": "X2w3kRHaETs8YWLO",
+ "_id": "9avDhppIdTqAR56f",
"onSave": false
}
],
@@ -82,12 +82,25 @@
"effects": [
{
"name": "Glyph of Nightfall",
- "img": "icons/magic/symbols/runes-triangle-magenta.webp",
+ "img": "systems/daggerheart/assets/icons/domains/domain-card/midnight.png",
"origin": "Compendium.daggerheart.domains.Item.B5HXqYRJiL3xMNKT",
"transfer": false,
- "_id": "st8Ji9ZNexvw64xM",
+ "_id": "9avDhppIdTqAR56f",
"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",
@@ -95,76 +108,32 @@
"range": "melee"
}
},
- "changes": [
- {
- "key": "system.difficulty",
- "mode": 2,
- "value": "-max(ORIGIN.@system.traits.knowledge.value,1)",
- "priority": null
- }
- ],
"disabled": false,
- "duration": {
- "startTime": null,
+ "start": {
+ "time": 0,
"combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "combatant": null,
+ "initiative": null,
+ "round": null,
+ "turn": 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).
",
+ "duration": {
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
+ },
+ "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.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"
+ "_key": "!items.effects!B5HXqYRJiL3xMNKT.9avDhppIdTqAR56f"
}
],
"ownership": {
diff --git a/src/packs/domains/domainCard_Goad_Them_On_HufF5KzuNfEb9RTi.json b/src/packs/domains/domainCard_Goad_Them_On_HufF5KzuNfEb9RTi.json
index 190028ed..db28b8b5 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": [
- {
+ "parts": {
+ "stress": {
"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 8151beaa..ff648409 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": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -51,7 +51,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -93,8 +93,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"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 346a81f2..2e48f07b 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": [
- {
+ "parts": {
+ "stress": {
"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 56387c50..5663c6b3 100644
--- a/src/packs/domains/domainCard_Ground_Pound_WnGldYhJPDhx8v9X.json
+++ b/src/packs/domains/domainCard_Ground_Pound_WnGldYhJPDhx8v9X.json
@@ -31,8 +31,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -58,7 +58,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json b/src/packs/domains/domainCard_Healing_Field_GlRm1Dxlc0Z1b04o.json
index 0f60cc32..d918d49f 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -59,7 +59,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -117,8 +117,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -143,7 +143,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Healing_Hands_WTlhnQMajc1r8i50.json b/src/packs/domains/domainCard_Healing_Hands_WTlhnQMajc1r8i50.json
index 1245fc4b..c771562c 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -111,7 +111,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -161,8 +161,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -187,7 +187,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -237,8 +237,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -263,7 +263,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -313,8 +313,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"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 26fab1a9..22f7f2c9 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 5b3c95d3..263220e4 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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "If an adversary moves within Very Close range, they’re pulled into Melee range and Restrained.
",
"tint": "#ffffff",
@@ -155,6 +155,16 @@
"_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 f49c4a83..28c41c7e 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,45 +82,7 @@
"effects": [
{
"name": "Silenced",
- "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",
+ "img": "systems/daggerheart/assets/icons/domains/domain-card/midnight.png",
"origin": "Compendium.daggerheart.domains.Item.gwmYasmfgXZ7tFS6",
"transfer": false,
"_id": "pZ5YpjKidaj48IYF",
@@ -131,20 +93,21 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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,
@@ -152,6 +115,16 @@
"_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 67310781..15a59635 100644
--- a/src/packs/domains/domainCard_Hypnotic_Shimmer_2ZeuCGVatQdPOVC6.json
+++ b/src/packs/domains/domainCard_Hypnotic_Shimmer_2ZeuCGVatQdPOVC6.json
@@ -25,8 +25,8 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"resultBased": false,
"value": {
"custom": {
@@ -51,7 +51,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -112,20 +112,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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"
@@ -135,6 +135,16 @@
"_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 8d5f6536..5fa005b6 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 0c28d499..b1f15298 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": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -67,7 +67,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -117,8 +117,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -143,7 +143,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -193,8 +193,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"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 658e12fd..e3c5436c 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 be46b1c3..5f67ff74 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 12308e6b..44885c23 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 883e2522..ae8c5b82 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": [
- {
+ "parts": {
+ "stress": {
"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 19a6fda6..de841ffe 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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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,6 +91,16 @@
"_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 6e4b4654..02f20956 100644
--- a/src/packs/domains/domainCard_Manifest_Wall_TtGOtWkbr23VhHfH.json
+++ b/src/packs/domains/domainCard_Manifest_Wall_TtGOtWkbr23VhHfH.json
@@ -33,7 +33,7 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json b/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json
index da64f16e..7e925700 100644
--- a/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json
+++ b/src/packs/domains/domainCard_Mass_Enrapture_ubpixIgZrJXKyM3b.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -82,8 +82,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -108,7 +108,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -144,20 +144,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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,
@@ -165,6 +165,16 @@
"_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 4cb8c2a2..60367dcc 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -59,7 +59,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -109,8 +109,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -135,7 +135,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -194,8 +194,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -220,7 +220,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -279,8 +279,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"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 f97fe53d..f951054e 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 10c42418..b859aafb 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": [
- {
+ "parts": {
+ "hope": {
"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 7aa85b0f..c14116d4 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 c722954b..b6c9464a 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 6ffddbe7..d40b1c43 100644
--- a/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json
+++ b/src/packs/domains/domainCard_Night_Terror_zcldCuqOg3dphUVI.json
@@ -24,7 +24,7 @@
"recovery": "longRest"
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -84,8 +84,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -109,7 +109,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -146,20 +146,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "description": "While Horrified, they’re Vulnerable.
",
+ "description": "While Horrified, they’re Vulnerable.
",
"tint": "#ffffff",
"statuses": [
"vulnerable"
@@ -169,6 +169,16 @@
"_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 d2d7361d..5122ec4b 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 cc04c9c9..9aa2f5b4 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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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,6 +122,16 @@
"_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 64b1e1c2..4b4767fa 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 46dc2bdb..5470c340 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 6f8b481d..c3493aea 100644
--- a/src/packs/domains/domainCard_Rage_Up_GRL0cvs96vrTDckZ.json
+++ b/src/packs/domains/domainCard_Rage_Up_GRL0cvs96vrTDckZ.json
@@ -42,44 +42,8 @@
"type": "self",
"amount": null
},
- "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",
+ "name": "Mark Stress",
+ "img": "icons/skills/wounds/injury-face-impact-orange.webp",
"range": "self"
}
},
@@ -94,8 +58,8 @@
"sort": 3400000,
"effects": [
{
- "name": "Rage Up (1)",
- "img": "systems/daggerheart/assets/icons/domains/domain-card/blade.png",
+ "name": "Rage Up",
+ "img": "icons/skills/wounds/injury-face-impact-orange.webp",
"origin": "Compendium.daggerheart.domains.Item.GRL0cvs96vrTDckZ",
"transfer": false,
"_id": "bq1MhcmoP6Wo5CXF",
@@ -106,33 +70,38 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "description": "",
+ "description": "For your next attack you have a bonus to your damage roll equal to twice your Strength.
",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -140,6 +109,16 @@
"_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"
},
{
@@ -155,31 +134,28 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
- }
- },
- "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
- }
- ],
+ "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"
+ }
+ ]
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -189,6 +165,9 @@
"_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 839dc2c2..080dd67f 100644
--- a/src/packs/domains/domainCard_Rain_of_Blades_Ucenef6JpjQxwXni.json
+++ b/src/packs/domains/domainCard_Rain_of_Blades_Ucenef6JpjQxwXni.json
@@ -31,8 +31,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -56,7 +56,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -102,8 +102,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -127,7 +127,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Reaper_s_Strike_MCgNRlh0s5XUPCfl.json b/src/packs/domains/domainCard_Reaper_s_Strike_MCgNRlh0s5XUPCfl.json
index f4feebbb..3bb8accd 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 4adb8240..aeb20f1d 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": 3400000,
+ "sort": 3500000,
"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 25c991c2..11e15a0b 100644
--- a/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json
+++ b/src/packs/domains/domainCard_Rejuvenation_Barrier_HtWx5IIemCoorMj2.json
@@ -25,8 +25,8 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -50,7 +50,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Restoration_wUQFsRtww18naYaq.json b/src/packs/domains/domainCard_Restoration_wUQFsRtww18naYaq.json
index 8d4d7695..a83044a0 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -68,7 +68,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -119,8 +119,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"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 82b1b4fa..b7faa7ae 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 c112e373..163cd293 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 38c900b2..5d46562d 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": [
- {
+ "parts": {
+ "stress": {
"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 54b0edbb..01515230 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 c7aeb02f..3f81c8ac 100644
--- a/src/packs/domains/domainCard_Salvation_Beam_4uAFGp3LxiC07woC.json
+++ b/src/packs/domains/domainCard_Salvation_Beam_4uAFGp3LxiC07woC.json
@@ -33,8 +33,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -59,7 +59,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Second_Wind_ffPbSEvLuFrFsMxl.json b/src/packs/domains/domainCard_Second_Wind_ffPbSEvLuFrFsMxl.json
index 8dc535cc..764a3c87 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": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -60,7 +60,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -111,8 +111,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 2701b0ce..c0aea3df 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 cd906eaa..0fc6ce4b 100644
--- a/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json
+++ b/src/packs/domains/domainCard_Shadowbind_kguhWlidhxe2GbT0.json
@@ -24,7 +24,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -85,18 +85,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -108,6 +108,16 @@
"_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 7cabf19d..3e757308 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 daecba3b..b7ef626d 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -50,7 +50,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -91,8 +91,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 e36c744c..a63fd477 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 6fde5d18..2f66c1f0 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -60,7 +60,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -112,8 +112,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -139,7 +139,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -175,20 +175,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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"
@@ -198,6 +198,16 @@
"_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 bd153045..76e9e6e9 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": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -51,7 +51,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -93,8 +93,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"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 f80954e7..0436b1aa 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 b4563eac..ff262d6f 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 f1056dfc..1efb1374 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": [
- {
+ "parts": {
+ "stress": {
"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 d82dd9fa..3599017c 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -51,7 +51,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -102,8 +102,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -129,7 +129,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -180,8 +180,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -207,7 +207,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -268,18 +268,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -291,6 +291,16 @@
"_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"
},
{
diff --git a/src/packs/domains/domainCard_Thought_Delver_B4choj481tqajWb9.json b/src/packs/domains/domainCard_Thought_Delver_B4choj481tqajWb9.json
index 0dbc078d..7c8d6235 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 ed01392d..529950b5 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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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,6 +82,16 @@
"_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 d7d984d1..4696c144 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -68,7 +68,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Transcendent_Union_kVkoCLBXLAIifqpz.json b/src/packs/domains/domainCard_Transcendent_Union_kVkoCLBXLAIifqpz.json
index 7d8d9bbe..4460a5db 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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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,6 +91,16 @@
"_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 9d740283..161c499f 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": [
- {
+ "parts": {
+ "stress": {
"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 a6a987dd..cc7f45c7 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 e4847ee4..b822b632 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 46d9c472..62953005 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 62bd00a0..69049d01 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 20fe18ea..61c7ace8 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": [
- {
+ "parts": {
+ "armor": {
"value": {
"custom": {
"enabled": true,
@@ -50,7 +50,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -93,32 +93,25 @@
"name": "Valor-Touched",
"type": "base",
"system": {
- "rangeDependence": {
- "enabled": false,
- "type": "withinRange",
- "target": "hostile",
- "range": "melee"
- }
+ "changes": [
+ {
+ "type": "armor",
+ "phase": "initial",
+ "priority": 20,
+ "value": {
+ "max": "1"
+ }
+ }
+ ]
},
- "_id": "H9lgIqqp1imSNOv9",
+ "_id": "Ma8Zp005QYKPWIEN",
"img": "icons/magic/control/control-influence-rally-purple.webp",
- "changes": [
- {
- "key": "system.armorScore",
- "mode": 2,
- "value": "1",
- "priority": null
- }
- ],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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,
@@ -130,7 +123,10 @@
"_stats": {
"compendiumSource": null
},
- "_key": "!items.effects!k1AtYd3lSchIymBr.H9lgIqqp1imSNOv9"
+ "start": null,
+ "showIcon": 1,
+ "folder": null,
+ "_key": "!items.effects!k1AtYd3lSchIymBr.Ma8Zp005QYKPWIEN"
}
],
"ownership": {
diff --git a/src/packs/domains/domainCard_Veil_of_Night_gV4L5ZZmfPrEbIDh.json b/src/packs/domains/domainCard_Veil_of_Night_gV4L5ZZmfPrEbIDh.json
index a6263afe..abac35be 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": {
diff --git a/src/packs/domains/domainCard_Vicious_Entangle_qvpvTnkAoRn9vYO4.json b/src/packs/domains/domainCard_Vicious_Entangle_qvpvTnkAoRn9vYO4.json
index dae448e9..3b7358bc 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -169,6 +169,16 @@
"_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"
},
{
@@ -184,18 +194,18 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -207,6 +217,16 @@
"_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_Wild_Fortress_9dFvcM1i3bxG3BSA.json b/src/packs/domains/domainCard_Wild_Fortress_9dFvcM1i3bxG3BSA.json
index 655f0c2b..d61f914b 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 fb3c6611..d743f5e1 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": [
- {
+ "parts": {
+ "stress": {
"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 16753e1e..22042f7d 100644
--- a/src/packs/domains/domainCard_Wrangle_9DwSxHoUwl8Kxj3n.json
+++ b/src/packs/domains/domainCard_Wrangle_9DwSxHoUwl8Kxj3n.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
diff --git a/src/packs/domains/domainCard_Zone_of_Protection_lOZaRb4fCVgQsWB5.json b/src/packs/domains/domainCard_Zone_of_Protection_lOZaRb4fCVgQsWB5.json
index 5669173d..19bff136 100644
--- a/src/packs/domains/domainCard_Zone_of_Protection_lOZaRb4fCVgQsWB5.json
+++ b/src/packs/domains/domainCard_Zone_of_Protection_lOZaRb4fCVgQsWB5.json
@@ -25,7 +25,7 @@
"consumeOnSuccess": true
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
diff --git a/src/packs/environments/environment_Abandoned_Grove_pGEdzdLkqYtBhxnG.json b/src/packs/environments/environment_Abandoned_Grove_pGEdzdLkqYtBhxnG.json
index c1006da4..75fc932f 100644
--- a/src/packs/environments/environment_Abandoned_Grove_pGEdzdLkqYtBhxnG.json
+++ b/src/packs/environments/environment_Abandoned_Grove_pGEdzdLkqYtBhxnG.json
@@ -183,8 +183,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -210,7 +210,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -268,18 +268,19 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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",
@@ -291,6 +292,16 @@
"_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"
}
],
diff --git a/src/packs/environments/environment_Ambushed_uGEdNYERCTJBEjc5.json b/src/packs/environments/environment_Ambushed_uGEdNYERCTJBEjc5.json
index b0ccd435..ea1a158c 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": [
- {
+ "parts": {
+ "fear": {
"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 ea4f1951..c380a4e2 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
@@ -213,7 +213,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
@@ -271,30 +271,41 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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": [
- "restrained",
- "vulnerable"
+ "vulnerable",
+ "restrained"
],
"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"
}
],
@@ -331,8 +342,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -358,7 +369,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -431,8 +442,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -458,7 +469,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 ad96108b..e10fad1a 100644
--- a/src/packs/environments/environment_Bustling_Marketplace_HZKA7hkej7JJY503.json
+++ b/src/packs/environments/environment_Bustling_Marketplace_HZKA7hkej7JJY503.json
@@ -50,12 +50,9 @@
"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
},
@@ -106,7 +103,7 @@
"saturation": 0,
"contrast": 0
},
- "detectionModes": [],
+ "detectionModes": {},
"occludable": {
"radius": 0
},
@@ -132,14 +129,15 @@
"flags": {},
"randomImg": false,
"appendNumber": false,
- "prependAdjective": false
+ "prependAdjective": false,
+ "depth": 1
},
"items": [
{
"name": "Tip the Scales",
"type": "feature",
"system": {
- "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?
",
+ "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?
",
"resource": null,
"actions": {},
"originItemType": null,
@@ -207,7 +205,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 411a10c7..fdfc9a5d 100644
--- a/src/packs/environments/environment_Castle_Siege_1eZ32Esq7rfZOjlu.json
+++ b/src/packs/environments/environment_Castle_Siege_1eZ32Esq7rfZOjlu.json
@@ -185,8 +185,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "fear": {
"value": {
"custom": {
"enabled": true,
@@ -211,7 +211,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -342,8 +342,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -369,7 +369,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/environments/environment_Chaos_Realm_2Z1mKc65LxNk2PqR.json b/src/packs/environments/environment_Chaos_Realm_2Z1mKc65LxNk2PqR.json
index 361b15bc..e7c2c4e0 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": [
- {
+ "parts": {
+ "stress": {
"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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -408,7 +408,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -552,8 +552,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"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 548cf7c4..ef367d67 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": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -240,7 +240,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -292,8 +292,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -317,7 +317,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -343,8 +343,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -368,7 +368,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -394,8 +394,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 d8e9cded..637cdd41 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -349,7 +349,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -600,8 +600,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"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 f005fa59..c510a87f 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -176,7 +176,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -268,8 +268,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"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 4b49c341..5807d43c 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": [
- {
+ "parts": {
+ "stress": {
"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 105f230f..da2d2830 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 9ba6a918..eaad99f7 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -208,7 +208,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -315,8 +315,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"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 e96b9177..949e3dc1 100644
--- a/src/packs/environments/environment_Necromancer_s_Ossuary_h3KyRL7AshhLAmcH.json
+++ b/src/packs/environments/environment_Necromancer_s_Ossuary_h3KyRL7AshhLAmcH.json
@@ -149,8 +149,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -175,7 +175,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -252,8 +252,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -277,7 +277,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -350,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 7be27924..14c724e3 100644
--- a/src/packs/environments/environment_Pitched_Battle_EWD3ZsLoK6VMVOf7.json
+++ b/src/packs/environments/environment_Pitched_Battle_EWD3ZsLoK6VMVOf7.json
@@ -218,8 +218,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -245,7 +245,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/environments/environment_Raging_River_t4cdqTfzcqP3H1vJ.json b/src/packs/environments/environment_Raging_River_t4cdqTfzcqP3H1vJ.json
index 6c34c296..6c87c446 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -257,7 +257,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -315,18 +315,19 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until you get out of the river.
"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Vulnerable until you get out of the river.
",
"tint": "#ffffff",
@@ -338,6 +339,16 @@
"_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/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json b/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json
index 174f20c8..4566396a 100644
--- a/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json
+++ b/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json
@@ -5,6 +5,10 @@
"_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 dbc9d29f..52adc7aa 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,6 +5,10 @@
"_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 c9ffc8a3..36edec39 100644
--- a/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json
+++ b/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json
@@ -5,6 +5,10 @@
"_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 4e1927e3..3e5dbd3b 100644
--- a/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json
+++ b/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json
@@ -5,6 +5,10 @@
"_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
deleted file mode 100644
index 5158b100..00000000
--- a/src/packs/items/armors/armor_Bare_Bones_ITAjcigTcUw5pMCN.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "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 ce4e35fd..c470de87 100644
--- a/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json
+++ b/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json
@@ -5,6 +5,10 @@
"_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 8b276d5f..4ee73939 100644
--- a/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json
+++ b/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json
@@ -5,6 +5,10 @@
"_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 f7526e96..4f0719a7 100644
--- a/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json
+++ b/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json
@@ -5,6 +5,10 @@
"_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 a4bd0fea..e805d5d1 100644
--- a/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json
+++ b/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json
@@ -5,6 +5,10 @@
"_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 5b39e41d..4b270234 100644
--- a/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json
+++ b/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json
@@ -5,6 +5,10 @@
"_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 df692143..6d223ada 100644
--- a/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json
+++ b/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json
@@ -5,6 +5,10 @@
"_id": "hAY6UgdGT7dj22Pr",
"img": "icons/equipment/chest/robe-layered-red.webp",
"system": {
+ "armor": {
+ "current": 0,
+ "max": 7
+ },
"description": "",
"actions": {
"8PD5JQuS05IA6HJT": {
@@ -48,7 +52,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 d63ce4df..1cf74e2e 100644
--- a/src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json
+++ b/src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json
@@ -5,6 +5,10 @@
"_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 8ccc27e3..616bbadf 100644
--- a/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json
+++ b/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json
@@ -5,6 +5,10 @@
"_id": "bcQUh4QG3qFX0Vx6",
"img": "icons/equipment/chest/breastplate-layered-gilded-orange.webp",
"system": {
+ "armor": {
+ "current": 0,
+ "max": 6
+ },
"description": "",
"actions": {
"L8mHf4A8SylyxsMH": {
@@ -20,8 +24,8 @@
"amount": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"applyTo": "stress",
"value": {
"custom": {
@@ -46,7 +50,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 8eb964cc..9f2d7ece 100644
--- a/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json
+++ b/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json
@@ -5,6 +5,10 @@
"_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 1ea120ed..7701d063 100644
--- a/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json
+++ b/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json
@@ -5,6 +5,10 @@
"_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 1c775402..0ede5b60 100644
--- a/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json
+++ b/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json
@@ -5,6 +5,10 @@
"_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 61d1fed7..85ad1d6a 100644
--- a/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json
+++ b/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json
@@ -5,6 +5,10 @@
"_id": "dvyQeUVRLc9y6rnt",
"img": "icons/equipment/chest/breastplate-gorget-steel.webp",
"system": {
+ "armor": {
+ "current": 0,
+ "max": 4
+ },
"description": "",
"actions": {
"IzM88FIxQ35P5VB2": {
@@ -39,7 +43,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 96e320d1..ef93ecdd 100644
--- a/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json
+++ b/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json
@@ -5,6 +5,10 @@
"_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 ee63a774..1723c53a 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,6 +5,10 @@
"_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 6f4ea1c3..a2ff6554 100644
--- a/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json
+++ b/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json
@@ -5,6 +5,10 @@
"_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 a4f38cc6..efa3643d 100644
--- a/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json
+++ b/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json
@@ -5,6 +5,10 @@
"_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 a9e9eaca..a664ad9c 100644
--- a/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json
+++ b/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json
@@ -5,6 +5,10 @@
"_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 37a13f2b..93d8f0cc 100644
--- a/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json
+++ b/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json
@@ -5,6 +5,10 @@
"_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 4bee5e4f..6c93cbe4 100644
--- a/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json
+++ b/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json
@@ -5,6 +5,10 @@
"_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 baf544c2..f66e4c38 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,6 +5,10 @@
"_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 338c85e8..4cf1c856 100644
--- a/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json
+++ b/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json
@@ -5,6 +5,10 @@
"_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 42334dc4..3ddc5ed7 100644
--- a/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json
+++ b/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json
@@ -5,6 +5,10 @@
"_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 9a8e1f22..6bb479a4 100644
--- a/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json
+++ b/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json
@@ -5,6 +5,10 @@
"_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 0f0f6430..e3cde9fb 100644
--- a/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json
+++ b/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json
@@ -5,6 +5,10 @@
"_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 240a4f3e..2ccc80da 100644
--- a/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json
+++ b/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json
@@ -5,6 +5,10 @@
"_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 8d4af425..593bc8e0 100644
--- a/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json
+++ b/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json
@@ -5,6 +5,10 @@
"_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 714e8592..6826254a 100644
--- a/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json
+++ b/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json
@@ -5,6 +5,10 @@
"_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 cb5fc720..ac9115a2 100644
--- a/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json
+++ b/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json
@@ -5,6 +5,10 @@
"_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 da640830..c6766018 100644
--- a/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json
+++ b/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json
@@ -5,6 +5,10 @@
"_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 08a1b573..403b79e8 100644
--- a/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json
+++ b/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json
@@ -5,6 +5,10 @@
"_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
deleted file mode 100644
index 65c4eca8..00000000
--- a/src/packs/items/armors/folders_Special_tI3bfr6Sgi16Z7zm.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "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_Blinding_Orb_eAXHdzA5qNPldOpn.json b/src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json
index 3e237b65..1282ceeb 100644
--- a/src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json
+++ b/src/packs/items/consumables/consumable_Blinding_Orb_eAXHdzA5qNPldOpn.json
@@ -59,19 +59,21 @@
"transfer": false,
"_id": "nryJhrF26hyFQUxH",
"type": "base",
- "system": {},
- "changes": [],
+ "system": {
+ "changes": [],
+ "duration": {
+ "type": "temporary",
+ "description": "Until they mark HP.
"
+ }
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "description": "You are Vulnerable until you mark a Hit Point.
",
+ "description": "You are Vulnerable until you mark a Hit Point.
",
"tint": "#ffffff",
"statuses": [
"vulnerable"
@@ -81,6 +83,16 @@
"_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_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json b/src/packs/items/consumables/consumable_Dragonbloom_Tea_wM18PWWW2Ami4fBG.json
index 0dc8764d..5e877f6d 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -55,7 +55,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/items/consumables/consumable_Dripfang_Poison_eU8VpbWB2NHIL47n.json b/src/packs/items/consumables/consumable_Dripfang_Poison_eU8VpbWB2NHIL47n.json
index 3b0eb9e7..cb2c7997 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -57,7 +57,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
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 67f4b227..159e0442 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": {
diff --git a/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json b/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json
index 933d70fa..833e7055 100644
--- a/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json
+++ b/src/packs/items/consumables/consumable_Growing_Potion_fl2f3ees8RFMze9t.json
@@ -59,30 +59,31 @@
"transfer": false,
"_id": "YEGd74Lssj7rCmpF",
"type": "base",
- "system": {},
- "changes": [
- {
- "key": "system.traits.strength.value",
- "mode": 2,
- "value": "2",
- "priority": null
- },
- {
- "key": "system.proficiency",
- "mode": 2,
- "value": "1",
- "priority": null
+ "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"
}
- ],
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -92,6 +93,16 @@
"_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 eb9c4824..7365b375 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -55,7 +55,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
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 f1e88b96..707a395f 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -57,7 +57,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
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 38555821..c8e6e75b 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -57,7 +57,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
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 76e67cf9..5e95fe66 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -55,7 +55,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
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 a300aaf6..67be0b08 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -55,7 +55,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
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 94e53a0c..703c2cbe 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": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": false
@@ -55,7 +55,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
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 cf754770..dbfe2dcc 100644
--- a/src/packs/items/consumables/consumable_Major_Stride_Potion_yK6eEDUrsPbZA8G0.json
+++ b/src/packs/items/consumables/consumable_Major_Stride_Potion_yK6eEDUrsPbZA8G0.json
@@ -59,24 +59,25 @@
"transfer": false,
"_id": "L9dAw8pws1o02XkE",
"type": "base",
- "system": {},
- "changes": [
- {
- "key": "system.traits.agility.value",
- "mode": 2,
- "value": "1",
- "priority": null
+ "system": {
+ "changes": [
+ {
+ "key": "system.traits.agility.value",
+ "value": 1,
+ "priority": null,
+ "type": "add"
+ }
+ ],
+ "duration": {
+ "type": "shortRest"
}
- ],
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -86,6 +87,16 @@
"_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 d0f90919..fe86bf95 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -55,7 +55,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
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 1ef4efbf..625167e1 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": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": false
@@ -55,7 +55,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json b/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json
index 54aa6ccc..90dd4fdc 100644
--- a/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json
+++ b/src/packs/items/consumables/consumable_Morphing_Clay_f1NHVSIHJJCIOaBl.json
@@ -65,20 +65,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "shortRest"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "description": "Your face is unrecognizable until your next rest.
",
+ "description": "Your face is unrecognizable until your next rest.
",
"tint": "#ffffff",
"statuses": [],
"sort": 0,
@@ -86,6 +86,16 @@
"_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_Ogre_Musk_qr1bosjFcUfuwq4B.json b/src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json
index 39c8800b..59e51e80 100644
--- a/src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json
+++ b/src/packs/items/consumables/consumable_Ogre_Musk_qr1bosjFcUfuwq4B.json
@@ -65,20 +65,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "shortRest"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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,6 +86,16 @@
"_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_Shrinking_Potion_HGixKenQwhyRAYNk.json b/src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json
index 74e82995..a31a13f1 100644
--- a/src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json
+++ b/src/packs/items/consumables/consumable_Shrinking_Potion_HGixKenQwhyRAYNk.json
@@ -59,30 +59,31 @@
"transfer": false,
"_id": "yaRLd7eHWYm2MHRM",
"type": "base",
- "system": {},
- "changes": [
- {
- "key": "system.traits.agility.value",
- "mode": 2,
- "value": "2",
- "priority": null
- },
- {
- "key": "system.proficiency",
- "mode": 2,
- "value": "-1",
- "priority": null
+ "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"
}
- ],
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -92,6 +93,16 @@
"_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 a6f70305..d66ff42b 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": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -56,7 +56,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json b/src/packs/items/consumables/consumable_Snap_Powder_cg6VtQ0eVZjDdcK0.json
index dd129914..506cb1cf 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -56,7 +56,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json b/src/packs/items/consumables/consumable_Stamina_Potion_hf3k1POoVSooJyN2.json
index 6a4a3335..f464ee61 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": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": false
@@ -55,7 +55,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/items/consumables/consumable_Stardrop_y4c1jrlHrf0wBWOq.json b/src/packs/items/consumables/consumable_Stardrop_y4c1jrlHrf0wBWOq.json
index 7b244715..3351c24f 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -57,7 +57,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
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 82f02518..cfe0a63c 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": {
diff --git a/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json b/src/packs/items/consumables/consumable_Sweet_Moss_GrDrRqWgv7gvl9vn.json
index 5034e482..84663fb4 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -55,7 +55,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -105,8 +105,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": false
@@ -130,7 +130,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
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 2fa73e49..b6f18539 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -57,7 +57,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json b/src/packs/items/consumables/consumable_Varik_Leaves_hvy5BkG3F6iOIXTx.json
index 8588d8e6..7e2f0c08 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": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -56,7 +56,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
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 31586ef8..3fc572fd 100644
--- a/src/packs/items/consumables/consumable_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json
+++ b/src/packs/items/consumables/consumable_Vial_of_Moondrip_VqEX5YwK5oL3r1t6.json
@@ -65,20 +65,20 @@
"type": "withinRange",
"target": "hostile",
"range": "melee"
+ },
+ "changes": [],
+ "duration": {
+ "type": "shortRest"
}
},
- "changes": [],
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "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,6 +86,16 @@
"_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/loot/loot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json b/src/packs/items/loot/loot_Bag_of_Ficklesand_v758j4FwNVAurhYK.json
index c083e7ca..2cb80d86 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 1090323f..cb603dc7 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 3d5b9651..ea5b50eb 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 72a8d3e0..b5769661 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 99d52ea9..2732b61f 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 93e6404c..7b51d436 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 36f1be3a..a727bcd5 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 183ac117..67400768 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 6d2879d7..e780eeed 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 9e4a67b0..4581c52f 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 44e47499..437423f5 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 a20acb5b..45d9a597 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 a7004807..03f27c99 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 3baed3d4..033b873c 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 2bdfed49..2ea7b20d 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 01bef9b2..390a0b9a 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 c66354c2..3cc7b986 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 71226630..9e04bf7a 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 59d7437d..6c11724c 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 e6403810..ce89ccc2 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 521ee38d..88ba7077 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 23f33ba1..60ffb789 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 39afe3e6..7f5bb9c7 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 4600088d..fca77911 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 ad8a5bc9..14327a8c 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 2cf2c43c..0b51f2ae 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 db8cde18..e255da65 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 d6beafb2..00f0b694 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 315d8401..28c508b8 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 bbdce2d4..0694a020 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 c1c4fba5..54800642 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": [
- {
+ "parts": {
+ "hitPoints": {
"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",
- "changes": [
- {
- "key": "system.armorScore",
- "mode": 2,
- "value": "ITEM.@system.tier",
- "priority": null
- }
- ],
- "_id": "i5HfkF5aKQuUCTEG",
+ "_id": "7285CRGdZfHCEtT2",
"type": "base",
- "system": {},
+ "system": {
+ "changes": [
+ {
+ "type": "armor",
+ "phase": "initial",
+ "priority": 20,
+ "value": {
+ "max": "ITEM.@system.tier"
+ }
+ }
+ ]
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"origin": null,
"tint": "#ffffff",
@@ -143,7 +143,10 @@
"_stats": {
"compendiumSource": null
},
- "_key": "!items.effects!hiEOGF2reabGLUoi.i5HfkF5aKQuUCTEG"
+ "start": null,
+ "showIcon": 1,
+ "folder": null,
+ "_key": "!items.effects!hiEOGF2reabGLUoi.7285CRGdZfHCEtT2"
}
],
"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 cf619a89..6dff775a 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -38,7 +38,7 @@
}
}
}
- ]
+ }
},
"range": "melee",
"roll": {
@@ -115,8 +115,8 @@
"useDefault": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 5693e814..f5efc9a9 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 71d66d82..0e3b3161 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 397fa061..dd48db21 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 7af59440..a63789f3 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 e5f3f8ec..099761b4 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 b2fb16d8..a88749a8 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": {},
+ "system": {
+ "changes": [
+ {
+ "key": "system.evasion",
+ "type": "add",
+ "value": -1,
+ "phase": "initial",
+ "priority": 0
+ }
+ ]
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"origin": null,
"tint": "#ffffff",
@@ -142,7 +142,49 @@
"_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 4cb4e2b2..8043e360 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 72983f6b..bb142281 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 6e1753c8..142eb542 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 58ef5f4b..6959fb30 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 8d9e3c31..29afcc13 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 6ce0ce68..8e4b00c5 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 9b43f8dc..9ab3321e 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 845fee44..34371c2b 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 5238578f..2b2a5b9c 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 82140411..14448edc 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": [
- {
+ "parts": {
+ "hitPoints": {
"applyTo": "hitPoints",
"value": {
"custom": {
@@ -45,7 +45,7 @@
"base": false,
"type": []
}
- ],
+ },
"includeBase": false
},
"_id": "o18UvqLPWLe1A8XJ",
@@ -117,8 +117,8 @@
"useDefault": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 2450d69c..ab6bb15d 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 1fba6130..9b2f455a 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 aef812a6..2f5ec85d 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 7c3e65f5..412a7083 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 0e9a557e..87c6f7e8 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 4d815a6c..be147888 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 9af34d45..c861e735 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -36,7 +36,7 @@
}
}
}
- ]
+ }
},
"range": "far",
"roll": {
@@ -113,8 +113,8 @@
"useDefault": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 749ef4aa..62ad7f3d 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 a98a56b1..1af2c372 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 7343b92c..4750891f 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 5ef12e05..4818c79f 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 e00d665c..7775501d 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 a118b399..e5b603c6 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 da15604c..df1c3e54 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 e7c458c3..a3b44d76 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 36d3b0ba..17e24aea 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 35659402..73bb5a46 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 62bcb3e0..35829bd5 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 6dc27659..d1bd58b5 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 983f98d1..ba7350f4 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 5dd5f04e..acf0cfd6 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 232f26e9..0460e12d 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 747bc046..034ad5cf 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 7784b43d..0e17e0c2 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 88f5a163..0147cfdb 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 ee8afebc..fdf5835e 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 214d08a9..8996dbc8 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 7f42998b..9a9158c7 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 f56e77c7..87118bb8 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 66c12e5e..798541d1 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 f60e438d..f0e450a4 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 6259e63e..5a990da3 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 9d8885b9..1fe37eba 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 ba955850..15e00303 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 122c0769..fdab6f80 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 1396fb1d..4967c6e4 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 9f69ffc9..6501f5d4 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 32761768..00cb6e9b 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 82641ca1..5c110b70 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -36,7 +36,7 @@
}
}
}
- ]
+ }
},
"range": "close",
"roll": {
@@ -113,8 +113,8 @@
"useDefault": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 db20063d..e74ff4aa 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 8234ab3a..cddd762a 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 8c8cc81d..5e9891f9 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 fad45a2b..33f96030 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 40b85dde..1880d45b 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 23068751..4652d62d 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 a17caadf..6d6f1921 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 185f8f11..5bc082ef 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 520e5679..87dfbfae 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 1db4504e..194ec879 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 84cc75ba..d614130e 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 01439f5b..f8b29720 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 74ee510a..31dfff22 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 cf1bdf63..25be3393 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 f71e5ea6..60e5dd53 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 168d8953..fb5a1dcc 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 a79ad56d..71b28bea 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 74e74f2c..91641856 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 546e9762..dc7f2005 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 3a386fa8..e65cc221 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 6fbe3c9d..315ceaf3 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 787d5a28..c197f726 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 982ca3ac..aaa38270 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 c1b626d5..1ce84304 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 888022ed..9dc81b98 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 cc6099da..e9db95d1 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 31688a23..1dff30a1 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 53a8e9b6..65868950 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": [
- {
+ "parts": {
+ "hitPoints": {
"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",
- "changes": [
- {
- "key": "system.armorScore",
- "mode": 2,
- "value": "ITEM.@system.tier",
- "priority": null
- }
- ],
- "_id": "cXWSV50apzaNQkdA",
+ "_id": "pZCrWd7zLTarvEQK",
"type": "base",
- "system": {},
+ "system": {
+ "changes": [
+ {
+ "type": "armor",
+ "phase": "initial",
+ "priority": 20,
+ "value": {
+ "max": "ITEM.@system.tier"
+ }
+ }
+ ]
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"origin": null,
"tint": "#ffffff",
@@ -143,7 +143,10 @@
"_stats": {
"compendiumSource": null
},
- "_key": "!items.effects!DlinEBGZfIlvreO3.cXWSV50apzaNQkdA"
+ "start": null,
+ "showIcon": 1,
+ "folder": null,
+ "_key": "!items.effects!DlinEBGZfIlvreO3.pZCrWd7zLTarvEQK"
}
],
"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 dc41692f..ac226b84 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -38,7 +38,7 @@
}
}
}
- ]
+ }
},
"range": "melee",
"roll": {
@@ -115,8 +115,8 @@
"useDefault": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 421b8f8e..b0e101fb 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 08bf9251..7d90cf94 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 df2f324c..96ecd37f 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 b69332a5..1553d75d 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 ae6b0987..790f9e51 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 839d4352..64555dfa 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": {},
+ "system": {
+ "changes": [
+ {
+ "key": "system.evasion",
+ "type": "add",
+ "value": -1,
+ "phase": "initial",
+ "priority": 0
+ }
+ ]
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"origin": null,
"tint": "#ffffff",
@@ -142,7 +142,49 @@
"_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 cecb818d..53ee6746 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 40a5faba..aa24c4ad 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 dff7fb25..4dd1dcb1 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 27b8044b..21fe863b 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 a5d00ff4..ffe92071 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 df995a3f..a7629e7d 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 4958bbe5..11994d3e 100644
--- a/src/packs/items/weapons/weapon_Labrys_Axe_ijWppQzSOqVCb3rE.json
+++ b/src/packs/items/weapons/weapon_Labrys_Axe_ijWppQzSOqVCb3rE.json
@@ -49,8 +49,8 @@
"useDefault": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"dice": "d10",
"bonus": 7,
@@ -76,7 +76,7 @@
},
"base": false
}
- ],
+ },
"includeBase": false
},
"description": "",
@@ -113,20 +113,26 @@
"name": "Protective",
"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",
+ "_id": "vnR4Zhnb0rOqwrFw",
"type": "base",
- "system": {},
+ "system": {
+ "changes": [
+ {
+ "type": "armor",
+ "phase": "initial",
+ "priority": 20,
+ "value": {
+ "max": "ITEM.@system.tier"
+ }
+ }
+ ]
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"origin": null,
"tint": "#ffffff",
@@ -137,7 +143,10 @@
"_stats": {
"compendiumSource": null
},
- "_key": "!items.effects!ijWppQzSOqVCb3rE.qTxADRsQnKiYfOiQ"
+ "start": null,
+ "showIcon": 1,
+ "folder": null,
+ "_key": "!items.effects!ijWppQzSOqVCb3rE.vnR4Zhnb0rOqwrFw"
}
],
"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 d8068f41..f947acac 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 94da915c..c7adc0f2 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 06a8a85f..3c22e3f2 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 786ba8b6..361d0353 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 e263bcbe..358cdd56 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 2c284332..9ce1b48a 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 0e9e988d..a7bb2fc9 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 9c618ba5..b06909e4 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 1710084f..ca9937ee 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 83334710..f20425b2 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 a5ea82f9..09fd1f7a 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 840e7ec7..aa9d2ef0 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 22e6af1b..af6b2a07 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 2bf11f05..70379d45 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 ff43c21b..930310a8 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 2dcad490..e909f460 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 7e561c26..d8816fc9 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 9f96601c..7afbd979 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 bb0b8ab3..bd5ab13b 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 9399edd4..e6555b02 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 95de32f0..7f4a9dab 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 cf25daa7..91bc8ac8 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 59a49063..d5bac6d1 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 211c88c2..b3f3fc3d 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 c7b18355..85134d21 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": [
- {
+ "parts": {
+ "hitPoints": {
"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",
- "changes": [
- {
- "key": "system.armorScore",
- "mode": 2,
- "value": "ITEM.@system.tier",
- "priority": null
- }
- ],
- "_id": "Z2p00q5h6x6seXys",
+ "_id": "EixxJrRHyc6kj3Wg",
"type": "base",
- "system": {},
+ "system": {
+ "changes": [
+ {
+ "type": "armor",
+ "phase": "initial",
+ "priority": 20,
+ "value": {
+ "max": "ITEM.@system.tier"
+ }
+ }
+ ]
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"origin": null,
"tint": "#ffffff",
@@ -143,7 +143,10 @@
"_stats": {
"compendiumSource": null
},
- "_key": "!items.effects!A28WL9E2lJ3iLZHW.Z2p00q5h6x6seXys"
+ "start": null,
+ "showIcon": 1,
+ "folder": null,
+ "_key": "!items.effects!A28WL9E2lJ3iLZHW.EixxJrRHyc6kj3Wg"
}
],
"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 9630fd69..882ecfdf 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -38,7 +38,7 @@
}
}
}
- ]
+ }
},
"range": "melee",
"roll": {
@@ -115,8 +115,8 @@
"useDefault": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 7fad3f95..b3dbd210 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 59d53e44..3d29bc25 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 d7f9632a..a2203a1d 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 c6bf5437..cf63bde2 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 114ea79e..e0248f4b 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 47e707d3..772e9ca9 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": {},
+ "system": {
+ "changes": [
+ {
+ "key": "system.evasion",
+ "type": "add",
+ "value": -1,
+ "phase": "initial",
+ "priority": 0
+ }
+ ]
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"origin": null,
"tint": "#ffffff",
@@ -142,7 +142,49 @@
"_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 4bb0acd9..65925525 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 0918f8b1..562122d2 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 83ac59c7..baf6d369 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 fdda2b56..7fadde01 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 c6e98bc4..43af46ab 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 cba1bac8..3961d7c3 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 0e6670f4..7a7582cb 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 3b5983f5..dbd218f1 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 42a65010..9dbbb1c1 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 dcc236a0..b83a18be 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 799413be..57fe2367 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 482d813b..b5844e89 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 67922f8b..3c4ebd1c 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 fb42af74..0cf59179 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 37c56a21..00940b6c 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 b4de1c00..45642f14 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 c1b350a3..548de60f 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 76a887ae..9f3cca62 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 74be4227..efd81e48 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 1067bb02..34f3b200 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 47b096af..55e92f01 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": [
- {
+ "parts": {
+ "hitPoints": {
"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",
- "changes": [
- {
- "key": "system.armorScore",
- "mode": 2,
- "value": "ITEM.@system.tier",
- "priority": null
- }
- ],
- "_id": "M70a81e0Mg66jHRL",
+ "_id": "eV4lFIpQMiKERj4U",
"type": "base",
- "system": {},
+ "system": {
+ "changes": [
+ {
+ "type": "armor",
+ "phase": "initial",
+ "priority": 20,
+ "value": {
+ "max": "ITEM.@system.tier"
+ }
+ }
+ ]
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"origin": null,
"tint": "#ffffff",
@@ -143,7 +143,10 @@
"_stats": {
"compendiumSource": null
},
- "_key": "!items.effects!mxwWKDujgsRcZWPT.M70a81e0Mg66jHRL"
+ "start": null,
+ "showIcon": 1,
+ "folder": null,
+ "_key": "!items.effects!mxwWKDujgsRcZWPT.eV4lFIpQMiKERj4U"
}
],
"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 e0676ed2..3a966fe0 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 04ce4c4b..f1e85577 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -38,7 +38,7 @@
}
}
}
- ]
+ }
},
"range": "melee",
"roll": {
@@ -115,8 +115,8 @@
"useDefault": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 8c8e50af..f2c13441 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 82216a2d..56a791ba 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 0d468da8..3dc3a137 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 84ae1a2a..0ea874f8 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 0eb65689..205aa4e0 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 b5ffe457..d0230362 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": [
- {
+ "parts": {
+ "stress": {
"applyTo": "stress",
"value": {
"custom": {
@@ -46,7 +46,7 @@
"base": false,
"type": []
}
- ],
+ },
"includeBase": false
},
"_id": "0qVTvNMfapVST3sQ",
@@ -104,8 +104,8 @@
"useDefault": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 5b63acd7..058d138e 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 ea217ad9..a0ebc4ec 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 99faed64..5421fc10 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": [
- {
+ "parts": {
+ "hitPoints": {
"resultBased": false,
"value": {
"custom": {
@@ -36,7 +36,7 @@
}
}
}
- ]
+ }
},
"range": "melee",
"roll": {
@@ -113,8 +113,8 @@
"useDefault": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hitPoints": {
"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 edadecf9..39c18b08 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"dice": "d6",
"bonus": 2,
@@ -76,7 +76,7 @@
},
"base": false
}
- ],
+ },
"includeBase": false
},
"description": "",
@@ -113,32 +113,31 @@
"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": {
- "startTime": null,
- "combat": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"origin": null,
"tint": "#ffffff",
@@ -149,7 +148,49 @@
"_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 c4730e94..1fccc471 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 b8fe04b6..cd9490f2 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 7a74cf3d..63112b3e 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 13542a63..a7c96705 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 65fef12a..18f635eb 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 d49b7de7..e584b63c 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": [
- {
+ "parts": {
+ "hitPoints": {
"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": {},
+ "system": {
+ "changes": [
+ {
+ "key": "system.evasion",
+ "type": "add",
+ "value": -1,
+ "phase": "initial",
+ "priority": 0
+ }
+ ]
+ },
"disabled": false,
"duration": {
- "startTime": null,
- "combat": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"origin": null,
"tint": "#ffffff",
@@ -142,7 +142,49 @@
"_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 708e920f..6727c333 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 35fc7866..8084f261 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 f2b2f308..84c7b3f2 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 23fb1003..d788d008 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 e80ddfad..0c57dd50 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 50b1a829..a94950c7 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 2e548ab6..287d8afe 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 a03efe6b..44e4dfd6 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 d07a986e..17e02976 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 304bd29c..5dee0c1c 100644
--- a/src/packs/subclasses/feature_Act_of_Reprisal_k7vvMJtEcxMWUUrW.json
+++ b/src/packs/subclasses/feature_Act_of_Reprisal_k7vvMJtEcxMWUUrW.json
@@ -59,13 +59,19 @@
"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": {
- "startTime": null,
- "combat": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "",
"tint": "#ffffff",
@@ -75,6 +81,16 @@
"_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 106b0057..578be0a3 100644
--- a/src/packs/subclasses/feature_Battle_Bonded_hWsKyed1vfILg0I8.json
+++ b/src/packs/subclasses/feature_Battle_Bonded_hWsKyed1vfILg0I8.json
@@ -26,27 +26,28 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"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,
@@ -58,6 +59,16 @@
"_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 6dee9f9d..2b012aee 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": [
- {
+ "parts": {
+ "stress": {
"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 09d6f953..886f0b61 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": [
- {
+ "parts": {
+ "stress": {
"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 95534b9f..d0bd5c22 100644
--- a/src/packs/subclasses/feature_Dark_Cloud_frBTtNMX9Y2gkuPz.json
+++ b/src/packs/subclasses/feature_Dark_Cloud_frBTtNMX9Y2gkuPz.json
@@ -22,7 +22,7 @@
"recovery": null
},
"damage": {
- "parts": [],
+ "parts": {},
"includeBase": false
},
"target": {
diff --git a/src/packs/subclasses/feature_Elemental_Aura_2JH9NaOh69yN80Gw.json b/src/packs/subclasses/feature_Elemental_Aura_2JH9NaOh69yN80Gw.json
index 7dbae2f6..7a3ebd91 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": [
- {
+ "parts": {
+ "stress": {
"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 4297173f..2476046c 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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "When an attack against you succeeds, you can mark a Stress to make the attacker temporarily Vulnerable.
",
"tint": "#ffffff",
@@ -212,6 +212,16 @@
"_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 30ffb50b..45ffde60 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": false
@@ -56,7 +56,7 @@
}
}
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -148,8 +148,8 @@
"recovery": null
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"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 18f80cdb..82cd55a0 100644
--- a/src/packs/subclasses/feature_Elusive_Predator_Cjtc43V3IzAmfIFG.json
+++ b/src/packs/subclasses/feature_Elusive_Predator_Cjtc43V3IzAmfIFG.json
@@ -26,27 +26,28 @@
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "When your Focus makes an attack against you, you gain a +2 bonus to your Evasion against the attack.
",
"origin": null,
@@ -58,6 +59,16 @@
"_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 f53f7c31..f65cd041 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -47,7 +47,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -115,8 +115,8 @@
"recovery": "longRest"
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "hope": {
"value": {
"custom": {
"enabled": true,
@@ -141,7 +141,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -180,7 +180,7 @@
"effects": [
{
"name": "Epic Song",
- "img": "icons/svg/ice-aura.svg",
+ "img": "icons/tools/instruments/harp-yellow-teal.webp",
"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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
"description": "Make a target within Close range temporarily Vulnerable.
",
"tint": "#ffffff",
@@ -214,6 +214,16 @@
"_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 1fad2396..48973ad9 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 628fabed..517e1fe1 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 b7c39f2a..ab748169 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 f663201d..b7e2e8b9 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": [
- {
+ "parts": {
+ "hitPoints": {
"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 f1596519..ab7b4972 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": [
- {
+ "parts": {
+ "stress": {
"value": {
"custom": {
"enabled": true,
@@ -47,7 +47,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json b/src/packs/subclasses/feature_Sparing_Touch_GfOSgVJW8bS1OjNq.json
index deb4af6b..86de0fe8 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -65,7 +65,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
@@ -116,8 +116,8 @@
"consumeOnSuccess": false
},
"damage": {
- "parts": [
- {
+ "parts": {
+ "stress": {
"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 bbdd8707..b65184e9 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 5f2df7cb..c03c10b5 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": {
- "startTime": null,
- "combat": null,
- "seconds": null,
- "rounds": null,
- "turns": null,
- "startRound": null,
- "startTurn": null
+ "value": null,
+ "units": "seconds",
+ "expiry": null,
+ "expired": false
},
- "description": "+4 bonus to your Severe threshold
",
+ "description": "+4 bonus to your Severe threshold
",
"origin": null,
"tint": "#ffffff",
"transfer": true,
@@ -90,6 +90,16 @@
"_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 e80a770a..0c6ad3e3 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": [
- {
+ "parts": {
+ "hitPoints": {
"value": {
"custom": {
"enabled": true,
@@ -49,7 +49,7 @@
},
"type": []
}
- ],
+ },
"includeBase": false
},
"target": {
diff --git a/styles/less/dialog/beastform/sheet.less b/styles/less/dialog/beastform/sheet.less
index 9e87f53b..0e1fe746 100644
--- a/styles/less/dialog/beastform/sheet.less
+++ b/styles/less/dialog/beastform/sheet.less
@@ -204,6 +204,44 @@
}
}
+ .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 1de3d870..f9569fca 100644
--- a/styles/less/dialog/character-creation/selections-container.less
+++ b/styles/less/dialog/character-creation/selections-container.less
@@ -240,12 +240,16 @@
display: flex;
align-items: center;
justify-content: space-evenly;
- gap: 8px;
+ gap: 2px;
.trait-container {
- width: 60px;
- height: 60px;
+ span {
+ font-size: var(--font-size-10);
+ }
+ width: 65px;
+ height: 65px;
background: url(../assets/svg/trait-shield.svg) no-repeat;
+ background-size: 100%;
div {
filter: drop-shadow(0 0 3px black);
diff --git a/styles/less/dialog/damage-reduction/damage-reduction-container.less b/styles/less/dialog/damage-reduction/damage-reduction-container.less
index 2f343fb3..e8242bdd 100644
--- a/styles/less/dialog/damage-reduction/damage-reduction-container.less
+++ b/styles/less/dialog/damage-reduction/damage-reduction-container.less
@@ -35,7 +35,10 @@
display: flex;
flex-direction: column;
align-items: center;
- width: 100%;
+
+ &.full-width {
+ width: 100%;
+ }
}
.padded {
@@ -45,6 +48,7 @@
.armor-title {
margin: 0;
white-space: nowrap;
+ width: 100%;
}
.resources-container {
@@ -62,12 +66,17 @@
.mark-selection {
display: flex;
- align-items: center;
+ flex-direction: column;
width: 100%;
margin: 0;
+ h4 {
+ margin: 0;
+ }
+
.mark-selection-inner {
display: flex;
+ justify-content: center;
gap: 8px;
.mark-container {
@@ -91,6 +100,19 @@
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 461fb0b5..0f765748 100644
--- a/styles/less/dialog/damage-selection/sheet.less
+++ b/styles/less/dialog/damage-selection/sheet.less
@@ -17,6 +17,30 @@
}
}
+ .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;
+ }
+ }
+ }
+
.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 7fdae77a..a1a01e6b 100644
--- a/styles/less/dialog/dice-roll/roll-selection.less
+++ b/styles/less/dialog/dice-roll/roll-selection.less
@@ -69,29 +69,6 @@
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/index.less b/styles/less/dialog/index.less
index 0c70df9f..73738eaa 100644
--- a/styles/less/dialog/index.less
+++ b/styles/less/dialog/index.less
@@ -32,6 +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 './image-select/sheet.less';
diff --git a/styles/less/dialog/tag-team-dialog/initialization.less b/styles/less/dialog/tag-team-dialog/initialization.less
new file mode 100644
index 00000000..30676f82
--- /dev/null
+++ b/styles/less/dialog/tag-team-dialog/initialization.less
@@ -0,0 +1,59 @@
+.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;
+ }
+ }
+ }
+
+ .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 767c66ca..dc8f16dc 100644
--- a/styles/less/dialog/tag-team-dialog/sheet.less
+++ b/styles/less/dialog/tag-team-dialog/sheet.less
@@ -1,178 +1,272 @@
.daggerheart.dialog.dh-style.views.tag-team-dialog {
- .tag-team-container {
+ .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 {
display: flex;
flex-direction: column;
gap: 16px;
- .tag-team-data-container {
- display: flex;
- align-items: center;
- gap: 8px;
-
- .form-group {
- flex: 0;
-
- label {
- white-space: nowrap;
- }
-
- &.flex-group {
- flex: 1;
- }
- }
+ &.inactive {
+ opacity: 0.4;
+ pointer-events: none;
}
- .title-row {
- display: flex;
- align-items: center;
- gap: 8px;
-
- h2 {
- text-align: start;
- }
-
- select {
- flex: 1;
- }
- }
-
- .participants-container {
- margin-top: 8px;
+ .results-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;
- .participant-outer-container {
- padding: 8px;
+ .result-container-label {
+ font-size: var(--font-size-24);
+ font-weight: bold;
+ }
+
+ .results-inner-container {
display: flex;
- flex-direction: column;
- gap: 4px;
- cursor: pointer;
- border-radius: 6px;
+ justify-content: space-between;
+ gap: 8px;
+ width: 100%;
- &.selected,
- &:hover {
- background-color: light-dark(@golden-40, @golden-40);
+ .result-section-label {
+ font-size: var(--font-size-20);
}
- .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;
+ .result-container {
+ width: 100%;
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 {
+ .result-info {
display: flex;
+ gap: 4px;
align-items: center;
justify-content: center;
- white-space: nowrap;
-
- .participant-roll-text-container {
- padding: 0 8px;
- white-space: nowrap;
- display: flex;
- }
- }
-
- .damage-values-container {
- display: flex;
- justify-content: space-around;
- gap: 8px;
-
- .damage-container {
- border: 1px solid light-dark(white, white);
- border-radius: 6px;
- padding: 0 4px;
- display: flex;
- gap: 4px;
- }
}
}
}
}
- h2 {
- text-align: center;
- }
-
- .result-container {
+ .finish-container {
+ gap: 16px;
display: grid;
- grid-template-columns: 1fr 1fr;
- align-items: center;
- gap: 8px;
+ grid-template-columns: 1fr 1fr 1fr;
- .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;
- }
+ .finish-button {
+ grid-column: span 2;
}
}
-
- .roll-leader-container {
- display: grid;
- grid-template-columns: 1fr 1fr;
- gap: 8px;
- }
+ }
+
+ .hint {
+ text-align: center;
}
}
diff --git a/styles/less/global/elements.less b/styles/less/global/elements.less
index beffefbb..793c8164 100755
--- a/styles/less/global/elements.less
+++ b/styles/less/global/elements.less
@@ -293,6 +293,20 @@
}
}
+ &.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 {
@@ -333,6 +347,15 @@
legend {
font-weight: bold;
color: light-dark(@dark-blue, @golden);
+
+ &.with-icon {
+ display: flex;
+ align-items: center;
+
+ i {
+ padding: 0 4px;
+ }
+ }
}
input[type='text'],
@@ -460,6 +483,10 @@
&.even {
grid-template-columns: 1fr 1fr;
}
+
+ &.full-width {
+ width: 100%;
+ }
}
.three-columns {
diff --git a/styles/less/global/sheet.less b/styles/less/global/sheet.less
index 1e7bad0a..6f77a481 100755
--- a/styles/less/global/sheet.less
+++ b/styles/less/global/sheet.less
@@ -14,11 +14,7 @@ body.game:is(.performance-low, .noblur) {
.themed.theme-dark .application.daggerheart.sheet.dh-style,
.themed.theme-dark.application.daggerheart.sheet.dh-style,
&.theme-dark .application.daggerheart {
- &.adversary,
- &.character,
- &.item {
- background: @dark-blue;
- }
+ background: @dark-blue;
}
}
diff --git a/styles/less/sheets-settings/character-settings/sheet.less b/styles/less/sheets-settings/character-settings/sheet.less
index f0c7c94e..f7f16df4 100644
--- a/styles/less/sheets-settings/character-settings/sheet.less
+++ b/styles/less/sheets-settings/character-settings/sheet.less
@@ -20,16 +20,22 @@
display: flex;
align-items: center;
justify-content: space-evenly;
- gap: 8px;
+ gap: 2px;
.trait-container {
- width: 60px;
- height: 60px;
+ width: 65px;
+ height: 65px;
background: url(../assets/svg/trait-shield.svg) no-repeat;
+ background-size: 100%;
+ padding-top: 4px;
display: flex;
flex-direction: column;
align-items: center;
+ span {
+ font-size: var(--font-size-10);
+ }
+
div {
filter: drop-shadow(0 0 3px black);
text-shadow: 0 0 3px black;
diff --git a/styles/less/sheets/actions/actions.less b/styles/less/sheets/actions/actions.less
index 5c21dc60..5a18d622 100644
--- a/styles/less/sheets/actions/actions.less
+++ b/styles/less/sheets/actions/actions.less
@@ -133,4 +133,18 @@
height: 300px;
}
}
+
+ .deletable-row {
+ display: flex;
+ align-items: end;
+ gap: 8px;
+
+ input {
+ flex: 1;
+ }
+
+ a {
+ padding-bottom: 7px;
+ }
+ }
}
diff --git a/styles/less/sheets/activeEffects/activeEffects.less b/styles/less/sheets/activeEffects/activeEffects.less
new file mode 100644
index 00000000..e4f5c541
--- /dev/null
+++ b/styles/less/sheets/activeEffects/activeEffects.less
@@ -0,0 +1,90 @@
+.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/character/sidebar.less b/styles/less/sheets/actors/character/sidebar.less
index 04baf2b9..e7027163 100644
--- a/styles/less/sheets/actors/character/sidebar.less
+++ b/styles/less/sheets/actors/character/sidebar.less
@@ -276,6 +276,23 @@
}
}
+ .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;
}
@@ -288,6 +305,7 @@
position: relative;
width: 95px;
height: 30px;
+ white-space: nowrap;
.status-label {
padding: 2px 2px;
@@ -298,6 +316,12 @@
border-radius: 3px;
background: light-dark(@dark-blue, @golden);
clip-path: none;
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ gap: 4px;
+ border: 1px solid transparent;
+ transition: all 0.3s ease;
h4 {
font-weight: bold;
@@ -306,6 +330,21 @@
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;
@@ -355,6 +394,19 @@
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/sheet.less b/styles/less/sheets/actors/party/sheet.less
index 2d1344e8..6b51de53 100644
--- a/styles/less/sheets/actors/party/sheet.less
+++ b/styles/less/sheets/actors/party/sheet.less
@@ -7,8 +7,12 @@
background-image: url('../assets/parchments/dh-parchment-dark.png');
}
}, {
- &.party {
+ &.sheet.actor.dh-style.party {
background: url('../assets/parchments/dh-parchment-light.png');
+
+ .tab .actions-section .active-action {
+ animation: glow-dark 0.75s infinite alternate;
+ }
}
});
@@ -40,6 +44,10 @@
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 1bdb451a..e5ffbf3e 100644
--- a/styles/less/sheets/index.less
+++ b/styles/less/sheets/index.less
@@ -42,3 +42,5 @@
@import './rollTables/sheet.less';
@import './actions/actions.less';
+
+@import './activeEffects/activeEffects.less';
diff --git a/styles/less/ui/chat/chat.less b/styles/less/ui/chat/chat.less
index e9ef9147..db6dceb9 100644
--- a/styles/less/ui/chat/chat.less
+++ b/styles/less/ui/chat/chat.less
@@ -384,6 +384,15 @@
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;
+ }
}
}
diff --git a/styles/less/ui/effects-display/sheet.less b/styles/less/ui/effects-display/sheet.less
index 1331b094..17d9889f 100644
--- a/styles/less/ui/effects-display/sheet.less
+++ b/styles/less/ui/effects-display/sheet.less
@@ -35,6 +35,21 @@
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 664e7526..ba1afb0b 100644
--- a/styles/less/ui/scene-config/scene-config.less
+++ b/styles/less/ui/scene-config/scene-config.less
@@ -13,6 +13,8 @@
.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/sidebar/daggerheartMenu.less b/styles/less/ui/sidebar/daggerheartMenu.less
index 677214d7..88b139c5 100644
--- a/styles/less/ui/sidebar/daggerheartMenu.less
+++ b/styles/less/ui/sidebar/daggerheartMenu.less
@@ -15,17 +15,17 @@
font-weight: bold;
}
- .menu-refresh-container {
+ .menu-options-container {
display: flex;
flex-direction: column;
gap: 8px;
- .menu-refresh-inner-container {
+ .menu-options-inner-container {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
- .experience-chip {
+ .option-chip {
display: flex;
align-items: center;
border-radius: 5px;
diff --git a/styles/less/ux/index.less b/styles/less/ux/index.less
index c6c40f78..a73f2d1c 100644
--- a/styles/less/ux/index.less
+++ b/styles/less/ux/index.less
@@ -1,4 +1,6 @@
+@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
new file mode 100644
index 00000000..e1ac6bb9
--- /dev/null
+++ b/styles/less/ux/tooltip/armorManagement.less
@@ -0,0 +1,141 @@
+@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 78622377..d72f635e 100644
--- a/styles/less/ux/tooltip/bordered-tooltip.less
+++ b/styles/less/ux/tooltip/bordered-tooltip.less
@@ -6,6 +6,7 @@
.daggerheart.dh-style.tooltip {
display: flex;
flex-direction: column;
+ align-items: start;
text-align: start;
width: 100%;
gap: 5px;
@@ -13,10 +14,11 @@
border-radius: 3px;
.tooltip-header {
+ width: 100%;
display: flex;
flex-direction: column;
align-items: center;
- text-align: start;
+ text-align: center;
padding: 5px;
gap: 0px;
@@ -35,12 +37,80 @@
}
}
- .close-hint {
- border-radius: 3px;
- padding: 3px;
- background: @rustic-brown-80;
- color: @golden;
- font-size: 12px;
+ .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%;
+ }
}
}
}
diff --git a/styles/less/ux/tooltip/sheet.less b/styles/less/ux/tooltip/sheet.less
new file mode 100644
index 00000000..59e4e638
--- /dev/null
+++ b/styles/less/ux/tooltip/sheet.less
@@ -0,0 +1,129 @@
+#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 8e6f638d..1566059f 100644
--- a/styles/less/ux/tooltip/tooltip.less
+++ b/styles/less/ux/tooltip/tooltip.less
@@ -13,13 +13,6 @@ 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;
}
@@ -53,20 +46,13 @@ aside[role='tooltip']:has(div.daggerheart.dh-style.tooltip.card-style) {
}
}
- .tooltip-tags {
- display: flex;
- flex-direction: column;
- gap: 10px;
+ .tooltip-duration {
+ font-style: italic;
+ text-align: start;
+ position: relative;
width: 100%;
padding: 5px 10px;
- position: relative;
- padding-top: 10px;
- max-height: 150px;
- overflow-y: auto;
- position: relative;
-
- scrollbar-width: thin;
- scrollbar-color: light-dark(@dark-blue, @golden) transparent;
+ margin: 5px 0px;
&::before {
content: '';
@@ -74,86 +60,16 @@ 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);
- }
-
- &::before {
position: absolute;
- top: 0px;
+ top: -5px;
+ font-size: 14px;
}
- .tooltip-tag {
+ .duration-inner-container {
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 {
+ justify-content: center;
+ gap: 2px;
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 9242a24a..b1fe74d8 100644
--- a/system.json
+++ b/system.json
@@ -2,11 +2,11 @@
"id": "daggerheart",
"title": "Daggerheart",
"description": "An unofficial implementation of the Daggerheart system",
- "version": "1.9.6",
+ "version": "2.0.0",
"compatibility": {
- "minimum": "13.346",
- "verified": "13.351",
- "maximum": "13"
+ "minimum": "14.359",
+ "verified": "14.359",
+ "maximum": "14"
},
"authors": [
{
diff --git a/templates/actionTypes/beastform.hbs b/templates/actionTypes/beastform.hbs
index b9bea445..885038a1 100644
--- a/templates/actionTypes/beastform.hbs
+++ b/templates/actionTypes/beastform.hbs
@@ -1,4 +1,16 @@
+{{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 96bb361c..9e7c2884 100644
--- a/templates/actionTypes/damage.hbs
+++ b/templates/actionTypes/damage.hbs
@@ -1,12 +1,12 @@
{{#*inline "formula"}}
{{#unless dmg.base}}
- {{formField fields.custom.fields.enabled value=source.custom.enabled name=(concat path "damage.parts." realIndex "." target ".custom.enabled") classes="checkbox" localize=true}}
+ {{formField fields.custom.fields.enabled value=source.custom.enabled name=(concat path "damage.parts." key "." target ".custom.enabled") classes="checkbox" localize=true}}
{{/unless}}
{{#if source.custom.enabled}}
- {{formField fields.custom.fields.formula value=source.custom.formula name=(concat path "damage.parts." realIndex "." target ".custom.formula") localize=true}}
+ {{formField fields.custom.fields.formula value=source.custom.formula name=(concat path "damage.parts." key "." target ".custom.formula") localize=true}}
{{else}}
{{#unless @root.isNPC}}
- {{formField fields.multiplier value=source.multiplier name=(concat path "damage.parts." realIndex "." target ".multiplier") localize=true}}
+ {{formField fields.multiplier value=source.multiplier name=(concat path "damage.parts." key "." target ".multiplier") localize=true}}
{{/unless}}
- {{#if (eq source.multiplier 'flat')}}{{formField fields.flatMultiplier value=source.flatMultiplier name=(concat path "damage.parts." realIndex "." target ".flatMultiplier") localize=true }}{{/if}}
- {{formField fields.dice value=source.dice name=(concat path "damage.parts." realIndex "." target ".dice") localize=true}}
- {{formField fields.bonus value=source.bonus name=(concat path "damage.parts." realIndex "." target ".bonus") localize=true}}
+ {{#if (eq source.multiplier 'flat')}}{{formField fields.flatMultiplier value=source.flatMultiplier name=(concat path "damage.parts." key "." target ".flatMultiplier") localize=true }}{{/if}}
+ {{formField fields.dice value=source.dice name=(concat path "damage.parts." key "." target ".dice") localize=true}}
+ {{formField fields.bonus value=source.bonus name=(concat path "damage.parts." key "." target ".bonus") localize=true}}
{{/if}}
{{#if @root.isNPC}}
-
+
{{/if}}
{{/inline}}
\ No newline at end of file
diff --git a/templates/dialogs/beastform/modifications.hbs b/templates/dialogs/beastform/modifications.hbs
new file mode 100644
index 00000000..2563ea13
--- /dev/null
+++ b/templates/dialogs/beastform/modifications.hbs
@@ -0,0 +1,28 @@
+
+ {{#if modifications.traitBonuses.length}}
+
+ {{/if}}
+
\ No newline at end of file
diff --git a/templates/dialogs/damageReduction.hbs b/templates/dialogs/damageReduction.hbs
index 57d7ee61..50fe3422 100644
--- a/templates/dialogs/damageReduction.hbs
+++ b/templates/dialogs/damageReduction.hbs
@@ -7,53 +7,57 @@
-
{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.armorMarks"}}
-
{{armorMarks}}/{{armorScore}}
+
{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.maxUseableArmor"}}
+
{{availableArmor}}
- {{#if this.stress}}
-
-
{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.stress"}}
-
{{this.stress.value}}/{{this.stress.max}}
-
- {{/if}}
-
-
-
- {{#each marks.armor}}
-
-
-
- {{/each}}
+
+ {{#each marks.armor as |source|}}
+
+
{{source.label}}
+
+ {{#each source.marks}}
+
+
+
+ {{/each}}
+
+
+ {{/each}}
+ {{#if usesStressArmor}}
+
+
{{localize "Stress"}}
+
{{#each marks.stress}}
{{/each}}
+
-
-
{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.usedMarks"}}
+ {{/if}}
{{#if availableStressReductions}}
-
{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.stressReduction"}}
+ {{localize "DAGGERHEART.APPLICATIONS.DamageReduction.stressReduction"}}
{{/if}}
{{#each availableStressReductions}}
-
+
{{#if this.any}}
{{localize "DAGGERHEART.GENERAL.any"}}
@@ -74,7 +78,7 @@
{{#if reduceSeverity}}
-
{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.reduceSeverity" nr=reduceSeverity}}
+ {{localize "DAGGERHEART.APPLICATIONS.DamageReduction.reduceSeverity" nr=reduceSeverity}}
{{/if}}
@@ -82,7 +86,7 @@
{{#if thresholdImmunities}}
-
{{localize "DAGGERHEART.APPLICATIONS.DamageReduction.thresholdImmunities"}}
+ {{localize "DAGGERHEART.APPLICATIONS.DamageReduction.thresholdImmunities"}}
{{/if}}
diff --git a/templates/dialogs/dice-roll/damageSelection.hbs b/templates/dialogs/dice-roll/damageSelection.hbs
index c0dbae62..b2d1a895 100644
--- a/templates/dialogs/dice-roll/damageSelection.hbs
+++ b/templates/dialogs/dice-roll/damageSelection.hbs
@@ -34,8 +34,12 @@
{{/unless}}
-
- {{#if (and @root.hasRoll @root.activeTagTeamRoll)}}
-
-
- {{localize "DAGGERHEART.APPLICATIONS.TagTeamSelect.title"}}
-
- {{/if}}
\ No newline at end of file
diff --git a/templates/dialogs/dice-roll/rollSelection.hbs b/templates/dialogs/dice-roll/rollSelection.hbs
index 5139c58a..64a3cdcb 100644
--- a/templates/dialogs/dice-roll/rollSelection.hbs
+++ b/templates/dialogs/dice-roll/rollSelection.hbs
@@ -53,14 +53,14 @@
{{#if @root.advantage}}
{{#if (eq @root.advantage 1)}}
-

+
{{localize "DAGGERHEART.GENERAL.Advantage.full"}}
{{else if (eq @root.advantage -1)}}
-

+
{{localize "DAGGERHEART.GENERAL.Disadvantage.full"}}
@@ -158,7 +158,7 @@
{{/times}}
{{#if abilities}}
@@ -189,8 +189,8 @@
{{/if}}
-
{{formGroup settingFields.schema.fields.vulnerableAutomation value=settingFields._source.vulnerableAutomation localize=true}}
+ {{formGroup settingFields.schema.fields.autoExpireActiveEffects value=settingFields._source.autoExpireActiveEffects localize=true}}
{{formGroup settingFields.schema.fields.countdownAutomation value=settingFields._source.countdownAutomation localize=true}}
{{formGroup settingFields.schema.fields.actionPoints value=settingFields._source.actionPoints localize=true}}
{{formGroup settingFields.schema.fields.hordeDamage value=settingFields._source.hordeDamage localize=true}}
diff --git a/templates/sheets/activeEffect/change.hbs b/templates/sheets/activeEffect/change.hbs
new file mode 100644
index 00000000..d7d396e4
--- /dev/null
+++ b/templates/sheets/activeEffect/change.hbs
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+ {{selectOptions types selected=change.type localize=true}}
+
+
+
+ {{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 75f49e4a..37feb845 100644
--- a/templates/sheets/activeEffect/changes.hbs
+++ b/templates/sheets/activeEffect/changes.hbs
@@ -1,31 +1,27 @@
- {{localize "EFFECT.ChangeKey"}}
- {{localize "EFFECT.ChangeMode"}}
- {{localize "EFFECT.ChangeValue"}}
- {{localize "EFFECT.ChangePriority"}}
-
+ {{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"}}
+
- {{#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 changes as |change|}}
+ {{{change}}}
{{/each}}
-
\ No newline at end of file
+
+
+
diff --git a/templates/sheets/activeEffect/details.hbs b/templates/sheets/activeEffect/details.hbs
index 22c95a1e..f7e465bd 100644
--- a/templates/sheets/activeEffect/details.hbs
+++ b/templates/sheets/activeEffect/details.hbs
@@ -4,7 +4,12 @@
{{formGroup fields.disabled value=source.disabled rootId=rootId}}
{{#if isActorEffect}}
- {{formGroup fields.origin value=source.origin rootId=rootId disabled=true}}
+
{{/if}}
{{#if isItemEffect}}
@@ -12,4 +17,5 @@
{{/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 cf98c786..9307ff65 100644
--- a/templates/sheets/activeEffect/settings.hbs
+++ b/templates/sheets/activeEffect/settings.hbs
@@ -1,4 +1,18 @@
+
+
-
+
-
- {{#if actor.system.armor.system.marks}}
+ {{#if actor.system.armorScore.max}}
{{localize "DAGGERHEART.GENERAL.armorSlots"}}
- {{actor.system.armor.system.marks.value}} / {{actor.system.armorScore}}
+ {{actor.system.armorScore.value}} / {{actor.system.armorScore.max}}
{{/if}}
diff --git a/templates/sheets/global/partials/inventory-item-V2.hbs b/templates/sheets/global/partials/inventory-item-V2.hbs
index a758a28f..2129b969 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.
--}}
-
{{localize "DAGGERHEART.ITEMS.Armor.baseScore"}}:
- {{source.system.baseScore}}
+ {{source.system.armor.max}}
-
{{localize "DAGGERHEART.ITEMS.Armor.baseThresholds.base"}}:
{{source.system.baseThresholds.major}}
diff --git a/templates/sheets/items/armor/settings.hbs b/templates/sheets/items/armor/settings.hbs
index e7bde6fe..51bf1746 100644
--- a/templates/sheets/items/armor/settings.hbs
+++ b/templates/sheets/items/armor/settings.hbs
@@ -6,9 +6,9 @@