mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-12 03:31:07 +01:00
Merge branch 'main' of https://github.com/Foundryborne/daggerheart
This commit is contained in:
commit
7626e57a2b
54 changed files with 533 additions and 422 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
name: Feature report
|
name: Feature request
|
||||||
about: Create a feature report for suggestions on improving the system
|
about: Create a feature request for suggestions on improving the system
|
||||||
title: "[Feature] <Insert Title here> "
|
title: "[Feature] <Insert Title here> "
|
||||||
labels: enhancement, discussion, maybe
|
labels: enhancement, discussion, maybe
|
||||||
type: feature
|
type: feature
|
||||||
|
|
@ -2371,7 +2371,8 @@
|
||||||
"insufficientResources": "You have insufficient resources",
|
"insufficientResources": "You have insufficient resources",
|
||||||
"multiclassAlreadyPresent": "You already have a class and multiclass",
|
"multiclassAlreadyPresent": "You already have a class and multiclass",
|
||||||
"subclassesAlreadyPresent": "You already have a class and multiclass subclass",
|
"subclassesAlreadyPresent": "You already have a class and multiclass subclass",
|
||||||
"noDiceSystem": "Your selected dice {system} does not have a {faces} dice"
|
"noDiceSystem": "Your selected dice {system} does not have a {faces} dice",
|
||||||
|
"subclassAlreadyLinked": "{name} is already a subclass in the class {class}. Remove it from there if you want it to be a subclass to this class."
|
||||||
},
|
},
|
||||||
"Tooltip": {
|
"Tooltip": {
|
||||||
"disableEffect": "Disable Effect",
|
"disableEffect": "Disable Effect",
|
||||||
|
|
|
||||||
|
|
@ -432,12 +432,17 @@ export default class DhCharacterCreation extends HandlebarsApplicationMixin(Appl
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (type == 'domains')
|
if (type === 'domains')
|
||||||
presets.filter = {
|
presets.filter = {
|
||||||
'level.max': { key: 'level.max', value: 1 },
|
'level.max': { key: 'level.max', value: 1 },
|
||||||
'system.domain': { key: 'system.domain', value: this.setup.class?.system.domains ?? null }
|
'system.domain': { key: 'system.domain', value: this.setup.class?.system.domains ?? null }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (type === 'subclasses')
|
||||||
|
presets.filter = {
|
||||||
|
'system.linkedClass.uuid': { key: 'system.linkedClass.uuid', value: this.setup.class?.uuid }
|
||||||
|
};
|
||||||
|
|
||||||
if (equipment.includes(type))
|
if (equipment.includes(type))
|
||||||
presets.filter = {
|
presets.filter = {
|
||||||
'system.tier': { key: 'system.tier', value: 1 },
|
'system.tier': { key: 'system.tier', value: 1 },
|
||||||
|
|
|
||||||
|
|
@ -119,6 +119,15 @@ export default class ClassSheet extends DHBaseItemSheet {
|
||||||
const itemType = data.data ? data.type : item.type;
|
const itemType = data.data ? data.type : item.type;
|
||||||
const target = event.target.closest('fieldset.drop-section');
|
const target = event.target.closest('fieldset.drop-section');
|
||||||
if (itemType === 'subclass') {
|
if (itemType === 'subclass') {
|
||||||
|
if (item.system.linkedClass) {
|
||||||
|
return ui.notifications.warn(
|
||||||
|
game.i18n.format('DAGGERHEART.UI.Notifications.subclassAlreadyLinked', {
|
||||||
|
name: item.name,
|
||||||
|
class: this.document.name
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
await item.update({ 'system.linkedClass': this.document.uuid });
|
||||||
await this.document.update({
|
await this.document.update({
|
||||||
'system.subclasses': [...this.document.system.subclasses.map(x => x.uuid), item.uuid]
|
'system.subclasses': [...this.document.system.subclasses.map(x => x.uuid), item.uuid]
|
||||||
});
|
});
|
||||||
|
|
@ -181,6 +190,12 @@ export default class ClassSheet extends DHBaseItemSheet {
|
||||||
static async #removeItemFromCollection(_event, element) {
|
static async #removeItemFromCollection(_event, element) {
|
||||||
const { uuid, target } = element.dataset;
|
const { uuid, target } = element.dataset;
|
||||||
const prop = foundry.utils.getProperty(this.document.system, target);
|
const prop = foundry.utils.getProperty(this.document.system, target);
|
||||||
|
|
||||||
|
if (target === 'subclasses') {
|
||||||
|
const subclass = await foundry.utils.fromUuid(uuid);
|
||||||
|
await subclass.update({ 'system.linkedClass': null });
|
||||||
|
}
|
||||||
|
|
||||||
await this.document.update({ [`system.${target}`]: prop.filter(i => i.uuid !== uuid).map(x => x.uuid) });
|
await this.document.update({ [`system.${target}`]: prop.filter(i => i.uuid !== uuid).map(x => x.uuid) });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -235,7 +235,7 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) {
|
||||||
filters.forEach(f => {
|
filters.forEach(f => {
|
||||||
if (typeof f.field === 'string') f.field = foundry.utils.getProperty(game, f.field);
|
if (typeof f.field === 'string') f.field = foundry.utils.getProperty(game, f.field);
|
||||||
else if (typeof f.choices === 'function') {
|
else if (typeof f.choices === 'function') {
|
||||||
f.choices = f.choices();
|
f.choices = f.choices(this.items);
|
||||||
}
|
}
|
||||||
f.name ??= f.key;
|
f.name ??= f.key;
|
||||||
f.value = this.presets?.filter?.[f.name]?.value ?? null;
|
f.value = this.presets?.filter?.[f.name]?.value ?? null;
|
||||||
|
|
@ -248,11 +248,8 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) {
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create and initialize search filter instances for the inventory and loadout sections.
|
* Create and initialize search filter instance.
|
||||||
*
|
*
|
||||||
* Sets up two {@link foundry.applications.ux.SearchFilter} instances:
|
|
||||||
* - One for the inventory, which filters items in the inventory grid.
|
|
||||||
* - One for the loadout, which filters items in the loadout/card grid.
|
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
_createSearchFilter() {
|
_createSearchFilter() {
|
||||||
|
|
@ -339,7 +336,7 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) {
|
||||||
item = this.items.find(i => i.uuid === itemUUID);
|
item = this.items.find(i => i.uuid === itemUUID);
|
||||||
|
|
||||||
if (!item) continue;
|
if (!item) continue;
|
||||||
|
|
||||||
const matchesMenu =
|
const matchesMenu =
|
||||||
this.fieldFilter.length === 0 ||
|
this.fieldFilter.length === 0 ||
|
||||||
this.fieldFilter.every(
|
this.fieldFilter.every(
|
||||||
|
|
|
||||||
|
|
@ -2,404 +2,422 @@ export const typeConfig = {
|
||||||
adversaries: {
|
adversaries: {
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
key: "system.tier",
|
key: 'system.tier',
|
||||||
label: "Tier"
|
label: 'Tier'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.type",
|
key: 'system.type',
|
||||||
label: "Type"
|
label: 'Type'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
filters: [
|
filters: [
|
||||||
{
|
{
|
||||||
key: "system.tier",
|
key: 'system.tier',
|
||||||
label: "Tier",
|
label: 'Tier',
|
||||||
field: 'system.api.models.actors.DhAdversary.schema.fields.tier'
|
field: 'system.api.models.actors.DhAdversary.schema.fields.tier'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.type",
|
key: 'system.type',
|
||||||
label: "Type",
|
label: 'Type',
|
||||||
field: 'system.api.models.actors.DhAdversary.schema.fields.type'
|
field: 'system.api.models.actors.DhAdversary.schema.fields.type'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.difficulty",
|
key: 'system.difficulty',
|
||||||
name: "difficulty.min",
|
name: 'difficulty.min',
|
||||||
label: "Difficulty (Min)",
|
label: 'Difficulty (Min)',
|
||||||
field: 'system.api.models.actors.DhAdversary.schema.fields.difficulty',
|
field: 'system.api.models.actors.DhAdversary.schema.fields.difficulty',
|
||||||
operator: "gte"
|
operator: 'gte'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.difficulty",
|
key: 'system.difficulty',
|
||||||
name: "difficulty.max",
|
name: 'difficulty.max',
|
||||||
label: "Difficulty (Max)",
|
label: 'Difficulty (Max)',
|
||||||
field: 'system.api.models.actors.DhAdversary.schema.fields.difficulty',
|
field: 'system.api.models.actors.DhAdversary.schema.fields.difficulty',
|
||||||
operator: "lte"
|
operator: 'lte'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.resources.hitPoints.max",
|
key: 'system.resources.hitPoints.max',
|
||||||
name: "hp.min",
|
name: 'hp.min',
|
||||||
label: "Hit Points (Min)",
|
label: 'Hit Points (Min)',
|
||||||
field: 'system.api.models.actors.DhAdversary.schema.fields.resources.fields.hitPoints.fields.max',
|
field: 'system.api.models.actors.DhAdversary.schema.fields.resources.fields.hitPoints.fields.max',
|
||||||
operator: "gte"
|
operator: 'gte'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.resources.hitPoints.max",
|
key: 'system.resources.hitPoints.max',
|
||||||
name: "hp.max",
|
name: 'hp.max',
|
||||||
label: "Hit Points (Max)",
|
label: 'Hit Points (Max)',
|
||||||
field: 'system.api.models.actors.DhAdversary.schema.fields.resources.fields.hitPoints.fields.max',
|
field: 'system.api.models.actors.DhAdversary.schema.fields.resources.fields.hitPoints.fields.max',
|
||||||
operator: "lte"
|
operator: 'lte'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.resources.stress.max",
|
key: 'system.resources.stress.max',
|
||||||
name: "stress.min",
|
name: 'stress.min',
|
||||||
label: "Stress (Min)",
|
label: 'Stress (Min)',
|
||||||
field: 'system.api.models.actors.DhAdversary.schema.fields.resources.fields.stress.fields.max',
|
field: 'system.api.models.actors.DhAdversary.schema.fields.resources.fields.stress.fields.max',
|
||||||
operator: "gte"
|
operator: 'gte'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.resources.stress.max",
|
key: 'system.resources.stress.max',
|
||||||
name: "stress.max",
|
name: 'stress.max',
|
||||||
label: "Stress (Max)",
|
label: 'Stress (Max)',
|
||||||
field: 'system.api.models.actors.DhAdversary.schema.fields.resources.fields.stress.fields.max',
|
field: 'system.api.models.actors.DhAdversary.schema.fields.resources.fields.stress.fields.max',
|
||||||
operator: "lte"
|
operator: 'lte'
|
||||||
},
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
items: {
|
items: {
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
key: "type",
|
key: 'type',
|
||||||
label: "Type"
|
label: 'Type'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.secondary",
|
key: 'system.secondary',
|
||||||
label: "Subtype",
|
label: 'Subtype',
|
||||||
format: (isSecondary) => isSecondary ? "secondary" : (isSecondary === false ? "primary" : '-')
|
format: isSecondary => (isSecondary ? 'secondary' : isSecondary === false ? 'primary' : '-')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.tier",
|
key: 'system.tier',
|
||||||
label: "Tier"
|
label: 'Tier'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
filters: [
|
filters: [
|
||||||
{
|
{
|
||||||
key: "type",
|
key: 'type',
|
||||||
label: "Type",
|
label: 'Type',
|
||||||
choices: () => CONFIG.Item.documentClass.TYPES.filter(t => ["armor", "weapon", "consumable", "loot"].includes(t)).map(t => ({ value: t, label: t }))
|
choices: () =>
|
||||||
|
CONFIG.Item.documentClass.TYPES.filter(t =>
|
||||||
|
['armor', 'weapon', 'consumable', 'loot'].includes(t)
|
||||||
|
).map(t => ({ value: t, label: t }))
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.secondary",
|
key: 'system.secondary',
|
||||||
label: "Subtype",
|
label: 'Subtype',
|
||||||
choices: [
|
choices: [
|
||||||
{ value: false, label: "Primary Weapon"},
|
{ value: false, label: 'Primary Weapon' },
|
||||||
{ value: true, label: "Secondary Weapon"}
|
{ value: true, label: 'Secondary Weapon' }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.tier",
|
key: 'system.tier',
|
||||||
label: "Tier",
|
label: 'Tier',
|
||||||
choices: [{ value: "1", label: "1"}, { value: "2", label: "2"}, { value: "3", label: "3"}, { value: "4", label: "4"}]
|
choices: [
|
||||||
|
{ value: '1', label: '1' },
|
||||||
|
{ value: '2', label: '2' },
|
||||||
|
{ value: '3', label: '3' },
|
||||||
|
{ value: '4', label: '4' }
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.burden",
|
key: 'system.burden',
|
||||||
label: "Burden",
|
label: 'Burden',
|
||||||
field: 'system.api.models.items.DHWeapon.schema.fields.burden'
|
field: 'system.api.models.items.DHWeapon.schema.fields.burden'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.attack.roll.trait",
|
key: 'system.attack.roll.trait',
|
||||||
label: "Trait",
|
label: 'Trait',
|
||||||
field: 'system.api.models.actions.actionsTypes.attack.schema.fields.roll.fields.trait'
|
field: 'system.api.models.actions.actionsTypes.attack.schema.fields.roll.fields.trait'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.attack.range",
|
key: 'system.attack.range',
|
||||||
label: "Range",
|
label: 'Range',
|
||||||
field: 'system.api.models.actions.actionsTypes.attack.schema.fields.range'
|
field: 'system.api.models.actions.actionsTypes.attack.schema.fields.range'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.baseScore",
|
key: 'system.baseScore',
|
||||||
name: "armor.min",
|
name: 'armor.min',
|
||||||
label: "Armor Score (Min)",
|
label: 'Armor Score (Min)',
|
||||||
field: 'system.api.models.items.DHArmor.schema.fields.baseScore',
|
field: 'system.api.models.items.DHArmor.schema.fields.baseScore',
|
||||||
operator: "gte"
|
operator: 'gte'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.baseScore",
|
key: 'system.baseScore',
|
||||||
name: "armor.max",
|
name: 'armor.max',
|
||||||
label: "Armor Score (Max)",
|
label: 'Armor Score (Max)',
|
||||||
field: 'system.api.models.items.DHArmor.schema.fields.baseScore',
|
field: 'system.api.models.items.DHArmor.schema.fields.baseScore',
|
||||||
operator: "lte"
|
operator: 'lte'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.itemFeatures",
|
key: 'system.itemFeatures',
|
||||||
label: "Features",
|
label: 'Features',
|
||||||
choices: () => [...Object.entries(CONFIG.DH.ITEM.weaponFeatures), ...Object.entries(CONFIG.DH.ITEM.armorFeatures)].map(([k,v]) => ({ value: k, label: v.label})),
|
choices: () =>
|
||||||
operator: "contains3"
|
[
|
||||||
|
...Object.entries(CONFIG.DH.ITEM.weaponFeatures),
|
||||||
|
...Object.entries(CONFIG.DH.ITEM.armorFeatures)
|
||||||
|
].map(([k, v]) => ({ value: k, label: v.label })),
|
||||||
|
operator: 'contains3'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
features: {
|
features: {
|
||||||
columns: [
|
columns: [],
|
||||||
|
filters: []
|
||||||
],
|
|
||||||
filters: [
|
|
||||||
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
cards: {
|
cards: {
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
key: "system.type",
|
key: 'system.type',
|
||||||
label: "Type"
|
label: 'Type'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.domain",
|
key: 'system.domain',
|
||||||
label: "Domain"
|
label: 'Domain'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.level",
|
key: 'system.level',
|
||||||
label: "Level"
|
label: 'Level'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
filters: [
|
filters: [
|
||||||
{
|
{
|
||||||
key: "system.type",
|
key: 'system.type',
|
||||||
label: "Type",
|
label: 'Type',
|
||||||
field: 'system.api.models.items.DHDomainCard.schema.fields.type'
|
field: 'system.api.models.items.DHDomainCard.schema.fields.type'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.domain",
|
key: 'system.domain',
|
||||||
label: "Domain",
|
label: 'Domain',
|
||||||
field: 'system.api.models.items.DHDomainCard.schema.fields.domain',
|
field: 'system.api.models.items.DHDomainCard.schema.fields.domain',
|
||||||
operator: "contains2"
|
operator: 'contains2'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.level",
|
key: 'system.level',
|
||||||
name: "level.min",
|
name: 'level.min',
|
||||||
label: "Level (Min)",
|
label: 'Level (Min)',
|
||||||
field: 'system.api.models.items.DHDomainCard.schema.fields.level',
|
field: 'system.api.models.items.DHDomainCard.schema.fields.level',
|
||||||
operator: "gte"
|
operator: 'gte'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.level",
|
key: 'system.level',
|
||||||
name: "level.max",
|
name: 'level.max',
|
||||||
label: "Level (Max)",
|
label: 'Level (Max)',
|
||||||
field: 'system.api.models.items.DHDomainCard.schema.fields.level',
|
field: 'system.api.models.items.DHDomainCard.schema.fields.level',
|
||||||
operator: "lte"
|
operator: 'lte'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.recallCost",
|
key: 'system.recallCost',
|
||||||
name: "recall.min",
|
name: 'recall.min',
|
||||||
label: "Recall Cost (Min)",
|
label: 'Recall Cost (Min)',
|
||||||
field: 'system.api.models.items.DHDomainCard.schema.fields.recallCost',
|
field: 'system.api.models.items.DHDomainCard.schema.fields.recallCost',
|
||||||
operator: "gte"
|
operator: 'gte'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.recallCost",
|
key: 'system.recallCost',
|
||||||
name: "recall.max",
|
name: 'recall.max',
|
||||||
label: "Recall Cost (Max)",
|
label: 'Recall Cost (Max)',
|
||||||
field: 'system.api.models.items.DHDomainCard.schema.fields.recallCost',
|
field: 'system.api.models.items.DHDomainCard.schema.fields.recallCost',
|
||||||
operator: "lte"
|
operator: 'lte'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
classes: {
|
classes: {
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
key: "system.evasion",
|
key: 'system.evasion',
|
||||||
label: "Evasion"
|
label: 'Evasion'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.hitPoints",
|
key: 'system.hitPoints',
|
||||||
label: "Hit Points"
|
label: 'Hit Points'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.domains",
|
key: 'system.domains',
|
||||||
label: "Domains"
|
label: 'Domains'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
filters: [
|
filters: [
|
||||||
{
|
{
|
||||||
key: "system.evasion",
|
key: 'system.evasion',
|
||||||
name: "evasion.min",
|
name: 'evasion.min',
|
||||||
label: "Evasion (Min)",
|
label: 'Evasion (Min)',
|
||||||
field: 'system.api.models.items.DHClass.schema.fields.evasion',
|
field: 'system.api.models.items.DHClass.schema.fields.evasion',
|
||||||
operator: "gte"
|
operator: 'gte'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.evasion",
|
key: 'system.evasion',
|
||||||
name: "evasion.max",
|
name: 'evasion.max',
|
||||||
label: "Evasion (Max)",
|
label: 'Evasion (Max)',
|
||||||
field: 'system.api.models.items.DHClass.schema.fields.evasion',
|
field: 'system.api.models.items.DHClass.schema.fields.evasion',
|
||||||
operator: "lte"
|
operator: 'lte'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.hitPoints",
|
key: 'system.hitPoints',
|
||||||
name: "hp.min",
|
name: 'hp.min',
|
||||||
label: "Hit Points (Min)",
|
label: 'Hit Points (Min)',
|
||||||
field: 'system.api.models.items.DHClass.schema.fields.hitPoints',
|
field: 'system.api.models.items.DHClass.schema.fields.hitPoints',
|
||||||
operator: "gte"
|
operator: 'gte'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.hitPoints",
|
key: 'system.hitPoints',
|
||||||
name: "hp.max",
|
name: 'hp.max',
|
||||||
label: "Hit Points (Max)",
|
label: 'Hit Points (Max)',
|
||||||
field: 'system.api.models.items.DHClass.schema.fields.hitPoints',
|
field: 'system.api.models.items.DHClass.schema.fields.hitPoints',
|
||||||
operator: "lte"
|
operator: 'lte'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.domains",
|
key: 'system.domains',
|
||||||
label: "Domains",
|
label: 'Domains',
|
||||||
choices: () => Object.values(CONFIG.DH.DOMAIN.domains).map(d => ({ value: d.id, label: d.label})),
|
choices: () => Object.values(CONFIG.DH.DOMAIN.domains).map(d => ({ value: d.id, label: d.label })),
|
||||||
operator: "contains2"
|
operator: 'contains2'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
subclasses: {
|
subclasses: {
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
key: "id",
|
key: 'system.linkedClass',
|
||||||
label: "Class",
|
label: 'Class',
|
||||||
format: (id) => {
|
format: linkedClass => linkedClass.name
|
||||||
return "";
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.spellcastingTrait",
|
key: 'system.spellcastingTrait',
|
||||||
label: "Spellcasting Trait"
|
label: 'Spellcasting Trait'
|
||||||
}
|
|
||||||
],
|
|
||||||
filters: []
|
|
||||||
},
|
|
||||||
beastforms: {
|
|
||||||
columns: [
|
|
||||||
{
|
|
||||||
key: "system.tier",
|
|
||||||
label: "Tier"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "system.mainTrait",
|
|
||||||
label: "Main Trait"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
filters: [
|
filters: [
|
||||||
{
|
{
|
||||||
key: "system.tier",
|
key: 'system.linkedClass.uuid',
|
||||||
label: "Tier",
|
label: 'Class',
|
||||||
|
choices: (items) => {
|
||||||
|
const list = items.map(item => ({ value: item.system.linkedClass.uuid, label: item.system.linkedClass.name }));
|
||||||
|
return list.reduce((a,c) => {
|
||||||
|
if(!(a.find(i => i.value === c.value))) a.push(c);
|
||||||
|
return a;
|
||||||
|
}, []);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
beastforms: {
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
key: 'system.tier',
|
||||||
|
label: 'Tier'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'system.mainTrait',
|
||||||
|
label: 'Main Trait'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
filters: [
|
||||||
|
{
|
||||||
|
key: 'system.tier',
|
||||||
|
label: 'Tier',
|
||||||
field: 'system.api.models.items.DHBeastform.schema.fields.tier'
|
field: 'system.api.models.items.DHBeastform.schema.fields.tier'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "system.mainTrait",
|
key: 'system.mainTrait',
|
||||||
label: "Main Trait",
|
label: 'Main Trait',
|
||||||
field: 'system.api.models.items.DHBeastform.schema.fields.mainTrait'
|
field: 'system.api.models.items.DHBeastform.schema.fields.mainTrait'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
export const compendiumConfig = {
|
export const compendiumConfig = {
|
||||||
"daggerheart": {
|
daggerheart: {
|
||||||
id: "daggerheart",
|
id: 'daggerheart',
|
||||||
label: "DAGGERHEART",
|
label: 'DAGGERHEART',
|
||||||
folders: {
|
folders: {
|
||||||
"adversaries": {
|
adversaries: {
|
||||||
id: "adversaries",
|
id: 'adversaries',
|
||||||
keys: ["adversaries"],
|
keys: ['adversaries'],
|
||||||
label: "Adversaries",
|
label: 'Adversaries',
|
||||||
type: ["adversary"],
|
type: ['adversary'],
|
||||||
listType: "adversaries"
|
listType: 'adversaries'
|
||||||
},
|
},
|
||||||
"ancestries": {
|
ancestries: {
|
||||||
id: "ancestries",
|
id: 'ancestries',
|
||||||
keys: ["ancestries"],
|
keys: ['ancestries'],
|
||||||
label: "Ancestries",
|
label: 'Ancestries',
|
||||||
type: ["ancestry"],
|
type: ['ancestry'],
|
||||||
folders: {
|
folders: {
|
||||||
"features": {
|
features: {
|
||||||
id: "features",
|
id: 'features',
|
||||||
keys: ["ancestries"],
|
keys: ['ancestries'],
|
||||||
label: "Features",
|
label: 'Features',
|
||||||
type: ["feature"]
|
type: ['feature']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"equipments": {
|
equipments: {
|
||||||
id: "equipments",
|
id: 'equipments',
|
||||||
keys: ["armors", "weapons", "consumables", "loot"],
|
keys: ['armors', 'weapons', 'consumables', 'loot'],
|
||||||
label: "Equipment",
|
label: 'Equipment',
|
||||||
type: ["armor", "weapon", "consumable", "loot"],
|
type: ['armor', 'weapon', 'consumable', 'loot'],
|
||||||
listType: "items"
|
listType: 'items'
|
||||||
},
|
},
|
||||||
"classes": {
|
classes: {
|
||||||
id: "classes",
|
id: 'classes',
|
||||||
keys: ["classes"],
|
keys: ['classes'],
|
||||||
label: "Classes",
|
label: 'Classes',
|
||||||
type: ["class"],
|
type: ['class'],
|
||||||
folders: {
|
folders: {
|
||||||
"features": {
|
features: {
|
||||||
id: "features",
|
id: 'features',
|
||||||
keys: ["classes"],
|
keys: ['classes'],
|
||||||
label: "Features",
|
label: 'Features',
|
||||||
type: ["feature"]
|
type: ['feature']
|
||||||
},
|
},
|
||||||
"items": {
|
items: {
|
||||||
id: "items",
|
id: 'items',
|
||||||
keys: ["classes"],
|
keys: ['classes'],
|
||||||
label: "Items",
|
label: 'Items',
|
||||||
type: ["armor", "weapon", "consumable", "loot"],
|
type: ['armor', 'weapon', 'consumable', 'loot'],
|
||||||
listType: "items"
|
listType: 'items'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
listType: "classes"
|
listType: 'classes'
|
||||||
},
|
},
|
||||||
"subclasses": {
|
subclasses: {
|
||||||
id: "subclasses",
|
id: 'subclasses',
|
||||||
keys: ["subclasses"],
|
keys: ['subclasses'],
|
||||||
label: "Subclasses",
|
label: 'Subclasses',
|
||||||
type: ["subclass"],
|
type: ['subclass'],
|
||||||
listType: "subclasses"
|
listType: 'subclasses'
|
||||||
},
|
},
|
||||||
"domains": {
|
domains: {
|
||||||
id: "domains",
|
id: 'domains',
|
||||||
keys: ["domains"],
|
keys: ['domains'],
|
||||||
label: "Domain Cards",
|
label: 'Domain Cards',
|
||||||
type: ["domainCard"],
|
type: ['domainCard'],
|
||||||
listType: "cards"
|
listType: 'cards'
|
||||||
},
|
},
|
||||||
"communities": {
|
communities: {
|
||||||
id: "communities",
|
id: 'communities',
|
||||||
keys: ["communities"],
|
keys: ['communities'],
|
||||||
label: "Communities",
|
label: 'Communities',
|
||||||
type: ["community"],
|
type: ['community'],
|
||||||
folders: {
|
folders: {
|
||||||
"features": {
|
features: {
|
||||||
id: "features",
|
id: 'features',
|
||||||
keys: ["communities"],
|
keys: ['communities'],
|
||||||
label: "Features",
|
label: 'Features',
|
||||||
type: ["feature"]
|
type: ['feature']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"environments": {
|
environments: {
|
||||||
id: "environments",
|
id: 'environments',
|
||||||
keys: ["environments"],
|
keys: ['environments'],
|
||||||
label: "Environments",
|
label: 'Environments',
|
||||||
type: ["environment"]
|
type: ['environment']
|
||||||
},
|
},
|
||||||
"beastforms": {
|
beastforms: {
|
||||||
id: "beastforms",
|
id: 'beastforms',
|
||||||
keys: ["beastforms"],
|
keys: ['beastforms'],
|
||||||
label: "Beastforms",
|
label: 'Beastforms',
|
||||||
type: ["beastform"],
|
type: ['beastform'],
|
||||||
listType: "beastforms",
|
listType: 'beastforms',
|
||||||
folders: {
|
folders: {
|
||||||
"features": {
|
features: {
|
||||||
id: "features",
|
id: 'features',
|
||||||
keys: ["beastforms"],
|
keys: ['beastforms'],
|
||||||
label: "Features",
|
label: 'Features',
|
||||||
type: ["feature"]
|
type: ['feature']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
|
||||||
|
|
@ -51,11 +51,13 @@ export default class DHAttackAction extends DHDamageAction {
|
||||||
const labels = [];
|
const labels = [];
|
||||||
const { roll, range, damage } = this;
|
const { roll, range, damage } = this;
|
||||||
|
|
||||||
if (roll.trait) labels.push(game.i18n.localize(`DAGGERHEART.CONFIG.Traits.${roll.trait}.short`))
|
if (roll.trait) labels.push(game.i18n.localize(`DAGGERHEART.CONFIG.Traits.${roll.trait}.short`));
|
||||||
if (range) labels.push(game.i18n.localize(`DAGGERHEART.CONFIG.Range.${range}.short`));
|
if (range) labels.push(game.i18n.localize(`DAGGERHEART.CONFIG.Range.${range}.short`));
|
||||||
|
|
||||||
for (const { value, type } of damage.parts) {
|
const useAltDamage = this.actor?.effects?.find(x => x.type === 'horde')?.active;
|
||||||
const str = Roll.replaceFormulaData(value.getFormula(), this.actor?.getRollData() ?? {});
|
for (const { value, valueAlt, type } of damage.parts) {
|
||||||
|
const usedValue = useAltDamage ? valueAlt : value;
|
||||||
|
const str = Roll.replaceFormulaData(usedValue.getFormula(), this.actor?.getRollData() ?? {});
|
||||||
|
|
||||||
const icons = Array.from(type)
|
const icons = Array.from(type)
|
||||||
.map(t => CONFIG.DH.GENERAL.damageTypes[t]?.icon)
|
.map(t => CONFIG.DH.GENERAL.damageTypes[t]?.icon)
|
||||||
|
|
|
||||||
|
|
@ -172,7 +172,7 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel
|
||||||
dialog: {
|
dialog: {
|
||||||
configure: hasRoll
|
configure: hasRoll
|
||||||
},
|
},
|
||||||
type: this.type,
|
type: this.roll?.type ?? this.type,
|
||||||
hasRoll: hasRoll,
|
hasRoll: hasRoll,
|
||||||
hasDamage: this.damage?.parts?.length && this.type !== 'healing',
|
hasDamage: this.damage?.parts?.length && this.type !== 'healing',
|
||||||
hasHealing: this.damage?.parts?.length && this.type === 'healing',
|
hasHealing: this.damage?.parts?.length && this.type === 'healing',
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ export default class DhpAdversary extends BaseDataActor {
|
||||||
CONFIG.DH.id,
|
CONFIG.DH.id,
|
||||||
CONFIG.DH.SETTINGS.gameSettings.Automation
|
CONFIG.DH.SETTINGS.gameSettings.Automation
|
||||||
).hordeDamage;
|
).hordeDamage;
|
||||||
if (autoHordeDamage && changes.system?.resources?.hitPoints?.value) {
|
if (autoHordeDamage && changes.system?.resources?.hitPoints?.value !== undefined) {
|
||||||
const hordeActiveEffect = this.parent.effects.find(x => x.type === 'horde');
|
const hordeActiveEffect = this.parent.effects.find(x => x.type === 'horde');
|
||||||
if (hordeActiveEffect) {
|
if (hordeActiveEffect) {
|
||||||
const halfHP = Math.ceil(this.resources.hitPoints.max / 2);
|
const halfHP = Math.ceil(this.resources.hitPoints.max / 2);
|
||||||
|
|
|
||||||
|
|
@ -317,7 +317,7 @@ export default class DhCharacter extends BaseDataActor {
|
||||||
}
|
}
|
||||||
|
|
||||||
get multiclass() {
|
get multiclass() {
|
||||||
const value = this.parent.items.find(x => x.type === 'Class' && x.system.isMulticlass);
|
const value = this.parent.items.find(x => x.type === 'class' && x.system.isMulticlass);
|
||||||
const subclass = this.parent.items.find(x => x.type === 'subclass' && x.system.isMulticlass);
|
const subclass = this.parent.items.find(x => x.type === 'subclass' && x.system.isMulticlass);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
@ -443,7 +443,9 @@ export default class DhCharacter extends BaseDataActor {
|
||||||
classFeatures.push(item);
|
classFeatures.push(item);
|
||||||
} else if (item.system.originItemType === CONFIG.DH.ITEM.featureTypes.subclass.id) {
|
} else if (item.system.originItemType === CONFIG.DH.ITEM.featureTypes.subclass.id) {
|
||||||
if (this.class.subclass) {
|
if (this.class.subclass) {
|
||||||
const subclassState = this.class.subclass.system.featureState;
|
const prop = item.system.multiclassOrigin ? 'multiclass' : 'class';
|
||||||
|
const subclassState = this[prop].subclass?.system?.featureState;
|
||||||
|
if (!subclassState) continue;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
item.system.identifier === CONFIG.DH.ITEM.featureSubTypes.foundation ||
|
item.system.identifier === CONFIG.DH.ITEM.featureSubTypes.foundation ||
|
||||||
|
|
|
||||||
|
|
@ -148,7 +148,6 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel {
|
||||||
for (let f of this.features) {
|
for (let f of this.features) {
|
||||||
const fBase = f.item ?? f;
|
const fBase = f.item ?? f;
|
||||||
const feature = fBase.system ? fBase : await foundry.utils.fromUuid(fBase.uuid);
|
const feature = fBase.system ? fBase : await foundry.utils.fromUuid(fBase.uuid);
|
||||||
const multiclass = this.isMulticlass ? 'multiclass' : null;
|
|
||||||
features.push(
|
features.push(
|
||||||
foundry.utils.mergeObject(
|
foundry.utils.mergeObject(
|
||||||
feature.toObject(),
|
feature.toObject(),
|
||||||
|
|
@ -156,7 +155,8 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel {
|
||||||
_stats: { compendiumSource: fBase.uuid },
|
_stats: { compendiumSource: fBase.uuid },
|
||||||
system: {
|
system: {
|
||||||
originItemType: this.parent.type,
|
originItemType: this.parent.type,
|
||||||
identifier: multiclass ?? (f.item ? f.type : null)
|
identifier: f.item ? f.type : null,
|
||||||
|
multiclassOrigin: this.isMulticlass
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ inplace: false }
|
{ inplace: false }
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ export default class DHFeature extends BaseDataItem {
|
||||||
nullable: true,
|
nullable: true,
|
||||||
initial: null
|
initial: null
|
||||||
}),
|
}),
|
||||||
|
multiclassOrigin: new fields.BooleanField({ initial: false }),
|
||||||
identifier: new fields.StringField()
|
identifier: new fields.StringField()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import ForeignDocumentUUIDField from '../fields/foreignDocumentUUIDField.mjs';
|
||||||
import ItemLinkFields from '../fields/itemLinkFields.mjs';
|
import ItemLinkFields from '../fields/itemLinkFields.mjs';
|
||||||
import BaseDataItem from './base.mjs';
|
import BaseDataItem from './base.mjs';
|
||||||
|
|
||||||
|
|
@ -25,7 +26,8 @@ export default class DHSubclass extends BaseDataItem {
|
||||||
}),
|
}),
|
||||||
features: new ItemLinkFields(),
|
features: new ItemLinkFields(),
|
||||||
featureState: new fields.NumberField({ required: true, initial: 1, min: 1 }),
|
featureState: new fields.NumberField({ required: true, initial: 1, min: 1 }),
|
||||||
isMulticlass: new fields.BooleanField({ initial: false })
|
isMulticlass: new fields.BooleanField({ initial: false }),
|
||||||
|
linkedClass: new ForeignDocumentUUIDField({ type: 'Item', nullable: true, initial: null })
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -167,13 +167,11 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
|
||||||
|
|
||||||
if (subclass) {
|
if (subclass) {
|
||||||
const featureState = subclass.system.featureState;
|
const featureState = subclass.system.featureState;
|
||||||
const featureType = subclass
|
|
||||||
? (subclass.system.features.find(x => x.item?.uuid === this.parent.uuid)?.type ?? null)
|
|
||||||
: null;
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
(featureType === CONFIG.DH.ITEM.featureSubTypes.specialization && featureState < 2) ||
|
(this.parent.system.identifier === CONFIG.DH.ITEM.featureSubTypes.specialization &&
|
||||||
(featureType === CONFIG.DH.ITEM.featureSubTypes.mastery && featureState < 3)
|
featureState < 2) ||
|
||||||
|
(this.parent.system.identifier === CONFIG.DH.ITEM.featureSubTypes.mastery && featureState < 3)
|
||||||
) {
|
) {
|
||||||
this.transfer = false;
|
this.transfer = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { emitAsGM, GMUpdateEvent } from '../systemRegistration/socket.mjs';
|
import { emitAsGM, GMUpdateEvent } from '../systemRegistration/socket.mjs';
|
||||||
import { LevelOptionType } from '../data/levelTier.mjs';
|
import { LevelOptionType } from '../data/levelTier.mjs';
|
||||||
import DHFeature from '../data/item/feature.mjs';
|
import DHFeature from '../data/item/feature.mjs';
|
||||||
import { damageKeyToNumber, versionCompare } from '../helpers/utils.mjs';
|
import { damageKeyToNumber } from '../helpers/utils.mjs';
|
||||||
import DhCompanionLevelUp from '../applications/levelup/companionLevelup.mjs';
|
import DhCompanionLevelUp from '../applications/levelup/companionLevelup.mjs';
|
||||||
|
|
||||||
export default class DhpActor extends Actor {
|
export default class DhpActor extends Actor {
|
||||||
|
|
@ -164,10 +164,10 @@ export default class DhpActor extends Actor {
|
||||||
if (multiclass) {
|
if (multiclass) {
|
||||||
const multiclassItem = this.items.find(x => x.uuid === multiclass.itemUuid);
|
const multiclassItem = this.items.find(x => x.uuid === multiclass.itemUuid);
|
||||||
const multiclassFeatures = this.items.filter(
|
const multiclassFeatures = this.items.filter(
|
||||||
x => x.system.originItemType === 'class' && x.system.identifier === 'multiclass'
|
x => x.system.originItemType === 'class' && x.system.multiclassOrigin
|
||||||
);
|
);
|
||||||
const subclassFeatures = this.items.filter(
|
const subclassFeatures = this.items.filter(
|
||||||
x => x.system.originItemType === 'subclass' && x.system.identifier === 'multiclass'
|
x => x.system.originItemType === 'subclass' && x.system.multiclassOrigin
|
||||||
);
|
);
|
||||||
|
|
||||||
this.deleteEmbeddedDocuments(
|
this.deleteEmbeddedDocuments(
|
||||||
|
|
@ -759,7 +759,7 @@ export default class DhpActor extends Actor {
|
||||||
}
|
}
|
||||||
|
|
||||||
const parsedJSON = JSON.parse(json);
|
const parsedJSON = JSON.parse(json);
|
||||||
if (versionCompare(parsedJSON._stats.systemVersion, '1.1.0')) {
|
if (foundry.utils.isNewerVersion('1.1.0', parsedJSON._stats.systemVersion)) {
|
||||||
const confirmed = await foundry.applications.api.DialogV2.confirm({
|
const confirmed = await foundry.applications.api.DialogV2.confirm({
|
||||||
window: {
|
window: {
|
||||||
title: game.i18n.localize('DAGGERHEART.ACTORS.Character.InvalidOldCharacterImportTitle')
|
title: game.i18n.localize('DAGGERHEART.ACTORS.Character.InvalidOldCharacterImportTitle')
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@ export default function DhDamageEnricher(match, _options) {
|
||||||
const parts = match[1].split('|').map(x => x.trim());
|
const parts = match[1].split('|').map(x => x.trim());
|
||||||
|
|
||||||
let value = null,
|
let value = null,
|
||||||
type = null;
|
type = null,
|
||||||
|
inline = false;
|
||||||
|
|
||||||
parts.forEach(part => {
|
parts.forEach(part => {
|
||||||
const split = part.split(':').map(x => x.toLowerCase().trim());
|
const split = part.split(':').map(x => x.toLowerCase().trim());
|
||||||
|
|
@ -14,16 +15,19 @@ export default function DhDamageEnricher(match, _options) {
|
||||||
case 'type':
|
case 'type':
|
||||||
type = split[1];
|
type = split[1];
|
||||||
break;
|
break;
|
||||||
|
case 'inline':
|
||||||
|
inline = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!value || !value) return match[0];
|
if (!value || !value) return match[0];
|
||||||
|
|
||||||
return getDamageMessage(value, type, match[0]);
|
return getDamageMessage(value, type, inline, match[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDamageMessage(damage, type, defaultElement) {
|
function getDamageMessage(damage, type, inline, defaultElement) {
|
||||||
const typeIcons = type
|
const typeIcons = type
|
||||||
.replace('[', '')
|
.replace('[', '')
|
||||||
.replace(']', '')
|
.replace(']', '')
|
||||||
|
|
@ -40,7 +44,7 @@ function getDamageMessage(damage, type, defaultElement) {
|
||||||
|
|
||||||
const dualityElement = document.createElement('span');
|
const dualityElement = document.createElement('span');
|
||||||
dualityElement.innerHTML = `
|
dualityElement.innerHTML = `
|
||||||
<button class="enriched-damage-button"
|
<button class="enriched-damage-button${inline ? ' inline' : ''}"
|
||||||
data-value="${damage}"
|
data-value="${damage}"
|
||||||
data-type="${type}"
|
data-type="${type}"
|
||||||
data-tooltip="${game.i18n.localize('DAGGERHEART.GENERAL.damage')}"
|
data-tooltip="${game.i18n.localize('DAGGERHEART.GENERAL.damage')}"
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ function getDualityMessage(roll, flavor) {
|
||||||
|
|
||||||
const dualityElement = document.createElement('span');
|
const dualityElement = document.createElement('span');
|
||||||
dualityElement.innerHTML = `
|
dualityElement.innerHTML = `
|
||||||
<button class="duality-roll-button"
|
<button class="duality-roll-button${roll.inline ? ' inline' : ''}"
|
||||||
data-title="${label}"
|
data-title="${label}"
|
||||||
data-label="${dataLabel}"
|
data-label="${dataLabel}"
|
||||||
data-reaction="${roll.reaction ? 'true' : 'false'}"
|
data-reaction="${roll.reaction ? 'true' : 'false'}"
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@ export default function DhTemplateEnricher(match, _options) {
|
||||||
const parts = match[1].split('|').map(x => x.trim());
|
const parts = match[1].split('|').map(x => x.trim());
|
||||||
|
|
||||||
let type = null,
|
let type = null,
|
||||||
range = null;
|
range = null,
|
||||||
|
inline = false;
|
||||||
|
|
||||||
parts.forEach(part => {
|
parts.forEach(part => {
|
||||||
const split = part.split(':').map(x => x.toLowerCase().trim());
|
const split = part.split(':').map(x => x.toLowerCase().trim());
|
||||||
|
|
@ -20,6 +21,9 @@ export default function DhTemplateEnricher(match, _options) {
|
||||||
);
|
);
|
||||||
range = matchedRange?.id;
|
range = matchedRange?.id;
|
||||||
break;
|
break;
|
||||||
|
case 'inline':
|
||||||
|
inline = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -30,7 +34,7 @@ export default function DhTemplateEnricher(match, _options) {
|
||||||
|
|
||||||
const templateElement = document.createElement('span');
|
const templateElement = document.createElement('span');
|
||||||
templateElement.innerHTML = `
|
templateElement.innerHTML = `
|
||||||
<button class="measured-template-button" data-type="${type}" data-range="${range}">
|
<button class="measured-template-button${inline ? ' inline' : ''}" data-type="${type}" data-range="${range}">
|
||||||
${label} - ${game.i18n.localize(`DAGGERHEART.CONFIG.Range.${range}.name`)}
|
${label} - ${game.i18n.localize(`DAGGERHEART.CONFIG.Range.${range}.name`)}
|
||||||
</button>
|
</button>
|
||||||
`;
|
`;
|
||||||
|
|
|
||||||
|
|
@ -420,14 +420,3 @@ export async function createEmbeddedItemsWithEffects(actor, baseData) {
|
||||||
export const slugify = name => {
|
export const slugify = name => {
|
||||||
return name.toLowerCase().replaceAll(' ', '-').replaceAll('.', '');
|
return name.toLowerCase().replaceAll(' ', '-').replaceAll('.', '');
|
||||||
};
|
};
|
||||||
|
|
||||||
export const versionCompare = (current, target) => {
|
|
||||||
const currentSplit = current.split('.').map(x => Number.parseInt(x));
|
|
||||||
const targetSplit = target.split('.').map(x => Number.parseInt(x));
|
|
||||||
for (var i = 0; i < currentSplit.length; i++) {
|
|
||||||
if (currentSplit[i] < targetSplit[i]) return true;
|
|
||||||
if (currentSplit[i] > targetSplit[i]) return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,8 @@
|
||||||
import { versionCompare } from '../helpers/utils.mjs';
|
|
||||||
|
|
||||||
export async function runMigrations() {
|
export async function runMigrations() {
|
||||||
let lastMigrationVersion = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LastMigrationVersion);
|
let lastMigrationVersion = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LastMigrationVersion);
|
||||||
if (!lastMigrationVersion) lastMigrationVersion = '1.0.6';
|
if (!lastMigrationVersion) lastMigrationVersion = '1.0.6';
|
||||||
|
|
||||||
if (versionCompare(lastMigrationVersion, '1.1.0')) {
|
if (foundry.utils.isNewerVersion('1.1.0', lastMigrationVersion)) {
|
||||||
const compendiumActors = [];
|
const compendiumActors = [];
|
||||||
for (let pack of game.packs) {
|
for (let pack of game.packs) {
|
||||||
const documents = await pack.getDocuments();
|
const documents = await pack.getDocuments();
|
||||||
|
|
@ -37,5 +35,45 @@ export async function runMigrations() {
|
||||||
lastMigrationVersion = '1.1.0';
|
lastMigrationVersion = '1.1.0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (foundry.utils.isNewerVersion('1.1.1', lastMigrationVersion)) {
|
||||||
|
const compendiumClasses = [];
|
||||||
|
const compendiumActors = [];
|
||||||
|
for (let pack of game.packs) {
|
||||||
|
const documents = await pack.getDocuments();
|
||||||
|
compendiumClasses.push(...documents.filter(x => x.type === 'class'));
|
||||||
|
compendiumActors.push(...documents.filter(x => x.type === 'character'));
|
||||||
|
}
|
||||||
|
|
||||||
|
[...compendiumActors, ...game.actors.filter(x => x.type === 'character')].forEach(char => {
|
||||||
|
const multiclass = char.items.find(x => x.type === 'class' && x.system.isMulticlass);
|
||||||
|
const multiclassSubclass = multiclass.system.subclasses.length > 0 ? multiclass.system.subclasses[0] : null;
|
||||||
|
char.items.forEach(item => {
|
||||||
|
if (item.type === 'feature' && item.system.identifier === 'multiclass') {
|
||||||
|
const base = item.system.originItemType === 'class' ? multiclass : multiclassSubclass;
|
||||||
|
if (base) {
|
||||||
|
const baseFeature = base.system.features.find(x => x.item.name === item.name);
|
||||||
|
if (baseFeature) {
|
||||||
|
item.update({
|
||||||
|
system: {
|
||||||
|
multiclassOrigin: true,
|
||||||
|
identifier: baseFeature.type
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
const worldClasses = game.items.filter(x => x.type === 'class');
|
||||||
|
for (let classVal of [...compendiumClasses, ...worldClasses]) {
|
||||||
|
for (let subclass of classVal.system.subclasses) {
|
||||||
|
await subclass.update({ 'system.linkedClass': classVal.uuid });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lastMigrationVersion = '1.1.1';
|
||||||
|
}
|
||||||
|
|
||||||
await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LastMigrationVersion, lastMigrationVersion);
|
await game.settings.set(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LastMigrationVersion, lastMigrationVersion);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -265,7 +265,7 @@
|
||||||
"cost": [
|
"cost": [
|
||||||
{
|
{
|
||||||
"scalable": false,
|
"scalable": false,
|
||||||
"key": "stress",
|
"key": "fear",
|
||||||
"value": 1,
|
"value": 1,
|
||||||
"keyIsID": false,
|
"keyIsID": false,
|
||||||
"step": null
|
"step": null
|
||||||
|
|
@ -281,7 +281,7 @@
|
||||||
"type": "self",
|
"type": "self",
|
||||||
"amount": null
|
"amount": null
|
||||||
},
|
},
|
||||||
"name": "Mark Stress",
|
"name": "Spend Fear",
|
||||||
"img": "icons/creatures/abilities/tail-strike-bone-orange.webp",
|
"img": "icons/creatures/abilities/tail-strike-bone-orange.webp",
|
||||||
"range": ""
|
"range": ""
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
"type": "attack",
|
"type": "attack",
|
||||||
"_id": "a6WROv0OKx0lbYVa",
|
"_id": "a6WROv0OKx0lbYVa",
|
||||||
"systemPath": "actions",
|
"systemPath": "actions",
|
||||||
"description": "",
|
"description": "<p>Choose an element for your breath (such as electricity, fire, or ice). You can use this breath against a target or group of targets within Very Close range, treating it as an Instinct weapon that deals <strong>d8</strong> magic damage using your Proficiency.</p>",
|
||||||
"chatDisplay": true,
|
"chatDisplay": true,
|
||||||
"actionType": "action",
|
"actionType": "action",
|
||||||
"cost": [],
|
"cost": [],
|
||||||
|
|
@ -95,12 +95,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1753994055921,
|
"createdTime": 1753994055921,
|
||||||
"modifiedTime": 1753994120065,
|
"modifiedTime": 1755938895948,
|
||||||
"lastModifiedBy": "MQSznptE5yLT7kj8"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!sRaE3CgkgjBF1UpV"
|
"_key": "!items!sRaE3CgkgjBF1UpV"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -70,12 +70,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754174600538,
|
"createdTime": 1754174600538,
|
||||||
"modifiedTime": 1754325498779,
|
"modifiedTime": 1755943467705,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_id": "vegl3bFOq3pcFTWT",
|
"_id": "vegl3bFOq3pcFTWT",
|
||||||
"sort": 300000,
|
"sort": 300000,
|
||||||
|
|
|
||||||
|
|
@ -72,12 +72,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754222247012,
|
"createdTime": 1754222247012,
|
||||||
"modifiedTime": 1754325498779,
|
"modifiedTime": 1755943479440,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!ZNwUTCyGCEcidZFv"
|
"_key": "!items!ZNwUTCyGCEcidZFv"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -68,12 +68,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754246931974,
|
"createdTime": 1754246931974,
|
||||||
"modifiedTime": 1754325498779,
|
"modifiedTime": 1755943488697,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!nRAyoC0fOzXPDa4z"
|
"_key": "!items!nRAyoC0fOzXPDa4z"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -68,12 +68,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754268869310,
|
"createdTime": 1754268869310,
|
||||||
"modifiedTime": 1754325517617,
|
"modifiedTime": 1755943505024,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!BTyfve69LKqoOi9S"
|
"_key": "!items!BTyfve69LKqoOi9S"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,12 +72,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754325275832,
|
"createdTime": 1754325275832,
|
||||||
"modifiedTime": 1754500637635,
|
"modifiedTime": 1755943515533,
|
||||||
"lastModifiedBy": "Q9NoTaEarn3VMS6Z"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!CvHlkHZfpMiCz5uT"
|
"_key": "!items!CvHlkHZfpMiCz5uT"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -68,12 +68,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754351482530,
|
"createdTime": 1754351482530,
|
||||||
"modifiedTime": 1754355938087,
|
"modifiedTime": 1755943523935,
|
||||||
"lastModifiedBy": "Q9NoTaEarn3VMS6Z"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!5ZnlJ5bEoyOTkUJv"
|
"_key": "!items!5ZnlJ5bEoyOTkUJv"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -76,12 +76,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754349743129,
|
"createdTime": 1754349743129,
|
||||||
"modifiedTime": 1754350005553,
|
"modifiedTime": 1755943536635,
|
||||||
"lastModifiedBy": "Q9NoTaEarn3VMS6Z"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!DchOzHcWIJE9FKcR"
|
"_key": "!items!DchOzHcWIJE9FKcR"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,12 +72,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754255776706,
|
"createdTime": 1754255776706,
|
||||||
"modifiedTime": 1754325510730,
|
"modifiedTime": 1755943545980,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!xCUWwJz4WSthvLfy"
|
"_key": "!items!xCUWwJz4WSthvLfy"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,12 +72,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754253505323,
|
"createdTime": 1754253505323,
|
||||||
"modifiedTime": 1754325500455,
|
"modifiedTime": 1755943555087,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!5LwX4m8ziY3F1ZGC"
|
"_key": "!items!5LwX4m8ziY3F1ZGC"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
"type": "effect",
|
"type": "effect",
|
||||||
"_id": "ZBVqSlsDUKf8uGrI",
|
"_id": "ZBVqSlsDUKf8uGrI",
|
||||||
"systemPath": "actions",
|
"systemPath": "actions",
|
||||||
"description": "",
|
"description": "<p>Record three sayings or values your upbringing instilled in you. Once per rest, when you describe how you’re embodying one of these principles through your current action, you can roll a d20 as your Hope Die</p>",
|
||||||
"chatDisplay": true,
|
"chatDisplay": true,
|
||||||
"actionType": "action",
|
"actionType": "action",
|
||||||
"cost": [],
|
"cost": [],
|
||||||
|
|
@ -41,12 +41,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754010247432,
|
"createdTime": 1754010247432,
|
||||||
"modifiedTime": 1754010247432,
|
"modifiedTime": 1755938935013,
|
||||||
"lastModifiedBy": "Q9NoTaEarn3VMS6Z"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
"ownership": {
|
"ownership": {
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.BTyfve69LKqoOi9S"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
@ -43,12 +44,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754268237448,
|
"createdTime": 1754268237448,
|
||||||
"modifiedTime": 1754268308097,
|
"modifiedTime": 1755943503629,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!TIUsIlTS1WkK5vr2"
|
"_key": "!items!TIUsIlTS1WkK5vr2"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.xCUWwJz4WSthvLfy"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
@ -39,12 +40,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754256077777,
|
"createdTime": 1754256077777,
|
||||||
"modifiedTime": 1754256954656,
|
"modifiedTime": 1755943544886,
|
||||||
"lastModifiedBy": "MQSznptE5yLT7kj8"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!NAFU9roaVG7f3RNJ"
|
"_key": "!items!NAFU9roaVG7f3RNJ"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.xCUWwJz4WSthvLfy"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
@ -35,12 +36,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754256112978,
|
"createdTime": 1754256112978,
|
||||||
"modifiedTime": 1754256959532,
|
"modifiedTime": 1755943545973,
|
||||||
"lastModifiedBy": "MQSznptE5yLT7kj8"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!bcNe5qP3o6CKadhK"
|
"_key": "!items!bcNe5qP3o6CKadhK"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.5ZnlJ5bEoyOTkUJv"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
@ -39,12 +40,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754352806098,
|
"createdTime": 1754352806098,
|
||||||
"modifiedTime": 1754354057333,
|
"modifiedTime": 1755943522722,
|
||||||
"lastModifiedBy": "Q9NoTaEarn3VMS6Z"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!M5mpGoAj8LRkylrY"
|
"_key": "!items!M5mpGoAj8LRkylrY"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.DchOzHcWIJE9FKcR"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
@ -35,12 +36,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754349604941,
|
"createdTime": 1754349604941,
|
||||||
"modifiedTime": 1754349648910,
|
"modifiedTime": 1755943535524,
|
||||||
"lastModifiedBy": "Q9NoTaEarn3VMS6Z"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!wg1H0hROc2acHwZh"
|
"_key": "!items!wg1H0hROc2acHwZh"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.CvHlkHZfpMiCz5uT"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
@ -43,12 +44,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754322815758,
|
"createdTime": 1754322815758,
|
||||||
"modifiedTime": 1754323509061,
|
"modifiedTime": 1755943514465,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!h161OSIK24Up4qNd"
|
"_key": "!items!h161OSIK24Up4qNd"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.DchOzHcWIJE9FKcR"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
@ -35,12 +36,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754349604941,
|
"createdTime": 1754349604941,
|
||||||
"modifiedTime": 1754349673276,
|
"modifiedTime": 1755943536628,
|
||||||
"lastModifiedBy": "Q9NoTaEarn3VMS6Z"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!GLpRVxnY5E82khxH"
|
"_key": "!items!GLpRVxnY5E82khxH"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.5LwX4m8ziY3F1ZGC"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
@ -47,12 +48,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754253538384,
|
"createdTime": 1754253538384,
|
||||||
"modifiedTime": 1754254543287,
|
"modifiedTime": 1755943553625,
|
||||||
"lastModifiedBy": "MQSznptE5yLT7kj8"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!qqQlgCqhOivUFoQn"
|
"_key": "!items!qqQlgCqhOivUFoQn"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.5LwX4m8ziY3F1ZGC"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
@ -47,12 +48,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754253587683,
|
"createdTime": 1754253587683,
|
||||||
"modifiedTime": 1754254721869,
|
"modifiedTime": 1755943555081,
|
||||||
"lastModifiedBy": "MQSznptE5yLT7kj8"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!4y9Ph7RsCIAbkwTk"
|
"_key": "!items!4y9Ph7RsCIAbkwTk"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.nRAyoC0fOzXPDa4z"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
@ -47,12 +48,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754245881893,
|
"createdTime": 1754245881893,
|
||||||
"modifiedTime": 1754245958817,
|
"modifiedTime": 1755943487549,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!rKRxFBlkbh9cDK8K"
|
"_key": "!items!rKRxFBlkbh9cDK8K"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.CvHlkHZfpMiCz5uT"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
@ -35,12 +36,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754323643089,
|
"createdTime": 1754323643089,
|
||||||
"modifiedTime": 1754323735227,
|
"modifiedTime": 1755943515526,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!95QxNZwgyEm1LqdG"
|
"_key": "!items!95QxNZwgyEm1LqdG"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.vegl3bFOq3pcFTWT"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"ownership": {
|
"ownership": {
|
||||||
|
|
@ -33,12 +34,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754174653653,
|
"createdTime": 1754174653653,
|
||||||
"modifiedTime": 1754236659263,
|
"modifiedTime": 1755943465827,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_id": "ld8MIvk0xVJydSBz",
|
"_id": "ld8MIvk0xVJydSBz",
|
||||||
"sort": 100000,
|
"sort": 100000,
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.nRAyoC0fOzXPDa4z"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
@ -39,12 +40,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754246011733,
|
"createdTime": 1754246011733,
|
||||||
"modifiedTime": 1754246076491,
|
"modifiedTime": 1755943488691,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!SUo8NPBPO8aN193u"
|
"_key": "!items!SUo8NPBPO8aN193u"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.ZNwUTCyGCEcidZFv"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"folder": "AZWrSJzGXltzQhAJ",
|
"folder": "AZWrSJzGXltzQhAJ",
|
||||||
|
|
@ -43,12 +44,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754221346981,
|
"createdTime": 1754221346981,
|
||||||
"modifiedTime": 1754236671909,
|
"modifiedTime": 1755943479431,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!xp0XMjYT85Q7E90o"
|
"_key": "!items!xp0XMjYT85Q7E90o"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.ZNwUTCyGCEcidZFv"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"folder": "AZWrSJzGXltzQhAJ",
|
"folder": "AZWrSJzGXltzQhAJ",
|
||||||
|
|
@ -35,12 +36,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754221102716,
|
"createdTime": 1754221102716,
|
||||||
"modifiedTime": 1754236671090,
|
"modifiedTime": 1755943478132,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!W9hs5kxOWeY7eA4Q"
|
"_key": "!items!W9hs5kxOWeY7eA4Q"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.BTyfve69LKqoOi9S"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
@ -39,12 +40,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754268318903,
|
"createdTime": 1754268318903,
|
||||||
"modifiedTime": 1754268377047,
|
"modifiedTime": 1755943505016,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!zsUglcU4NgZ8tNgZ"
|
"_key": "!items!zsUglcU4NgZ8tNgZ"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.5ZnlJ5bEoyOTkUJv"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"sort": 0,
|
"sort": 0,
|
||||||
|
|
@ -39,12 +40,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754354451615,
|
"createdTime": 1754354451615,
|
||||||
"modifiedTime": 1754355901649,
|
"modifiedTime": 1755943523928,
|
||||||
"lastModifiedBy": "Q9NoTaEarn3VMS6Z"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_key": "!items!y7ERWRIpJsdP9Re4"
|
"_key": "!items!y7ERWRIpJsdP9Re4"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,8 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"featureState": 1,
|
"featureState": 1,
|
||||||
"isMulticlass": false
|
"isMulticlass": false,
|
||||||
|
"linkedClass": "Compendium.daggerheart.classes.Item.vegl3bFOq3pcFTWT"
|
||||||
},
|
},
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"ownership": {
|
"ownership": {
|
||||||
|
|
@ -37,12 +38,12 @@
|
||||||
"compendiumSource": null,
|
"compendiumSource": null,
|
||||||
"duplicateSource": null,
|
"duplicateSource": null,
|
||||||
"exportSource": null,
|
"exportSource": null,
|
||||||
"coreVersion": "13.346",
|
"coreVersion": "13.347",
|
||||||
"systemId": "daggerheart",
|
"systemId": "daggerheart",
|
||||||
"systemVersion": "0.0.1",
|
"systemVersion": "1.1.0",
|
||||||
"createdTime": 1754174655078,
|
"createdTime": 1754174655078,
|
||||||
"modifiedTime": 1754236660088,
|
"modifiedTime": 1755943467695,
|
||||||
"lastModifiedBy": "LgnbNMLaxandgMQq"
|
"lastModifiedBy": "tt3PwMBXcTLCtIQU"
|
||||||
},
|
},
|
||||||
"_id": "XTSODVM8st75Os8M",
|
"_id": "XTSODVM8st75Os8M",
|
||||||
"sort": 200000,
|
"sort": 200000,
|
||||||
|
|
|
||||||
14
styles/less/global/enrichment.less
Normal file
14
styles/less/global/enrichment.less
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
.measured-template-button,
|
||||||
|
.enriched-damage-button,
|
||||||
|
.duality-roll-button {
|
||||||
|
display: inline;
|
||||||
|
|
||||||
|
&.inline {
|
||||||
|
min-height: unset;
|
||||||
|
height: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
@import './dialog.less';
|
@import './dialog.less';
|
||||||
@import './chat.less';
|
@import './chat.less';
|
||||||
@import './elements.less';
|
@import './elements.less';
|
||||||
|
@import './enrichment.less';
|
||||||
@import './tab-navigation.less';
|
@import './tab-navigation.less';
|
||||||
@import './tab-form-footer.less';
|
@import './tab-form-footer.less';
|
||||||
@import './tab-actions.less';
|
@import './tab-actions.less';
|
||||||
|
|
|
||||||
|
|
@ -356,6 +356,8 @@
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-rows: 0fr;
|
grid-template-rows: 0fr;
|
||||||
transition: all 0.3s ease-in-out;
|
transition: all 0.3s ease-in-out;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
.wrapper {
|
.wrapper {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
display: grid;
|
display: grid;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"id": "daggerheart",
|
"id": "daggerheart",
|
||||||
"title": "Daggerheart",
|
"title": "Daggerheart",
|
||||||
"description": "An unofficial implementation of the Daggerheart system",
|
"description": "An unofficial implementation of the Daggerheart system",
|
||||||
"version": "1.1.0",
|
"version": "1.1.1",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "13",
|
"minimum": "13",
|
||||||
"verified": "13.347",
|
"verified": "13.347",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue