Add initiative rolls

This commit is contained in:
2026-03-18 16:51:10 +01:00
parent 000bf348a6
commit b2befe039e
30 changed files with 512 additions and 144 deletions

View File

@@ -3,6 +3,12 @@
<span class="slots-label">{{localize "OATHHAMMER.Label.ItemSlots"}}</span>
<span class="slots-value {{#if slotsOver}}slots-over{{/if}}">{{slotsUsed}} / {{slotsMax}}</span>
</div>
<div class="initiative-bar">
<a data-action="rollInitiative" class="initiative-roll-btn" data-tooltip="{{localize 'OATHHAMMER.Roll.InitiativeHint'}}">
<i class="fa-solid fa-swords"></i> {{localize "OATHHAMMER.Dialog.RollInitiative"}}
</a>
{{#if combatantInitiative}}<span class="initiative-score" data-tooltip="{{localize 'OATHHAMMER.Label.Initiative'}}">⚔ {{combatantInitiative}}</span>{{/if}}
</div>
<fieldset>
<legend>{{localize "OATHHAMMER.Label.Weapons"}}
{{#unless isPlayMode}}<a data-action="createWeapon" class="create-btn"><i class="fa-solid fa-plus"></i></a>{{/unless}}
@@ -22,7 +28,7 @@
{{#each weapons as |weapon|}}
<li class="item-entry" data-item-id="{{weapon.id}}" data-item-uuid="{{weapon.uuid}}">
<img src="{{weapon.img}}" class="item-img" />
<span class="item-name" {{#if weapon._traitsTooltip}}title="{{weapon._traitsTooltip}}"{{/if}}>{{weapon.name}}</span>
<span class="item-name" {{#if weapon._descTooltip}}data-tooltip="{{weapon._descTooltip}}"{{/if}}>{{weapon.name}}</span>
<span class="item-group">{{weapon._groupLabel}}</span>
<span class="item-detail">{{weapon.system.damageLabel}}</span>
<span class="item-detail">{{#if weapon.system.ap}}{{weapon.system.ap}}{{else}}{{/if}}</span>
@@ -62,7 +68,7 @@
{{#each armors as |armor|}}
<li class="item-entry" data-item-id="{{armor.id}}" data-item-uuid="{{armor.uuid}}">
<img src="{{armor.img}}" class="item-img" />
<span class="item-name" {{#if armor._traitsTooltip}}title="{{armor._traitsTooltip}}"{{/if}}>{{armor.name}}</span>
<span class="item-name" {{#if armor._descTooltip}}data-tooltip="{{armor._descTooltip}}"{{/if}}>{{armor.name}}</span>
<span class="item-type">{{armor._typeLabel}}</span>
<span class="item-detail">{{armor.system.armorValue}}</span>
<span class="item-detail">{{#if armor.system.penalty}}{{armor.system.penalty}}{{else}}{{/if}}</span>

View File

@@ -36,7 +36,7 @@
{{#each equipment as |equip|}}
<li class="item-entry" data-item-id="{{equip.id}}" data-item-uuid="{{equip.uuid}}">
<img src="{{equip.img}}" class="item-img" />
<span class="item-name">{{equip.name}}</span>
<span class="item-name" {{#if equip._descTooltip}}data-tooltip="{{equip._descTooltip}}"{{/if}}>{{equip.name}}</span>
<span class="item-type">{{localize equip.system.itemType}}</span>
<span class="item-detail">{{equip.system.quantity}}</span>
<div class="item-actions">
@@ -64,7 +64,7 @@
{{#each magicItems as |mi|}}
<li class="item-entry" data-item-id="{{mi.id}}" data-item-uuid="{{mi.uuid}}">
<img src="{{mi.img}}" class="item-img" />
<span class="item-name">{{mi.name}}</span>
<span class="item-name" {{#if mi._descTooltip}}data-tooltip="{{mi._descTooltip}}"{{/if}}>{{mi.name}}</span>
<span class="item-type">{{localize mi.system.rarity}}</span>
<div class="item-actions">
<a data-action="edit" data-item-id="{{mi.id}}" data-item-uuid="{{mi.uuid}}"><i class="fa-solid fa-edit"></i></a>

View File

@@ -1,8 +1,38 @@
<section data-tab="identity" data-group="{{tab.group}}" class="tab {{tab.cssClass}}">
{{!-- Oaths --}}
<fieldset>
<legend>{{localize "OATHHAMMER.Label.Background"}}</legend>
{{formInput systemFields.background enriched=enrichedBackground value=system.background name="system.background" toggled=true}}
<legend>{{localize "OATHHAMMER.Label.Oaths"}}
{{#unless isPlayMode}}<a data-action="createOath" class="create-btn"><i class="fa-solid fa-plus"></i></a>{{/unless}}
</legend>
{{#if oaths.length}}
<ul class="item-list item-list--oath">
<li class="item-list-header">
<span></span>
<span class="col-name">{{localize "OATHHAMMER.Label.Name"}}</span>
<span>{{localize "OATHHAMMER.Label.Type"}}</span>
<span>{{localize "OATHHAMMER.Label.Violated"}}</span>
<span></span>
</li>
{{#each oaths as |oath|}}
<li class="item-entry {{#if oath._violated}}oath--violated{{/if}}" data-item-id="{{oath.id}}" data-item-uuid="{{oath.uuid}}">
<img src="{{oath.img}}" class="item-img" />
<span class="item-name" {{#if oath._descTooltip}}data-tooltip="{{oath._descTooltip}}"{{/if}}>{{oath.name}}</span>
<span class="item-type">{{oath._typeLabel}}</span>
<span class="item-violated">{{#if oath._violated}}<i class="fa-solid fa-circle-xmark"></i>{{else}}<i class="fa-regular fa-circle-check"></i>{{/if}}</span>
<div class="item-actions">
<a data-action="edit" data-item-id="{{oath.id}}" data-item-uuid="{{oath.uuid}}"><i class="fa-solid fa-edit"></i></a>
<a data-action="delete" data-item-id="{{oath.id}}" data-item-uuid="{{oath.uuid}}"><i class="fa-solid fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{else}}
<p class="no-items">{{localize "OATHHAMMER.Label.NoOaths"}}</p>
{{/if}}
</fieldset>
{{!-- Traits --}}
<fieldset>
<legend>{{localize "OATHHAMMER.Label.Traits"}}
{{#unless isPlayMode}}<a data-action="createTrait" class="create-btn"><i class="fa-solid fa-plus"></i></a>{{/unless}}
@@ -19,7 +49,7 @@
{{#each traits as |trait|}}
<li class="item-entry" data-item-id="{{trait.id}}" data-item-uuid="{{trait.uuid}}" data-drag="true">
<img src="{{trait.img}}" class="item-img" />
<span class="item-name">{{trait.name}}</span>
<span class="item-name" {{#if trait._descTooltip}}data-tooltip="{{trait._descTooltip}}"{{/if}}>{{trait.name}}</span>
<span class="item-type">{{trait._typeLabel}}</span>
<span class="item-usage">{{trait._usageLabel}}</span>
<div class="item-actions">
@@ -33,30 +63,11 @@
<p class="no-items">{{localize "OATHHAMMER.Label.NoTraits"}}</p>
{{/if}}
</fieldset>
{{#if oaths.length}}
{{!-- Background --}}
<fieldset>
<legend>{{localize "OATHHAMMER.Label.Oaths"}}</legend>
<ul class="item-list item-list--oath">
<li class="item-list-header">
<span></span>
<span class="col-name">{{localize "OATHHAMMER.Label.Name"}}</span>
<span>{{localize "OATHHAMMER.Label.Type"}}</span>
<span>{{localize "OATHHAMMER.Label.Violated"}}</span>
<span></span>
</li>
{{#each oaths as |oath|}}
<li class="item-entry {{#if oath._violated}}oath--violated{{/if}}" data-item-id="{{oath.id}}" data-item-uuid="{{oath.uuid}}">
<img src="{{oath.img}}" class="item-img" />
<span class="item-name">{{oath.name}}</span>
<span class="item-type">{{oath._typeLabel}}</span>
<span class="item-violated">{{#if oath._violated}}<i class="fa-solid fa-circle-xmark"></i>{{else}}<i class="fa-regular fa-circle-check"></i>{{/if}}</span>
<div class="item-actions">
<a data-action="edit" data-item-id="{{oath.id}}" data-item-uuid="{{oath.uuid}}"><i class="fa-solid fa-edit"></i></a>
<a data-action="delete" data-item-id="{{oath.id}}" data-item-uuid="{{oath.uuid}}"><i class="fa-solid fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
<legend>{{localize "OATHHAMMER.Label.Background"}}</legend>
{{formInput systemFields.background enriched=enrichedBackground value=system.background name="system.background" toggled=true}}
</fieldset>
{{/if}}
</section>

View File

@@ -23,7 +23,7 @@
{{#each spells as |spell|}}
<li class="item-entry" data-item-id="{{spell.id}}" data-item-uuid="{{spell.uuid}}">
<img src="{{spell.img}}" class="item-img" />
<span class="item-name">{{spell.name}}</span>
<span class="item-name" {{#if spell._descTooltip}}data-tooltip="{{spell._descTooltip}}"{{/if}}>{{spell.name}}</span>
<span class="item-detail">{{spell.system.difficultyValue}}</span>
<span class="item-type">{{localize spell.system.tradition}}</span>
<span class="item-detail">—</span>
@@ -61,7 +61,7 @@
{{#each miracles as |miracle|}}
<li class="item-entry" data-item-id="{{miracle.id}}" data-item-uuid="{{miracle.uuid}}">
<img src="{{miracle.img}}" class="item-img" />
<span class="item-name">{{miracle.name}}</span>
<span class="item-name" {{#if miracle._descTooltip}}data-tooltip="{{miracle._descTooltip}}"{{/if}}>{{miracle.name}}</span>
<span class="item-detail">{{miracle.system.divineTradition}}</span>
<div class="item-actions">
<a data-action="castMiracle" data-item-id="{{miracle.id}}" title="{{localize 'OATHHAMMER.Action.InvokeMiracle'}}"><i class="fa-solid fa-hands-praying miracle-cast-icon"></i></a>

View File

@@ -48,7 +48,7 @@
</div>
</div>
{{!-- Row 3: Unified stats band: resources | attributes | arcane stress --}}
{{!-- Row 3: Unified stats band: resources | attributes --}}
<div class="character-stats-band">
<fieldset class="character-resources">
<div class="character-resource">
@@ -63,10 +63,6 @@
<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}}
@@ -84,15 +80,6 @@
{{/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>

View File

@@ -1,4 +1,10 @@
<section data-tab="combat" class="tab">
<div class="initiative-bar">
<a data-action="rollInitiative" class="initiative-roll-btn" data-tooltip="{{localize 'OATHHAMMER.Roll.InitiativeHint'}}">
<i class="fa-solid fa-swords"></i> {{localize "OATHHAMMER.Dialog.RollInitiative"}}
</a>
{{#if combatantInitiative}}<span class="initiative-score" data-tooltip="{{localize 'OATHHAMMER.Label.Initiative'}}">⚔ {{combatantInitiative}}</span>{{/if}}
</div>
<fieldset>
<legend>{{localize "OATHHAMMER.Label.Weapons"}}</legend>
{{#if weapons.length}}

View File

@@ -43,6 +43,10 @@
<label>{{localize "OATHHAMMER.Label.DamageBonus"}}</label>
{{formInput systemFields.damageBonus value=system.damageBonus name="system.damageBonus" disabled=isPlayMode}}
</div>
<div class="form-group">
<label>{{localize "OATHHAMMER.Label.InitiativeBonus"}}</label>
{{formInput systemFields.initiativeBonus value=system.initiativeBonus name="system.initiativeBonus" disabled=isPlayMode}}
</div>
</div>
</fieldset>
<fieldset>