Files
RingBRP/templates/character-sheet.hbs
slaguru666andClaude Opus 5 750cbd257d Character sheet: reload button for ranged weapons
A reload icon sits beside the ammo count in the readied-weapon strip and
the weapons table, for any weapon with a magazine. It tops the weapon up
from its reserve (rules.reloadFor, spot-checked), posts the new count and
the weapon's reload time to chat, and warns when the weapon is already
full or the reserve is empty.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 18:21:57 +01:00

628 lines
36 KiB
Handlebars
Raw Permalink 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="ringbrp-sheet" autocomplete="off">
<header class="rb-header">
<div class="rb-ident">
<img class="rb-portrait" src="{{actor.img}}" data-edit="img" title="{{actor.name}}"/>
<div class="rb-headline">
<input class="rb-name" name="name" type="text" value="{{actor.name}}" placeholder="{{localize 'RINGBRP.Sheet.Name'}}"/>
{{#if isCharacter}}<input class="rb-rank" name="system.rank" type="text" value="{{sys.rank}}" placeholder="{{localize 'RINGBRP.Sheet.RankPlaceholder'}}"/>{{/if}}
<div class="rb-origin">
<label class="rb-style">{{localize "RINGBRP.Sheet.Style"}}
<select name="system.marksmanship.chosenStyle">
{{#each RINGBRP.marksmanship as |m key|}}
<option value="{{key}}" {{#if (rbEq key ../sys.marksmanship.style)}}selected{{/if}}>{{localize m.label}}</option>
{{/each}}
</select>
</label>
<ul class="rb-style-compare" title="{{localize 'RINGBRP.Style.Hint.Title'}}">
{{#each styleHints as |s|}}
<li class="{{#if s.on}}on{{/if}}"><b>{{s.label}}</b> {{s.hint}}</li>
{{/each}}
</ul>
</div>
{{#if isCharacter}}
<div class="rb-ages">
<label>{{localize "RINGBRP.Sheet.Chronological"}}<input type="number" name="system.age.chronological" value="{{sys.age.chronological}}"/></label>
<label>{{localize "RINGBRP.Sheet.Physiological"}}<input type="number" name="system.age.physiological" value="{{sys.age.physiological}}"/></label>
</div>
{{/if}}
</div>
</div>
<div class="rb-status">
<div class="rb-vitals">
<div class="rb-hp">
<span class="rb-vital-label">{{localize "RINGBRP.Sheet.HP"}}</span>
<input type="number" name="system.hp.value" value="{{sys.hp.value}}"/>
<span class="rb-slash">/</span>
<span class="rb-max">{{sys.hp.max}}</span>
</div>
<div class="rb-mw" title="{{localize 'RINGBRP.Sheet.MajorWoundHint'}}">
<span class="rb-vital-label">{{localize "RINGBRP.Sheet.MajorWound"}}</span>
<span class="rb-big">{{sys.majorWound.value}}</span>
</div>
<div class="rb-vital-coh rb-coh-{{coherence.band.id}}"
data-tooltip="{{localize coherence.band.note}}">
<span class="rb-vital-label">{{localize "RINGBRP.Coh.Label"}}</span>
<span class="rb-coh-row">
<a data-action="coherence-adjust" data-delta="-1" class="rb-cohbtn">&minus;</a>
<span class="rb-big">{{sys.coherence.value}}</span>
<a data-action="coherence-adjust" data-delta="1" class="rb-cohbtn">+</a>
</span>
<span class="rb-cohband">{{localize coherence.band.label}}</span>
</div>
<div class="rb-vital-panic rb-panic-{{panic.band.id}}"
data-tooltip="{{localize panic.band.note}}">
<span class="rb-vital-label">{{localize "RINGBRP.Panic.Label"}}</span>
<span class="rb-coh-row">
<a data-action="panic-adjust" data-delta="-1" class="rb-cohbtn">&minus;</a>
<span class="rb-big">{{sys.panic.value}}</span>
<a data-action="panic-adjust" data-delta="1" class="rb-cohbtn">+</a>
</span>
<span class="rb-cohband">{{localize panic.band.label}}</span>
</div>
<div class="rb-armour{{#if armourUnworn.length}} rb-unworn{{/if}}"
{{#if armourUnworn.length}}data-tooltip="{{localize "RINGBRP.Sheet.ArmourUnworn"}}"{{/if}}>
<span class="rb-vital-label">{{localize "RINGBRP.Sheet.Armour"}}</span>
<span class="rb-big">{{sys.armourPoints}}</span>
{{#if sys.armourUneven}}<span class="rb-armour-range">{{sys.armourRange.min}}&ndash;{{sys.armourRange.max}} {{localize "RINGBRP.Sheet.ByLocation"}}</span>{{/if}}
{{#if armourUnworn.length}}<span class="rb-unworn-flag">{{localize "RINGBRP.Sheet.NotWorn"}}</span>{{/if}}
</div>
<div class="rb-minibody" data-tooltip="{{localize 'RINGBRP.Sheet.MiniBodyHint'}}">
{{> "systems/ringbrp/templates/partials/body-figure.hbs" map=bodyMap label=speciesLabel svgClass="rb-body-mini"}}
<ul class="rb-minilocs">
{{#each bodyMap.parts as |p|}}
<li class="rb-miniloc rb-miniloc-{{p.state}}" data-loc="{{p.id}}"
data-tooltip="{{localize p.label}} — {{p.taken}}/{{p.max}}">
<span class="rb-miniloc-name">{{localize p.label}}</span>
<span class="rb-miniloc-hp">{{p.taken}}/{{p.max}}</span>
<span class="rb-miniloc-ap{{#unless p.armour}} rb-miniloc-noap{{/unless}}">{{#if p.armour}}{{p.armour}}{{else}}&mdash;{{/if}}</span>
</li>
{{/each}}
</ul>
</div>
{{#if wounds.length}}
<div class="rb-wounded">
<span class="rb-vital-label">{{localize "RINGBRP.Tab.Wounds"}}</span>
<span class="rb-big" style="color:var(--rb-danger)">{{wounds.length}}</span>
<span class="rb-wound-flag">{{localize "RINGBRP.Sheet.Wounded"}}</span>
</div>
{{/if}}
</div>
<section class="rb-derived">
<div class="rb-derived-group">
<span class="rb-dl">{{localize "RINGBRP.Sheet.DamageMod"}}</span><span class="rb-dv">{{sys.damageModifier}}</span>
</div>
<div class="rb-derived-group">
<span class="rb-dl">{{localize "RINGBRP.Sheet.MOV"}}</span><span class="rb-dv">{{sys.mov}}</span>
</div>
<div class="rb-derived-group">
<span class="rb-dl">{{localize "RINGBRP.Sheet.Carry"}}</span>
<span class="rb-dv {{#if sys.encumbrance.steps}}rb-warn{{/if}}">{{sys.carriedKg}} / {{sys.freeCarryKg}} kg</span>
</div>
<div class="rb-rolls">
<button type="button" data-action="roll-attribute" data-attribute="stamina">{{localize "RINGBRP.Roll.stamina"}} {{sys.rolls.stamina}}</button>
<button type="button" data-action="roll-attribute" data-attribute="idea">{{localize "RINGBRP.Roll.idea"}} {{sys.rolls.idea}}</button>
<button type="button" data-action="roll-attribute" data-attribute="luck">{{localize "RINGBRP.Roll.luck"}} {{sys.rolls.luck}}</button>
</div>
</section>
<section class="rb-weaponstrip">
<span class="rb-strip-label">{{localize "RINGBRP.Sheet.Readied"}}</span>
{{#each equippedWeapons as |w|}}
<span class="rb-strip-weapon" data-item-id="{{w.id}}">
<a data-action="roll-attack">{{w.name}}</a>
<span class="rb-strip-dmg" data-action="roll-damage">{{#if (rbEq w.system.damage.mode "byBand")}}{{w.system.damage.short}}/{{w.system.damage.medium}}/{{w.system.damage.long}}{{else}}{{w.system.damage.formula}}{{/if}}</span>
{{#if w.system.rangeSummary}}<span class="rb-strip-range">{{w.system.rangeSummary}}</span>{{/if}}
{{#if w.system.ammo.capacity}}<span class="rb-strip-ammo">{{w.system.ammo.loaded}}/{{w.system.ammo.capacity}}</span><a class="rb-reload" data-action="reload-weapon" data-tooltip="{{localize 'RINGBRP.Sheet.ReloadHint'}} ({{localize 'RINGBRP.Item.Reserve'}} {{w.system.ammo.reserve}})"><i class="fa-solid fa-rotate-right"></i></a>{{/if}}
</span>
{{else}}
<span class="rb-strip-empty">{{localize "RINGBRP.Sheet.NothingReadied"}}</span>
{{/each}}
</section>
</div>
</header>
<section class="rb-characteristics">
{{#each sys.characteristics as |c key|}}
<div class="rb-char" data-characteristic="{{key}}">
<a class="rb-char-label" data-action="roll-characteristic"
title="{{localize 'RINGBRP.Sheet.RollCharHint'}}">{{localize (rbConcat "RINGBRP.Char." key)}}</a>
<input type="number" name="system.characteristics.{{key}}.value" value="{{c.value}}"/>
<a class="rb-char-x5" data-action="roll-characteristic"
title="{{localize 'RINGBRP.Sheet.RollCharHint'}}">{{rbTimes5 c.value}}</a>
</div>
{{/each}}
</section>
<div class="rb-main">
<nav class="sheet-tabs rb-tabs" data-group="primary">
<a class="item" data-tab="skills"><span class="rb-tab-label">{{localize "RINGBRP.Tab.Skills"}}</span></a>
<a class="item" data-tab="combat"><span class="rb-tab-label">{{localize "RINGBRP.Tab.Combat"}}</span></a>
<a class="item" data-tab="talents"><span class="rb-tab-label">{{localize "RINGBRP.Tab.Talents"}}</span>{{#if talents.length}}<span class="rb-tab-count">{{talents.length}}</span>{{/if}}</a>
<a class="item" data-tab="powers"><span class="rb-tab-label">{{localize "RINGBRP.Tab.Powers"}}</span>{{#if powers.length}}<span class="rb-tab-count">{{powers.length}}</span>{{/if}}</a>
<a class="item" data-tab="gear"><span class="rb-tab-label">{{localize "RINGBRP.Tab.Gear"}}</span></a>
<a class="item" data-tab="anatomy"><span class="rb-tab-label">{{localize "RINGBRP.Tab.Anatomy"}}</span>{{#if sys.disabledLocations}}<span class="rb-tab-count rb-tab-bad">{{sys.disabledLocations}}</span>{{/if}}</a>
<a class="item" data-tab="wounds"><span class="rb-tab-label">{{localize "RINGBRP.Tab.Wounds"}}</span>{{#if wounds.length}}<span class="rb-tab-count rb-tab-bad">{{wounds.length}}</span>{{/if}}</a>
<a class="item" data-tab="bio"><span class="rb-tab-label">{{localize "RINGBRP.Tab.Bio"}}</span></a>
</nav>
<section class="sheet-body rb-body">
<div class="tab" data-group="primary" data-tab="skills">
{{#if dyingNow}}
<div class="rb-dyingbar{{#if stabilised}} rb-stable{{/if}}">
<span class="rb-dyingbar-title">{{localize "RINGBRP.Condition.dying"}}</span>
{{#if stabilised}}
<span>{{localize "RINGBRP.Death.StableTag"}}</span>
{{else}}
<span>{{localize "RINGBRP.Death.CountTag"}} {{dyingRounds}} / {{dyingLimit}}</span>
{{/if}}
</div>
{{/if}}
{{#if deadNow}}
<div class="rb-deadbar">
<span class="rb-dyingbar-title">{{localize "RINGBRP.Condition.dead"}}</span>
<span>{{lastEntry}}</span>
</div>
{{/if}}
{{#if impaired.active}}
<div class="rb-woundbar" data-tooltip="{{localize 'RINGBRP.Sheet.WoundBarHint'}}">
<span class="rb-woundbar-title"><i class="fas fa-triangle-exclamation"></i>
{{#if impaired.unconscious}}{{localize "RINGBRP.Sheet.Unconscious"}}
{{else if impaired.defenceOnly}}{{localize "RINGBRP.Sheet.OutOfFight"}}
{{else}}{{localize "RINGBRP.Sheet.Wounded"}}{{/if}}</span>
{{#each impaired.chips as |c|}}<span class="rb-woundchip">{{c}}</span>{{/each}}
<span class="rb-woundbar-pen">{{impaired.summary}}</span>
</div>
{{/if}}
<div class="rb-skillbar">
<span class="rb-dim">{{skillCount}} {{localize "RINGBRP.Sheet.SkillsShown"}}</span>
{{#if development.marked}}
<span class="rb-dev-count" title="{{localize 'RINGBRP.Dev.Tooltip'}}">{{development.marked}} {{localize "RINGBRP.Dev.Marked"}}</span>
{{/if}}
{{#if development.open}}
<a class="rb-cbtn rb-cbtn-dev" data-action="development"
title="{{localize 'RINGBRP.Dev.Tooltip'}}">{{localize "RINGBRP.Dev.Button"}}</a>
{{/if}}
<a class="rb-cbtn" data-action="full-skills">{{localize "RINGBRP.Sheet.FullList"}}</a>
</div>
{{#each RINGBRP.categories as |cat key|}}
<div class="rb-cat">
<h3 class="rb-cat-head">
{{localize cat.label}}
<span class="rb-catbonus" title="{{localize 'RINGBRP.Sheet.CategoryBonusHint'}}">+{{lookup ../sys.categoryBonus key}}</span>
<a class="rb-add" data-action="item-create" data-type="skill" title="{{localize 'RINGBRP.Sheet.AddSkill'}}"><i class="fas fa-plus"></i></a>
</h3>
<ol class="rb-skills">
{{#unless (rbLen (lookup ../skillsByCategory key))}}
<li class="rb-skill-empty">{{localize "RINGBRP.Sheet.NoSkillsHere"}}</li>
{{/unless}}
{{#each (lookup ../skillsByCategory key) as |sk|}}
<li class="rb-skill" data-item-id="{{sk.id}}">
<a class="rb-tick {{#if sk.system.experienceTicked}}on{{/if}}" data-action="toggle-tick" title="{{localize 'RINGBRP.Sheet.ExperienceTick'}}"></a>
<img class="rb-li-icon" src="{{sk.img}}" alt=""/><a class="rb-skill-name" data-action="roll-skill">{{sk.name}}</a>
<span class="rb-skill-val">{{sk.system.value}}%</span>
<span class="rb-skill-bands" title="{{localize 'RINGBRP.Sheet.BandsHint'}}">{{rbBands sk.system.value}}</span>
<a data-action="item-edit" title="{{localize 'RINGBRP.Sheet.Edit'}}"><i class="fas fa-edit"></i></a>
<a data-action="item-delete" title="{{localize 'RINGBRP.Sheet.Delete'}}"><i class="fas fa-trash"></i></a>
</li>
{{/each}}
</ol>
</div>
{{/each}}
</div>
<div class="tab" data-group="primary" data-tab="combat">
<h3 class="rb-cat-head">{{localize "RINGBRP.Tab.Weapons"}}
<a class="rb-add" data-action="item-create" data-type="weapon"><i class="fas fa-plus"></i></a>
</h3>
<p class="rb-hint rb-ready-hint">{{localize "RINGBRP.Sheet.ReadyHint"}}</p>
<table class="rb-table rb-weapontable">
<thead><tr>
<th class="rb-col-ready" data-tooltip="{{localize 'RINGBRP.Sheet.ReadyHint'}}">{{localize "RINGBRP.Sheet.Ready"}}</th>
<th>{{localize "RINGBRP.Sheet.Weapon"}}</th><th>{{localize "RINGBRP.Sheet.Damage"}}</th>
<th>{{localize "RINGBRP.Sheet.Range"}}</th><th>{{localize "RINGBRP.Sheet.Ammo"}}</th>
<th class="rb-col-num">{{localize "RINGBRP.Sheet.Mass"}}</th><th></th>
</tr></thead>
<tbody>
{{#each weapons as |w|}}
<tr data-item-id="{{w.id}}" class="{{#if w.system.equipped}}rb-wrow-ready{{/if}}">
<td class="rb-col-ready">
<a class="rb-equip {{#if w.system.equipped}}on{{/if}}" data-action="toggle-equipped"
data-tooltip="{{localize 'RINGBRP.Sheet.ReadyToggle'}}"><i class="fas fa-hand-fist"></i></a>
</td>
<td class="rb-td-icon"><img class="rb-li-icon rb-weapon-icon" src="{{w.img}}" alt=""/><a data-action="roll-attack" class="rb-weapon-name">{{w.name}}</a></td>
<td><a data-action="roll-damage" class="rb-weapon-dmg">{{#if (rbEq w.system.damage.mode "byBand")}}{{w.system.damage.short}}/{{w.system.damage.medium}}/{{w.system.damage.long}}{{else}}{{w.system.damage.formula}}{{/if}}</a></td>
<td>{{w.system.rangeSummary}}</td>
<td>{{#if w.system.ammo.capacity}}{{w.system.ammo.loaded}}/{{w.system.ammo.capacity}} <a class="rb-reload" data-action="reload-weapon" data-tooltip="{{localize 'RINGBRP.Sheet.ReloadHint'}} ({{localize 'RINGBRP.Item.Reserve'}} {{w.system.ammo.reserve}})"><i class="fa-solid fa-rotate-right"></i></a>{{/if}}</td>
<td class="rb-col-num">{{w.system.massKg}} kg</td>
<td class="rb-actions">
<a data-action="item-edit"><i class="fas fa-edit"></i></a>
<a data-action="item-delete"><i class="fas fa-trash"></i></a>
</td>
</tr>
{{/each}}
</tbody>
</table>
<h3 class="rb-cat-head">{{localize "RINGBRP.Tab.Armour"}}
<a class="rb-add" data-action="item-create" data-type="armour"><i class="fas fa-plus"></i></a>
</h3>
<ol class="rb-list">
{{#each armours as |a|}}
<li data-item-id="{{a.id}}" class="{{#if a.raisedNow}}rb-shield-up{{/if}}{{#if a.brokenNow}} rb-shield-broken{{/if}}">
<a class="rb-equip {{#if a.system.equipped}}on{{/if}}" data-action="toggle-equipped"><i class="fas fa-shield-halved"></i></a>
{{#if a.system.shield}}
<a class="rb-raise {{#if a.raisedNow}}on{{/if}}" data-action="toggle-raised"
data-tooltip="{{localize 'RINGBRP.Sheet.RaiseHint'}}"><i class="fas fa-hand-back-fist"></i></a>
{{/if}}
<img class="rb-li-icon" src="{{a.img}}" alt=""/><span class="rb-strong">{{a.name}}</span>
<span class="rb-dim">{{a.system.points}} {{localize "RINGBRP.Sheet.Points"}}</span>
{{#if a.system.shield}}
<span class="rb-shield-state">{{#if a.brokenNow}}{{localize "RINGBRP.Sheet.ShieldBroken"}}{{else if a.raisedNow}}{{localize "RINGBRP.Sheet.ShieldUp"}}{{else}}{{localize "RINGBRP.Sheet.ShieldDown"}}{{/if}}</span>
<span class="rb-dim rb-shield-wear">{{a.system.degradation.current}}/{{a.system.degradation.max}}</span>
{{/if}}
<span class="rb-dim">{{localize (rbConcat "RINGBRP.Coverage." a.system.coverage)}}</span>
<span class="rb-dim rb-mass">{{a.system.massKg}} kg</span>
<a data-action="item-edit"><i class="fas fa-edit"></i></a>
<a data-action="item-delete"><i class="fas fa-trash"></i></a>
</li>
{{/each}}
</ol>
<div class="rb-defbar">
<span class="rb-defbar-label">{{localize "RINGBRP.Sheet.Defend"}}</span>
<a class="rb-cbtn" data-action="defend" data-type="dodge"
data-tooltip="{{localize 'RINGBRP.Sheet.DefendHint'}}">{{localize "RINGBRP.Defence.dodge"}}</a>
<a class="rb-cbtn" data-action="defend" data-type="parry"
data-tooltip="{{localize 'RINGBRP.Sheet.DefendHint'}}">{{localize "RINGBRP.Defence.parry"}}</a>
{{#if sys.shieldUp}}
<a class="rb-cbtn rb-cbtn-shield" data-action="defend" data-type="shield"
data-tooltip="{{localize 'RINGBRP.Sheet.ShieldHint'}}">{{sys.shieldUp.name}} {{sys.shieldUp.points}}</a>
{{/if}}
<span class="rb-defbar-count">
{{#if sys.combat.defencesThisRound}}
{{sys.combat.defencesThisRound}} {{localize "RINGBRP.Sheet.ThisRound"}} · {{localize "RINGBRP.Sheet.NextAt"}} {{defenceNext}}%
{{else}}{{localize "RINGBRP.Sheet.FirstIsFree"}}{{/if}}
</span>
</div>
<h3 class="rb-cat-head">{{localize "RINGBRP.React.Title"}}</h3>
<div class="rb-railbox">
<div class="rb-rail-head">
<span class="rb-rail-base">{{reaction.printed}}</span>
<span class="rb-rail-cap">{{localize "RINGBRP.React.Printed"}}</span>
<span class="rb-dim">{{localize "RINGBRP.React.Reflex"}} {{reaction.reflex}} · {{localize "RINGBRP.React.Awareness"}} {{reaction.aware}} — {{localize "RINGBRP.React.Uses"}} {{localize (rbConcat "RINGBRP.React.From." reaction.from)}}</span>
{{#if reaction.load}}
<span class="rb-rail-load">{{localize "RINGBRP.React.Base"}} {{reaction.base}} − {{localize "RINGBRP.React.Load"}} {{reaction.load}}</span>
{{/if}}
</div>
<table class="rb-rail">
<tr>{{#each reaction.rail as |r|}}<th class="{{#if r.current}}on{{/if}}">{{rbSign r.mod}}</th>{{/each}}</tr>
<tr>{{#each reaction.rail as |r|}}<td class="{{#if r.current}}on{{/if}}">{{r.value}}</td>{{/each}}</tr>
</table>
<details class="rb-react-work">
<summary>{{localize "RINGBRP.React.HowIsThis"}}</summary>
<table class="rb-worktable">
<tr><th>{{localize "RINGBRP.React.Reflex"}}</th>
<td>DEX {{reaction.work.dex}} &divide; {{reaction.work.dexDiv}}, rounded up</td>
<td class="rb-worknum">{{reaction.work.reflex}}</td></tr>
<tr><th>{{localize "RINGBRP.React.Awareness"}}</th>
<td>{{localize "RINGBRP.React.Readiness"}} {{reaction.work.readiness}} &divide; {{reaction.work.readyDiv}}, rounded up</td>
<td class="rb-worknum">{{reaction.work.aware}}</td></tr>
<tr class="rb-worknote"><td colspan="3">
{{#if reaction.work.fromTraining}}
{{localize "RINGBRP.React.ReadyFromSkill"}} ({{reaction.work.best}}) &mdash; {{localize "RINGBRP.React.ReadyIntFloor"}} {{reaction.work.intFloor}}
{{else}}
{{localize "RINGBRP.React.ReadyFromInt"}} ({{reaction.work.intFloor}}) &mdash; {{localize "RINGBRP.React.ReadyBestSkill"}} {{reaction.work.best}}
{{/if}}
</td></tr>
<tr><th>{{localize "RINGBRP.React.Lane"}}</th>
<td>{{localize "RINGBRP.React.BetterOf"}} &times; {{reaction.work.mult}}</td>
<td class="rb-worknum">{{reaction.work.base}}</td></tr>
{{#if reaction.work.load}}
<tr class="rb-workload"><th>{{localize "RINGBRP.React.Load"}}</th>
<td>{{reaction.work.carried}} / {{reaction.work.free}} kg &mdash; {{reaction.work.overKg}} kg over</td>
<td class="rb-worknum">&minus;{{reaction.work.load}}</td></tr>
{{/if}}
<tr class="rb-worktotal"><th>{{localize "RINGBRP.React.Printed"}}</th>
<td>{{localize "RINGBRP.React.ThenAddDie"}} d{{reaction.work.die}}</td>
<td class="rb-worknum">{{reaction.work.printed}}</td></tr>
</table>
</details>
<p class="rb-hint">{{localize "RINGBRP.React.RailHint"}}</p>
</div>
<h3 class="rb-cat-head">{{localize "RINGBRP.Sheet.BodyHead"}}
<a class="rb-add" data-action="roll-location"
data-tooltip="{{localize 'RINGBRP.Loc.RollHint'}}"><i class="fas fa-crosshairs"></i></a>
</h3>
<div class="rb-bodyblock">
<div class="rb-figure">
{{> "systems/ringbrp/templates/partials/body-figure.hbs" map=bodyMap label=speciesLabel svgClass=""}}
<span class="rb-figure-species">{{speciesLabel}}</span>
<a class="rb-cbtn rb-figure-roll" data-action="roll-location"
data-tooltip="{{localize 'RINGBRP.Loc.RollHint'}}">{{localize "RINGBRP.Loc.RollButton"}}</a>
</div>
<div class="rb-bodyside">
<table class="rb-table rb-loctable rb-loctable-compact">
<thead><tr>
<th class="rb-col-loc">{{localize "RINGBRP.Sheet.Locations"}}</th>
<th class="rb-col-num">{{localize "RINGBRP.Loc.Melee"}}</th>
<th class="rb-col-num">{{localize "RINGBRP.Loc.Ranged"}}</th>
<th class="rb-col-num">{{localize "RINGBRP.Loc.Taken"}}</th>
<th class="rb-col-num">{{localize "RINGBRP.Sheet.Armour"}}</th>
</tr></thead>
<tbody>
{{#each bodyMap.parts as |l|}}
<tr class="rb-locrow rb-locrow-{{l.state}}" data-loc="{{l.id}}">
<td class="rb-col-loc">{{localize l.label}}</td>
<td class="rb-col-num">{{l.melee}}</td>
<td class="rb-col-num">{{l.ranged}}</td>
<td class="rb-col-num">{{l.taken}}/{{l.max}}</td>
<td class="rb-col-ap">
<span class="rb-ap-num">{{l.armour}}</span>
{{#if l.armourFrom.length}}
<span class="rb-ap-from">{{#each l.armourFrom as |a|}}<span class="rb-ap-piece" data-tooltip="{{a.name}} — {{a.points}}">{{a.name}}</span>{{/each}}</span>
{{else}}
<span class="rb-ap-bare">{{localize "RINGBRP.Sheet.Unarmoured"}}</span>
{{/if}}
</td>
</tr>
{{/each}}
</tbody>
</table>
<h4 class="rb-sub-head">{{localize "RINGBRP.Tab.Wounds"}}{{#if wounds.length}} ({{wounds.length}}){{/if}}</h4>
{{#if wounds.length}}
<ol class="rb-list rb-wounds rb-wounds-compact">
{{#each wounds as |w|}}
<li data-wound-id="{{w.id}}">
<span class="rb-strong">{{localize (rbConcat "RINGBRP.Wound." w.key ".title")}}</span>
<span class="rb-dim">{{localize (rbConcat "RINGBRP.Wound." w.key ".text")}}</span>
<a data-action="wound-clear" title="{{localize 'RINGBRP.Sheet.ClearWound'}}"><i class="fas fa-times"></i></a>
</li>
{{/each}}
</ol>
{{else}}
<p class="rb-empty">{{localize "RINGBRP.Sheet.NoWounds"}}</p>
{{/if}}
</div>
</div>
</div>
<div class="tab" data-group="primary" data-tab="talents">
{{#each talentGroups as |grp|}}
{{#if grp.items.length}}
<h3 class="rb-cat-head">{{localize grp.label}}</h3>
<ol class="rb-talents">
{{#each grp.items as |t|}}
<li class="rb-talent" data-item-id="{{t.id}}">
<img class="rb-talent-icon" src="{{t.img}}" alt=""/>
<div class="rb-talent-body">
<a class="rb-talent-name" data-action="item-edit">{{t.name}}</a>
<div class="rb-talent-summary">{{t.system.summary}}</div>
<div class="rb-talent-rule">{{t.system.rule}}</div>
</div>
<div class="rb-talent-cost">
{{#if t.active}}
<a class="rb-cbtn {{#unless t.available}}rb-disabled{{/unless}}"
data-action="use-talent" title="{{t.whyUnavailable}}">{{localize "RINGBRP.Talent.Use"}}</a>
{{else}}
<span class="rb-talent-passive">{{localize "RINGBRP.Talent.Passive"}}</span>
{{/if}}
{{#if t.system.coherenceCost}}<span class="rb-talent-coh" title="{{localize 'RINGBRP.Talent.CoherenceCost'}}">&minus;{{t.system.coherenceCost}}</span>{{/if}}
{{#if t.system.usesPerCase}}<span class="rb-talent-uses">{{t.system.usedThisCase}}/{{t.system.usesPerCase}}</span>{{/if}}
{{#if t.system.skillBonus.value}}<span class="rb-talent-bonus">+{{t.system.skillBonus.value}}%</span>{{/if}}
</div>
<a data-action="item-delete" title="{{localize 'RINGBRP.Sheet.Delete'}}"><i class="fas fa-trash"></i></a>
</li>
{{/each}}
</ol>
{{/if}}
{{/each}}
{{#unless talents.length}}<p class="rb-empty">{{localize "RINGBRP.Talent.None"}}</p>{{/unless}}
</div>
<div class="tab" data-group="primary" data-tab="powers">
{{#if powers.length}}
<ol class="rb-list rb-powers">
{{#each powers as |p|}}
<li data-item-id="{{p.id}}">
<div class="rb-power-head">
<img class="rb-li-icon" src="{{p.img}}" alt=""/>
<a class="rb-strong rb-power-name" data-action="power-use">{{p.name}}</a>
<span class="rb-power-val">{{p.system.value}}%</span>
<span class="rb-power-cost">−{{p.system.coherenceCost}}</span>
<a class="rb-cbtn" data-action="power-use">{{localize "RINGBRP.Power.Use"}}</a>
<a class="rb-cbtn rb-power-push" data-action="power-push"
data-tooltip="{{p.system.pushRule}}">{{localize "RINGBRP.Power.Push"}} −{{p.system.pushCost}}</a>
<a data-action="item-edit"><i class="fas fa-edit"></i></a>
<a data-action="item-delete"><i class="fas fa-trash"></i></a>
</div>
<p class="rb-power-summary">{{p.system.summary}}</p>
<p class="rb-power-rule">{{p.system.rule}}</p>
{{#if p.system.origin}}
<p class="rb-power-origin">{{localize "RINGBRP.Power.Origin"}}: {{p.system.origin}}</p>
{{/if}}
</li>
{{/each}}
</ol>
{{else}}
<p class="rb-empty">{{localize "RINGBRP.Power.None"}}</p>
{{/if}}
</div>
<div class="tab" data-group="primary" data-tab="gear">
{{#if authorities.length}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Tab.Access"}}</h3>
<ol class="rb-list rb-authorities">
{{#each authorities as |a|}}
<li data-item-id="{{a.id}}" class="{{#if a.system.burned}}rb-auth-dead{{else if a.system.suspect}}rb-auth-flagged{{/if}}">
<div class="rb-auth-head">
<img class="rb-li-icon" src="{{a.img}}" alt=""/>
<span class="rb-strong">{{#if a.system.holderName}}{{a.system.holderName}}{{else}}{{a.name}}{{/if}}</span>
<span class="rb-dim">{{a.system.holderRole}}</span>
<span class="rb-auth-trust" title="{{localize 'RINGBRP.Authority.Trust'}}">
{{localize "RINGBRP.Authority.Trust"}} {{a.system.trust.value}}/{{a.system.trust.max}}</span>
{{#if a.system.burned}}<span class="rb-auth-tag">{{localize "RINGBRP.Authority.BurnedTag"}}</span>
{{else if a.system.suspect}}<span class="rb-auth-tag">{{localize "RINGBRP.Authority.SuspectTag"}}</span>{{/if}}
<a data-action="item-edit"><i class="fas fa-edit"></i></a>
<a data-action="item-delete"><i class="fas fa-trash"></i></a>
</div>
<div class="rb-auth-body">
<span class="rb-dim">{{a.scopeLabel}}{{#if a.system.scopeNote}} — {{a.system.scopeNote}}{{/if}}</span>
{{#if a.system.expires}}<span class="rb-dim">{{localize "RINGBRP.Authority.Expires"}}: {{a.system.expires}}</span>{{/if}}
{{#if a.flagCount}}<span class="rb-auth-flags">{{a.flagCount}} {{localize "RINGBRP.Authority.RedFlags"}}</span>{{/if}}
{{#if a.merged}}<span class="rb-auth-merge-tag">{{localize "RINGBRP.Authority.MergingTag"}}</span>{{/if}}
</div>
<div class="rb-auth-acts">
<a class="rb-cbtn" data-action="authority-use">{{localize "RINGBRP.Authority.Use"}}</a>
<a class="rb-cbtn" data-action="authority-widen">{{localize "RINGBRP.Authority.Widen"}}</a>
{{#if a.system.suspect}}<a class="rb-cbtn" data-action="authority-rehab">{{localize "RINGBRP.Authority.Rehab"}}</a>{{/if}}
</div>
</li>
{{/each}}
</ol>
{{/if}}
{{#if vehicles.length}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Tab.Transport"}}</h3>
<ol class="rb-list rb-vehicles">
{{#each vehicles as |v|}}
<li data-item-id="{{v.id}}">
<img class="rb-li-icon" src="{{v.img}}" alt=""/><span class="rb-strong">{{v.name}}</span>
<span class="rb-dim">{{v.speedLabel}}</span>
<span class="rb-dim">{{localize "RINGBRP.Vehicle.Hull"}} {{v.system.hull.value}}/{{v.system.hull.max}}</span>
<span class="rb-dim">{{localize "RINGBRP.Vehicle.Seats"}} {{v.system.seats}}</span>
<span class="rb-dim">{{v.rating}}%</span>
<a data-action="item-edit"><i class="fas fa-edit"></i></a>
<a data-action="item-delete"><i class="fas fa-trash"></i></a>
</li>
{{/each}}
</ol>
{{/if}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Tab.Gear"}}
<a class="rb-add" data-action="item-create" data-type="gear"><i class="fas fa-plus"></i></a>
<a class="rb-add" data-action="item-create" data-type="device" title="{{localize 'RINGBRP.New.device'}}"><i class="fas fa-microchip"></i></a>
<a class="rb-add" data-action="item-create" data-type="vehicle" title="{{localize 'RINGBRP.New.vehicle'}}"><i class="fas fa-truck"></i></a>
<a class="rb-add" data-action="item-create" data-type="authority" title="{{localize 'RINGBRP.New.authority'}}"><i class="fas fa-id-badge"></i></a>
</h3>
<ol class="rb-list">
{{#each gear as |g|}}
<li data-item-id="{{g.id}}">
<img class="rb-li-icon" src="{{g.img}}" alt=""/><span class="rb-strong">{{g.name}}</span>
<span class="rb-dim">{{g.system.massKg}} kg</span>
{{#if (rbEq g.type "device")}}
<span class="rb-dim">{{localize "RINGBRP.Sheet.Integrity"}} {{g.system.integrity.value}}/{{g.system.integrity.max}}</span>
{{/if}}
<a data-action="item-edit"><i class="fas fa-edit"></i></a>
<a data-action="item-delete"><i class="fas fa-trash"></i></a>
</li>
{{#if (rbEq g.type "device")}}
<li class="rb-devicebar" data-item-id="{{g.id}}">
{{#each g.functions as |f|}}
<span class="rb-devfn {{#unless f.usable}}rb-devfn-blocked{{/unless}}">
<a class="rb-cbtn {{#unless f.usable}}rb-disabled{{/unless}}"
data-action="device-fn" data-fn="{{f.id}}" title="{{f.why}}">{{localize f.label}}</a>
<span class="rb-devfn-why">{{f.why}}</span>
</span>
{{/each}}
</li>
{{/if}}
{{/each}}
</ol>
</div>
<div class="tab" data-group="primary" data-tab="anatomy">
<h3 class="rb-cat-head">{{speciesLabel}}
<a class="rb-add" data-action="roll-location" title="{{localize 'RINGBRP.Loc.RollHint'}}"><i class="fas fa-crosshairs"></i></a>
</h3>
<div class="rb-anatblock">
<div class="rb-figure">
{{> "systems/ringbrp/templates/partials/body-figure.hbs" map=bodyMap label=speciesLabel svgClass=""}}
<span class="rb-figure-species">{{speciesLabel}}</span>
<a class="rb-cbtn rb-figure-roll" data-action="roll-location"
data-tooltip="{{localize 'RINGBRP.Loc.RollHint'}}">{{localize "RINGBRP.Loc.RollButton"}}</a>
</div>
<div class="rb-anatside">
<table class="rb-table rb-loctable">
<thead><tr>
<th class="rb-col-loc">{{localize "RINGBRP.Sheet.Locations"}}</th>
<th class="rb-col-num">{{localize "RINGBRP.Loc.Melee"}}</th>
<th class="rb-col-num">{{localize "RINGBRP.Loc.Ranged"}}</th>
<th class="rb-col-num">{{localize "RINGBRP.Loc.Taken"}}</th>
<th class="rb-col-num">{{localize "RINGBRP.Sheet.Armour"}}</th>
</tr></thead>
<tbody>
{{#each sys.locations as |l|}}
<tr class="{{#if l.destroyed}}rb-loc-row-destroyed{{else if l.disabled}}rb-loc-row-disabled{{/if}}">
<td class="rb-col-loc rb-loc-cell">{{localize l.label}}
{{#if l.destroyed}}<span class="rb-loc-flag rb-loc-flag-x">{{localize "RINGBRP.Loc.Destroyed"}}</span>
{{else if l.disabled}}<span class="rb-loc-flag">{{localize "RINGBRP.Loc.Disabled"}}</span>{{/if}}</td>
<td class="rb-col-num">{{l.melee}}</td>
<td class="rb-col-num">{{l.ranged}}</td>
<td class="rb-col-num">{{l.taken}}/{{l.max}}</td>
<td class="rb-col-ap">
<span class="rb-ap-num">{{l.armour}}</span>
{{#if l.armourFrom.length}}
<span class="rb-ap-from">{{#each l.armourFrom as |a|}}<span class="rb-ap-piece">{{a.name}} <b>{{a.points}}</b></span>{{/each}}</span>
{{else}}
<span class="rb-ap-bare">{{localize "RINGBRP.Sheet.Unarmoured"}}</span>
{{/if}}
</td>
</tr>
{{/each}}
</tbody>
</table>
</div>
</div>
<p class="rb-hint">{{localize "RINGBRP.Sheet.LocationNote"}}</p>
</div>
<div class="tab" data-group="primary" data-tab="wounds">
{{#if wounds.length}}
<ol class="rb-list rb-wounds">
{{#each wounds as |w|}}
<li data-wound-id="{{w.id}}">
<span class="rb-strong">{{localize (rbConcat "RINGBRP.Wound." w.key ".title")}}</span>
<span class="rb-dim">{{localize (rbConcat "RINGBRP.Wound." w.key ".text")}}</span>
<a data-action="wound-clear" title="{{localize 'RINGBRP.Sheet.ClearWound'}}"><i class="fas fa-times"></i></a>
</li>
{{/each}}
</ol>
{{else}}
<p class="rb-empty">{{localize "RINGBRP.Sheet.NoWounds"}}</p>
{{/if}}
</div>
<div class="tab" data-group="primary" data-tab="bio">
<label class="rb-block">{{localize "RINGBRP.Sheet.Species"}}</label>
<select name="system.speciesProfile" class="rb-species-select">
{{#each RINGBRP.locationTables as |tbl key|}}
<option value="{{key}}" {{#if (rbEq key ../sys.speciesProfile)}}selected{{/if}}>{{localize tbl.label}}</option>
{{/each}}
</select>
<p class="rb-hint">{{localize "RINGBRP.Sheet.SpeciesHint"}}</p>
<label class="rb-block">{{localize "RINGBRP.Sheet.Biography"}}</label>
{{editor bioHTML target="system.biography" button=true editable=editable engine="prosemirror"}}
<label class="rb-block">{{localize "RINGBRP.Sheet.Notes"}}</label>
{{editor notesHTML target="system.notes" button=true editable=editable engine="prosemirror"}}
</div>
</section>
</div>
</form>