Initial commit — full system source + zero-engine-state.md reference
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
<form class="{{cssClass}}{{#if actor.isBroken}} broken{{/if}}" autocomplete="off">
|
||||
|
||||
|
||||
<div class="sheet-header">
|
||||
<div class="container-header">
|
||||
|
||||
<div class="avatar">
|
||||
<img class="profile" src="{{actor.img}}" data-edit="img" data-tooltip="{{actor.name}}"/>
|
||||
</div>
|
||||
|
||||
<div class="actor-name">
|
||||
<input type="text" name="name" value="{{actor.name}}"/>
|
||||
</div>
|
||||
|
||||
<div class="nature boxed-property container">
|
||||
<h3>{{localize "FLBR.Nature"}}</h3>
|
||||
<select {{#unless isGM}} disabled{{/unless}}>
|
||||
<option selected>{{localize "FLBR.NATURE.Human"}} ?</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="capacities">
|
||||
{{#if system.health}}
|
||||
<div class="capacity-health boxed-property">
|
||||
<h3>{{localize "FLBR.HEADER.Health"}}<span class="capacity-rating">?/?</span></h3>
|
||||
<div class="capacity-boxes" style="color: var(--color-disabled);">
|
||||
{{#times 4}}
|
||||
{{{@root.config.Icons.boxes.empty}}}
|
||||
{{/times}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if system.resolve}}
|
||||
<div class="capacity-resolve boxed-property">
|
||||
<h3>{{localize "FLBR.HEADER.Resolve"}}<span class="capacity-rating">?/?</span></h3>
|
||||
<div class="capacity-boxes" style="color: var(--color-disabled);">
|
||||
{{#times 4}}
|
||||
{{{@root.config.Icons.boxes.empty}}}
|
||||
{{/times}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div class="archetype">
|
||||
<input type="text" value="???" disabled/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sheet-body">
|
||||
{{{editor system.description target="system.description" button=true editable=editable}}}
|
||||
</div>
|
||||
|
||||
</form>
|
||||
@@ -0,0 +1,137 @@
|
||||
<form class="{{cssClass}}{{#if actor.isBroken}} broken{{/if}}" autocomplete="off">
|
||||
|
||||
{{!-- SHEET HEADER --}}
|
||||
|
||||
<div class="sheet-header">
|
||||
<div class="container-header">
|
||||
|
||||
<div class="avatar">
|
||||
<img class="profile" src="{{actor.img}}" data-edit="img" data-tooltip="{{actor.name}}"/>
|
||||
</div>
|
||||
|
||||
<div class="actor-name">
|
||||
<input type="text" name="name" value="{{actor.name}}"/>
|
||||
</div>
|
||||
|
||||
<div class="nature boxed-property container">
|
||||
<h3>{{localize "FLBR.Nature"}}</h3>
|
||||
<select name="system.nature" data-tooltip="{{localize "FLBR.NatureHint"}}"{{#unless editNature}} disabled{{/unless}}>
|
||||
{{selectOptions config.natures selected=system.nature localize=true}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="capacities">
|
||||
{{#if system.health}}
|
||||
<div class="capacity-health boxed-property{{#if (lte system.health.value 0)}} broken{{else if (lte system.health.ratio 0.5)}} half{{/if}}">
|
||||
<h3>
|
||||
{{localize "FLBR.HEADER.Health"}}
|
||||
{{#if (lte system.health.value 0)}}
|
||||
<b>({{toUpperCase (localize "FLBR.BrokenByDamage")}})</b>
|
||||
{{/if}}
|
||||
<span class="capacity-rating">{{system.health.value}}/{{system.health.max}}</span>
|
||||
</h3>
|
||||
{{boxes "system.health.value" value=system.health.value min=0 max=system.health.max loss=system.health.permanentLoss}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if (and system.resolve isPC)}}
|
||||
<div class="capacity-resolve boxed-property{{#if (lte system.resolve.value 0)}} broken{{else if (lte system.resolve.ratio 0.5)}} half{{/if}}">
|
||||
<h3>
|
||||
{{localize "FLBR.HEADER.Resolve"}}
|
||||
{{#if (lte system.resolve.value 0)}}
|
||||
<b>({{toUpperCase (localize "FLBR.BrokenByStress")}})</b>
|
||||
{{/if}}
|
||||
<span class="capacity-rating">{{system.resolve.value}}/{{system.resolve.max}}</span>
|
||||
</h3>
|
||||
{{boxes "system.resolve.value" value=system.resolve.value min=0 max=system.resolve.max loss=system.resolve.permanentLoss}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div class="sla-character-info" style="display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; margin-bottom: 10px;">
|
||||
<div class="race boxed-property container">
|
||||
<h3>Race/Species</h3>
|
||||
<select name="system.race" multiple size="7" data-tooltip="Select one or more races (Ctrl/Cmd+Click for multiple)">
|
||||
<option value="human" {{#if (contains system.race "human")}}selected{{/if}}>Human</option>
|
||||
<option value="ebon" {{#if (contains system.race "ebon")}}selected{{/if}}>Ebon</option>
|
||||
<option value="brainwaster" {{#if (contains system.race "brainwaster")}}selected{{/if}}>Brain Waster</option>
|
||||
<option value="stormer" {{#if (contains system.race "stormer")}}selected{{/if}}>Stormer (313 Malice)</option>
|
||||
<option value="shaktar" {{#if (contains system.race "shaktar")}}selected{{/if}}>Shaktar</option>
|
||||
<option value="wraith" {{#if (contains system.race "wraith")}}selected{{/if}}>Wraith Raider</option>
|
||||
<option value="frother" {{#if (contains system.race "frother")}}selected{{/if}}>Frother</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="training boxed-property container">
|
||||
<h3>Training Package</h3>
|
||||
<select name="system.training" multiple size="7" data-tooltip="Select one or more training packages (Ctrl/Cmd+Click for multiple)">
|
||||
<option value="scout" {{#if (contains system.training "scout")}}selected{{/if}}>Scout</option>
|
||||
<option value="investigator" {{#if (contains system.training "investigator")}}selected{{/if}}>Investigator</option>
|
||||
<option value="frother-pkg" {{#if (contains system.training "frother-pkg")}}selected{{/if}}>Frother</option>
|
||||
<option value="corporate" {{#if (contains system.training "corporate")}}selected{{/if}}>Corporate</option>
|
||||
<option value="medic" {{#if (contains system.training "medic")}}selected{{/if}}>Medic / Field Surgeon</option>
|
||||
<option value="ebon-investigator" {{#if (contains system.training "ebon-investigator")}}selected{{/if}}>Ebon - Investigator</option>
|
||||
<option value="brainwaster-operative" {{#if (contains system.training "brainwaster-operative")}}selected{{/if}}>Brain Waster - Operative</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="archetype boxed-property container">
|
||||
<h3>Archetype</h3>
|
||||
<input list="list-of-archetypes" type="text" name="system.archetype" value="{{system.archetype}}"/>
|
||||
<datalist id="list-of-archetypes">
|
||||
{{selectOptions config.archetypes localize=true}}
|
||||
</datalist>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{!-- SHEET TABS --}}
|
||||
|
||||
<div class="sheet-tabs" data-group="primary">
|
||||
<a class="sheet-tab" data-tab="stats">{{{config.Icons.tabs.stats}}} {{localize "FLBR.TAB.Stats"}}</a>
|
||||
<a class="sheet-tab" data-tab="mods">{{{config.Icons.tabs.mods}}} {{localize "FLBR.TAB.Mods"}}</a>
|
||||
<a class="sheet-tab" data-tab="combat">{{{config.Icons.tabs.combat}}} {{localize "FLBR.TAB.Combat"}}</a>
|
||||
<a class="sheet-tab" data-tab="inventory">{{{config.Icons.tabs.inventory}}} {{localize "FLBR.TAB.Inventory"}}</a>
|
||||
<a class="sheet-tab" data-tab="bio">
|
||||
{{{config.Icons.tabs.bio}}}
|
||||
{{#if isPC}}
|
||||
{{localize "FLBR.TAB.Bio"}}
|
||||
{{else if isNPC}}
|
||||
{{localize "FLBR.HEADER.Notes"}}
|
||||
{{/if}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
{{!-- SHEET BODY --}}
|
||||
|
||||
<div class="sheet-body">
|
||||
<div class="tab" data-group="primary" data-tab="stats">
|
||||
{{> systems/zero-engine/templates/actor/character/sheet-tabs/stats-tab.hbs}}
|
||||
</div>
|
||||
<div class="tab" data-group="primary" data-tab="mods">
|
||||
{{> systems/blade-runner/templates/actor/character/sheet-tabs/mods-tab.hbs}}
|
||||
</div>
|
||||
<div class="tab" data-group="primary" data-tab="combat">
|
||||
{{> systems/blade-runner/templates/actor/character/sheet-tabs/combat-tab.hbs}}
|
||||
</div>
|
||||
<div class="tab" data-group="primary" data-tab="inventory">
|
||||
{{> systems/blade-runner/templates/actor/character/sheet-tabs/inventory-tab.hbs}}
|
||||
</div>
|
||||
<div class="tab" data-group="primary" data-tab="bio">
|
||||
{{#if isPC}}
|
||||
{{> systems/zero-engine/templates/actor/character/sheet-tabs/bio-tab.hbs}}
|
||||
{{else if isNPC}}
|
||||
<div class="boxed-property npc-notes">
|
||||
{{{editor system.description target="system.description" button=true editable=editable}}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{!-- SHEET FOOTER --}}
|
||||
|
||||
{{!-- <div class="sheet-footer"></div> --}}
|
||||
|
||||
</form>
|
||||
@@ -0,0 +1,38 @@
|
||||
<div class="bio-tab container">
|
||||
<div class="boxed-property bio-notes">
|
||||
<h3>{{localize "FLBR.HEADER.Notes"}}</h3>
|
||||
<div class="bio-editor">
|
||||
{{{editor system.description target="system.description" button=true editable=editable}}}
|
||||
</div>
|
||||
</div>
|
||||
{{#if system.bio}}
|
||||
<div class="boxed-property years-on-the-force">
|
||||
<h3>{{localize "FLBR.HEADER.YearsOnTheForce"}}</h3>
|
||||
<input type="text" name="system.bio.yearsOnTheForce" value="{{system.bio.yearsOnTheForce}}" data-dtype="Number"/>
|
||||
</div>
|
||||
<div class="boxed-property">
|
||||
<h3>{{localize "FLBR.HEADER.Appearance"}}</h3>
|
||||
<div class="bio-editor">
|
||||
{{{editor system.bio.appearance target="system.bio.appearance" button=true editable=editable}}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="boxed-property">
|
||||
<h3>{{localize "FLBR.HEADER.Home"}}</h3>
|
||||
<div class="bio-editor">
|
||||
{{{editor system.bio.home target="system.bio.home" button=true editable=editable}}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="boxed-property">
|
||||
<h3>{{localize "FLBR.HEADER.KeyMemory"}}</h3>
|
||||
<div class="bio-editor">
|
||||
{{{editor system.bio.keyMemory target="system.bio.keyMemory" button=true editable=editable}}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="boxed-property">
|
||||
<h3>{{localize "FLBR.HEADER.KeyRelationship"}}</h3>
|
||||
<div class="bio-editor">
|
||||
{{{editor system.bio.keyRelationship target="system.bio.keyRelationship" button=true editable=editable}}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
@@ -0,0 +1,21 @@
|
||||
<div class="combat-tab container">
|
||||
<div class="weapons boxed-property">
|
||||
<h3>{{localize "FLBR.HEADER.Weapons"}}{{createNewItemButton "weapon"}}</h3>
|
||||
{{> systems/blade-runner/templates/actor/inventory-partial.hbs items=actor.itemTypes.weapon}}
|
||||
{{> systems/blade-runner/templates/actor/inventory-partial.hbs items=actor.itemTypes.explosive}}
|
||||
</div>
|
||||
<div class="armors boxed-property">
|
||||
<h3>{{localize "FLBR.HEADER.Armor"}}{{createNewItemButton "armor"}}</h3>
|
||||
{{> systems/blade-runner/templates/actor/inventory-partial.hbs items=actor.itemTypes.armor}}
|
||||
</div>
|
||||
<div class="injuries boxed-property">
|
||||
<h3>{{localize "FLBR.HEADER.Injuries"}}{{createNewItemButton "injury"}}</h3>
|
||||
{{> systems/blade-runner/templates/actor/inventory-partial.hbs items=actor.itemTypes.injury}}
|
||||
</div>
|
||||
<div class="actions boxed-property">
|
||||
<h4>{{localize "FLBR.HEADER.Actions"}}</h4>
|
||||
{{#each actions}}
|
||||
<a class="action-roll" data-action="{{id}}" data-tooltip="{{localize hint}}">{{{@root.config.Icons.buttons.action}}}{{localize label}}</a>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,47 @@
|
||||
<div class="inventory-tab">
|
||||
{{#if isPC}}
|
||||
<div class="special-gear">
|
||||
{{!-- <div class="favored-gear boxed-property">
|
||||
<h3>{{localize "FLBR.HEADER.FavoredGear"}}</h3>
|
||||
<input type="text" name="system.favoredGear" value="{{system.favoredGear}}"/>
|
||||
</div> --}}
|
||||
<div class="signature-item boxed-property">
|
||||
<h3>{{localize "FLBR.HEADER.SignatureItem"}}</h3>
|
||||
<div class="flex row">
|
||||
<input type="text" name="system.signatureItem.name" value="{{system.signatureItem.name}}" class="flex-1"/>
|
||||
<input type="checkbox" name="system.signatureItem.used" data-tooltip="{{localize "FLBR.SignatureItemUsedCheckboxHint"}}" {{checked system.signatureItem.used}}/>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="inventory boxed-property">
|
||||
<h3>{{localize "FLBR.HEADER.Inventory"}}{{createNewItemButton "generic"}}</h3>
|
||||
{{> systems/blade-runner/templates/actor/inventory-partial.hbs items=actor.itemTypes.generic wrap=true}}
|
||||
</div>
|
||||
|
||||
{{#each config.customItemTypesTemplates as | template |}}
|
||||
<div class="inventory boxed-property">
|
||||
<h3>{{localize (concat "TYPES.Item." @key)}}{{createNewItemButton @key}}</h3>
|
||||
{{> (template) items=(lookup ../actor.itemTypes @key)}}
|
||||
</div>
|
||||
{{/each}}
|
||||
|
||||
{{#if isPC}}
|
||||
<div class="meta-currencies flex row space-between">
|
||||
<div class="meta-currency-promotion boxed-property">
|
||||
<h4>{{localize "FLBR.HEADER.PromotionPoints"}}<span style="float: right;">{{system.metaCurrencies.promotion}}</span></h4>
|
||||
{{boxes "system.metaCurrencies.promotion" value=system.metaCurrencies.promotion min=0 max=config.maxPromotionPoints}}
|
||||
</div>
|
||||
<div class="meta-currency-humanity boxed-property">
|
||||
<h4>{{localize "FLBR.HEADER.HumanityPoints"}}<span style="float: right;">{{system.metaCurrencies.humanity}}</span></h4>
|
||||
{{boxes "system.metaCurrencies.humanity" value=system.metaCurrencies.humanity min=0 max=config.maxHumanityPoints}}
|
||||
</div>
|
||||
<div class="meta-currency-chinyen boxed-property">
|
||||
<h4>{{localize "FLBR.HEADER.ChinyenPoints"}}<span style="float: right;">{{system.metaCurrencies.chinyen}}</span></h4>
|
||||
{{boxes "system.metaCurrencies.chinyen" value=system.metaCurrencies.chinyen min=0 max=config.maxChinyenPoints}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
@@ -0,0 +1,21 @@
|
||||
<div class="mods-tab">
|
||||
<div class="specialties boxed-property">
|
||||
<h3>{{localize "FLBR.HEADER.Specialties"}}{{createNewItemButton "specialty"}}</h3>
|
||||
{{> systems/blade-runner/templates/actor/inventory-partial.hbs items=actor.itemTypes.specialty}}
|
||||
</div>
|
||||
<div class="augments boxed-property">
|
||||
<h3>{{localize "FLBR.HEADER.Augments"}}{{createNewItemButton "upgrade"}}</h3>
|
||||
{{> systems/blade-runner/templates/actor/inventory-partial.hbs items=actor.itemTypes.upgrade}}
|
||||
</div>
|
||||
{{#if showEffects}}
|
||||
<div class="active-effects boxed-property">
|
||||
<h4>
|
||||
{{localize "DOCUMENT.ActiveEffects"}}
|
||||
<a class="btn add-active-effect" data-tooltip="{{localize "FLBR.ACTIVE_EFFECT.Add"}}">
|
||||
{{{@root.config.Icons.buttons.plus}}}
|
||||
</a>
|
||||
</h4>
|
||||
{{> systems/blade-runner/templates/item/active-effects-partial.hbs}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
@@ -0,0 +1,75 @@
|
||||
<div class="ze-stats">
|
||||
{{#each system.attributes as | attribute attrKey |}}
|
||||
{{#unless (eq attrKey "mvr")}}
|
||||
<div class="ze-attribute-block">
|
||||
<div class="ze-attribute-header">
|
||||
<button class="ze-attr-roll-btn stat-roll" data-attribute="{{attrKey}}" type="button">
|
||||
<span class="ze-attr-name">{{localize (concat "FLBR.ATTRIBUTE." (toUpperCase attrKey))}}</span>
|
||||
<i class="fas fa-dice-d6"></i>
|
||||
</button>
|
||||
<div class="ze-attr-score">
|
||||
{{scoreSelector (concat "system.attributes." attrKey ".value") selected=attribute.value}}
|
||||
</div>
|
||||
<div class="ze-attr-die boxed-value stat-roll rollable" data-attribute="{{attrKey}}">
|
||||
{{#if (lte attribute.value 0)}}—{{else}}{{localize "FLBR.D"}}{{attribute.value}}{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="ze-skills-list">
|
||||
{{#each @root.system.skills as | skill skillKey |}}
|
||||
{{#if (eq attrKey (lookup @root.config.skillMap skillKey))}}
|
||||
<div class="ze-skill-row">
|
||||
<a class="ze-skill-name stat-roll" data-skill="{{skillKey}}" data-attribute="{{attrKey}}">
|
||||
{{localize (concat "FLBR.SKILL." (capitalize skillKey))}}
|
||||
</a>
|
||||
<div class="ze-skill-score">
|
||||
{{scoreSelector (concat "system.skills." skillKey ".value") selected=skill.value}}
|
||||
</div>
|
||||
<div class="ze-skill-die boxed-value stat-roll rollable" data-skill="{{skillKey}}" data-attribute="{{attrKey}}">
|
||||
{{#if (lte skill.value 0)}}—{{else}}{{localize "FLBR.D"}}{{skill.value}}{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/unless}}
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
{{!-- Specialties Section --}}
|
||||
<div class="specialties-section">
|
||||
<h2 class="section-header">
|
||||
<i class="fas fa-star"></i> Specialties
|
||||
<span class="specialty-count">({{actor.items.size}})</span>
|
||||
</h2>
|
||||
<div class="specialties-container">
|
||||
<div class="specialty-drop-zone" data-tooltip="Drag and drop specialty items here">
|
||||
{{#if (gt actor.items.size 0)}}
|
||||
<ul class="specialty-list">
|
||||
{{#each actor.items as |item|}}
|
||||
{{#if (eq item.type "specialty")}}
|
||||
<li class="specialty-item" data-item-id="{{item._id}}">
|
||||
<div class="specialty-header">
|
||||
<img class="specialty-icon" src="{{item.img}}" alt="{{item.name}}"/>
|
||||
<h4 class="specialty-name">{{item.name}}</h4>
|
||||
<div class="specialty-controls">
|
||||
<a class="item-edit" data-tooltip="Edit Specialty"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-delete" data-tooltip="Delete Specialty"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="specialty-description">
|
||||
{{item.system.description}}
|
||||
</div>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{else}}
|
||||
<div class="empty-specialties">
|
||||
<i class="fas fa-star-half-alt"></i>
|
||||
<p>No specialties yet. Drag and drop specialty items here.</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user