{"version":3,"file":"cjs.min.cjs","sources":["../src/utils/dices.js","../src/utils/helpers.js","../src/systems/mythic.js","../src/systems/recluse.js"],"sourcesContent":["const throwDice = (dice) => 1 + Math.floor(Math.random() * dice)\n\nconst d4 = () => throwDice(4)\nconst d6 = () => throwDice(6)\nconst d8 = () => throwDice(8)\nconst d10 = () => throwDice(10)\nconst d12 = () => throwDice(12)\nconst d20 = () => throwDice(20)\nconst d100 = () => throwDice(100)\n\nexport { d4, d6, d8, d10, d12, d20, d100, throwDice }\n","export const isOdd = (number) => number % 2\n","import { d10, d100 } from '../utils/dices.js'\nimport { isOdd } from '../utils/helpers.js'\n\nexport const mythic = {\n  chaosFactor: 4,\n  setChaosFactor: function (chaosFactor) {\n    const validatedChaosFactor =\n      chaosFactor > 6 ? 6 : chaosFactor < 3 ? 3 : chaosFactor\n    this.chaosFactor = validatedChaosFactor\n  },\n  increaseChaosFactor: function () {\n    return this.setChaosFactor(this.chaosFactor + 1)\n  },\n  decreaseChaosFactor: function () {\n    return this.setChaosFactor(this.chaosFactor - 1)\n  },\n  fateCheck: function (modifier) {\n    const dice1 = d10()\n    const dice2 = d10()\n    const chaosDice = d10()\n    console.log(dice1, dice2, modifier)\n\n    let result = dice1 + dice2 + modifier < 10 ? 'No' : 'Yes'\n    let randomEvent = false\n    if (chaosDice <= this.chaosFactor) {\n      if (dice1 === dice2) {\n      } else if (isOdd(dice1) && isOdd(dice2)) {\n        result = `Exceptional ${result.toLowerCase()}`\n      } else if (!isOdd(dice1) && !isOdd(dice2)) {\n        randomEvent = true\n        result += ` and random event - `\n        randomEvent = true\n        result = `Exceptional ${result.toLowerCase()} and random event - `\n      }\n      if (randomEvent) {\n        result += this.eventCheck()\n      }\n    }\n\n    return result\n  },\n  eventCheck: function () {\n    const die = d100()\n    let randomEvent = ''\n    if (die < 8) {\n      randomEvent = 'Remove event: '\n    } else if (die > 7 && die < 29) {\n      randomEvent = 'NPC action: '\n    } else if (die > 28 && die < 36) {\n      randomEvent = 'Introduce a new NPC: '\n    } else if (die > 35 && die < 46) {\n      randomEvent = 'Move toward a thread: '\n    } else if (die > 45 && die < 53) {\n      randomEvent = 'Move away from a thread: '\n    } else if (die > 52 && die < 56) {\n      randomEvent = 'Close a thread: '\n    } else if (die > 55 && die < 68) {\n      randomEvent = 'PC negative: '\n    } else if (die > 67 && die < 76) {\n      randomEvent = 'PC positive: '\n    } else if (die > 75 && die < 84) {\n      randomEvent = 'Ambiguous event: '\n    } else if (die > 83 && die < 93) {\n      randomEvent = 'NPC negative: '\n    } else if (die > 92 && die < 100) {\n      randomEvent = 'NPC positive: '\n    }\n\n    randomEvent += this.getEventMeaning()\n\n    return randomEvent\n  },\n  getEventMeaning: function () {\n    return `${this.getActions()}, ${this.getDescriptors()}`\n  },\n  getActions: function () {\n    return d10() > 5 ? eventActions1[d100() - 1] : eventActions2[d100() - 1]\n  },\n  getDescriptors: function () {\n    return d10() > 5\n      ? eventDescriptors1[d100() - 1]\n      : eventDescriptors2[d100() - 1]\n  },\n  detailsCheck: function () {\n    let dice = d10() + d10()\n    dice += this.chaosFactor === 3 ? +2 : this.chaosFactor === 6 ? -2 : 0\n    dice = dice < 4 ? 4 : dice > 18 ? 18 : dice\n    console.log(dice)\n    return `${details[dice - 4]}: ${this.getEventMeaning()}`\n  },\n}\n\n// constants\nconst eventActions1 = [\n  'Attainment',\n  'Starting',\n  'Neglect',\n  'Fight',\n  'Recruit',\n  'Triumph',\n  'Violate',\n  'Oppose',\n  'Malice',\n  'Communicate',\n  'Persecute',\n  'Increase',\n  'Decrease',\n  'Abandon',\n  'Gratify',\n  'Inquire',\n  'Antagonize',\n  'Move',\n  'Waste',\n  'Truce',\n  'Expose',\n  'Haggle',\n  'Imprison',\n  'Release',\n  'Celebrate',\n  'Develop',\n  'Travel',\n  'Block',\n  'Harm',\n  'Debase',\n  'Overindulge',\n  'Adjourn',\n  'Adversity',\n  'Kill',\n  'Disrupt',\n  'Usurp',\n  'Create',\n  'Betray',\n  'Agree',\n  'Abuse',\n  'Excitement',\n  'Activity',\n  'Assist',\n  'Care',\n  'Negligence',\n  'Passion',\n  'Work',\n  'Control',\n  'Attract',\n  'Failure',\n  'Pursue',\n  'Vengeance',\n  'Proceedings',\n  'Dispute',\n  'Punish',\n  'Guide',\n  'Transform',\n  'Overthrow',\n  'Oppress',\n  'Change',\n  'Release',\n  'Befriend',\n  'Judge',\n  'Desert',\n  'Dominate',\n  'Procrastinate',\n  'Praise',\n  'Separate',\n  'Take',\n  'Break',\n  'Heal',\n  'Delay',\n  'Stop',\n  'Lie',\n  'Return',\n  'Imitate',\n  'Struggle',\n  'Inform',\n  'Bestow',\n  'Postpone',\n  'Oppress',\n  'Inspect',\n  'Ambush',\n  'Spy',\n  'Attach',\n  'Carry',\n  'Open',\n  'Carelessness',\n  'Ruin',\n  'Extravagance',\n  'Trick',\n  'Arrive',\n  'Propose',\n  'Divide',\n  'Refuse',\n  'Mistrust',\n  'Deceive',\n  'Cruelty',\n  'Intolerance',\n  'Trust',\n]\n\nconst eventActions2 = [\n  'Goals',\n  'Dreams',\n  'Environment',\n  'Outside',\n  'Inside',\n  'Reality',\n  'Allies',\n  'Enemies',\n  'Evil',\n  'Good',\n  'Emotions',\n  'Opposition',\n  'War',\n  'Peace',\n  'Innocent',\n  'Love',\n  'Spirit',\n  'Intellect',\n  'Ideas',\n  'Joy',\n  'Advice',\n  'Plot',\n  'Competition',\n  'Prison',\n  'Illness',\n  'Food',\n  'Attention',\n  'Success',\n  'Failure',\n  'Travel',\n  'Jealousy',\n  'Dispute',\n  'Home',\n  'Investment',\n  'Suffering',\n  'Wishes',\n  'Tactics',\n  'Stalemate',\n  'Randomness',\n  'Misfortune',\n  'Victory',\n  'Dispute',\n  'Riches',\n  'Normal',\n  'Technology',\n  'Hope',\n  'Magic',\n  'Illusions',\n  'Portals',\n  'Danger',\n  'Weapons',\n  'Animals',\n  'Weather',\n  'Elements',\n  'Nature',\n  'Masses',\n  'Leadership',\n  'Fame',\n  'Anger',\n  'Information',\n  'Messages',\n  'Energy',\n  'Balance',\n  'Tension',\n  'Friendship',\n  'Physical',\n  'Project',\n  'Pleasures',\n  'Pain',\n  'Possessions',\n  'Benefits',\n  'Plans',\n  'Lies',\n  'Expectations',\n  'Legal',\n  'Bureaucracy',\n  'Business',\n  'Path',\n  'News',\n  'Exterior',\n  'Death',\n  'Disruption',\n  'Power',\n  'Burden',\n  'Intrigues',\n  'Fears',\n  'Ambush',\n  'Rumor',\n  'Wounds',\n  'Extravagance',\n  'Representative',\n  'Adversities',\n  'Opulence',\n  'Liberty',\n  'Military',\n  'Mundane',\n  'Trials',\n  'Masses',\n  'Vehicle',\n  'Art',\n]\n\nconst eventDescriptors1 = [\n  'Abnormally',\n  'Adventurously',\n  'Aggressively',\n  'Angrily',\n  'Anxiously',\n  'Awkwardly',\n  'Beautifully',\n  'Bleakly',\n  'Boldly',\n  'Bravely',\n  'Busily',\n  'Calmly',\n  'Carefully',\n  'Carelessly',\n  'Cautiously',\n  'Ceaselessly',\n  'Cheerfully',\n  'Combatively',\n  'Coolly',\n  'Crazily',\n  'Fully',\n  'Generously',\n  'Gently',\n  'Gladly',\n  'Gracefully',\n  'Gratefully',\n  'Happily',\n  'Hastily',\n  'Healthily',\n  'Helpfully',\n  'Helplessly',\n  'Hopelessly',\n  'Innocently',\n  'Intensely',\n  'Interestingly',\n  'Irritatingly',\n  'Jovially',\n  'Joyfully',\n  'Judgementally',\n  'Kindly',\n  'Peacefully',\n  'Perfectly',\n  'Playfully',\n  'Politely',\n  'Positively',\n  'Powerfully',\n  'Quaintly',\n  'Quarrelsomely',\n  'Quietly',\n  'Roughly',\n  'Rudely',\n  'Ruthlessly',\n  'Slowly',\n  'Softly',\n  'Swiftly',\n  'Threateningly',\n  'Very',\n  'Violently',\n  'Wildly',\n  'Yieldingly',\n  'Curiously',\n  'Daintily',\n  'Dangerously',\n  'Defiantly',\n  'Deliberately',\n  'Delightfully',\n  'Dimly',\n  'Efficiently',\n  'Energetically',\n  'Enormously',\n  'Enthusiastically',\n  'Excitedly',\n  'Fearfully',\n  'Ferociously',\n  'Fiercely',\n  'Foolishly',\n  'Fortunately',\n  'Frantically',\n  'Freely',\n  'Frighteningly',\n  'Kookily',\n  'Lazily',\n  'Lightly',\n  'Loosely',\n  'Loudly',\n  'Lovingly',\n  'Loyally',\n  'Majestically',\n  'Meaningfully',\n  'Mechanically',\n  'Miserably',\n  'Mockingly',\n  'Mysteriously',\n  'Naturally',\n  'Neatly',\n  'Nicely',\n  'Oddly',\n  'Offensively',\n  'Officially',\n  'Partially',\n]\n\nconst eventDescriptors2 = [\n  'Abandoned',\n  'Abnormal',\n  'Amusing',\n  'Ancient',\n  'Aromatic',\n  'Average',\n  'Beautiful',\n  'Bizarre',\n  'Classy',\n  'Clean',\n  'Cold',\n  'Colorful',\n  'Creepy',\n  'Cute',\n  'Damaged',\n  'Dark',\n  'Defeated',\n  'Delicate',\n  'Delightful',\n  'Dirty',\n  'Graceful',\n  'Hard',\n  'Harsh',\n  'Healthy',\n  'Heavy',\n  'Historical',\n  'Horrible',\n  'Important',\n  'Interesting',\n  'Juvenile',\n  'Lacking',\n  'Lame',\n  'Large',\n  'Lavish',\n  'Lean',\n  'Less',\n  'Lethal',\n  'Lonely',\n  'Lovely',\n  'Macabre',\n  'Remarkable',\n  'Rotten',\n  'Rough',\n  'Ruined',\n  'Rustic',\n  'Scary',\n  'Simple',\n  'Small',\n  'Smelly',\n  'Smooth',\n  'Soft',\n  'Strong',\n  'Tranquil',\n  'Ugly',\n  'Valuable',\n  'Warlike',\n  'Warm',\n  'Watery',\n  'Weak',\n  'Young',\n  'Disagreeable',\n  'Disgusting',\n  'Drab',\n  'Dry',\n  'Dull',\n  'Empty',\n  'Enormous',\n  'Exotic',\n  'Faded',\n  'Familiar',\n  'Fancy',\n  'Fat',\n  'Feeble',\n  'Feminine',\n  'Festive',\n  'Flawless',\n  'Fresh',\n  'Full',\n  'Glorious',\n  'Good',\n  'Magnificent',\n  'Masculine',\n  'Mature',\n  'Messy',\n  'Mighty',\n  'Military',\n  'Modern',\n  'Extravagant',\n  'Mundane',\n  'Mysterious',\n  'Natural',\n  'Nondescript',\n  'Odd',\n  'Pale',\n  'Petite',\n  'Poor',\n  'Powerful',\n  'Quaint',\n  'Rare',\n  'Reassuring',\n]\n\nconst details = [\n  'Anger',\n  'Sadness',\n  'Fear',\n  'Disfavors Thread',\n  'Disfavors PC',\n  'Focus NPC',\n  'Favors NPC',\n  'Focus PC',\n  'Disfavors NPC',\n  'Focus Thread',\n  'Favors PC',\n  'Favors Thread',\n  'Courage',\n  'Happiness',\n  'Calm',\n]\n","import { d6 } from '../utils/dices.js'\n\nconst odds = {\n  likely: 1,\n  even: 0,\n  unlikely: -1,\n}\n\nconst throwSecondDie = (firstDie) => {\n  const secondTry = d6()\n  return firstDie < secondTry ? secondTry : firstDie\n}\n\nexport const recluse = {\n  // likely is 0 for even checks, 1 for 'likely' checks and -1 for 'unlikely' checks\n  check: (likely = odds.even) => {\n    let whiteDie = d6()\n    if (likely === odds.likely) whiteDie = throwSecondDie(whiteDie)\n\n    let blackDie = d6()\n    if (likely === odds.unlikely) blackDie = throwSecondDie(blackDie)\n\n    let response = whiteDie > blackDie ? 'Yes' : 'No'\n    response += whiteDie < 4 && blackDie < 4 ? ' but...' : ''\n    response += whiteDie > 3 && blackDie > 3 ? ' and...' : ''\n    response = whiteDie === blackDie ? 'The question was wrong! Why?' : response\n\n    return response\n  },\n}\n"],"names":["throwDice","dice","Math","floor","random","d6","d10","d100","isOdd","number","mythic","chaosFactor","setChaosFactor","validatedChaosFactor","this","increaseChaosFactor","decreaseChaosFactor","fateCheck","modifier","dice1","dice2","chaosDice","console","log","result","randomEvent","toLowerCase","eventCheck","die","getEventMeaning","getActions","getDescriptors","eventActions1","eventActions2","eventDescriptors1","eventDescriptors2","detailsCheck","details","odds","throwSecondDie","firstDie","secondTry","recluse","check","likely","whiteDie","blackDie","response"],"mappings":"oEAAA,MAAMA,EAAaC,GAAS,EAAIC,KAAKC,MAAMD,KAAKE,SAAWH,GAGrDI,EAAK,IAAML,EAAU,GAErBM,EAAM,IAAMN,EAAU,IAGtBO,EAAO,IAAMP,EAAU,KCRhBQ,EAASC,GAAWA,EAAS,ECG7BC,EAAS,CACpBC,YAAa,EACbC,eAAgB,SAAUD,GACxB,MAAME,EACJF,EAAc,EAAI,EAAIA,EAAc,EAAI,EAAIA,EAC9CG,KAAKH,YAAcE,GAErBE,oBAAqB,WACnB,OAAOD,KAAKF,eAAeE,KAAKH,YAAc,IAEhDK,oBAAqB,WACnB,OAAOF,KAAKF,eAAeE,KAAKH,YAAc,IAEhDM,UAAW,SAAUC,GACnB,MAAMC,EAAQb,IACRc,EAAQd,IACRe,EAAYf,IAClBgB,QAAQC,IAAIJ,EAAOC,EAAOF,GAE1B,IAAIM,EAASL,EAAQC,EAAQF,EAAW,GAAK,KAAO,MAChDO,GAAc,EAgBlB,OAfIJ,GAAaP,KAAKH,cAChBQ,IAAUC,IACHZ,EAAMW,IAAUX,EAAMY,GAC/BI,EAAS,eAAeA,EAAOE,gBACrBlB,EAAMW,IAAWX,EAAMY,KACjCK,GAAc,EACdD,GAAU,uBACVC,GAAc,EACdD,EAAS,eAAeA,EAAOE,sCAE7BD,IACFD,GAAUV,KAAKa,eAIZH,GAETG,WAAY,WACV,MAAMC,EAAMrB,IACZ,IAAIkB,EAAc,GA2BlB,OA1BIG,EAAM,EACRH,EAAc,iBACLG,EAAM,GAAKA,EAAM,GAC1BH,EAAc,eACLG,EAAM,IAAMA,EAAM,GAC3BH,EAAc,wBACLG,EAAM,IAAMA,EAAM,GAC3BH,EAAc,yBACLG,EAAM,IAAMA,EAAM,GAC3BH,EAAc,4BACLG,EAAM,IAAMA,EAAM,GAC3BH,EAAc,mBACLG,EAAM,IAAMA,EAAM,GAC3BH,EAAc,gBACLG,EAAM,IAAMA,EAAM,GAC3BH,EAAc,gBACLG,EAAM,IAAMA,EAAM,GAC3BH,EAAc,oBACLG,EAAM,IAAMA,EAAM,GAC3BH,EAAc,iBACLG,EAAM,IAAMA,EAAM,MAC3BH,EAAc,kBAGhBA,GAAeX,KAAKe,kBAEbJ,GAETI,gBAAiB,WACf,MAAO,GAAGf,KAAKgB,iBAAiBhB,KAAKiB,oBAEvCD,WAAY,WACV,OAAOxB,IAAQ,EAAI0B,EAAczB,IAAS,GAAK0B,EAAc1B,IAAS,IAExEwB,eAAgB,WACd,OAAOzB,IAAQ,EACX4B,EAAkB3B,IAAS,GAC3B4B,EAAkB5B,IAAS,IAEjC6B,aAAc,WACZ,IAAInC,EAAOK,IAAQA,IAInB,OAHAL,GAA6B,IAArBa,KAAKH,YAAoB,EAA0B,IAArBG,KAAKH,aAAqB,EAAI,EACpEV,EAAOA,EAAO,EAAI,EAAIA,EAAO,GAAK,GAAKA,EACvCqB,QAAQC,IAAItB,GACL,GAAGoC,EAAQpC,EAAO,OAAOa,KAAKe,sBAKnCG,EAAgB,CACpB,aACA,WACA,UACA,QACA,UACA,UACA,UACA,SACA,SACA,cACA,YACA,WACA,WACA,UACA,UACA,UACA,aACA,OACA,QACA,QACA,SACA,SACA,WACA,UACA,YACA,UACA,SACA,QACA,OACA,SACA,cACA,UACA,YACA,OACA,UACA,QACA,SACA,SACA,QACA,QACA,aACA,WACA,SACA,OACA,aACA,UACA,OACA,UACA,UACA,UACA,SACA,YACA,cACA,UACA,SACA,QACA,YACA,YACA,UACA,SACA,UACA,WACA,QACA,SACA,WACA,gBACA,SACA,WACA,OACA,QACA,OACA,QACA,OACA,MACA,SACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,SACA,MACA,SACA,QACA,OACA,eACA,OACA,eACA,QACA,SACA,UACA,SACA,SACA,WACA,UACA,UACA,cACA,SAGIC,EAAgB,CACpB,QACA,SACA,cACA,UACA,SACA,UACA,SACA,UACA,OACA,OACA,WACA,aACA,MACA,QACA,WACA,OACA,SACA,YACA,QACA,MACA,SACA,OACA,cACA,SACA,UACA,OACA,YACA,UACA,UACA,SACA,WACA,UACA,OACA,aACA,YACA,SACA,UACA,YACA,aACA,aACA,UACA,UACA,SACA,SACA,aACA,OACA,QACA,YACA,UACA,SACA,UACA,UACA,UACA,WACA,SACA,SACA,aACA,OACA,QACA,cACA,WACA,SACA,UACA,UACA,aACA,WACA,UACA,YACA,OACA,cACA,WACA,QACA,OACA,eACA,QACA,cACA,WACA,OACA,OACA,WACA,QACA,aACA,QACA,SACA,YACA,QACA,SACA,QACA,SACA,eACA,iBACA,cACA,WACA,UACA,WACA,UACA,SACA,SACA,UACA,OAGIC,EAAoB,CACxB,aACA,gBACA,eACA,UACA,YACA,YACA,cACA,UACA,SACA,UACA,SACA,SACA,YACA,aACA,aACA,cACA,aACA,cACA,SACA,UACA,QACA,aACA,SACA,SACA,aACA,aACA,UACA,UACA,YACA,YACA,aACA,aACA,aACA,YACA,gBACA,eACA,WACA,WACA,gBACA,SACA,aACA,YACA,YACA,WACA,aACA,aACA,WACA,gBACA,UACA,UACA,SACA,aACA,SACA,SACA,UACA,gBACA,OACA,YACA,SACA,aACA,YACA,WACA,cACA,YACA,eACA,eACA,QACA,cACA,gBACA,aACA,mBACA,YACA,YACA,cACA,WACA,YACA,cACA,cACA,SACA,gBACA,UACA,SACA,UACA,UACA,SACA,WACA,UACA,eACA,eACA,eACA,YACA,YACA,eACA,YACA,SACA,SACA,QACA,cACA,aACA,aAGIC,EAAoB,CACxB,YACA,WACA,UACA,UACA,WACA,UACA,YACA,UACA,SACA,QACA,OACA,WACA,SACA,OACA,UACA,OACA,WACA,WACA,aACA,QACA,WACA,OACA,QACA,UACA,QACA,aACA,WACA,YACA,cACA,WACA,UACA,OACA,QACA,SACA,OACA,OACA,SACA,SACA,SACA,UACA,aACA,SACA,QACA,SACA,SACA,QACA,SACA,QACA,SACA,SACA,OACA,SACA,WACA,OACA,WACA,UACA,OACA,SACA,OACA,QACA,eACA,aACA,OACA,MACA,OACA,QACA,WACA,SACA,QACA,WACA,QACA,MACA,SACA,WACA,UACA,WACA,QACA,OACA,WACA,OACA,cACA,YACA,SACA,QACA,SACA,WACA,SACA,cACA,UACA,aACA,UACA,cACA,MACA,OACA,SACA,OACA,WACA,SACA,OACA,cAGIE,EAAU,CACd,QACA,UACA,OACA,mBACA,eACA,YACA,aACA,WACA,gBACA,eACA,YACA,gBACA,UACA,YACA,QCtgBIC,EACI,EADJA,EAEE,EAFFA,GAGO,EAGPC,EAAkBC,IACtB,MAAMC,EAAYpC,IAClB,OAAOmC,EAAWC,EAAYA,EAAYD,GAG/BE,EAAU,CAErBC,MAAO,CAACC,EAASN,KACf,IAAIO,EAAWxC,IACXuC,IAAWN,IAAaO,EAAWN,EAAeM,IAEtD,IAAIC,EAAWzC,IACXuC,IAAWN,IAAeQ,EAAWP,EAAeO,IAExD,IAAIC,EAAWF,EAAWC,EAAW,MAAQ,KAK7C,OAJAC,GAAYF,EAAW,GAAKC,EAAW,EAAI,UAAY,GACvDC,GAAYF,EAAW,GAAKC,EAAW,EAAI,UAAY,GACvDC,EAAWF,IAAaC,EAAW,+BAAiCC,EAE7DA"}