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>
39 lines
1.7 KiB
Handlebars
39 lines
1.7 KiB
Handlebars
<div class="ringbrp-chat rb-roll rb-{{level}}">
|
|
<h3 class="rb-chat-title">{{label}}</h3>
|
|
<div class="rb-chat-line">
|
|
<span class="rb-chat-rating">{{rating}}%</span>
|
|
{{#unless (rbEq difficulty "average")}}<span class="rb-chat-diff">{{difficultyLabel}}</span>{{/unless}}
|
|
{{#if situational}}<span class="rb-chat-mod">{{rbSign situational}}%</span>{{/if}}
|
|
<span class="rb-chat-arrow">→</span>
|
|
<span class="rb-chat-eff">{{bands.effective}}%</span>
|
|
</div>
|
|
{{#if flavourLines.length}}
|
|
<ul class="rb-chat-flavour">{{#each flavourLines as |l|}}<li>{{l}}</li>{{/each}}</ul>
|
|
{{/if}}
|
|
<div class="rb-chat-result">
|
|
<div class="rb-dice" aria-label="{{roll}}">
|
|
<span class="rb-die rb-die-tens">{{faces.tens}}</span>
|
|
<span class="rb-die rb-die-units">{{faces.units}}</span>
|
|
</div>
|
|
<div class="rb-chat-outcome">
|
|
<span class="rb-chat-roll">{{roll}}</span>
|
|
<span class="rb-chat-level">{{levelLabel}}</span>
|
|
</div>
|
|
</div>
|
|
{{#if damage}}
|
|
<div class="rb-chat-damage">
|
|
<button type="button" class="rb-dmg-btn" data-action="chat-damage">
|
|
{{localize "RINGBRP.Chat.RollDamage"}} <strong>{{damage.label}}</strong>
|
|
</button>
|
|
{{#if damage.critical}}<span class="rb-dmg-note">{{localize "RINGBRP.Chat.DamageCritical"}}</span>{{/if}}
|
|
{{#if damage.special}}<span class="rb-dmg-note">{{localize "RINGBRP.Chat.DamageSpecial"}}</span>{{/if}}
|
|
</div>
|
|
{{/if}}
|
|
<div class="rb-chat-bands">
|
|
<span title="critical">≤{{bands.critical}}</span>
|
|
<span title="special">≤{{bands.special}}</span>
|
|
<span title="success">≤{{bands.effective}}</span>
|
|
<span title="fumble">≥{{bands.fumbleStart}}</span>
|
|
</div>
|
|
</div>
|