mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-15 13:11: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'),
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 };
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue