[Feature] 688 - Token Resource Bar (#699)

* Fixed resource bar to a segmented one in one colour. Fixed handful localization

* Darkened the blue
This commit is contained in:
WBHarry 2025-08-07 17:11:32 +02:00 committed by GitHub
parent 2c8614fbd5
commit df99d0e4c6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 49 additions and 13 deletions

View file

@ -880,7 +880,7 @@
"Gold": { "Gold": {
"title": "Gold", "title": "Gold",
"coins": "Coins", "coins": "Coins",
"handfulls": "Handfulls", "handfuls": "Handfuls",
"bags": "Bags", "bags": "Bags",
"chests": "Chests" "chests": "Chests"
}, },
@ -2138,7 +2138,7 @@
"title": "Currency Overrides", "title": "Currency Overrides",
"currencyName": "Currency Name", "currencyName": "Currency Name",
"coinName": "Coin Name", "coinName": "Coin Name",
"handfullName": "Handfull Name", "handfulName": "Handful Name",
"bagName": "Bag Name", "bagName": "Bag Name",
"chestName": "Chest Name" "chestName": "Chest Name"
}, },

View file

@ -156,7 +156,7 @@ export default class CharacterSheet extends DHBaseActorSheet {
currency: { currency: {
title: game.i18n.localize('DAGGERHEART.CONFIG.Gold.title'), title: game.i18n.localize('DAGGERHEART.CONFIG.Gold.title'),
coins: game.i18n.localize('DAGGERHEART.CONFIG.Gold.coins'), coins: game.i18n.localize('DAGGERHEART.CONFIG.Gold.coins'),
handfulls: game.i18n.localize('DAGGERHEART.CONFIG.Gold.handfulls'), handfuls: game.i18n.localize('DAGGERHEART.CONFIG.Gold.handfuls'),
bags: game.i18n.localize('DAGGERHEART.CONFIG.Gold.bags'), bags: game.i18n.localize('DAGGERHEART.CONFIG.Gold.bags'),
chests: game.i18n.localize('DAGGERHEART.CONFIG.Gold.chests') chests: game.i18n.localize('DAGGERHEART.CONFIG.Gold.chests')
} }

View file

@ -53,4 +53,40 @@ export default class DhTokenPlaceable extends foundry.canvas.placeables.Token {
this.effects.renderable = true; this.effects.renderable = true;
this.renderFlags.set({ refreshEffects: true }); this.renderFlags.set({ refreshEffects: true });
} }
/** @inheritDoc */
_drawBar(number, bar, data) {
const val = Number(data.value);
const pct = Math.clamp(val, 0, data.max) / data.max;
// Determine sizing
const { width, height } = this.document.getSize();
const s = canvas.dimensions.uiScale;
const bw = width;
const bh = 8 * (this.document.height >= 2 ? 1.5 : 1) * s;
// Determine the color to use
const fillColor =
number === 0 ? foundry.utils.Color.fromRGB([1, 0, 0]) : foundry.utils.Color.fromString('#0032b1');
// Draw the bar
const widthUnit = bw / data.max;
bar.clear().lineStyle(s, 0x000000, 1.0);
const sections = [...Array(data.max).keys()];
for (let mark of sections) {
const x = mark * widthUnit;
const marked = mark + 1 <= data.value;
const color = marked ? fillColor : foundry.utils.Color.fromRGB([0, 0, 0]);
if (mark === 0 || mark === sections.length - 1) {
bar.beginFill(color, marked ? 1.0 : 0.5).drawRect(x, 0, widthUnit, bh, 2 * s); // Would like drawRoundedRect, but it's very troublsome with the corners. Leaving for now.
} else {
bar.beginFill(color, marked ? 1.0 : 0.5).drawRect(x, 0, widthUnit, bh, 2 * s);
}
}
// Set position
const posY = number === 0 ? height - bh : 0;
bar.position.set(0, posY);
return true;
}
} }

View file

@ -857,7 +857,7 @@ export const weaponFeatures = {
name: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.name', name: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.name',
description: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.description', description: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.description',
img: 'icons/commodities/currency/coins-crown-stack-gold.webp', img: 'icons/commodities/currency/coins-crown-stack-gold.webp',
// Should cost handfull of gold, // Should cost handful of gold,
effects: [ effects: [
{ {
name: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.actions.greed.name', name: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.actions.greed.name',

View file

@ -73,7 +73,7 @@ export default class DhCharacter extends BaseDataActor {
), ),
gold: new fields.SchemaField({ gold: new fields.SchemaField({
coins: new fields.NumberField({ initial: 0, integer: true }), coins: new fields.NumberField({ initial: 0, integer: true }),
handfulls: new fields.NumberField({ initial: 1, integer: true }), handfuls: new fields.NumberField({ initial: 1, integer: true }),
bags: new fields.NumberField({ initial: 0, integer: true }), bags: new fields.NumberField({ initial: 0, integer: true }),
chests: new fields.NumberField({ initial: 0, integer: true }) chests: new fields.NumberField({ initial: 0, integer: true })
}), }),

View file

@ -45,10 +45,10 @@ export default class DhHomebrew extends foundry.abstract.DataModel {
initial: 'Coins', initial: 'Coins',
label: 'DAGGERHEART.SETTINGS.Homebrew.currency.coinName' label: 'DAGGERHEART.SETTINGS.Homebrew.currency.coinName'
}), }),
handfulls: new fields.StringField({ handfuls: new fields.StringField({
required: true, required: true,
initial: 'Handfulls', initial: 'Handfuls',
label: 'DAGGERHEART.SETTINGS.Homebrew.currency.handfullName' label: 'DAGGERHEART.SETTINGS.Homebrew.currency.handfulName'
}), }),
bags: new fields.StringField({ bags: new fields.StringField({
required: true, required: true,

View file

@ -24,7 +24,7 @@
{{formGroup settingFields.schema.fields.currency.fields.enabled value=settingFields._source.currency.enabled localize=true}} {{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.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.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.handfuls value=settingFields._source.currency.handfuls localize=true}}
{{formGroup settingFields.schema.fields.currency.fields.bags value=settingFields._source.currency.bags 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}} {{formGroup settingFields.schema.fields.currency.fields.chests value=settingFields._source.currency.chests localize=true}}

View file

@ -29,7 +29,7 @@
{{formGroup settingFields.schema.fields.currency.fields.enabled value=settingFields._source.currency.enabled localize=true}} {{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.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.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.handfuls value=settingFields._source.currency.handfuls localize=true}}
{{formGroup settingFields.schema.fields.currency.fields.bags value=settingFields._source.currency.bags 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}} {{formGroup settingFields.schema.fields.currency.fields.chests value=settingFields._source.currency.chests localize=true}}

View file

@ -19,9 +19,9 @@
localize=true toggled=true}} localize=true toggled=true}}
</div> </div>
<div class="input"> <div class="input">
<span>{{localize this.inventory.currency.handfulls}}</span> <span>{{localize this.inventory.currency.handfuls}}</span>
{{formInput systemFields.gold.fields.handfulls value=source.system.gold.handfulls {{formInput systemFields.gold.fields.handfuls value=source.system.gold.handfuls
enriched=source.system.gold.handfulls localize=true toggled=true}} enriched=source.system.gold.handfuls localize=true toggled=true}}
</div> </div>
<div class="input"> <div class="input">
<span>{{localize this.inventory.currency.bags}}</span> <span>{{localize this.inventory.currency.bags}}</span>