From f74954b7186813a1f4a64a976e2f2a6e4f650bbe Mon Sep 17 00:00:00 2001 From: Dapoolp Date: Sun, 27 Jul 2025 12:58:28 +0200 Subject: [PATCH] Action Save difficulty --- module/applications/sheets-configs/action-config.mjs | 1 + module/applications/sheets/actors/character.mjs | 2 +- module/data/action/baseAction.mjs | 2 +- module/data/fields/action/saveField.mjs | 2 +- module/data/fields/action/targetField.mjs | 3 +-- module/documents/actor.mjs | 4 ++++ templates/actionTypes/save.hbs | 2 +- 7 files changed, 10 insertions(+), 6 deletions(-) diff --git a/module/applications/sheets-configs/action-config.mjs b/module/applications/sheets-configs/action-config.mjs index 070db23f..ed81b7e9 100644 --- a/module/applications/sheets-configs/action-config.mjs +++ b/module/applications/sheets-configs/action-config.mjs @@ -110,6 +110,7 @@ export default class DHActionConfig extends DaggerheartSheet(ApplicationV2) { context.costOptions = this.getCostOptions(); context.disableOption = this.disableOption.bind(this); context.isNPC = this.action.actor?.isNPC; + context.baseSaveDifficulty = this.action.actor?.baseSaveDifficulty; context.hasRoll = this.action.hasRoll; const settingsTiers = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LevelTiers).tiers; diff --git a/module/applications/sheets/actors/character.mjs b/module/applications/sheets/actors/character.mjs index d6c61718..e97d10c6 100644 --- a/module/applications/sheets/actors/character.mjs +++ b/module/applications/sheets/actors/character.mjs @@ -311,7 +311,7 @@ export default class CharacterSheet extends DHBaseActorSheet { icon: 'fa-solid fa-hands', condition: target => { const doc = getDocFromElementSync(target); - return doc && system.equipped; + return doc && doc.system.equipped; }, callback: (target, event) => CharacterSheet.#toggleEquipItem.call(this, event, target) } diff --git a/module/data/action/baseAction.mjs b/module/data/action/baseAction.mjs index 779e5268..8b9888f5 100644 --- a/module/data/action/baseAction.mjs +++ b/module/data/action/baseAction.mjs @@ -305,7 +305,7 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel title: 'Roll Save', roll: { trait: this.save.trait, - difficulty: this.save.difficulty, + difficulty: this.save.difficulty ?? this.actor?.baseSaveDifficulty, type: 'reaction' }, data: target.actor.getRollData() diff --git a/module/data/fields/action/saveField.mjs b/module/data/fields/action/saveField.mjs index c2d84157..e93a82a9 100644 --- a/module/data/fields/action/saveField.mjs +++ b/module/data/fields/action/saveField.mjs @@ -8,7 +8,7 @@ export default class SaveField extends fields.SchemaField { initial: null, choices: CONFIG.DH.ACTOR.abilities }), - difficulty: new fields.NumberField({ nullable: true, initial: 10, integer: true, min: 0 }), + difficulty: new fields.NumberField({ nullable: true, initial: null, integer: true, min: 0 }), damageMod: new fields.StringField({ initial: CONFIG.DH.ACTIONS.damageOnSave.none.id, choices: CONFIG.DH.ACTIONS.damageOnSave diff --git a/module/data/fields/action/targetField.mjs b/module/data/fields/action/targetField.mjs index 61f79196..41f931a6 100644 --- a/module/data/fields/action/targetField.mjs +++ b/module/data/fields/action/targetField.mjs @@ -6,8 +6,7 @@ export default class TargetField extends fields.SchemaField { type: new fields.StringField({ choices: CONFIG.DH.ACTIONS.targetTypes, initial: CONFIG.DH.ACTIONS.targetTypes.any.id, - nullable: true, - initial: null + nullable: true }), amount: new fields.NumberField({ nullable: true, initial: null, integer: true, min: 0 }) }; diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs index 67a5e0b3..5a26ded6 100644 --- a/module/documents/actor.mjs +++ b/module/documents/actor.mjs @@ -385,6 +385,10 @@ export default class DhpActor extends Actor { return CONFIG.Dice.daggerheart[['character', 'companion'].includes(this.type) ? 'DualityRoll' : 'D20Roll']; } + get baseSaveDifficulty() { + return this.system.difficulty ?? 10; + } + getRollData() { const rollData = super.getRollData(); rollData.system = this.system.getRollData(); diff --git a/templates/actionTypes/save.hbs b/templates/actionTypes/save.hbs index ff5be220..90bc0483 100644 --- a/templates/actionTypes/save.hbs +++ b/templates/actionTypes/save.hbs @@ -1,6 +1,6 @@
{{localize "DAGGERHEART.GENERAL.save"}} {{formField fields.trait label="Trait" name="save.trait" value=source.trait localize=true}} - {{formField fields.difficulty label="Difficulty" name="save.difficulty" value=source.difficulty disabled=(not source.trait)}} + {{formField fields.difficulty label="Difficulty" name="save.difficulty" value=source.difficulty disabled=(not source.trait) placeholder=@root.baseSaveDifficulty}} {{formField fields.damageMod label="Damage on Save" name="save.damageMod" value=source.damageMod localize=true disabled=(not source.trait)}}
\ No newline at end of file