diff --git a/lang/en.json b/lang/en.json
index f7d49a04..5fc2cef9 100755
--- a/lang/en.json
+++ b/lang/en.json
@@ -1891,7 +1891,7 @@
"armor": {
"newArmorEffect": "Armor Effect",
"FIELDS": {
- "armorInteraction": {
+ "interaction": {
"label": "Armor Interaction",
"hint": "Does the character wearing armor suppress this effect?"
}
diff --git a/module/applications/sheets-configs/activeEffectConfig.mjs b/module/applications/sheets-configs/activeEffectConfig.mjs
index e4a18831..227fc627 100644
--- a/module/applications/sheets-configs/activeEffectConfig.mjs
+++ b/module/applications/sheets-configs/activeEffectConfig.mjs
@@ -190,23 +190,14 @@ export default class DhActiveEffectConfig extends foundry.applications.sheets.Ac
}));
break;
case 'changes':
- const fields = this.document.system.schema.fields.changes.element.fields;
-
const singleTypes = ['armor'];
- const { base, ...typedChanges } = context.source.changes.reduce((acc, change, index) => {
- const type = CONFIG.DH.GENERAL.baseActiveEffectModes[change.type] ? 'base' : change.type;
- if (singleTypes.includes(type)) {
- acc[type] = { ...change, index };
- } else {
- if (!acc[type]) acc[type] = [];
- acc[type].push({ ...change, index });
+ const typedChanges = context.source.changes.reduce((acc, change, index) => {
+ if (singleTypes.includes(change.type)) {
+ acc[change.type] = { ...change, index };
}
-
return acc;
}, {});
- partContext.changes = await Promise.all(
- foundry.utils.deepClone(base ?? []).map(c => this._prepareChangeContext(c, fields))
- );
+ partContext.changes = partContext.changes.filter(c => !!c);
partContext.typedChanges = typedChanges;
break;
}
@@ -238,29 +229,38 @@ export default class DhActiveEffectConfig extends foundry.applications.sheets.Ac
return this.submit({ updateData: { system: { changes } } });
}
- _prepareChangeContext(change, fields) {
+ /** @inheritdoc */
+ _renderChange(context) {
+ const { change, index, defaultPriority } = context;
+ if (!(change.type in CONFIG.DH.GENERAL.baseActiveEffectModes)) return null;
+
+ const changeTypesSchema = this.document.system.schema.fields.changes.element.types;
+ const fields = context.fields ?? (changeTypesSchema[change.type] ?? changeTypesSchema.add).fields;
if (typeof change.value !== 'string') change.value = JSON.stringify(change.value);
- const defaultPriority = game.system.api.documents.DhActiveEffect.CHANGE_TYPES[change.type]?.defaultPriority;
Object.assign(
change,
['key', 'type', 'value', 'priority'].reduce((paths, fieldName) => {
- paths[`${fieldName}Path`] = `system.changes.${change.index}.${fieldName}`;
+ paths[`${fieldName}Path`] = `system.changes.${index}.${fieldName}`;
return paths;
}, {})
);
return (
game.system.api.documents.DhActiveEffect.CHANGE_TYPES[change.type].render?.(
change,
- change.index,
+ index,
defaultPriority
) ??
foundry.applications.handlebars.renderTemplate(
'systems/daggerheart/templates/sheets/activeEffect/change.hbs',
{
change,
- index: change.index,
+ index,
defaultPriority,
- fields
+ fields,
+ types: Object.keys(CONFIG.DH.GENERAL.baseActiveEffectModes).reduce((r, key) => {
+ r[key] = CONFIG.DH.GENERAL.baseActiveEffectModes[key].label;
+ return r;
+ }, {})
}
)
);
diff --git a/module/data/activeEffect/baseEffect.mjs b/module/data/activeEffect/baseEffect.mjs
index fc87b353..282291b7 100644
--- a/module/data/activeEffect/baseEffect.mjs
+++ b/module/data/activeEffect/baseEffect.mjs
@@ -18,23 +18,34 @@ export default class BaseEffect extends foundry.data.ActiveEffectTypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
+ const baseChanges = Object.keys(CONFIG.DH.GENERAL.baseActiveEffectModes).reduce((r, type) => {
+ r[type] = new fields.SchemaField({
+ key: new fields.StringField({ required: true }),
+ type: new fields.StringField({
+ required: true,
+ choices: [type],
+ initial: type,
+ validate: BaseEffect.#validateType
+ }),
+ value: new fields.AnyField({
+ required: true,
+ nullable: true,
+ serializable: true,
+ initial: ''
+ }),
+ phase: new fields.StringField({ required: true, blank: false, initial: 'initial' }),
+ priority: new fields.NumberField()
+ });
+ return r;
+ }, {});
+
return {
...super.defineSchema(),
changes: new fields.ArrayField(
- new fields.SchemaField({
- key: new fields.StringField({ required: true }),
- type: new fields.StringField({
- required: true,
- blank: false,
- choices: CONFIG.DH.GENERAL.activeEffectModes,
- initial: CONFIG.DH.GENERAL.activeEffectModes.add.id,
- validate: BaseEffect.#validateType
- }),
- value: new fields.AnyField({ required: true, nullable: true, serializable: true, initial: '' }),
- phase: new fields.StringField({ required: true, blank: false, initial: 'initial' }),
- priority: new fields.NumberField(),
- typeData: new fields.TypedSchemaField(changeTypes, { nullable: true, initial: null })
- })
+ new fields.TypedSchemaField(
+ { ...changeTypes, ...baseChanges },
+ { initial: baseChanges.add.getInitialValue() }
+ )
),
duration: new fields.SchemaField({
type: new fields.StringField({
@@ -97,7 +108,7 @@ export default class BaseEffect extends foundry.data.ActiveEffectTypeDataModel {
const armorChange = this.armorChange;
if (!armorChange) return null;
- return armorChange.typeData.getArmorData(armorChange);
+ return armorChange.getArmorData(armorChange);
}
static getDefaultObject() {
diff --git a/module/data/activeEffect/changeTypes/armor.mjs b/module/data/activeEffect/changeTypes/armor.mjs
index 5f6047fd..d0546dbc 100644
--- a/module/data/activeEffect/changeTypes/armor.mjs
+++ b/module/data/activeEffect/changeTypes/armor.mjs
@@ -2,42 +2,35 @@ import { itemAbleRollParse } from '../../../helpers/utils.mjs';
const fields = foundry.data.fields;
-export default class Armor extends foundry.abstract.DataModel {
+export default class ArmorChange extends foundry.abstract.DataModel {
static defineSchema() {
return {
type: new fields.StringField({ required: true, initial: 'armor', blank: false }),
- max: new fields.StringField({
- required: true,
- nullable: false,
- initial: '1',
- label: 'DAGGERHEART.GENERAL.max'
+ priority: new fields.NumberField(),
+ phase: new fields.StringField({ required: true, blank: false, initial: 'initial' }),
+ value: new fields.SchemaField({
+ max: new fields.StringField({
+ required: true,
+ nullable: false,
+ initial: '1',
+ label: 'DAGGERHEART.GENERAL.max'
+ }),
+ interaction: new fields.StringField({
+ required: true,
+ choices: CONFIG.DH.GENERAL.activeEffectArmorInteraction,
+ initial: CONFIG.DH.GENERAL.activeEffectArmorInteraction.none.id,
+ label: 'DAGGERHEART.EFFECTS.ChangeTypes.armor.FIELDS.interaction.label',
+ hint: 'DAGGERHEART.EFFECTS.ChangeTypes.armor.FIELDS.interaction.hint'
+ })
}),
- armorInteraction: new fields.StringField({
- required: true,
- choices: CONFIG.DH.GENERAL.activeEffectArmorInteraction,
- initial: CONFIG.DH.GENERAL.activeEffectArmorInteraction.none.id,
- label: 'DAGGERHEART.EFFECTS.ChangeTypes.armor.FIELDS.armorInteraction.label',
- hint: 'DAGGERHEART.EFFECTS.ChangeTypes.armor.FIELDS.armorInteraction.hint'
- })
};
}
static changeEffect = {
label: 'Armor',
- defaultPriortiy: 20,
+ defaultPriority: 20,
handler: (actor, change, _options, _field, replacementData) => {
- const parsedMax = itemAbleRollParse(change.typeData.max, actor, change.effect.parent);
-
- game.system.api.documents.DhActiveEffect.applyChange(
- actor,
- {
- ...change,
- key: 'system.armorScore.value',
- type: CONFIG.DH.GENERAL.activeEffectModes.add.id,
- value: change.value
- },
- replacementData
- );
+ const parsedMax = itemAbleRollParse(change.value.max, actor, change.effect.parent);
game.system.api.documents.DhActiveEffect.applyChange(
actor,
{
@@ -54,7 +47,7 @@ export default class Armor extends foundry.abstract.DataModel {
};
get isSuppressed() {
- switch (this.armorInteraction) {
+ switch (this.value.interaction) {
case CONFIG.DH.GENERAL.activeEffectArmorInteraction.active.id:
return !this.parent.parent?.actor.system.armor;
case CONFIG.DH.GENERAL.activeEffectArmorInteraction.inactive.id:
@@ -68,9 +61,7 @@ export default class Armor extends foundry.abstract.DataModel {
return {
key: 'Armor',
type: CONFIG.DH.GENERAL.activeEffectModes.armor.id,
- value: 0,
- typeData: {
- type: 'armor',
+ value: {
max: 0,
locked
},
@@ -84,7 +75,7 @@ export default class Armor extends foundry.abstract.DataModel {
name: game.i18n.localize('DAGGERHEART.EFFECTS.ChangeTypes.armor.newArmorEffect'),
img: 'icons/equipment/chest/breastplate-helmet-metal.webp',
system: {
- changes: [Armor.getInitialValue(true)]
+ changes: [ArmorChange.getInitialValue(true)]
}
};
}
diff --git a/module/documents/activeEffect.mjs b/module/documents/activeEffect.mjs
index 043d7f33..07c68518 100644
--- a/module/documents/activeEffect.mjs
+++ b/module/documents/activeEffect.mjs
@@ -1,5 +1,5 @@
import { itemAbleRollParse } from '../helpers/utils.mjs';
-import { RefreshType, socketEvent } from '../systemRegistration/socket.mjs';
+import { RefreshType } from '../systemRegistration/socket.mjs';
export default class DhActiveEffect extends foundry.documents.ActiveEffect {
/* -------------------------------------------- */
@@ -155,11 +155,6 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
/* Methods */
/* -------------------------------------------- */
- /**@inheritdoc */
- static applyChange(actor, change, options) {
- super.applyChange(actor, change, options);
- }
-
/**@inheritdoc*/
static applyChangeField(model, change, field) {
change.value = Number.isNumeric(change.value)
@@ -168,7 +163,7 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
super.applyChangeField(model, change, field);
}
- _applyChangeUnguided(actor, change, changes, options) {
+ static _applyChangeUnguided(actor, change, changes, options) {
change.value = DhActiveEffect.getChangeValue(actor, change, change.effect);
super._applyChangeUnguided(actor, change, changes, options);
}
diff --git a/src/packs/domains/domainCard_Armorer_cy8GjBPGc9w9RaGO.json b/src/packs/domains/domainCard_Armorer_cy8GjBPGc9w9RaGO.json
index e328325d..cad6012e 100644
--- a/src/packs/domains/domainCard_Armorer_cy8GjBPGc9w9RaGO.json
+++ b/src/packs/domains/domainCard_Armorer_cy8GjBPGc9w9RaGO.json
@@ -94,15 +94,12 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "1",
- "armorInteraction": "active"
+ "interaction": "active"
}
}
]
diff --git a/src/packs/domains/domainCard_Bare_Bones_l5D9kq901JDESaXw.json b/src/packs/domains/domainCard_Bare_Bones_l5D9kq901JDESaXw.json
index 69d1a2b2..c2cb7ada 100644
--- a/src/packs/domains/domainCard_Bare_Bones_l5D9kq901JDESaXw.json
+++ b/src/packs/domains/domainCard_Bare_Bones_l5D9kq901JDESaXw.json
@@ -26,15 +26,12 @@
"system": {
"changes": [
{
- "value": 0,
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "3 + @system.traits.strength.value",
- "armorInteraction": "inactive"
+ "interaction": "inactive"
}
}
]
diff --git a/src/packs/domains/domainCard_Book_of_Ava_YtZzYBtR0yLPPA93.json b/src/packs/domains/domainCard_Book_of_Ava_YtZzYBtR0yLPPA93.json
index 7852356b..fa247c89 100644
--- a/src/packs/domains/domainCard_Book_of_Ava_YtZzYBtR0yLPPA93.json
+++ b/src/packs/domains/domainCard_Book_of_Ava_YtZzYBtR0yLPPA93.json
@@ -263,13 +263,10 @@
},
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "1"
}
}
diff --git a/src/packs/domains/domainCard_Valor_Touched_k1AtYd3lSchIymBr.json b/src/packs/domains/domainCard_Valor_Touched_k1AtYd3lSchIymBr.json
index 870ff246..61c7ace8 100644
--- a/src/packs/domains/domainCard_Valor_Touched_k1AtYd3lSchIymBr.json
+++ b/src/packs/domains/domainCard_Valor_Touched_k1AtYd3lSchIymBr.json
@@ -95,13 +95,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "1"
}
}
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 1be3d76b..1a06285b 100644
--- a/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json
+++ b/src/packs/items/armors/armor_Advanced_Chainmail_Armor_LzLOJ9EVaHWAjoq9.json
@@ -71,13 +71,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "6"
}
}
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 60cc3da9..93b9d5b2 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
@@ -76,13 +76,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "6"
}
}
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 c8bf64d5..be6c5070 100644
--- a/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json
+++ b/src/packs/items/armors/armor_Advanced_Gambeson_Armor_epkAmlZVk7HOfUUT.json
@@ -71,13 +71,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "5"
}
}
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 6597bea0..ca5fd9f1 100644
--- a/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json
+++ b/src/packs/items/armors/armor_Advanced_Leather_Armor_itSOp2GCyem0f7oM.json
@@ -33,13 +33,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "5"
}
}
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 a5ac42ba..2844e96c 100644
--- a/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json
+++ b/src/packs/items/armors/armor_Bellamoi_Fine_Armor_WuoVwZA53XRAIt6d.json
@@ -71,13 +71,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "5"
}
}
diff --git a/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json b/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json
index 12f9441c..d51ec961 100644
--- a/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json
+++ b/src/packs/items/armors/armor_Bladefare_Armor_mNN6pvcsS10ChrWF.json
@@ -71,13 +71,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "6"
}
}
diff --git a/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json b/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json
index e1e8be0a..07b9150a 100644
--- a/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json
+++ b/src/packs/items/armors/armor_Chainmail_Armor_haULhuEg37zUUvhb.json
@@ -71,13 +71,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "4"
}
}
diff --git a/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json b/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json
index e4a50d08..c4b2da7b 100644
--- a/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json
+++ b/src/packs/items/armors/armor_Channeling_Armor_vMJxEWz1srfwMsoj.json
@@ -71,13 +71,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "5"
}
}
diff --git a/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json b/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json
index d7a9e182..8d660958 100644
--- a/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json
+++ b/src/packs/items/armors/armor_Dragonscale_Armor_mdQ69eFHyAQUDmE7.json
@@ -70,13 +70,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "5"
}
}
diff --git a/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json b/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json
index 91a58fcf..5f7137c5 100644
--- a/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json
+++ b/src/packs/items/armors/armor_Dunamis_Silkchain_hAY6UgdGT7dj22Pr.json
@@ -96,13 +96,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "7"
}
}
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 c217a626..da664058 100644
--- a/src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json
+++ b/src/packs/items/armors/armor_Elundrian_Chain_Armor_Q6LxmtFetDDkoZVZ.json
@@ -72,13 +72,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "4"
}
}
diff --git a/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json b/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json
index dfdefdcb..ea9c1d02 100644
--- a/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json
+++ b/src/packs/items/armors/armor_Emberwoven_Armor_bcQUh4QG3qFX0Vx6.json
@@ -94,13 +94,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "6"
}
}
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 4a3bcdc9..7d96f091 100644
--- a/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json
+++ b/src/packs/items/armors/armor_Full_Fortified_Armor_7emTSt6nhZuTlvt5.json
@@ -71,13 +71,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "4"
}
}
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 4427c082..95b015cf 100644
--- a/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json
+++ b/src/packs/items/armors/armor_Full_Plate_Armor_UdUJNa31WxFW2noa.json
@@ -76,13 +76,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "4"
}
}
diff --git a/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json b/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json
index a0bdf8d6..03ed23d8 100644
--- a/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json
+++ b/src/packs/items/armors/armor_Gambeson_Armor_yJFp1bfpecDcStVK.json
@@ -71,13 +71,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "3"
}
}
diff --git a/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json b/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json
index 2bfc3ff6..7f024816 100644
--- a/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json
+++ b/src/packs/items/armors/armor_Harrowbone_Armor_dvyQeUVRLc9y6rnt.json
@@ -87,13 +87,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "4"
}
}
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 79c52596..26422d2c 100644
--- a/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json
+++ b/src/packs/items/armors/armor_Improved_Chainmail_Armor_K5WkjS0NGqHYmhU3.json
@@ -71,13 +71,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "5"
}
}
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 bbbd6183..6627bc15 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
@@ -76,13 +76,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "5"
}
}
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 6c32e3ca..b1ea88ff 100644
--- a/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json
+++ b/src/packs/items/armors/armor_Improved_Gambeson_Armor_jphnMZjnS2FkOH3s.json
@@ -71,13 +71,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "4"
}
}
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 26092645..5d7f9b93 100644
--- a/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json
+++ b/src/packs/items/armors/armor_Improved_Leather_Armor_t91M61pSCMKStTNt.json
@@ -33,13 +33,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "4"
}
}
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 756fccdc..5c87565f 100644
--- a/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json
+++ b/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json
@@ -83,13 +83,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "4"
}
}
diff --git a/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json b/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json
index 601cf23c..b6c9cb8b 100644
--- a/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json
+++ b/src/packs/items/armors/armor_Leather_Armor_nibfdNtp2PtxvbVz.json
@@ -33,13 +33,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "3"
}
}
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 867c2420..0e97ae17 100644
--- a/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json
+++ b/src/packs/items/armors/armor_Legendary_Chainmail_Armor_EsIN5OLKe9ZYFNXZ.json
@@ -71,13 +71,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "7"
}
}
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 2fb8c064..e9da0a8d 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
@@ -76,13 +76,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "7"
}
}
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 8ab2894d..5d82c736 100644
--- a/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json
+++ b/src/packs/items/armors/armor_Legendary_Gambeson_Armor_c6tMXz4rPf9ioQrf.json
@@ -71,13 +71,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "6"
}
}
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 44c29bfb..c0890465 100644
--- a/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json
+++ b/src/packs/items/armors/armor_Legendary_Leather_Armor_Tptgl5WOj76TyFn7.json
@@ -33,13 +33,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "6"
}
}
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 db0c20d1..7ad68c23 100644
--- a/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json
+++ b/src/packs/items/armors/armor_Monett_s_Cloak_AQzU2RsqS5V5bd1v.json
@@ -71,13 +71,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "6"
}
}
diff --git a/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json b/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json
index 55cc6eb8..5c853e44 100644
--- a/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json
+++ b/src/packs/items/armors/armor_Rosewild_Armor_tN8kAeBvNKM3EBFo.json
@@ -63,13 +63,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "5"
}
}
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 2ca27f45..e3b813fb 100644
--- a/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json
+++ b/src/packs/items/armors/armor_Runes_of_Fortification_P4qAEDJUoNLgVRsA.json
@@ -70,13 +70,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "6"
}
}
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 54f6322e..c6a1c055 100644
--- a/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json
+++ b/src/packs/items/armors/armor_Runetan_Floating_Armor_tHlBUDQC24YMZqd6.json
@@ -70,13 +70,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "4"
}
}
diff --git a/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json b/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json
index f40df5c7..3505176b 100644
--- a/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json
+++ b/src/packs/items/armors/armor_Savior_Chainmail_8X16lJQ3xltTwynm.json
@@ -101,13 +101,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "8"
}
}
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 8f15ae28..68b26346 100644
--- a/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json
+++ b/src/packs/items/armors/armor_Spiked_Plate_Armor_QjwsIhXKqnlvRBMv.json
@@ -76,13 +76,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "5"
}
}
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 eb89421d..5114b1e2 100644
--- a/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json
+++ b/src/packs/items/armors/armor_Tyris_Soft_Armor_PSW3BxCGmtLeWOxM.json
@@ -63,13 +63,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "5"
}
}
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 6e5f24bc..2388e647 100644
--- a/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json
+++ b/src/packs/items/armors/armor_Veritas_Opal_Armor_OvzgUTYy2RCN85vV.json
@@ -63,13 +63,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "6"
}
}
diff --git a/src/packs/items/weapons/weapon_Advanced_Round_Shield_hiEOGF2reabGLUoi.json b/src/packs/items/weapons/weapon_Advanced_Round_Shield_hiEOGF2reabGLUoi.json
index 85321808..54800642 100644
--- a/src/packs/items/weapons/weapon_Advanced_Round_Shield_hiEOGF2reabGLUoi.json
+++ b/src/packs/items/weapons/weapon_Advanced_Round_Shield_hiEOGF2reabGLUoi.json
@@ -118,13 +118,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "ITEM.@system.tier"
}
}
diff --git a/src/packs/items/weapons/weapon_Advanced_Tower_Shield_OfOzQbs4hg6QbfTG.json b/src/packs/items/weapons/weapon_Advanced_Tower_Shield_OfOzQbs4hg6QbfTG.json
index 568e7ebc..a88749a8 100644
--- a/src/packs/items/weapons/weapon_Advanced_Tower_Shield_OfOzQbs4hg6QbfTG.json
+++ b/src/packs/items/weapons/weapon_Advanced_Tower_Shield_OfOzQbs4hg6QbfTG.json
@@ -156,13 +156,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "ITEM.@system.tier + 1"
}
}
diff --git a/src/packs/items/weapons/weapon_Improved_Round_Shield_DlinEBGZfIlvreO3.json b/src/packs/items/weapons/weapon_Improved_Round_Shield_DlinEBGZfIlvreO3.json
index 322682d9..65868950 100644
--- a/src/packs/items/weapons/weapon_Improved_Round_Shield_DlinEBGZfIlvreO3.json
+++ b/src/packs/items/weapons/weapon_Improved_Round_Shield_DlinEBGZfIlvreO3.json
@@ -118,13 +118,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "ITEM.@system.tier"
}
}
diff --git a/src/packs/items/weapons/weapon_Improved_Tower_Shield_bxt3NsbMqTSdI5ab.json b/src/packs/items/weapons/weapon_Improved_Tower_Shield_bxt3NsbMqTSdI5ab.json
index 70647216..64555dfa 100644
--- a/src/packs/items/weapons/weapon_Improved_Tower_Shield_bxt3NsbMqTSdI5ab.json
+++ b/src/packs/items/weapons/weapon_Improved_Tower_Shield_bxt3NsbMqTSdI5ab.json
@@ -156,13 +156,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "ITEM.@system.tier + 1"
}
}
diff --git a/src/packs/items/weapons/weapon_Labrys_Axe_ijWppQzSOqVCb3rE.json b/src/packs/items/weapons/weapon_Labrys_Axe_ijWppQzSOqVCb3rE.json
index 1adda37c..11994d3e 100644
--- a/src/packs/items/weapons/weapon_Labrys_Axe_ijWppQzSOqVCb3rE.json
+++ b/src/packs/items/weapons/weapon_Labrys_Axe_ijWppQzSOqVCb3rE.json
@@ -118,13 +118,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "ITEM.@system.tier"
}
}
diff --git a/src/packs/items/weapons/weapon_Legendary_Round_Shield_A28WL9E2lJ3iLZHW.json b/src/packs/items/weapons/weapon_Legendary_Round_Shield_A28WL9E2lJ3iLZHW.json
index 7e0d5374..85134d21 100644
--- a/src/packs/items/weapons/weapon_Legendary_Round_Shield_A28WL9E2lJ3iLZHW.json
+++ b/src/packs/items/weapons/weapon_Legendary_Round_Shield_A28WL9E2lJ3iLZHW.json
@@ -118,13 +118,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "ITEM.@system.tier"
}
}
diff --git a/src/packs/items/weapons/weapon_Legendary_Tower_Shield_MaJIROht7A9LxIZx.json b/src/packs/items/weapons/weapon_Legendary_Tower_Shield_MaJIROht7A9LxIZx.json
index 945678e5..772e9ca9 100644
--- a/src/packs/items/weapons/weapon_Legendary_Tower_Shield_MaJIROht7A9LxIZx.json
+++ b/src/packs/items/weapons/weapon_Legendary_Tower_Shield_MaJIROht7A9LxIZx.json
@@ -156,13 +156,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "ITEM.@system.tier + 1"
}
}
diff --git a/src/packs/items/weapons/weapon_Round_Shield_mxwWKDujgsRcZWPT.json b/src/packs/items/weapons/weapon_Round_Shield_mxwWKDujgsRcZWPT.json
index 987892b2..55e92f01 100644
--- a/src/packs/items/weapons/weapon_Round_Shield_mxwWKDujgsRcZWPT.json
+++ b/src/packs/items/weapons/weapon_Round_Shield_mxwWKDujgsRcZWPT.json
@@ -118,13 +118,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "ITEM.@system.tier"
}
}
diff --git a/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json b/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json
index fed95455..39c18b08 100644
--- a/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json
+++ b/src/packs/items/weapons/weapon_Spiked_Shield_vzyzFwLUniWZV1rt.json
@@ -160,13 +160,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "1"
}
}
diff --git a/src/packs/items/weapons/weapon_Tower_Shield_C9aWpK1shVMWP4m5.json b/src/packs/items/weapons/weapon_Tower_Shield_C9aWpK1shVMWP4m5.json
index 5cf27983..e584b63c 100644
--- a/src/packs/items/weapons/weapon_Tower_Shield_C9aWpK1shVMWP4m5.json
+++ b/src/packs/items/weapons/weapon_Tower_Shield_C9aWpK1shVMWP4m5.json
@@ -156,13 +156,10 @@
"system": {
"changes": [
{
- "key": "Armor",
"type": "armor",
"phase": "initial",
"priority": 20,
- "value": 0,
- "typeData": {
- "type": "armor",
+ "value": {
"max": "ITEM.@system.tier + 1"
}
}
diff --git a/styles/less/sheets/activeEffects/activeEffects.less b/styles/less/sheets/activeEffects/activeEffects.less
index 077369cf..b66dbfd7 100644
--- a/styles/less/sheets/activeEffects/activeEffects.less
+++ b/styles/less/sheets/activeEffects/activeEffects.less
@@ -50,7 +50,7 @@
header,
ol {
- grid-template-columns: 6rem 6rem 12rem 4rem;
+ grid-template-columns: 7rem 12rem 4rem;
}
}
}
diff --git a/templates/sheets/activeEffect/armor/details.hbs b/templates/sheets/activeEffect/armor/details.hbs
deleted file mode 100644
index 2b16560e..00000000
--- a/templates/sheets/activeEffect/armor/details.hbs
+++ /dev/null
@@ -1,20 +0,0 @@
-