Trying to steady somebody and making it worse is the most familiar thing on that list, and until now it was the only outcome that cost nothing. Done as a NEGATIVE relief rather than a second code path: panicReliefFor returns -1 on a fumble, and easePanic already subtracts what it is given, so subtracting a negative raises the track. One number, one direction, no branch that could drift from the other. The clamp still holds — fumbling at 5 stays at 5. The chat card had to be told, because otherwise it prints the word "Psychology" over a number that has just gone UP and the table reads that as a bug rather than as the rule. It now leads with a red FUMBLED tag. Guarded three ways: a spot-check in check-rules for the -1 itself, and two behaviour tests — one that the sign survives easePanic's subtraction and actually raises the track, one that it cannot push past the top. A test on the constant alone would have passed even if easePanic had healed on a fumble. Verified live: 2 → fumble → 3 → success → 2 → special → 0, and a fumble at 5 staying at 5, with the cards reading correctly. Version 1.1.2. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
22 lines
992 B
Handlebars
22 lines
992 B
Handlebars
<div class="ringbrp-chat rb-panic-card">
|
|
<div class="rb-chat-title">{{localize "RINGBRP.Panic.Label"}}</div>
|
|
<div class="rb-chat-sub">{{actorName}}</div>
|
|
|
|
<ol class="rb-panic-pips">
|
|
{{#each pips as |on|}}<li class="rb-panic-pip{{#if on}} on{{/if}}"></li>{{/each}}
|
|
</ol>
|
|
|
|
<div class="rb-panic-move">
|
|
<span class="rb-panic-from">{{before}}</span>
|
|
<span class="rb-panic-arrow">→</span>
|
|
<span class="rb-panic-to">{{after}}</span>
|
|
<span class="rb-panic-band rb-panic-{{band.id}}">{{localize band.label}}</span>
|
|
</div>
|
|
|
|
<p class="rb-panic-reason">{{#if backfired}}<span class="rb-panic-worse">{{localize "RINGBRP.Panic.Backfired"}}</span> {{/if}}{{reason}}{{#if note}} — <em>{{note}}</em>{{/if}}</p>
|
|
<p class="rb-panic-note">{{localize band.note}}</p>
|
|
|
|
{{#if penalty}}<p class="rb-panic-pen">{{penalty}}% {{localize "RINGBRP.Chat.ToEverything"}}</p>{{/if}}
|
|
{{#if breaks}}<p class="rb-panic-break">{{localize "RINGBRP.Panic.Breaks"}}</p>{{/if}}
|
|
</div>
|