@randsum/daggerheart 0.24.4 → 0.24.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,4 +1,3 @@
1
1
  var D=require("node:module");var{defineProperty:i,getOwnPropertyNames:g,getOwnPropertyDescriptor:R}=Object,y=Object.prototype.hasOwnProperty;var f=new WeakMap,h=(t)=>{var e=f.get(t),o;if(e)return e;if(e=i({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")g(t).map((r)=>!y.call(e,r)&&i(e,r,{get:()=>t[r],enumerable:!(o=R(t,r))||o.enumerable}));return f.set(t,e),e};var v=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0,configurable:!0,set:(r)=>e[o]=()=>r})};var x={};v(x,{validateNotation:()=>l.validateNotation,rollDaggerheart:()=>k,rollCustom:()=>l.rollCustom,roll:()=>l.roll});module.exports=h(x);var l=require("@randsum/roller");var m=require("@randsum/roller");function u(t,e){if(t===e)return"critical hope";if(t>e)return"hope";return"fear"}function k({modifier:t=0,rollingWith:e,amplifyHope:o=!1,amplifyFear:r=!1}={}){let c=[{sides:o?20:12,key:"hope"},{sides:r?20:12,key:"fear"},e?{sides:6,key:e,arithmetic:e==="Advantage"?"add":"subtract"}:void 0].filter((a)=>!!a),s=m.roll(...c),n=s.rolls.find((a)=>a.parameters.key==="hope"),p=s.rolls.find((a)=>a.parameters.key==="fear"),d=s.rolls.find((a)=>a.parameters.key===e);if(!n||!p)throw new Error("Failed to properly roll.");return{...s,result:{total:s.total,type:u(n.total,p.total),details:{hope:{roll:n.total,amplified:o},fear:{roll:p.total,amplified:r},advantage:d?{roll:d.appliedTotal}:void 0,modifier:t}}}}
2
2
 
3
3
  //# debugId=A834C7F0E3DBD52D64756E2164756E21
4
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9yb2xsRGFnZ2VyaGVhcnQvaW5kZXgudHMiLCAiLi4vc3JjL3JvbGxEYWdnZXJoZWFydC9jYWxjdWxhdGVUeXBlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImV4cG9ydCB7IHJvbGwsIHJvbGxDdXN0b20sIHZhbGlkYXRlTm90YXRpb24gfSBmcm9tICdAcmFuZHN1bS9yb2xsZXInXG5leHBvcnQgdHlwZSB7XG4gIFJvbGxBcmd1bWVudCxcbiAgUm9sbGVyUm9sbFJlc3VsdCxcbiAgVmFsaWRhdGlvblJlc3VsdFxufSBmcm9tICdAcmFuZHN1bS9yb2xsZXInXG5cbmV4cG9ydCAqIGZyb20gJy4vcm9sbERhZ2dlcmhlYXJ0J1xuZXhwb3J0IHR5cGUgKiBmcm9tICcuL3R5cGVzJ1xuIiwKICAgICJpbXBvcnQgeyByb2xsIGFzIGNvcmVSb2xsIH0gZnJvbSAnQHJhbmRzdW0vcm9sbGVyJ1xuaW1wb3J0IHR5cGUgeyBEYWdnZXJoZWFydEdhbWVSZXN1bHQsIERhZ2dlcmhlYXJ0Um9sbEFyZ3VtZW50IH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBjYWxjdWxhdGVUeXBlIH0gZnJvbSAnLi9jYWxjdWxhdGVUeXBlJ1xuXG5leHBvcnQgZnVuY3Rpb24gcm9sbERhZ2dlcmhlYXJ0KHtcbiAgbW9kaWZpZXIgPSAwLFxuICByb2xsaW5nV2l0aCxcbiAgYW1wbGlmeUhvcGUgPSBmYWxzZSxcbiAgYW1wbGlmeUZlYXIgPSBmYWxzZVxufTogRGFnZ2VyaGVhcnRSb2xsQXJndW1lbnQgPSB7fSk6IERhZ2dlcmhlYXJ0R2FtZVJlc3VsdCB7XG4gIGNvbnN0IGlzQWR2YW50YWdlID0gcm9sbGluZ1dpdGggPT09ICdBZHZhbnRhZ2UnXG4gIGNvbnN0IGhvcGVSb2xsT3B0aW9ucyA9IHtcbiAgICBzaWRlczogYW1wbGlmeUhvcGUgPyAyMCA6IDEyLFxuICAgIGtleTogJ2hvcGUnXG4gIH1cbiAgY29uc3QgZmVhclJvbGxPcHRpb25zID0ge1xuICAgIHNpZGVzOiBhbXBsaWZ5RmVhciA/IDIwIDogMTIsXG4gICAga2V5OiAnZmVhcidcbiAgfVxuICBjb25zdCBhZHZEaXNhZHZhbnRhZ2VPcHRpb25zID0ge1xuICAgIHNpZGVzOiA2LFxuICAgIGtleTogcm9sbGluZ1dpdGgsXG4gICAgYXJpdGhtZXRpYzogaXNBZHZhbnRhZ2UgPyAoJ2FkZCcgYXMgY29uc3QpIDogKCdzdWJ0cmFjdCcgYXMgY29uc3QpXG4gIH1cblxuICBjb25zdCBhcmdzID0gW1xuICAgIGhvcGVSb2xsT3B0aW9ucyxcbiAgICBmZWFyUm9sbE9wdGlvbnMsXG4gICAgcm9sbGluZ1dpdGggPyBhZHZEaXNhZHZhbnRhZ2VPcHRpb25zIDogdW5kZWZpbmVkXG4gIF0uZmlsdGVyKChhKSA9PiAhIWEpXG5cbiAgY29uc3QgcmVzdWx0ID0gY29yZVJvbGwoLi4uYXJncylcbiAgY29uc3QgaG9wZVJvbGwgPSByZXN1bHQucm9sbHMuZmluZCgocm9sbCkgPT4gcm9sbC5wYXJhbWV0ZXJzLmtleSA9PT0gJ2hvcGUnKVxuICBjb25zdCBmZWFyUm9sbCA9IHJlc3VsdC5yb2xscy5maW5kKChyb2xsKSA9PiByb2xsLnBhcmFtZXRlcnMua2V5ID09PSAnZmVhcicpXG4gIGNvbnN0IGFkdkRpc2FkdmFudGFnZVJvbGwgPSByZXN1bHQucm9sbHMuZmluZChcbiAgICAocm9sbCkgPT4gcm9sbC5wYXJhbWV0ZXJzLmtleSA9PT0gcm9sbGluZ1dpdGhcbiAgKVxuXG4gIGlmICghaG9wZVJvbGwgfHwgIWZlYXJSb2xsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gcHJvcGVybHkgcm9sbC4nKVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5yZXN1bHQsXG4gICAgcmVzdWx0OiB7XG4gICAgICB0b3RhbDogcmVzdWx0LnRvdGFsLFxuICAgICAgdHlwZTogY2FsY3VsYXRlVHlwZShob3BlUm9sbC50b3RhbCwgZmVhclJvbGwudG90YWwpLFxuICAgICAgZGV0YWlsczoge1xuICAgICAgICBob3BlOiB7XG4gICAgICAgICAgcm9sbDogaG9wZVJvbGwudG90YWwsXG4gICAgICAgICAgYW1wbGlmaWVkOiBhbXBsaWZ5SG9wZVxuICAgICAgICB9LFxuICAgICAgICBmZWFyOiB7XG4gICAgICAgICAgcm9sbDogZmVhclJvbGwudG90YWwsXG4gICAgICAgICAgYW1wbGlmaWVkOiBhbXBsaWZ5RmVhclxuICAgICAgICB9LFxuICAgICAgICBhZHZhbnRhZ2U6IGFkdkRpc2FkdmFudGFnZVJvbGxcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgcm9sbDogYWR2RGlzYWR2YW50YWdlUm9sbC5hcHBsaWVkVG90YWxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgbW9kaWZpZXJcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsCiAgICAiaW1wb3J0IHR5cGUgeyBEYWdnZXJoZWFydFJvbGxSZXN1bHRUeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVUeXBlKFxuICBob3BlOiBudW1iZXIsXG4gIGZlYXI6IG51bWJlclxuKTogRGFnZ2VyaGVhcnRSb2xsUmVzdWx0VHlwZSB7XG4gIGlmIChob3BlID09PSBmZWFyKSB7XG4gICAgcmV0dXJuICdjcml0aWNhbCBob3BlJ1xuICB9XG4gIGlmIChob3BlID4gZmVhcikge1xuICAgIHJldHVybiAnaG9wZSdcbiAgfVxuICByZXR1cm4gJ2ZlYXInXG59XG4iCiAgXSwKICAibWFwcGluZ3MiOiAib25CQUFtRCxJQUFuRCw2QkNBaUMsSUFBakMsNkJDRU8sU0FBUyxDQUFhLENBQzNCLEVBQ0EsRUFDMkIsQ0FDM0IsR0FBSSxJQUFTLEVBQ1gsTUFBTyxnQkFFVCxHQUFJLEVBQU8sRUFDVCxNQUFPLE9BRVQsTUFBTyxPRFJGLFNBQVMsQ0FBZSxFQUM3QixXQUFXLEVBQ1gsY0FDQSxjQUFjLEdBQ2QsY0FBYyxJQUNhLENBQUMsRUFBMEIsQ0FnQnRELElBQU0sRUFBTyxDQWRXLENBQ3RCLE1BQU8sRUFBYyxHQUFLLEdBQzFCLElBQUssTUFDUCxFQUN3QixDQUN0QixNQUFPLEVBQWMsR0FBSyxHQUMxQixJQUFLLE1BQ1AsRUFVRSxFQVQ2QixDQUM3QixNQUFPLEVBQ1AsSUFBSyxFQUNMLFdBWmtCLElBQWdCLFlBWVAsTUFBbUIsVUFDaEQsRUFLeUMsTUFDekMsRUFBRSxPQUFPLENBQUMsTUFBUSxDQUFDLEVBRWIsRUFBUyxPQUFTLEdBQUcsQ0FBSSxFQUN6QixFQUFXLEVBQU8sTUFBTSxLQUFLLENBQUMsSUFBUyxFQUFLLFdBQVcsTUFBUSxNQUFNLEVBQ3JFLEVBQVcsRUFBTyxNQUFNLEtBQUssQ0FBQyxJQUFTLEVBQUssV0FBVyxNQUFRLE1BQU0sRUFDckUsRUFBc0IsRUFBTyxNQUFNLEtBQ3ZDLENBQUMsSUFBUyxFQUFLLFdBQVcsTUFBUSxDQUNwQyxFQUVBLElBQUssSUFBYSxFQUNoQixNQUFNLElBQUksTUFBTSwwQkFBMEIsRUFHNUMsTUFBTyxJQUNGLEVBQ0gsT0FBUSxDQUNOLE1BQU8sRUFBTyxNQUNkLEtBQU0sRUFBYyxFQUFTLE1BQU8sRUFBUyxLQUFLLEVBQ2xELFFBQVMsQ0FDUCxLQUFNLENBQ0osS0FBTSxFQUFTLE1BQ2YsVUFBVyxDQUNiLEVBQ0EsS0FBTSxDQUNKLEtBQU0sRUFBUyxNQUNmLFVBQVcsQ0FDYixFQUNBLFVBQVcsRUFDUCxDQUNFLEtBQU0sRUFBb0IsWUFDNUIsRUFDQSxPQUNKLFVBQ0YsQ0FDRixDQUNGIiwKICAiZGVidWdJZCI6ICJBODM0QzdGMEUzREJENTJENjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
@@ -0,0 +1,12 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../src/rollDaggerheart/index.ts", "../src/rollDaggerheart/calculateType.ts"],
4
+ "sourcesContent": [
5
+ "export { roll, rollCustom, validateNotation } from '@randsum/roller'\nexport type {\n RollArgument,\n RollerRollResult,\n ValidationResult\n} from '@randsum/roller'\n\nexport * from './rollDaggerheart'\nexport type * from './types'\n",
6
+ "import { roll as coreRoll } from '@randsum/roller'\nimport type { DaggerheartGameResult, DaggerheartRollArgument } from '../types'\nimport { calculateType } from './calculateType'\n\nexport function rollDaggerheart({\n modifier = 0,\n rollingWith,\n amplifyHope = false,\n amplifyFear = false\n}: DaggerheartRollArgument = {}): DaggerheartGameResult {\n const isAdvantage = rollingWith === 'Advantage'\n const hopeRollOptions = {\n sides: amplifyHope ? 20 : 12,\n key: 'hope'\n }\n const fearRollOptions = {\n sides: amplifyFear ? 20 : 12,\n key: 'fear'\n }\n const advDisadvantageOptions = {\n sides: 6,\n key: rollingWith,\n arithmetic: isAdvantage ? ('add' as const) : ('subtract' as const)\n }\n\n const args = [\n hopeRollOptions,\n fearRollOptions,\n rollingWith ? advDisadvantageOptions : undefined\n ].filter((a) => !!a)\n\n const result = coreRoll(...args)\n const hopeRoll = result.rolls.find((roll) => roll.parameters.key === 'hope')\n const fearRoll = result.rolls.find((roll) => roll.parameters.key === 'fear')\n const advDisadvantageRoll = result.rolls.find(\n (roll) => roll.parameters.key === rollingWith\n )\n\n if (!hopeRoll || !fearRoll) {\n throw new Error('Failed to properly roll.')\n }\n\n return {\n ...result,\n result: {\n total: result.total,\n type: calculateType(hopeRoll.total, fearRoll.total),\n details: {\n hope: {\n roll: hopeRoll.total,\n amplified: amplifyHope\n },\n fear: {\n roll: fearRoll.total,\n amplified: amplifyFear\n },\n advantage: advDisadvantageRoll\n ? {\n roll: advDisadvantageRoll.appliedTotal\n }\n : undefined,\n modifier\n }\n }\n }\n}\n",
7
+ "import type { DaggerheartRollResultType } from '../types'\n\nexport function calculateType(\n hope: number,\n fear: number\n): DaggerheartRollResultType {\n if (hope === fear) {\n return 'critical hope'\n }\n if (hope > fear) {\n return 'hope'\n }\n return 'fear'\n}\n"
8
+ ],
9
+ "mappings": "onBAAmD,IAAnD,6BCAiC,IAAjC,6BCEO,SAAS,CAAa,CAC3B,EACA,EAC2B,CAC3B,GAAI,IAAS,EACX,MAAO,gBAET,GAAI,EAAO,EACT,MAAO,OAET,MAAO,ODRF,SAAS,CAAe,EAC7B,WAAW,EACX,cACA,cAAc,GACd,cAAc,IACa,CAAC,EAA0B,CAgBtD,IAAM,EAAO,CAdW,CACtB,MAAO,EAAc,GAAK,GAC1B,IAAK,MACP,EACwB,CACtB,MAAO,EAAc,GAAK,GAC1B,IAAK,MACP,EAUE,EAT6B,CAC7B,MAAO,EACP,IAAK,EACL,WAZkB,IAAgB,YAYP,MAAmB,UAChD,EAKyC,MACzC,EAAE,OAAO,CAAC,MAAQ,CAAC,EAEb,EAAS,OAAS,GAAG,CAAI,EACzB,EAAW,EAAO,MAAM,KAAK,CAAC,IAAS,EAAK,WAAW,MAAQ,MAAM,EACrE,EAAW,EAAO,MAAM,KAAK,CAAC,IAAS,EAAK,WAAW,MAAQ,MAAM,EACrE,EAAsB,EAAO,MAAM,KACvC,CAAC,IAAS,EAAK,WAAW,MAAQ,CACpC,EAEA,IAAK,IAAa,EAChB,MAAM,IAAI,MAAM,0BAA0B,EAG5C,MAAO,IACF,EACH,OAAQ,CACN,MAAO,EAAO,MACd,KAAM,EAAc,EAAS,MAAO,EAAS,KAAK,EAClD,QAAS,CACP,KAAM,CACJ,KAAM,EAAS,MACf,UAAW,CACb,EACA,KAAM,CACJ,KAAM,EAAS,MACf,UAAW,CACb,EACA,UAAW,EACP,CACE,KAAM,EAAoB,YAC5B,EACA,OACJ,UACF,CACF,CACF",
10
+ "debugId": "A834C7F0E3DBD52D64756E2164756E21",
11
+ "names": []
12
+ }
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
1
  import{roll as A,rollCustom as O,validateNotation as T}from"@randsum/roller";import{roll as f}from"@randsum/roller";function i(r,e){if(r===e)return"critical hope";if(r>e)return"hope";return"fear"}function v({modifier:r=0,rollingWith:e,amplifyHope:s=!1,amplifyFear:n=!1}={}){let d=[{sides:s?20:12,key:"hope"},{sides:n?20:12,key:"fear"},e?{sides:6,key:e,arithmetic:e==="Advantage"?"add":"subtract"}:void 0].filter((t)=>!!t),o=f(...d),a=o.rolls.find((t)=>t.parameters.key==="hope"),l=o.rolls.find((t)=>t.parameters.key==="fear"),p=o.rolls.find((t)=>t.parameters.key===e);if(!a||!l)throw new Error("Failed to properly roll.");return{...o,result:{total:o.total,type:i(a.total,l.total),details:{hope:{roll:a.total,amplified:s},fear:{roll:l.total,amplified:n},advantage:p?{roll:p.appliedTotal}:void 0,modifier:r}}}}export{T as validateNotation,v as rollDaggerheart,O as rollCustom,A as roll};
2
2
 
3
3
  //# debugId=2AB943DDB108249164756E2164756E21
4
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9yb2xsRGFnZ2VyaGVhcnQvaW5kZXgudHMiLCAiLi4vc3JjL3JvbGxEYWdnZXJoZWFydC9jYWxjdWxhdGVUeXBlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImV4cG9ydCB7IHJvbGwsIHJvbGxDdXN0b20sIHZhbGlkYXRlTm90YXRpb24gfSBmcm9tICdAcmFuZHN1bS9yb2xsZXInXG5leHBvcnQgdHlwZSB7XG4gIFJvbGxBcmd1bWVudCxcbiAgUm9sbGVyUm9sbFJlc3VsdCxcbiAgVmFsaWRhdGlvblJlc3VsdFxufSBmcm9tICdAcmFuZHN1bS9yb2xsZXInXG5cbmV4cG9ydCAqIGZyb20gJy4vcm9sbERhZ2dlcmhlYXJ0J1xuZXhwb3J0IHR5cGUgKiBmcm9tICcuL3R5cGVzJ1xuIiwKICAgICJpbXBvcnQgeyByb2xsIGFzIGNvcmVSb2xsIH0gZnJvbSAnQHJhbmRzdW0vcm9sbGVyJ1xuaW1wb3J0IHR5cGUgeyBEYWdnZXJoZWFydEdhbWVSZXN1bHQsIERhZ2dlcmhlYXJ0Um9sbEFyZ3VtZW50IH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBjYWxjdWxhdGVUeXBlIH0gZnJvbSAnLi9jYWxjdWxhdGVUeXBlJ1xuXG5leHBvcnQgZnVuY3Rpb24gcm9sbERhZ2dlcmhlYXJ0KHtcbiAgbW9kaWZpZXIgPSAwLFxuICByb2xsaW5nV2l0aCxcbiAgYW1wbGlmeUhvcGUgPSBmYWxzZSxcbiAgYW1wbGlmeUZlYXIgPSBmYWxzZVxufTogRGFnZ2VyaGVhcnRSb2xsQXJndW1lbnQgPSB7fSk6IERhZ2dlcmhlYXJ0R2FtZVJlc3VsdCB7XG4gIGNvbnN0IGlzQWR2YW50YWdlID0gcm9sbGluZ1dpdGggPT09ICdBZHZhbnRhZ2UnXG4gIGNvbnN0IGhvcGVSb2xsT3B0aW9ucyA9IHtcbiAgICBzaWRlczogYW1wbGlmeUhvcGUgPyAyMCA6IDEyLFxuICAgIGtleTogJ2hvcGUnXG4gIH1cbiAgY29uc3QgZmVhclJvbGxPcHRpb25zID0ge1xuICAgIHNpZGVzOiBhbXBsaWZ5RmVhciA/IDIwIDogMTIsXG4gICAga2V5OiAnZmVhcidcbiAgfVxuICBjb25zdCBhZHZEaXNhZHZhbnRhZ2VPcHRpb25zID0ge1xuICAgIHNpZGVzOiA2LFxuICAgIGtleTogcm9sbGluZ1dpdGgsXG4gICAgYXJpdGhtZXRpYzogaXNBZHZhbnRhZ2UgPyAoJ2FkZCcgYXMgY29uc3QpIDogKCdzdWJ0cmFjdCcgYXMgY29uc3QpXG4gIH1cblxuICBjb25zdCBhcmdzID0gW1xuICAgIGhvcGVSb2xsT3B0aW9ucyxcbiAgICBmZWFyUm9sbE9wdGlvbnMsXG4gICAgcm9sbGluZ1dpdGggPyBhZHZEaXNhZHZhbnRhZ2VPcHRpb25zIDogdW5kZWZpbmVkXG4gIF0uZmlsdGVyKChhKSA9PiAhIWEpXG5cbiAgY29uc3QgcmVzdWx0ID0gY29yZVJvbGwoLi4uYXJncylcbiAgY29uc3QgaG9wZVJvbGwgPSByZXN1bHQucm9sbHMuZmluZCgocm9sbCkgPT4gcm9sbC5wYXJhbWV0ZXJzLmtleSA9PT0gJ2hvcGUnKVxuICBjb25zdCBmZWFyUm9sbCA9IHJlc3VsdC5yb2xscy5maW5kKChyb2xsKSA9PiByb2xsLnBhcmFtZXRlcnMua2V5ID09PSAnZmVhcicpXG4gIGNvbnN0IGFkdkRpc2FkdmFudGFnZVJvbGwgPSByZXN1bHQucm9sbHMuZmluZChcbiAgICAocm9sbCkgPT4gcm9sbC5wYXJhbWV0ZXJzLmtleSA9PT0gcm9sbGluZ1dpdGhcbiAgKVxuXG4gIGlmICghaG9wZVJvbGwgfHwgIWZlYXJSb2xsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gcHJvcGVybHkgcm9sbC4nKVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5yZXN1bHQsXG4gICAgcmVzdWx0OiB7XG4gICAgICB0b3RhbDogcmVzdWx0LnRvdGFsLFxuICAgICAgdHlwZTogY2FsY3VsYXRlVHlwZShob3BlUm9sbC50b3RhbCwgZmVhclJvbGwudG90YWwpLFxuICAgICAgZGV0YWlsczoge1xuICAgICAgICBob3BlOiB7XG4gICAgICAgICAgcm9sbDogaG9wZVJvbGwudG90YWwsXG4gICAgICAgICAgYW1wbGlmaWVkOiBhbXBsaWZ5SG9wZVxuICAgICAgICB9LFxuICAgICAgICBmZWFyOiB7XG4gICAgICAgICAgcm9sbDogZmVhclJvbGwudG90YWwsXG4gICAgICAgICAgYW1wbGlmaWVkOiBhbXBsaWZ5RmVhclxuICAgICAgICB9LFxuICAgICAgICBhZHZhbnRhZ2U6IGFkdkRpc2FkdmFudGFnZVJvbGxcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgcm9sbDogYWR2RGlzYWR2YW50YWdlUm9sbC5hcHBsaWVkVG90YWxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgbW9kaWZpZXJcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsCiAgICAiaW1wb3J0IHR5cGUgeyBEYWdnZXJoZWFydFJvbGxSZXN1bHRUeXBlIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVUeXBlKFxuICBob3BlOiBudW1iZXIsXG4gIGZlYXI6IG51bWJlclxuKTogRGFnZ2VyaGVhcnRSb2xsUmVzdWx0VHlwZSB7XG4gIGlmIChob3BlID09PSBmZWFyKSB7XG4gICAgcmV0dXJuICdjcml0aWNhbCBob3BlJ1xuICB9XG4gIGlmIChob3BlID4gZmVhcikge1xuICAgIHJldHVybiAnaG9wZSdcbiAgfVxuICByZXR1cm4gJ2ZlYXInXG59XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiQUFBQSxlQUFTLGdCQUFNLHNCQUFZLHdCQ0EzQixlQUFTLHdCQ0VGLFNBQVMsQ0FBYSxDQUMzQixFQUNBLEVBQzJCLENBQzNCLEdBQUksSUFBUyxFQUNYLE1BQU8sZ0JBRVQsR0FBSSxFQUFPLEVBQ1QsTUFBTyxPQUVULE1BQU8sT0RSRixTQUFTLENBQWUsRUFDN0IsV0FBVyxFQUNYLGNBQ0EsY0FBYyxHQUNkLGNBQWMsSUFDYSxDQUFDLEVBQTBCLENBZ0J0RCxJQUFNLEVBQU8sQ0FkVyxDQUN0QixNQUFPLEVBQWMsR0FBSyxHQUMxQixJQUFLLE1BQ1AsRUFDd0IsQ0FDdEIsTUFBTyxFQUFjLEdBQUssR0FDMUIsSUFBSyxNQUNQLEVBVUUsRUFUNkIsQ0FDN0IsTUFBTyxFQUNQLElBQUssRUFDTCxXQVprQixJQUFnQixZQVlQLE1BQW1CLFVBQ2hELEVBS3lDLE1BQ3pDLEVBQUUsT0FBTyxDQUFDLE1BQVEsQ0FBQyxFQUViLEVBQVMsRUFBUyxHQUFHLENBQUksRUFDekIsRUFBVyxFQUFPLE1BQU0sS0FBSyxDQUFDLElBQVMsRUFBSyxXQUFXLE1BQVEsTUFBTSxFQUNyRSxFQUFXLEVBQU8sTUFBTSxLQUFLLENBQUMsSUFBUyxFQUFLLFdBQVcsTUFBUSxNQUFNLEVBQ3JFLEVBQXNCLEVBQU8sTUFBTSxLQUN2QyxDQUFDLElBQVMsRUFBSyxXQUFXLE1BQVEsQ0FDcEMsRUFFQSxJQUFLLElBQWEsRUFDaEIsTUFBTSxJQUFJLE1BQU0sMEJBQTBCLEVBRzVDLE1BQU8sSUFDRixFQUNILE9BQVEsQ0FDTixNQUFPLEVBQU8sTUFDZCxLQUFNLEVBQWMsRUFBUyxNQUFPLEVBQVMsS0FBSyxFQUNsRCxRQUFTLENBQ1AsS0FBTSxDQUNKLEtBQU0sRUFBUyxNQUNmLFVBQVcsQ0FDYixFQUNBLEtBQU0sQ0FDSixLQUFNLEVBQVMsTUFDZixVQUFXLENBQ2IsRUFDQSxVQUFXLEVBQ1AsQ0FDRSxLQUFNLEVBQW9CLFlBQzVCLEVBQ0EsT0FDSixVQUNGLENBQ0YsQ0FDRiIsCiAgImRlYnVnSWQiOiAiMkFCOTQzRERCMTA4MjQ5MTY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
@@ -0,0 +1,12 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../src/rollDaggerheart/index.ts", "../src/rollDaggerheart/calculateType.ts"],
4
+ "sourcesContent": [
5
+ "export { roll, rollCustom, validateNotation } from '@randsum/roller'\nexport type {\n RollArgument,\n RollerRollResult,\n ValidationResult\n} from '@randsum/roller'\n\nexport * from './rollDaggerheart'\nexport type * from './types'\n",
6
+ "import { roll as coreRoll } from '@randsum/roller'\nimport type { DaggerheartGameResult, DaggerheartRollArgument } from '../types'\nimport { calculateType } from './calculateType'\n\nexport function rollDaggerheart({\n modifier = 0,\n rollingWith,\n amplifyHope = false,\n amplifyFear = false\n}: DaggerheartRollArgument = {}): DaggerheartGameResult {\n const isAdvantage = rollingWith === 'Advantage'\n const hopeRollOptions = {\n sides: amplifyHope ? 20 : 12,\n key: 'hope'\n }\n const fearRollOptions = {\n sides: amplifyFear ? 20 : 12,\n key: 'fear'\n }\n const advDisadvantageOptions = {\n sides: 6,\n key: rollingWith,\n arithmetic: isAdvantage ? ('add' as const) : ('subtract' as const)\n }\n\n const args = [\n hopeRollOptions,\n fearRollOptions,\n rollingWith ? advDisadvantageOptions : undefined\n ].filter((a) => !!a)\n\n const result = coreRoll(...args)\n const hopeRoll = result.rolls.find((roll) => roll.parameters.key === 'hope')\n const fearRoll = result.rolls.find((roll) => roll.parameters.key === 'fear')\n const advDisadvantageRoll = result.rolls.find(\n (roll) => roll.parameters.key === rollingWith\n )\n\n if (!hopeRoll || !fearRoll) {\n throw new Error('Failed to properly roll.')\n }\n\n return {\n ...result,\n result: {\n total: result.total,\n type: calculateType(hopeRoll.total, fearRoll.total),\n details: {\n hope: {\n roll: hopeRoll.total,\n amplified: amplifyHope\n },\n fear: {\n roll: fearRoll.total,\n amplified: amplifyFear\n },\n advantage: advDisadvantageRoll\n ? {\n roll: advDisadvantageRoll.appliedTotal\n }\n : undefined,\n modifier\n }\n }\n }\n}\n",
7
+ "import type { DaggerheartRollResultType } from '../types'\n\nexport function calculateType(\n hope: number,\n fear: number\n): DaggerheartRollResultType {\n if (hope === fear) {\n return 'critical hope'\n }\n if (hope > fear) {\n return 'hope'\n }\n return 'fear'\n}\n"
8
+ ],
9
+ "mappings": "AAAA,eAAS,gBAAM,sBAAY,wBCA3B,eAAS,wBCEF,SAAS,CAAa,CAC3B,EACA,EAC2B,CAC3B,GAAI,IAAS,EACX,MAAO,gBAET,GAAI,EAAO,EACT,MAAO,OAET,MAAO,ODRF,SAAS,CAAe,EAC7B,WAAW,EACX,cACA,cAAc,GACd,cAAc,IACa,CAAC,EAA0B,CAgBtD,IAAM,EAAO,CAdW,CACtB,MAAO,EAAc,GAAK,GAC1B,IAAK,MACP,EACwB,CACtB,MAAO,EAAc,GAAK,GAC1B,IAAK,MACP,EAUE,EAT6B,CAC7B,MAAO,EACP,IAAK,EACL,WAZkB,IAAgB,YAYP,MAAmB,UAChD,EAKyC,MACzC,EAAE,OAAO,CAAC,MAAQ,CAAC,EAEb,EAAS,EAAS,GAAG,CAAI,EACzB,EAAW,EAAO,MAAM,KAAK,CAAC,IAAS,EAAK,WAAW,MAAQ,MAAM,EACrE,EAAW,EAAO,MAAM,KAAK,CAAC,IAAS,EAAK,WAAW,MAAQ,MAAM,EACrE,EAAsB,EAAO,MAAM,KACvC,CAAC,IAAS,EAAK,WAAW,MAAQ,CACpC,EAEA,IAAK,IAAa,EAChB,MAAM,IAAI,MAAM,0BAA0B,EAG5C,MAAO,IACF,EACH,OAAQ,CACN,MAAO,EAAO,MACd,KAAM,EAAc,EAAS,MAAO,EAAS,KAAK,EAClD,QAAS,CACP,KAAM,CACJ,KAAM,EAAS,MACf,UAAW,CACb,EACA,KAAM,CACJ,KAAM,EAAS,MACf,UAAW,CACb,EACA,UAAW,EACP,CACE,KAAM,EAAoB,YAC5B,EACA,OACJ,UACF,CACF,CACF",
10
+ "debugId": "2AB943DDB108249164756E2164756E21",
11
+ "names": []
12
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@randsum/daggerheart",
3
- "version": "0.24.4",
3
+ "version": "0.24.5",
4
4
  "description": "A flexible, type-safe dice roller for building Daggerheart-compatible applications",
5
5
  "private": false,
6
6
  "author": {
@@ -28,7 +28,7 @@
28
28
  "sideEffects": false,
29
29
  "type": "module",
30
30
  "dependencies": {
31
- "@randsum/roller": "~0.24.4"
31
+ "@randsum/roller": "~0.24.5"
32
32
  },
33
33
  "exports": {
34
34
  ".": {