@randsum/daggerheart
Version:
A flexible, type-safe dice roller for building Daggerheart-compatible applications
4 lines (2 loc) • 1.43 kB
JavaScript
var T=require("node:module");var{defineProperty:i,getOwnPropertyNames:h,getOwnPropertyDescriptor:D}=Object,y=Object.prototype.hasOwnProperty;var n=new WeakMap,v=(e)=>{var l=n.get(e),t;if(l)return l;if(l=i({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")h(e).map((r)=>!y.call(l,r)&&i(l,r,{get:()=>e[r],enumerable:!(t=D(e,r))||t.enumerable}));return n.set(e,l),l};var A=(e,l)=>{for(var t in l)i(e,t,{get:l[t],enumerable:!0,configurable:!0,set:(r)=>l[t]=()=>r})};var b={};A(b,{roll:()=>p});module.exports=v(b);var R=require("@randsum/roller");function s(e,l){if(e===l)return"critical hope";if(e>l)return"hope";return"fear"}function g(e){return{roll:e.total,amplified:e.parameters.sides===20}}var p=R.createMultiRollGameRoll({validate:()=>{return},toRollOptions:(e)=>{let l=e.rollingWith==="Advantage",t={sides:e.amplifyHope?20:12,key:"hope"},r={sides:e.amplifyFear?20:12,key:"fear"},o=e.rollingWith?{sides:6,key:e.rollingWith,arithmetic:l?"add":"subtract"}:void 0;return[t,r,o].filter((a)=>a!==void 0)},interpretResult:(e,l,t)=>{let r=t.get("hope"),o=t.get("fear"),a=e.rollingWith?t.get(e.rollingWith):void 0;if(!r||!o)throw Error("Failed to properly roll.");let d=a?{roll:a.appliedTotal,amplified:!1}:void 0,u=s(r.total,o.total),m={hope:g(r),fear:g(o),advantage:d,modifier:e.modifier??0},f=e.modifier??0,c=l.total;return{result:u,details:m,total:c+f}}});
//# debugId=D9B3D1B90E6928D764756E2164756E21