@randsum/blades
Version:
Blades in the Dark compatible dice rolling implementation
4 lines (2 loc) • 702 B
JavaScript
import{roll as s}from"@randsum/roller";function o({rolls:e},r){let l=e.flatMap((t)=>t.rolls);if(l.filter((t)=>t===6).length>=2&&r)return"critical";switch(l[0]){case 6:return"success";case 5:case 4:return"partial";default:return"failure"}}function i(e){if(!Number.isInteger(e))throw new Error(`Blades dice pool must be an integer, received: ${e}`);if(e<0)throw new Error(`Blades dice pool must be non-negative, received: ${e}`);if(e>10)throw new Error(`Blades dice pool is unusually large (${e}). Maximum recommended is 10.`);let r=e>0,l=s({sides:6,quantity:r?e:2,...r?{}:{modifiers:{drop:{highest:1}}}});return{...l,result:o(l,r)}}export{i as rollBlades};
//# debugId=A5FD72CD5DA4F31A64756E2164756E21