vagabond-rpg-foundryvtt/templates/actor/npc-header.hbs
Cal Corum ed694372d5 Add clickable profile image to change actor portrait
- Update templates to use data-action="editImage" (v13 style)
- Add custom #onEditImage handler using FilePicker API
- Add hover effect and cursor:pointer to profile images

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 15:01:27 -06:00

67 lines
2.2 KiB
Handlebars

{{!-- NPC Sheet Header --}}
<div class="header-wrapper">
<header class="sheet-header npc-header">
<div class="header-portrait">
<img class="profile-img" src="{{actor.img}}" alt="{{actor.name}}"
data-action="editImage" data-field="img" data-tooltip="VAGABOND.ChangePortrait" />
</div>
<div class="header-info">
<h1 class="actor-name">
<input type="text" name="name" value="{{actor.name}}" placeholder="{{localize 'VAGABOND.NPCName'}}" />
</h1>
<div class="header-stats">
<div class="stat-box hd">
<label>HD</label>
<input type="number" name="system.hd" value="{{hd}}" min="0" />
</div>
<div class="stat-box tl">
<label>TL</label>
<input type="number" name="system.tl" value="{{tl}}" min="0" step="0.1" />
</div>
<div class="stat-box armor">
<label>{{localize "VAGABOND.Armor"}}</label>
<input type="number" name="system.armor" value="{{armor}}" min="0" />
</div>
<div class="stat-box morale">
<label>{{localize "VAGABOND.Morale"}}</label>
<input type="number" name="system.morale" value="{{morale}}" min="2" max="12" />
<button type="button" class="morale-roll" data-action="rollMorale"
data-tooltip="{{localize 'VAGABOND.RollMorale'}}"
{{#if moraleStatus.broken}}disabled{{/if}}>
<i class="fa-solid fa-dice"></i>
</button>
</div>
</div>
</div>
<div class="header-hp">
<div class="hp-bar {{#if hp.isDead}}dead{{else if hp.isHalf}}half{{/if}}">
<label>HP</label>
<div class="bar-container">
<div class="bar-fill" style="width: {{hp.percent}}%"></div>
<div class="bar-values">
<input type="number" name="system.hp.value" value="{{hp.value}}" min="0" />
<span class="separator">/</span>
<input type="number" name="system.hp.max" value="{{hp.max}}" min="1" />
</div>
</div>
</div>
{{#if moraleStatus.broken}}
<div class="morale-broken">
<i class="fa-solid fa-flag"></i>
{{localize "VAGABOND.MoraleBroken"}}
</div>
{{/if}}
</div>
</header>
{{!-- Status Bar (below header) --}}
{{> "systems/vagabond/templates/actor/parts/status-bar.hbs"}}
</div>