Compare commits

...

3 commits

Author SHA1 Message Date
WBHarry
10baf0ba10 Added ArmoreEffect.armorInteraction option 2026-02-11 17:00:58 +01:00
WBHarry
c067fd0e10 SRD finalization 2026-02-11 16:21:34 +01:00
WBHarry
90ca39ebda Finally finished the migration ._. 2026-02-11 16:06:47 +01:00
60 changed files with 819 additions and 382 deletions

View file

@ -751,6 +751,11 @@
"bruiser": "for each Bruiser adversary.", "bruiser": "for each Bruiser adversary.",
"solo": "for each Solo adversary." "solo": "for each Solo adversary."
}, },
"ArmorInteraction": {
"none": { "label": "Ignores Armor" },
"active": { "label": "Only Active With Armor" },
"inactive": { "label": "Only Active Without Armor" }
},
"ArmorFeature": { "ArmorFeature": {
"burning": { "burning": {
"name": "Burning", "name": "Burning",
@ -1851,7 +1856,13 @@
"transferHint": "If checked, this effect will be applied to any actor that owns this Effect's parent Item. The effect is always applied if this Item is attached to another one." "transferHint": "If checked, this effect will be applied to any actor that owns this Effect's parent Item. The effect is always applied if this Item is attached to another one."
}, },
"Armor": { "Armor": {
"newArmorEffect": "Armor Effect" "newArmorEffect": "Armor Effect",
"FIELDS": {
"armorInteraction": {
"label": "Armor Interaction",
"hint": "Does the character wearing armor suppress this effect?"
}
}
} }
}, },
"GENERAL": { "GENERAL": {

View file

@ -9,6 +9,7 @@ export default class ArmorActiveEffectConfig extends HandlebarsApplicationMixin(
submitOnChange: true, submitOnChange: true,
closeOnSubmit: false closeOnSubmit: false
}, },
position: { width: 560 },
actions: { actions: {
finish: ArmorActiveEffectConfig.#finish finish: ArmorActiveEffectConfig.#finish
} }
@ -45,6 +46,13 @@ export default class ArmorActiveEffectConfig extends HandlebarsApplicationMixin(
const partContext = await super._preparePartContext(partId, context); const partContext = await super._preparePartContext(partId, context);
if (partId in partContext.tabs) partContext.tab = partContext.tabs[partId]; if (partId in partContext.tabs) partContext.tab = partContext.tabs[partId];
switch (partId) {
case 'details':
partContext.isActorEffect = this.document.parent?.documentName === 'Actor';
partContext.isItemEffect = this.document.parent?.documentName === 'Item';
break;
}
return partContext; return partContext;
} }

View file

@ -13,7 +13,7 @@ export default class DhProgress {
advance({ by = 1, label = this.label } = {}) { advance({ by = 1, label = this.label } = {}) {
if (this.value === this.max) return; if (this.value === this.max) return;
this.value += Math.abs(by); this.value = (this.value ?? 0) + Math.abs(by);
this.#notification.update({ message: label, pct: this.value / this.max }); this.#notification.update({ message: label, pct: this.value / this.max });
} }

View file

@ -890,3 +890,9 @@ export const activeEffectModes = {
label: 'EFFECT.CHANGES.TYPES.override' label: 'EFFECT.CHANGES.TYPES.override'
} }
}; };
export const activeEffectArmorInteraction = {
none: { id: 'none', label: 'DAGGERHEART.CONFIG.ArmorInteraction.none.label' },
active: { id: 'active', label: 'DAGGERHEART.CONFIG.ArmorInteraction.active.label' },
inactive: { id: 'inactive', label: 'DAGGERHEART.CONFIG.ArmorInteraction.inactive.label' }
};

View file

