Files
RingBRP/templates/item-sheet.hbs
T
slaguru666andClaude Opus 5 d0144f744e The Custodians v0.6.1 — full system
A Foundry VTT game system: Basic Roleplaying d100 in a drab British agency that
deals with crossings, where reality keeps a record of what belongs where and can be
made to get it wrong.

Contents:
- rules.mjs as the single authority for every rule formula, with 40 rules and 132
  spot-checked values. Nothing may restate a formula it defines.
- 25 postings, each with a key characteristic, trained skills, talents and its own
  kit; a 175-item catalogue across four eras; 231 generated icons.
- Reaction Lanes initiative, re-rolled every round including the first.
- Coherence, and the Quiet Arts, which only ever arrive from a crossing gone wrong.
- Graded defences: only a critical stops a critical.
- Borrowed Authority — access as a record rather than a hacking roll.
- A case generator, and a rules journal generated from rules.mjs so the book cannot
  drift from the code.

Built compendia are committed so a remote Foundry needs only the files.
node_modules is not; `npm install` restores it for rebuilding content.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 18:09:07 +01:00

468 lines
32 KiB
Handlebars

<form class="ringbrp-sheet rb-item" autocomplete="off">
<header class="rb-item-header">
<img class="rb-item-img" src="{{item.img}}" data-edit="img"/>
<div class="rb-item-ident">
<input class="rb-name" name="name" type="text" value="{{item.name}}"/>
<span class="rb-type">{{localize (rbConcat "TYPES.Item." item.type)}}</span>
</div>
</header>
{{!-- ==========================================================
THE STATLINE — the 1984 weapons table, one row per item.
A player should know what this is without reading a form.
========================================================== --}}
{{#if isWeapon}}
<section class="rb-statline">
<div class="rb-stat rb-stat-primary"><span class="rb-stat-label">{{localize "RINGBRP.Sheet.Damage"}}</span>
<a class="rb-stat-value rb-stat-roll" data-action="roll-damage">{{damageSummary}}</a></div>
{{#if attackRating}}
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Attack"}}</span>
<a class="rb-stat-value rb-stat-roll" data-action="roll-attack-item">{{attackRating}}%</a></div>
{{/if}}
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Sheet.Range"}}</span>
<span class="rb-stat-value">{{#if sys.rangeSummary}}{{sys.rangeSummary}}{{else}}&mdash;{{/if}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.WoundType"}}</span>
<span class="rb-stat-value">{{sys.woundType}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.FireMode"}}</span>
<span class="rb-stat-value">{{#if sys.fireMode}}{{sys.fireMode}}{{else}}&mdash;{{/if}}</span></div>
{{#if sys.ammo.capacity}}
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Sheet.Ammo"}}</span>
<span class="rb-stat-value">{{sys.ammo.loaded}}/{{sys.ammo.capacity}}</span></div>
{{/if}}
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.MassShort"}}</span>
<span class="rb-stat-value">{{sys.massKg}} kg</span></div>
</section>
{{/if}}
{{#if isSkill}}
<section class="rb-statline">
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Rating"}}</span>
<span class="rb-stat-value rb-stat-big">{{sys.value}}%</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.PrintedBase"}}</span>
<span class="rb-stat-value">{{sys.base.value}}%</span></div>
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Sheet.BandsHint"}}</span>
<span class="rb-stat-value rb-stat-mono">{{rbBands sys.value}}</span></div>
</section>
{{/if}}
{{#if isArmour}}
<section class="rb-statline">
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Points"}}</span>
<span class="rb-stat-value rb-stat-big">{{sys.points}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.MassShort"}}</span>
<span class="rb-stat-value">{{sys.massKg}} kg</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Equipped"}}</span>
<span class="rb-stat-value">{{#if sys.equipped}}{{localize "RINGBRP.Item.Worn"}}{{else}}&mdash;{{/if}}</span></div>
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Item.IgnoredBy"}}</span>
<span class="rb-stat-value rb-stat-small">{{#each sys.ignoredBy as |x|}}{{x}}{{#unless @last}}, {{/unless}}{{else}}&mdash;{{/each}}</span></div>
</section>
{{/if}}
{{#if isAuthority}}
<section class="rb-statline">
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Authority.Trust"}}</span>
<span class="rb-stat-value rb-stat-big">{{sys.trust.value}}/{{sys.trust.max}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Authority.Scope"}}</span>
<span class="rb-stat-value rb-stat-small">{{scopeLabel}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Authority.Expires"}}</span>
<span class="rb-stat-value rb-stat-small">{{#if sys.expires}}{{sys.expires}}{{else}}&mdash;{{/if}}</span></div>
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Authority.ScopeNote"}}</span>
<span class="rb-stat-value rb-stat-small">{{#if sys.scopeNote}}{{sys.scopeNote}}{{else}}&mdash;{{/if}}</span></div>
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Authority.MergeHead"}}</span>
<span class="rb-stat-value rb-stat-small">{{mergeLabel}}</span></div>
</section>
{{/if}}
{{#if isVehicle}}
<section class="rb-statline">
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Hull"}}</span>
<span class="rb-stat-value rb-stat-big">{{sys.hull.value}}/{{sys.hull.max}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Points"}}</span>
<span class="rb-stat-value rb-stat-big">{{sys.armourPoints}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Crew"}}</span>
<span class="rb-stat-value">{{sys.crew}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Seats"}}</span>
<span class="rb-stat-value">{{sys.seats}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Cargo"}}</span>
<span class="rb-stat-value">{{sys.cargoKg}} kg</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Speed"}}</span>
<span class="rb-stat-value">{{speedLabel}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Range"}}</span>
<span class="rb-stat-value">{{#if sys.rangeKm}}{{sys.rangeKm}} km{{else}}&mdash;{{/if}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Operate"}}</span>
<span class="rb-stat-value rb-stat-small">{{operateLabel}}</span></div>
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Terrain"}}</span>
<span class="rb-stat-value rb-stat-small">{{#each sys.terrain as |t|}}{{t}}{{#unless @last}}, {{/unless}}{{else}}&mdash;{{/each}}</span></div>
</section>
{{/if}}
{{#if isDevice}}
<section class="rb-statline {{#unless sys.functional}}rb-statline-locked{{/unless}}">
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Sheet.Integrity"}}</span>
<span class="rb-stat-value rb-stat-big">{{sys.integrity.value}}<span class="rb-stat-of">/{{sys.integrity.max}}</span></span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Status"}}</span>
<span class="rb-stat-value">{{#if sys.functional}}{{localize "RINGBRP.Item.Functional"}}{{else}}{{localize "RINGBRP.Item.Inert"}}{{/if}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Tradition"}}</span>
<span class="rb-stat-value">{{#each sys.traditionIds as |t|}}{{t}}{{#unless @last}}, {{/unless}}{{/each}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.MassShort"}}</span>
<span class="rb-stat-value">{{sys.massKg}} kg</span></div>
</section>
{{/if}}
{{#if isProject}}
<section class="rb-statline">
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Item.Question"}}</span>
<span class="rb-stat-value rb-stat-question">{{sys.question}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Expedition.Step"}}</span>
<span class="rb-stat-value rb-stat-big">{{rbAdd sys.currentStep 1}}<span class="rb-stat-of">/{{sys.steps.length}}</span></span></div>
</section>
{{/if}}
{{#if isGear}}
<section class="rb-statline">
<div class="rb-stat rb-stat-primary"><span class="rb-stat-label">{{localize "RINGBRP.Item.TotalMass"}}</span>
<span class="rb-stat-value">{{totalMass}} kg</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Quantity"}}</span>
<span class="rb-stat-value">{{sys.quantity}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Carried"}}</span>
<span class="rb-stat-value">{{#if sys.carried}}{{localize "RINGBRP.Item.Yes"}}{{else}}&mdash;{{/if}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.PowerDraw"}}</span>
<span class="rb-stat-value">{{#if sys.powerDraw}}{{sys.powerDraw}}{{else}}&mdash;{{/if}}</span></div>
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Item.Facility"}}</span>
<span class="rb-stat-value rb-stat-small">{{#if sys.researchFacility}}{{sys.researchFacility}} ({{rbSign facilityMod}}%){{else}}&mdash;{{/if}}</span></div>
</section>
{{/if}}
{{#if isDiscovery}}
<section class="rb-statline {{#unless sys.published}}rb-statline-locked{{/unless}}">
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Item.Question"}}</span>
<span class="rb-stat-value rb-stat-question">{{sys.question}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Status"}}</span>
<span class="rb-stat-value">{{#if sys.published}}{{localize "RINGBRP.Item.Published"}}{{else}}{{localize "RINGBRP.Item.Unpublished"}}{{/if}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Unlocks"}}</span>
<span class="rb-stat-value rb-stat-big">{{sys.unlocks.length}}</span></div>
</section>
{{/if}}
{{#if isGroup}}
<section class="rb-statline">
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Population"}}</span>
<span class="rb-stat-value rb-stat-big">{{sys.population}}</span></div>
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Item.PrincipalTaboo"}}</span>
<span class="rb-stat-value rb-stat-small rb-taboo">{{principalTaboo}}</span></div>
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Item.PrincipalDesire"}}</span>
<span class="rb-stat-value rb-stat-small rb-desire">{{principalDesire}}</span></div>
</section>
{{/if}}
{{#if isMaterial}}
<section class="rb-statline">
<div class="rb-stat rb-stat-primary"><span class="rb-stat-label">{{localize "RINGBRP.Item.ImmuneTo"}}</span>
<span class="rb-stat-value rb-stat-small">{{#each sys.immuneTo as |x|}}{{x}}{{#unless @last}}, {{/unless}}{{else}}&mdash;{{/each}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.SlowTo"}}</span>
<span class="rb-stat-value rb-stat-small">{{#each sys.slowTo as |x|}}{{x}}{{#unless @last}}, {{/unless}}{{else}}&mdash;{{/each}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.BlocksSensors"}}</span>
<span class="rb-stat-value rb-stat-small">{{#each sys.blocksSensors as |x|}}{{x}}{{#unless @last}}, {{/unless}}{{else}}&mdash;{{/each}}</span></div>
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Neutrino"}}</span>
<span class="rb-stat-value">{{sys.neutrinoAbsorption}}</span></div>
</section>
{{/if}}
<nav class="sheet-tabs rb-tabs" data-group="primary">
<a class="item" data-tab="detail">{{localize "RINGBRP.Tab.Detail"}}</a>
<a class="item" data-tab="desc">{{localize "RINGBRP.Tab.Description"}}</a>
</nav>
<section class="sheet-body rb-body">
<div class="tab" data-group="primary" data-tab="detail">
{{#if isSkill}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Identity"}}</h3>
<div class="rb-grid2">
<label>{{localize "RINGBRP.Item.Family"}}<input type="text" name="system.familyId" value="{{sys.familyId}}"/></label>
<label>{{localize "RINGBRP.Item.Specialisation"}}<input type="text" name="system.specialisationId" value="{{sys.specialisationId}}"/></label>
<label>{{localize "RINGBRP.Item.Category"}}
<select name="system.categoryId">
{{#each RINGBRP.categories as |c key|}}
<option value="{{key}}" {{#if (rbEq key ../sys.categoryId)}}selected{{/if}}>{{localize c.label}}</option>
{{/each}}
</select></label>
<label>{{localize "RINGBRP.Item.TransferGroup"}}<input type="text" name="system.transferGroup" value="{{sys.transferGroup}}"/></label>
</div>
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Values"}}</h3>
<div class="rb-grid2">
<label>{{localize "RINGBRP.Item.Rating"}}<input type="number" name="system.value" value="{{sys.value}}"/></label>
<label>{{localize "RINGBRP.Item.PrintedBase"}}<input type="number" name="system.base.value" value="{{sys.base.value}}"/></label>
<label>{{localize "RINGBRP.Item.TrainingCap"}}<input type="number" name="system.trainingCap" value="{{sys.trainingCap}}"/></label>
<label class="rb-check">{{localize "RINGBRP.Item.CanBeTaught"}}<input type="checkbox" name="system.canBeTaught" {{checked sys.canBeTaught}}/></label>
<label class="rb-check">{{localize "RINGBRP.Item.ExperienceEligible"}}<input type="checkbox" name="system.experienceEligible" {{checked sys.experienceEligible}}/></label>
</div>
<p class="rb-hint">{{localize "RINGBRP.Item.FloorNote"}}</p>
{{/if}}
{{#if isWeapon}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Identity"}}</h3>
<div class="rb-grid2">
<label>{{localize "RINGBRP.Item.Class"}}
<select name="system.weaponClass">
{{#each RINGBRP.weaponClasses as |c|}}<option value="{{c}}" {{#if (rbEq c ../sys.weaponClass)}}selected{{/if}}>{{c}}</option>{{/each}}
</select></label>
<label>{{localize "RINGBRP.Item.WoundType"}}
<select name="system.woundType">
{{#each RINGBRP.woundTypeMap as |stat key|}}<option value="{{key}}" {{#if (rbEq key ../sys.woundType)}}selected{{/if}}>{{key}} &rarr; {{stat}}</option>{{/each}}
</select></label>
<label>{{localize "RINGBRP.Item.SkillFamily"}}<input type="text" name="system.skillFamilyId" value="{{sys.skillFamilyId}}"/></label>
<label>{{localize "RINGBRP.Item.SkillSpec"}}<input type="text" name="system.skillSpecialisationId" value="{{sys.skillSpecialisationId}}"/></label>
</div>
<h3 class="rb-cat-head">{{localize "RINGBRP.Sheet.Damage"}}</h3>
<div class="rb-grid2">
<label>{{localize "RINGBRP.Item.DamageMode"}}
<select name="system.damage.mode">
<option value="single" {{#if (rbEq sys.damage.mode "single")}}selected{{/if}}>single</option>
<option value="byBand" {{#if (rbEq sys.damage.mode "byBand")}}selected{{/if}}>by range band</option>
</select></label>
{{#if isByBand}}
<label>{{localize "RINGBRP.Item.DamageShort"}}<input type="text" name="system.damage.short" value="{{sys.damage.short}}"/></label>
<label>{{localize "RINGBRP.Item.DamageMedium"}}<input type="text" name="system.damage.medium" value="{{sys.damage.medium}}"/></label>
<label>{{localize "RINGBRP.Item.DamageLong"}}<input type="text" name="system.damage.long" value="{{sys.damage.long}}"/></label>
{{else}}
<label>{{localize "RINGBRP.Item.Damage"}}<input type="text" name="system.damage.formula" value="{{sys.damage.formula}}"/></label>
{{/if}}
<label class="rb-check">{{localize "RINGBRP.Item.AppliesDamageMod"}}<input type="checkbox" name="system.appliesDamageModifier" {{checked sys.appliesDamageModifier}}/></label>
<label class="rb-check">{{localize "RINGBRP.Item.Monofilament"}}<input type="checkbox" name="system.monofilament" {{checked sys.monofilament}}/></label>
</div>
{{#if sys.monofilament}}<p class="rb-hint rb-hint-warn">{{localize "RINGBRP.Item.MonoNote"}}</p>{{/if}}
{{#if isRangedWeapon}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Sheet.Range"}}</h3>
<div class="rb-grid3">
<label>{{localize "RINGBRP.Item.RangeShort"}}<input type="number" name="system.ranges.short" value="{{sys.ranges.short}}"/></label>
<label>{{localize "RINGBRP.Item.RangeMedium"}}<input type="number" name="system.ranges.medium" value="{{sys.ranges.medium}}"/></label>
<label>{{localize "RINGBRP.Item.RangeLong"}}<input type="number" name="system.ranges.long" value="{{sys.ranges.long}}"/></label>
</div>
<p class="rb-hint">{{localize "RINGBRP.Item.RangeNote"}}</p>
<h3 class="rb-cat-head">{{localize "RINGBRP.Sheet.Ammo"}}</h3>
<div class="rb-grid3">
<label>{{localize "RINGBRP.Item.FireMode"}}
<select name="system.fireMode">
{{#each RINGBRP.fireModes as |f|}}<option value="{{f}}" {{#if (rbEq f ../sys.fireMode)}}selected{{/if}}>{{#if f}}{{f}}{{else}}&mdash;{{/if}}</option>{{/each}}
</select></label>
<label>{{localize "RINGBRP.Item.Capacity"}}<input type="number" name="system.ammo.capacity" value="{{sys.ammo.capacity}}"/></label>
<label>{{localize "RINGBRP.Item.Loaded"}}<input type="number" name="system.ammo.loaded" value="{{sys.ammo.loaded}}"/></label>
<label>{{localize "RINGBRP.Item.Reserve"}}<input type="number" name="system.ammo.reserve" value="{{sys.ammo.reserve}}"/></label>
<label>{{localize "RINGBRP.Item.EnergyPerShot"}}<input type="number" name="system.energyPerShot" value="{{sys.energyPerShot}}"/></label>
</div>
{{/if}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Physical"}}</h3>
<div class="rb-grid3">
<label>{{localize "RINGBRP.Item.Mass"}}<input type="number" step="0.1" name="system.massKg" value="{{sys.massKg}}"/></label>
<label class="rb-check">{{localize "RINGBRP.Item.Equipped"}}<input type="checkbox" name="system.equipped" {{checked sys.equipped}}/></label>
<label class="rb-check">{{localize "RINGBRP.Item.Carried"}}<input type="checkbox" name="system.carried" {{checked sys.carried}}/></label>
</div>
{{/if}}
{{#if isArmour}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Protection"}}</h3>
<div class="rb-grid3">
<label>{{localize "RINGBRP.Item.Points"}}<input type="number" name="system.points" value="{{sys.points}}"/></label>
<label>{{localize "RINGBRP.Item.Mass"}}<input type="number" step="0.1" name="system.massKg" value="{{sys.massKg}}"/></label>
<label class="rb-check">{{localize "RINGBRP.Item.Equipped"}}<input type="checkbox" name="system.equipped" {{checked sys.equipped}}/></label>
</div>
<p class="rb-hint">{{localize "RINGBRP.Item.ArmourNote"}}</p>
{{/if}}
{{#if isGear}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Physical"}}</h3>
<div class="rb-grid3">
<label>{{localize "RINGBRP.Item.Mass"}}<input type="number" step="0.1" name="system.massKg" value="{{sys.massKg}}"/></label>
<label>{{localize "RINGBRP.Item.Quantity"}}<input type="number" name="system.quantity" value="{{sys.quantity}}"/></label>
<label>{{localize "RINGBRP.Item.PowerDraw"}}<input type="number" name="system.powerDraw" value="{{sys.powerDraw}}"/></label>
<label>{{localize "RINGBRP.Item.Facility"}}
<select name="system.researchFacility">
<option value="">&mdash;</option>
{{#each RINGBRP.facilities as |v key|}}<option value="{{key}}" {{#if (rbEq key ../sys.researchFacility)}}selected{{/if}}>{{key}} ({{rbSign v}}%)</option>{{/each}}
</select></label>
<label class="rb-check">{{localize "RINGBRP.Item.Carried"}}<input type="checkbox" name="system.carried" {{checked sys.carried}}/></label>
<label>{{localize "RINGBRP.Item.BonusSkill"}}<input type="text" name="system.skillBonus.skillFamilyId" value="{{sys.skillBonus.skillFamilyId}}"/></label>
<label>{{localize "RINGBRP.Item.BonusValue"}}<input type="number" name="system.skillBonus.value" value="{{sys.skillBonus.value}}"/></label>
</div>
{{/if}}
{{#if isAuthority}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Authority.Holder"}}</h3>
<div class="rb-grid2">
<label>{{localize "RINGBRP.Authority.Holder"}}<input type="text" name="system.holderName" value="{{sys.holderName}}"/></label>
<label>{{localize "RINGBRP.Authority.Role"}}<input type="text" name="system.holderRole" value="{{sys.holderRole}}"/></label>
<label>{{localize "RINGBRP.Authority.Scope"}}
<select name="system.scope">
{{#each scopeOptions as |o|}}<option value="{{o.key}}" {{#if o.selected}}selected{{/if}}>{{o.label}}</option>{{/each}}
</select></label>
<label>{{localize "RINGBRP.Authority.Expires"}}<input type="text" name="system.expires" value="{{sys.expires}}"/></label>
<label class="rb-wide">{{localize "RINGBRP.Authority.ScopeNote"}}<input type="text" name="system.scopeNote" value="{{sys.scopeNote}}"/></label>
<label>{{localize "RINGBRP.Authority.Trust"}}<input type="number" name="system.trust.value" value="{{sys.trust.value}}"/></label>
<label>{{localize "RINGBRP.Authority.AI"}}<input type="text" name="system.aiPosture" value="{{sys.aiPosture}}" placeholder="gatekeeper / analyst / asset"/></label>
</div>
{{#if sys.dossier.length}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Authority.Dossier"}}</h3>
<ol class="rb-list rb-dossier-list">
{{#each sys.dossier as |d|}}
<li><span class="rb-strong">{{d.text}}</span>
<span class="rb-dim">{{d.familyId}}</span>
<span class="rb-dim">{{d.by}}</span>
<span class="rb-dim">{{d.level}}</span></li>
{{/each}}
</ol>
{{/if}}
{{#if sys.redFlags.length}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Authority.RedFlags"}}</h3>
<ul class="rb-list rb-flag-list">
{{#each sys.redFlags as |f|}}<li>{{f.text}}</li>{{/each}}
</ul>
{{/if}}
{{/if}}
{{#if isVehicle}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Tab.Transport"}}</h3>
<div class="rb-grid3">
<label>{{localize "RINGBRP.Vehicle.Crew"}}<input type="number" name="system.crew" value="{{sys.crew}}"/></label>
<label>{{localize "RINGBRP.Vehicle.Seats"}}<input type="number" name="system.seats" value="{{sys.seats}}"/></label>
<label>{{localize "RINGBRP.Vehicle.Cargo"}}<input type="number" name="system.cargoKg" value="{{sys.cargoKg}}"/></label>
<label>{{localize "RINGBRP.Vehicle.Hull"}}<input type="number" name="system.hull.value" value="{{sys.hull.value}}"/></label>
<label>{{localize "RINGBRP.Item.Points"}}<input type="number" name="system.armourPoints" value="{{sys.armourPoints}}"/></label>
<label>{{localize "RINGBRP.Vehicle.Range"}}<input type="number" name="system.rangeKm" value="{{sys.rangeKm}}"/></label>
<label>{{localize "RINGBRP.Vehicle.Speed"}}
<select name="system.speedBand">
{{#each RINGBRP.speedBands as |lbl key|}}<option value="{{key}}" {{#if (rbEq key ../sys.speedBand)}}selected{{/if}}>{{localize lbl}}</option>{{/each}}
</select></label>
<label>{{localize "RINGBRP.Item.Mass"}}<input type="number" step="1" name="system.massKg" value="{{sys.massKg}}"/></label>
<label>{{localize "RINGBRP.Item.Coherence"}}<input type="number" name="system.coherenceCost" value="{{sys.coherenceCost}}"/></label>
</div>
<h3 class="rb-cat-head">{{localize "RINGBRP.Vehicle.Operate"}}</h3>
<div class="rb-grid2">
<label>{{localize "RINGBRP.Item.SkillFamily"}}<input type="text" name="system.skillFamilyId" value="{{sys.skillFamilyId}}"/></label>
<label>{{localize "RINGBRP.Item.Specialisation"}}<input type="text" name="system.skillSpecialisationId" value="{{sys.skillSpecialisationId}}"/></label>
</div>
{{/if}}
{{#if isDevice}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Identity"}}</h3>
<div class="rb-grid2">
<label>{{localize "RINGBRP.Item.DocumentId"}}<input type="text" name="system.documentId" value="{{sys.documentId}}"/></label>
<label>{{localize "RINGBRP.Item.Material"}}<input type="text" name="system.materialId" value="{{sys.materialId}}"/></label>
<label>{{localize "RINGBRP.Sheet.Integrity"}}<input type="number" name="system.integrity.value" value="{{sys.integrity.value}}"/></label>
<label>{{localize "RINGBRP.Item.IntegrityMax"}}<input type="number" name="system.integrity.max" value="{{sys.integrity.max}}"/></label>
<label>{{localize "RINGBRP.Item.Mass"}}<input type="number" step="0.1" name="system.massKg" value="{{sys.massKg}}"/></label>
</div>
{{#each sys.functions as |fn key|}}
<h3 class="rb-cat-head">{{key}}
{{#if fn.requiredDiscoveryIds.length}}
<span class="rb-locked-chip">{{localize "RINGBRP.Item.Locked"}}</span>
{{/if}}
</h3>
<div class="rb-fnbody">
{{#if fn.effect}}<p class="rb-fn-effect">{{fn.effect}}</p>{{/if}}
<div class="rb-grid3">
<label>{{localize "RINGBRP.Item.SkillFamily"}}<input type="text" name="system.functions.{{key}}.skillFamilyId" value="{{fn.skillFamilyId}}"/></label>
<label>{{localize "RINGBRP.Item.SkillSpec"}}<input type="text" name="system.functions.{{key}}.skillSpecialisationId" value="{{fn.skillSpecialisationId}}"/></label>
<label>{{localize "RINGBRP.Item.Difficulty"}}<input type="text" name="system.functions.{{key}}.difficulty" value="{{fn.difficulty}}"/></label>
<label>{{localize "RINGBRP.Item.DifficultyAfter"}}<input type="text" name="system.functions.{{key}}.difficultyAfterDiscovery" value="{{fn.difficultyAfterDiscovery}}"/></label>
<label>{{localize "RINGBRP.Item.PowerCost"}}<input type="number" name="system.functions.{{key}}.powerCost" value="{{fn.powerCost}}"/></label>
<label>{{localize "RINGBRP.Item.PowerCostFail"}}<input type="number" name="system.functions.{{key}}.powerCostOnFailure" value="{{fn.powerCostOnFailure}}"/></label>
<label>{{localize "RINGBRP.Item.RequiresIntegrity"}}<input type="number" name="system.functions.{{key}}.requiresIntegrity" value="{{fn.requiresIntegrity}}"/></label>
<label>{{localize "RINGBRP.Item.HoursPerAttempt"}}<input type="number" name="system.functions.{{key}}.hoursPerAttempt" value="{{fn.hoursPerAttempt}}"/></label>
</div>
{{#if fn.onFumble}}<p class="rb-hint rb-hint-warn">{{fn.onFumble}}</p>{{/if}}
</div>
{{/each}}
{{/if}}
{{#if isDiscovery}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Identity"}}</h3>
<label class="rb-block">{{localize "RINGBRP.Item.Question"}}</label>
<input type="text" name="system.question" value="{{sys.question}}" class="rb-wide"/>
<div class="rb-grid3">
<label>{{localize "RINGBRP.Item.DiscoveryId"}}<input type="text" name="system.discoveryId" value="{{sys.discoveryId}}"/></label>
<label class="rb-check">{{localize "RINGBRP.Item.Publishable"}}<input type="checkbox" name="system.publishable" {{checked sys.publishable}}/></label>
<label class="rb-check">{{localize "RINGBRP.Item.Published"}}<input type="checkbox" name="system.published" {{checked sys.published}}/></label>
</div>
{{#if sys.unlocks.length}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Unlocks"}}</h3>
<ol class="rb-list">
{{#each sys.unlocks as |u|}}<li><span class="rb-strong">{{u.documentId}}</span><span class="rb-dim">{{u.functionId}}</span></li>{{/each}}
</ol>
{{/if}}
{{/if}}
{{#if isProject}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Steps"}}</h3>
<ol class="rb-steps">
{{#each sys.steps as |s i|}}
<li class="rb-step {{#if (rbEq i ../sys.currentStep)}}rb-step-current{{/if}} {{#if (rbEq s.state 'complete')}}rb-step-done{{/if}}">
<span class="rb-step-n">{{rbAdd i 1}}</span>
<div class="rb-step-body">
<span class="rb-step-type">{{s.stepType}}</span>
<span class="rb-dim">{{s.skillFamilyId}}{{#if s.skillSpecialisationId}} ({{s.skillSpecialisationId}}){{/if}} &middot; {{s.difficulty}}{{#if s.hours}} &middot; {{s.hours}} h{{/if}}{{#if s.facility}} &middot; {{s.facility}}{{/if}}</span>
{{#if s.objective}}<div class="rb-objective">{{s.objective}}</div>{{/if}}
</div>
<span class="rb-step-state">{{s.state}}</span>
</li>
{{/each}}
</ol>
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Values"}}</h3>
<div class="rb-grid3">
<label>{{localize "RINGBRP.Item.Status"}}<input type="text" name="system.status" value="{{sys.status}}"/></label>
<label>{{localize "RINGBRP.Item.CurrentStep"}}<input type="number" name="system.currentStep" value="{{sys.currentStep}}"/></label>
<label>{{localize "RINGBRP.Item.MaxResearchers"}}<input type="number" name="system.maxResearchers" value="{{sys.maxResearchers}}"/></label>
<label>{{localize "RINGBRP.Item.Yields"}}<input type="text" name="system.yieldsDiscoveryId" value="{{sys.yieldsDiscoveryId}}"/></label>
</div>
{{/if}}
{{#if isGroup}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Identity"}}</h3>
<div class="rb-grid3">
<label>{{localize "RINGBRP.Item.GroupId"}}<input type="text" name="system.groupId" value="{{sys.groupId}}"/></label>
<label>{{localize "RINGBRP.Item.Population"}}<input type="number" name="system.population" value="{{sys.population}}"/></label>
<label>{{localize "RINGBRP.Item.NpcTemplate"}}<input type="text" name="system.npcTemplateId" value="{{sys.npcTemplateId}}"/></label>
</div>
<label class="rb-block">{{localize "RINGBRP.Item.OfferForm"}}</label>
<input type="text" name="system.correctOfferForm" value="{{sys.correctOfferForm}}" class="rb-wide"/>
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Taboos"}}</h3>
<ol class="rb-list">{{#each sys.taboos as |t|}}<li><span class="rb-taboo">{{t.text}}</span>{{#if t.penaltyIfViolated}}<span class="rb-dim">{{t.penaltyIfViolated}}%</span>{{/if}}</li>{{/each}}</ol>
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Desires"}}</h3>
<ol class="rb-list">{{#each sys.desires as |d|}}<li><span class="rb-desire">{{d.text}}</span></li>{{/each}}</ol>
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Rewards"}}</h3>
<ol class="rb-list">
{{#each sys.rewardsByStanding as |rewards standing|}}
<li><span class="rb-standing-chip">+{{standing}}</span>
<span class="rb-dim">{{#each rewards as |r|}}{{r}}{{#unless @last}} · {{/unless}}{{/each}}</span></li>
{{/each}}
</ol>
{{/if}}
{{#if isMaterial}}
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Identity"}}</h3>
<div class="rb-grid2">
<label>{{localize "RINGBRP.Item.MaterialId"}}<input type="text" name="system.materialId" value="{{sys.materialId}}"/></label>
<label>{{localize "RINGBRP.Item.Neutrino"}}<input type="number" step="0.01" name="system.neutrinoAbsorption" value="{{sys.neutrinoAbsorption}}"/></label>
</div>
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.ImmuneTo"}}</h3>
<p class="rb-tags">{{#each sys.immuneTo as |t|}}<span class="rb-tag">{{t}}</span>{{else}}<span class="rb-dim">&mdash;</span>{{/each}}</p>
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.SlowTo"}}</h3>
<p class="rb-tags">{{#each sys.slowTo as |t|}}<span class="rb-tag">{{t}}</span>{{else}}<span class="rb-dim">&mdash;</span>{{/each}}</p>
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.BlocksSensors"}}</h3>
<p class="rb-tags">{{#each sys.blocksSensors as |t|}}<span class="rb-tag">{{t}}</span>{{else}}<span class="rb-dim">&mdash;</span>{{/each}}</p>
{{/if}}
</div>
<div class="tab" data-group="primary" data-tab="desc">
{{editor descriptionHTML target="system.description" button=true editable=editable engine="prosemirror"}}
</div>
</section>
</form>