Simplified resourcemap

This commit is contained in:
WBHarry 2025-12-21 23:16:22 +01:00
parent 1a1b01ded5
commit 63a1bf4f1a
3 changed files with 13 additions and 12 deletions

View file

@ -241,7 +241,7 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel
selectedRollMode: game.settings.get('core', 'rollMode'), selectedRollMode: game.settings.get('core', 'rollMode'),
data: this.getRollData(), data: this.getRollData(),
evaluate: this.hasRoll, evaluate: this.hasRoll,
resourceUpdates: new ResourceUpdateMap(this.actor.uuid) resourceUpdates: new ResourceUpdateMap(this.actor)
}; };
DHBaseAction.applyKeybindings(config); DHBaseAction.applyKeybindings(config);
@ -332,11 +332,12 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel
} }
export class ResourceUpdateMap extends Map { export class ResourceUpdateMap extends Map {
#actorUuid; #actor;
constructor(actorUuid) { constructor(actor) {
super(); super();
this.#actorUuid = actorUuid;
this.#actor = actor;
} }
addResources(resources) { addResources(resources) {
@ -361,9 +362,8 @@ export class ResourceUpdateMap extends Map {
} }
async updateResources() { async updateResources() {
const actor = await foundry.utils.fromUuid(this.#actorUuid); if (this.#actor) {
if (actor) { const target = this.#actor.system.partner ?? this.#actor;
const target = actor.system.partner ?? actor;
await target.modifyResource(this.#getResources()); await target.modifyResource(this.#getResources());
} }
} }

View file

@ -226,7 +226,7 @@ export default class DualityRoll extends D20Roll {
await DualityRoll.dualityUpdate(config); await DualityRoll.dualityUpdate(config);
} }
static async automateHopeFear(config) { static async addDualityResourceUpdates(config) {
const automationSettings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation); const automationSettings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation);
const hopeFearAutomation = automationSettings.hopeFear; const hopeFearAutomation = automationSettings.hopeFear;
if ( if (
@ -289,7 +289,7 @@ export default class DualityRoll extends D20Roll {
} }
} }
await DualityRoll.automateHopeFear(config); await DualityRoll.addDualityResourceUpdates(config);
if (!config.roll.hasOwnProperty('success') && !config.targets?.length) return; if (!config.roll.hasOwnProperty('success') && !config.targets?.length) return;
@ -341,16 +341,17 @@ export default class DualityRoll extends D20Roll {
const tagTeamSettings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll); const tagTeamSettings = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.TagTeamRoll);
const actor = message.system.source.actor ? await foundry.utils.fromUuid(message.system.source.actor) : null;
const config = { const config = {
source: { actor: message.system.source.actor ?? '' }, source: { actor: message.system.source.actor ?? '' },
targets: message.system.targets, targets: message.system.targets,
tagTeamSelected: Object.values(tagTeamSettings.members).some(x => x.messageId === message._id), tagTeamSelected: Object.values(tagTeamSettings.members).some(x => x.messageId === message._id),
roll: newRoll, roll: newRoll,
rerolledRoll: message.system.roll, rerolledRoll: message.system.roll,
resourceUpdates: new ResourceUpdateMap(message.system.source.actor ?? '') resourceUpdates: new ResourceUpdateMap(actor)
}; };
await DualityRoll.automateHopeFear(config); await DualityRoll.addDualityResourceUpdates(config);
await config.resourceUpdates.updateResources(); await config.resourceUpdates.updateResources();
return { newRoll, parsedRoll }; return { newRoll, parsedRoll };

View file

@ -478,7 +478,7 @@ export default class DhpActor extends Actor {
async diceRoll(config) { async diceRoll(config) {
config.source = { ...(config.source ?? {}), actor: this.uuid }; config.source = { ...(config.source ?? {}), actor: this.uuid };
config.data = this.getRollData(); config.data = this.getRollData();
config.resourceUpdates = new ResourceUpdateMap(this.uuid); config.resourceUpdates = new ResourceUpdateMap(this);
const rollClass = config.roll.lite ? CONFIG.Dice.daggerheart['DHRoll'] : this.rollClass; const rollClass = config.roll.lite ? CONFIG.Dice.daggerheart['DHRoll'] : this.rollClass;
return await rollClass.build(config); return await rollClass.build(config);
} }