@ -51,10 +51,30 @@ export default class ArmorEffect extends foundry.data.ActiveEffectTypeDataModel
} }
] ]
} }
) ),
armorInteraction: new fields.StringField({
required: true,
choices: CONFIG.DH.GENERAL.activeEffectArmorInteraction,
initial: CONFIG.DH.GENERAL.activeEffectArmorInteraction.none.id,
label: 'DAGGERHEART.EFFECTS.Armor.FIELDS.armorInteraction.label',
hint: 'DAGGERHEART.EFFECTS.Armor.FIELDS.armorInteraction.hint'
})
}; };
} }
get isSuppressed() {
if (this.parent.actor?.type !== 'character') return false;
switch (this.armorInteraction) {
case CONFIG.DH.GENERAL.activeEffectArmorInteraction.active.id:
return !this.parent.actor.system.armor;
case CONFIG.DH.GENERAL.activeEffectArmorInteraction.inactive.id:
return Boolean(this.parent.actor.system.armor);
default:
return false;
}
}
/* Type Functions */ /* Type Functions */
/** /**

View file

@ -8,6 +8,8 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
/**@override */ /**@override */
get isSuppressed() { get isSuppressed() {
if (this.system.isSuppressed === true) return true;
// If this is a copied effect from an attachment, never suppress it // If this is a copied effect from an attachment, never suppress it
// (These effects have attachmentSource metadata) // (These effects have attachmentSource metadata)
if (this.flags?.daggerheart?.attachmentSource) { if (this.flags?.daggerheart?.attachmentSource) {

View file

@ -248,9 +248,10 @@ export async function runMigrations() {
} }
if (foundry.utils.isNewerVersion('2.0.0', lastMigrationVersion)) { 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 progress = game.system.api.applications.ui.DhProgress.createMigrationProgress(0);
const progressBuffer = 50;
//#region Data Setup
const lockedPacks = []; const lockedPacks = [];
const itemPacks = game.packs.filter(x => x.metadata.type === 'Item'); const itemPacks = game.packs.filter(x => x.metadata.type === 'Item');
const actorPacks = game.packs.filter(x => x.metadata.type === 'Actor'); const actorPacks = game.packs.filter(x => x.metadata.type === 'Actor');
@ -259,7 +260,7 @@ export async function runMigrations() {
const indexes = []; const indexes = [];
for (const pack of packs) { for (const pack of packs) {
const indexValues = pack.index.values().reduce((acc, index) => { const indexValues = pack.index.values().reduce((acc, index) => {
if (index.type === type) acc.push(index.uuid); if (!type || index.type === type) acc.push(index.uuid);
return acc; return acc;
}, []); }, []);
@ -274,54 +275,132 @@ export async function runMigrations() {
return indexes; return indexes;
}; };
const armorEntries = await getIndexes(itemPacks, 'armor'); const itemEntries = await getIndexes(itemPacks);
const actorEntries = await getIndexes(actorPacks, 'actor'); const characterEntries = await getIndexes(actorPacks, 'character');
const worldArmors = game.items.filter(x => x instanceof game.system.api.documents.DHItem && x.type === 'armor'); const worldItems = game.items;
const worldCharacters = game.actors.filter(x => x.type === 'character');
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 */ /* The async fetches are the mainstay of time. Leaving 1 progress for the sync logic */
const newMax = armorEntries.length + actorEntries.length + 1; const newMax = itemEntries.length + characterEntries.length + progressBuffer;
progress.updateMax(newMax); progress.updateMax(newMax);
const compendiumArmors = []; const compendiumItems = [];
for (const entry of armorEntries) { for (const entry of itemEntries) {
const armor = await foundry.utils.fromUuid(entry); const item = await foundry.utils.fromUuid(entry);
compendiumArmors.push(armor); compendiumItems.push(item);
progress.advance(); progress.advance();
} }
for (const entry of actorEntries) { const compendiumCharacters = [];
const actor = await foundry.utils.fromUuid(entry); for (const entry of characterEntries) {
compendiumArmors.push(...actor.items.filter(x => x.type === 'armor')); const character = await foundry.utils.fromUuid(entry);
compendiumCharacters.push(character);
progress.advance(); progress.advance();
} }
//#endregion
for (const armor of [...compendiumArmors, ...worldArmors]) { /* Migrate existing effects modifying armor, creating new Armor Effects instead */
const hasArmorEffect = armor.effects.some(x => x.type === 'armor'); const migrateEffects = async entity => {
const migrationArmorScore = armor.flags.daggerheart?.baseScoreMigrationValue; const effectChangeData = [];
if (migrationArmorScore !== undefined && !hasArmorEffect) { for (const effect of entity.effects) {
await armor.createEmbeddedDocuments('ActiveEffect', [ const oldArmorChanges = effect.system.changes.filter(x => x.key === 'system.armorScore');
if (!oldArmorChanges.length) continue;
const changeData = {};
const newChanges = effect.system.changes.filter(x => x.key !== 'system.armorScore');
if (newChanges.length) {
await effect.update({ 'system.changes': newChanges });
} else {
changeData.deleteId = effect.id;
}
const oldEffectData = effect.toObject();
changeData.createData = {
...oldEffectData,
type: 'armor',
system: {
...oldEffectData.sytem,
changes: oldArmorChanges.map(change => ({
key: 'system.armorScore',
type: CONFIG.DH.GENERAL.activeEffectModes.armor.id,
phase: 'initial',
priority: 20,
value: 0,
max: change.value
}))
}
};
effectChangeData.push(changeData);
}
for (const changeData of effectChangeData) {
const relatedActions = Array.from(entity.system.actions ?? []).filter(x =>
x.effects.some(effect => effect._id === changeData.deleteId)
);
const [newEffect] = await entity.createEmbeddedDocuments('ActiveEffect', [
{ {
...game.system.api.data.activeEffects.ArmorEffect.getDefaultObject(), ...changeData.createData,
changes: [ transfer: relatedActions.length ? false : true
{
type: CONFIG.DH.GENERAL.activeEffectModes.armor.id,
phase: 'initial',
priority: 20,
value: 0,
max: migrationArmorScore.toString()
}
]
} }
]); ]);
for (const action of relatedActions) {
await action.update({
effects: action.effects.map(effect => ({
...effect,
_id: effect._id === changeData.deleteId ? newEffect.id : effect._id
}))
});
}
} }
await entity.deleteEmbeddedDocuments(
'ActiveEffect',
effectChangeData.reduce((acc, data) => {
if (data.deleteId) acc.push(data.deleteId);
return acc;
}, [])
);
};
/* Migrate existing armors to the new Armor Effects */
const migrateItems = async items => {
for (const item of items) {
await migrateEffects(item);
if (item instanceof game.system.api.documents.DHItem && item.type === 'armor') {
const hasArmorEffect = item.effects.some(x => x.type === 'armor');
const migrationArmorScore = item.flags.daggerheart?.baseScoreMigrationValue;
if (migrationArmorScore !== undefined && !hasArmorEffect) {
await item.createEmbeddedDocuments('ActiveEffect', [
{
...game.system.api.data.activeEffects.ArmorEffect.getDefaultObject(),
changes: [
{
key: 'system.armorScore',
type: CONFIG.DH.GENERAL.activeEffectModes.armor.id,
phase: 'initial',
priority: 20,
value: 0,
max: migrationArmorScore.toString()
}
]
}
]);
}
}
}
};
await migrateItems([...compendiumItems, ...worldItems]);
progress.advance({ by: progressBuffer / 2 });
for (const actor of [...compendiumCharacters, ...worldCharacters]) {
await migrateEffects(actor);
await migrateItems(actor.items);
} }
progress.advance(); progress.advance({ by: progressBuffer / 2 });
for (let packId of lockedPacks) { for (let packId of lockedPacks) {
const pack = game.packs.get(packId); const pack = game.packs.get(packId);
@ -330,7 +409,7 @@ export async function runMigrations() {
progress.close(); progress.close();
// lastMigrationVersion = '2.0.0'; lastMigrationVersion = '2.0.0';
} }
//#endregion //#endregion

View file

@ -101,31 +101,32 @@
"value": 0, "value": 0,
"max": "1" "max": "1"
} }
] ],
"armorInteraction": "active"
}, },
"_id": "PczrmraHWZ54NJsW", "_id": "tJw2JIPcT9hEMRXg",
"img": "icons/tools/hand/hammer-and-nail.webp", "img": "icons/tools/hand/hammer-and-nail.webp",
"disabled": false, "disabled": false,
"start": null,
"duration": { "duration": {
"value": null, "value": null,
"units": "seconds", "units": "seconds",
"expiry": null, "expiry": null,
"expired": false "expired": false
}, },
"description": "<p><span style=\"color:rgb(239, 230, 216);font-family:Montserrat, sans-serif;font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-indent:0px;text-transform:none;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;white-space:normal;background-color:rgba(24, 22, 46, 0.376);text-decoration-thickness:initial;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline !important\">While youre wearing armor, gain a +1 bonus to your </span><span style=\"box-sizing:border-box;scrollbar-width:thin;scrollbar-color:rgb(93, 20, 43) rgba(0, 0, 0, 0);color:rgb(239, 230, 216);font-family:Montserrat, sans-serif;font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-indent:0px;text-transform:none;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;white-space:normal;background-color:rgba(24, 22, 46, 0.376);text-decoration-thickness:initial;text-decoration-style:initial;text-decoration-color:initial\" class=\"tooltip-convert\">Armor Score</span><span style=\"color:rgb(239, 230, 216);font-family:Montserrat, sans-serif;font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-indent:0px;text-transform:none;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;white-space:normal;background-color:rgba(24, 22, 46, 0.376);text-decoration-thickness:initial;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline !important\">.</span></p>", "description": "<p><span style=\"color:rgb(239, 230, 216);font-family:Montserrat, sans-serif;font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-indent:0px;text-transform:none;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;white-space:normal;background-color:rgba(24, 22, 46, 0.376);text-decoration-thickness:initial;text-decoration-style:initial;text-decoration-color:initial;display:inline !important;float:none\">While youre wearing armor, gain a +1 bonus to your </span><span style=\"box-sizing:border-box;scrollbar-width:thin;scrollbar-color:rgb(93, 20, 43) rgba(0, 0, 0, 0);color:rgb(239, 230, 216);font-family:Montserrat, sans-serif;font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-indent:0px;text-transform:none;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;white-space:normal;background-color:rgba(24, 22, 46, 0.376);text-decoration-thickness:initial;text-decoration-style:initial;text-decoration-color:initial\" class=\"tooltip-convert\">Armor Score</span><span style=\"color:rgb(239, 230, 216);font-family:Montserrat, sans-serif;font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-indent:0px;text-transform:none;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;white-space:normal;background-color:rgba(24, 22, 46, 0.376);text-decoration-thickness:initial;text-decoration-style:initial;text-decoration-color:initial;display:inline !important;float:none\">.</span></p>",
"origin": null, "origin": null,
"tint": "#ffffff", "tint": "#ffffff",
"transfer": true, "transfer": true,
"statuses": [], "statuses": [],
"showIcon": 1,
"folder": null,
"sort": 0, "sort": 0,
"flags": {}, "flags": {},
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!cy8GjBPGc9w9RaGO.PczrmraHWZ54NJsW" "start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!cy8GjBPGc9w9RaGO.tJw2JIPcT9hEMRXg"
} }
], ],
"ownership": { "ownership": {

View file

@ -4,7 +4,7 @@
"type": "domainCard", "type": "domainCard",
"folder": "QpOL7jPbMBzH96qR", "folder": "QpOL7jPbMBzH96qR",
"system": { "system": {
"description": "<p class=\"Body-Foundation\">When you choose not to equip armor, you have a base Armor Score of 3 + your Strength and use the following as your base damage thresholds:</p><ul><li class=\"vertical-card-list-found\"><p><em><strong>Tier 1:</strong></em> 9/19</p></li><li class=\"vertical-card-list-found\"><p><em><strong>Tier 2:</strong></em> 11/24</p></li><li class=\"vertical-card-list-found\"><p><em><strong>Tier 3:</strong></em> 13/31</p></li><li class=\"vertical-card-list-found\"><p><em><strong>Tier 4:</strong></em> 15/38</p></li></ul><p>Equip the below armor to use Bare Bones.</p>", "description": "<p class=\"Body-Foundation\">When you choose not to equip armor, you have a base Armor Score of 3 + your Strength and use the following as your base damage thresholds:</p><ul><li class=\"vertical-card-list-found\"><em><strong>Tier 1:</strong></em> 9/19</li><li class=\"vertical-card-list-found\"><em><strong>Tier 2:</strong></em> 11/24</li><li class=\"vertical-card-list-found\"><em><strong>Tier 3:</strong></em> 13/31</li><li class=\"vertical-card-list-found\"><em><strong>Tier 4:</strong></em> 15/38</li></ul><p>Equip the below armor to use Bare Bones.</p><p>@UUID[Compendium.daggerheart.armors.Item.ITAjcigTcUw5pMCN]{Bare Bones}</p>",
"domain": "valor", "domain": "valor",
"recallCost": 0, "recallCost": 0,
"level": 1, "level": 1,
@ -33,9 +33,10 @@
"phase": "initial", "phase": "initial",
"priority": 20 "priority": 20
} }
] ],
"armorInteraction": "inactive"
}, },
"_id": "Zn1nNUwjlkbRfbMc", "_id": "FCsgz7Tdsw6QUzBs",
"img": "icons/magic/control/buff-strength-muscle-damage-orange.webp", "img": "icons/magic/control/buff-strength-muscle-damage-orange.webp",
"disabled": false, "disabled": false,
"start": null, "start": null,
@ -45,7 +46,7 @@
"expiry": null, "expiry": null,
"expired": false "expired": false
}, },
"description": "<p><span style=\"color:rgb(239, 230, 216);font-family:Montserrat, sans-serif;font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-indent:0px;text-transform:none;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;white-space:normal;background-color:rgba(24, 22, 46, 0.565);text-decoration-thickness:initial;text-decoration-style:initial;text-decoration-color:initial;display:inline !important;float:none\">You have a base Armor Score of 3 + your Strength</span></p>", "description": "<p><span style=\"color:rgb(239, 230, 216);font-family:Montserrat, sans-serif;font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-indent:0px;text-transform:none;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;white-space:normal;background-color:rgba(24, 22, 46, 0.565);text-decoration-thickness:initial;text-decoration-style:initial;text-decoration-color:initial;display:inline !important;float:none\">You have a base Armor Score of 3 + your Strength.</span></p>",
"origin": null, "origin": null,
"tint": "#ffffff", "tint": "#ffffff",
"transfer": true, "transfer": true,
@ -57,7 +58,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!l5D9kq901JDESaXw.Zn1nNUwjlkbRfbMc" "_key": "!items.effects!l5D9kq901JDESaXw.FCsgz7Tdsw6QUzBs"
}, },
{ {
"name": "Bare Bones", "name": "Bare Bones",
@ -86,7 +87,7 @@
"range": "melee" "range": "melee"
} }
}, },
"_id": "FazU8RFjMmTpXs7Z", "_id": "8flPpWNoBeuFPFTK",
"img": "icons/magic/control/buff-strength-muscle-damage-orange.webp", "img": "icons/magic/control/buff-strength-muscle-damage-orange.webp",
"disabled": false, "disabled": false,
"start": null, "start": null,
@ -108,7 +109,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!l5D9kq901JDESaXw.FazU8RFjMmTpXs7Z" "_key": "!items.effects!l5D9kq901JDESaXw.8flPpWNoBeuFPFTK"
} }
], ],
"ownership": { "ownership": {

View file

@ -105,7 +105,7 @@
}, },
"effects": [ "effects": [
{ {
"_id": "OKf8Kjr6Px8A3ubJ", "_id": "ptYT10JZ2WJHvFMd",
"onSave": false "onSave": false
} }
], ],
@ -252,8 +252,8 @@
"img": "icons/magic/defensive/shield-barrier-glowing-triangle-blue.webp", "img": "icons/magic/defensive/shield-barrier-glowing-triangle-blue.webp",
"origin": "Compendium.daggerheart.domains.Item.YtZzYBtR0yLPPA93", "origin": "Compendium.daggerheart.domains.Item.YtZzYBtR0yLPPA93",
"transfer": false, "transfer": false,
"_id": "ptYT10JZ2WJHvFMd",
"type": "armor", "type": "armor",
"_id": "OKf8Kjr6Px8A3ubJ",
"system": { "system": {
"changes": [ "changes": [
{ {
@ -267,24 +267,24 @@
] ]
}, },
"disabled": false, "disabled": false,
"start": null,
"duration": { "duration": {
"value": null, "value": null,
"units": "seconds", "units": "seconds",
"expiry": null, "expiry": null,
"expired": false "expired": false
}, },
"description": "<p><strong>Spend a Hope</strong> to give a target you can touch a +1 bonus to their Armor Score until their next rest or you cast Tavas Armor again.</p>", "description": "<p>+1 bonus to your Armor Score until your next rest, or the caster cast's Tavas Armor again.</p>",
"tint": "#ffffff", "tint": "#ffffff",
"statuses": [], "statuses": [],
"showIcon": 1,
"folder": null,
"sort": 0, "sort": 0,
"flags": {}, "flags": {},
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!YtZzYBtR0yLPPA93.OKf8Kjr6Px8A3ubJ" "start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!YtZzYBtR0yLPPA93.ptYT10JZ2WJHvFMd"
} }
], ],
"ownership": { "ownership": {

View file

@ -104,29 +104,29 @@
} }
] ]
}, },
"_id": "JLw50ONfq1KJh1iM", "_id": "Ma8Zp005QYKPWIEN",
"img": "icons/magic/control/control-influence-rally-purple.webp", "img": "icons/magic/control/control-influence-rally-purple.webp",
"disabled": false, "disabled": false,
"start": null,
"duration": { "duration": {
"value": null, "value": null,
"units": "seconds", "units": "seconds",
"expiry": null, "expiry": null,
"expired": false "expired": false
}, },
"description": "<p>+1 bonus to your Armor Score</p>", "description": "<ul><li class=\"vertical-card-list-found\"><p>+1 bonus to your Armor Score</p></li><li class=\"vertical-card-list-found\"><p>When you mark 1 or more Hit Points without marking an Armor Slot, clear an Armor Slot.</p></li></ul>",
"origin": null, "origin": null,
"tint": "#ffffff", "tint": "#ffffff",
"transfer": true, "transfer": true,
"statuses": [], "statuses": [],
"showIcon": 1,
"folder": null,
"sort": 0, "sort": 0,
"flags": {}, "flags": {},
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!k1AtYd3lSchIymBr.JLw50ONfq1KJh1iM" "start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!k1AtYd3lSchIymBr.Ma8Zp005QYKPWIEN"
} }
], ],
"ownership": { "ownership": {

View file

@ -6,7 +6,7 @@
"sorting": "m", "sorting": "m",
"_id": "TL1TutmbeCVJ06nR", "_id": "TL1TutmbeCVJ06nR",
"description": "", "description": "",
"sort": 750000, "sort": 900000,
"flags": {}, "flags": {},
"_key": "!folders!TL1TutmbeCVJ06nR" "_key": "!folders!TL1TutmbeCVJ06nR"
} }

View file

@ -71,16 +71,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "6", "max": "6"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "xU3zAv0sBiOGAE4i", "_id": "YehcKtTeJ18q0THd",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -101,7 +101,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!LzLOJ9EVaHWAjoq9.xU3zAv0sBiOGAE4i" "_key": "!items.effects!LzLOJ9EVaHWAjoq9.YehcKtTeJ18q0THd"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -76,16 +76,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "6", "max": "6"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "TMxnzDzCmVibJWQ0", "_id": "Xp0MlTLdCe2oP36X",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -106,7 +106,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!crIbCb9NZ4K0VpoU.TMxnzDzCmVibJWQ0" "_key": "!items.effects!crIbCb9NZ4K0VpoU.Xp0MlTLdCe2oP36X"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -71,16 +71,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "5", "max": "5"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "HxZEKljAth8b5Wcv", "_id": "GyPhsm7zLznZDfN2",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -101,7 +101,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!epkAmlZVk7HOfUUT.HxZEKljAth8b5Wcv" "_key": "!items.effects!epkAmlZVk7HOfUUT.GyPhsm7zLznZDfN2"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -33,16 +33,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "5", "max": "5"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "jSGmBv0I5FhxmTen", "_id": "XJueICAnl5vu2q2U",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -63,7 +63,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!itSOp2GCyem0f7oM.jSGmBv0I5FhxmTen" "_key": "!items.effects!itSOp2GCyem0f7oM.XJueICAnl5vu2q2U"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -0,0 +1,71 @@
{
"folder": "tI3bfr6Sgi16Z7zm",
"name": "Bare Bones",
"type": "armor",
"_id": "ITAjcigTcUw5pMCN",
"img": "icons/magic/control/buff-strength-muscle-damage.webp",
"system": {
"description": "<p></p><p class=\"Body-Foundation\">When you choose not to equip armor, you have a base Armor Score of 3 + your Strength and use the following as your base damage thresholds:</p><ul><li class=\"vertical-card-list-found\"><em><strong>Tier 1:</strong></em> 9/19</li><li class=\"vertical-card-list-found\"><em><strong>Tier 2:</strong></em> 11/24</li><li class=\"vertical-card-list-found\"><em><strong>Tier 3:</strong></em> 13/31</li><li class=\"vertical-card-list-found\"><em><strong>Tier 4:</strong></em> 15/38</li></ul>",
"actions": {},
"attached": [],
"tier": 1,
"equipped": false,
"baseScore": 3,
"armorFeatures": [],
"marks": {
"value": 0
},
"baseThresholds": {
"major": 9,
"severe": 19
}
},
"effects": [
{
"name": "Bare Bones",
"type": "armor",
"system": {
"changes": [
{
"key": "system.armorScore",
"type": "armor",
"phase": "initial",
"priority": 20,
"value": 0,
"max": "@system.traits.strength.value"
}
]
},
"_id": "C7as6q5bx3S0Xxfn",
"img": "icons/magic/control/buff-strength-muscle-damage.webp",
"disabled": false,
"duration": {
"value": null,
"units": "seconds",
"expiry": null,
"expired": false
},
"description": "<p></p><p class=\"Body-Foundation\">When you choose not to equip armor, you have a base Armor Score of 3 + your Strength and use the following as your base damage thresholds:</p><ul><li class=\"vertical-card-list-found\"><em><strong>Tier 1:</strong></em> 9/19</li><li class=\"vertical-card-list-found\"><em><strong>Tier 2:</strong></em> 11/24</li><li class=\"vertical-card-list-found\"><em><strong>Tier 3:</strong></em> 13/31</li><li class=\"vertical-card-list-found\"><em><strong>Tier 4:</strong></em> 15/38</li></ul>",
"origin": null,
"tint": "#ffffff",
"transfer": true,
"statuses": [],
"sort": 0,
"flags": {},
"_stats": {
"compendiumSource": null
},
"start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!ITAjcigTcUw5pMCN.C7as6q5bx3S0Xxfn"
}
],
"sort": 0,
"ownership": {
"default": 0,
"MQSznptE5yLT7kj8": 3
},
"flags": {},
"_key": "!items!ITAjcigTcUw5pMCN"
}

View file

@ -71,16 +71,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "5", "max": "5"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "34OQBJZZV3d5AN7U", "_id": "2OMciFns3bSETeH9",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -101,7 +101,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!WuoVwZA53XRAIt6d.34OQBJZZV3d5AN7U" "_key": "!items.effects!WuoVwZA53XRAIt6d.2OMciFns3bSETeH9"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -71,16 +71,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "6", "max": "6"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "6AGrG6Y1wUSY3mg5", "_id": "dIb9PWvzyS3jYDUj",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -101,7 +101,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!mNN6pvcsS10ChrWF.6AGrG6Y1wUSY3mg5" "_key": "!items.effects!mNN6pvcsS10ChrWF.dIb9PWvzyS3jYDUj"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -71,16 +71,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "4", "max": "4"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "RXsc2d47cauTWTf0", "_id": "hA0EcaykFiIpg4ZH",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -101,7 +101,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!haULhuEg37zUUvhb.RXsc2d47cauTWTf0" "_key": "!items.effects!haULhuEg37zUUvhb.hA0EcaykFiIpg4ZH"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -71,16 +71,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "5", "max": "5"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "dKK4sbP3DZQYdmTn", "_id": "Wejd1c4e8VtnFoc4",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -101,7 +101,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!vMJxEWz1srfwMsoj.dKK4sbP3DZQYdmTn" "_key": "!items.effects!vMJxEWz1srfwMsoj.Wejd1c4e8VtnFoc4"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -70,16 +70,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "5", "max": "5"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "kNq8nLq1ljLZZGDg", "_id": "FgjNYkbghYSz8gwW",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -100,7 +100,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!mdQ69eFHyAQUDmE7.kNq8nLq1ljLZZGDg" "_key": "!items.effects!mdQ69eFHyAQUDmE7.FgjNYkbghYSz8gwW"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -96,16 +96,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "7", "max": "7"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "sBTZAS0aYcE15RwZ", "_id": "n4wyEBHbHIuYNBzt",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -126,7 +126,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!hAY6UgdGT7dj22Pr.sBTZAS0aYcE15RwZ" "_key": "!items.effects!hAY6UgdGT7dj22Pr.n4wyEBHbHIuYNBzt"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -72,16 +72,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "4", "max": "4"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "uFvhPlk3FVGfQST4", "_id": "gZfuMqjYTYLspQop",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -102,7 +102,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!Q6LxmtFetDDkoZVZ.uFvhPlk3FVGfQST4" "_key": "!items.effects!Q6LxmtFetDDkoZVZ.gZfuMqjYTYLspQop"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -94,16 +94,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "6", "max": "6"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "Dg8Gx6G3nwAH9wt2", "_id": "5t3jCX3AGiWBB4DN",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -124,7 +124,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!bcQUh4QG3qFX0Vx6.Dg8Gx6G3nwAH9wt2" "_key": "!items.effects!bcQUh4QG3qFX0Vx6.5t3jCX3AGiWBB4DN"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -71,16 +71,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "4", "max": "4"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "XPbNhspFyOj8RIQJ", "_id": "9jCrg3Acd75jVclW",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -101,7 +101,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!7emTSt6nhZuTlvt5.XPbNhspFyOj8RIQJ" "_key": "!items.effects!7emTSt6nhZuTlvt5.9jCrg3Acd75jVclW"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -85,7 +85,7 @@
} }
] ]
}, },
"_id": "zji5nzTC1y8BUWHn", "_id": "OmGtjOMcTHNN6OsH",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -106,7 +106,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!UdUJNa31WxFW2noa.zji5nzTC1y8BUWHn" "_key": "!items.effects!UdUJNa31WxFW2noa.OmGtjOMcTHNN6OsH"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -71,16 +71,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "3", "max": "3"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "72LkcLIihluGgx48", "_id": "ySw8mkws8rxzxsg4",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -101,7 +101,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!yJFp1bfpecDcStVK.72LkcLIihluGgx48" "_key": "!items.effects!yJFp1bfpecDcStVK.ySw8mkws8rxzxsg4"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -87,16 +87,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "4", "max": "4"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "GYRwYD3CHW9q4N29", "_id": "nyoNusMuukJt1MJw",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -117,7 +117,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!dvyQeUVRLc9y6rnt.GYRwYD3CHW9q4N29" "_key": "!items.effects!dvyQeUVRLc9y6rnt.nyoNusMuukJt1MJw"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -71,16 +71,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "5", "max": "5"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "2KD6EdRL2L2gQkMR", "_id": "7FdWcilv74zKcXWk",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -101,7 +101,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!K5WkjS0NGqHYmhU3.2KD6EdRL2L2gQkMR" "_key": "!items.effects!K5WkjS0NGqHYmhU3.7FdWcilv74zKcXWk"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -76,16 +76,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "5", "max": "5"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "ehijWY3PGw1OaQr0", "_id": "qgA4nbITVOp2WTpl",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -106,7 +106,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!9f7RozpPTqrzJS1m.ehijWY3PGw1OaQr0" "_key": "!items.effects!9f7RozpPTqrzJS1m.qgA4nbITVOp2WTpl"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -71,16 +71,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "4", "max": "4"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "d6QRNZ1X4wdoy82q", "_id": "dtkOq7rUKj5nLGJP",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -101,7 +101,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!jphnMZjnS2FkOH3s.d6QRNZ1X4wdoy82q" "_key": "!items.effects!jphnMZjnS2FkOH3s.dtkOq7rUKj5nLGJP"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -33,16 +33,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "4", "max": "4"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "lQNHCtW6HnIj0b7F", "_id": "JqnUKeUDbH4YJbVb",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -63,7 +63,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!t91M61pSCMKStTNt.lQNHCtW6HnIj0b7F" "_key": "!items.effects!t91M61pSCMKStTNt.JqnUKeUDbH4YJbVb"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -83,16 +83,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "4", "max": "4"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "jnjdtSTQF1zTSkEr", "_id": "6Mh24zh1c3aK60wZ",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -113,7 +113,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!tzZntboNtHL5C6VM.jnjdtSTQF1zTSkEr" "_key": "!items.effects!tzZntboNtHL5C6VM.6Mh24zh1c3aK60wZ"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -33,16 +33,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "3", "max": "3"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "bkEJ55HhIYFnX1Tz", "_id": "2enPnnikOoG0oIZP",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -63,7 +63,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!nibfdNtp2PtxvbVz.bkEJ55HhIYFnX1Tz" "_key": "!items.effects!nibfdNtp2PtxvbVz.2enPnnikOoG0oIZP"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -71,16 +71,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "7", "max": "7"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "PZsaURELHOaRJK28", "_id": "kqNdkD1d4FOQloMV",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -101,7 +101,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!EsIN5OLKe9ZYFNXZ.PZsaURELHOaRJK28" "_key": "!items.effects!EsIN5OLKe9ZYFNXZ.kqNdkD1d4FOQloMV"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -76,16 +76,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "7", "max": "7"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "IMPH2qFG7zXaxefg", "_id": "kFxM3Et2bPzghJWm",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -106,7 +106,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!SXWjUR2aUR6bYvdl.IMPH2qFG7zXaxefg" "_key": "!items.effects!SXWjUR2aUR6bYvdl.kFxM3Et2bPzghJWm"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -71,16 +71,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "6", "max": "6"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "TtMaMntKKpcTU054", "_id": "jdD0dJoh8gdGdh6W",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -101,7 +101,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!c6tMXz4rPf9ioQrf.TtMaMntKKpcTU054" "_key": "!items.effects!c6tMXz4rPf9ioQrf.jdD0dJoh8gdGdh6W"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -33,16 +33,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "6", "max": "6"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "UtbfSKO8hmJanog5", "_id": "gP4PsefQLSTcBAQm",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -63,7 +63,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!Tptgl5WOj76TyFn7.UtbfSKO8hmJanog5" "_key": "!items.effects!Tptgl5WOj76TyFn7.gP4PsefQLSTcBAQm"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -71,16 +71,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "6", "max": "6"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "kskfQTQTgCgmQR6b", "_id": "xMJr6Zj9zZd7v5uD",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -101,7 +101,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!AQzU2RsqS5V5bd1v.kskfQTQTgCgmQR6b" "_key": "!items.effects!AQzU2RsqS5V5bd1v.xMJr6Zj9zZd7v5uD"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -63,16 +63,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "5", "max": "5"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "eT5j1FNPPQOdLO2Q", "_id": "ebhSsuWrFYUVkGXC",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -93,7 +93,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!tN8kAeBvNKM3EBFo.eT5j1FNPPQOdLO2Q" "_key": "!items.effects!tN8kAeBvNKM3EBFo.ebhSsuWrFYUVkGXC"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -70,16 +70,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "6", "max": "6"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "UmpUTOMR2UBmrAu6", "_id": "pw8CD3IFNqb7530v",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -100,7 +100,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!P4qAEDJUoNLgVRsA.UmpUTOMR2UBmrAu6" "_key": "!items.effects!P4qAEDJUoNLgVRsA.pw8CD3IFNqb7530v"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -70,16 +70,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "4", "max": "4"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "s39jgXMmi4fDHuaE", "_id": "Y4ZSoO0iGxLiNr80",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -100,7 +100,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!tHlBUDQC24YMZqd6.s39jgXMmi4fDHuaE" "_key": "!items.effects!tHlBUDQC24YMZqd6.Y4ZSoO0iGxLiNr80"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -101,16 +101,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "8", "max": "8"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "SWXFcH4qbmPYI7WH", "_id": "vNGSiFtcEBCz6jFQ",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -131,7 +131,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!8X16lJQ3xltTwynm.SWXFcH4qbmPYI7WH" "_key": "!items.effects!8X16lJQ3xltTwynm.vNGSiFtcEBCz6jFQ"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -76,16 +76,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "5", "max": "5"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "OtOaxh7BCM2OMOmS", "_id": "jfcv9NL2RtlfpECz",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -106,7 +106,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!QjwsIhXKqnlvRBMv.OtOaxh7BCM2OMOmS" "_key": "!items.effects!QjwsIhXKqnlvRBMv.jfcv9NL2RtlfpECz"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -63,16 +63,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "5", "max": "5"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "DgAQc09o3x6zn6DQ", "_id": "E8iCCJSpPbCMostx",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -93,7 +93,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!PSW3BxCGmtLeWOxM.DgAQc09o3x6zn6DQ" "_key": "!items.effects!PSW3BxCGmtLeWOxM.E8iCCJSpPbCMostx"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -63,16 +63,16 @@
"system": { "system": {
"changes": [ "changes": [
{ {
"key": "system.armorScore",
"type": "armor", "type": "armor",
"phase": "initial", "phase": "initial",
"priority": 20, "priority": 20,
"value": 0, "value": 0,
"max": "6", "max": "6"
"key": "system.armorScore"
} }
] ]
}, },
"_id": "2gMOVh1Hty0nVWy4", "_id": "avGWSRMFFLbdJaYC",
"disabled": false, "disabled": false,
"start": null, "start": null,
"duration": { "duration": {
@ -93,7 +93,7 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!OvzgUTYy2RCN85vV.2gMOVh1Hty0nVWy4" "_key": "!items.effects!OvzgUTYy2RCN85vV.avGWSRMFFLbdJaYC"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -0,0 +1,12 @@
{
"type": "Item",
"folder": null,
"name": "Special",
"color": null,
"sorting": "a",
"_id": "tI3bfr6Sgi16Z7zm",
"description": "",
"sort": 0,
"flags": {},
"_key": "!folders!tI3bfr6Sgi16Z7zm"
}

View file

@ -113,26 +113,26 @@
"name": "Protective", "name": "Protective",
"description": "<p>Add the item's Tier to your Armor Score</p>", "description": "<p>Add the item's Tier to your Armor Score</p>",
"img": "icons/skills/melee/shield-block-gray-orange.webp", "img": "icons/skills/melee/shield-block-gray-orange.webp",
"changes": [ "_id": "7285CRGdZfHCEtT2",
{ "type": "armor",
"key": "system.armorScore", "system": {
"mode": 2, "changes": [
"value": "ITEM.@system.tier", {
"priority": null "key": "system.armorScore",
} "type": "armor",
], "phase": "initial",
"_id": "i5HfkF5aKQuUCTEG", "priority": 20,
"type": "base", "value": 0,
"system": {}, "max": "ITEM.@system.tier"
}
]
},
"disabled": false, "disabled": false,
"duration": { "duration": {
"startTime": null, "value": null,
"combat": null, "units": "seconds",
"seconds": null, "expiry": null,
"rounds": null, "expired": false
"turns": null,
"startRound": null,
"startTurn": null
}, },
"origin": null, "origin": null,
"tint": "#ffffff", "tint": "#ffffff",
@ -143,7 +143,10 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!hiEOGF2reabGLUoi.i5HfkF5aKQuUCTEG" "start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!hiEOGF2reabGLUoi.7285CRGdZfHCEtT2"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -113,25 +113,25 @@
"name": "Barrier", "name": "Barrier",
"description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion", "description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
"img": "icons/skills/melee/shield-block-bash-blue.webp", "img": "icons/skills/melee/shield-block-bash-blue.webp",
"changes": [
{
"key": "system.armorScore",
"mode": 2,
"value": "ITEM.@system.tier + 1"
},
{
"key": "system.evasion",
"mode": 2,
"value": "-1"
}
],
"_id": "87gedjJZGdFY81Mt", "_id": "87gedjJZGdFY81Mt",
"type": "base", "type": "base",
"system": {}, "system": {
"changes": [
{
"key": "system.evasion",
"type": "add",
"value": -1,
"phase": "initial",
"priority": 0
}
]
},
"disabled": false, "disabled": false,
"duration": { "duration": {
"startTime": null, "value": null,
"combat": null "units": "seconds",
"expiry": null,
"expired": false
}, },
"origin": null, "origin": null,
"tint": "#ffffff", "tint": "#ffffff",
@ -142,7 +142,49 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!OfOzQbs4hg6QbfTG.87gedjJZGdFY81Mt" "_key": "!items.effects!OfOzQbs4hg6QbfTG.87gedjJZGdFY81Mt"
},
{
"name": "Barrier",
"description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
"img": "icons/skills/melee/shield-block-bash-blue.webp",
"_id": "J0f7zqqOr61ADpdy",
"type": "armor",
"system": {
"changes": [
{
"key": "system.armorScore",
"type": "armor",
"phase": "initial",
"priority": 20,
"value": 0,
"max": "ITEM.@system.tier + 1"
}
]
},
"disabled": false,
"duration": {
"value": null,
"units": "seconds",
"expiry": null,
"expired": false
},
"origin": null,
"tint": "#ffffff",
"transfer": true,
"statuses": [],
"sort": 0,
"flags": {},
"_stats": {
"compendiumSource": null
},
"start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!OfOzQbs4hg6QbfTG.J0f7zqqOr61ADpdy"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -113,26 +113,26 @@
"name": "Protective", "name": "Protective",
"description": "<p>Add the item's Tier to your Armor Score</p>", "description": "<p>Add the item's Tier to your Armor Score</p>",
"img": "icons/skills/melee/shield-block-gray-orange.webp", "img": "icons/skills/melee/shield-block-gray-orange.webp",
"changes": [ "_id": "pZCrWd7zLTarvEQK",
{ "type": "armor",
"key": "system.armorScore", "system": {
"mode": 2, "changes": [
"value": "ITEM.@system.tier", {
"priority": null "key": "system.armorScore",
} "type": "armor",
], "phase": "initial",
"_id": "cXWSV50apzaNQkdA", "priority": 20,
"type": "base", "value": 0,
"system": {}, "max": "ITEM.@system.tier"
}
]
},
"disabled": false, "disabled": false,
"duration": { "duration": {
"startTime": null, "value": null,
"combat": null, "units": "seconds",
"seconds": null, "expiry": null,
"rounds": null, "expired": false
"turns": null,
"startRound": null,
"startTurn": null
}, },
"origin": null, "origin": null,
"tint": "#ffffff", "tint": "#ffffff",
@ -143,7 +143,10 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!DlinEBGZfIlvreO3.cXWSV50apzaNQkdA" "start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!DlinEBGZfIlvreO3.pZCrWd7zLTarvEQK"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -113,25 +113,25 @@
"name": "Barrier", "name": "Barrier",
"description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion", "description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
"img": "icons/skills/melee/shield-block-bash-blue.webp", "img": "icons/skills/melee/shield-block-bash-blue.webp",
"changes": [
{
"key": "system.armorScore",
"mode": 2,
"value": "ITEM.@system.tier + 1"
},
{
"key": "system.evasion",
"mode": 2,
"value": "-1"
}
],
"_id": "tkNEA1PO3jEFhKCa", "_id": "tkNEA1PO3jEFhKCa",
"type": "base", "type": "base",
"system": {}, "system": {
"changes": [
{
"key": "system.evasion",
"type": "add",
"value": -1,
"phase": "initial",
"priority": 0
}
]
},
"disabled": false, "disabled": false,
"duration": { "duration": {
"startTime": null, "value": null,
"combat": null "units": "seconds",
"expiry": null,
"expired": false
}, },
"origin": null, "origin": null,
"tint": "#ffffff", "tint": "#ffffff",
@ -142,7 +142,49 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!bxt3NsbMqTSdI5ab.tkNEA1PO3jEFhKCa" "_key": "!items.effects!bxt3NsbMqTSdI5ab.tkNEA1PO3jEFhKCa"
},
{
"name": "Barrier",
"description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
"img": "icons/skills/melee/shield-block-bash-blue.webp",
"_id": "XugJeHJdnC6IymSa",
"type": "armor",
"system": {
"changes": [
{
"key": "system.armorScore",
"type": "armor",
"phase": "initial",
"priority": 20,
"value": 0,
"max": "ITEM.@system.tier + 1"
}
]
},
"disabled": false,
"duration": {
"value": null,
"units": "seconds",
"expiry": null,
"expired": false
},
"origin": null,
"tint": "#ffffff",
"transfer": true,
"statuses": [],
"sort": 0,
"flags": {},
"_stats": {
"compendiumSource": null
},
"start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!bxt3NsbMqTSdI5ab.XugJeHJdnC6IymSa"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -113,20 +113,26 @@
"name": "Protective", "name": "Protective",
"description": "Add your character's Tier to your Armor Score", "description": "Add your character's Tier to your Armor Score",
"img": "icons/skills/melee/shield-block-gray-orange.webp", "img": "icons/skills/melee/shield-block-gray-orange.webp",
"changes": [ "_id": "vnR4Zhnb0rOqwrFw",
{ "type": "armor",
"key": "system.armorScore", "system": {
"mode": 2, "changes": [
"value": "ITEM.@system.tier" {
} "key": "system.armorScore",
], "type": "armor",
"_id": "qTxADRsQnKiYfOiQ", "phase": "initial",
"type": "base", "priority": 20,
"system": {}, "value": 0,
"max": "ITEM.@system.tier"
}
]
},
"disabled": false, "disabled": false,
"duration": { "duration": {
"startTime": null, "value": null,
"combat": null "units": "seconds",
"expiry": null,
"expired": false
}, },
"origin": null, "origin": null,
"tint": "#ffffff", "tint": "#ffffff",
@ -137,7 +143,10 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!ijWppQzSOqVCb3rE.qTxADRsQnKiYfOiQ" "start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!ijWppQzSOqVCb3rE.vnR4Zhnb0rOqwrFw"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -113,26 +113,26 @@
"name": "Protective", "name": "Protective",
"description": "<p>Add the item's Tier to your Armor Score</p>", "description": "<p>Add the item's Tier to your Armor Score</p>",
"img": "icons/skills/melee/shield-block-gray-orange.webp", "img": "icons/skills/melee/shield-block-gray-orange.webp",
"changes": [ "_id": "EixxJrRHyc6kj3Wg",
{ "type": "armor",
"key": "system.armorScore", "system": {
"mode": 2, "changes": [
"value": "ITEM.@system.tier", {
"priority": null "key": "system.armorScore",
} "type": "armor",
], "phase": "initial",
"_id": "Z2p00q5h6x6seXys", "priority": 20,
"type": "base", "value": 0,
"system": {}, "max": "ITEM.@system.tier"
}
]
},
"disabled": false, "disabled": false,
"duration": { "duration": {
"startTime": null, "value": null,
"combat": null, "units": "seconds",
"seconds": null, "expiry": null,
"rounds": null, "expired": false
"turns": null,
"startRound": null,
"startTurn": null
}, },
"origin": null, "origin": null,
"tint": "#ffffff", "tint": "#ffffff",
@ -143,7 +143,10 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!A28WL9E2lJ3iLZHW.Z2p00q5h6x6seXys" "start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!A28WL9E2lJ3iLZHW.EixxJrRHyc6kj3Wg"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -113,25 +113,25 @@
"name": "Barrier", "name": "Barrier",
"description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion", "description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
"img": "icons/skills/melee/shield-block-bash-blue.webp", "img": "icons/skills/melee/shield-block-bash-blue.webp",
"changes": [
{
"key": "system.armorScore",
"mode": 2,
"value": "ITEM.@system.tier + 1"
},
{
"key": "system.evasion",
"mode": 2,
"value": "-1"
}
],
"_id": "lBJMzxdGO2nJdTQS", "_id": "lBJMzxdGO2nJdTQS",
"type": "base", "type": "base",
"system": {}, "system": {
"changes": [
{
"key": "system.evasion",
"type": "add",
"value": -1,
"phase": "initial",
"priority": 0
}
]
},
"disabled": false, "disabled": false,
"duration": { "duration": {
"startTime": null, "value": null,
"combat": null "units": "seconds",
"expiry": null,
"expired": false
}, },
"origin": null, "origin": null,
"tint": "#ffffff", "tint": "#ffffff",
@ -142,7 +142,49 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!MaJIROht7A9LxIZx.lBJMzxdGO2nJdTQS" "_key": "!items.effects!MaJIROht7A9LxIZx.lBJMzxdGO2nJdTQS"
},
{
"name": "Barrier",
"description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
"img": "icons/skills/melee/shield-block-bash-blue.webp",
"_id": "1fgUIaXl6VQrhP7j",
"type": "armor",
"system": {
"changes": [
{
"key": "system.armorScore",
"type": "armor",
"phase": "initial",
"priority": 20,
"value": 0,
"max": "ITEM.@system.tier + 1"
}
]
},
"disabled": false,
"duration": {
"value": null,
"units": "seconds",
"expiry": null,
"expired": false
},
"origin": null,
"tint": "#ffffff",
"transfer": true,
"statuses": [],
"sort": 0,
"flags": {},
"_stats": {
"compendiumSource": null
},
"start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!MaJIROht7A9LxIZx.1fgUIaXl6VQrhP7j"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -113,26 +113,26 @@
"name": "Protective", "name": "Protective",
"description": "<p>Add the item's Tier to your Armor Score</p>", "description": "<p>Add the item's Tier to your Armor Score</p>",
"img": "icons/skills/melee/shield-block-gray-orange.webp", "img": "icons/skills/melee/shield-block-gray-orange.webp",
"changes": [ "_id": "eV4lFIpQMiKERj4U",
{ "type": "armor",
"key": "system.armorScore", "system": {
"mode": 2, "changes": [
"value": "ITEM.@system.tier", {
"priority": null "key": "system.armorScore",
} "type": "armor",
], "phase": "initial",
"_id": "M70a81e0Mg66jHRL", "priority": 20,
"type": "base", "value": 0,
"system": {}, "max": "ITEM.@system.tier"
}
]
},
"disabled": false, "disabled": false,
"duration": { "duration": {
"startTime": null, "value": null,
"combat": null, "units": "seconds",
"seconds": null, "expiry": null,
"rounds": null, "expired": false
"turns": null,
"startRound": null,
"startTurn": null
}, },
"origin": null, "origin": null,
"tint": "#ffffff", "tint": "#ffffff",
@ -143,7 +143,10 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"_key": "!items.effects!mxwWKDujgsRcZWPT.M70a81e0Mg66jHRL" "start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!mxwWKDujgsRcZWPT.eV4lFIpQMiKERj4U"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -113,32 +113,31 @@
"name": "Double Duty", "name": "Double Duty",
"description": "+1 to Armor Score; +1 to primary weapon damage within Melee range", "description": "+1 to Armor Score; +1 to primary weapon damage within Melee range",
"img": "icons/skills/melee/sword-shield-stylized-white.webp", "img": "icons/skills/melee/sword-shield-stylized-white.webp",
"changes": [
{
"key": "system.armorScore",
"mode": 2,
"value": "1"
},
{
"key": "system.bonuses.damage.primaryWeapon.bonus",
"mode": 2,
"value": "1"
}
],
"system": { "system": {
"rangeDependence": { "rangeDependence": {
"enabled": true, "enabled": true,
"range": "melee", "range": "melee",
"target": "hostile", "target": "hostile",
"type": "withinRange" "type": "withinRange"
} },
"changes": [
{
"key": "system.bonuses.damage.primaryWeapon.bonus",
"type": "add",
"value": 1,
"phase": "initial",
"priority": 0
}
]
}, },
"_id": "d3TJtlpoHBCztbom", "_id": "d3TJtlpoHBCztbom",
"type": "base", "type": "base",
"disabled": false, "disabled": false,
"duration": { "duration": {
"startTime": null, "value": null,
"combat": null "units": "seconds",
"expiry": null,
"expired": false
}, },
"origin": null, "origin": null,
"tint": "#ffffff", "tint": "#ffffff",
@ -149,7 +148,49 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!vzyzFwLUniWZV1rt.d3TJtlpoHBCztbom" "_key": "!items.effects!vzyzFwLUniWZV1rt.d3TJtlpoHBCztbom"
},
{
"name": "Double Duty",
"description": "+1 to Armor Score; +1 to primary weapon damage within Melee range",
"img": "icons/skills/melee/sword-shield-stylized-white.webp",
"system": {
"changes": [
{
"key": "system.armorScore",
"type": "armor",
"phase": "initial",
"priority": 20,
"value": 0,
"max": "1"
}
]
},
"_id": "mvUY9LGfwICak7cE",
"type": "armor",
"disabled": false,
"duration": {
"value": null,
"units": "seconds",
"expiry": null,
"expired": false
},
"origin": null,
"tint": "#ffffff",
"transfer": true,
"statuses": [],
"sort": 0,
"flags": {},
"_stats": {
"compendiumSource": null
},
"start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!vzyzFwLUniWZV1rt.mvUY9LGfwICak7cE"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -113,25 +113,25 @@
"name": "Barrier", "name": "Barrier",
"description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion", "description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
"img": "icons/skills/melee/shield-block-bash-blue.webp", "img": "icons/skills/melee/shield-block-bash-blue.webp",
"changes": [
{
"key": "system.armorScore",
"mode": 2,
"value": "ITEM.@system.tier + 1"
},
{
"key": "system.evasion",
"mode": 2,
"value": "-1"
}
],
"_id": "8r0TcKWXboFV0eqS", "_id": "8r0TcKWXboFV0eqS",
"type": "base", "type": "base",
"system": {}, "system": {
"changes": [
{
"key": "system.evasion",
"type": "add",
"value": -1,
"phase": "initial",
"priority": 0
}
]
},
"disabled": false, "disabled": false,
"duration": { "duration": {
"startTime": null, "value": null,
"combat": null "units": "seconds",
"expiry": null,
"expired": false
}, },
"origin": null, "origin": null,
"tint": "#ffffff", "tint": "#ffffff",
@ -142,7 +142,49 @@
"_stats": { "_stats": {
"compendiumSource": null "compendiumSource": null
}, },
"start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!C9aWpK1shVMWP4m5.8r0TcKWXboFV0eqS" "_key": "!items.effects!C9aWpK1shVMWP4m5.8r0TcKWXboFV0eqS"
},
{
"name": "Barrier",
"description": "Gain Weapon Tier + 1 to Armor Score; -1 to Evasion",
"img": "icons/skills/melee/shield-block-bash-blue.webp",
"_id": "tLRc4UAnGuIq7er3",
"type": "armor",
"system": {
"changes": [
{
"key": "system.armorScore",
"type": "armor",
"phase": "initial",
"priority": 20,
"value": 0,
"max": "ITEM.@system.tier + 1"
}
]
},
"disabled": false,
"duration": {
"value": null,
"units": "seconds",
"expiry": null,
"expired": false
},
"origin": null,
"tint": "#ffffff",
"transfer": true,
"statuses": [],
"sort": 0,
"flags": {},
"_stats": {
"compendiumSource": null
},
"start": null,
"showIcon": 1,
"folder": null,
"_key": "!items.effects!C9aWpK1shVMWP4m5.tLRc4UAnGuIq7er3"
} }
], ],
"sort": 0, "sort": 0,

