Files
fvtt-oath-hammer/templates/actor/character-sheet.hbs

102 lines
5.8 KiB
Handlebars

<section class="character-main character-main-{{ifThen isPlayMode 'play' 'edit'}}">
<fieldset>
<legend>{{localize "OATHHAMMER.Label.Character"}}</legend>
<div class="character-pc character-pc-{{ifThen isPlayMode 'play' 'edit'}}">
{{!-- Portrait column --}}
<div class="character-portrait">
<img class="actor-img" src="{{actor.img}}" data-edit="img" data-action="editImage" data-tooltip="{{actor.name}}" />
</div>
{{!-- Right column: name + identity + stats band --}}
<div class="character-right">
{{!-- Row 1: Name + toggle --}}
<div class="character-name">
{{formInput fields.name value=source.name rootId=partId disabled=isPlayMode}}
<a class="control" data-action="toggleSheet" data-tooltip="OATHHAMMER.ToggleSheet" data-tooltip-direction="UP">
<i class="fa-solid fa-user-{{ifThen isPlayMode 'lock' 'pen'}}"></i>
</a>
</div>
{{!-- Row 2: Identity bar (lineage + class + level/xp) --}}
<div class="character-identity-bar">
<div class="identity-slot lineage-slot">
<i class="fa-solid fa-person slot-icon"></i>
{{formInput systemFields.lineage.fields.name value=system.lineage.name name="system.lineage.name" placeholder=(localize "OATHHAMMER.Label.Lineage") disabled=isPlayMode}}
</div>
<div class="identity-slot class-slot {{#unless characterClass}}empty{{/unless}}" data-drop-type="class">
{{#if characterClass}}
<img src="{{characterClass.img}}" class="identity-img" data-item-id="{{characterClass.id}}" data-item-uuid="{{characterClass.uuid}}" />
<span class="identity-name">{{characterClass.name}}</span>
{{#unless isPlayMode}}
<a data-action="edit" data-item-id="{{characterClass.id}}" data-item-uuid="{{characterClass.uuid}}"><i class="fa-solid fa-edit"></i></a>
<a data-action="delete" data-item-id="{{characterClass.id}}" data-item-uuid="{{characterClass.uuid}}"><i class="fa-solid fa-trash"></i></a>
{{/unless}}
{{else}}
<i class="fa-solid fa-shield-halved slot-icon"></i>
<span class="slot-placeholder">{{localize "OATHHAMMER.Label.DropClass"}}</span>
{{/if}}
</div>
<div class="identity-xp">
<span class="xp-label">{{localize "OATHHAMMER.Label.Level"}}</span>
{{formInput systemFields.experience.fields.level value=system.experience.level name="system.experience.level" disabled=isPlayMode}}
<span class="xp-label">{{localize "OATHHAMMER.Label.XP"}}</span>
{{formInput systemFields.experience.fields.current value=system.experience.current name="system.experience.current" disabled=isPlayMode}}
<span class="xp-sep">/</span>
{{formInput systemFields.experience.fields.total value=system.experience.total name="system.experience.total" disabled=isPlayMode}}
</div>
</div>
{{!-- Row 3: Unified stats band: resources | attributes | arcane stress --}}
<div class="character-stats-band">
<fieldset class="character-resources">
<div class="character-resource">
<span class="resource-label">{{localize "OATHHAMMER.Label.Grit"}}</span>
{{formInput systemFields.grit.fields.value value=system.grit.value name="system.grit.value" disabled=isPlayMode}}
<span class="res-sep">/</span>
{{formInput systemFields.grit.fields.max value=system.grit.max name="system.grit.max" disabled=isPlayMode}}
</div>
<div class="character-resource">
<span class="resource-label">{{localize "OATHHAMMER.Label.Luck"}}</span>
{{formInput systemFields.luck.fields.value value=system.luck.value name="system.luck.value" disabled=isPlayMode}}
<span class="res-sep">/</span>
{{formInput systemFields.luck.fields.max value=system.luck.max name="system.luck.max" disabled=isPlayMode}}
</div>
<div class="character-resource">
<span class="resource-label">{{localize "OATHHAMMER.Label.Defense"}}</span>
<input type="text" value="{{system.defense.value}}" disabled class="defense-display" />
</div>
<div class="character-resource">
<span class="resource-label">{{localize "OATHHAMMER.Label.Movement"}}</span>
{{formInput systemFields.movement.fields.base value=system.movement.base name="system.movement.base" disabled=isPlayMode}}
</div>
</fieldset>
<fieldset class="character-attributes character-attributes-{{ifThen isPlayMode 'play' 'edit'}}">
<legend>{{localize "OATHHAMMER.Label.Attributes"}}</legend>
<div class="attributes-grid">
{{#each system.attributes as |attr key|}}
<div class="attribute-box">
<label>{{localize (concat "OATHHAMMER.Attribute." (capitalize key))}}</label>
<input type="number" name="system.attributes.{{key}}.rank" value="{{attr.rank}}" min="1" max="4" {{#if ../isPlayMode}}disabled{{/if}}>
</div>
{{/each}}
</div>
</fieldset>
<fieldset class="character-arcane-stress">
<legend>{{localize "OATHHAMMER.Label.ArcaneStress"}}</legend>
<div class="stress-inputs">
{{formInput systemFields.arcaneStress.fields.value value=system.arcaneStress.value name="system.arcaneStress.value" disabled=isPlayMode}}
<span>/</span>
{{formInput systemFields.arcaneStress.fields.threshold value=system.arcaneStress.threshold name="system.arcaneStress.threshold" disabled=isPlayMode}}
</div>
</fieldset>
</div>
</div>
</div>
</fieldset>
</section>