Files
sla_industries_MS/templates/actor/actor-sheet.html
T
tevans b1cfb636df Add active conditions summary below stats + GM 30-min chat report
- templates/actor/actor-sheet.html: red conditions bar shown below Strength/Speed/Intellect/Combat stats whenever any condition items are active; displays condition name and severity
- module/mosh.js: GM-only 30-minute interval timer that whispers a formatted conditions report to all GMs listing every actor with active conditions and their severities
- css/mosh.css: styles for .sla-active-conditions-summary, .sla-conditions-label, .sla-active-condition (red text, dark red border/background)
2026-04-15 16:24:41 +01:00

1278 lines
71 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<form class="{{cssClass}} flexcol sla-sheet-theme-{{slaSheetTheme}}" data-sla-theme="{{slaSheetTheme}}" autocomplete="off">
{{!-- Sheet Header --}}
<header class="char-header header-grid">
<div class="header-fields header-grid">
{{!-- The grid classes are defined in scss/global/_grid.scss. To use,
use both the "grid" and "grid-Ncol" class where "N" can be any number
from 1 to 12 and will create that number of columns. --}}
{{!-- The grid classes are defined in scss/global/_grid.scss. To use,
use both the "grid" and "grid-Ncol" class where "N" can be any number
from 1 to 12 and will create that number of columns. --}}
<div class="header">
<img class="profile" src="{{img}}" data-edit="img" title="{{name}}" height="150"
width="150" />
<div class="headergrid">
<div class="sla-sheet-wordmark">SLA Industries</div>
{{!-- REST button — top-right, above Race --}}
<div class="header-field header-field-rest">
<button type="button" class="sla-sheet-action sla-rest-button sla-header-rest-pill" title="Take a short or long rest">REST</button>
</div>
{{!-- ROW 2: Name / Class / Race --}}
<!-- PLAYER NAME -->
<div class="headernamegrid header-field header-field-name">
<div class="headerinputtext">{{ localize 'Mosh.Name' }}</div>
<div class="headerinputfield sla-header-input charname"><input name="name" class="noborder" type="text"
value="{{name}}" placeholder="{{ localize 'Mosh.Name' }}" /></div>
</div>
<!-- CLASS -->
<div class="header-field header-field-class">
<div class="headerinputtext">{{ localize 'Mosh.CLASS' }}</div>
<div class="headerinputfield sla-header-input charname"><input name="system.class.value" class="noborder" type="text"
value="{{system.class.value}}" placeholder="" /></div>
</div>
<!-- RACE -->
<div class="header-field header-field-race">
<div class="headerinputtext">Race</div>
<div class="headerinputfield sla-header-input charname"><input name="system.rank.value" class="noborder" type="text"
value="{{system.rank.value}}" placeholder="" /></div>
</div>
{{!-- ROW 3: Bottom row — all equal width, same font --}}
<div class="sla-header-bottom-row">
<div class="header-field header-field-lad">
<div class="headerinputtext">L.A.D.</div>
<label class="sla-header-checkbox" title="Life After Death">
<input type="checkbox" name="system.sla.lad" data-dtype="Boolean" {{checked system.sla.lad}} />
<span>L.A.D.</span>
</label>
</div>
<div class="header-field header-field-credits">
<div class="headerinputtext">{{ localize 'Mosh.Credits' }}</div>
<div class="headerinputfield sla-header-input charname"><input name="system.credits.value" class="noborder" type="text"
value="{{system.credits.value}}" placeholder="" /></div>
</div>
<div class="header-field header-field-sla-rank">
<div class="headerinputtext">S.C.L.</div>
<div class="headerinputfield sla-header-input charname"><input name="system.attributes.level.value" class="noborder"
type="text" value="{{system.attributes.level.value}}" placeholder="" /></div>
</div>
<div class="header-field header-field-height">
<div class="headerinputtext">Height</div>
<div class="headerinputfield sla-header-input charname"><input name="system.sla.height.value" class="noborder" type="text"
value="{{system.sla.height.value}}" placeholder="" /></div>
</div>
<div class="header-field header-field-weight">
<div class="headerinputtext">Weight</div>
<div class="headerinputfield sla-header-input charname"><input name="system.sla.weightText.value" class="noborder" type="text"
value="{{system.sla.weightText.value}}" placeholder="" /></div>
</div>
</div>
</div>
</div>
<div class="health grid grid-2col" style="margin-top: 0; grid-template-rows: repeat(4, minmax(92px, auto)); row-gap: 12px; align-content: start;">
<!-- Health -->
<div class="resource healthspread minmaxtopstat">
<div class="sla-health-label-row">
<label for="system.health.value" class="resource-label minmaxtext sla-stat-heading">{{ localize 'Mosh.Health' }}</label>
<button type="button" class="sla-inline-mini-button sla-health-reset" title="Reset current health to maximum">Reset</button>
</div>
<div class="minmaxwrapper">
<input class="maxhealth-input darkGreyText" type="text" name="system.health.value" value="{{system.health.value}}"
data-dtype="Number" />
<div class="slant"></div>
<input class="maxhealth-input darkGreyText" type="text" name="system.health.max"
value="{{system.health.max}}" data-dtype="Number" />
</div>
<div class="healthmaxtext">{{ localize 'Mosh.Current' }}</div>
<div class="healthmaxtext">{{ localize 'Mosh.Maximum' }}</div>
</div>
<!-- Hits -->
<div class="resource healthspread minmaxtopstat">
<label for="system.hits.value" class="resource-label minmaxtext sla-stat-heading">
{{#if system.settings.firstEdition}}
{{ localize 'Mosh.Wounds' }}
{{else}}
{{ localize 'Mosh.Hits' }}
{{/if}}
</label>
<div class="minmaxwrapper">
<input class="maxhealth-input darkGreyText" type="text" name="system.hits.value" value="{{system.hits.value}}"
data-dtype="Number" />
<div class="slant"></div>
<input class="maxhealth-input darkGreyText" type="text" name="system.hits.max"
value="{{system.hits.max}}" data-dtype="Number" />
</div>
<div class="healthmaxtext sla-stat-subheading">{{ localize 'Mosh.Current' }}</div>
<div class="healthmaxtext sla-stat-subheading">{{ localize 'Mosh.Maximum' }}</div>
</div>
{{#if system.settings.useCalm}}
<!-- Calm -->
<div class="resource healthspread minmaxtopstat">
<label for="system.other.stress.value" class="resource-label minmaxtext rollable calm-roll sla-stat-heading">{{ localize 'Mosh.Calm' }}</label>
<div class="minmaxwrapper">
<input class="maxhealth-input darkGreyText" type="text" name="system.other.stress.value" value="{{system.other.stress.value}}"
data-dtype="Number" />
<div class="slant"></div>
<input class="maxhealth-input darkGreyText" type="text" name="system.other.stress.max"
value="{{system.other.stress.max}}" data-dtype="Number" />
</div>
<div class="healthmaxtext sla-stat-subheading">{{ localize 'Mosh.Current' }}</div>
<div class="healthmaxtext sla-stat-subheading">{{ localize 'Mosh.Maximum' }}</div>
</div>
{{else}}
<!-- Stress -->
<div class="resource healthspread minmaxtopstat">
<label for="system.other.stress.value" class="resource-label minmaxtext rollable stress-roll sla-stat-heading">{{ localize 'Mosh.Stress' }}</label>
<div class="minmaxwrapper">
<input class="maxhealth-input darkGreyText" type="text" name="system.other.stress.value" value="{{system.other.stress.value}}"
data-dtype="Number" />
<div class="slant"></div>
<input class="maxhealth-input darkGreyText" type="text" name="system.other.stress.min"
value="{{system.other.stress.min}}" data-dtype="Number" />
</div>
<div class="healthmaxtext sla-stat-subheading">{{ localize 'Mosh.Current' }}</div>
<div class="healthmaxtext sla-stat-subheading">{{ localize 'Mosh.Minimum' }}</div>
</div>
{{/if}}
{{#if isEbbUser}}
<div class="resource healthspread minmaxtopstat">
<label for="system.sla.flux.value" class="resource-label minmaxtext sla-stat-heading">Flux</label>
<div class="minmaxwrapper">
<input class="maxhealth-input darkGreyText" type="text" name="system.sla.flux.value" value="{{system.sla.flux.value}}"
data-dtype="Number" />
<div class="slant"></div>
<input class="maxhealth-input darkGreyText" type="text" name="system.sla.flux.max"
value="{{system.sla.flux.max}}" data-dtype="Number" />
</div>
<div class="healthmaxtext sla-stat-subheading">{{ localize 'Mosh.Current' }}</div>
<div class="healthmaxtext sla-stat-subheading">{{ localize 'Mosh.Maximum' }}</div>
</div>
{{else}}
{{#if system.settings.firstEdition}}
{{else}}
<!-- Resolve -->
<div class="resource healthspread minmaxtopstat">
<label for="system.other.resolve.value" class="resource-label minmaxtext sla-stat-heading">{{ localize 'Mosh.Resolve' }}</label>
<div class="valuewrapper">
<input class="maxhealth-input darkGreyText" type="text" name="system.other.resolve.value" value="{{system.other.resolve.value}}" data-dtype="Number" />
</div>
</div>
{{/if}}
{{/if}}
{{#if system.settings.firstEdition}}
<!-- Armor -->
<div class="resource healthspread minmaxtopstat" style="{{#if isEbbUser}}grid-column-start: 1; grid-column-end: 3;{{else}}grid-column-start: 2; grid-column-end: 3;{{/if}}">
<label for="system.stats.armor.value" class="resource-label minmaxtext rollable armor-roll sla-stat-heading">{{ localize 'Mosh.Armor' }}</label>
<div class="minmaxwrapper sla-armor-track" style="width: 100%; border-radius: 0.3em;">
<div class="maxhealth-input sla-armor-value-cell" style="display: flex;">
<div class="whiteText sla-armor-main" type="text" data-dtype="Number">{{system.stats.armor.mod}}</div>
{{#if (compare 'str' system.stats.armor.cover '===' 'insignificant')}}
<div class="highlightText sla-armor-cover-bonus" type="text" data-dtype="Number" style="font-size: 0.8rem;">&nbsp;5</div>
{{/if}}
{{#if (compare 'str' system.stats.armor.cover '===' 'light')}}
<div class="highlightText sla-armor-cover-bonus" type="text" data-dtype="Number" style="font-size: 0.8rem;">&nbsp;10</div>
{{/if}}
{{#if (compare 'str' system.stats.armor.cover '===' 'heavy')}}
<div class="highlightText sla-armor-cover-bonus" type="text" data-dtype="Number" style="font-size: 0.8rem;">&nbsp;20</div>
{{/if}}
</div>
<div class="slant sla-armor-divider" style="transform: skewX(0deg);"></div>
<div class="maxhealth-input sla-armor-value-cell" style="display: flex;">
<div class="whiteText sla-armor-main" type="text" data-dtype="Number">{{system.stats.armor.damageReduction}}</div>
{{#if (compare 'str' system.stats.armor.cover '===' 'heavy')}}
<div class="highlightText sla-armor-cover-bonus" type="text" data-dtype="Number" style="font-size: 0.8rem;">&nbsp;5</div>
{{/if}}
</div>
</div>
<div class="healthmaxtext sla-stat-subheading">{{ localize 'Mosh.ArmorPoints' }}</div>
<div class="healthmaxtext sla-stat-subheading">{{ localize 'Mosh.DMGReduction' }}</div>
</div>
{{/if}}
<!-- Trauma Response -->
<div class="sla-trauma-panel" style="margin-left: 6px; margin-right: 0px; flex: 0; grid-column-start: 1; grid-column-end: 3;">
<div class="resource-label sla-stat-heading sla-trauma-heading">{{ localize 'Mosh.TraumaResponse' }}</div>
<div class="sla-trauma-controls">
<label class="sla-trauma-toggle" title="Mark the trauma response as used this session">
<input type="checkbox" class="sla-session-ability-used" {{checked system.sla.sessionAbilityUsed}} />
<span>Used This Session</span>
</label>
<button type="button" class="sla-inline-mini-button sla-new-session" title="Reset trauma response use for a new session">New Session</button>
</div>
<textarea name="system.other.stressdesc.value" rows="4" class="textarea-input trauma-response-box" type="text"
data-target="system.other.stressdesc.value" placeholder="Trauma response">{{system.other.stressdesc.value}}</textarea>
</div>
<!-- XP -->
<!-- <div class="char-pip-button list-roll flex" data-key="xp" data-label="XP" data-max="8" data-min="0">
{{{system.xp.html}}}
</div> -->
</div>
<div class="abilities">
<!-- <div class="grid grid-2col"> -->
<!-- STRESS -->
<!-- <div class="resource mainstat">
<div class="stresslabel">
<div class="ability-mod stresstext">STRESS</div>
</div>
<input class="smallcircle-input" type="text" name="system.other.stress.value"
value="{{system.other.stress.value}}" data-dtype="Number" />
</div> -->
<!-- RESOLVE -->
<!-- <div class="resource mainstat">
<div class="stresslabel">
<div class="ability-mod stresstext">RESOLVE</div>
</div>
<input class="smallcircle-input" type="text" name="system.other.resolve.value"
value="{{system.other.resolve.value}}" data-dtype="Number" />
</div> -->
<!-- </div> -->
{{#if system.settings.firstEdition}}
<div class="grid grid-1col widegap">
{{else}}
<div class="grid grid-1col widegap" style="gap: 24px">
{{/if}}
<!-- Strength -->
<div class="mainstatwrapper">
<div class="resource mainstat">
<div class="mainstatlabel">
<span class="ability-mod stat-roll rollable mainstattext" data-key="strength"
data-label="{{ localize 'Mosh.Strength' }}">{{ localize 'Mosh.Strength' }}</span>
</div>
<input class="circle-input" type="text" name="system.stats.strength.value"
value="{{system.stats.strength.value}}" data-dtype="Number" />
</div>
<input class="mainstatmod-input" type="text" name="system.stats.strength.mod"
value="{{system.stats.strength.mod}}" data-dtype="Number" title="{{slaStatModifierTitles.strength}}" />
<div class="mainstatmod-title">+</div>
</div>
<!-- Speed -->
<div class="mainstatwrapper">
<div class="resource mainstat">
<div class="mainstatlabel">
<span class="ability-mod stat-roll rollable mainstattext" data-key="speed" data-roll="d100"
data-label="{{ localize 'Mosh.Speed' }}">{{ localize 'Mosh.Speed' }}</span>
</div>
<input class="circle-input" type="text" name="system.stats.speed.value" value="{{system.stats.speed.value}}"
data-dtype="Number" />
</div>
<input class="mainstatmod-input" type="text" name="system.stats.speed.mod" value="{{system.stats.speed.mod}}"
data-dtype="Number" title="{{slaStatModifierTitles.speed}}" />
<div class="mainstatmod-title">+</div>
</div>
<!-- Intellect -->
<div class="mainstatwrapper">
<div class="resource mainstat">
<div class="mainstatlabel">
<span class="ability-mod stat-roll rollable mainstattext" data-key="intellect" data-roll="d100"
data-label="{{ localize 'Mosh.Intellect' }}">{{ localize 'Mosh.Intellect' }}</span>
</div>
<input class="circle-input" type="text" name="system.stats.intellect.value"
value="{{system.stats.intellect.value}}" data-dtype="Number" />
</div>
<input class="mainstatmod-input" type="text" name="system.stats.intellect.mod"
value="{{system.stats.intellect.mod}}" data-dtype="Number" title="{{slaStatModifierTitles.intellect}}" />
<div class="mainstatmod-title">+</div>
</div>
<!-- Combat -->
<div class="mainstatwrapper">
<div class="resource mainstat">
<div class="mainstatlabel">
<span class="ability-mod stat-roll rollable mainstattext" data-key="combat" data-roll="d100"
data-label="{{ localize 'Mosh.Combat' }}">{{ localize 'Mosh.Combat' }}</span>
</div>
<input class="circle-input" type="text" name="system.stats.combat.value" value="{{system.stats.combat.value}}"
data-dtype="Number" />
</div>
<input class="mainstatmod-input" type="text" name="system.stats.combat.mod" value="{{system.stats.combat.mod}}"
data-dtype="Number" title="{{slaStatModifierTitles.combat}}" />
<div class="mainstatmod-title">+</div>
</div>
</div>
<div class="sla-mainstat-action-strip">
<button type="button" class="sla-sheet-action sla-wound-button">Wound</button>
</div>
{{#if conditions.length}}
<div class="sla-active-conditions-summary">
<span class="sla-conditions-label">CONDITIONS:</span>
{{#each conditions as |condition|}}
<span class="sla-active-condition">{{condition.name}}{{#if condition.system.severity}} {{condition.system.severity}}{{/if}}</span>
{{/each}}
</div>
{{/if}}
</div>
<!-- SAVES -->
{{#if system.settings.firstEdition}}
<div class="saves grid grid-1col savebackground">
{{else}}
<div class="saves grid grid-1col savebackground" style = "height: 264px;">
{{/if}}
<!-- Sanity -->
<div class="resource flex-group-center">
<span class="ability-mod stat-roll rollable savetext" data-roll="d100" data-label="Sanity" data-key="sanity" data-target="{{system.stats.sanity.value}}">{{ localize 'Mosh.Sanity' }}</span>
<div class="grid grid-3col" style="grid-template-columns: 44px 14px 42px; margin-left:6px;">
<input class="square-input" type="text" name="system.stats.sanity.value" value="{{system.stats.sanity.value}}" data-dtype="Number" />
<div class="mainstatmod-title" style="top: 10px;">+</div>
<input class="mainsavemod-input" style="top: 5px;" type="text" name="system.stats.sanity.mod" value="{{system.stats.sanity.mod}}" data-dtype="Number" title="{{slaStatModifierTitles.sanity}}" />
</div>
</div>
<!-- Fear -->
<div class="resource flex-group-center">
<span class="ability-mod stat-roll rollable savetext" data-roll="d100" data-key="fear" data-target="{{system.stats.fear.value}}" data-label="{{ localize 'Mosh.Fear' }}">{{ localize 'Mosh.Fear' }}</span>
<div class="grid grid-3col" style="grid-template-columns: 44px 14px 42px; margin-left:6px;">
<input class="square-input" type="text" name="system.stats.fear.value" value="{{system.stats.fear.value}}" data-dtype="Number" />
<div class="mainstatmod-title" style="top: 10px;">+</div>
<input class="mainsavemod-input" style="top: 5px;" type="text" name="system.stats.fear.mod" value="{{system.stats.fear.mod}}" data-dtype="Number" title="{{slaStatModifierTitles.fear}}" />
</div>
</div>
<!-- Body -->
<div class="resource flex-group-center">
<span class="ability-mod stat-roll rollable savetext" data-roll="d100" data-key="body" data-target="{{system.stats.body.value}}" data-label="{{ localize 'Mosh.Body' }}">{{ localize 'Mosh.Body' }}</span>
<div class="grid grid-3col" style="grid-template-columns: 44px 14px 42px; margin-left:6px;">
<input class="square-input" type="text" name="system.stats.body.value" value="{{system.stats.body.value}}" data-dtype="Number" />
<div class="mainstatmod-title" style="top: 10px;">+</div>
<input class="mainsavemod-input" style="top: 5px;"type="text" name="system.stats.body.mod" value="{{system.stats.body.mod}}" data-dtype="Number" title="{{slaStatModifierTitles.body}}" />
</div>
</div>
<div class="sla-save-action-strip">
<button type="button" class="sla-sheet-action sla-panic-button">Panic</button>
</div>
{{#unless system.settings.firstEdition}}
<!-- Armor -->
<div class="resource flex-group-center">
<span class="ability-mod stat-roll rollable savetext" data-roll="d100" data-key="armor" data-target="{{system.stats.armor.value}}" data-label="{{ localize 'Mosh.Armor' }}">{{ localize 'Mosh.Armor' }}</span>
<div class="grid grid-3col" style="grid-template-columns: 44px 14px 42px; margin-left:6px;">
<input class="square-input" type="text" name="system.stats.armor.value" value="{{system.stats.armor.value}}" data-dtype="Number" />
<div class="mainstatmod-title" style="top: 10px;">+</div>
<div class="mainsavemod-input" style="top: 5px; padding: 5px;" type="text" name="system.stats.armor.mod" value="{{system.stats.armor.mod}}" data-dtype="Number">{{system.stats.armor.mod}}</div>
</div>
</div>
{{/unless}}
</div>
</div>
</header>
<div class="sla-front-strip">
<div class="sla-carry-summary sla-carry-summary-inline {{#if slaCarry.over}}over{{/if}}">
<div class="sla-carry-summary-title">Carry Load</div>
<div class="sla-carry-summary-main">{{slaCarry.current}} / {{slaCarry.capacity}} kg</div>
<div class="sla-carry-summary-meta">State: {{slaCarry.state}} | Equipped {{slaCarry.equipped}} kg | Carried {{slaCarry.carried}} kg | Stowed {{slaCarry.stowed}} kg | Free {{slaCarry.available}} kg</div>
</div>
</div>
{{!-- Sheet Tab Navigation --}}
<nav class="mosh sheet-tabs tabs" data-group="primary">
<a class="tab-select" data-tab="skills">{{ localize 'Mosh.Skills' }}</a>
<a class="tab-select" data-tab="weapons">{{ localize 'Mosh.Weapons' }}</a>
<a class="tab-select" data-tab="items">{{ localize 'Mosh.Items' }}</a>
<a class="tab-select" data-tab="drugs">Drugs</a>
<a class="tab-select" data-tab="sla">SLA</a>
<a class="tab-select" data-tab="traits">Traits</a>
<a class="tab-select" data-tab="special-rules">Special Rules</a>
{{#if isVevaphon}}<a class="tab-select" data-tab="morph">Morph</a>{{/if}}
{{#if isEbbUser}}<a class="tab-select" data-tab="ebb">Ebb</a>{{/if}}
<a class="tab-select" data-tab="description">{{ localize 'Mosh.Bio' }}</a>
<a class="tab-select" data-tab="notes">{{ localize 'Mosh.Notes' }}</a>
</nav>
{{!-- Sheet Body --}}
<section class="sheet-body">
{{!-- Biography Tab --}}
<div class="tab biography" data-group="primary" data-tab="description">
{{editor enriched.biography target="system.biography" button=true editable=true}}
</div>
{{!-- Notes Tab --}}
<div class="tab biography" data-group="primary" data-tab="notes">
<div class="sla-card" style="margin-bottom: 12px;">
<div class="sla-card-label">Operation Log</div>
<div class="sla-card-copy">Recent rolls, outcomes, and field actions for this operative.</div>
<textarea readonly rows="10" class="textarea-input">{{system.sla.activityLog.value}}</textarea>
</div>
<div class="sla-card" style="margin-bottom: 12px;">
<div class="sla-card-label">Ammo Economy Ledger</div>
<div class="sla-card-copy">Firing spend total: {{system.sla.ammoSpendTotal.value}} cR. Purchases are logged below as separate entries.</div>
<textarea readonly rows="6" class="textarea-input">{{system.sla.ammoLedger.value}}</textarea>
</div>
{{editor enriched.notes target="system.notes" button=true editable=true}}
</div>
<div class="tab items" data-group="primary" data-tab="sla">
<div class="sla-panel">
<div class="sla-banner">
<div>
<div class="sla-kicker">SLA Operative Profile</div>
<div class="sla-title">{{system.sla.species.value}} {{#if system.sla.trainingPackage.value}}/ {{system.sla.trainingPackage.value}}{{/if}}</div>
</div>
<div class="sla-tags">
<span class="sla-tag">{{system.sla.bpn.value}}</span>
<span class="sla-tag">SCL {{system.sla.scl.value}}</span>
{{#if isEbbUser}}<span class="sla-tag">Ebb {{system.sla.ebbRating.value}}</span>{{/if}}
</div>
</div>
<div class="grid grid-2col sla-card-grid">
<div class="sla-card">
<div class="sla-card-label">Package Focus</div>
<div class="sla-card-title">{{system.sla.trainingPackage.value}}</div>
<div class="sla-card-copy">{{system.sla.packageSummary.value}}</div>
<div class="sla-tag-row">
<span class="sla-tag">Employer {{system.sla.employer.value}}</span>
<span class="sla-tag">Sector {{system.sla.sector.value}}</span>
{{#if system.sla.packageWealth.value}}<span class="sla-tag">Wealth {{system.sla.packageWealth.value}}</span>{{/if}}
</div>
</div>
<div class="sla-card">
<div class="sla-card-label">Species Dossier</div>
<div class="sla-card-title">{{system.sla.species.value}}</div>
<div class="sla-card-copy">{{system.sla.speciesNotes.value}}</div>
<div class="sla-tag-row">
<span class="sla-tag">Operative {{system.sla.operativeType.value}}</span>
{{#if isEbbUser}}<span class="sla-tag">Flux Channel {{system.sla.ebbRating.value}}</span>{{/if}}
</div>
</div>
</div>
<div class="grid grid-2col sla-card-grid">
<div class="sla-card">
<div class="sla-card-label">Rules Snapshot</div>
<div class="sla-card-title">{{slaEnabledSpeciesRuleCount}} active rules</div>
<div class="sla-note-list">
{{#each slaEnabledSpeciesRules as |rule|}}
<div class="sla-note-pill">{{rule.label}}</div>
{{/each}}
</div>
{{#unless slaEnabledSpeciesRuleCount}}
<div class="sla-note-pill sla-note-pill-wide">No optional species rules are enabled right now.</div>
{{/unless}}
</div>
<div class="sla-card">
<div class="sla-card-label">Sheet Mode</div>
<div class="sla-card-title">{{#if (compare 'str' slaSheetTheme '===' 'legacy')}}Legacy{{else}}Modern SLA{{/if}}</div>
<div class="sla-card-copy">Use the palette button in the header to swap the entire presentation style without changing the operative data.</div>
</div>
</div>
<div class="grid grid-2col" style="gap: 12px; margin-bottom: 12px;">
<div class="resource">
<label class="resource-label">Species</label>
<input type="text" name="system.sla.species.value" value="{{system.sla.species.value}}" data-dtype="String" />
</div>
<div class="resource">
<label class="resource-label">Training Package</label>
<input type="text" name="system.sla.trainingPackage.value" value="{{system.sla.trainingPackage.value}}" data-dtype="String" />
</div>
<div class="resource">
<label class="resource-label">Operative Type</label>
<input type="text" name="system.sla.operativeType.value" value="{{system.sla.operativeType.value}}" data-dtype="String" />
</div>
<div class="resource">
<label class="resource-label">BPN Colour</label>
<input type="text" name="system.sla.bpn.value" value="{{system.sla.bpn.value}}" data-dtype="String" />
</div>
<div class="resource">
<label class="resource-label">SCL</label>
<input type="text" name="system.sla.scl.value" value="{{system.sla.scl.value}}" data-dtype="String" />
</div>
<div class="resource">
<label class="resource-label">Employer / Squad</label>
<input type="text" name="system.sla.employer.value" value="{{system.sla.employer.value}}" data-dtype="String" />
</div>
<div class="resource">
<label class="resource-label">Sector / Beat</label>
<input type="text" name="system.sla.sector.value" value="{{system.sla.sector.value}}" data-dtype="String" />
</div>
{{#if isEbbUser}}
<div class="resource">
<label class="resource-label">Ebb Rating</label>
<input type="text" name="system.sla.ebbRating.value" value="{{system.sla.ebbRating.value}}" data-dtype="Number" />
</div>
{{/if}}
</div>
<div class="grid grid-2col sla-card-grid">
<div class="sla-card">
<div class="sla-card-label">Species Notes</div>
<div class="sla-note-list">
{{#each slaSpeciesTraitList as |note|}}
<div class="sla-note-pill">{{note}}</div>
{{/each}}
</div>
<textarea name="system.sla.speciesNotes.value" rows="5" class="textarea-input" data-target="system.sla.speciesNotes.value">{{system.sla.speciesNotes.value}}</textarea>
</div>
<div class="sla-card">
<div class="sla-card-label">Package Skills</div>
<div class="sla-note-list">
{{#each slaPackageSkillList as |skill|}}
<div class="sla-note-pill">{{skill}}</div>
{{/each}}
</div>
<textarea name="system.sla.packageSkills.value" rows="5" class="textarea-input" data-target="system.sla.packageSkills.value">{{system.sla.packageSkills.value}}</textarea>
</div>
</div>
<div class="grid grid-1col sla-card-grid">
<div class="sla-card">
<div class="sla-card-label">Species Rules</div>
<div class="sla-card-copy">Turn these on or off to match the version of the species rules your table is using.</div>
{{#if slaSpeciesRules.length}}
<div class="sla-rule-list">
{{#each slaSpeciesRules as |rule|}}
<label class="sla-rule-toggle">
<input type="checkbox" name="{{rule.path}}" data-dtype="Boolean" {{checked rule.enabled}} />
<span class="sla-rule-text">
<span class="sla-rule-title">{{rule.label}}{{#if rule.optional}} (Optional){{/if}}</span>
<span class="sla-rule-summary">{{rule.summary}}</span>
</span>
</label>
{{/each}}
</div>
{{else}}
<div class="sla-note-pill sla-note-pill-wide">No species-specific toggles are defined for this operative yet.</div>
{{/if}}
</div>
</div>
</div>
</div>
<div class="tab items" data-group="primary" data-tab="traits">
<div class="sla-panel">
<div class="sla-banner">
<div>
<div class="sla-kicker">Trait Engine</div>
<div class="sla-title">Balanced Personal Traits</div>
</div>
<div class="sla-tags">
<span class="sla-tag">{{traitCount}} traits</span>
<span class="sla-tag">{{traitValidation.rankBalance.advantageRanks}} / {{traitValidation.rankBalance.disadvantageRanks}}</span>
<span class="sla-tag">{{#if traitValidation.rankBalance.balanced}}Balanced{{else}}Needs Balance{{/if}}</span>
</div>
</div>
<div class="sla-traits-toolbar">
<a class="item-control item-create sla-sheet-action" title="Create Trait" data-type="persTrait"><i class="fas fa-plus"></i> Trait</a>
<button type="button" class="sla-sheet-action trait-validate">Validate</button>
</div>
<div class="grid grid-2col sla-card-grid" style="margin-bottom: 12px;">
<div class="sla-card">
<div class="sla-card-label">Positive Traits</div>
<div class="sla-card-copy">Choose one advantage and add it to the operative.</div>
<div class="sla-trait-picker-row">
<select class="sla-trait-select" name="slaTraitPicker.advantage" data-type="advantage">
<option value="">Choose positive trait...</option>
{{#each slaPositiveTraitOptions as |trait|}}
<option value="{{trait.key}}" {{#if (compare 'str' ../slaTraitPickerSelection.advantage '===' trait.key)}}selected{{/if}}>{{trait.label}}</option>
{{/each}}
</select>
<button type="button" class="sla-sheet-action sla-trait-add" data-type="advantage">Add Positive</button>
</div>
</div>
<div class="sla-card">
<div class="sla-card-label">Negative Traits</div>
<div class="sla-card-copy">Choose one disadvantage and add it to the operative.</div>
<div class="sla-trait-picker-row">
<select class="sla-trait-select" name="slaTraitPicker.disadvantage" data-type="disadvantage">
<option value="">Choose negative trait...</option>
{{#each slaNegativeTraitOptions as |trait|}}
<option value="{{trait.key}}" {{#if (compare 'str' ../slaTraitPickerSelection.disadvantage '===' trait.key)}}selected{{/if}}>{{trait.label}}</option>
{{/each}}
</select>
<button type="button" class="sla-sheet-action sla-trait-add" data-type="disadvantage">Add Negative</button>
</div>
</div>
</div>
<div class="sla-traits-audit {{#if traitValidation.ok}}ok{{else}}warn sla-traits-audit-pulse{{/if}}">
<div><strong>Trait Count:</strong> {{traitCount}}</div>
<div><strong>Advantage Ranks:</strong> {{traitValidation.rankBalance.advantageRanks}}</div>
<div><strong>Disadvantage Ranks:</strong> {{traitValidation.rankBalance.disadvantageRanks}}</div>
<div><strong>Balance Net:</strong> {{traitValidation.rankBalance.net}}</div>
<div><strong>Coverage:</strong> {{traitValidation.coverage.mapped}} mapped / {{traitValidation.coverage.unmapped}} unmapped</div>
<div><strong>Status:</strong> <span class="sla-trait-balance-status {{#if traitValidation.rankBalance.balanced}}ok{{else}}warn{{/if}}">{{#if traitValidation.rankBalance.balanced}}Balanced{{else}}Needs Balance{{/if}}</span></div>
{{#if traitValidation.errors.length}}
<div class="sla-trait-audit-line"><strong>Errors:</strong> {{#each traitValidation.errors as |err|}}<span class="sla-trait-error">{{err}}</span>{{/each}}</div>
{{/if}}
{{#if traitValidation.warnings.length}}
<div class="sla-trait-audit-line"><strong>Warnings:</strong> {{#each traitValidation.warnings as |warn|}}<span class="sla-trait-warn">{{warn}}</span>{{/each}}</div>
{{/if}}
</div>
{{#if persTraitsEnhanced.length}}
<ol class="sla-trait-list">
<li class="sla-trait-row sla-trait-head">
<div>Icon</div>
<div>Trait</div>
<div>Rank</div>
<div>Type</div>
<div>State</div>
<div>Effect</div>
<div>Delete</div>
</li>
{{#each persTraitsEnhanced as |trait|}}
<li class="item sla-trait-row" data-item-id="{{trait._id}}">
<div class="sla-trait-icon item-edit" data-item-id="{{trait._id}}"><img src="{{trait.img}}" title="{{trait.name}}" /></div>
<div class="sla-trait-name item-edit" data-item-id="{{trait._id}}">{{trait.name}}</div>
<div class="sla-trait-rank">{{trait.slaTrait.rank}} / {{trait.slaTrait.maxRank}}</div>
<div class="sla-trait-type">{{trait.slaTrait.type}}</div>
<div class="sla-trait-status">{{trait.slaTrait.status}}</div>
<div class="sla-trait-effect" title="{{trait.slaTrait.effectSummary}}">{{trait.slaTrait.effectSummary}}</div>
<div class="sla-trait-delete"><a class="item-delete"><i class="fas fa-trash"></i></a></div>
</li>
{{/each}}
</ol>
{{else}}
<div class="sla-note-pill sla-note-pill-wide">No personal traits are on this operative yet. Add balanced good and bad traits here and the audit will keep track of the rank balance.</div>
{{/if}}
<div class="grid grid-2col sla-card-grid" style="margin-top: 12px;">
<div class="sla-card sla-snapshot-card sla-species-snapshot-card">
<div class="sla-card-label">Species Snapshot</div>
<div class="sla-note-list sla-snapshot-note-list">
{{#each slaSpeciesTraitList as |note|}}
<div class="sla-note-pill sla-snapshot-pill">{{note}}</div>
{{/each}}
</div>
{{#unless slaSpeciesTraitList.length}}
<div class="sla-note-pill sla-note-pill-wide sla-snapshot-pill">No species notes are currently listed for this operative.</div>
{{/unless}}
</div>
<div class="sla-card sla-snapshot-card sla-package-snapshot-card">
<div class="sla-card-label">Package Snapshot</div>
<div class="sla-note-list sla-snapshot-note-list">
{{#each slaPackageSkillList as |skill|}}
<div class="sla-note-pill sla-snapshot-pill">{{skill}}</div>
{{/each}}
</div>
{{#unless slaPackageSkillList.length}}
<div class="sla-note-pill sla-note-pill-wide sla-snapshot-pill">No package skills are currently listed for this operative.</div>
{{/unless}}
</div>
</div>
</div>
</div>
<div class="tab items" data-group="primary" data-tab="special-rules">
<div class="sla-panel">
<div class="sla-banner">
<div>
<div class="sla-kicker">Species Doctrine</div>
<div class="sla-title">{{system.sla.species.value}} Special Rules</div>
</div>
<div class="sla-tags">
<span class="sla-tag">{{system.sla.species.value}}</span>
{{#if system.sla.trainingPackage.value}}<span class="sla-tag">{{system.sla.trainingPackage.value}}</span>{{/if}}
</div>
</div>
<div class="grid grid-2col sla-card-grid">
<div class="sla-card">
<div class="sla-card-label">Rule Toggles</div>
<div class="sla-card-copy">Turn these on or off to match the version of the species rules your table is using.</div>
{{#if slaSpeciesRules.length}}
<div class="sla-rule-list">
{{#each slaSpeciesRules as |rule|}}
<label class="sla-rule-toggle">
<input type="checkbox" name="{{rule.path}}" data-dtype="Boolean" {{checked rule.enabled}} />
<span class="sla-rule-text">
<span class="sla-rule-title">{{rule.label}}{{#if rule.optional}} (Optional){{/if}}</span>
<span class="sla-rule-summary">{{rule.summary}}</span>
</span>
</label>
{{/each}}
</div>
{{else}}
<div class="sla-note-pill sla-note-pill-wide">No species-specific toggles are defined for this operative yet.</div>
{{/if}}
</div>
<div class="sla-card">
<div class="sla-card-label">Combat Rule Status</div>
{{#if slaPrometheusStatus.enabled}}
<div class="sla-note-pill sla-note-pill-wide">Prometheus Regeneration is enabled.</div>
{{#if slaPrometheusStatus.inCombat}}
<div class="sla-card-copy">Current combat round: {{slaPrometheusStatus.currentRound}}</div>
{{#if slaPrometheusStatus.pulseThisRound}}
<div class="sla-note-pill sla-note-pill-wide">Regeneration triggers this round.</div>
{{else}}
<div class="sla-card-copy">Rounds until next regeneration pulse: {{slaPrometheusStatus.roundsUntilPulse}}</div>
{{/if}}
<div class="sla-card-copy">Every fourth combat round, recover 1d5 Health automatically.</div>
{{else}}
<div class="sla-card-copy">Not currently in combat. Prometheus regeneration will trigger on rounds 4, 8, 12, and so on once combat starts.</div>
{{/if}}
{{else}}
<div class="sla-note-pill sla-note-pill-wide">No active round-based special rule is currently enabled for this operative.</div>
{{/if}}
</div>
</div>
</div>
</div>
{{#if isVevaphon}}
<div class="tab items" data-group="primary" data-tab="morph">
<div class="sla-panel">
<div class="sla-banner">
<div>
<div class="sla-kicker">Stormer Vevaphon</div>
<div class="sla-title">Polymorphic Form Control</div>
</div>
<div class="sla-tags">
<span class="sla-tag">Form: {{system.sla.morphForm.value}}</span>
<span class="sla-tag {{vevaphonInstabilityClass}}">Instability {{system.sla.vevaphonInstability.value}} / 12</span>
<span class="sla-tag">Sanity {{system.stats.sanity.value}}</span>
</div>
</div>
<div class="grid grid-2col sla-card-grid">
{{!-- Instability Track --}}
<div class="sla-card">
<div class="sla-card-label">Instability Track</div>
<div class="sla-morph-track-bar">
<div class="sla-morph-track-fill {{vevaphonInstabilityClass}}" style="width: {{vevaphonInstabilityPercent}}%;"></div>
<span class="sla-morph-track-label">{{data.sla.vevaphonInstability.value}} / 12</span>
</div>
<div class="sla-card-copy">{{vevaphonInstabilityDesc}}</div>
<div class="sla-action-row" style="margin-top: 10px;">
<button type="button" class="sla-instability-increase sla-morph-btn-instab">+1 Instability</button>
<button type="button" class="sla-instability-decrease sla-morph-btn-instab sla-morph-btn-instab-down">−1 Instability</button>
</div>
<div class="sla-card-copy" style="margin-top: 12px; font-style: italic;">At 12, the Vevaphon is lost — immediate retirement or death.</div>
</div>
{{!-- Active Morph Form --}}
<div class="sla-card">
<div class="sla-card-label">Active Morph Form</div>
<div class="sla-card-copy" style="margin-bottom: 10px;">Each morph shift costs 1 Instability. Changing form mid-scene requires a Sanity save at Instability 6+.</div>
{{#each slaMorphForms as |form|}}
<button type="button"
class="sla-morph-shift sla-morph-form-btn {{#if form.slaIsActiveMorphForm}}sla-morph-active{{/if}}"
data-form="{{form.name}}">
<strong class="sla-morph-form-name">{{form.name}}</strong>
{{#if form.system.summary}}<div class="sla-morph-form-summary">{{form.system.summary}}</div>{{/if}}
</button>
{{/each}}
</div>
</div>
<div class="grid grid-2col sla-card-grid" style="margin-top: 12px;">
{{!-- Morph Panic Reference --}}
<div class="sla-card">
<div class="sla-card-label">Morph Panic Reference</div>
<div class="sla-card-copy">Triggered at Instability 10+ on a failed Sanity save. Roll 1d6:</div>
<div class="sla-note-list" style="margin-top: 8px;">
{{#each vevaphonMorphPanic as |entry|}}
<div class="sla-note-pill sla-note-pill-wide">{{entry.roll}}. {{entry.label}} — {{entry.desc}}</div>
{{/each}}
</div>
</div>
{{!-- Morph Notes --}}
<div class="sla-card">
<div class="sla-card-label">Morph Notes</div>
<textarea name="system.sla.morphNotes.value" rows="10" class="textarea-input" data-target="system.sla.morphNotes.value">{{system.sla.morphNotes.value}}</textarea>
</div>
</div>
</div>
</div>
{{/if}}
{{#if isEbbUser}}
<div class="tab items" data-group="primary" data-tab="ebb">
<div class="sla-panel">
<div class="sla-banner">
<div>
<div class="sla-kicker">Ebb Discipline</div>
<div class="sla-title">{{system.sla.species.value}} Flux Channel</div>
</div>
<div class="sla-tags">
<span class="sla-tag">Flux {{system.sla.flux.value}} / {{system.sla.flux.max}}</span>
<span class="sla-tag">{{slaFlux.label}}</span>
<span class="sla-tag">Fear Save {{system.stats.fear.value}}</span>
</div>
</div>
<div class="grid grid-2col sla-card-grid">
<div class="sla-card">
<div class="sla-card-label">Flux State</div>
<div class="sla-flux-stage {{slaFlux.cssClass}}">{{slaFlux.label}}</div>
<div class="sla-card-copy">{{slaFlux.description}}</div>
<div class="sla-card-copy">Risk bands: {{slaFlux.thresholds}}</div>
<div class="sla-flux-meter">
<div class="sla-flux-meter-fill {{slaFlux.cssClass}}" style="width: {{slaFluxPercent}}%;"></div>
</div>
<div class="sla-card-copy">Reserve remaining: {{system.sla.flux.value}} / {{system.sla.flux.max}}</div>
<div class="sla-action-row">
<button type="button" class="sla-flux-save">Fear / Flux Save</button>
<button type="button" class="sla-flux-panic">Flux Panic</button>
</div>
</div>
<div class="sla-card">
<div class="sla-card-label">Ebb Skill Deck</div>
<div class="sla-card-copy">Click a discipline below to roll that Ebb skill directly. Use the ability roster underneath to channel a specific power and spend Flux.</div>
<div class="sla-ebb-skill-list">
{{#each ebbSkills as |skill|}}
<button type="button" class="sla-ebb-skill-roll" data-item-id="{{skill._id}}" title="Roll {{skill.name}}">
<span>{{skill.name}}</span>
<div class="sla-ebb-skill-meta">
<small>{{skill.system.rank}}{{#if skill.system.sla.category}} | {{skill.system.sla.category}}{{/if}}</small>
<strong>+{{skill.slaBreakdown.total}}</strong>
</div>
</button>
{{/each}}
</div>
<div class="sla-card-copy">Core and discipline skills are grouped here so powers like Awareness are easier to find. Ebb skills live here, while the actual powers are listed in the ability roster below.</div>
</div>
</div>
<div class="grid grid-2col sla-card-grid">
<div class="sla-card">
<div class="sla-card-label">Panic Protocol</div>
<div class="sla-note-list">
{{#each slaFluxGuidance as |entry|}}
<div class="sla-note-pill sla-note-pill-wide">{{entry}}</div>
{{/each}}
</div>
</div>
<div class="sla-card">
<div class="sla-card-label">Discipline Notes</div>
<div class="sla-card-copy">Use this space for doctrine, trainer notes, squad warnings, or sector-specific Ebb restrictions.</div>
<div class="grid grid-1col" style="gap: 12px; margin-top: 8px;">
<div class="resource">
<label class="resource-label">Flux Notes</label>
<textarea name="system.sla.fluxNotes.value" rows="5" class="textarea-input" data-target="system.sla.fluxNotes.value">{{system.sla.fluxNotes.value}}</textarea>
</div>
<div class="resource">
<label class="resource-label">Ebb Notes</label>
<textarea name="system.sla.ebbNotes.value" rows="5" class="textarea-input" data-target="system.sla.ebbNotes.value">{{system.sla.ebbNotes.value}}</textarea>
</div>
</div>
</div>
</div>
</div>
<ol class="items-list sla-ability-list" style="margin-bottom: 12px;">
<li class="item flexrow item-header">
<div class="item-image"></div>
<div class="skill-stat" style="flex-grow: 1.7;">Ebb Ability</div>
<div class="skill-stat">Skill</div>
<div class="skill-stat">Flux</div>
<div class="skill-stat">Tier</div>
<div class="skill-stat">Save</div>
<div class="item-controls">
<a class="item-control ability-create" title="Create Ebb Ability" data-type="ability"><i class="fas fa-plus"></i> Add</a>
</div>
</li>
{{#each abilities as |ability id|}}
<li class="item flexrow dropitem" data-item-id="{{ability._id}}">
<div class="item-image"><img src="{{ability.img}}" title="{{ability.name}}" width="24" height="24" /></div>
<div class="skill-name list-roll ability-use-trigger" style="flex-grow: 1.75;" title="Use {{ability.name}}">{{ability.name}}</div>
<div class="skill-stat">{{ability.system.sla.skillRef}}</div>
<div class="skill-stat">{{ability.system.sla.fluxCost}}</div>
<div class="skill-stat">{{ability.system.sla.tier}}</div>
<div class="skill-stat">{{ability.system.sla.panicSave}}</div>
<div class="item-controls">
<a class="item-control ability-use" title="Use Ability"><i class="fas fa-bolt"></i> Use</a>
<a class="item-control ability-edit" title="Edit Ability"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Ability"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ol>
</div>
{{/if}}
{{!-- Owned Items Tab --}}
<div class="tab items" data-group="primary" data-tab="items">
{{#if system.settings.firstEdition}}
<!-- ARMOR -->
<ol class="items-list" role="table">
<li class="item flexrow item-header" role="rowgroup">
<div class="item-image" role="cell"></div>
<div class="skill-stat" style="flex-grow: 2.5;" role="cell">{{ localize 'Mosh.ArmorName' }}</div>
<div class="skill-stat" role="cell">{{ localize 'Mosh.AP' }}</div>
<div class="skill-stat" role="cell">{{ localize 'Mosh.DR' }}</div>
<div class="skill-stat" role="cell">{{ localize 'Mosh.Speed' }}</div>
<div class="skill-stat" role="cell">{{ localize 'Mosh.Oxygen' }}</div>
<div class="skill-stat" role="cell">Carry</div>
<div class="item-controls" role="cell">
<a class="item-control item-create" title="{{ localize 'Mosh.CreateArmor' }}" data-type="armor"><i class="fas fa-plus"></i> {{ localize 'Mosh.Add' }}</a>
</div>
</li>
{{#each armors as |armor id|}}
<li class="item flexrow dropitem" data-item-id="{{armor._id}}" role="rowgroup">
<div class="item-image" role="cell"><img src="{{armor.img}}" title="{{armor.name}}" width="24" height="24" /></div>
<h4 class="skill-name list-roll description-roll" style="flex-grow: 2.55;" role="cell">{{armor.name}}</h4>
<div class="skill-stat armor-ap list-roll" role="cell">{{armor.system.armorPoints}}</div>
<div class="skill-stat armor-dr list-roll" role="cell">{{armor.system.damageReduction}}</div>
<div class="skill-stat">{{armor.system.speed}}</div>
{{#if armor.system.oxygenMax}}
<div class="skill-stat armor-oxy list-roll" role="cell">{{armor.system.oxygenCurrent}}/{{armor.system.oxygenMax}}</div>
{{else}}
<div class="skill-stat" role="cell">{{ localize 'Mosh.NA' }}</div>
{{/if}}
<div class="skill-stat" role="cell">
<div class="sla-carry-toggle-row">
<button type="button" class="sla-carry-toggle {{#if (compare 'str' armor.slaCarry.state '===' 'equipped')}}active{{/if}}" data-state="equipped">Eqp</button>
<button type="button" class="sla-carry-toggle {{#if (compare 'str' armor.slaCarry.state '===' 'stowed')}}active{{/if}}" data-state="stowed">Stow</button>
</div>
<small class="sla-carry-row-text">{{armor.slaCarry.totalWeight}} kg</small>
</div>
<div class="item-controls" role="cell">
<a class="item-control item-edit" title="{{ localize 'Mosh.EditArmor' }}"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="{{ localize 'Mosh.DeleteArmor' }}"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ol>
{{else}}
<!-- ARMOR -->
<ol class="items-list" role="table">
<li class="item flexrow item-header" role="rowgroup">
<div class="item-image" role="cell"></div>
<div class="skill-stat" style="flex-grow: 2.5;" role="cell">{{ localize 'Mosh.ArmorName' }}</div>
<div class="skill-stat" role="cell">{{ localize 'Mosh.SaveBonus' }}</div>
<div class="skill-stat" role="cell">{{ localize 'Mosh.Speed' }}</div>
<div class="skill-stat" role="cell">{{ localize 'Mosh.Oxygen' }}</div>
<div class="skill-stat" role="cell">Carry</div>
<div class="item-controls" role="cell">
<a class="item-control item-create" title="{{ localize 'Mosh.CreateArmor' }}" data-type="armor"><i class="fas fa-plus"></i> {{ localize 'Mosh.Add' }}</a>
</div>
</li>
{{#each armors as |armor id|}}
<li class="item flexrow dropitem" data-item-id="{{armor._id}}" role="rowgroup">
<div class="item-image" role="cell"><img src="{{armor.img}}" title="{{armor.name}}" width="24" height="24" /></div>
<h4 class="skill-name list-roll description-roll" style="flex-grow: 2.55;" role="cell">{{armor.name}}</h4>
<div class="skill-stat armor-ap list-roll" role="cell">{{armor.system.armorPoints}}</div>
<div class="skill-stat">{{armor.system.speed}}</div>
{{#if armor.system.oxygenMax}}
<div class="skill-stat armor-oxy list-roll" role="cell">{{armor.system.oxygenCurrent}}/{{armor.system.oxygenMax}}</div>
{{else}}
<div class="skill-stat" role="cell">{{ localize 'Mosh.NA' }}</div>
{{/if}}
<div class="skill-stat" role="cell">
<div class="sla-carry-toggle-row">
<button type="button" class="sla-carry-toggle {{#if (compare 'str' armor.slaCarry.state '===' 'equipped')}}active{{/if}}" data-state="equipped">Eqp</button>
<button type="button" class="sla-carry-toggle {{#if (compare 'str' armor.slaCarry.state '===' 'stowed')}}active{{/if}}" data-state="stowed">Stow</button>
</div>
<small class="sla-carry-row-text">{{armor.slaCarry.totalWeight}} kg</small>
</div>
<div class="item-controls" role="cell">
<a class="item-control item-edit" title="{{ localize 'Mosh.EditArmor' }}"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="{{ localize 'Mosh.DeleteArmor' }}"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ol>
{{/if}}
<!-- ITEMS -->
<ol class="items-list">
<li class="item flexrow item-header">
<div class="item-image"></div>
<div class="skill-stat" style="flex-grow: 1.5;">{{ localize 'Mosh.ItemName' }}</div>
<div class="skill-stat">{{ localize 'Mosh.Quantity' }}</div>
<div class="skill-stat">{{ localize 'Mosh.Weight' }}</div>
<div class="skill-stat">Carry</div>
<div class="skill-stat">{{ localize 'Mosh.Value' }}</div>
<div class="item-controls">
<a class="item-control item-create" title="{{ localize 'Mosh.CreateItem' }}" data-type="item"><i class="fas fa-plus"></i> Add</a>
</div>
</li>
{{#each gear as |item id|}}
<li class="item flexrow dropitem" data-item-id="{{item._id}}">
<div class="item-image"><img src="{{item.img}}" title="{{item.name}}" width="24" height="24" /></div>
<h4 class="skill-name list-roll description-roll" style="flex-grow: 1.54;">{{item.name}}</h4>
<div class="skill-stat list-roll item-quantity">{{item.system.quantity}}</div>
<div class="skill-stat">{{item.slaCarry.totalWeight}} kg</div>
<div class="skill-stat">
<div class="sla-carry-toggle-row">
<button type="button" class="sla-carry-toggle {{#if (compare 'str' item.slaCarry.state '===' 'equipped')}}active{{/if}}" data-state="equipped">Eqp</button>
<button type="button" class="sla-carry-toggle {{#if (compare 'str' item.slaCarry.state '===' 'stowed')}}active{{/if}}" data-state="stowed">Stow</button>
</div>
</div>
<div class="skill-stat">{{item.system.cost}}</div>
<div class="item-controls">
<a class="item-control item-edit" title="{{ localize 'Mosh.EditItem' }}"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="{{ localize 'Mosh.DeleteItem' }}"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ol>
<div class="item flex-group-left item-header">
<div class="skill-stat" style="flex-grow: 1.5;">{{ localize 'Mosh.CarryingCapacity' }}: {{system.weight.capacity}} kg</div>
<div class="skill-stat">{{ localize 'Mosh.CurrentWeight' }}: {{system.weight.current}} kg</div>
<div class="skill-stat">Stowed: {{system.weight.stowed}} kg</div>
</div>
</div>
<div class="tab items" data-group="primary" data-tab="drugs">
{{#if drugAlerts.length}}
<div class="sla-drug-alerts">
{{#each drugAlerts as |alert id|}}
<div class="sla-drug-alert {{alert.state}}">
<div class="sla-drug-alert-main">
<div class="sla-drug-alert-name">{{alert.name}}</div>
<div class="sla-drug-alert-meta">
<span class="sla-drug-alert-state">{{alert.stateLabel}}</span>
{{#if alert.duration}}<span class="sla-drug-alert-duration">{{alert.duration}}</span>{{/if}}
</div>
</div>
<div class="sla-drug-alert-summary">{{alert.summary}}</div>
<button type="button" class="drug-close-btn drug-close" data-item-id="{{alert.itemId}}" data-drug-id="{{alert.drugId}}">Close</button>
</div>
{{/each}}
</div>
{{/if}}
<ol class="items-list sla-drug-list">
<li class="item flexrow item-header">
<div class="item-image"></div>
<div class="skill-stat" style="flex-grow: 1.6;">Drug</div>
<div class="skill-stat">Qty</div>
<div class="skill-stat">Rating</div>
<div class="skill-stat">Value</div>
<div class="skill-stat">Weight</div>
<div class="skill-stat">Carry</div>
<div class="skill-stat">State</div>
<div class="skill-stat">Duration</div>
<div class="item-controls">
<a class="item-control item-create" title="Create Drug" data-type="drug"><i class="fas fa-plus"></i> Add</a>
</div>
</li>
{{#each drugRows as |drug id|}}
<li class="item flexrow dropitem" data-item-id="{{drug.itemId}}" data-drug-id="{{drug.drugId}}">
<div class="item-image"><img src="{{drug.img}}" title="{{drug.name}}" width="24" height="24" /></div>
<div class="skill-name list-roll description-roll drug-item-summary" style="flex-grow: 1.6;">{{drug.name}}<span>{{drug.summary}}</span></div>
<div class="skill-stat item-quantity">{{drug.quantity}}</div>
<div class="skill-stat">{{drug.rating}}</div>
<div class="skill-stat">{{drug.cost}}</div>
<div class="skill-stat">{{drug.slaCarry.totalWeight}} kg</div>
<div class="skill-stat">
<div class="sla-carry-toggle-row">
<button type="button" class="sla-carry-toggle {{#if (compare 'str' drug.slaCarry.state '===' 'equipped')}}active{{/if}}" data-state="equipped">Eqp</button>
<button type="button" class="sla-carry-toggle {{#if (compare 'str' drug.slaCarry.state '===' 'stowed')}}active{{/if}}" data-state="stowed">Stow</button>
</div>
</div>
<div class="skill-stat">{{drug.statusLabel}}</div>
<div class="skill-stat">{{drug.duration}}</div>
<div class="item-controls">
<button type="button" class="drug-use-btn drug-use" {{#unless drug.canUse}}disabled{{/unless}}>Use</button>
<button type="button" class="drug-close-btn drug-close" {{#unless drug.canClose}}disabled{{/unless}}>Close</button>
<a class="item-control item-edit" title="Edit Drug"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="Delete Drug"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ol>
</div>
{{!-- Owned Skills Tab --}}
<div class="tab items" data-group="primary" data-tab="skills">
<div class="sla-card" style="margin-bottom: 12px;">
<div class="sla-card-label">Field Skill Deck</div>
<div class="sla-card-copy">Standard operative skills are listed here by category. Ebb-only skills stay on the Ebb tab so non-Ebb characters and general play stay uncluttered.</div>
</div>
<!-- SKILLS -->
<ol class="items-list" style="margin-bottom : 10px;">
<li class="item flexrow item-header">
<div class="item-image"></div>
<div class="skill-stat" style="flex-grow: 1.4;">{{ localize 'Mosh.SkillName' }}</div>
<div class="skill-stat">Category</div>
<div class="skill-stat">{{ localize 'Mosh.SkillRank' }}</div>
<div class="skill-stat">{{ localize 'Mosh.SkillBonus' }}</div>
<div class="item-controls">
<a class="item-control skill-create" title="{{ localize 'Mosh.CreateSkill' }}" data-type="skill"><i class="fas fa-plus"></i> {{ localize 'Mosh.Add' }}</a>
</div>
</li>
{{#each skills as |skill id|}}
<li class="item flexrow dropitem" data-item-id="{{skill._id}}">
<div class="item-image"><img src="{{skill.img}}" title="{{skill.name}}" width="24" height="24"/></div>
<div class="skill-name skill-roll list-roll sla-skill-name-cell" style="flex-grow: 1.4;">
<span>{{skill.name}}</span>
{{#if skill.isCombatSkill}}<small class="sla-skill-flag">Combat Use</small>{{/if}}
{{#if skill.slaBreakdown.summary}}<small>{{skill.slaBreakdown.summary}}</small>{{/if}}
</div>
<div class="skill-stat">{{skill.system.sla.category}}</div>
<div class="skill-stat">{{skill.system.rank}}</div>
<div class="skill-stat">
{{skill.system.displayBonus}}
{{#if skill.slaTraitPreview.modLabel}}<small class="sla-skill-trait-mod">{{skill.slaTraitPreview.modLabel}} trait</small>{{/if}}
</div>
<div class="item-controls">
<a class="item-control skill-edit" title="{{ localize 'Mosh.EditSkill' }}"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="{{ localize 'Mosh.DeleteSkill' }}"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ol>
{{#if system.settings.firstEdition}}
<!-- XP -->
<div class ="skill_training_frame" style="margin-bottom : 10px;">
<div class="grid grid-3col" style="grid-template-columns: 90px auto 283px ;">
<div class="skill-stat" style="position: relative; top: 6px;"><strong>{{ localize 'Mosh.SkillTraining' }}</strong></div>
<textarea name="system.xp.selectedSkill" rows="2" class="textarea-input-grey" type="text" data-target="system.xp.selectedSkill" placeholder="" style="height: 30px; margin: 0; position: relative; top: 50%; -ms-transform: translateY(-50%); transform: translateY(-50%); background: white; color: black;">{{system.xp.selectedSkill}}</textarea>
<div class="char-pip-button list-roll flex" style="position: relative; top: -7px;" data-key="xp" data-label="XP" data-max="16" data-min="0">{{{system.xp.html}}}</div>
</div>
</div>
{{/if}}
<div class="seperatorLine"></div>
<!-- Conditions -->
<ol class="items-list">
<li class="item flexrow item-header">
<div class="item-image"></div>
<div class="skill-stat">{{ localize 'Mosh.Condition' }}</div>
<div class="skill-stat">{{ localize 'Mosh.Severity' }}</div>
<div class="skill-stat">{{ localize 'Mosh.Treatment' }}</div>
<div class="item-controls">
<a class="item-control item-create" title="{{ localize 'Mosh.CreateCondition' }}" data-type="condition"><i class="fas fa-plus"></i> {{ localize 'Mosh.Add' }}</a>
</div>
</li>
{{#each conditions as |condition id|}}
<li class="item flexrow dropitem" data-item-id="{{condition._id}}">
<div class="item-image"><img src="{{condition.img}}" title="{{condition.name}}" width="24" height="24"/></div>
<div class="skill-name description-roll list-roll">{{condition.name}}</div>
<div class="skill-stat list-roll severity" data-severity="{{condition.system.severity}}">{{condition.system.severity}}</div>
<div class="skill-stat">
{{#if condition.system.treatment.html}}
<div class="treatment-button list-roll flex" style="margin: 0; position: relative; top: 50%; -ms-transform: translateY(-50%); transform: translateY(-50%);" data-key="condition" data-label="condition" data-max="3" data-min="0">
{{{condition.system.treatment.html}}}
</div>
{{else}}
<div class="treatment-button list-roll flex" style="margin: 0; position: relative; top: 50%; -ms-transform: translateY(-50%); transform: translateY(-50%);" data-key="condition" data-label="condition" data-max="3" data-min="0">
{{condition.name}}
</div>
{{/if}}
</div>
<div class="item-controls">
<a class="item-control skill-edit" title="{{ localize 'Mosh.EditCondition' }}"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="{{ localize 'Mosh.DeleteCondition' }}"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ol>
</div>
{{!-- Owned Weapons Tab --}}
<div class="tab items" data-group="primary" data-tab="weapons">
<div class="sla-card" style="margin-bottom: 12px;">
<div class="sla-card-label">Weapons Readiness</div>
<div class="sla-card-copy">Ammo stacks: {{slaAmmoInventory.stackCount}} | Total loose rounds: {{slaAmmoInventory.roundCount}} | Running firing spend: {{system.sla.ammoSpendTotal.value}} cR</div>
<div class="sla-card-copy">Carry: {{slaCarry.current}} / {{slaCarry.capacity}} kg | {{slaCarry.state}}</div>
<div class="sla-action-row" style="margin-top: 8px;">
<button type="button" class="sla-sheet-action weapon-reload-all">Reload All</button>
</div>
</div>
<!-- WEAPONS -->
<ol class="items-list">
<li class="item flexrow item-header">
<div class="item-image"></div>
<div class="skill-stat" style="flex-grow: 2;">{{ localize 'Mosh.WeaponName' }}</div>
<div class="skill-stat">{{ localize 'Mosh.Damage' }}</div>
<div class="skill-stat">{{ localize 'Mosh.Ammo' }}</div>
<div class="skill-stat">{{ localize 'Mosh.Shots' }}</div>
<div class="skill-stat">Mode</div>
<div class="skill-stat">Carry</div>
<div class="skill-stat">{{ localize 'Mosh.Range' }}</div>
<div class="item-controls">
<a class="item-control weapon-create" title="{{ localize 'Mosh.CreateWeapon' }}" data-type="weapon"><i class="fas fa-plus"></i> {{ localize 'Mosh.Add' }}</a>
</div>
</li>
{{#each weapons as |weapon id|}}
<li class="item flexrow dropitem" data-item-id="{{weapon._id}}">
<!-- <div class="item-image"><img src="{{skill.img}}" title="{{skill.name}}" width="24" height="24"/></div> -->
<div class="item-image"><img src="{{weapon.img}}" title="{{weapon.name}}" width="24" height="24" /></div>
<div class="skill-name weapon-roll list-roll sla-skill-name-cell" style="flex-grow: 2.05;">
<span>{{weapon.name}}</span>
{{#if weapon.system.useAmmo}}<small>{{weapon.sla.calibreLabel}}</small>{{/if}}
{{#if weapon.system.useAmmo}}<small class="sla-weapon-state sla-weapon-state-{{weapon.sla.ammoStateClass}}">{{weapon.sla.ammoState}}</small>{{/if}}
</div>
{{#if weapon.system.antiArmor}}
<div class="skill-stat dmg-roll list-roll">{{weapon.system.damage}} ({{ localize 'Mosh.AntiArmorAcronym' }})</div>
{{else}}
<div class="skill-stat dmg-roll list-roll">{{weapon.system.damage}}</div>
{{/if}}
{{#if weapon.system.useAmmo}}
<div class="skill-stat weapon-ammo list-roll" title="Reload or swap ammunition">
<div class="sla-weapon-ammo-primary">{{weapon.system.ammoLoadedType}} | {{weapon.sla.loadedAmmoReserve}}</div>
<div class="sla-weapon-ammo-secondary">{{weapon.sla.reserveSummary}}</div>
</div>
{{else}}
<div class="skill-stat">{{ localize 'Mosh.NA' }}</div>
{{/if}}
{{#if weapon.system.useAmmo}}
<div class="skill-stat">
<a class="weapon-shots list-roll" title="Reload or swap ammunition">{{weapon.system.curShots}}/{{weapon.system.shots}}</a>
<a class="weapon-reload list-roll" title="Reload or swap ammunition"><i class="fas fa-sync"></i></a>
</div>
{{else}}
<div class="skill-stat">{{ localize 'Mosh.NA' }}</div>
{{/if}}
{{#if weapon.system.useAmmo}}
<div class="skill-stat">
<a class="weapon-fire-mode list-roll" title="Cycle fire mode">{{weapon.system.sla.currentFireMode}}</a>
</div>
{{else}}
<div class="skill-stat">{{ localize 'Mosh.NA' }}</div>
{{/if}}
<div class="skill-stat">
<div class="sla-carry-toggle-row">
<button type="button" class="sla-carry-toggle {{#if (compare 'str' weapon.slaCarry.state '===' 'equipped')}}active{{/if}}" data-state="equipped">Eqp</button>
<button type="button" class="sla-carry-toggle {{#if (compare 'str' weapon.slaCarry.state '===' 'stowed')}}active{{/if}}" data-state="stowed">Stow</button>
</div>
<small class="sla-carry-row-text">{{weapon.slaCarry.totalWeight}} kg</small>
</div>
{{#if weapon.system.ranges.value}}
<div class="skill-stat">{{weapon.system.ranges.value}}</div>
{{else}}
<div class="skill-stat">{{ localize 'Mosh.NA' }}</div>
{{/if}}
<div class="item-controls">
<a class="item-control weapon-edit" title="{{ localize 'Mosh.EditWeapon' }}"><i class="fas fa-edit"></i></a>
<a class="item-control item-delete" title="{{ localize 'Mosh.DeleteWeapon' }}"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ol>
</div>
</section>
</form>