Files
vtt_work/wg-voidships-builder/templates/voidship-sheet.hbs
T
2025-09-18 18:32:48 +02:00

221 lines
10 KiB
Handlebars

<form class="voidship-sheet">
<header class="sheet-header flexrow" style="align-items:center; gap:.5rem;">
<img class="profile" src="{{actor.img}}" width="48" height="48">
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}"></h1>
<div style="margin-left:auto; display:flex; gap:.5rem;">
<button type="button" data-action="configure-base"><i class="fas fa-cog"></i> Base</button>
{{#if (eq actor.flags.wg-voidships-builder.isVoidship true)}}
<button type="button" data-action="unmark-voidship"><i class="fas fa-times-circle"></i> Unmark</button>
{{else}}
<button type="button" data-action="mark-voidship"><i class="fas fa-check-circle"></i> Mark Voidship</button>
{{/if}}
</div>
</header>
<nav class="tabs" data-group="primary">
<a class="item" data-tab="wg">W&amp;G</a>
<a class="item" data-tab="rt">Rogue Trader</a>
<a class="item" data-tab="crew">Crew</a>
<a class="item" data-tab="components">Components</a>
</nav>
<section class="sheet-body">
<!-- W&G TAB -->
<div class="tab" data-group="primary" data-tab="wg">
<div class="grid grid-2col" style="gap:.5rem;">
<div class="card">
<h3>Totals</h3>
<ol class="properties">
<li>Armour: <b>{{totals.armour}}</b> <small>(base {{base.armour}}, mods {{signed modsSum.armour}})</small></li>
<li>Integrity: <b>{{totals.integrity}}</b> <small>(base {{base.integrity}}, mods {{signed modsSum.integrity}})</small></li>
<li>Manoeuvre: <b>{{totals.manoeuvre}}</b> <small>(base {{base.manoeuvre}}, mods {{signed modsSum.manoeuvre}})</small></li>
<li>Detection: <b>{{totals.detection}}</b> <small>(base {{base.detection}}, mods {{signed modsSum.detection}})</small></li>
<li>Speed: <b>{{totals.speed}}</b> <small>(base {{base.speed}}, mods {{signed modsSum.speed}})</small></li>
<li>Space (free/total): <b>{{totals.spaceFree}}</b> / <b>{{totals.space}}</b></li>
<li>Power (free/total): <b>{{totals.powerFree}}</b> / <b>{{totals.power}}</b></li>
</ol>
</div>
<div class="card">
<h3>Hull</h3>
<ol class="properties">
<li>Class: <b>{{hull.class}}</b> ({{hull.size}})</li>
<li>Slots Allowed — Prow: <b>{{hull.slots.prow}}</b>, Dorsal: <b>{{hull.slots.dorsal}}</b>, Port:
<b>{{hull.slots.port}}</b>, Starboard: <b>{{hull.slots.starboard}}</b>, Keel: <b>{{hull.slots.keel}}</b>
</li>
</ol>
</div>
</div>
{{#if warnings.capacity}}
<p class="warning" style="color:#b45309; margin:.25rem 0 0;">{{warnings.capacity}}</p>
{{/if}}
{{#if warnings.slots}}
<p class="warning" style="color:#b45309; margin:.25rem 0 0;">{{warnings.slots}}</p>
{{/if}}
{{#if warnings.requirements}}
<p class="warning" style="color:#b91c1c; margin:.25rem 0 0;">{{warnings.requirements}}</p>
{{/if}}
<hr>
<div class="grid grid-2col" style="gap:.5rem;">
<div class="card">
<h3>Base (flags)</h3>
<ol class="properties">
<li>Armour: <b>{{base.armour}}</b></li>
<li>Integrity: <b>{{base.integrity}}</b></li>
<li>Manoeuvre: <b>{{base.manoeuvre}}</b></li>
<li>Detection: <b>{{base.detection}}</b></li>
<li>Speed: <b>{{base.speed}}</b></li>
<li>Space: <b>{{base.space}}</b></li>
<li>Power: <b>{{base.power}}</b></li>
</ol>
</div>
<div class="card">
<h3>Mods (items)</h3>
<ol class="properties">
<li>Armour: <b>{{signed modsSum.armour}}</b></li>
<li>Integrity: <b>{{signed modsSum.integrity}}</b></li>
<li>Manoeuvre: <b>{{signed modsSum.manoeuvre}}</b></li>
<li>Detection: <b>{{signed modsSum.detection}}</b></li>
<li>Speed: <b>{{signed modsSum.speed}}</b></li>
<li>Space: <b>{{signed modsSum.space}}</b></li>
<li>Power: <b>{{signed modsSum.power}}</b></li>
</ol>
</div>
</div>
</div>
<!-- ROGUE TRADER TAB -->
<div class="tab" data-group="primary" data-tab="rt">
<div class="grid grid-2col" style="gap:.75rem;">
<div class="card">
<h3>RT — Stat Block</h3>
<ol class="properties">
<li><span>Speed</span> <b>{{rtCard.speed}}</b></li>
<li><span>Manoeuvrability</span> <b>{{rtCard.manoeuvrability}}</b></li>
<li><span>Detection</span> <b>{{rtCard.detection}}</b></li>
<li><span>Hull Integrity</span> <b>{{rtCard.hullIntegrity}}</b></li>
<li><span>Armour</span> <b>{{rtCard.armour}}</b></li>
<li><span>Space</span> <b>{{rtCard.space}}</b></li>
<li><span>Power</span> <b>{{rtCard.power}}</b></li>
<li><span>Turret</span> <b>{{rtCard.turret}}</b></li>
</ol>
{{#if rtCard.source}}
<p class="notes" style="margin-top:.25rem; opacity:.65;">Source: {{rtCard.source}}</p>
{{/if}}
</div>
<div class="card">
<h3>RT — Weapon Capacity</h3>
<ol class="properties">
<li>Prow: <b>{{rtCard.weapons.prow}}</b></li>
<li>Dorsal: <b>{{rtCard.weapons.dorsal}}</b></li>
<li>Port: <b>{{rtCard.weapons.port}}</b></li>
<li>Starboard: <b>{{rtCard.weapons.starboard}}</b></li>
<li>Keel: <b>{{rtCard.weapons.keel}}</b></li>
</ol>
{{#if rtCard.notes}}
<hr><p style="opacity:.85">{{rtCard.notes}}</p>
{{/if}}
</div>
</div>
</div>
<!-- CREW TAB -->
<div class="tab" data-group="primary" data-tab="crew">
<div class="grid grid-2col" style="gap:.5rem;">
<div class="card">
<h3>Main Roles</h3>
<ol class="properties">
<li>Command: <b>{{crew.command}}</b></li>
<li>Pilot/Helm: <b>{{crew.pilot}}</b></li>
<li>Sensors/Auspex: <b>{{crew.sensors}}</b></li>
<li>Engineering: <b>{{crew.engineering}}</b></li>
</ol>
</div>
<div class="card">
<h3>Combat &amp; Support</h3>
<ol class="properties">
<li>Gunnery: <b>{{crew.gunnery}}</b></li>
<li>Security/Armsmen: <b>{{crew.security}}</b></li>
<li>Flight Deck: <b>{{crew.flightDeck}}</b></li>
<li>Passengers: <b>{{crew.passengers}}</b></li>
</ol>
</div>
</div>
</div>
<!-- COMPONENTS TAB -->
<div class="tab" data-group="primary" data-tab="components">
<div class="grid grid-2col" style="gap:.75rem;">
<div class="card">
<h3>Capacity</h3>
<ol class="properties">
<li>Space (free / total): <b>{{totals.spaceFree}}</b> / <b>{{totals.space}}</b></li>
<li>Power (free / total): <b>{{totals.powerFree}}</b> / <b>{{totals.power}}</b></li>
</ol>
{{#if warnings.capacity}}<p class="warning" style="color:#b45309; margin-top:.25rem;">{{warnings.capacity}}</p>{{/if}}
<hr>
<h3>Slots Used</h3>
<ol class="properties">
<li>Prow: <b>{{slotsUsed.prow}}</b> / <b>{{hull.slots.prow}}</b></li>
<li>Dorsal: <b>{{slotsUsed.dorsal}}</b> / <b>{{hull.slots.dorsal}}</b></li>
<li>Port: <b>{{slotsUsed.port}}</b> / <b>{{hull.slots.port}}</b></li>
<li>Starboard: <b>{{slotsUsed.starboard}}</b> / <b>{{hull.slots.starboard}}</b></li>
<li>Keel: <b>{{slotsUsed.keel}}</b> / <b>{{hull.slots.keel}}</b></li>
</ol>
{{#if warnings.slots}}<p class="warning" style="color:#b45309; margin-top:.25rem;">{{warnings.slots}}</p>{{/if}}
{{#if warnings.requirements}}<p class="warning" style="color:#b91c1c; margin-top:.25rem;">{{warnings.requirements}}</p>{{/if}}
</div>
<div class="card">
<h3>Mounted Components</h3>
{{#if components.length}}
<table class="table" style="width:100%;">
<thead>
<tr>
<th style="text-align:left;">Name</th>
<th>Slot</th>
<th>Use</th>
<th>Mods</th>
<th style="width:90px;">Actions</th>
</tr>
</thead>
<tbody>
{{#each components as |c|}}
<tr data-item-id="{{c.itemId}}">
<td style="text-align:left;">
{{#if c.equipped}}<i class="fa-solid fa-plug" title="Equipped"></i>{{else}}<i class="fa-regular fa-square" title="Unequipped"></i>{{/if}}
{{c.name}}
</td>
<td style="text-align:center;">{{c.slot}}</td>
<td style="text-align:center;"><small>Space: {{c.use.space}}, Power: {{c.use.power}}</small></td>
<td>
<small>
{{#if c.mods.armour}}Armour {{signed c.mods.armour}} {{/if}}
{{#if c.mods.integrity}}Integrity {{signed c.mods.integrity}} {{/if}}
{{#if c.mods.manoeuvre}}Manoeuvre {{signed c.mods.manoeuvre}} {{/if}}
{{#if c.mods.detection}}Detection {{signed c.mods.detection}} {{/if}}
{{#if c.mods.speed}}Speed {{signed c.mods.speed}} {{/if}}
{{#if c.mods.space}}Space {{signed c.mods.space}} {{/if}}
{{#if c.mods.power}}Power {{signed c.mods.power}} {{/if}}
</small>
</td>
<td style="text-align:center;">
<a class="control" data-action="comp-toggle" title="Toggle Equipped"><i class="fa-solid fa-power-off"></i></a>
<a class="control" data-action="comp-edit" title="Edit Component"><i class="fa-solid fa-pen-to-square"></i></a>
<a class="control" data-action="comp-remove" title="Remove"><i class="fa-solid fa-trash"></i></a>
</td>
</tr>
{{/each}}
</tbody>
</table>
{{else}}
<p style="opacity:.7">No components installed. Add items with <code>item.system.voidship</code> set.</p>
{{/if}}
</div>
</div>
</div>
</section>
</form>