1a9e5e2c18
- Rules abstraction (5e + pf2e) behind one interface, fully tested - Pure combat engine: turn-order safe across add/remove/reorder/init-change - Dexie storage with real cascade deletes + Zod validation on write - Seedable dice engine with notation parser - Lazy SRD compendium (code-split), bestiary -> combat - Strict TS, 54 unit tests, Playwright e2e smoke (all green) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
5 lines
169 B
TypeScript
5 lines
169 B
TypeScript
/** Format a modifier with an explicit sign, e.g. 3 -> "+3", -1 -> "-1". */
|
|
export function formatModifier(n: number): string {
|
|
return n >= 0 ? `+${n}` : String(n);
|
|
}
|