[Feature] Custom Homebrew Resources (#1718)

* Added resources to the Homebrew Menu

* Fixed translations

* .

* Inverted from isImage to isIcon. Should be more logical for users
This commit is contained in:
WBHarry 2026-03-10 18:46:19 +01:00 committed by GitHub
parent 023dda6806
commit 270345ee12
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 518 additions and 139 deletions

View file

@ -11,3 +11,4 @@ export * as settingsConfig from './settingsConfig.mjs';
export * as systemConfig from './system.mjs';
export * as itemBrowserConfig from './itemBrowserConfig.mjs';
export * as triggerConfig from './triggerConfig.mjs';
export * as resourceConfig from './resourceConfig.mjs';

View file

@ -1,3 +1,5 @@
import { allAdversaryResources, allCharacterResources, allCompanionResources } from './resourceConfig.mjs';
export const abilities = {
agility: {
id: 'agility',
@ -55,91 +57,6 @@ export const abilities = {
}
};
/**
* Full custom typing:
* id
* initial
* max
* reverse
* label
* images {
* full { value, isPath, noColorFilter }
* empty { value, isPath noColorFilter }
* }
*/
export const characterBaseResources = {
hitPoints: {
id: 'hitPoints',
initial: 0,
max: 0,
reverse: true,
label: 'DAGGERHEART.GENERAL.HitPoints.plural',
maxLabel: 'DAGGERHEART.ACTORS.Character.maxHPBonus'
},
stress: {
id: 'stress',
initial: 0,
max: 6,
reverse: true,
label: 'DAGGERHEART.GENERAL.stress'
},
hope: {
id: 'hope',
initial: 2,
min: 0,
reverse: false,
label: 'DAGGERHEART.GENERAL.hope'
}
};
export const characterResources = {
...characterBaseResources
};
export const adversaryBaseResources = {
hitPoints: {
id: 'hitPoints',
initial: 0,
max: 0,
reverse: true,
label: 'DAGGERHEART.GENERAL.HitPoints.plural',
maxLabel: 'DAGGERHEART.ACTORS.Character.maxHPBonus'
},
stress: {
id: 'stress',
initial: 0,
max: 0,
reverse: true,
label: 'DAGGERHEART.GENERAL.stress'
}
};
export const adversaryResources = {
...adversaryBaseResources
};
export const companionBaseResources = {
stress: {
id: 'stress',
initial: 0,
max: 0,
reverse: true,
label: 'DAGGERHEART.GENERAL.stress'
},
hope: {
id: 'hope',
initial: 0,
min: 0,
reverse: false,
label: 'DAGGERHEART.GENERAL.hope'
}
};
export const companionResources = {
...companionBaseResources
};
export const featureProperties = {
agility: {
name: 'DAGGERHEART.CONFIG.Traits.agility.name',

View file

@ -0,0 +1,100 @@
/**
* Full custom typing:
* id
* initial
* max
* reverse
* label
* images {
* full { value, isIcon, noColorFilter }
* empty { value, isIcon noColorFilter }
* }
*/
export const characterBaseResources = {
hitPoints: {
id: 'hitPoints',
initial: 0,
max: 0,
reverse: true,
label: 'DAGGERHEART.GENERAL.HitPoints.plural',
maxLabel: 'DAGGERHEART.ACTORS.Character.maxHPBonus'
},
stress: {
id: 'stress',
initial: 0,
max: 6,
reverse: true,
label: 'DAGGERHEART.GENERAL.stress'
},
hope: {
id: 'hope',
initial: 2,
min: 0,
reverse: false,
label: 'DAGGERHEART.GENERAL.hope'
}
};
export const characterResources = {
...characterBaseResources
};
export const allCharacterResources = () => {
const resources = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).resources.character
.resources;
return {
...Object.keys(resources).reduce((acc, key) => {
acc[key] = { ...resources[key].toObject(), id: key };
return acc;
}, {}),
...characterResources
};
};
export const adversaryBaseResources = {
hitPoints: {
id: 'hitPoints',
initial: 0,
max: 0,
reverse: true,
label: 'DAGGERHEART.GENERAL.HitPoints.plural',
maxLabel: 'DAGGERHEART.ACTORS.Character.maxHPBonus'
},
stress: {
id: 'stress',
initial: 0,
max: 0,
reverse: true,
label: 'DAGGERHEART.GENERAL.stress'
}
};
export const adversaryResources = {
...adversaryBaseResources
};
export const allAdversaryResources = () => adversaryResources;
export const companionBaseResources = {
stress: {
id: 'stress',
initial: 0,
max: 0,
reverse: true,
label: 'DAGGERHEART.GENERAL.stress'
},
hope: {
id: 'hope',
initial: 0,
min: 0,
reverse: false,
label: 'DAGGERHEART.GENERAL.hope'
}
};
export const companionResources = {
...companionBaseResources
};
export const allCompanionResources = () => companionResources;

View file

@ -2,6 +2,7 @@ import * as GENERAL from './generalConfig.mjs';
import * as DOMAIN from './domainConfig.mjs';
import * as ENCOUNTER from './encounterConfig.mjs';
import * as ACTOR from './actorConfig.mjs';
import * as RESOURCE from './resourceConfig.mjs';
import * as ITEM from './itemConfig.mjs';
import * as SETTINGS from './settingsConfig.mjs';
import * as EFFECTS from './effectConfig.mjs';
@ -19,6 +20,7 @@ export const SYSTEM = {
GENERAL,
DOMAIN,
ACTOR,
RESOURCE,
ITEM,
SETTINGS,
EFFECTS,