Combat tab for v13
All checks were successful
Release Creation / build (release) Successful in 1m20s
All checks were successful
Release Creation / build (release) Successful in 1m20s
This commit is contained in:
39
templates/combat-tracker-footer-v2.hbs
Normal file
39
templates/combat-tracker-footer-v2.hbs
Normal file
@ -0,0 +1,39 @@
|
||||
<nav class="combat-controls" data-tooltip-direction="UP">
|
||||
{{~#if hasCombat~}}
|
||||
|
||||
{{!-- GM Controls --}}
|
||||
{{#if user.isGM}}
|
||||
{{#if combat.round}}
|
||||
<!-- <button type="button" class="inline-control combat-control icon fa-solid fa-backward-step"
|
||||
data-action="previousRound" data-tooltip aria-label="{{ localize "COMBAT.RoundPrev" }}"></button>
|
||||
<button type="button" class="inline-control combat-control icon fa-solid fa-arrow-left" data-action="previousTurn"
|
||||
data-tooltip aria-label="{{ localize "COMBAT.TurnPrev" }}"></button> -->
|
||||
<button type="button" class="combat-control combat-control-lg" data-action="endCombat">
|
||||
<i class="fa-solid fa-xmark" inert></i>
|
||||
<span>{{ localize "COMBAT.End" }}</span>
|
||||
</button>
|
||||
|
||||
<!-- <button type="button" class="inline-control combat-control icon fa-solid fa-arrow-right" data-action="nextTurn"
|
||||
data-tooltip aria-label="{{ localize "COMBAT.TurnNext" }}"></button> -->
|
||||
<button type="button" class="inline-control combat-control icon fa-solid fa-forward-step" data-action="nextRound"
|
||||
data-tooltip aria-label="{{ localize "COMBAT.RoundNext" }}"></button>
|
||||
{{else}}
|
||||
<button type="button" class="combat-control combat-control-lg" data-action="startCombat">
|
||||
<i class="fa-solid fa-swords" inert></i>
|
||||
<span>{{ localize "COMBAT.Begin" }}</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
|
||||
{{!-- Active Player Controls --}}
|
||||
{{else if control}}
|
||||
<!-- <button type="button" class="inline-control combat-control icon fa-solid fa-arrow-left" data-action="previousTurn"
|
||||
data-tooltip aria-label="{{ localize "COMBAT.TurnPrev" }}"></button>
|
||||
<button type="button" class="combat-control combat-control-lg" data-action="nextTurn">
|
||||
<i class="fa-solid fa-check"></i>
|
||||
<span>{{ localize "COMBAT.TurnEnd" }}</span>
|
||||
</button>
|
||||
<button type="button" class="inline-control combat-control icon fa-solid fa-arrow-right" data-action="nextTurn"
|
||||
data-tooltip aria-label="{{ localize "COMBAT.TurnNext" }}"></button> -->
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</nav>
|
92
templates/combat-tracker-header-v2.hbs
Normal file
92
templates/combat-tracker-header-v2.hbs
Normal file
@ -0,0 +1,92 @@
|
||||
<header class="combat-tracker-header">
|
||||
|
||||
{{!-- Encounter Controls --}}
|
||||
{{#if user.isGM}}
|
||||
<nav class="encounters {{ css }}" aria-label="{{ localize "COMBAT.NavLabel" }}">
|
||||
|
||||
{{!-- Cycle Display --}}
|
||||
{{#if displayCycle}}
|
||||
<button type="button" class="inline-control icon fa-solid fa-plus" data-action="createCombat"
|
||||
data-tooltip aria-label="{{ localize "COMBAT.Create" }}"></button>
|
||||
|
||||
<div class="cycle-combats">
|
||||
<button type="button" class="inline-control icon fa-solid fa-caret-left" data-action="cycleCombat"
|
||||
{{#if previousId}}data-combat-id="{{ previousId }}" {{else}}disabled{{/if}}
|
||||
data-tooltip aria-label="{{ localize "COMBAT.EncounterPrevious" }}"></button>
|
||||
<div class="encounter-count">
|
||||
<span class="value">{{ currentIndex }}</span>
|
||||
<span class="separator">/</span>
|
||||
<span class="max">{{ combats.length }}</span>
|
||||
</div>
|
||||
<button type="button" class="inline-control icon fa-solid fa-caret-right" data-action="cycleCombat"
|
||||
{{#if nextId}}data-combat-id="{{ nextId }}" {{else}}disabled{{/if}}
|
||||
data-tooltip aria-label="{{ localize "COMBAT.EncounterNext" }}"></button>
|
||||
</div>
|
||||
|
||||
<button type="button" class="inline-control icon fa-solid fa-gear" data-action="trackerSettings"
|
||||
data-tooltip aria-label="{{ localize "COMBAT.Settings" }}"></button>
|
||||
|
||||
{{!-- Tabbed Display --}}
|
||||
{{else if combats.length}}
|
||||
<button type="button" class="inline-control icon fa-solid fa-plus" data-action="createCombat"
|
||||
data-tooltip aria-label="{{ localize "COMBAT.Create" }}"></button>
|
||||
{{#each combats}}
|
||||
<button type="button" class="inline-control {{#if active}}active{{/if}}" data-action="cycleCombat"
|
||||
data-combat-id="{{ id }}">
|
||||
{{ label }}
|
||||
</button>
|
||||
{{/each}}
|
||||
<button type="button" class="inline-control icon fa-solid fa-gear" data-action="trackerSettings"
|
||||
data-tooltip aria-label="{{ localize "COMBAT.Settings" }}"></button>
|
||||
|
||||
{{!-- No Combats --}}
|
||||
{{else}}
|
||||
<button type="button" class="combat-control-lg" data-action="createCombat">
|
||||
<i class="fa-solid fa-plus" inert></i>
|
||||
<span>{{ localize "COMBAT.Create" }}</span>
|
||||
</button>
|
||||
|
||||
{{/if}}
|
||||
</nav>
|
||||
{{/if}}
|
||||
|
||||
<div class="encounter-controls {{#if hasCombat}}combat{{/if}}">
|
||||
|
||||
{{!-- Bulk Rolls --}}
|
||||
<div class="control-buttons left flexrow">
|
||||
{{#if user.isGM}}
|
||||
<button type="button" class="inline-control combat-control icon fa-solid fa-users" data-action="rollAll"
|
||||
{{#unless combat.turns.length}}disabled{{/unless}} data-tooltip="COMBAT.RollAll"
|
||||
aria-label="{{ localize "COMBAT.RollAll" }}"></button>
|
||||
<button type="button" class="inline-control combat-control icon fa-solid fa-users-cog" data-action="rollNPC"
|
||||
{{#unless combat.turns.length}}disabled{{/unless}} data-tooltip="COMBAT.RollNPC"
|
||||
aria-label="{{ localize "COMBAT.RollNPC" }}"></button>
|
||||
{{else}}
|
||||
<div class="spacer"></div>
|
||||
<div class="spacer"></div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
{{!-- Combat Status --}}
|
||||
<strong class="encounter-title">
|
||||
{{#if combats.length}}
|
||||
{{#if combat.round}}
|
||||
{{ localize "COMBAT.Round" round=combat.round }}
|
||||
{{else}}
|
||||
{{ localize "COMBAT.NotStarted" }}
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{ localize "COMBAT.None" }}
|
||||
{{/if}}
|
||||
</strong>
|
||||
|
||||
{{!-- Combat Controls --}}
|
||||
<div class="control-buttons right flexrow">
|
||||
<div class="spacer"></div>
|
||||
<button type="button" class="encounter-context-menu inline-control combat-control icon fa-solid fa-ellipsis-vertical"
|
||||
{{#unless (and user.isGM hasCombat)}}disabled{{/unless}}></button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
81
templates/combat-tracker-v2.hbs
Normal file
81
templates/combat-tracker-v2.hbs
Normal file
@ -0,0 +1,81 @@
|
||||
<ol class="combat-tracker plain">
|
||||
{{#each turns}}
|
||||
<li class="combatant {{ css }}" data-combatant-id="{{ id }}" data-action="activateCombatant">
|
||||
{{!-- TODO: Targets --}}
|
||||
|
||||
{{!-- Image --}}
|
||||
<img class="token-image" src="{{ img }}" alt="{{ name }}" loading="lazy">
|
||||
|
||||
{{!-- Name & Controls --}}
|
||||
<div class="token-name">
|
||||
<strong class="name">{{ name }}</strong>
|
||||
<div class="combatant-controls">
|
||||
{{#if @root.user.isGM}}
|
||||
<button type="button" class="inline-control combatant-control icon fa-solid fa-eye-slash {{#if hidden}}active{{/if}}"
|
||||
data-action="toggleHidden" data-tooltip aria-label="{{ localize "COMBAT.ToggleVis" }}"></button>
|
||||
<button type="button" class="inline-control combatant-control icon fa-solid fa-skull {{#if isDefeated}}active{{/if}}"
|
||||
data-action="toggleDefeated" data-tooltip
|
||||
aria-label="{{ localize "COMBAT.ToggleDead" }}"></button>
|
||||
{{/if}}
|
||||
{{#if canPing}}
|
||||
<button type="button" class="inline-control combatant-control icon fa-solid fa-bullseye-arrow"
|
||||
data-action="pingCombatant" data-tooltip
|
||||
aria-label="{{ localize "COMBAT.PingCombatant" }}"></button>
|
||||
{{/if}}
|
||||
{{#unless @root.user.isGM}}
|
||||
<button type="button" class="inline-control combatant-control icon fa-solid fa-arrows-to-eye"
|
||||
data-action="panToCombatant" data-tooltip
|
||||
aria-label="{{ localize "COMBAT.PanToCombatant" }}"></button>
|
||||
{{/unless}}
|
||||
{{!-- TODO: Target Control --}}
|
||||
<div class="token-effects" data-tooltip-html="{{ effects.tooltip }}">
|
||||
{{#each effects.icons}}
|
||||
<img class="token-effect" src="{{ img }}" alt="{{ name }}">
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{!-- Resource --}}
|
||||
{{#if resource includeZero=true}}
|
||||
<div class="token-resource">
|
||||
<span class="resource">{{ resource }}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{!-- Initiative --}}
|
||||
<div class="token-initiative initiative-area">
|
||||
{{#if initiative includeZero=true}}
|
||||
|
||||
{{!-- Decimal Initiative --}}
|
||||
{{#if @root.hasDecimals}}
|
||||
<span>{{ initiative }}</span>
|
||||
|
||||
{{!-- Simple Initiative --}}
|
||||
{{else}}
|
||||
<input type="text" class="initiative-input" inputmode="numeric" pattern="^[+=\-]?\d*" value="{{ initiative }}"
|
||||
aria-label="{{ localize "COMBAT.InitiativeScore" }}" {{#unless @root.user.isGM}}readonly{{/unless}}>
|
||||
|
||||
{{/if}}
|
||||
|
||||
{{#if isOwner}}
|
||||
<a data-action="initiativePlus" class="initiative-plus" data-combatant-id="{{this.id}}"><i class="fa-solid fa-hexagon-plus"></i></a>
|
||||
<a data-action="initiativeMinus" class="initiative-minus" data-combatant-id="{{this.id}}"><i class="fa-solid fa-hexagon-minus"></i></a>
|
||||
{{/if}}
|
||||
|
||||
{{#if isMonster}}
|
||||
<span class="initiative">-</span>
|
||||
{{else}}
|
||||
<span class="initiative" data-tooltip="Current max. progression counter">{{progressionCount}}</span>
|
||||
{{/if}}
|
||||
|
||||
{{!-- Roll Initiative --}}
|
||||
{{else if isOwner}}
|
||||
<button type="button" class="combatant-control roll" data-action="rollInitiative" data-tooltip
|
||||
aria-label="{{ localize "COMBAT.InitiativeRoll" }}"
|
||||
style="--initiative-icon: url('{{ @root.initiativeIcon.icon }}'); --initiative-icon-hover: url('{{ @root.initiativeIcon.hover }}');"></button>
|
||||
{{/if}}
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
Reference in New Issue
Block a user