Initial commit — full system source + zero-engine-state.md reference

This commit is contained in:
2026-06-01 23:19:46 +01:00
commit 2ebd5803fc
213 changed files with 18559 additions and 0 deletions
@@ -0,0 +1,9 @@
<form autocomplete="off">
{{#if description}}
<p>{{{description}}}</p>
{{/if}}
<div class="flex boxed-property">
<input type="range" name="chooser" value="{{value}}" min="{{min}}" max="{{max}}" step="1"/>
<div class="boxed-value range-value">{{value}}</div>
</div>
</form>
@@ -0,0 +1,31 @@
<form autocomplete="off">
<div class="form-group">
<select id="table"{{#if disableSelection}} disabled{{/if}}>
{{#each tables}}
<option value="{{id}}"{{#if (eq id ../selected)}} selected{{/if}}>{{name}}</option>
{{/each}}
</select>
</div>
<div class="form-group">
<label for="qty">{{localize "FLBR.COMBAT.DrawSize"}}</label>
<input
type="number"
id="qty"
style="text-align: left; padding-left: 8px;"
value="{{qty}}"
/>
</div>
{{#unless hideFormula}}
<div class="form-group">
<label for="formula">{{localize "FLBR.Formula"}}</label>
<input
type="text"
id="formula"
style="text-align: left; padding-left: 8px;"
value="{{formula}}"
placeholder="{{localize "FLBR.CustomFormula"}}"
{{#if disableFormula}}disabled{{/if}}
/>
</div>
{{/unless}}
</form>
@@ -0,0 +1,5 @@
<form autocomplete="off">
<div class="flex column boxed-property">
{{scoreSelector "diesize" selected=lowest}}
</div>
</form>
@@ -0,0 +1,24 @@
{{#if roll.successCount}}
{{#if roll.options.damage includeZero=true}}
<fieldset class="dice-infos">
<legend>{{localize "YZUR.CHAT.ROLL.Infos"}}</legend>
<div class="dice-info-grid">
{{#if roll.options.damage includeZero=true}}
<div>{{localize "YZUR.CHAT.ROLL.Damage"}}</div>
<div>
{{roll.options.damage}}&numsp;
<small>({{localize roll.options.damageTypeName}})</small>
</div>
{{/if}}
{{#if (and roll.options.crit (gte roll.successCount 2))}}
<div>{{localize "FLBR.CRIT.Crit"}}</div>
<div>
<a class="inline-table crit-roll" data-tooltip="{{localize "FLBR.CRIT.CritButtonTooltip"}}">
{{substract roll.successCount 1}}{{localize "FLBR.D"}}{{roll.options.crit}}
</a>
</div>
{{/if}}
</div>
</fieldset>
{{/if}}
{{/if}}
@@ -0,0 +1,36 @@
<div class="dice-tooltip">
<div class="wrapper">
<div class="tooltip-parts">
{{#each parts}}
<section class="tooltip-part {{this.type}}">
<div class="dice">
<header class="part-header flexrow">
<span class="part-formula">{{this.formula}}</span>
{{#if this.flavor}}<span class="part-flavor">{{this.flavor}}</span>{{/if}}
<span class="part-total{{#if this.total}} success{{/if}}">{{this.total}}</span>
</header>
<ol class="dice-rolls">
{{#if ../pushed}}
{{#each this.rolls as | lineRolls |}}
<div class="dice-rolls" style="margin-top: 0; margin-bottom: 0;">
{{#each lineRolls}}
{{#if this}}
<span class="roll {{this.classes}}">{{{this.result}}}</span>
{{else}}
<span class="roll discarded" style="background-image: none;">&nbsp;</span>
{{/if}}
{{/each}}
</div>
{{/each}}
{{else}}
{{#each this.rolls}}
<li class="roll {{this.classes}}">{{{this.result}}}</li>
{{/each}}
{{/if}}
</ol>
</div>
</section>
{{/each}}
</div>
</div>
</div>
@@ -0,0 +1,64 @@
<div
class="yzur chat-card"
data-actor-id="{{roll.options.actorId}}"
{{#if roll.options.itemId}}
data-item-id="{{roll.options.itemId}}"
{{/if}}
{{#if roll.options.damage}}
data-damage="{{roll.options.damage}}"
{{/if}}
>
<div class="card-content">
<div class="dice-roll" data-action="expandRoll">
{{#if flavor}}
<span class="dice-flavor flavor-text">{{flavor}}</span>
{{/if}}
<div class="dice-result">
<div class="dice-formula">{{formula}}</div>
{{{tooltip}}}
{{#if isPrivate}}
<h4 class="dice-total">{{total}}</h4>
{{else}}
<h4 class="dice-total">
{{#with roll}}
{{#if successCount}}
<span class="success">
{{#times successCount}}
<i class="fas fa-eye"></i>
{{/times}}
</span>
{{/if}}
{{#if baneCount}}
<span class="blade-runner-symbols{{#if pushed}} failure{{/if}}">
{{#times baneCount}}F{{/times}}
</span>
{{/if}}
{{#unless (or successCount baneCount)}}
<span>0</span>
{{/unless}}
{{/with}}
</h4>
{{/if}}
</div>
</div>
{{!-- Extra info added for Year Zero rolls --}}
{{#if showInfos}}
{{{infos}}}
{{/if}}
{{!-- Push button --}}
{{#if pushable}}
<div class="roll-controls">
<button class="roll-button" data-action="push">
<i class="fas fa-dice"></i>
{{localize "YZUR.CHAT.ROLL.Push"}}
</button>
<button class="roll-button" data-action="cancel-push">
<i class="fas fa-times"></i>
{{localize "YZUR.CHAT.ROLL.CancelPush"}}
</button>
</div>
{{/if}}
</div>
</div>
@@ -0,0 +1,21 @@
<form autocomplete="off">
{{#each dice as | die |}}
{{#each die.results}}
{{#if active}}
<div class="boxed-property form-group">
<label class="checkbox-label">
<input
type="checkbox"
name="{{@../index}}.{{indexResult}}"
{{checked (and (gt result 1) (lt result 6))}}
{{#if (and (gte die.faces 10) (gte result 6) (lt result 10))}}
{{else}}disabled{{/if}}
/>
{{!-- <img src="systems/blade-runner/assets/icons/d{{die.faces}}-grey.svg" width="24" height="24"/> --}}
<span>{{localize "FLBR.D"}}{{die.faces}}&nbsp;&nbsp;&nbsp;( {{result}} )</span>
</label>
</div>
{{/if}}
{{/each}}
{{/each}}
</form>
+77
View File
@@ -0,0 +1,77 @@
<form class="{{cssClass}}" autocomplete="off">
{{!-- <div class="sheet-header">
<h2>{{title}}</h2>
</div> --}}
<div class="sheet-body">
{{!-- Dice --}}
<div class="dice flex row justify-center">
{{#each dice}}
<div class="die-box die-d{{.}}">{{localize "FLBR.D"}}{{.}}</div>
{{/each}}
{{#if (lt dice.length config.maxRolledDice)}}
<div class="die-box empty add-die rollable">
<a data-tooltip="{{localize "FLBR.ROLLER.AddDie"}}">{{{@root.config.Icons.buttons.plus}}}</a>
</div>
{{/if}}
</div>
{{!-- Modifiers --}}
<div class="modifiers boxed-property">
<h3>{{localize "FLBR.HEADER.Modifiers"}}</h3>
<h4>{{localize "FLBR.ROLLER.ModifierActive"}}</h4>
<h4>{{localize "FLBR.ROLLER.ModifierName"}}</h4>
<h4>{{localize "FLBR.ROLLER.ModifierValue"}}</h4>
{{#each modifiers}}
<input type="checkbox" id="modifier-{{id}}" data-id="{{id}}" {{checked active}}/>
<label class="modifier-name" for="modifier-{{id}}" data-tooltip='{{enrichDocumentName description}}'>{{name}}</label>
{{!-- <div class="modifier-value">{{signedValue}}</div> --}}
<div class="modifier-value">
{{#if (gt value 0)}}
<div class="modifier-value advantage" data-tooltip="{{localize "FLBR.Advantage"}}">
{{{@root.config.Icons.buttons.advantage}}}
</div>
{{else if (lt value 0)}}
<div class="modifier-value disadvantage" data-tooltip="{{localize "FLBR.Disadvantage"}}">
{{{@root.config.Icons.buttons.disadvantage}}}
</div>
{{else}}
<div class="modifier-value">{{localize "FLBR.NO_VALUE"}}</div>
{{/if}}
</div>
{{/each}}
</div>
<div class="roll-options boxed-property flex column">
{{!-- Max Pushes --}}
{{#unless options.disabledPush}}
<h3>{{localize "FLBR.ROLLER.MaxPush"}}</h3>
<div class="flex row align-center">
<input type="number" name="maxPush" value="{{maxPush}}"{{#if options.unlimitedPush}} style="display: none;"{{/if}}/>
<input type="checkbox" id="unlimitedPush" name="options.unlimitedPush" {{checked options.unlimitedPush}}/>
<label class="checkbox-label" for="unlimitedPush">{{localize "FLBR.ROLLER.UnlimitedPush"}}</label>
</div>
{{/unless}}
{{!-- RollMode --}}
<h3>{{localize "CHAT.RollDefault"}}</h3>
<select name="rollMode">
{{selectOptions config.rollModes selected=rollMode localize=true}}
</select>
{{#if damage includeZero=true}}
<h3>{{localize "FLBR.WeaponDamage"}}:<span style="color: var(--color-green); float: right;">{{damage}}, <small>{{localize (lookup config.damageTypes damageType)}}</small></span></h3>
{{/if}}
</div>
</div>
<div class="sheet-footer flex row space-around">
<button id="advantage" class="dialog-button" type="submit"{{#if disadvantage}} disabled{{/if}}>
{{localize "FLBR.ROLLER.RollWithAdvantageButton"}}
</button>
<button id="roll" class="dialog-button" type="submit"{{#if (or advantage disadvantage)}} disabled{{/if}}>
{{localize "FLBR.ROLLER.RollButton"}}
</button>
<button id="disadvantage" class="dialog-button" type="submit"{{#if advantage}} disabled{{/if}}>
{{localize "FLBR.ROLLER.RollWithDisadvantageButton"}}
</button>
</div>
</form>