[Feature] Configurable starting gold amounts in Homebrew settings

Added `initialAmount` field to each currency type (coins, handfuls, bags, chests)
in the Homebrew settings schema. Defaults match book values (0, 1, 0, 0).

- Homebrew.mjs: added `initialAmount` NumberField per currency; `_initializeSource`
  coerces empty submissions to 0; `refreshConfig()` syncs values to
  `CONFIG.DH.RESOURCE.character.initialCurrency`
- resourceConfig.mjs: added mutable `initialCurrency` object on `character` export
- actorField.mjs: added `CharacterGoldField` subclass that reads initial values
  from config at actor creation time
- character.mjs: switched from `GoldField` to `CharacterGoldField`
- settings.hbs: restructured currency section to CSS Grid with column headers
  ("Quantity Name" / "Starting Amount") instead of per-field inline labels
- settings.less: added `.currency-rows` grid styles
- en.json: added `quantityName` and `initialAmount` localisation keys
This commit is contained in:
Iohan Trézze 2026-06-03 23:56:25 -03:00
parent a4428fd5be
commit d549a609e3
7 changed files with 70 additions and 19 deletions

View file

@ -126,4 +126,15 @@ class GoldField extends fields.SchemaField {
}
}
export { attributeField, ResourcesField, GoldField, stressDamageReductionRule, bonusField };
class CharacterGoldField extends GoldField {
getInitialValue(options) {
const base = super.getInitialValue(options);
const initialCurrency = CONFIG.DH.RESOURCE.character.initialCurrency;
for (const type of ['coins', 'handfuls', 'bags', 'chests']) {
base[type] = initialCurrency[type];
}
return base;
}
}
export { attributeField, ResourcesField, GoldField, CharacterGoldField, stressDamageReductionRule, bonusField };