diff --git a/daggerheart.mjs b/daggerheart.mjs index b1b2a0ca..f75ff1da 100644 --- a/daggerheart.mjs +++ b/daggerheart.mjs @@ -309,7 +309,7 @@ Hooks.on('chatMessage', (_, message) => { ? CONFIG.DH.ACTIONS.advantageState.disadvantage.value : undefined; const difficulty = rollCommand.difficulty; - const grantResources = Boolean(rollCommand.grantResources); + const grantResources = rollCommand.grantResources; const target = getCommandTarget({ allowNull: true }); const title = diff --git a/lang/en.json b/lang/en.json index 4d6815c3..e358977f 100755 --- a/lang/en.json +++ b/lang/en.json @@ -2111,7 +2111,6 @@ "tier4": "tier 4", "domains": "Domains", "downtime": "Downtime", - "itemFeatures": "Item Features", "roll": "Roll", "rules": "Rules", "partyMembers": "Party Members", @@ -2120,7 +2119,8 @@ "questions": "Questions", "configuration": "Configuration", "base": "Base", - "triggers": "Triggers" + "triggers": "Triggers", + "deathMoves": "Deathmoves" }, "Tiers": { "singular": "Tier", @@ -2144,6 +2144,7 @@ "armorSlots": "Armor Slots", "artistAttribution": "Artwork By: {artist}", "attack": "Attack", + "automation": "Automation", "basics": "Basics", "bonus": "Bonus", "burden": "Burden", diff --git a/module/applications/dialogs/deathMove.mjs b/module/applications/dialogs/deathMove.mjs index 3eadede6..a9141158 100644 --- a/module/applications/dialogs/deathMove.mjs +++ b/module/applications/dialogs/deathMove.mjs @@ -43,7 +43,7 @@ export default class DhDeathMove extends HandlebarsApplicationMixin(ApplicationV return context; } - async handleAvoidDeath() { + async handleAvoidDeath(useAutomation) { const target = this.actor.uuid; const config = await enrichedFateRoll({ target, @@ -53,6 +53,7 @@ export default class DhDeathMove extends HandlebarsApplicationMixin(ApplicationV }); if (!config.roll.fate) return; + if (!useAutomation) return ''; let returnMessage = game.i18n.localize('DAGGERHEART.UI.Chat.deathMove.avoidScar'); if (config.roll.fate.value <= this.actor.system.levelData.level.current) { @@ -75,7 +76,7 @@ export default class DhDeathMove extends HandlebarsApplicationMixin(ApplicationV return returnMessage; } - async handleRiskItAll() { + async handleRiskItAll(useAutomation) { const config = await enrichedDualityRoll({ reaction: true, traitValue: null, @@ -90,6 +91,7 @@ export default class DhDeathMove extends HandlebarsApplicationMixin(ApplicationV }); if (!config.roll.result) return; + if (!useAutomation) return ''; const clearAllStressAndHitpointsUpdates = [ { key: 'hitPoints', clear: true }, @@ -128,7 +130,9 @@ export default class DhDeathMove extends HandlebarsApplicationMixin(ApplicationV return chatMessage; } - async handleBlazeOfGlory() { + async handleBlazeOfGlory(useAutomation) { + if (!useAutomation) return ''; + this.actor.createEmbeddedDocuments('ActiveEffect', [ { name: game.i18n.localize('DAGGERHEART.CONFIG.DeathMoves.blazeOfGlory.name'), @@ -160,19 +164,23 @@ export default class DhDeathMove extends HandlebarsApplicationMixin(ApplicationV let result = ''; + const deathMoveAutomation = game.settings.get( + CONFIG.DH.id, + CONFIG.DH.SETTINGS.gameSettings.Automation + ).deathMoveAutomation; if (CONFIG.DH.GENERAL.deathMoves.blazeOfGlory === this.selectedMove) { - result = await this.handleBlazeOfGlory(); + result = await this.handleBlazeOfGlory(deathMoveAutomation.blazeOfGlory); } if (CONFIG.DH.GENERAL.deathMoves.avoidDeath === this.selectedMove) { - result = await this.handleAvoidDeath(); + result = await this.handleAvoidDeath(deathMoveAutomation.avoidDeath); } if (CONFIG.DH.GENERAL.deathMoves.riskItAll === this.selectedMove) { - result = await this.handleRiskItAll(); + result = await this.handleRiskItAll(deathMoveAutomation.riskItAll); } - if (!result) return; + if (result === undefined) return; const autoExpandDescription = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.appearance) .expandRollMessage?.desc; diff --git a/module/applications/settings/automationSettings.mjs b/module/applications/settings/automationSettings.mjs index 4407897d..e720733e 100644 --- a/module/applications/settings/automationSettings.mjs +++ b/module/applications/settings/automationSettings.mjs @@ -34,7 +34,7 @@ export default class DhAutomationSettings extends HandlebarsApplicationMixin(App tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' }, header: { template: 'systems/daggerheart/templates/settings/automation-settings/header.hbs' }, general: { template: 'systems/daggerheart/templates/settings/automation-settings/general.hbs' }, - rules: { template: 'systems/daggerheart/templates/settings/automation-settings/rules.hbs' }, + rules: { template: 'systems/daggerheart/templates/settings/automation-settings/deathMoves.hbs' }, roll: { template: 'systems/daggerheart/templates/settings/automation-settings/roll.hbs' }, footer: { template: 'systems/daggerheart/templates/settings/automation-settings/footer.hbs' } }; @@ -42,7 +42,7 @@ export default class DhAutomationSettings extends HandlebarsApplicationMixin(App /** @inheritdoc */ static TABS = { main: { - tabs: [{ id: 'general' }, { id: 'rules' }, { id: 'roll' }], + tabs: [{ id: 'general' }, { id: 'deathMoves' }, { id: 'roll' }], initial: 'general', labelPrefix: 'DAGGERHEART.GENERAL.Tabs' } diff --git a/module/data/settings/Automation.mjs b/module/data/settings/Automation.mjs index 436f0eb7..e9952b1c 100644 --- a/module/data/settings/Automation.mjs +++ b/module/data/settings/Automation.mjs @@ -55,6 +55,23 @@ export default class DhAutomation extends foundry.abstract.DataModel { initial: true, label: 'DAGGERHEART.SETTINGS.Automation.FIELDS.resourceScrollTexts.label' }), + deathMoveAutomation: new fields.SchemaField({ + avoidDeath: new fields.BooleanField({ + required: true, + initial: true, + label: 'DAGGERHEART.CONFIG.DeathMoves.avoidDeath.name' + }), + riskItAll: new fields.BooleanField({ + required: true, + initial: true, + label: 'DAGGERHEART.CONFIG.DeathMoves.riskItAll.name' + }), + blazeOfGlory: new fields.BooleanField({ + required: true, + initial: true, + label: 'DAGGERHEART.CONFIG.DeathMoves.blazeOfGlory.name' + }) + }), defeated: new fields.SchemaField({ enabled: new fields.BooleanField({ required: true, diff --git a/module/enrichers/DualityRollEnricher.mjs b/module/enrichers/DualityRollEnricher.mjs index 3e4a39ce..5b66179f 100644 --- a/module/enrichers/DualityRollEnricher.mjs +++ b/module/enrichers/DualityRollEnricher.mjs @@ -86,6 +86,8 @@ export const enrichedDualityRoll = async ( { reaction, traitValue, target, difficulty, title, label, advantage, grantResources, customConfig }, event ) => { + const shouldGrantResources = grantResources === undefined ? true : grantResources; + const config = { event: event ?? {}, title: title, @@ -94,12 +96,12 @@ export const enrichedDualityRoll = async ( roll: { trait: traitValue && target ? traitValue : null, difficulty: difficulty, - advantage, - // type: reaction ? 'reaction' : null //not needed really but keeping it for troubleshooting + advantage + // type: reaction ? 'reaction' : null //not needed really but keeping it for troubleshooting }, skips: { - resources: !grantResources, - triggers: !grantResources + resources: !shouldGrantResources, + triggers: !shouldGrantResources }, type: 'trait', hasRoll: true, diff --git a/templates/settings/automation-settings/rules.hbs b/templates/settings/automation-settings/deathMoves.hbs similarity index 66% rename from templates/settings/automation-settings/rules.hbs rename to templates/settings/automation-settings/deathMoves.hbs index 24f0b262..f19a92da 100644 --- a/templates/settings/automation-settings/rules.hbs +++ b/templates/settings/automation-settings/deathMoves.hbs @@ -1,8 +1,17 @@
+
+ + {{localize "DAGGERHEART.GENERAL.automation"}} + + + {{formGroup settingFields.schema.fields.deathMoveAutomation.fields.avoidDeath value=settingFields._source.deathMoveAutomation.avoidDeath localize=true}} + {{formGroup settingFields.schema.fields.deathMoveAutomation.fields.riskItAll value=settingFields._source.deathMoveAutomation.riskItAll localize=true}} + {{formGroup settingFields.schema.fields.deathMoveAutomation.fields.blazeOfGlory value=settingFields._source.deathMoveAutomation.blazeOfGlory localize=true}} +
{{localize "DAGGERHEART.SETTINGS.Automation.defeated.title"}} diff --git a/templates/settings/automation-settings/general.hbs b/templates/settings/automation-settings/general.hbs index bd91b2b1..c5f4d871 100644 --- a/templates/settings/automation-settings/general.hbs +++ b/templates/settings/automation-settings/general.hbs @@ -13,6 +13,7 @@ {{formGroup settingFields.schema.fields.summaryMessages.fields.damage value=settingFields._source.summaryMessages.damage localize=true}} {{formGroup settingFields.schema.fields.summaryMessages.fields.effects value=settingFields._source.summaryMessages.effects localize=true}} + {{formGroup settingFields.schema.fields.countdownAutomation value=settingFields._source.countdownAutomation localize=true}} {{formGroup settingFields.schema.fields.actionPoints value=settingFields._source.actionPoints localize=true}} {{formGroup settingFields.schema.fields.hordeDamage value=settingFields._source.hordeDamage localize=true}}