diff --git a/lang/en.json b/lang/en.json index 26647cc2..b6684e59 100755 --- a/lang/en.json +++ b/lang/en.json @@ -2982,6 +2982,9 @@ "cannotAlterArmorEffectChanges": "You cannot alter the changes length of an armor effect", "cannotAlterArmorEffectType": "You cannot alter the type of armor effect changes" }, + "Progress": { + "migrationLabel": "Performing system migration. Please wait and do not close Foundry." + }, "Sidebar": { "actorDirectory": { "tier": "Tier {tier} {type}", diff --git a/module/applications/ui/_module.mjs b/module/applications/ui/_module.mjs index 8c5c020e..80d3ebe4 100644 --- a/module/applications/ui/_module.mjs +++ b/module/applications/ui/_module.mjs @@ -7,3 +7,4 @@ export { default as DhFearTracker } from './fearTracker.mjs'; export { default as DhHotbar } from './hotbar.mjs'; export { default as DhSceneNavigation } from './sceneNavigation.mjs'; export { ItemBrowser } from './itemBrowser.mjs'; +export { default as DhProgress } from './progress.mjs'; diff --git a/module/applications/ui/progress.mjs b/module/applications/ui/progress.mjs new file mode 100644 index 00000000..eca4ad6b --- /dev/null +++ b/module/applications/ui/progress.mjs @@ -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') }); + } +} diff --git a/module/data/activeEffect/armorEffect.mjs b/module/data/activeEffect/armorEffect.mjs index 597cdf27..c277c904 100644 --- a/module/data/activeEffect/armorEffect.mjs +++ b/module/data/activeEffect/armorEffect.mjs @@ -107,9 +107,10 @@ export default class ArmorEffect extends foundry.data.ActiveEffectTypeDataModel } async updateArmorMax(newMax) { + const { effect, ...baseChange } = this.armorChange; const newChanges = [ { - ...this.armorChange, + ...baseChange, max: newMax, value: Math.min(this.armorChange.value, newMax) } @@ -152,7 +153,7 @@ export default class ArmorEffect extends foundry.data.ActiveEffectTypeDataModel armorChange.key = 'system.armorScore'; } - static getDefaultEffectData() { + static getDefaultObject() { return { type: 'armor', name: game.i18n.localize('DAGGERHEART.EFFECTS.Armor.newArmorEffect'), @@ -160,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) { const allowed = await super._preUpdate(changes, options, user); if (allowed === false) return false; diff --git a/module/data/item/armor.mjs b/module/data/item/armor.mjs index 117f3963..3170627f 100644 --- a/module/data/item/armor.mjs +++ b/module/data/item/armor.mjs @@ -85,7 +85,7 @@ export default class DHArmor extends AttachableItem { if (!this.parent.effects.some(x => x.type === 'armor')) { this.parent.createEmbeddedDocuments('ActiveEffect', [ - game.system.api.data.activeEffects.ArmorEffect.getDefaultEffectData() + game.system.api.data.activeEffects.ArmorEffect.getDefaultObject() ]); } } @@ -175,6 +175,25 @@ export default class DHArmor extends AttachableItem { } } + /** @inheritDoc */ + static migrateDocumentData(source) { + if (source.system.baseScore !== undefined && !source.effects.some(x => x.type === 'armor')) { + // source.effects.push({ + // ...game.system.api.data.activeEffects.ArmorEffect.getDefaultObject(), + // changes: [{ + // type: CONFIG.DH.GENERAL.activeEffectModes.armor.id, + // phase: 'initial', + // priority: 20, + // value: 0, + // max: source.system.baseScore + // }], + // }); + 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. * @returns {string[]} An array of localized tag strings. diff --git a/module/documents/item.mjs b/module/documents/item.mjs index 67f7d253..ce87db4e 100644 --- a/module/documents/item.mjs +++ b/module/documents/item.mjs @@ -230,4 +230,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/systemRegistration/migrations.mjs b/module/systemRegistration/migrations.mjs index 4216c38f..858481c5 100644 --- a/module/systemRegistration/migrations.mjs +++ b/module/systemRegistration/migrations.mjs @@ -246,6 +246,106 @@ export async function runMigrations() { 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(); + } + + // const lockedPacks = []; + // const compendiumArmors = []; + // const compendiumCharacters = []; + // for (let pack of game.packs.filter(x => x.metadata.type === 'Item')) { + // if (pack.locked) { + // lockedPacks.push(pack.collection); + // await pack.configure({ locked: false }); + // } + + // const documents = await pack.getDocuments({ type: 'armor' }); + // compendiumArmors.push(...documents.filter(x => x instanceof game.system.api.documents.DHItem && x.type === 'armor')); + // compendiumCharacters.push(...documents.filter(x => x.type === 'character')); + // } + + 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 await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LastMigrationVersion, lastMigrationVersion); 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..e7c726af 100644 --- a/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json +++ b/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json @@ -63,6 +63,44 @@ "compendiumSource": null }, "_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, 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..2a06068f 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 @@ -68,6 +68,44 @@ "compendiumSource": null }, "_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, 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..84c3b35a 100644 --- a/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json +++ b/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json @@ -63,6 +63,44 @@ "compendiumSource": null }, "_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, 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..c7d039df 100644 --- a/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json +++ b/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json @@ -25,7 +25,46 @@ "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, "ownership": { "default": 0, diff --git a/src/packs/items/armors/armor_Bare_Bones_ITAjcigTcUw5pMCN.json b/src/packs/items/armors/armor_Bare_Bones_ITAjcigTcUw5pMCN.json index 5158b100..3e882f9f 100644 --- a/src/packs/items/armors/armor_Bare_Bones_ITAjcigTcUw5pMCN.json +++ b/src/packs/items/armors/armor_Bare_Bones_ITAjcigTcUw5pMCN.json @@ -63,6 +63,44 @@ "compendiumSource": null }, "_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, 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..dafbe5b1 100644 --- a/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json +++ b/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json @@ -63,6 +63,44 @@ "compendiumSource": null }, "_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, diff --git a/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json b/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json index 8b276d5f..8a6f1132 100644 --- a/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json +++ b/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json @@ -63,6 +63,44 @@ "compendiumSource": null }, "_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, diff --git a/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json b/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json index f7526e96..7c161931 100644 --- a/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json +++ b/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json @@ -63,6 +63,44 @@ "compendiumSource": null }, "_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, diff --git a/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json b/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json index a4bd0fea..f7306c06 100644 --- a/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json +++ b/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json @@ -63,6 +63,44 @@ "compendiumSource": null }, "_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, diff --git a/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json b/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json index 5b39e41d..41b34d96 100644 --- a/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json +++ b/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json @@ -62,7 +62,46 @@ "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, "ownership": { "default": 0, diff --git a/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json b/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json index df692143..1cb28c6f 100644 --- a/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json +++ b/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json @@ -88,7 +88,46 @@ "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, "ownership": { "default": 0, 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..c1b233a9 100644 --- a/src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json +++ b/src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json @@ -64,6 +64,44 @@ "compendiumSource": null }, "_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, diff --git a/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json b/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json index 8ccc27e3..5ffdcc2e 100644 --- a/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json +++ b/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json @@ -86,7 +86,46 @@ "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, "ownership": { "default": 0, 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..25e47bc3 100644 --- a/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json +++ b/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json @@ -63,6 +63,44 @@ "compendiumSource": null }, "_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, 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..3bdb1c56 100644 --- a/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json +++ b/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json @@ -68,6 +68,44 @@ "compendiumSource": null }, "_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, diff --git a/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json b/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json index 1c775402..6b30d4bc 100644 --- a/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json +++ b/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json @@ -63,6 +63,44 @@ "compendiumSource": null }, "_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, diff --git a/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json b/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json index 61d1fed7..9fd7971d 100644 --- a/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json +++ b/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json @@ -79,7 +79,46 @@ "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, "ownership": { "default": 0, 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..18b4f699 100644 --- a/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json +++ b/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json @@ -63,6 +63,44 @@ "compendiumSource": null }, "_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, 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..bd163402 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 @@ -68,6 +68,44 @@ "compendiumSource": null }, "_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, 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..aca1d66d 100644 --- a/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json +++ b/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json @@ -63,6 +63,44 @@ "compendiumSource": null }, "_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, 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..5413c999 100644 --- a/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json +++ b/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json @@ -25,7 +25,46 @@ "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, "ownership": { "default": 0, 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..feba37e9 100644 --- a/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json +++ b/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json @@ -75,6 +75,44 @@ "compendiumSource": null }, "_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, diff --git a/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json b/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json index 37a13f2b..2f1548a7 100644 --- a/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json +++ b/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json @@ -25,7 +25,46 @@ "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, "ownership": { "default": 0, 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..0b540fd5 100644 --- a/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json +++ b/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json @@ -63,6 +63,44 @@ "compendiumSource": null }, "_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, 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..4e3ae4ed 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 @@ -68,6 +68,44 @@ "compendiumSource": null }, "_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, 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..b6899fbd 100644 --- a/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json +++ b/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json @@ -63,6 +63,44 @@ "compendiumSource": null }, "_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, 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..a9d680af 100644 --- a/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json +++ b/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json @@ -25,7 +25,46 @@ "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, "ownership": { "default": 0, 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..ce7d94c6 100644 --- a/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json +++ b/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json @@ -63,6 +63,44 @@ "compendiumSource": null }, "_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, diff --git a/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json b/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json index 0f0f6430..ee950d4f 100644 --- a/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json +++ b/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json @@ -55,7 +55,46 @@ "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, "ownership": { "default": 0, 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..b0501649 100644 --- a/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json +++ b/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json @@ -62,7 +62,46 @@ "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, "ownership": { "default": 0, 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..690045f9 100644 --- a/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json +++ b/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json @@ -62,7 +62,46 @@ "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, "ownership": { "default": 0, diff --git a/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json b/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json index 714e8592..eafe1420 100644 --- a/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json +++ b/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json @@ -93,6 +93,44 @@ "compendiumSource": null }, "_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, 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..cbd1e023 100644 --- a/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json +++ b/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json @@ -68,6 +68,44 @@ "compendiumSource": null }, "_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, 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..0837f512 100644 --- a/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json +++ b/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json @@ -55,7 +55,46 @@ "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, "ownership": { "default": 0, 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..ca76336c 100644 --- a/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json +++ b/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json @@ -55,7 +55,46 @@ "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, "ownership": { "default": 0,