diff --git a/lang/en.json b/lang/en.json index 9b2b4872..86b4323c 100755 --- a/lang/en.json +++ b/lang/en.json @@ -192,9 +192,6 @@ }, "age": "Age", "backgroundQuestions": "Backgrounds", - "burden": { - "ignore": { "label": "Burden: Ignore", "hint": "Ignore burden rules" } - }, "companionFeatures": "Companion Features", "connections": "Connections", "contextMenu": { @@ -217,12 +214,6 @@ "maxEvasionBonus": "Max Evasion Increase", "maxHPBonus": "Max HP Increase", "pronouns": "Pronouns", - "roll": { - "guaranteedCritical": { - "label": "Guaranteed Critical", - "hint": "Set to 1 to always roll a critical" - } - }, "story": { "backgroundTitle": "Background", "characteristics": "Characteristics", @@ -455,10 +446,6 @@ "description": "Describe how you are preparing for the next day's adventure, then gain a Hope. If you choose to Prepare with one or more members of your party, you may each take two Hope.", "name": "Prepare" }, - "prepareWithFriends": { - "description": "Describe how you are preparing for the next day's adventure, then gain a Hope. If you choose to Prepare with one or more members of your party, you may each take two Hope.", - "name": "Prepare (with Friends)" - }, "repairArmor": { "description": "Describe how you spend time repairing your armor and clear all of its Armor Slots. You may also do this to an ally's armor instead.", "name": "Repair Armor" @@ -490,10 +477,6 @@ "prepare": { "name": "Prepare", "description": "Describe how you prepare yourself for the path ahead, then gain a Hope. If you choose to Prepare with one or more members of your party, you each gain 2 Hope." - }, - "prepareWithFriends": { - "name": "Prepare (with Friends)", - "description": "Describe how you prepare yourself for the path ahead, then gain a Hope. If you choose to Prepare with one or more members of your party, you each gain 2 Hope." } }, "refreshable": { @@ -1857,16 +1840,6 @@ "singular": "Adversary", "plural": "Adversaries" }, - "Attack": { - "hpDamageMultiplier": { - "label": "HP Damage Multiplier", - "hint": "Multiply any damage you deal by this number" - }, - "hpDamageTakenMultiplier": { - "label": "HP Damage Taken Multiplier", - "hint": "Multiply any damage dealt to you by this number" - } - }, "Bonuses": { "rest": { "downtimeAction": "Downtime Action", @@ -2051,40 +2024,16 @@ "reaction": "Reaction Roll" }, "Rules": { - "conditionImmunities": { - "hidden": "Condition Immunity: Hidden", - "restrained": "Condition Immunity: Restrained", - "vulnerable": "Condition Immunity: Vulnerable" - }, "damageReduction": { - "disabledArmor": { "label": "Disabled Armorslots" }, "increasePerArmorMark": { "label": "Damage Reduction per Armor Slot", "hint": "A used armor slot normally reduces damage by one step. This value increases the number of steps damage is reduced by." }, - "magical": { - "label": "Daamge Reduction: Only Magical", - "hint": "Armor can only be used to reduce magical damage" - }, "maxArmorMarkedBonus": "Max Armor Used", "maxArmorMarkedStress": { "label": "Max Armor Used With Stress", "hint": "If this value is set you can use up to that much stress to spend additional Armor Marks beyond your normal maximum." }, - "reduceSeverity": { - "magical": { - "label": "Reduce Damage Severity: Magical", - "hint": "Lowers any magical damage received by the set amount of severity degrees" - }, - "physical": { - "label": "Reduce Damage Severity: Physical", - "hint": "Lowers any physical damage received by the set amount of severity degrees" - } - }, - "physical": { - "label": "Damage Reduction: Only Physical", - "hint": "Armor can only be used to reduce physical damage" - }, "stress": { "any": { "label": "Stress Damage Reduction: Any", @@ -2102,12 +2051,6 @@ "label": "Stress Damage Reduction: Minor", "hint": "The cost in stress you can pay to reduce minor damage to none." } - }, - "thresholdImmunities": { - "minor": { - "label": "Threshold Immunities: Minor", - "hint": "Automatically ignores minor damage" - } } }, "attack": { @@ -2613,8 +2556,6 @@ "resetMovesTitle": "Reset {type} Downtime Moves", "resetItemFeaturesTitle": "Reset {type}", "resetMovesText": "Are you sure you want to reset?", - "deleteItemTitle": "Delete Homebrew Item", - "deleteItemText": "Are you sure you want to delete the item?", "FIELDS": { "maxFear": { "label": "Max Fear" }, "maxHope": { "label": "Max Hope" }, diff --git a/module/applications/settings/homebrewSettings.mjs b/module/applications/settings/homebrewSettings.mjs index 51bf439e..add3c9e1 100644 --- a/module/applications/settings/homebrewSettings.mjs +++ b/module/applications/settings/homebrewSettings.mjs @@ -103,12 +103,6 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli ? { id: this.selected.adversaryType, ...this.settings.adversaryTypes[this.selected.adversaryType] } : null; break; - case 'downtime': - context.restOptions = { - shortRest: CONFIG.DH.GENERAL.defaultRestOptions.shortRest(), - longRest: CONFIG.DH.GENERAL.defaultRestOptions.longRest() - }; - break; } return context; @@ -231,15 +225,6 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli } static async removeItem(_, target) { - const confirmed = await foundry.applications.api.DialogV2.confirm({ - window: { - title: game.i18n.localize(`DAGGERHEART.SETTINGS.Homebrew.deleteItemTitle`) - }, - content: game.i18n.localize('DAGGERHEART.SETTINGS.Homebrew.deleteItemText') - }); - - if (!confirmed) return; - const { type, id } = target.dataset; const isDowntime = ['shortRest', 'longRest'].includes(type); const path = isDowntime ? `restMoves.${type}.moves` : `itemFeatures.${type}`; diff --git a/module/applications/sheets-configs/activeEffectConfig.mjs b/module/applications/sheets-configs/activeEffectConfig.mjs index 8abc0b79..9b8edd8a 100644 --- a/module/applications/sheets-configs/activeEffectConfig.mjs +++ b/module/applications/sheets-configs/activeEffectConfig.mjs @@ -5,24 +5,6 @@ export default class DhActiveEffectConfig extends foundry.applications.sheets.Ac super(options); const ignoredActorKeys = ['config', 'DhEnvironment', 'DhParty']; - - const getAllLeaves = (root, group, parentPath = '') => { - const leaves = []; - const rootKey = `${parentPath ? `${parentPath}.` : ''}${root.name}`; - for (const field of Object.values(root.fields)) { - if (field instanceof foundry.data.fields.SchemaField) - leaves.push(...getAllLeaves(field, group, rootKey)); - else - leaves.push({ - value: `${rootKey}.${field.name}`, - label: game.i18n.localize(field.label), - hint: game.i18n.localize(field.hint), - group - }); - } - - return leaves; - }; this.changeChoices = Object.keys(game.system.api.models.actors).reduce((acc, key) => { if (ignoredActorKeys.includes(key)) return acc; @@ -48,10 +30,7 @@ export default class DhActiveEffectConfig extends foundry.applications.sheets.Ac return { value: joined, label: getLabel(joined), group }; }); - const bonuses = getAllLeaves(model.schema.fields.bonuses, group); - const rules = getAllLeaves(model.schema.fields.rules, group); - - acc.push(...bars, ...values, ...rules, ...bonuses); + acc.push(...bars, ...values); return acc; }, []); diff --git a/module/applications/sheets/api/application-mixin.mjs b/module/applications/sheets/api/application-mixin.mjs index 49f7dcf0..3c0444eb 100644 --- a/module/applications/sheets/api/application-mixin.mjs +++ b/module/applications/sheets/api/application-mixin.mjs @@ -433,7 +433,7 @@ export default function DHApplicationMixin(Base) { icon: 'fa-solid fa-lightbulb', condition: target => { const doc = getDocFromElementSync(target); - return doc && !doc.disabled && doc.type !== 'beastform'; + return doc && !doc.disabled; }, callback: async target => (await getDocFromElement(target)).update({ disabled: true }) }, @@ -442,7 +442,7 @@ export default function DHApplicationMixin(Base) { icon: 'fa-regular fa-lightbulb', condition: target => { const doc = getDocFromElementSync(target); - return doc && doc.disabled && doc.type !== 'beastform'; + return doc && doc.disabled; }, callback: async target => (await getDocFromElement(target)).update({ disabled: false }) } @@ -536,10 +536,6 @@ export default function DHApplicationMixin(Base) { options.push({ name: 'CONTROLS.CommonDelete', icon: 'fa-solid fa-trash', - condition: target => { - const doc = getDocFromElementSync(target); - return doc && doc.type !== 'beastform'; - }, callback: async (target, event) => { const doc = await getDocFromElement(target); if (event.shiftKey) return doc.delete(); diff --git a/module/applications/sheets/api/item-attachment-sheet.mjs b/module/applications/sheets/api/item-attachment-sheet.mjs index bcf2fc3c..2898f5ac 100644 --- a/module/applications/sheets/api/item-attachment-sheet.mjs +++ b/module/applications/sheets/api/item-attachment-sheet.mjs @@ -1,6 +1,7 @@ export default function ItemAttachmentSheet(Base) { return class extends Base { static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, dragDrop: [ ...(super.DEFAULT_OPTIONS.dragDrop || []), { dragSelector: null, dropSelector: '.attachments-section' } diff --git a/module/config/generalConfig.mjs b/module/config/generalConfig.mjs index a38d1c8a..5e5eecfb 100644 --- a/module/config/generalConfig.mjs +++ b/module/config/generalConfig.mjs @@ -331,56 +331,7 @@ export const defaultRestOptions = { icon: 'fa-solid fa-dumbbell', img: 'icons/skills/trades/academics-merchant-scribe.webp', description: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.prepare.description'), - actions: { - prepare: { - type: 'healing', - systemPath: 'restMoves.shortRest.moves.prepare.actions', - name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.prepare.name'), - img: 'icons/skills/trades/academics-merchant-scribe.webp', - actionType: 'action', - chatDisplay: false, - target: { - type: 'self' - }, - damage: { - parts: [ - { - applyTo: healingTypes.hope.id, - value: { - custom: { - enabled: true, - formula: '1' - } - } - } - ] - } - }, - prepareWithFriends: { - type: 'healing', - systemPath: 'restMoves.shortRest.moves.prepare.actions', - name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.shortRest.prepareWithFriends.name'), - img: 'icons/skills/trades/academics-merchant-scribe.webp', - actionType: 'action', - chatDisplay: false, - target: { - type: 'self' - }, - damage: { - parts: [ - { - applyTo: healingTypes.hope.id, - value: { - custom: { - enabled: true, - formula: '2' - } - } - } - ] - } - } - }, + actions: {}, effects: [] } }), @@ -495,56 +446,7 @@ export const defaultRestOptions = { icon: 'fa-solid fa-dumbbell', img: 'icons/skills/trades/academics-merchant-scribe.webp', description: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.prepare.description'), - actions: { - prepare: { - type: 'healing', - systemPath: 'restMoves.longRest.moves.prepare.actions', - name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.prepare.name'), - img: 'icons/skills/trades/academics-merchant-scribe.webp', - actionType: 'action', - chatDisplay: false, - target: { - type: 'self' - }, - damage: { - parts: [ - { - applyTo: healingTypes.hope.id, - value: { - custom: { - enabled: true, - formula: '1' - } - } - } - ] - } - }, - prepareWithFriends: { - type: 'healing', - systemPath: 'restMoves.longRest.moves.prepare.actions', - name: game.i18n.localize('DAGGERHEART.APPLICATIONS.Downtime.longRest.prepareWithFriends.name'), - img: 'icons/skills/trades/academics-merchant-scribe.webp', - actionType: 'action', - chatDisplay: false, - target: { - type: 'self' - }, - damage: { - parts: [ - { - applyTo: healingTypes.hope.id, - value: { - custom: { - enabled: true, - formula: '2' - } - } - } - ] - } - } - }, + actions: {}, effects: [] }, workOnAProject: { diff --git a/module/data/actor/base.mjs b/module/data/actor/base.mjs index 5e16bac9..08308eab 100644 --- a/module/data/actor/base.mjs +++ b/module/data/actor/base.mjs @@ -29,40 +29,17 @@ const resistanceField = (resistanceLabel, immunityLabel, reductionLabel) => /* Common rules applying to Characters and Adversaries */ export const commonActorRules = (extendedData = { damageReduction: {}, attack: { damage: {} } }) => ({ conditionImmunities: new fields.SchemaField({ - hidden: new fields.BooleanField({ - initial: false, - label: 'DAGGERHEART.GENERAL.Rules.conditionImmunities.hidden' - }), - restrained: new fields.BooleanField({ - initial: false, - label: 'DAGGERHEART.GENERAL.Rules.conditionImmunities.restrained' - }), - vulnerable: new fields.BooleanField({ - initial: false, - label: 'DAGGERHEART.GENERAL.Rules.conditionImmunities.vulnerable' - }) + hidden: new fields.BooleanField({ initial: false }), + restrained: new fields.BooleanField({ initial: false }), + vulnerable: new fields.BooleanField({ initial: false }) }), damageReduction: new fields.SchemaField({ thresholdImmunities: new fields.SchemaField({ - minor: new fields.BooleanField({ - initial: false, - label: 'DAGGERHEART.GENERAL.Rules.damageReduction.thresholdImmunities.minor.label', - hint: 'DAGGERHEART.GENERAL.Rules.damageReduction.thresholdImmunities.minor.hint' - }) + minor: new fields.BooleanField({ initial: false }) }), reduceSeverity: new fields.SchemaField({ - magical: new fields.NumberField({ - initial: 0, - min: 0, - label: 'DAGGERHEART.GENERAL.Rules.damageReduction.reduceSeverity.magical.label', - hint: 'DAGGERHEART.GENERAL.Rules.damageReduction.reduceSeverity.magical.hint' - }), - physical: new fields.NumberField({ - initial: 0, - min: 0, - label: 'DAGGERHEART.GENERAL.Rules.damageReduction.reduceSeverity.physical.label', - hint: 'DAGGERHEART.GENERAL.Rules.damageReduction.reduceSeverity.physical.hint' - }) + magical: new fields.NumberField({ initial: 0, min: 0 }), + physical: new fields.NumberField({ initial: 0, min: 0 }) }), ...(extendedData.damageReduction ?? {}) }), @@ -72,16 +49,12 @@ export const commonActorRules = (extendedData = { damageReduction: {}, attack: { hpDamageMultiplier: new fields.NumberField({ required: true, nullable: false, - initial: 1, - label: 'DAGGERHEART.GENERAL.Attack.hpDamageMultiplier.label', - hint: 'DAGGERHEART.GENERAL.Attack.hpDamageMultiplier.hint' + initial: 1 }), hpDamageTakenMultiplier: new fields.NumberField({ required: true, nullable: false, - initial: 1, - label: 'DAGGERHEART.GENERAL.Attack.hpDamageTakenMultiplier.label', - hint: 'DAGGERHEART.GENERAL.Attack.hpDamageTakenMultiplier.hint' + initial: 1 }), ...(extendedData.attack?.damage ?? {}) }) diff --git a/module/data/actor/character.mjs b/module/data/actor/character.mjs index c79bb078..3913d426 100644 --- a/module/data/actor/character.mjs +++ b/module/data/actor/character.mjs @@ -225,16 +225,8 @@ export default class DhCharacter extends BaseDataActor { rules: new fields.SchemaField({ ...commonActorRules({ damageReduction: { - magical: new fields.BooleanField({ - initial: false, - label: 'DAGGERHEART.GENERAL.Rules.damageReduction.magical.label', - hint: 'DAGGERHEART.GENERAL.Rules.damageReduction.magical.hint' - }), - physical: new fields.BooleanField({ - initial: false, - label: 'DAGGERHEART.GENERAL.Rules.damageReduction.physical.label', - hint: 'DAGGERHEART.GENERAL.Rules.damageReduction.physical.hint' - }), + magical: new fields.BooleanField({ initial: false }), + physical: new fields.BooleanField({ initial: false }), maxArmorMarked: new fields.SchemaField({ value: new fields.NumberField({ required: true, @@ -264,10 +256,7 @@ export default class DhCharacter extends BaseDataActor { label: 'DAGGERHEART.GENERAL.Rules.damageReduction.increasePerArmorMark.label', hint: 'DAGGERHEART.GENERAL.Rules.damageReduction.increasePerArmorMark.hint' }), - disabledArmor: new fields.BooleanField({ - intial: false, - label: 'DAGGERHEART.GENERAL.Rules.damageReduction.disabledArmor.label' - }) + disabledArmor: new fields.BooleanField({ intial: false }) }, attack: { damage: { @@ -315,14 +304,12 @@ export default class DhCharacter extends BaseDataActor { label: 'DAGGERHEART.ACTORS.Character.defaultFearDice' }) }), + runeWard: new fields.BooleanField({ initial: false }), burden: new fields.SchemaField({ - ignore: new fields.BooleanField({ label: 'DAGGERHEART.ACTORS.Character.burden.ignore.label' }) + ignore: new fields.BooleanField() }), roll: new fields.SchemaField({ - guaranteedCritical: new fields.BooleanField({ - label: 'DAGGERHEART.ACTORS.Character.roll.guaranteedCritical.label', - hint: 'DAGGERHEART.ACTORS.Character.roll.guaranteedCritical.hint' - }) + guaranteedCritical: new fields.BooleanField() }) }) }; diff --git a/module/data/actor/companion.mjs b/module/data/actor/companion.mjs index 40cece72..1c25b48c 100644 --- a/module/data/actor/companion.mjs +++ b/module/data/actor/companion.mjs @@ -53,18 +53,9 @@ export default class DhCompanion extends BaseDataActor { ), rules: new fields.SchemaField({ conditionImmunities: new fields.SchemaField({ - hidden: new fields.BooleanField({ - initial: false, - label: 'DAGGERHEART.GENERAL.Rules.conditionImmunities.hidden' - }), - restrained: new fields.BooleanField({ - initial: false, - label: 'DAGGERHEART.GENERAL.Rules.conditionImmunities.restrained' - }), - vulnerable: new fields.BooleanField({ - initial: false, - label: 'DAGGERHEART.GENERAL.Rules.conditionImmunities.vulnerable' - }) + hidden: new fields.BooleanField({ initial: false }), + restrained: new fields.BooleanField({ initial: false }), + vulnerable: new fields.BooleanField({ initial: false }) }) }), attack: new ActionField({ diff --git a/module/data/fields/action/damageField.mjs b/module/data/fields/action/damageField.mjs index efad726c..56eb51e5 100644 --- a/module/data/fields/action/damageField.mjs +++ b/module/data/fields/action/damageField.mjs @@ -109,8 +109,8 @@ export default class DamageField extends fields.SchemaField { ); else { const configDamage = foundry.utils.deepClone(config.damage); - const hpDamageMultiplier = config.actionActor?.system.rules?.attack?.damage?.hpDamageMultiplier ?? 1; - const hpDamageTakenMultiplier = actor.system.rules?.attack?.damage?.hpDamageTakenMultiplier; + const hpDamageMultiplier = config.actionActor?.system.rules.attack.damage.hpDamageMultiplier ?? 1; + const hpDamageTakenMultiplier = actor.system.rules.attack.damage.hpDamageTakenMultiplier; if (configDamage.hitPoints) { for (const part of configDamage.hitPoints.parts) { part.total = Math.ceil(part.total * hpDamageMultiplier * hpDamageTakenMultiplier); diff --git a/module/data/item/beastform.mjs b/module/data/item/beastform.mjs index 3a41aa7e..dd491169 100644 --- a/module/data/item/beastform.mjs +++ b/module/data/item/beastform.mjs @@ -253,20 +253,4 @@ export default class DHBeastform extends BaseDataItem { return false; } - - _onCreate(_data, _options, userId) { - if (!this.actor && game.user.id === userId) { - const hasBeastformEffect = this.parent.effects.some(x => x.type === 'beastform'); - if (!hasBeastformEffect) - this.parent.createEmbeddedDocuments('ActiveEffect', [ - { - type: 'beastform', - name: game.i18n.localize('DAGGERHEART.ITEMS.Beastform.beastformEffect'), - img: 'icons/creatures/abilities/paw-print-pair-purple.webp' - } - ]); - - return; - } - } } diff --git a/module/documents/activeEffect.mjs b/module/documents/activeEffect.mjs index d0e329ff..5e9b0c3b 100644 --- a/module/documents/activeEffect.mjs +++ b/module/documents/activeEffect.mjs @@ -61,15 +61,14 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect { update.img = 'icons/magic/life/heart-cross-blue.webp'; } - const statuses = Object.keys(data.statuses ?? {}); const immuneStatuses = - statuses.filter( + data.statuses?.filter( status => this.parent.system.rules?.conditionImmunities && this.parent.system.rules.conditionImmunities[status] ) ?? []; if (immuneStatuses.length > 0) { - update.statuses = statuses.filter(x => !immuneStatuses.includes(x)); + update.statuses = data.statuses.filter(x => !immuneStatuses.includes(x)); const conditions = CONFIG.DH.GENERAL.conditions(); const scrollingTexts = immuneStatuses.map(status => ({ text: game.i18n.format('DAGGERHEART.ACTIVEEFFECT.immuneStatusText', { diff --git a/src/packs/domains/domainCard_Second_Wind_ffPbSEvLuFrFsMxl.json b/src/packs/domains/domainCard_Second_Wind_ffPbSEvLuFrFsMxl.json index 8dc535cc..a8a21ec3 100644 --- a/src/packs/domains/domainCard_Second_Wind_ffPbSEvLuFrFsMxl.json +++ b/src/packs/domains/domainCard_Second_Wind_ffPbSEvLuFrFsMxl.json @@ -170,8 +170,7 @@ "value": 1, "recovery": "shortRest", "max": "1", - "icon": "", - "progression": "decreasing" + "icon": "" }, "attribution": { "source": "Daggerheart SRD", diff --git a/styles/less/dialog/dice-roll/roll-selection.less b/styles/less/dialog/dice-roll/roll-selection.less index 7fdae77a..0f082460 100644 --- a/styles/less/dialog/dice-roll/roll-selection.less +++ b/styles/less/dialog/dice-roll/roll-selection.less @@ -17,9 +17,7 @@ .dialog-header-inner { display: flex; - flex-direction: column; - align-items: center; - gap: 2px; + justify-content: center; } h1 { @@ -47,29 +45,6 @@ } } - .reaction-chip { - display: flex; - align-items: center; - border-radius: 5px; - width: fit-content; - gap: 5px; - cursor: pointer; - padding: 5px; - background: light-dark(@dark-blue-10, @golden-10); - color: light-dark(@dark-blue, @golden); - - .label { - font-style: normal; - font-weight: 400; - font-size: var(--font-size-14); - line-height: 17px; - } - - &.selected { - background: light-dark(@dark-blue-40, @golden-40); - } - } - .tag-team-controller { display: flex; align-items: center; diff --git a/templates/dialogs/dice-roll/header.hbs b/templates/dialogs/dice-roll/header.hbs index 0cb58a01..21967655 100644 --- a/templates/dialogs/dice-roll/header.hbs +++ b/templates/dialogs/dice-roll/header.hbs @@ -1,12 +1,17 @@
-

{{ifThen rollConfig.headerTitle rollConfig.headerTitle rollConfig.title}}

- {{#if showReaction}} -
- - {{localize "DAGGERHEART.GENERAL.reactionRoll"}} -
- {{/if}} +

+ {{#if reactionOverride}} + {{localize "DAGGERHEART.CONFIG.FeatureForm.reaction"}} + {{else}} + {{ifThen rollConfig.headerTitle rollConfig.headerTitle rollConfig.title}} + {{/if}} + {{#if showReaction}} + + {{/if}} +

{{#if (and @root.hasRoll @root.activeTagTeamRoll)}}
diff --git a/templates/dialogs/dice-roll/rollSelection.hbs b/templates/dialogs/dice-roll/rollSelection.hbs index 5139c58a..f31a4fa8 100644 --- a/templates/dialogs/dice-roll/rollSelection.hbs +++ b/templates/dialogs/dice-roll/rollSelection.hbs @@ -118,7 +118,7 @@ {{#if name}}
- {{name}} {{numberFormat value sign=true}} + {{name}} +{{value}}
{{/if}} {{/each}} diff --git a/templates/sheets/actors/character/sidebar.hbs b/templates/sheets/actors/character/sidebar.hbs index b2757b55..24e68e02 100644 --- a/templates/sheets/actors/character/sidebar.hbs +++ b/templates/sheets/actors/character/sidebar.hbs @@ -145,7 +145,7 @@ {{#each document.system.experiences as |experience id|}}
- {{numberFormat experience.value sign=true}} + +{{experience.value}} {{experience.name}}
diff --git a/templates/sheets/global/partials/inventory-item-V2.hbs b/templates/sheets/global/partials/inventory-item-V2.hbs index 76e13a5c..dbacd1e4 100644 --- a/templates/sheets/global/partials/inventory-item-V2.hbs +++ b/templates/sheets/global/partials/inventory-item-V2.hbs @@ -113,7 +113,7 @@ Parameters: data-tooltip="DAGGERHEART.UI.Tooltip.{{ifThen item.system.inVault 'sendToLoadout' 'sendToVault' }}"> - {{else if (and (eq type 'effect') (not (eq item.type 'beastform')))}} + {{else if (eq type 'effect')}} diff --git a/tools/run-start.mjs b/tools/run-start.mjs index 3f6b25cb..e620d13f 100644 --- a/tools/run-start.mjs +++ b/tools/run-start.mjs @@ -18,7 +18,7 @@ const foundryPath = process.env.FOUNDRY_MAIN_PATH || '../../../../FoundryDev/mai const dataPath = process.env.FOUNDRY_DATA_PATH || '../../../'; // Run the original command with proper environment -const args = ['rollup -c --watch', `node "\"${foundryPath}\"" --dataPath="${dataPath}" --noupnp`, 'gulp']; +const args = ['rollup -c --watch', `node "${foundryPath}" --dataPath="${dataPath}" --noupnp`, 'gulp']; spawn('npx', ['concurrently', ...args.map(arg => `"${arg}"`)], { stdio: 'inherit',