diff --git a/lang/en.json b/lang/en.json index b6684e59..26647cc2 100755 --- a/lang/en.json +++ b/lang/en.json @@ -2982,9 +2982,6 @@ "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/sheets/actors/character.mjs b/module/applications/sheets/actors/character.mjs index 9ba52000..4ecaeb06 100644 --- a/module/applications/sheets/actors/character.mjs +++ b/module/applications/sheets/actors/character.mjs @@ -629,12 +629,12 @@ export default class CharacterSheet extends DHBaseActorSheet { } async updateArmorMarks(event) { - const inputValue = Number(event.currentTarget.value); - const { value, max } = this.document.system.armorScore; - const changeValue = Math.min(inputValue - value, max - value); + const armor = this.document.system.armor; + if (!armor) return; - event.currentTarget.value = inputValue < 0 ? 0 : value + changeValue; - this.document.system.updateArmorValue({ value: changeValue }); + const maxMarks = this.document.system.armorScore; + const value = Math.min(Math.max(Number(event.currentTarget.value), 0), maxMarks); + await armor.update({ 'system.marks.value': value }); } /* -------------------------------------------- */ @@ -813,13 +813,10 @@ export default class CharacterSheet extends DHBaseActorSheet { * Toggles ArmorScore resource value. * @type {ApplicationClickAction} */ - static async #toggleArmor(_, button, _element) { - const { value, max } = this.document.system.armorScore; - const inputValue = Number.parseInt(button.dataset.value); - const newValue = value >= inputValue ? inputValue - 1 : inputValue; - const changeValue = Math.min(newValue - value, max - value); - - this.document.system.updateArmorValue({ value: changeValue }); + static async #toggleArmor(_, button, element) { + const ArmorValue = Number.parseInt(button.dataset.value); + const newValue = this.document.system.armor.system.marks.value >= ArmorValue ? ArmorValue - 1 : ArmorValue; + await this.document.system.armor.update({ 'system.marks.value': newValue }); } /** diff --git a/module/applications/sheets/api/base-actor.mjs b/module/applications/sheets/api/base-actor.mjs index 2fb3f68a..e619daad 100644 --- a/module/applications/sheets/api/base-actor.mjs +++ b/module/applications/sheets/api/base-actor.mjs @@ -160,7 +160,7 @@ export default class DHBaseActorSheet extends DHApplicationMixin(ActorSheetV2) { inactives: [] }; - for (const effect of this.actor.allApplicableEffects({ noTransferArmor: true })) { + for (const effect of this.actor.allApplicableEffects({ noArmor: true })) { const list = effect.active ? context.effects.actives : context.effects.inactives; list.push(effect); } diff --git a/module/applications/ui/_module.mjs b/module/applications/ui/_module.mjs index 80d3ebe4..8c5c020e 100644 --- a/module/applications/ui/_module.mjs +++ b/module/applications/ui/_module.mjs @@ -7,4 +7,3 @@ 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 deleted file mode 100644 index eca4ad6b..00000000 --- a/module/applications/ui/progress.mjs +++ /dev/null @@ -1,27 +0,0 @@ -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/action/baseAction.mjs b/module/data/action/baseAction.mjs index 23d30cb2..f6ffe75f 100644 --- a/module/data/action/baseAction.mjs +++ b/module/data/action/baseAction.mjs @@ -295,19 +295,17 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel static async getEffects(actor, effectParent) { if (!actor) return []; - return Array.from(await actor.allApplicableEffects({ noTransferArmor: true, noSelfArmor: true })).filter( - effect => { - /* Effects on weapons only ever apply for the weapon itself */ - if (effect.parent.type === 'weapon') { - /* Unless they're secondary - then they apply only to other primary weapons */ - if (effect.parent.system.secondary) { - if (effectParent?.type !== 'weapon' || effectParent?.system.secondary) return false; - } else if (effectParent?.id !== effect.parent.id) return false; - } - - return !effect.isSuppressed; + return Array.from(await actor.allApplicableEffects()).filter(effect => { + /* Effects on weapons only ever apply for the weapon itself */ + if (effect.parent.type === 'weapon') { + /* Unless they're secondary - then they apply only to other primary weapons */ + if (effect.parent.system.secondary) { + if (effectParent?.type !== 'weapon' || effectParent?.system.secondary) return false; + } else if (effectParent?.id !== effect.parent.id) return false; } - ); + + return !effect.isSuppressed; + }); } /** diff --git a/module/data/activeEffect/armorEffect.mjs b/module/data/activeEffect/armorEffect.mjs index c277c904..f52f5efc 100644 --- a/module/data/activeEffect/armorEffect.mjs +++ b/module/data/activeEffect/armorEffect.mjs @@ -1,5 +1,3 @@ -import { getScrollTextData } from '../../helpers/utils.mjs'; - /** * 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. @@ -107,10 +105,9 @@ export default class ArmorEffect extends foundry.data.ActiveEffectTypeDataModel } async updateArmorMax(newMax) { - const { effect, ...baseChange } = this.armorChange; const newChanges = [ { - ...baseChange, + ...this.armorChange, max: newMax, value: Math.min(this.armorChange.value, newMax) } @@ -153,7 +150,7 @@ export default class ArmorEffect extends foundry.data.ActiveEffectTypeDataModel armorChange.key = 'system.armorScore'; } - static getDefaultObject() { + static getDefaultEffectData() { return { type: 'armor', name: game.i18n.localize('DAGGERHEART.EFFECTS.Armor.newArmorEffect'), @@ -161,6 +158,13 @@ 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; @@ -181,19 +185,6 @@ export default class ArmorEffect extends foundry.data.ActiveEffectTypeDataModel ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.cannotAlterArmorEffectType')); 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); - } } diff --git a/module/data/actor/base.mjs b/module/data/actor/base.mjs index 14bc4fe8..3b4de08d 100644 --- a/module/data/actor/base.mjs +++ b/module/data/actor/base.mjs @@ -1,6 +1,6 @@ import DHBaseActorSettings from '../../applications/sheets/api/actor-setting.mjs'; import DHItem from '../../documents/item.mjs'; -import { getResourceScrollTextData } from '../../helpers/utils.mjs'; +import { getScrollTextData } from '../../helpers/utils.mjs'; 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 resource = changes.system.resources[key]; if (resource.value !== undefined && resource.value !== this.resources[key].value) { - acc.push(getResourceScrollTextData(this.resources, resource, key)); + acc.push(getScrollTextData(this.resources, resource, key)); } return acc; diff --git a/module/data/item/armor.mjs b/module/data/item/armor.mjs index e0bee054..117f3963 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.getDefaultObject() + game.system.api.data.activeEffects.ArmorEffect.getDefaultEffectData() ]); } } @@ -175,22 +175,13 @@ 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. * @returns {string[]} An array of localized tag strings. */ _getTags() { const tags = [ - `${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.armorData.max}`, + `${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.armorData.value}`, `${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseThresholds.base')}: ${this.baseThresholds.major} / ${this.baseThresholds.severe}` ]; @@ -202,7 +193,7 @@ export default class DHArmor extends AttachableItem { * @returns {(string | { value: string, icons: string[] })[]} An array of localized strings and damage label objects. */ _getLabels() { - const labels = [`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.armorData.max}`]; + const labels = [`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.armorData.value}`]; return labels; } diff --git a/module/data/item/base.mjs b/module/data/item/base.mjs index 334b0c5e..447da3bf 100644 --- a/module/data/item/base.mjs +++ b/module/data/item/base.mjs @@ -8,7 +8,7 @@ * @property {boolean} isInventoryItem- Indicates whether items of this type is a Inventory Item */ -import { addLinkedItemsDiff, getResourceScrollTextData, updateLinkedItemApps } from '../../helpers/utils.mjs'; +import { addLinkedItemsDiff, getScrollTextData, updateLinkedItemApps } from '../../helpers/utils.mjs'; import { ActionsField } from '../fields/actionField.mjs'; import FormulaField from '../fields/formulaField.mjs'; @@ -224,11 +224,7 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel { const armorChanged = changed.system?.marks?.value !== undefined && changed.system.marks.value !== this.marks.value; if (armorChanged && autoSettings.resourceScrollTexts && this.parent.parent?.type === 'character') { - const armorData = getResourceScrollTextData( - this.parent.parent.system.resources, - changed.system.marks, - 'armor' - ); + const armorData = getScrollTextData(this.parent.parent.system.resources, changed.system.marks, 'armor'); options.scrollingTextData = [armorData]; } diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs index da399df5..2eafc70f 100644 --- a/module/documents/actor.mjs +++ b/module/documents/actor.mjs @@ -573,7 +573,8 @@ export default class DhpActor extends Actor { const availableStress = this.system.resources.stress.max - this.system.resources.stress.value; const canUseArmor = - this.system.armorScore.value < this.system.armorScore.max && + this.system.armor && + this.system.armor.system.marks.value < this.system.armorScore && type.every(t => this.system.armorApplicableDamageTypes[t] === true); const canUseStress = Object.keys(stressDamageReduction).reduce((acc, x) => { const rule = stressDamageReduction[x]; @@ -613,7 +614,12 @@ export default class DhpActor extends Actor { const hpDamage = updates.find(u => u.key === CONFIG.DH.GENERAL.healingTypes.hitPoints.id); if (hpDamage?.value) { hpDamage.value = this.convertDamageToThreshold(hpDamage.value); - if (this.type === 'character' && !isDirect && this.#canReduceDamage(hpDamage.value, hpDamage.damageTypes)) { + if ( + this.type === 'character' && + !isDirect && + this.system.armor && + this.#canReduceDamage(hpDamage.value, hpDamage.damageTypes) + ) { const armorSlotResult = await this.owner.query( 'armorSlot', { @@ -983,13 +989,13 @@ export default class DhpActor extends Actor { } /**@inheritdoc */ - *allApplicableEffects({ noSelfArmor, noTransferArmor } = {}) { + *allApplicableEffects({ noArmor } = {}) { for (const effect of this.effects) { - if (!noSelfArmor || effect.type !== 'armor') yield effect; + yield effect; } for (const item of this.items) { for (const effect of item.effects) { - if (effect.transfer && (!noTransferArmor || effect.type !== 'armor')) yield effect; + if (effect.transfer && (!noArmor || effect.type !== 'armor')) yield effect; } } } diff --git a/module/documents/item.mjs b/module/documents/item.mjs index ce87db4e..67f7d253 100644 --- a/module/documents/item.mjs +++ b/module/documents/item.mjs @@ -230,14 +230,4 @@ export default class DHItem extends foundry.documents.Item { async _preDelete() { this.deleteTriggers(); } - - /** @inheritDoc */ - static migrateData(source) { - const documentClass = game.system.api.data.items[`DH${source.type.capitalize()}`]; - if (documentClass?.migrateDocumentData) { - documentClass.migrateDocumentData(source); - } - - return super.migrateData(source); - } } diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index 18f7dfd7..980349ba 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -378,18 +378,14 @@ export const arraysEqual = (a, b) => export const setsEqual = (a, b) => a.size === b.size && [...a].every(value => b.has(value)); -export function getResourceScrollTextData(resources, resource, key) { +export function getScrollTextData(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 value = -1 * (resources[key].value - resource.value); - 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 fill = increased ? (reversed ? 0x0032b1 : 0xffe760) : reversed ? 0xffe760 : 0x0032b1; const direction = increased ? (reversed ? BOTTOM : TOP) : reversed ? TOP : BOTTOM; diff --git a/module/systemRegistration/migrations.mjs b/module/systemRegistration/migrations.mjs index 2b558ee2..4216c38f 100644 --- a/module/systemRegistration/migrations.mjs +++ b/module/systemRegistration/migrations.mjs @@ -246,92 +246,6 @@ 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(); - } - - 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 e7c726af..174f20c8 100644 --- a/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json +++ b/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json @@ -63,44 +63,6 @@ "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 2a06068f..dbc9d29f 100644 --- a/src/packs/items/armors/armor_Advanced_Full_Plate_Armor_crIbCb9NZ4K0VpoU.json +++ b/src/packs/items/armors/armor_Advanced_Full_Plate_Armor_crIbCb9NZ4K0VpoU.json @@ -68,44 +68,6 @@ "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 84c3b35a..c9ffc8a3 100644 --- a/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json +++ b/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json @@ -63,44 +63,6 @@ "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 c7d039df..4e1927e3 100644 --- a/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json +++ b/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json @@ -25,46 +25,7 @@ "artist": "" } }, - "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" - } - ], + "effects": [], "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 3e882f9f..5158b100 100644 --- a/src/packs/items/armors/armor_Bare_Bones_ITAjcigTcUw5pMCN.json +++ b/src/packs/items/armors/armor_Bare_Bones_ITAjcigTcUw5pMCN.json @@ -63,44 +63,6 @@ "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 dafbe5b1..ce4e35fd 100644 --- a/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json +++ b/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json @@ -63,44 +63,6 @@ "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 8a6f1132..8b276d5f 100644 --- a/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json +++ b/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json @@ -63,44 +63,6 @@ "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 7c161931..f7526e96 100644 --- a/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json +++ b/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json @@ -63,44 +63,6 @@ "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 f7306c06..a4bd0fea 100644 --- a/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json +++ b/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json @@ -63,44 +63,6 @@ "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 41b34d96..5b39e41d 100644 --- a/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json +++ b/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json @@ -62,46 +62,7 @@ "artist": "" } }, - "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" - } - ], + "effects": [], "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 1cb28c6f..df692143 100644 --- a/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json +++ b/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json @@ -88,46 +88,7 @@ "artist": "" } }, - "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" - } - ], + "effects": [], "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 c1b233a9..d63ce4df 100644 --- a/src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json +++ b/src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json @@ -64,44 +64,6 @@ "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 5ffdcc2e..8ccc27e3 100644 --- a/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json +++ b/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json @@ -86,46 +86,7 @@ "artist": "" } }, - "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" - } - ], + "effects": [], "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 25e47bc3..8eb964cc 100644 --- a/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json +++ b/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json @@ -63,44 +63,6 @@ "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 3bdb1c56..1ea120ed 100644 --- a/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json +++ b/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json @@ -68,44 +68,6 @@ "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 6b30d4bc..1c775402 100644 --- a/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json +++ b/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json @@ -63,44 +63,6 @@ "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 9fd7971d..61d1fed7 100644 --- a/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json +++ b/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json @@ -79,46 +79,7 @@ "artist": "" } }, - "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" - } - ], + "effects": [], "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 18b4f699..96e320d1 100644 --- a/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json +++ b/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json @@ -63,44 +63,6 @@ "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 bd163402..ee63a774 100644 --- a/src/packs/items/armors/armor_Improved_Full_Plate_Armor_9f7RozpPTqrzJS1m.json +++ b/src/packs/items/armors/armor_Improved_Full_Plate_Armor_9f7RozpPTqrzJS1m.json @@ -68,44 +68,6 @@ "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 aca1d66d..6f4ea1c3 100644 --- a/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json +++ b/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json @@ -63,44 +63,6 @@ "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 5413c999..a4f38cc6 100644 --- a/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json +++ b/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json @@ -25,46 +25,7 @@ "artist": "" } }, - "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" - } - ], + "effects": [], "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 feba37e9..a9e9eaca 100644 --- a/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json +++ b/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json @@ -75,44 +75,6 @@ "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 2f1548a7..37a13f2b 100644 --- a/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json +++ b/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json @@ -25,46 +25,7 @@ "artist": "" } }, - "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" - } - ], + "effects": [], "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 0b540fd5..4bee5e4f 100644 --- a/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json +++ b/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json @@ -63,44 +63,6 @@ "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 4e3ae4ed..baf544c2 100644 --- a/src/packs/items/armors/armor_Legendary_Full_Plate_Armor_SXWjUR2aUR6bYvdl.json +++ b/src/packs/items/armors/armor_Legendary_Full_Plate_Armor_SXWjUR2aUR6bYvdl.json @@ -68,44 +68,6 @@ "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 b6899fbd..338c85e8 100644 --- a/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json +++ b/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json @@ -63,44 +63,6 @@ "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 a9d680af..42334dc4 100644 --- a/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json +++ b/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json @@ -25,46 +25,7 @@ "artist": "" } }, - "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" - } - ], + "effects": [], "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 ce7d94c6..9a8e1f22 100644 --- a/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json +++ b/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json @@ -63,44 +63,6 @@ "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 ee950d4f..0f0f6430 100644 --- a/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json +++ b/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json @@ -55,46 +55,7 @@ "artist": "" } }, - "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" - } - ], + "effects": [], "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 b0501649..240a4f3e 100644 --- a/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json +++ b/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json @@ -62,46 +62,7 @@ "artist": "" } }, - "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" - } - ], + "effects": [], "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 690045f9..8d4af425 100644 --- a/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json +++ b/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json @@ -62,46 +62,7 @@ "artist": "" } }, - "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" - } - ], + "effects": [], "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 eafe1420..714e8592 100644 --- a/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json +++ b/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json @@ -93,44 +93,6 @@ "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 cbd1e023..cb5fc720 100644 --- a/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json +++ b/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json @@ -68,44 +68,6 @@ "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 0837f512..da640830 100644 --- a/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json +++ b/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json @@ -55,46 +55,7 @@ "artist": "" } }, - "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" - } - ], + "effects": [], "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 ca76336c..08a1b573 100644 --- a/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json +++ b/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json @@ -55,46 +55,7 @@ "artist": "" } }, - "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" - } - ], + "effects": [], "sort": 0, "ownership": { "default": 0, diff --git a/templates/sheets/actors/character/sidebar.hbs b/templates/sheets/actors/character/sidebar.hbs index 523c3974..5720f253 100644 --- a/templates/sheets/actors/character/sidebar.hbs +++ b/templates/sheets/actors/character/sidebar.hbs @@ -35,9 +35,9 @@ {{#if useResourcePips}}
- {{#times document.system.armorScore.max}} - - {{#if (gte ../document.system.armorScore.value (add this 1))}} + {{#times document.system.armorScore}} + + {{#if (gte ../document.system.armor.system.marks.value (add this 1))}} {{else}} @@ -47,7 +47,7 @@
{{localize "DAGGERHEART.GENERAL.armorSlots"}} - {{document.system.armorScore.value}} / {{document.system.armorScore.max}} + {{document.system.armor.system.marks.value}} / {{document.system.armorScore}}
{{else}}