mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-12 19:51:08 +01:00
Simplified resourcemap
This commit is contained in:
parent
1a1b01ded5
commit
63a1bf4f1a
3 changed files with 13 additions and 12 deletions
|
|
@ -241,7 +241,7 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel
|
|||
selectedRollMode: game.settings.get('core', 'rollMode'),
|
||||
data: this.getRollData(),
|
||||
evaluate: this.hasRoll,
|
||||
resourceUpdates: new ResourceUpdateMap(this.actor.uuid)
|
||||
resourceUpdates: new ResourceUpdateMap(this.actor)
|
||||
};
|
||||
|
||||
DHBaseAction.applyKeybindings(config);
|
||||
|
|
@ -332,11 +332,12 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel
|
|||
}
|
||||
|
||||
export class ResourceUpdateMap extends Map {
|
||||
#actorUuid;
|
||||
#actor;
|
||||
|
||||
constructor(actorUuid) {
|
||||
constructor(actor) {
|
||||
super();
|
||||
this.#actorUuid = actorUuid;
|
||||
|
||||
this.#actor = actor;
|
||||
}
|
||||
|
||||
addResources(resources) {
|
||||
|
|
@ -361,9 +362,8 @@ export class ResourceUpdateMap extends Map {
|
|||
}
|
||||
|
||||
async updateResources() {
|
||||
const actor = await foundry.utils.fromUuid(this.#actorUuid);
|
||||
if (actor) {
|
||||
const target = actor.system.partner ?? actor;
|
||||
if (this.#actor) {
|
||||
const target = this.#actor.system.partner ?? this.#actor;
|
||||
await target.modifyResource(this.#getResources());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -226,7 +226,7 @@ export default class DualityRoll extends D20Roll {
|
|||
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 hopeFearAutomation = automationSettings.hopeFear;
|
||||
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;
|
||||
|
||||
|
|
@ -341,16 +341,17 @@ export default class DualityRoll extends D20Roll {
|
|||
|
||||
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 = {
|
||||
source: { actor: message.system.source.actor ?? '' },
|
||||
targets: message.system.targets,
|
||||
tagTeamSelected: Object.values(tagTeamSettings.members).some(x => x.messageId === message._id),
|
||||
roll: newRoll,
|
||||
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();
|
||||
|
||||
return { newRoll, parsedRoll };
|
||||
|
|
|
|||
|
|
@ -478,7 +478,7 @@ export default class DhpActor extends Actor {
|
|||
async diceRoll(config) {
|
||||
config.source = { ...(config.source ?? {}), actor: this.uuid };
|
||||
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;
|
||||
return await rollClass.build(config);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue