mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-03-07 14:36:13 +01:00
Compare commits
4 commits
94262ba6ec
...
81e61a7386
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81e61a7386 | ||
|
|
aef3d3cd04 | ||
|
|
b9e3eec34c | ||
|
|
47b16392eb |
50 changed files with 1563 additions and 68 deletions
|
|
@ -2982,6 +2982,9 @@
|
||||||
"cannotAlterArmorEffectChanges": "You cannot alter the changes length of an armor effect",
|
"cannotAlterArmorEffectChanges": "You cannot alter the changes length of an armor effect",
|
||||||
"cannotAlterArmorEffectType": "You cannot alter the type of armor effect changes"
|
"cannotAlterArmorEffectType": "You cannot alter the type of armor effect changes"
|
||||||
},
|
},
|
||||||
|
"Progress": {
|
||||||
|
"migrationLabel": "Performing system migration. Please wait and do not close Foundry."
|
||||||
|
},
|
||||||
"Sidebar": {
|
"Sidebar": {
|
||||||
"actorDirectory": {
|
"actorDirectory": {
|
||||||
"tier": "Tier {tier} {type}",
|
"tier": "Tier {tier} {type}",
|
||||||
|
|
|
||||||
|
|
@ -629,12 +629,12 @@ export default class CharacterSheet extends DHBaseActorSheet {
|
||||||
}
|
}
|
||||||
|
|
||||||
async updateArmorMarks(event) {
|
async updateArmorMarks(event) {
|
||||||
const armor = this.document.system.armor;
|
const inputValue = Number(event.currentTarget.value);
|
||||||
if (!armor) return;
|
const { value, max } = this.document.system.armorScore;
|
||||||
|
const changeValue = Math.min(inputValue - value, max - value);
|
||||||
|
|
||||||
const maxMarks = this.document.system.armorScore;
|
event.currentTarget.value = inputValue < 0 ? 0 : value + changeValue;
|
||||||
const value = Math.min(Math.max(Number(event.currentTarget.value), 0), maxMarks);
|
this.document.system.updateArmorValue({ value: changeValue });
|
||||||
await armor.update({ 'system.marks.value': value });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|
@ -813,10 +813,13 @@ export default class CharacterSheet extends DHBaseActorSheet {
|
||||||
* Toggles ArmorScore resource value.
|
* Toggles ArmorScore resource value.
|
||||||
* @type {ApplicationClickAction}
|
* @type {ApplicationClickAction}
|
||||||
*/
|
*/
|
||||||
static async #toggleArmor(_, button, element) {
|
static async #toggleArmor(_, button, _element) {
|
||||||
const ArmorValue = Number.parseInt(button.dataset.value);
|
const { value, max } = this.document.system.armorScore;
|
||||||
const newValue = this.document.system.armor.system.marks.value >= ArmorValue ? ArmorValue - 1 : ArmorValue;
|
const inputValue = Number.parseInt(button.dataset.value);
|
||||||
await this.document.system.armor.update({ 'system.marks.value': newValue });
|
const newValue = value >= inputValue ? inputValue - 1 : inputValue;
|
||||||
|
const changeValue = Math.min(newValue - value, max - value);
|
||||||
|
|
||||||
|
this.document.system.updateArmorValue({ value: changeValue });
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -160,7 +160,7 @@ export default class DHBaseActorSheet extends DHApplicationMixin(ActorSheetV2) {
|
||||||
inactives: []
|
inactives: []
|
||||||
};
|
};
|
||||||
|
|
||||||
for (const effect of this.actor.allApplicableEffects({ noArmor: true })) {
|
for (const effect of this.actor.allApplicableEffects({ noTransferArmor: true })) {
|
||||||
const list = effect.active ? context.effects.actives : context.effects.inactives;
|
const list = effect.active ? context.effects.actives : context.effects.inactives;
|
||||||
list.push(effect);
|
list.push(effect);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,3 +7,4 @@ export { default as DhFearTracker } from './fearTracker.mjs';
|
||||||
export { default as DhHotbar } from './hotbar.mjs';
|
export { default as DhHotbar } from './hotbar.mjs';
|
||||||
export { default as DhSceneNavigation } from './sceneNavigation.mjs';
|
export { default as DhSceneNavigation } from './sceneNavigation.mjs';
|
||||||
export { ItemBrowser } from './itemBrowser.mjs';
|
export { ItemBrowser } from './itemBrowser.mjs';
|
||||||
|
export { default as DhProgress } from './progress.mjs';
|
||||||
|
|
|
||||||
27
module/applications/ui/progress.mjs
Normal file
27
module/applications/ui/progress.mjs
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
export default class DhProgress {
|
||||||
|
#notification;
|
||||||
|
|
||||||
|
constructor({ max, label = '' }) {
|
||||||
|
this.max = max;
|
||||||
|
this.label = label;
|
||||||
|
this.#notification = ui.notifications.info(this.label, { progress: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
updateMax(newMax) {
|
||||||
|
this.max = newMax;
|
||||||
|
}
|
||||||
|
|
||||||
|
advance({ by = 1, label = this.label } = {}) {
|
||||||
|
if (this.value === this.max) return;
|
||||||
|
this.value += Math.abs(by);
|
||||||
|
this.#notification.update({ message: label, pct: this.value / this.max });
|
||||||
|
}
|
||||||
|
|
||||||
|
close({ label = '' } = {}) {
|
||||||
|
this.#notification.update({ message: label, pct: 1 });
|
||||||
|
}
|
||||||
|
|
||||||
|
static createMigrationProgress(max = 0) {
|
||||||
|
return new DhProgress({ max, label: game.i18n.localize('DAGGERHEART.UI.Progress.migrationLabel') });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -295,17 +295,19 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel
|
||||||
static async getEffects(actor, effectParent) {
|
static async getEffects(actor, effectParent) {
|
||||||
if (!actor) return [];
|
if (!actor) return [];
|
||||||
|
|
||||||
return Array.from(await actor.allApplicableEffects()).filter(effect => {
|
return Array.from(await actor.allApplicableEffects({ noTransferArmor: true, noSelfArmor: true })).filter(
|
||||||
/* Effects on weapons only ever apply for the weapon itself */
|
effect => {
|
||||||
if (effect.parent.type === 'weapon') {
|
/* Effects on weapons only ever apply for the weapon itself */
|
||||||
/* Unless they're secondary - then they apply only to other primary weapons */
|
if (effect.parent.type === 'weapon') {
|
||||||
if (effect.parent.system.secondary) {
|
/* Unless they're secondary - then they apply only to other primary weapons */
|
||||||
if (effectParent?.type !== 'weapon' || effectParent?.system.secondary) return false;
|
if (effect.parent.system.secondary) {
|
||||||
} else if (effectParent?.id !== effect.parent.id) return false;
|
if (effectParent?.type !== 'weapon' || effectParent?.system.secondary) return false;
|
||||||
}
|
} else if (effectParent?.id !== effect.parent.id) return false;
|
||||||
|
}
|
||||||
|
|
||||||
return !effect.isSuppressed;
|
return !effect.isSuppressed;
|
||||||
});
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { getScrollTextData } from '../../helpers/utils.mjs';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ArmorEffects are ActiveEffects that have a static changes field of length 1. It includes current and maximum armor.
|
* ArmorEffects are ActiveEffects that have a static changes field of length 1. It includes current and maximum armor.
|
||||||
* When applied to a character, it adds to their currently marked and maximum armor.
|
* When applied to a character, it adds to their currently marked and maximum armor.
|
||||||
|
|
@ -105,9 +107,10 @@ export default class ArmorEffect extends foundry.data.ActiveEffectTypeDataModel
|
||||||
}
|
}
|
||||||
|
|
||||||
async updateArmorMax(newMax) {
|
async updateArmorMax(newMax) {
|
||||||
|
const { effect, ...baseChange } = this.armorChange;
|
||||||
const newChanges = [
|
const newChanges = [
|
||||||
{
|
{
|
||||||
...this.armorChange,
|
...baseChange,
|
||||||
max: newMax,
|
max: newMax,
|
||||||
value: Math.min(this.armorChange.value, newMax)
|
value: Math.min(this.armorChange.value, newMax)
|
||||||
}
|
}
|
||||||
|
|
@ -150,7 +153,7 @@ export default class ArmorEffect extends foundry.data.ActiveEffectTypeDataModel
|
||||||
armorChange.key = 'system.armorScore';
|
armorChange.key = 'system.armorScore';
|
||||||
}
|
}
|
||||||
|
|
||||||
static getDefaultEffectData() {
|
static getDefaultObject() {
|
||||||
return {
|
return {
|
||||||
type: 'armor',
|
type: 'armor',
|
||||||
name: game.i18n.localize('DAGGERHEART.EFFECTS.Armor.newArmorEffect'),
|
name: game.i18n.localize('DAGGERHEART.EFFECTS.Armor.newArmorEffect'),
|
||||||
|
|
@ -158,13 +161,6 @@ export default class ArmorEffect extends foundry.data.ActiveEffectTypeDataModel
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
async _preCreate(data, options, user) {
|
|
||||||
const allowed = await super._preCreate(data, options, user);
|
|
||||||
if (allowed === false) return;
|
|
||||||
|
|
||||||
await this.updateSource({ ...ArmorEffect.getDefaultEffectData(), data });
|
|
||||||
}
|
|
||||||
|
|
||||||
async _preUpdate(changes, options, user) {
|
async _preUpdate(changes, options, user) {
|
||||||
const allowed = await super._preUpdate(changes, options, user);
|
const allowed = await super._preUpdate(changes, options, user);
|
||||||
if (allowed === false) return false;
|
if (allowed === false) return false;
|
||||||
|
|
@ -185,6 +181,19 @@ export default class ArmorEffect extends foundry.data.ActiveEffectTypeDataModel
|
||||||
ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.cannotAlterArmorEffectType'));
|
ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.cannotAlterArmorEffectType'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (changes.system.changes[0].value !== this.armorChange.value && this.parent.actor?.type === 'character') {
|
||||||
|
const increased = changes.system.changes[0].value > this.armorChange.value;
|
||||||
|
const value = -1 * (this.armorChange.value - changes.system.changes[0].value);
|
||||||
|
options.scrollingTextData = [getScrollTextData(increased, value, 'armor')];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_onUpdate(changes, options, userId) {
|
||||||
|
super._onUpdate(changes, options, userId);
|
||||||
|
|
||||||
|
if (options.scrollingTextData && this.parent.actor?.type === 'character')
|
||||||
|
this.parent.actor.queueScrollText(options.scrollingTextData);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import DHBaseActorSettings from '../../applications/sheets/api/actor-setting.mjs';
|
import DHBaseActorSettings from '../../applications/sheets/api/actor-setting.mjs';
|
||||||
import DHItem from '../../documents/item.mjs';
|
import DHItem from '../../documents/item.mjs';
|
||||||
import { getScrollTextData } from '../../helpers/utils.mjs';
|
import { getResourceScrollTextData } from '../../helpers/utils.mjs';
|
||||||
|
|
||||||
const fields = foundry.data.fields;
|
const fields = foundry.data.fields;
|
||||||
|
|
||||||
|
|
@ -211,7 +211,7 @@ export default class BaseDataActor extends foundry.abstract.TypeDataModel {
|
||||||
const textData = Object.keys(changes.system.resources).reduce((acc, key) => {
|
const textData = Object.keys(changes.system.resources).reduce((acc, key) => {
|
||||||
const resource = changes.system.resources[key];
|
const resource = changes.system.resources[key];
|
||||||
if (resource.value !== undefined && resource.value !== this.resources[key].value) {
|
if (resource.value !== undefined && resource.value !== this.resources[key].value) {
|
||||||
acc.push(getScrollTextData(this.resources, resource, key));
|
acc.push(getResourceScrollTextData(this.resources, resource, key));
|
||||||
}
|
}
|
||||||
|
|
||||||
return acc;
|
return acc;
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@ export default class DHArmor extends AttachableItem {
|
||||||
|
|
||||||
if (!this.parent.effects.some(x => x.type === 'armor')) {
|
if (!this.parent.effects.some(x => x.type === 'armor')) {
|
||||||
this.parent.createEmbeddedDocuments('ActiveEffect', [
|
this.parent.createEmbeddedDocuments('ActiveEffect', [
|
||||||
game.system.api.data.activeEffects.ArmorEffect.getDefaultEffectData()
|
game.system.api.data.activeEffects.ArmorEffect.getDefaultObject()
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -175,13 +175,22 @@ export default class DHArmor extends AttachableItem {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @inheritDoc */
|
||||||
|
static migrateDocumentData(source) {
|
||||||
|
if (source.system.baseScore !== undefined && !source.effects.some(x => x.type === 'armor')) {
|
||||||
|
if (!source.flags) source.flags = {};
|
||||||
|
if (!source.flags.daggerheart) source.flags.daggerheart = {};
|
||||||
|
source.flags.daggerheart.baseScoreMigrationValue = source.system.baseScore;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates a list of localized tags based on this item's type-specific properties.
|
* Generates a list of localized tags based on this item's type-specific properties.
|
||||||
* @returns {string[]} An array of localized tag strings.
|
* @returns {string[]} An array of localized tag strings.
|
||||||
*/
|
*/
|
||||||
_getTags() {
|
_getTags() {
|
||||||
const tags = [
|
const tags = [
|
||||||
`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.armorData.value}`,
|
`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.armorData.max}`,
|
||||||
`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseThresholds.base')}: ${this.baseThresholds.major} / ${this.baseThresholds.severe}`
|
`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseThresholds.base')}: ${this.baseThresholds.major} / ${this.baseThresholds.severe}`
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -193,7 +202,7 @@ export default class DHArmor extends AttachableItem {
|
||||||
* @returns {(string | { value: string, icons: string[] })[]} An array of localized strings and damage label objects.
|
* @returns {(string | { value: string, icons: string[] })[]} An array of localized strings and damage label objects.
|
||||||
*/
|
*/
|
||||||
_getLabels() {
|
_getLabels() {
|
||||||
const labels = [`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.armorData.value}`];
|
const labels = [`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.armorData.max}`];
|
||||||
return labels;
|
return labels;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
* @property {boolean} isInventoryItem- Indicates whether items of this type is a Inventory Item
|
* @property {boolean} isInventoryItem- Indicates whether items of this type is a Inventory Item
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { addLinkedItemsDiff, getScrollTextData, updateLinkedItemApps } from '../../helpers/utils.mjs';
|
import { addLinkedItemsDiff, getResourceScrollTextData, updateLinkedItemApps } from '../../helpers/utils.mjs';
|
||||||
import { ActionsField } from '../fields/actionField.mjs';
|
import { ActionsField } from '../fields/actionField.mjs';
|
||||||
import FormulaField from '../fields/formulaField.mjs';
|
import FormulaField from '../fields/formulaField.mjs';
|
||||||
|
|
||||||
|
|
@ -224,7 +224,11 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel {
|
||||||
const armorChanged =
|
const armorChanged =
|
||||||
changed.system?.marks?.value !== undefined && changed.system.marks.value !== this.marks.value;
|
changed.system?.marks?.value !== undefined && changed.system.marks.value !== this.marks.value;
|
||||||
if (armorChanged && autoSettings.resourceScrollTexts && this.parent.parent?.type === 'character') {
|
if (armorChanged && autoSettings.resourceScrollTexts && this.parent.parent?.type === 'character') {
|
||||||
const armorData = getScrollTextData(this.parent.parent.system.resources, changed.system.marks, 'armor');
|
const armorData = getResourceScrollTextData(
|
||||||
|
this.parent.parent.system.resources,
|
||||||
|
changed.system.marks,
|
||||||
|
'armor'
|
||||||
|
);
|
||||||
options.scrollingTextData = [armorData];
|
options.scrollingTextData = [armorData];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -573,8 +573,7 @@ export default class DhpActor extends Actor {
|
||||||
const availableStress = this.system.resources.stress.max - this.system.resources.stress.value;
|
const availableStress = this.system.resources.stress.max - this.system.resources.stress.value;
|
||||||
|
|
||||||
const canUseArmor =
|
const canUseArmor =
|
||||||
this.system.armor &&
|
this.system.armorScore.value < this.system.armorScore.max &&
|
||||||
this.system.armor.system.marks.value < this.system.armorScore &&
|
|
||||||
type.every(t => this.system.armorApplicableDamageTypes[t] === true);
|
type.every(t => this.system.armorApplicableDamageTypes[t] === true);
|
||||||
const canUseStress = Object.keys(stressDamageReduction).reduce((acc, x) => {
|
const canUseStress = Object.keys(stressDamageReduction).reduce((acc, x) => {
|
||||||
const rule = stressDamageReduction[x];
|
const rule = stressDamageReduction[x];
|
||||||
|
|
@ -614,12 +613,7 @@ export default class DhpActor extends Actor {
|
||||||
const hpDamage = updates.find(u => u.key === CONFIG.DH.GENERAL.healingTypes.hitPoints.id);
|
const hpDamage = updates.find(u => u.key === CONFIG.DH.GENERAL.healingTypes.hitPoints.id);
|
||||||
if (hpDamage?.value) {
|
if (hpDamage?.value) {
|
||||||
hpDamage.value = this.convertDamageToThreshold(hpDamage.value);
|
hpDamage.value = this.convertDamageToThreshold(hpDamage.value);
|
||||||
if (
|
if (this.type === 'character' && !isDirect && this.#canReduceDamage(hpDamage.value, hpDamage.damageTypes)) {
|
||||||
this.type === 'character' &&
|
|
||||||
!isDirect &&
|
|
||||||
this.system.armor &&
|
|
||||||
this.#canReduceDamage(hpDamage.value, hpDamage.damageTypes)
|
|
||||||
) {
|
|
||||||
const armorSlotResult = await this.owner.query(
|
const armorSlotResult = await this.owner.query(
|
||||||
'armorSlot',
|
'armorSlot',
|
||||||
{
|
{
|
||||||
|
|
@ -989,13 +983,13 @@ export default class DhpActor extends Actor {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**@inheritdoc */
|
/**@inheritdoc */
|
||||||
*allApplicableEffects({ noArmor } = {}) {
|
*allApplicableEffects({ noSelfArmor, noTransferArmor } = {}) {
|
||||||
for (const effect of this.effects) {
|
for (const effect of this.effects) {
|
||||||
yield effect;
|
if (!noSelfArmor || effect.type !== 'armor') yield effect;
|
||||||
}
|
}
|
||||||
for (const item of this.items) {
|
for (const item of this.items) {
|
||||||
for (const effect of item.effects) {
|
for (const effect of item.effects) {
|
||||||
if (effect.transfer && (!noArmor || effect.type !== 'armor')) yield effect;
|
if (effect.transfer && (!noTransferArmor || effect.type !== 'armor')) yield effect;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -230,4 +230,14 @@ export default class DHItem extends foundry.documents.Item {
|
||||||
async _preDelete() {
|
async _preDelete() {
|
||||||
this.deleteTriggers();
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -378,14 +378,18 @@ export const arraysEqual = (a, b) =>
|
||||||
|
|
||||||
export const setsEqual = (a, b) => a.size === b.size && [...a].every(value => b.has(value));
|
export const setsEqual = (a, b) => a.size === b.size && [...a].every(value => b.has(value));
|
||||||
|
|
||||||
export function getScrollTextData(resources, resource, key) {
|
export function getResourceScrollTextData(resources, resource, key) {
|
||||||
const { reversed, label } = CONFIG.DH.ACTOR.scrollingTextResource[key];
|
|
||||||
const { BOTTOM, TOP } = CONST.TEXT_ANCHOR_POINTS;
|
|
||||||
const increased = resources[key].value < resource.value;
|
const increased = resources[key].value < resource.value;
|
||||||
const value = -1 * (resources[key].value - resource.value);
|
const value = -1 * (resources[key].value - resource.value);
|
||||||
|
|
||||||
const text = `${game.i18n.localize(label)} ${value.signedString()}`;
|
return getScrollTextData(increased, value, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getScrollTextData(increased, value, key) {
|
||||||
|
const { reversed, label } = CONFIG.DH.ACTOR.scrollingTextResource[key];
|
||||||
|
const { BOTTOM, TOP } = CONST.TEXT_ANCHOR_POINTS;
|
||||||
|
|
||||||
|
const text = `${game.i18n.localize(label)} ${value.signedString()}`;
|
||||||
const stroke = increased ? (reversed ? 0xffffff : 0x000000) : reversed ? 0x000000 : 0xffffff;
|
const stroke = increased ? (reversed ? 0xffffff : 0x000000) : reversed ? 0x000000 : 0xffffff;
|
||||||
const fill = increased ? (reversed ? 0x0032b1 : 0xffe760) : reversed ? 0xffe760 : 0x0032b1;
|
const fill = increased ? (reversed ? 0x0032b1 : 0xffe760) : reversed ? 0xffe760 : 0x0032b1;
|
||||||
const direction = increased ? (reversed ? BOTTOM : TOP) : reversed ? TOP : BOTTOM;
|
const direction = increased ? (reversed ? BOTTOM : TOP) : reversed ? TOP : BOTTOM;
|
||||||
|
|
|
||||||
|
|
@ -246,6 +246,92 @@ export async function runMigrations() {
|
||||||
|
|
||||||
lastMigrationVersion = '1.6.0';
|
lastMigrationVersion = '1.6.0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (foundry.utils.isNewerVersion('2.0.0', lastMigrationVersion)) {
|
||||||
|
/* Migrate existing armors to the new Armor Effects */
|
||||||
|
const progress = game.system.api.applications.ui.DhProgress.createMigrationProgress(0);
|
||||||
|
|
||||||
|
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 (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 armorEntries = await getIndexes(itemPacks, 'armor');
|
||||||
|
const actorEntries = await getIndexes(actorPacks, 'actor');
|
||||||
|
|
||||||
|
const worldArmors = game.items.filter(x => x instanceof game.system.api.documents.DHItem && x.type === 'armor');
|
||||||
|
|
||||||
|
for (const character of game.actors.filter(x => x.type === 'character')) {
|
||||||
|
worldArmors.push(...character.items.filter(x => x.type === 'armor'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* The async fetches are the mainstay of time. Leaving 1 progress for the sync logic */
|
||||||
|
const newMax = armorEntries.length + actorEntries.length + 1;
|
||||||
|
progress.updateMax(newMax);
|
||||||
|
|
||||||
|
const compendiumArmors = [];
|
||||||
|
for (const entry of armorEntries) {
|
||||||
|
const armor = await foundry.utils.fromUuid(entry);
|
||||||
|
compendiumArmors.push(armor);
|
||||||
|
progress.advance();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const entry of actorEntries) {
|
||||||
|
const actor = await foundry.utils.fromUuid(entry);
|
||||||
|
compendiumArmors.push(...actor.items.filter(x => x.type === 'armor'));
|
||||||
|
progress.advance();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const armor of [...compendiumArmors, ...worldArmors]) {
|
||||||
|
const hasArmorEffect = armor.effects.some(x => x.type === 'armor');
|
||||||
|
const migrationArmorScore = armor.flags.daggerheart?.baseScoreMigrationValue;
|
||||||
|
if (migrationArmorScore !== undefined && !hasArmorEffect) {
|
||||||
|
await armor.createEmbeddedDocuments('ActiveEffect', [
|
||||||
|
{
|
||||||
|
...game.system.api.data.activeEffects.ArmorEffect.getDefaultObject(),
|
||||||
|
changes: [
|
||||||
|
{
|
||||||
|
type: CONFIG.DH.GENERAL.activeEffectModes.armor.id,
|
||||||
|
phase: 'initial',
|
||||||
|
priority: 20,
|
||||||
|
value: 0,
|
||||||
|
max: migrationArmorScore
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
progress.advance();
|
||||||
|
|
||||||
|
for (let packId of lockedPacks) {
|
||||||
|
const pack = game.packs.get(packId);
|
||||||
|
await pack.configure({ locked: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
progress.close();
|
||||||
|
|
||||||
|
// lastMigrationVersion = '2.0.0';
|
||||||
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LastMigrationVersion, lastMigrationVersion);
|
await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LastMigrationVersion, lastMigrationVersion);
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!LzLOJ9EVaHWAjoq9.qlzHOAnpBYzosQxK"
|
"_key": "!items.effects!LzLOJ9EVaHWAjoq9.qlzHOAnpBYzosQxK"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "I0649iXfgoME38fU",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!LzLOJ9EVaHWAjoq9.I0649iXfgoME38fU"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!crIbCb9NZ4K0VpoU.awdHgEaM54G3emOU"
|
"_key": "!items.effects!crIbCb9NZ4K0VpoU.awdHgEaM54G3emOU"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "kRaWET7LV25rD4jy",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!crIbCb9NZ4K0VpoU.kRaWET7LV25rD4jy"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!epkAmlZVk7HOfUUT.Fq9Q93IHCchhfSss"
|
"_key": "!items.effects!epkAmlZVk7HOfUUT.Fq9Q93IHCchhfSss"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "lJBLFQHDjmgLsLL8",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!epkAmlZVk7HOfUUT.lJBLFQHDjmgLsLL8"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,46 @@
|
||||||
"artist": ""
|
"artist": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "1vzHmkVScl1KyHxy",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!itSOp2GCyem0f7oM.1vzHmkVScl1KyHxy"
|
||||||
|
}
|
||||||
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
"ownership": {
|
"ownership": {
|
||||||
"default": 0,
|
"default": 0,
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!ITAjcigTcUw5pMCN.8ze88zUwdkQSKKJq"
|
"_key": "!items.effects!ITAjcigTcUw5pMCN.8ze88zUwdkQSKKJq"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "B5hlwTWBUSJYZurq",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!ITAjcigTcUw5pMCN.B5hlwTWBUSJYZurq"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!WuoVwZA53XRAIt6d.Hy0sNtFS1JAXxgwC"
|
"_key": "!items.effects!WuoVwZA53XRAIt6d.Hy0sNtFS1JAXxgwC"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "lDRMjmZXRJDbhK03",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!WuoVwZA53XRAIt6d.lDRMjmZXRJDbhK03"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!mNN6pvcsS10ChrWF.s8KtTIngTjnOlaTP"
|
"_key": "!items.effects!mNN6pvcsS10ChrWF.s8KtTIngTjnOlaTP"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "qYkj3jKDdFzflfh4",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!mNN6pvcsS10ChrWF.qYkj3jKDdFzflfh4"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!haULhuEg37zUUvhb.ZfO5NjpqEIzZVlPq"
|
"_key": "!items.effects!haULhuEg37zUUvhb.ZfO5NjpqEIzZVlPq"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "d6ICO5qZArh0xF1y",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!haULhuEg37zUUvhb.d6ICO5qZArh0xF1y"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!vMJxEWz1srfwMsoj.8bwf1Ri3jYkjphEv"
|
"_key": "!items.effects!vMJxEWz1srfwMsoj.8bwf1Ri3jYkjphEv"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "2q3uXc7EbTNSIjs8",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!vMJxEWz1srfwMsoj.2q3uXc7EbTNSIjs8"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,46 @@
|
||||||
"artist": ""
|
"artist": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "a8frrkkR4i2TBFdF",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!mdQ69eFHyAQUDmE7.a8frrkkR4i2TBFdF"
|
||||||
|
}
|
||||||
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
"ownership": {
|
"ownership": {
|
||||||
"default": 0,
|
"default": 0,
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,46 @@
|
||||||
"artist": ""
|
"artist": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "a1x2R28RtXE2jqu5",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!hAY6UgdGT7dj22Pr.a1x2R28RtXE2jqu5"
|
||||||
|
}
|
||||||
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
"ownership": {
|
"ownership": {
|
||||||
"default": 0,
|
"default": 0,
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!Q6LxmtFetDDkoZVZ.xGxqTCO8MjNq5Cw6"
|
"_key": "!items.effects!Q6LxmtFetDDkoZVZ.xGxqTCO8MjNq5Cw6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "4yImObrCOaWLGxgH",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!Q6LxmtFetDDkoZVZ.4yImObrCOaWLGxgH"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,46 @@
|
||||||
"artist": ""
|
"artist": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "8VtWedDMEX0tbqTn",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!bcQUh4QG3qFX0Vx6.8VtWedDMEX0tbqTn"
|
||||||
|
}
|
||||||
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
"ownership": {
|
"ownership": {
|
||||||
"default": 0,
|
"default": 0,
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!7emTSt6nhZuTlvt5.QIefVb73cm9gYju8"
|
"_key": "!items.effects!7emTSt6nhZuTlvt5.QIefVb73cm9gYju8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "TRI0rfHs8RTSCmuY",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!7emTSt6nhZuTlvt5.TRI0rfHs8RTSCmuY"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!UdUJNa31WxFW2noa.mfKMW9SX3Mnos1nY"
|
"_key": "!items.effects!UdUJNa31WxFW2noa.mfKMW9SX3Mnos1nY"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "VpaGM3KSKQFG5wC8",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!UdUJNa31WxFW2noa.VpaGM3KSKQFG5wC8"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!yJFp1bfpecDcStVK.v1FNEsypRF5W6vVc"
|
"_key": "!items.effects!yJFp1bfpecDcStVK.v1FNEsypRF5W6vVc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "qNXDdLhZkPe6Wnxa",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!yJFp1bfpecDcStVK.qNXDdLhZkPe6Wnxa"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,46 @@
|
||||||
"artist": ""
|
"artist": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "E3Zwl9T3EuK7hOOB",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!dvyQeUVRLc9y6rnt.E3Zwl9T3EuK7hOOB"
|
||||||
|
}
|
||||||
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
"ownership": {
|
"ownership": {
|
||||||
"default": 0,
|
"default": 0,
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!K5WkjS0NGqHYmhU3.JHupzYULxdQzFzuj"
|
"_key": "!items.effects!K5WkjS0NGqHYmhU3.JHupzYULxdQzFzuj"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "QXvJ3gL1kNcOLaqC",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!K5WkjS0NGqHYmhU3.QXvJ3gL1kNcOLaqC"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!9f7RozpPTqrzJS1m.wstJ1aKKtmXgCwxB"
|
"_key": "!items.effects!9f7RozpPTqrzJS1m.wstJ1aKKtmXgCwxB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "7ahyQs2byVwsUVAF",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!9f7RozpPTqrzJS1m.7ahyQs2byVwsUVAF"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!jphnMZjnS2FkOH3s.BFwU3ErPaajUSMUz"
|
"_key": "!items.effects!jphnMZjnS2FkOH3s.BFwU3ErPaajUSMUz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "uF8AksqGBBfKrrVM",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!jphnMZjnS2FkOH3s.uF8AksqGBBfKrrVM"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,46 @@
|
||||||
"artist": ""
|
"artist": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "OqL5x4lkQvjbzSGx",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!t91M61pSCMKStTNt.OqL5x4lkQvjbzSGx"
|
||||||
|
}
|
||||||
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
"ownership": {
|
"ownership": {
|
||||||
"default": 0,
|
"default": 0,
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!tzZntboNtHL5C6VM.P3aCN8PQgPXP4C9M"
|
"_key": "!items.effects!tzZntboNtHL5C6VM.P3aCN8PQgPXP4C9M"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "wKp8iBd3KfaMlzJh",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!tzZntboNtHL5C6VM.wKp8iBd3KfaMlzJh"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,46 @@
|
||||||
"artist": ""
|
"artist": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "TbWKQ0R6AfNNeqNd",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!nibfdNtp2PtxvbVz.TbWKQ0R6AfNNeqNd"
|
||||||
|
}
|
||||||
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
"ownership": {
|
"ownership": {
|
||||||
"default": 0,
|
"default": 0,
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!EsIN5OLKe9ZYFNXZ.8Oa6Y375X8UpcPph"
|
"_key": "!items.effects!EsIN5OLKe9ZYFNXZ.8Oa6Y375X8UpcPph"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "QAkiVlwfclxQ6JSD",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!EsIN5OLKe9ZYFNXZ.QAkiVlwfclxQ6JSD"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!SXWjUR2aUR6bYvdl.zvzkRX2Uevemmbz4"
|
"_key": "!items.effects!SXWjUR2aUR6bYvdl.zvzkRX2Uevemmbz4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 7
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "mMYVCcmoBJxjU0er",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!SXWjUR2aUR6bYvdl.mMYVCcmoBJxjU0er"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!c6tMXz4rPf9ioQrf.3AUNxBoj7mp1ziJQ"
|
"_key": "!items.effects!c6tMXz4rPf9ioQrf.3AUNxBoj7mp1ziJQ"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "vgnBNFSXks1BcFQ5",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!c6tMXz4rPf9ioQrf.vgnBNFSXks1BcFQ5"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,46 @@
|
||||||
"artist": ""
|
"artist": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "m6HRZpgaMnuw1dE7",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!Tptgl5WOj76TyFn7.m6HRZpgaMnuw1dE7"
|
||||||
|
}
|
||||||
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
"ownership": {
|
"ownership": {
|
||||||
"default": 0,
|
"default": 0,
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!AQzU2RsqS5V5bd1v.3n4O7PyAWMEFdr5p"
|
"_key": "!items.effects!AQzU2RsqS5V5bd1v.3n4O7PyAWMEFdr5p"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "aRwIF0ss6R7AYNZf",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!AQzU2RsqS5V5bd1v.aRwIF0ss6R7AYNZf"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,46 @@
|
||||||
"artist": ""
|
"artist": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "YvXWUYVaXDHugsEr",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!tN8kAeBvNKM3EBFo.YvXWUYVaXDHugsEr"
|
||||||
|
}
|
||||||
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
"ownership": {
|
"ownership": {
|
||||||
"default": 0,
|
"default": 0,
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,46 @@
|
||||||
"artist": ""
|
"artist": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "vkJeIaXB25W3MAt1",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!P4qAEDJUoNLgVRsA.vkJeIaXB25W3MAt1"
|
||||||
|
}
|
||||||
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
"ownership": {
|
"ownership": {
|
||||||
"default": 0,
|
"default": 0,
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,46 @@
|
||||||
"artist": ""
|
"artist": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "2dj1LoZcV6tCKpKj",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!tHlBUDQC24YMZqd6.2dj1LoZcV6tCKpKj"
|
||||||
|
}
|
||||||
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
"ownership": {
|
"ownership": {
|
||||||
"default": 0,
|
"default": 0,
|
||||||
|
|
|
||||||
|
|
@ -93,6 +93,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!8X16lJQ3xltTwynm.rkrqlwqtR9REgRx7"
|
"_key": "!items.effects!8X16lJQ3xltTwynm.rkrqlwqtR9REgRx7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 8
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "3Kn7ZRjhrw1WfALW",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!8X16lJQ3xltTwynm.3Kn7ZRjhrw1WfALW"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,44 @@
|
||||||
"compendiumSource": null
|
"compendiumSource": null
|
||||||
},
|
},
|
||||||
"_key": "!items.effects!QjwsIhXKqnlvRBMv.V8CcTcVAIxHq8KNd"
|
"_key": "!items.effects!QjwsIhXKqnlvRBMv.V8CcTcVAIxHq8KNd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "6YpS3uYWIbeSgreg",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!QjwsIhXKqnlvRBMv.6YpS3uYWIbeSgreg"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,46 @@
|
||||||
"artist": ""
|
"artist": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "tiE0sRrTm2Ex9TAO",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!PSW3BxCGmtLeWOxM.tiE0sRrTm2Ex9TAO"
|
||||||
|
}
|
||||||
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
"ownership": {
|
"ownership": {
|
||||||
"default": 0,
|
"default": 0,
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,46 @@
|
||||||
"artist": ""
|
"artist": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"name": "Armor Effect",
|
||||||
|
"img": "icons/equipment/chest/breastplate-helmet-metal.webp",
|
||||||
|
"system": {
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"type": "armor",
|
||||||
|
"phase": "initial",
|
||||||
|
"priority": 20,
|
||||||
|
"value": 0,
|
||||||
|
"max": 6
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"_id": "fpPIhNaFxaz40Iaj",
|
||||||
|
"disabled": false,
|
||||||
|
"start": null,
|
||||||
|
"duration": {
|
||||||
|
"value": null,
|
||||||
|
"units": "seconds",
|
||||||
|
"expiry": null,
|
||||||
|
"expired": false
|
||||||
|
},
|
||||||
|
"description": "",
|
||||||
|
"origin": null,
|
||||||
|
"tint": "#ffffff",
|
||||||
|
"transfer": true,
|
||||||
|
"statuses": [],
|
||||||
|
"showIcon": 1,
|
||||||
|
"folder": null,
|
||||||
|
"sort": 0,
|
||||||
|
"flags": {},
|
||||||
|
"_stats": {
|
||||||
|
"compendiumSource": null
|
||||||
|
},
|
||||||
|
"_key": "!items.effects!OvzgUTYy2RCN85vV.fpPIhNaFxaz40Iaj"
|
||||||
|
}
|
||||||
|
],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
"ownership": {
|
"ownership": {
|
||||||
"default": 0,
|
"default": 0,
|
||||||
|
|
|
||||||
|
|
@ -35,9 +35,9 @@
|
||||||
{{#if useResourcePips}}
|
{{#if useResourcePips}}
|
||||||
<div class='slot-value'>
|
<div class='slot-value'>
|
||||||
<div class="slot-bar">
|
<div class="slot-bar">
|
||||||
{{#times document.system.armorScore}}
|
{{#times document.system.armorScore.max}}
|
||||||
<a class='armor-slot' data-action='toggleArmor' data-value="{{add this 1}}">
|
<a class='armor-slot' data-action='toggleArmor' data-value="{{add this 1}}">
|
||||||
{{#if (gte ../document.system.armor.system.marks.value (add this 1))}}
|
{{#if (gte ../document.system.armorScore.value (add this 1))}}
|
||||||
<i class="fa-solid fa-shield"></i>
|
<i class="fa-solid fa-shield"></i>
|
||||||
{{else}}
|
{{else}}
|
||||||
<i class="fa-solid fa-shield-halved"></i>
|
<i class="fa-solid fa-shield-halved"></i>
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="slot-label">
|
<div class="slot-label">
|
||||||
<span class="label">{{localize "DAGGERHEART.GENERAL.armorSlots"}}</span>
|
<span class="label">{{localize "DAGGERHEART.GENERAL.armorSlots"}}</span>
|
||||||
<span class="value">{{document.system.armor.system.marks.value}} / {{document.system.armorScore}}</span>
|
<span class="value">{{document.system.armorScore.value}} / {{document.system.armorScore.max}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{else}}
|
{{else}}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue