UNPKG

@randsum/salvageunion

Version:

A flexible, type-safe dice roller for the Salvage Union system

24 lines (23 loc) 744 B
import { D20 } from '@randsum/dice'; import { AllRollTables } from './tables'; function interpretHit(result) { switch (true) { case result === 20: return 'Nailed It'; case result >= 11 && result <= 19: return 'Success'; case result >= 6 && result <= 10: return 'Tough Choice'; case result >= 2 && result <= 5: return 'Failure'; default: return 'Cascade Failure'; } } export function rollSU(tableName = 'Core Mechanic') { const total = D20.roll(); const hit = interpretHit(total); const table = AllRollTables[tableName]; const result = table[hit]; return [{ ...result, hit, table, tableName, roll: total }, total]; }