ENhance actor sheet with roll messages

This commit is contained in:
2026-03-07 16:09:00 +01:00
parent 8dec307ced
commit 63da2ef664
32 changed files with 888 additions and 22 deletions
+47
View File
@@ -0,0 +1,47 @@
<div class="ability-use-message">
<div class="ability-use-header">
<img class="ability-use-img" src="{{img}}" alt="{{name}}" />
<div class="ability-use-title">
<span class="ability-use-name">{{name}}</span>
<span class="ability-use-cost">{{costLabel}}</span>
</div>
<span class="ability-use-type">{{abilityTypeLabel}}</span>
</div>
{{#if traits.length}}
<div class="ability-use-traits">
{{#each traits}}<span class="ability-trait-tag">{{this}}</span>{{/each}}
</div>
{{/if}}
<div class="ability-use-meta">
{{#if frequency}}
<div class="ability-meta-row">
<span class="ability-meta-label">{{localize "AWEMMY.Ability.Frequency"}}</span>
<span class="ability-meta-value">{{frequency}}</span>
</div>
{{/if}}
{{#if trigger}}
<div class="ability-meta-row">
<span class="ability-meta-label">{{localize "AWEMMY.Ability.Trigger"}}</span>
<span class="ability-meta-value">{{trigger}}</span>
</div>
{{/if}}
{{#if requirements}}
<div class="ability-meta-row">
<span class="ability-meta-label">{{localize "AWEMMY.Ability.Requirements"}}</span>
<span class="ability-meta-value">{{requirements}}</span>
</div>
{{/if}}
{{#if flowPointCost}}
<div class="ability-meta-row">
<span class="ability-meta-label">{{localize "AWEMMY.Ability.FlowPointCost"}}</span>
<span class="ability-meta-value ability-fp-cost">{{flowPointCost}} FP</span>
</div>
{{/if}}
</div>
{{#if description}}
<div class="ability-use-description">{{{description}}}</div>
{{/if}}
</div>
+4
View File
@@ -14,6 +14,10 @@
<label>{{localize "AWEMMY.Ability.CostLabel"}}</label>
{{formField systemFields.cost value=system.cost localize=true}}
</div>
<div class="form-group">
<label>{{localize "AWEMMY.Ability.FlowPointCost"}}</label>
{{formInput systemFields.flowPointCost value=system.flowPointCost}}
</div>
</div>
<div class="form-group">
+8 -8
View File
@@ -30,8 +30,8 @@
{{/if}}
</span>
<div class="item-controls">
<a class="item-control" data-action="edit" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="Edit"><i class="fas fa-edit"></i></a>
<a class="item-control" data-action="delete" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="Delete"><i class="fas fa-trash"></i></a>
<a class="item-control" data-action="edit" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="{{localize 'AWEMMY.Sheet.EditItem'}}"><i class="fas fa-edit"></i></a>
<a class="item-control" data-action="delete" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="{{localize 'AWEMMY.Sheet.DeleteItem'}}"><i class="fas fa-trash"></i></a>
</div>
</div>
{{/each}}
@@ -57,8 +57,8 @@
</span>
{{/if}}
<div class="item-controls">
<a class="item-control" data-action="edit" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="Edit"><i class="fas fa-edit"></i></a>
<a class="item-control" data-action="delete" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="Delete"><i class="fas fa-trash"></i></a>
<a class="item-control" data-action="edit" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="{{localize 'AWEMMY.Sheet.EditItem'}}"><i class="fas fa-edit"></i></a>
<a class="item-control" data-action="delete" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="{{localize 'AWEMMY.Sheet.DeleteItem'}}"><i class="fas fa-trash"></i></a>
</div>
</div>
{{/each}}
@@ -73,8 +73,8 @@
<img src="{{img}}" class="item-img" alt="{{name}}" />
<span class="item-name">{{name}}</span>
<div class="item-controls">
<a class="item-control" data-action="edit" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="Edit"><i class="fas fa-edit"></i></a>
<a class="item-control" data-action="delete" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="Delete"><i class="fas fa-trash"></i></a>
<a class="item-control" data-action="edit" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="{{localize 'AWEMMY.Sheet.EditItem'}}"><i class="fas fa-edit"></i></a>
<a class="item-control" data-action="delete" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="{{localize 'AWEMMY.Sheet.DeleteItem'}}"><i class="fas fa-trash"></i></a>
</div>
</div>
{{/each}}
@@ -89,8 +89,8 @@
<img src="{{img}}" class="item-img" alt="{{name}}" />
<span class="item-name">{{name}}</span>
<div class="item-controls">
<a class="item-control" data-action="edit" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="Edit"><i class="fas fa-edit"></i></a>
<a class="item-control" data-action="delete" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="Delete"><i class="fas fa-trash"></i></a>
<a class="item-control" data-action="edit" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="{{localize 'AWEMMY.Sheet.EditItem'}}"><i class="fas fa-edit"></i></a>
<a class="item-control" data-action="delete" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="{{localize 'AWEMMY.Sheet.DeleteItem'}}"><i class="fas fa-trash"></i></a>
</div>
</div>
{{/each}}
+2
View File
@@ -10,6 +10,7 @@
<div class="item-name">{{item.name}}</div>
<div class="item-charges">{{item.system.charges.value}}/{{item.system.charges.max}}</div>
<div class="item-controls">
<a data-action="useKit" data-item-id="{{item.id}}" data-tooltip="{{localize "AWEMMY.Kit.Use"}}"><i class="fas fa-hand-sparkles"></i></a>
<a data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
{{#if ../isEditMode}}
<a data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
@@ -37,6 +38,7 @@
<div class="item-range">{{localize "AWEMMY.Weapon.Range"}}: {{item.system.range}}</div>
<div class="item-controls">
<a data-action="rollWeapon" data-item-id="{{item.id}}" data-tooltip="{{localize "AWEMMY.Weapon.AttackRoll"}}"><i class="fas fa-dice-d20"></i></a>
<a data-action="rollDamage" data-item-id="{{item.id}}" data-tooltip="{{localize "AWEMMY.Weapon.DamageRoll"}}"><i class="fas fa-burst"></i></a>
<a data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-edit"></i></a>
{{#if ../isEditMode}}
<a data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}"><i class="fas fa-trash"></i></a>
+3
View File
@@ -49,6 +49,9 @@
</div>
<div class="sheet-controls">
<button type="button" data-action="longRest" data-tooltip="{{localize 'AWEMMY.Rest.LongRest'}}">
<i class="fa-solid fa-moon"></i>
</button>
<button type="button" data-action="toggleSheet" data-tooltip="{{#if isPlayMode}}{{localize 'AWEMMY.Sheet.EditMode'}}{{else}}{{localize 'AWEMMY.Sheet.PlayMode'}}{{/if}}">
{{#if isPlayMode}}<i class="fa-solid fa-lock"></i>{{else}}<i class="fa-solid fa-unlock"></i>{{/if}}
</button>
+29 -3
View File
@@ -51,14 +51,20 @@
<legend>{{localize "AWEMMY.Item.Ability"}}</legend>
<div class="item-list">
{{#each abilities as |item|}}
<div class="item-row" data-drag="true" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
<div class="item-row {{#if item.usedToday}}ability-used{{/if}}" data-drag="true" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}">
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
<div class="item-name">{{item.name}}</div>
<div class="item-cost">{{item.costLabel}}</div>
{{#if item.system.frequency}}<div class="item-frequency">{{item.system.frequency}}</div>{{/if}}
<div class="item-controls">
<a data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-tooltip="Edit"><i class="fas fa-edit"></i></a>
<a data-action="useAbility" data-item-id="{{item.id}}"
class="{{#if item.usedToday}}ability-used-btn{{/if}}"
data-tooltip="{{#if item.usedToday}}{{localize "AWEMMY.Ability.AlreadyUsed"}}{{else}}{{localize "AWEMMY.Ability.Use"}}{{/if}}">
<i class="fas fa-bolt"></i>
</a>
<a data-action="edit" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-tooltip="{{localize 'AWEMMY.Sheet.EditItem'}}"><i class="fas fa-edit"></i></a>
{{#if ../isEditMode}}
<a data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-tooltip="Delete"><i class="fas fa-trash"></i></a>
<a data-action="delete" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-tooltip="{{localize 'AWEMMY.Sheet.DeleteItem'}}"><i class="fas fa-trash"></i></a>
{{/if}}
</div>
</div>
@@ -68,6 +74,26 @@
<button type="button" data-action="createAbility"><i class="fas fa-plus"></i> {{localize "AWEMMY.Item.Ability"}}</button>
</div>
{{/if}}
{{#if hasUsedAbilities}}
<div class="daily-reset">
<button type="button" data-action="dailyReset" data-tooltip="{{localize 'AWEMMY.Ability.DailyResetHint'}}">
<i class="fas fa-sun"></i> {{localize "AWEMMY.Ability.DailyReset"}}
</button>
</div>
{{/if}}
</div>
</fieldset>
{{!-- Conditions --}}
<fieldset class="conditions-fieldset">
<legend>{{localize "AWEMMY.Condition.Panel"}}</legend>
<div class="conditions-panel">
{{#each conditions as |cond|}}
<a class="condition-badge {{#if cond.active}}active{{/if}}" data-action="toggleCondition" data-condition-id="{{cond.id}}" data-tooltip="{{cond.label}}">
<img src="{{cond.img}}" alt="{{cond.label}}" />
<span class="condition-label">{{cond.label}}</span>
</a>
{{/each}}
</div>
</fieldset>
+21
View File
@@ -45,6 +45,11 @@
{{#if (gt knowledgeBonus 0)}}+ {{knowledgeBonus}}{{else if (lt knowledgeBonus 0)}} {{abs knowledgeBonus}}{{/if}}
</span>
{{/if}}
{{#if conditionBonus}}
<span class="roll-mod condition">
{{#if (gt conditionBonus 0)}}+ {{conditionBonus}}{{else if (lt conditionBonus 0)}} {{abs conditionBonus}}{{/if}}
</span>
{{/if}}
<span class="roll-equals">=</span>
<span class="roll-total">{{total}}</span>
{{#if dc}}<span class="roll-dc">/ DC {{dc}}</span>{{/if}}
@@ -80,6 +85,22 @@
</div>
{{/if}}
{{!-- Damage roll button (shown on weapon attacks where damage wasn't auto-rolled) --}}
{{#if damageFormula}}
{{#unless damageResult}}
<div class="chat-damage-action">
<button type="button" class="roll-damage-btn"
data-actor-id="{{actorId}}"
data-damage-formula="{{damageFormula}}"
data-damage-type="{{damageType}}"
data-item-name="{{sourceItemName}}"
data-item-img="{{sourceItemImg}}">
<i class="fas fa-burst"></i> {{localize "AWEMMY.Weapon.DamageRoll"}}
</button>
</div>
{{/unless}}
{{/if}}
{{else}}
<div class="private-result">
<i class="fa-solid fa-eye-slash"></i> {{localize "AWEMMY.Roll.Private"}}
+4
View File
@@ -21,6 +21,10 @@
<label>{{localize "AWEMMY.Creature.Threshold2"}}</label>
<textarea name="system.eurekaThreshold2" rows="3" placeholder="{{localize 'AWEMMY.Creature.Threshold2'}}…">{{system.eurekaThreshold2}}</textarea>
</div>
<div class="eureka-field">
<label>{{localize "AWEMMY.Creature.Threshold3"}}</label>
<textarea name="system.eurekaThreshold3" rows="3" placeholder="{{localize 'AWEMMY.Creature.Threshold3'}}…">{{system.eurekaThreshold3}}</textarea>
</div>
</div>
<div class="eureka-field">