diff --git a/lang/en.json b/lang/en.json index 77a14f75..90250d05 100755 --- a/lang/en.json +++ b/lang/en.json @@ -99,6 +99,15 @@ "FIELDS": { "maxFear": { "label": "Max Fear" }, "traitArray": { "label": "Initial Trait Modifiers" } + }, + "Currency": { + "enabled": "Enable Overrides", + "title": "Currency Overrides", + "currencyName": "Currency Name", + "coinName": "Coin Name", + "handfullName": "Handfull Name", + "bagName": "Bag Name", + "chestName": "Chest Name" } }, "Resources": { diff --git a/module/applications/settings/homebrewSettings.mjs b/module/applications/settings/homebrewSettings.mjs index d59bc35c..e67afb1b 100644 --- a/module/applications/settings/homebrewSettings.mjs +++ b/module/applications/settings/homebrewSettings.mjs @@ -24,14 +24,16 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli editItem: this.editItem, removeItem: this.removeItem, resetMoves: this.resetMoves, - save: this.save + save: this.save, + reset: this.reset }, form: { handler: this.updateData, submitOnChange: true } }; static PARTS = { main: { - template: 'systems/daggerheart/templates/settings/homebrew-settings.hbs' + template: 'systems/daggerheart/templates/settings/homebrew-settings.hbs', + scrollable: [''] } }; @@ -154,4 +156,27 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli await game.settings.set(SYSTEM.id, SYSTEM.SETTINGS.gameSettings.Homebrew, this.settings.toObject()); this.close(); } + + static async reset() { + const resetSettings = new DhHomebrew(); + let localizedSettings = this.localizeObject(resetSettings); + this.settings.updateSource(localizedSettings); + this.render(); + } + + localizeObject(obj) { + for (let key in obj) { + if (obj.hasOwnProperty(key)) { + const value = obj[key]; + if (typeof value === 'object' && value !== null) { + obj[key] = this.localizeObject(value); + } else { + if (typeof value === 'string' && value.startsWith('DAGGERHEART.')) { + obj[key] = game.i18n.localize(value); + } + } + } + } + return obj; + } } diff --git a/module/applications/sheets/character.mjs b/module/applications/sheets/character.mjs index 8570b5f3..b3e68609 100644 --- a/module/applications/sheets/character.mjs +++ b/module/applications/sheets/character.mjs @@ -409,9 +409,21 @@ export default class CharacterSheet extends DaggerheartSheet(ActorSheetV2) { quantity: game.i18n.localize('DAGGERHEART.Sheets.PC.InventoryTab.QuantityTitle') }, items: this.document.items.filter(x => x.type === 'armor') + }, + currency: { + title: game.i18n.localize('DAGGERHEART.Sheets.PC.Gold.Title'), + coins: game.i18n.localize('DAGGERHEART.Sheets.PC.Gold.Coins'), + handfulls: game.i18n.localize('DAGGERHEART.Sheets.PC.Gold.Handfulls'), + bags: game.i18n.localize('DAGGERHEART.Sheets.PC.Gold.Bags'), + chests: game.i18n.localize('DAGGERHEART.Sheets.PC.Gold.Chests') } }; + const homebrewCurrency = game.settings.get(SYSTEM.id, SYSTEM.SETTINGS.gameSettings.Homebrew).currency; + if (homebrewCurrency.enabled) { + context.inventory.currency = homebrewCurrency; + } + if (context.inventory.length === 0) { context.inventory = Array(1).fill(Array(5).fill([])); } diff --git a/module/config/generalConfig.mjs b/module/config/generalConfig.mjs index ccbe2d21..7b6fba4e 100644 --- a/module/config/generalConfig.mjs +++ b/module/config/generalConfig.mjs @@ -163,13 +163,15 @@ export const defaultRestOptions = { id: 'repairArmor', name: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.RepairArmor.Name'), img: 'icons/skills/trades/smithing-anvil-silver-red.webp', - description: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.RepairArmor.Description') + description: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.RepairArmor.Description'), + actions: [] }, prepare: { id: 'prepare', name: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.Prepare.Name'), img: 'icons/skills/trades/academics-merchant-scribe.webp', - description: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.Prepare.Description') + description: game.i18n.localize('DAGGERHEART.Downtime.ShortRest.Prepare.Description'), + actions: [] } }), longRest: () => ({ @@ -177,31 +179,36 @@ export const defaultRestOptions = { id: 'tendToWounds', name: game.i18n.localize('DAGGERHEART.Downtime.LongRest.TendToWounds.Name'), img: 'icons/magic/life/cross-worn-green.webp', - description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.TendToWounds.Description') + description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.TendToWounds.Description'), + actions: [] }, clearStress: { id: 'clearStress', name: game.i18n.localize('DAGGERHEART.Downtime.LongRest.ClearStress.Name'), img: 'icons/magic/perception/eye-ringed-green.webp', - description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.ClearStress.Description') + description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.ClearStress.Description'), + actions: [] }, repairArmor: { id: 'repairArmor', name: game.i18n.localize('DAGGERHEART.Downtime.LongRest.RepairArmor.Name'), img: 'icons/skills/trades/smithing-anvil-silver-red.webp', - description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.RepairArmor.Description') + description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.RepairArmor.Description'), + actions: [] }, prepare: { id: 'prepare', name: game.i18n.localize('DAGGERHEART.Downtime.LongRest.Prepare.Name'), img: 'icons/skills/trades/academics-merchant-scribe.webp', - description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.Prepare.Description') + description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.Prepare.Description'), + actions: [] }, workOnAProject: { id: 'workOnAProject', name: game.i18n.localize('DAGGERHEART.Downtime.LongRest.WorkOnAProject.Name'), img: 'icons/skills/social/thumbsup-approval-like.webp', - description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.WorkOnAProject.Description') + description: game.i18n.localize('DAGGERHEART.Downtime.LongRest.WorkOnAProject.Description'), + actions: [] } }), custom: { diff --git a/module/data/settings/Homebrew.mjs b/module/data/settings/Homebrew.mjs index 3aef56d6..d26de253 100644 --- a/module/data/settings/Homebrew.mjs +++ b/module/data/settings/Homebrew.mjs @@ -16,6 +16,38 @@ export default class DhHomebrew extends foundry.abstract.DataModel { traitArray: new fields.ArrayField(new fields.NumberField({ required: true, integer: true }), { initial: () => [2, 1, 1, 0, 0, -1] }), + currency: new fields.SchemaField({ + enabled: new fields.BooleanField({ + required: true, + initial: false, + label: 'DAGGERHEART.Settings.Homebrew.Currency.enabled' + }), + title: new fields.StringField({ + required: true, + initial: 'Gold', + label: 'DAGGERHEART.Settings.Homebrew.Currency.currencyName' + }), + coins: new fields.StringField({ + required: true, + initial: 'Coins', + label: 'DAGGERHEART.Settings.Homebrew.Currency.coinName' + }), + handfulls: new fields.StringField({ + required: true, + initial: 'Handfulls', + label: 'DAGGERHEART.Settings.Homebrew.Currency.handfullName' + }), + bags: new fields.StringField({ + required: true, + initial: 'Bags', + label: 'DAGGERHEART.Settings.Homebrew.Currency.bagName' + }), + chests: new fields.StringField({ + required: true, + initial: 'Chests', + label: 'DAGGERHEART.Settings.Homebrew.Currency.chestName' + }) + }), restMoves: new fields.SchemaField({ longRest: new fields.SchemaField({ nrChoices: new fields.NumberField({ required: true, integer: true, min: 1, initial: 2 }), diff --git a/templates/settings/homebrew-settings.hbs b/templates/settings/homebrew-settings.hbs index 2e6ddb10..e32830fe 100644 --- a/templates/settings/homebrew-settings.hbs +++ b/templates/settings/homebrew-settings.hbs @@ -1,4 +1,4 @@ -
+
{{formGroup settingFields.schema.fields.maxFear value=settingFields._source.maxFear localize=true}}

{{localize "DAGGERHEART.Settings.Homebrew.FIELDS.traitArray.label"}}

@@ -9,7 +9,20 @@
{{/each}} -
+ + +
+ + {{localize "DAGGERHEART.Settings.Homebrew.Currency.title"}} + + {{formGroup settingFields.schema.fields.currency.fields.enabled value=settingFields._source.currency.enabled localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.title value=settingFields._source.currency.title localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.coins value=settingFields._source.currency.coins localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.handfulls value=settingFields._source.currency.handfulls localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.bags value=settingFields._source.currency.bags localize=true}} + {{formGroup settingFields.schema.fields.currency.fields.chests value=settingFields._source.currency.chests localize=true}} + +
{{localize "DAGGERHEART.Settings.Homebrew.DowntimeMoves"}} diff --git a/templates/sheets/actors/character/inventory.hbs b/templates/sheets/actors/character/inventory.hbs index 0d9f312a..22b32d3f 100644 --- a/templates/sheets/actors/character/inventory.hbs +++ b/templates/sheets/actors/character/inventory.hbs @@ -12,7 +12,7 @@ - +
{{> 'systems/daggerheart/templates/sheets/global/partials/inventory-fieldset-items.hbs' title=(localize 'TYPES.Item.weapon') type='weapon' isGlassy=true}} {{> 'systems/daggerheart/templates/sheets/global/partials/inventory-fieldset-items.hbs' title=(localize 'TYPES.Item.armor') type='armor' isGlassy=true}} @@ -20,23 +20,23 @@ {{> 'systems/daggerheart/templates/sheets/global/partials/inventory-fieldset-items.hbs' title=(localize 'TYPES.Item.miscellaneous') type='miscellaneous' isGlassy=true}}
-
+
- {{localize "DAGGERHEART.Sheets.PC.Gold.Coins"}} + {{localize this.inventory.currency.coins}} {{formInput systemFields.gold.fields.coins value=source.system.gold.coins enriched=source.system.gold.coins localize=true toggled=true}}
- {{localize "DAGGERHEART.Sheets.PC.Gold.Handfulls"}} + {{localize this.inventory.currency.handfulls}} {{formInput systemFields.gold.fields.handfulls value=source.system.gold.handfulls enriched=source.system.gold.handfulls localize=true toggled=true}}
- {{localize "DAGGERHEART.Sheets.PC.Gold.Bags"}} + {{localize this.inventory.currency.bags}} {{formInput systemFields.gold.fields.bags value=source.system.gold.bags enriched=source.system.gold.bags localize=true toggled=true}}
- {{localize "DAGGERHEART.Sheets.PC.Gold.Chests"}} + {{localize this.inventory.currency.chests}} {{formInput systemFields.gold.fields.chests value=source.system.gold.chests enriched=source.system.gold.chests localize=true toggled=true}}
+
- \ No newline at end of file diff --git a/templates/sheets/parts/gold.hbs b/templates/sheets/parts/gold.hbs index 83634403..d25894b5 100644 --- a/templates/sheets/parts/gold.hbs +++ b/templates/sheets/parts/gold.hbs @@ -1,10 +1,10 @@
- {{localize "DAGGERHEART.Sheets.PC.Gold.Title"}} + {{localize this.inventory.currency.title}}
- {{localize "DAGGERHEART.Sheets.PC.Gold.Coins"}} + {{localize this.inventory.currency.coins}}
@@ -27,7 +27,7 @@
- {{localize "DAGGERHEART.Sheets.PC.Gold.Handfulls"}} + {{localize this.inventory.currency.handfulls}}
@@ -50,7 +50,7 @@
- {{localize "DAGGERHEART.Sheets.PC.Gold.Bags"}} + {{localize this.inventory.currency.bags}}
@@ -76,7 +76,7 @@
- {{localize "DAGGERHEART.Sheets.PC.Gold.Chests"}} + {{localize this.inventory.currency.chests}}