This commit is contained in:
WBHarry 2025-07-25 02:31:54 +02:00
parent cdfc972301
commit bdc9671d69
6 changed files with 13 additions and 11 deletions

View file

@ -517,9 +517,10 @@ export default class CharacterSheet extends DHBaseActorSheet {
const item = getDocFromElement(event.currentTarget); const item = getDocFromElement(event.currentTarget);
if (!item) return; if (!item) return;
const max = item.system.resource.max ? itemAbleRollParse(item.system.resource.max, this.document, item) : null; const max = event.currentTarget.max ? Number(event.currentTarget.max) : null;
const value = max ? Math.min(Number(event.currentTarget.value), max) : event.currentTarget.value; const value = max ? Math.min(Number(event.currentTarget.value), max) : event.currentTarget.value;
await item.update({ 'system.resource.value': value }); await item.update({ 'system.resource.value': value });
this.render();
} }
async updateItemQuantity(event) { async updateItemQuantity(event) {
@ -527,6 +528,7 @@ export default class CharacterSheet extends DHBaseActorSheet {
if (!item) return; if (!item) return;
await item.update({ 'system.quantity': event.currentTarget.value }); await item.update({ 'system.quantity': event.currentTarget.value });
this.render();
} }
async updateArmorMarks(event) { async updateArmorMarks(event) {

View file

@ -8,7 +8,7 @@ const attributeField = label =>
const resourceField = (max = 0, label, reverse = false) => const resourceField = (max = 0, label, reverse = false) =>
new fields.SchemaField({ new fields.SchemaField({
value: new fields.NumberField({ initial: 0, integer: true, label }), value: new fields.NumberField({ initial: 0, min: 0, integer: true, label }),
max: new fields.NumberField({ initial: max, integer: true }), max: new fields.NumberField({ initial: max, integer: true }),
isReversed: new fields.BooleanField({ initial: reverse }) isReversed: new fields.BooleanField({ initial: reverse })
}); });

View file

@ -47,7 +47,7 @@ export default class RegisterHandlebarsHelpers {
static rollParsed(value, actor, item, numerical) { static rollParsed(value, actor, item, numerical) {
const isNumerical = typeof numerical === 'boolean' ? numerical : false; const isNumerical = typeof numerical === 'boolean' ? numerical : false;
const result = itemAbleRollParse(value, actor, item); const result = itemAbleRollParse(value, actor.getRollData(), item);
return isNumerical && !result ? 0 : result; return isNumerical ? (!result ? 0 : Number(result)) : result;
} }
} }

View file

@ -4,20 +4,19 @@
<a class="death-roll-btn" data-tooltip="DAGGERHEART.UI.Tooltip.makeDeathMove" {{#if <a class="death-roll-btn" data-tooltip="DAGGERHEART.UI.Tooltip.makeDeathMove" {{#if
isDeath}}data-action="makeDeathMove" {{/if}}><i class="fas fa-skull death-save"></i></a> isDeath}}data-action="makeDeathMove" {{/if}}><i class="fas fa-skull death-save"></i></a>
</div> </div>
<div class="info-section"> <div class="info-section">
<div class="resources-section"> <div class="resources-section">
<div class="status-bar"> <div class="status-bar">
<div class='status-value'> <div class='status-value'>
<p><input class="bar-input" name="system.resources.hitPoints.value" <p><input class="bar-input" name="system.resources.hitPoints.value" min="0" max='{{document.system.resources.hitPoints.max}}'
value="{{document.system.resources.hitPoints.value}}" type="number"></p> value="{{document.system.resources.hitPoints.value}}" type="text" data-dtype="Number"></p>
<p>/</p> <p>/</p>
<p class="bar-label">{{document.system.resources.hitPoints.max}}</p> <p class="bar-label">{{document.system.resources.hitPoints.max}}</p>
</div> </div>
<progress <progress
class='progress-bar' class='progress-bar'
value='{{document.system.resources.hitPoints.value}}'
max='{{document.system.resources.hitPoints.max}}' max='{{document.system.resources.hitPoints.max}}'
value='{{document.system.resources.hitPoints.value}}'
></progress> ></progress>
<div class="status-label"> <div class="status-label">
<h4>{{localize "DAGGERHEART.GENERAL.HitPoints.short"}}</h4> <h4>{{localize "DAGGERHEART.GENERAL.HitPoints.short"}}</h4>
@ -26,7 +25,7 @@
</div> </div>
<div class="status-bar"> <div class="status-bar">
<div class='status-value'> <div class='status-value'>
<p><input class="bar-input" name="system.resources.stress.value" <p><input class="bar-input" name="system.resources.stress.value" min="0" max='{{document.system.resources.stress.max}}'
value="{{document.system.resources.stress.value}}" type="number"></p> value="{{document.system.resources.stress.value}}" type="number"></p>
<p>/</p> <p>/</p>
<p class="bar-label">{{document.system.resources.stress.max}}</p> <p class="bar-label">{{document.system.resources.stress.max}}</p>
@ -34,6 +33,7 @@
<progress <progress
class='progress-bar stress-color' class='progress-bar stress-color'
value='{{document.system.resources.stress.value}}' value='{{document.system.resources.stress.value}}'
min="0"
max='{{document.system.resources.stress.max}}' max='{{document.system.resources.stress.max}}'
></progress> ></progress>
<div class="status-label"> <div class="status-label">

View file

@ -186,7 +186,7 @@ Parameters:
{{/if}} {{/if}}
{{#if (and (not hideResources) item.system.quantity)}} {{#if (and (not hideResources) item.system.quantity)}}
<div class="item-resource"> <div class="item-resource">
<input type="number" class="inventory-item-quantity" value="{{item.system.quantity}}" step="1" /> <input type="number" class="inventory-item-quantity" value="{{item.system.quantity}}" min="0" />
</div> </div>
{{/if}} {{/if}}

View file

@ -1,7 +1,7 @@
{{#if (eq item.system.resource.type 'simple')}} {{#if (eq item.system.resource.type 'simple')}}
<div class="item-resource"> <div class="item-resource">
<i class="{{#if item.system.resource.icon}}{{item.system.resource.icon}}{{else}}fa-solid fa-hashtag{{/if}}"></i> <i class="{{#if item.system.resource.icon}}{{item.system.resource.icon}}{{else}}fa-solid fa-hashtag{{/if}}"></i>
<input type="number" class="inventory-item-resource" value="{{item.system.resource.value}}" step="1" /> <input type="number" class="inventory-item-resource" value="{{item.system.resource.value}}" min="0" max="{{rollParsed item.system.resource.max item.actor item true}}" />
</div> </div>
{{else}} {{else}}
<div class="item-resources"> <div class="item-resources">