View file

@ -1,16 +1,5 @@
.application.sheet.daggerheart.dh-style.armor-effect-config { .application.sheet.daggerheart.dh-style.armor-effect-config {
.armor-effects-container { .tab-form-footer {
display: flex; margin-top: 8px;
flex-direction: column;
gap: 8px;
.armor-effect-container {
display: flex;
gap: 4px;
* {
flex: 1;
}
}
} }
} }

View file

@ -1,10 +1,17 @@
<section class="tab{{#if tab.active}} active{{/if}}" data-group="{{tab.group}}" data-tab="{{tab.id}}"> <section class="tab{{#if tab.active}} active{{/if}}" data-group="{{tab.group}}" data-tab="{{tab.id}}">
<div class="armor-effects-container"> <fieldset>
{{#each source.system.changes as |change index|}} <legend>{{localize "Armor"}}</legend>
<div class="armor-effect-container"> <div class="two-columns even">
{{#each source.system.changes as |change index|}}
{{formGroup @root.systemFields.changes.element.fields.value name=(concat 'system.changes.' index '.value') value=change.value localize=true}} {{formGroup @root.systemFields.changes.element.fields.value name=(concat 'system.changes.' index '.value') value=change.value localize=true}}
{{formGroup @root.systemFields.changes.element.fields.max name=(concat 'system.changes.' index '.max') value=change.max localize=true}} {{formGroup @root.systemFields.changes.element.fields.max name=(concat 'system.changes.' index '.max') value=change.max localize=true}}
</div> {{/each}}
{{/each}} </div>
</div> </fieldset>
<fieldset>
<legend>{{localize "DAGGERHEART.GENERAL.general"}}</legend>
{{formGroup @root.systemFields.armorInteraction name="system.armorInteraction" value=source.system.armorInteraction localize=true}}
</fieldset>
</section> </section>