diff --git a/module/applications/dialogs/damageReductionDialog.mjs b/module/applications/dialogs/damageReductionDialog.mjs index d8541396..b64149c0 100644 --- a/module/applications/dialogs/damageReductionDialog.mjs +++ b/module/applications/dialogs/damageReductionDialog.mjs @@ -39,7 +39,7 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap this.availableStressReductions = Object.keys(actor.system.rules.damageReduction.stressDamageReduction).reduce( (acc, key) => { const dr = actor.system.rules.damageReduction.stressDamageReduction[key]; - if (dr.enabled) { + if (dr.cost) { if (acc === null) acc = {}; const damage = damageKeyToNumber(key); @@ -260,7 +260,7 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap const reducedDamage = currentDamage !== this.damage ? getDamageLabel(currentDamage) : null; const currentDamageLabel = reducedDamage ?? getDamageLabel(this.damage); - if (stressReduction.from !== currentDamageLabel) return; + if (!stressReduction.any && stressReduction.from !== currentDamageLabel) return; stressReduction.selected = true; this.render(); diff --git a/module/data/fields/action/damageField.mjs b/module/data/fields/action/damageField.mjs index 44ac70f1..cf327204 100644 --- a/module/data/fields/action/damageField.mjs +++ b/module/data/fields/action/damageField.mjs @@ -10,7 +10,7 @@ export default class DamageField extends fields.SchemaField { initial: false, label: 'DAGGERHEART.ACTIONS.Settings.includeBase.label' }), - direct: new fields.BooleanField({ initial: false, label: "DAGGERHEART.CONFIG.DamageType.direct.name" }) + direct: new fields.BooleanField({ initial: false, label: 'DAGGERHEART.CONFIG.DamageType.direct.name' }) }; super(damageFields, options, context); } @@ -30,7 +30,7 @@ export class DHActionDiceData extends foundry.abstract.DataModel { bonus: new fields.NumberField({ nullable: true, initial: null, label: 'Bonus' }), custom: new fields.SchemaField({ enabled: new fields.BooleanField({ label: 'Custom Formula' }), - formula: new FormulaField({ label: 'Formula' }) + formula: new FormulaField({ label: 'Formula', initial: '' }) }) }; } diff --git a/module/data/fields/actionField.mjs b/module/data/fields/actionField.mjs index a960fea1..d2fdc6c8 100644 --- a/module/data/fields/actionField.mjs +++ b/module/data/fields/actionField.mjs @@ -82,6 +82,7 @@ export class ActionsField extends MappingField { */ export class ActionField extends foundry.data.fields.ObjectField { getModel(value) { + if (value && !value.type) value.type = 'attack'; return game.system.api.models.actions.actionsTypes[value.type] ?? null; } @@ -99,7 +100,6 @@ export class ActionField extends foundry.data.fields.ObjectField { /** @override */ initialize(value, model, options = {}) { - if (value && !value.type) value.type = 'attack'; const cls = this.getModel(value); if (cls) return new cls(value, { parent: model, ...options }); return foundry.utils.deepClone(value); diff --git a/module/data/fields/actorField.mjs b/module/data/fields/actorField.mjs index 3c65b984..f9eeeb90 100644 --- a/module/data/fields/actorField.mjs +++ b/module/data/fields/actorField.mjs @@ -20,7 +20,6 @@ const resourceField = (max = 0, initial = 0, label, reverse = false, maxLabel) = const stressDamageReductionRule = localizationPath => new fields.SchemaField({ - enabled: new fields.BooleanField({ required: true, initial: false }), cost: new fields.NumberField({ integer: true, label: `${localizationPath}.label`, diff --git a/module/dice/dhRoll.mjs b/module/dice/dhRoll.mjs index 88d40c32..6d691c20 100644 --- a/module/dice/dhRoll.mjs +++ b/module/dice/dhRoll.mjs @@ -227,13 +227,13 @@ export const registerRollDiceHooks = () => { if (!actor) return; if (config.roll.isCritical || config.roll.result.duality === 1) updates.push({ key: 'hope', value: 1, total: -1, enabled: true }); - if (config.roll.isCritical) updates.push({ key: 'stress', value: -1, total: 1, enabled: true }); + if (config.roll.isCritical) updates.push({ key: 'stress', value: 1, total: -1, enabled: true }); if (config.roll.result.duality === -1) updates.push({ key: 'fear', value: 1, total: -1, enabled: true }); if (config.rerolledRoll) { if (config.rerolledRoll.isCritical || config.rerolledRoll.result.duality === 1) updates.push({ key: 'hope', value: -1, total: 1, enabled: true }); - if (config.rerolledRoll.isCritical) updates.push({ key: 'stress', value: 1, total: -1, enabled: true }); + if (config.rerolledRoll.isCritical) updates.push({ key: 'stress', value: -1, total: 1, enabled: true }); if (config.rerolledRoll.result.duality === -1) updates.push({ key: 'fear', value: -1, total: 1, enabled: true }); } diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index 439f1780..6f4e5a26 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -198,7 +198,7 @@ foundry.dice.terms.Die.prototype.selfCorrecting = function (modifier) { }; export const getDamageKey = damage => { - return ['none', 'minor', 'major', 'severe'][damage]; + return ['none', 'minor', 'major', 'severe', 'any'][damage]; }; export const getDamageLabel = damage => { @@ -210,7 +210,8 @@ export const damageKeyToNumber = key => { none: 0, minor: 1, major: 2, - severe: 3 + severe: 3, + any: 4 }[key]; }; diff --git a/module/systemRegistration/settings.mjs b/module/systemRegistration/settings.mjs index d100bcc0..3d9ffc19 100644 --- a/module/systemRegistration/settings.mjs +++ b/module/systemRegistration/settings.mjs @@ -86,7 +86,7 @@ const registerMenus = () => { hint: game.i18n.localize('DAGGERHEART.SETTINGS.Menu.variantRules.hint'), icon: CONFIG.DH.SETTINGS.menu.VariantRules.Icon, type: DhVariantRuleSettings, - restricted: false + restricted: true }); }; diff --git a/src/packs/domains/domainCard_Get_Back_Up_BFWN2cObMdlk9uVz.json b/src/packs/domains/domainCard_Get_Back_Up_BFWN2cObMdlk9uVz.json index a2e1366b..91b55807 100644 --- a/src/packs/domains/domainCard_Get_Back_Up_BFWN2cObMdlk9uVz.json +++ b/src/packs/domains/domainCard_Get_Back_Up_BFWN2cObMdlk9uVz.json @@ -45,12 +45,6 @@ "mode": 5, "value": "1", "priority": null - }, - { - "key": "system.rules.damageReduction.stressDamageReduction.severe.enabled", - "mode": 5, - "value": "1", - "priority": null } ], "disabled": false, diff --git a/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json b/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json index 4a6d5a74..2b7ccf04 100644 --- a/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json +++ b/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json @@ -101,12 +101,6 @@ "mode": 5, "value": "1", "priority": null - }, - { - "key": "system.rules.damageReduction.stressDamageReduction.any.enabled", - "mode": 5, - "value": "1", - "priority": null } ], "disabled": false, diff --git a/styles/less/global/elements.less b/styles/less/global/elements.less index b583d470..6b5d64c9 100755 --- a/styles/less/global/elements.less +++ b/styles/less/global/elements.less @@ -671,6 +671,10 @@ } } } + + + input { + display: none; + } } .tagify__dropdown { diff --git a/system.json b/system.json index 66a4cfdb..b26bb543 100644 --- a/system.json +++ b/system.json @@ -2,7 +2,7 @@ "id": "daggerheart", "title": "Daggerheart", "description": "An unofficial implementation of the Daggerheart system", - "version": "1.0.2", + "version": "1.0.4", "compatibility": { "minimum": "13", "verified": "13.347",