mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-11 19:25:21 +01:00
Standardized what gets refreshed by which refreshType (#1374)
This commit is contained in:
parent
2a622a7363
commit
14ac8977af
3 changed files with 25 additions and 9 deletions
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { refreshIsAllowed } from '../../helpers/utils.mjs';
|
||||||
|
|
||||||
const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api;
|
const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api;
|
||||||
|
|
||||||
export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV2) {
|
export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV2) {
|
||||||
|
|
@ -94,11 +96,7 @@ export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV
|
||||||
const actionItems = this.actor.items.reduce((acc, x) => {
|
const actionItems = this.actor.items.reduce((acc, x) => {
|
||||||
if (x.system.actions) {
|
if (x.system.actions) {
|
||||||
const recoverable = x.system.actions.reduce((acc, action) => {
|
const recoverable = x.system.actions.reduce((acc, action) => {
|
||||||
if (
|
if (refreshIsAllowed([this.shortrest ? 'shortRest' : 'longRest'], action.uses.recovery)) {
|
||||||
action.uses.recovery &&
|
|
||||||
((action.uses.recovery === 'longRest' && !this.shortrest) ||
|
|
||||||
action.uses.recovery === 'shortRest')
|
|
||||||
) {
|
|
||||||
acc.push({
|
acc.push({
|
||||||
title: x.name,
|
title: x.name,
|
||||||
name: action.name,
|
name: action.name,
|
||||||
|
|
@ -120,8 +118,7 @@ export default class DhpDowntime extends HandlebarsApplicationMixin(ApplicationV
|
||||||
if (
|
if (
|
||||||
x.system.resource &&
|
x.system.resource &&
|
||||||
x.system.resource.type &&
|
x.system.resource.type &&
|
||||||
((x.system.resource.recovery === 'longRest') === !this.shortrest ||
|
refreshIsAllowed([this.shortrest ? 'shortRest' : 'longRest'], action.uses.recovery)
|
||||||
x.system.resource.recovery === 'shortRest')
|
|
||||||
) {
|
) {
|
||||||
acc.push({
|
acc.push({
|
||||||
title: game.i18n.localize(`TYPES.Item.${x.type}`),
|
title: game.i18n.localize(`TYPES.Item.${x.type}`),
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { refreshIsAllowed } from '../../../helpers/utils.mjs';
|
||||||
|
|
||||||
const { HandlebarsApplicationMixin } = foundry.applications.api;
|
const { HandlebarsApplicationMixin } = foundry.applications.api;
|
||||||
const { AbstractSidebarTab } = foundry.applications.sidebar;
|
const { AbstractSidebarTab } = foundry.applications.sidebar;
|
||||||
/**
|
/**
|
||||||
|
|
@ -58,7 +60,7 @@ export default class DaggerheartMenu extends HandlebarsApplicationMixin(Abstract
|
||||||
if (['character', 'adversary'].includes(actor.type) && actor.prototypeToken.actorLink) {
|
if (['character', 'adversary'].includes(actor.type) && actor.prototypeToken.actorLink) {
|
||||||
const updates = {};
|
const updates = {};
|
||||||
for (let item of actor.items) {
|
for (let item of actor.items) {
|
||||||
if (item.system.metadata?.hasResource && types.includes(item.system.resource?.recovery)) {
|
if (item.system.metadata?.hasResource && refreshIsAllowed(types, item.system.resource?.recovery)) {
|
||||||
if (!refreshedActors[actor.id])
|
if (!refreshedActors[actor.id])
|
||||||
refreshedActors[actor.id] = { name: actor.name, img: actor.img, refreshed: new Set() };
|
refreshedActors[actor.id] = { name: actor.name, img: actor.img, refreshed: new Set() };
|
||||||
refreshedActors[actor.id].refreshed.add(
|
refreshedActors[actor.id].refreshed.add(
|
||||||
|
|
@ -79,7 +81,7 @@ export default class DaggerheartMenu extends HandlebarsApplicationMixin(Abstract
|
||||||
if (item.system.metadata?.hasActions) {
|
if (item.system.metadata?.hasActions) {
|
||||||
const refreshTypes = new Set();
|
const refreshTypes = new Set();
|
||||||
const actions = item.system.actions.filter(action => {
|
const actions = item.system.actions.filter(action => {
|
||||||
if (types.includes(action.uses.recovery)) {
|
if (refreshIsAllowed(types, action.uses.recovery)) {
|
||||||
refreshTypes.add(action.uses.recovery);
|
refreshTypes.add(action.uses.recovery);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -452,6 +452,23 @@ export async function waitForDiceSoNice(message) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function refreshIsAllowed(allowedTypes, typeToCheck) {
|
||||||
|
switch (typeToCheck) {
|
||||||
|
case CONFIG.DH.GENERAL.refreshTypes.scene.id:
|
||||||
|
case CONFIG.DH.GENERAL.refreshTypes.session.id:
|
||||||
|
case CONFIG.DH.GENERAL.refreshTypes.longRest.id:
|
||||||
|
return allowedTypes.includes(typeToCheck);
|
||||||
|
case CONFIG.DH.GENERAL.refreshTypes.shortRest.id:
|
||||||
|
return allowedTypes.some(
|
||||||
|
x =>
|
||||||
|
x === CONFIG.DH.GENERAL.refreshTypes.shortRest.id ||
|
||||||
|
x === CONFIG.DH.GENERAL.refreshTypes.longRest.id
|
||||||
|
);
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export async function getCritDamageBonus(formula) {
|
export async function getCritDamageBonus(formula) {
|
||||||
const critRoll = new Roll(formula);
|
const critRoll = new Roll(formula);
|
||||||
return critRoll.dice.reduce((acc, dice) => acc + dice.faces, 0);
|
return critRoll.dice.reduce((acc, dice) => acc + dice.faces, 0);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue