narrat 0.7.1 → 0.8.2

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/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- // Version: 0.7.1 - April 26, 2022 12:31:17
1
+ // Version: 0.8.2 - May 14, 2022 12:04:03
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -34,7 +34,7 @@ function styleInject(css, ref) {
34
34
  }
35
35
  }
36
36
 
37
- var css_248z = "/*! @import */\n\n/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */\n\n/*\nDocument\n========\n*/\n\n/**\nUse a better box model (opinionated).\n*/\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n/**\nUse a more readable tab size (opinionated).\n*/\n\n:root {\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n}\n\n/**\n1. Correct the line height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n*/\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/*\nSections\n========\n*/\n\n/**\nRemove the margin in all browsers.\n*/\n\nbody {\n margin: 0;\n}\n\n/**\nImprove consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\n*/\n\nbody {\n font-family:\n\t\tsystem-ui,\n\t\t-apple-system, /* Firefox supports this but not yet `system-ui` */\n\t\t'Segoe UI',\n\t\tRoboto,\n\t\tHelvetica,\n\t\tArial,\n\t\tsans-serif,\n\t\t'Apple Color Emoji',\n\t\t'Segoe UI Emoji';\n}\n\n/*\nGrouping content\n================\n*/\n\n/**\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n}\n\n/*\nText-level semantics\n====================\n*/\n\n/**\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr[title] {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/**\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\n2. Correct the odd 'em' font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family:\n\t\tui-monospace,\n\t\tSFMono-Regular,\n\t\tConsolas,\n\t\t'Liberation Mono',\n\t\tMenlo,\n\t\tmonospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/**\nPrevent 'sub' and 'sup' elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\nTabular data\n============\n*/\n\n/**\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n}\n\n/*\nForms\n=====\n*/\n\n/**\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\nRemove the inheritance of text transform in Edge and Firefox.\n1. Remove the inheritance of text transform in Firefox.\n*/\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\nCorrect the inability to style clickable types in iOS and Safari.\n*/\n\nbutton,\n[type='button'],\n[type='reset'] {\n -webkit-appearance: button;\n}\n\n/**\nRemove the inner border and padding in Firefox.\n*/\n\n/**\nRestore the focus styles unset by the previous rule.\n*/\n\n/**\nRemove the additional ':invalid' styles in Firefox.\nSee: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737\n*/\n\n/**\nRemove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.\n*/\n\nlegend {\n padding: 0;\n}\n\n/**\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n/**\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n/**\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to 'inherit' in Safari.\n*/\n\n/*\nInteractive\n===========\n*/\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/**\n * Manually forked from SUIT CSS Base: https://github.com/suitcss/base\n * A thin layer on top of normalize.css that provides a starting point more\n * suitable for web applications.\n */\n\n/**\n * Removes the default spacing and border for appropriate elements.\n */\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nbutton {\n background-color: transparent;\n background-image: none;\n}\n\n/**\n * Work around a Firefox/IE bug where the transparent `button` background\n * results in a loss of the default `button` focus styles.\n */\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nol,\nul {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/**\n * Tailwind custom reset styles\n */\n\n/**\n * 1. Use the user's configured `sans` font-family (with Tailwind's default\n * sans-serif font stack as a fallback) as a sane default.\n * 2. Use Tailwind's default \"normal\" line-height so the user isn't forced\n * to override it to ensure consistency even when using the default theme.\n */\n\nhtml {\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 1 */\n line-height: 1.5; /* 2 */\n}\n\n/**\n * Inherit font-family and line-height from `html` so users can set them as\n * a class directly on the `html` element.\n */\n\nbody {\n font-family: inherit;\n line-height: inherit;\n}\n\n/**\n * 1. Prevent padding and border from affecting element width.\n *\n * We used to set this in the html element and inherit from\n * the parent element for everything else. This caused issues\n * in shadow-dom-enhanced elements like <details> where the content\n * is wrapped by a div with box-sizing set to `content-box`.\n *\n * https://github.com/mozdevs/cssremedy/issues/4\n *\n *\n * 2. Allow adding a border to an element by just adding a border-width.\n *\n * By default, the way the browser specifies that an element should have no\n * border is by setting it's border-style to `none` in the user-agent\n * stylesheet.\n *\n * In order to easily add borders to elements by just setting the `border-width`\n * property, we change the default border-style for all elements to `solid`, and\n * use border-width to hide them instead. This way our `border` utilities only\n * need to set the `border-width` property instead of the entire `border`\n * shorthand, making our border utilities much more straightforward to compose.\n *\n * https://github.com/tailwindcss/tailwindcss/pull/116\n */\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n/*\n * Ensure horizontal rules are visible by default\n */\n\nhr {\n border-top-width: 1px;\n}\n\n/**\n * Undo the `border-style: none` reset that Normalize applies to images so that\n * our `border-{width}` utilities have the expected effect.\n *\n * The Normalize reset is unnecessary for us since we default the border-width\n * to 0 on all elements.\n *\n * https://github.com/tailwindcss/tailwindcss/issues/362\n */\n\nimg {\n border-style: solid;\n}\n\ntextarea {\n resize: vertical;\n}\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n color: #9ca3af;\n}\n\ninput:-ms-input-placeholder, textarea:-ms-input-placeholder {\n color: #9ca3af;\n}\n\ninput::placeholder,\ntextarea::placeholder {\n color: #9ca3af;\n}\n\nbutton {\n cursor: pointer;\n}\n\ntable {\n border-collapse: collapse;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/**\n * Reset links to optimize for opt-in styling instead of\n * opt-out.\n */\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/**\n * Reset form element properties that are easy to forget to\n * style explicitly so you don't inadvertently introduce\n * styles that deviate from your design system. These styles\n * supplement a partial reset that is already applied by\n * normalize.css.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n padding: 0;\n line-height: inherit;\n color: inherit;\n}\n\n/**\n * Use the configured 'mono' font family for elements that\n * are expected to be rendered with a monospace font, falling\n * back to the system monospace stack if there is no configured\n * 'mono' font family.\n */\n\npre,\ncode,\nkbd,\nsamp {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n/**\n * Make replaced elements `display: block` by default as that's\n * the behavior you want almost all of the time. Inspired by\n * CSS Remedy, with `svg` added as well.\n *\n * https://github.com/mozdevs/cssremedy/issues/14\n */\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n vertical-align: middle;\n}\n\n/**\n * Constrain images and videos to the parent width and preserve\n * their instrinsic aspect ratio.\n *\n * https://github.com/mozdevs/cssremedy/issues/14\n */\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n.bg-gray-800 {\n --tw-bg-opacity: 1;\n background-color: rgba(31, 41, 55, var(--tw-bg-opacity));\n}\n\n.border {\n border-width: 1px;\n}\n\n.flex {\n display: flex;\n}\n\n.table {\n display: table;\n}\n\n.grid {\n display: grid;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-grow {\n flex-grow: 1;\n}\n\n.flex-shrink {\n flex-shrink: 1;\n}\n\n.list-disc {\n list-style-type: disc;\n}\n\n.absolute {\n position: absolute;\n}\n\n.resize {\n resize: both;\n}\n\n* {\n --tw-shadow: 0 0 #0000;\n}\n\n* {\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgba(59, 130, 246, 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n}\n\n.table-auto {\n table-layout: auto;\n}\n\n.line-through {\n text-decoration: line-through;\n}\n\n.w-full {\n width: 100%;\n}\n\n.gap-4 {\n gap: 1rem;\n}\n\n.grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n.transform {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.transition {\n transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n@-webkit-keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@-webkit-keyframes ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n\n@keyframes ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n\n@-webkit-keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n\n@keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n\n@-webkit-keyframes bounce {\n 0%, 100% {\n transform: translateY(-25%);\n -webkit-animation-timing-function: cubic-bezier(0.8,0,1,1);\n animation-timing-function: cubic-bezier(0.8,0,1,1);\n }\n\n 50% {\n transform: none;\n -webkit-animation-timing-function: cubic-bezier(0,0,0.2,1);\n animation-timing-function: cubic-bezier(0,0,0.2,1);\n }\n}\n\n@keyframes bounce {\n 0%, 100% {\n transform: translateY(-25%);\n -webkit-animation-timing-function: cubic-bezier(0.8,0,1,1);\n animation-timing-function: cubic-bezier(0.8,0,1,1);\n }\n\n 50% {\n transform: none;\n -webkit-animation-timing-function: cubic-bezier(0,0,0.2,1);\n animation-timing-function: cubic-bezier(0,0,0.2,1);\n }\n}\n\n.list-item {\n display: inline-block;\n margin-right: 10px;\n}\n\n.list-enter-active,\n.list-leave-active {\n transition: all 0.3s ease;\n}\n\n/* .list-move {\n transition: transform 0.3s ease;\n} */\n\n.list-enter-from,\n.list-leave-to {\n opacity: 0;\n transform: translateX(300px);\n}\n\n.notification-item {\n display: inline-block;\n margin-right: 10px;\n}\n\n.notification-enter-active,\n.notification-leave-active {\n transition: all 0.3s ease;\n}\n\n/* .notification-move {\n transition: transform 0.3s ease;\n} */\n\n.notification-enter-from,\n.notification-leave-to {\n opacity: 0;\n transform: translateY(-300px);\n}\n\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.3s ease;\n}\n\n.fade-enter-from,\n.fade-leave-to {\n opacity: 0;\n}\n\n.fade-in-enter-active {\n transition: opacity 0.1s ease;\n}\n\n.fade-in-enter-from {\n opacity: 0;\n}\n\nbody {\n padding: 0;\n margin: 0;\n font-family: Arial, sans-serif;\n}\n\nselect {\n background-color: grey;\n}\n\nbutton {\n background-color: #72080f;\n color: white;\n border-radius: 30px;\n padding: 5px;\n font-weight: 800;\n font-size: 16px;\n margin: 5px;\n}\n\na {\n color: pink;\n text-decoration: underline;\n}\n\nth,\ntd {\n padding: 4px;\n border: 1px solid white;\n text-align: center;\n}\n\n#game-holder {\n width: 100vw;\n height: 100vh;\n padding: 0;\n margin: 0;\n top: 0;\n left: 0;\n background-color: black;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: -webkit-fill-available;\n}\n\n@media (min-width: 640px) {\n}\n\n@media (min-width: 768px) {\n}\n\n@media (min-width: 1024px) {\n}\n\n@media (min-width: 1280px) {\n}\n\n@media (min-width: 1536px) {\n}\n";
37
+ var css_248z = "/*! @import */\n\n/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */\n\n/*\nDocument\n========\n*/\n\n/**\nUse a better box model (opinionated).\n*/\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n/**\nUse a more readable tab size (opinionated).\n*/\n\n:root {\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n}\n\n/**\n1. Correct the line height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n*/\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/*\nSections\n========\n*/\n\n/**\nRemove the margin in all browsers.\n*/\n\nbody {\n margin: 0;\n}\n\n/**\nImprove consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\n*/\n\nbody {\n font-family:\n\t\tsystem-ui,\n\t\t-apple-system, /* Firefox supports this but not yet `system-ui` */\n\t\t'Segoe UI',\n\t\tRoboto,\n\t\tHelvetica,\n\t\tArial,\n\t\tsans-serif,\n\t\t'Apple Color Emoji',\n\t\t'Segoe UI Emoji';\n}\n\n/*\nGrouping content\n================\n*/\n\n/**\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n}\n\n/*\nText-level semantics\n====================\n*/\n\n/**\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr[title] {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/**\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\n2. Correct the odd 'em' font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family:\n\t\tui-monospace,\n\t\tSFMono-Regular,\n\t\tConsolas,\n\t\t'Liberation Mono',\n\t\tMenlo,\n\t\tmonospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/**\nPrevent 'sub' and 'sup' elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\nTabular data\n============\n*/\n\n/**\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n}\n\n/*\nForms\n=====\n*/\n\n/**\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\nRemove the inheritance of text transform in Edge and Firefox.\n1. Remove the inheritance of text transform in Firefox.\n*/\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\nCorrect the inability to style clickable types in iOS and Safari.\n*/\n\nbutton,\n[type='button'],\n[type='reset'] {\n -webkit-appearance: button;\n}\n\n/**\nRemove the inner border and padding in Firefox.\n*/\n\n/**\nRestore the focus styles unset by the previous rule.\n*/\n\n/**\nRemove the additional ':invalid' styles in Firefox.\nSee: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737\n*/\n\n/**\nRemove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.\n*/\n\nlegend {\n padding: 0;\n}\n\n/**\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n/**\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n/**\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to 'inherit' in Safari.\n*/\n\n/*\nInteractive\n===========\n*/\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/**\n * Manually forked from SUIT CSS Base: https://github.com/suitcss/base\n * A thin layer on top of normalize.css that provides a starting point more\n * suitable for web applications.\n */\n\n/**\n * Removes the default spacing and border for appropriate elements.\n */\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nbutton {\n background-color: transparent;\n background-image: none;\n}\n\n/**\n * Work around a Firefox/IE bug where the transparent `button` background\n * results in a loss of the default `button` focus styles.\n */\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nol,\nul {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/**\n * Tailwind custom reset styles\n */\n\n/**\n * 1. Use the user's configured `sans` font-family (with Tailwind's default\n * sans-serif font stack as a fallback) as a sane default.\n * 2. Use Tailwind's default \"normal\" line-height so the user isn't forced\n * to override it to ensure consistency even when using the default theme.\n */\n\nhtml {\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 1 */\n line-height: 1.5; /* 2 */\n}\n\n/**\n * Inherit font-family and line-height from `html` so users can set them as\n * a class directly on the `html` element.\n */\n\nbody {\n font-family: inherit;\n line-height: inherit;\n}\n\n/**\n * 1. Prevent padding and border from affecting element width.\n *\n * We used to set this in the html element and inherit from\n * the parent element for everything else. This caused issues\n * in shadow-dom-enhanced elements like <details> where the content\n * is wrapped by a div with box-sizing set to `content-box`.\n *\n * https://github.com/mozdevs/cssremedy/issues/4\n *\n *\n * 2. Allow adding a border to an element by just adding a border-width.\n *\n * By default, the way the browser specifies that an element should have no\n * border is by setting it's border-style to `none` in the user-agent\n * stylesheet.\n *\n * In order to easily add borders to elements by just setting the `border-width`\n * property, we change the default border-style for all elements to `solid`, and\n * use border-width to hide them instead. This way our `border` utilities only\n * need to set the `border-width` property instead of the entire `border`\n * shorthand, making our border utilities much more straightforward to compose.\n *\n * https://github.com/tailwindcss/tailwindcss/pull/116\n */\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n/*\n * Ensure horizontal rules are visible by default\n */\n\nhr {\n border-top-width: 1px;\n}\n\n/**\n * Undo the `border-style: none` reset that Normalize applies to images so that\n * our `border-{width}` utilities have the expected effect.\n *\n * The Normalize reset is unnecessary for us since we default the border-width\n * to 0 on all elements.\n *\n * https://github.com/tailwindcss/tailwindcss/issues/362\n */\n\nimg {\n border-style: solid;\n}\n\ntextarea {\n resize: vertical;\n}\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n color: #9ca3af;\n}\n\ninput:-ms-input-placeholder, textarea:-ms-input-placeholder {\n color: #9ca3af;\n}\n\ninput::placeholder,\ntextarea::placeholder {\n color: #9ca3af;\n}\n\nbutton {\n cursor: pointer;\n}\n\ntable {\n border-collapse: collapse;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/**\n * Reset links to optimize for opt-in styling instead of\n * opt-out.\n */\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/**\n * Reset form element properties that are easy to forget to\n * style explicitly so you don't inadvertently introduce\n * styles that deviate from your design system. These styles\n * supplement a partial reset that is already applied by\n * normalize.css.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n padding: 0;\n line-height: inherit;\n color: inherit;\n}\n\n/**\n * Use the configured 'mono' font family for elements that\n * are expected to be rendered with a monospace font, falling\n * back to the system monospace stack if there is no configured\n * 'mono' font family.\n */\n\npre,\ncode,\nkbd,\nsamp {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n/**\n * Make replaced elements `display: block` by default as that's\n * the behavior you want almost all of the time. Inspired by\n * CSS Remedy, with `svg` added as well.\n *\n * https://github.com/mozdevs/cssremedy/issues/14\n */\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n vertical-align: middle;\n}\n\n/**\n * Constrain images and videos to the parent width and preserve\n * their instrinsic aspect ratio.\n *\n * https://github.com/mozdevs/cssremedy/issues/14\n */\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n.container {\n width: 100%;\n}\n\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n\n.bg-gray-800 {\n --tw-bg-opacity: 1;\n background-color: rgba(31, 41, 55, var(--tw-bg-opacity));\n}\n\n.border {\n border-width: 1px;\n}\n\n.flex {\n display: flex;\n}\n\n.table {\n display: table;\n}\n\n.grid {\n display: grid;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-grow {\n flex-grow: 1;\n}\n\n.flex-shrink {\n flex-shrink: 1;\n}\n\n.list-disc {\n list-style-type: disc;\n}\n\n.absolute {\n position: absolute;\n}\n\n.resize {\n resize: both;\n}\n\n* {\n --tw-shadow: 0 0 #0000;\n}\n\n* {\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgba(59, 130, 246, 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n}\n\n.table-auto {\n table-layout: auto;\n}\n\n.line-through {\n text-decoration: line-through;\n}\n\n.w-full {\n width: 100%;\n}\n\n.gap-4 {\n gap: 1rem;\n}\n\n.grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n.transform {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.transition {\n transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n@-webkit-keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@-webkit-keyframes ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n\n@keyframes ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n\n@-webkit-keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n\n@keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n\n@-webkit-keyframes bounce {\n 0%, 100% {\n transform: translateY(-25%);\n -webkit-animation-timing-function: cubic-bezier(0.8,0,1,1);\n animation-timing-function: cubic-bezier(0.8,0,1,1);\n }\n\n 50% {\n transform: none;\n -webkit-animation-timing-function: cubic-bezier(0,0,0.2,1);\n animation-timing-function: cubic-bezier(0,0,0.2,1);\n }\n}\n\n@keyframes bounce {\n 0%, 100% {\n transform: translateY(-25%);\n -webkit-animation-timing-function: cubic-bezier(0.8,0,1,1);\n animation-timing-function: cubic-bezier(0.8,0,1,1);\n }\n\n 50% {\n transform: none;\n -webkit-animation-timing-function: cubic-bezier(0,0,0.2,1);\n animation-timing-function: cubic-bezier(0,0,0.2,1);\n }\n}\n\n.list-item {\n display: inline-block;\n margin-right: 10px;\n}\n\n.list-enter-active,\r\n.list-leave-active {\n transition: all 0.3s ease;\n}\n\n/* .list-move {\r\n transition: transform 0.3s ease;\r\n} */\n\n.list-enter-from,\r\n.list-leave-to {\n opacity: 0;\n transform: translateX(300px);\n}\n\n.notification-item {\n display: inline-block;\n margin-right: 10px;\n}\n\n.notification-enter-active,\r\n.notification-leave-active {\n transition: all 0.3s ease;\n}\n\n/* .notification-move {\r\n transition: transform 0.3s ease;\r\n} */\n\n.notification-enter-from,\r\n.notification-leave-to {\n opacity: 0;\n transform: translateY(-300px);\n}\n\n.fade-enter-active,\r\n.fade-leave-active {\n transition: opacity 0.3s ease;\n}\n\n.fade-enter-from,\r\n.fade-leave-to {\n opacity: 0;\n}\n\n.fade-in-enter-active {\n transition: opacity 0.1s ease;\n}\n\n.fade-in-enter-from {\n opacity: 0;\n}\n\nbody {\n padding: 0;\n margin: 0;\n font-family: Arial, sans-serif;\n}\n\nselect {\n background-color: grey;\n}\n\n.button {\n background-color: #72080f;\n color: white;\n border-radius: 15px;\n padding: 10px;\n font-weight: 800;\n font-size: 16px;\n margin: 10px;\n}\n\na {\n color: pink;\n text-decoration: underline;\n}\n\nth,\r\ntd {\n padding: 4px;\n border: 1px solid white;\n text-align: center;\n}\n\n#game-holder {\n width: 100vw;\n height: 100vh;\n padding: 0;\n margin: 0;\n top: 0;\n left: 0;\n background-color: black;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: -webkit-fill-available;\n}\n\n.title {\n font-size: 30px;\n font-weight: 700;\n text-align: center;\n}\n\n.container {\n padding: 20px;\n}\n\n@media (min-width: 640px) {\n}\n\n@media (min-width: 768px) {\n}\n\n@media (min-width: 1024px) {\n}\n\n@media (min-width: 1280px) {\n}\n\n@media (min-width: 1536px) {\n}\r\n";
38
38
  styleInject(css_248z);
39
39
 
40
40
  const f=vue.ref([]),v=vue.ref(null),m=vue.ref(null),g=vue.ref(null),h=vue.reactive({current:""}),y=[],b=vue.ref(!1),k=vue.readonly(f),w=vue.readonly(v),M=vue.readonly(m),q=vue.readonly(g),x=vue.readonly(h),$=(e=w.value)=>{h.current=e;const t=k.value.findIndex((t=>t.name===e)),n=k.value.map((e=>e.name));for(let a=0;a<n.length;a++){if(a>0&&a<n.length-1){const e=n[a]+"Minus",r=n[a]+"Plus";h[e]=t<=a,h[r]=t>=a;}h[n[a]]=n[a]===e;}},V=(e=M.value)=>{h.orientation=e,h.isLandscape="landscape"===e,h.isPortrait="portrait"===e;},O=(e=q.value||"light")=>{h.theme=e,h.isDark="dark"===e,h.isLight="light"===e;};function j(e,t){if("undefined"==typeof window||!window.matchMedia)return !1;if("undefined"!=typeof window&&!window.matchMedia)return console.error("Vue3 Mq: No MatchMedia support detected in this browser. Responsive breakpoints not available."),!1;{b.value=!0;const n=window.matchMedia(e),a=({matches:e})=>{e&&t();};y.push({mql:n,cb:a});n.addEventListener&&"function"==typeof n.addEventListener?n.addEventListener("change",a):n.addListener(a),a(n);}}var L=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",bootstrap5:{xs:0,sm:576,md:768,lg:992,xl:1200,xxl:1400},bootstrap4:{xs:0,sm:576,md:768,lg:992,xl:1200},bootstrap3:{xs:0,sm:768,md:992,lg:1200},vuetify:{xs:0,sm:600,md:960,lg:1264,xl:1904},tailwind:{xs:0,sm:640,md:768,lg:1024,xl:1280,xxl:1536},devices:{phone:0,tablet:768,laptop:1370,desktop:1906}});const T=e=>{if(!e||"object"!=typeof e)return !1;const t=[];for(let n in e){const a=parseFloat(e[n]);n&&"string"==typeof n?/^[^a-z]/i.test(n)||/[^a-zA-Z0-9_]/.test(n)?console.warn(`Vue3 Mq: "${n}" is an invalid breakpoint key. Breakpoint keys must start with a letter and contain only alphanumeric characters and underscores. Skipping.`):!a&&0!==a||isNaN(a)||a<0?console.warn(`Vue3 Mq: "${n}: ${e[n]}" is not a valid breakpoint. Breakpoints should be a number of zero or above. Skipping.`):t.push({name:n,min:a}):console.warn(`Vue3 Mq: Invalid or missing breakpoint key (${JSON.stringify(n)}). Skipping.`);}t.some((e=>0===e.min))||console.warn("Vue3 Mq: You have not declared a breakpoint with a minimum value of 0. There may be screen sizes to which Vue3Mq does not respond.");return new Set(t.map((e=>e.min))).size<t.length&&console.warn("Vue3 Mq: Your breakpoint configuration contains duplicate values. Behaviour may be unpredictable."),0!==t.length&&t.sort(((e,t)=>e.min-t.min))};function R({breakpoints:e,preset:t}){const n=(e=>{if("string"==typeof e&&L[e])return L[e];{const t=Object.keys(L);return console.error(`Vue3 Mq: "${e}" is not a valid preset. Available options are: ${t.join(", ")}`),!1}})(t),a=T(e);if(!1===n&&!a)throw new TypeError("Vue3 Mq: You must provide a valid preset, or valid breakpoint settings.");var r;r=a||T(n),f.value=r,function(){for(;y.length>0;){const e=y.shift();if(e&&"object"==typeof e){const{mql:t,cb:n}=e;t.addEventListener&&"function"==typeof t.addEventListener?t.removeEventListener("change",n):t.removeListener(n);}}}(),(()=>{const e=Object.keys(h);for(let t of e)delete h[t];$(),V(),O();})();const o=k.value.reduce(((e,t,n,a)=>{const r=`(min-width: ${t.min}px)`,o=n<a.length-1?`(max-width: ${a[n+1].min-1}px)`:null,i=r+(o?" and "+o:"");return Object.assign(e,{[t.name]:i})}),{});for(const i in o){j(o[i],(()=>{$(i);}));}["portrait","landscape"].forEach((e=>{j(`(orientation: ${e})`,(()=>{V(e);}));})),["light","dark"].forEach((e=>{j(`(prefers-color-scheme: ${e})`,(()=>{O(e);}));}));}var N={install:(e,{preset:t="bootstrap5",breakpoints:n,defaultBreakpoint:a,defaultOrientation:r="landscape",defaultTheme:o}={})=>{try{const l=!1===["landscape","portrait"].includes(s=r)?(console.error(`Vue3 Mq: "${s}" is not a valid default orientation. Reverting to unset value.`),null):s,u=((e=null)=>!1===["dark","light"].includes(e)&&null!==e?(console.error(`Vue3 Mq: "${e}" is not a valid default theme. Reverting to unset value.`),null):e)(o);i=a,v.value=i,(e=>{m.value=e;})(l),(e=>{g.value=e;})(u),e.provide("mq",x),e.provide("updateBreakpoints",R),R({breakpoints:n,preset:t});}catch(l){console.error(l);}var i,s;}};
@@ -243,7 +243,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
243
243
  ], 4))
244
244
  }
245
245
 
246
- var css_248z$1 = ".dialog-title {\n font-size: 20px;\n font-weight: bold;\n}\n\n.dialog-text {\n font-size: 16px;\n}\n\n.dialog-box {\n /* border-radius: 10px; */\n /* border: 1px solid #a8a8a8; */\n color: white;\n /* background-color: #2e2e2e; */\n padding: 10px;\n padding-left: 2em;\n margin-bottom: 10px;\n}\n\n.dialog-choice {\n color: orange;\n}\n\n.dialog-choice:hover {\n color: white;\n cursor: pointer;\n}\n\n.buttons-container {\n width: 100%;\n padding: 10px;\n display: flex;\n justify-content: space-evenly;\n align-items: stretch;\n box-sizing: border-box;\n}\n\n.interact-button {\n height: 50px;\n background-color: #72080f;\n color: white;\n border: 1px solid black;\n font-weight: bold;\n font-size: 24px;\n text-align: center;\n flex-grow: 2;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n\n.interact-button:not(:last-child) {\n margin-right: 10px;\n}\n";
246
+ var css_248z$1 = ".dialog-title {\n font-size: 20px;\n font-weight: bold;\n}\n\n.dialog-text {\n font-size: 16px;\n}\n\n.dialog-box {\n /* border-radius: 10px; */\n /* border: 1px solid #a8a8a8; */\n color: white;\n /* background-color: #2e2e2e; */\n padding: 10px;\n padding-left: 2em;\n margin-bottom: 10px;\n}\n\n.dialog-choice {\n color: orange;\n}\n\n.dialog-choice:hover {\n color: white;\n cursor: pointer;\n}\n\n.buttons-container {\n width: 100%;\n padding: 10px;\n display: flex;\n justify-content: space-evenly;\n align-items: stretch;\n box-sizing: border-box;\n}\n\n.interact-button {\n height: 50px;\n background-color: #72080f;\n color: white;\n border: 1px solid black;\n font-weight: bold;\n font-size: 24px;\n text-align: center;\n flex-grow: 2;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n\n.interact-button:not(:last-child) {\n margin-right: 10px;\n}\r\n";
247
247
  styleInject(css_248z$1);
248
248
 
249
249
  script.render = render;
@@ -307,7 +307,7 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
307
307
  ], 4))
308
308
  }
309
309
 
310
- var css_248z$2 = ".dialog-picture {\n position: absolute;\n width: 80px;\n height: 80px;\n border: 2px solid white;\n border-radius: 10px;\n background-color: grey;\n z-index: 99;\n}\n\n.dialog-picture img {\n width: 100%;\n height: 100%;\n}\n";
310
+ var css_248z$2 = ".dialog-picture {\n position: absolute;\n width: 80px;\n height: 80px;\n border: 2px solid white;\n border-radius: 10px;\n background-color: grey;\n z-index: 99;\n}\n\n.dialog-picture img {\n width: 100%;\n height: 100%;\n}\r\n";
311
311
  styleInject(css_248z$2);
312
312
 
313
313
  script$1.render = render$1;
@@ -364,7 +364,7 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
364
364
  vue.renderSlot(_ctx.$slots, "footer", {}, () => [
365
365
  _hoisted_9,
366
366
  vue.createElementVNode("button", {
367
- class: "modal-default-button",
367
+ class: "modal-default-button button",
368
368
  onClick: _cache[0] || (_cache[0] = $event => (_ctx.$emit('close')))
369
369
  }, " Close ")
370
370
  ])
@@ -377,7 +377,7 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
377
377
  }))
378
378
  }
379
379
 
380
- var css_248z$3 = ".modal-mask {\n position: fixed;\n z-index: 9998;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n display: table;\n transition: opacity 0.3s ease;\n}\n\n.modal-wrapper {\n display: table-cell;\n vertical-align: middle;\n}\n\n.modal-container {\n min-width: 300px;\n max-width: 90vw;\n max-height: 75vh;\n overflow-y: auto;\n margin: 0px auto;\n padding: 20px 30px;\n border-radius: 2px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.33);\n transition: all 0.3s ease;\n font-family: Helvetica, Arial, sans-serif;\n}\n\n.modal-header h3 {\n margin-top: 0;\n color: #42b983;\n}\n\n.modal-body {\n margin: 20px 0;\n}\n\n.modal-default-button {\n float: right;\n}\n\n/*\n * The following styles are auto-applied to elements with\n * transition=\"modal\" when their visibility is toggled\n * by Vue.js.\n *\n * You can easily play with the modal transition by editing\n * these styles.\n */\n\n.modal-enter {\n opacity: 0;\n}\n\n.modal-leave-active {\n opacity: 0;\n}\n\n.modal-enter .modal-container,\n.modal-leave-active .modal-container {\n transform: scale(1.1);\n}\n";
380
+ var css_248z$3 = ".modal-mask {\n position: fixed;\n z-index: 9998;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n display: table;\n transition: opacity 0.3s ease;\n}\n\n.modal-wrapper {\n display: table-cell;\n vertical-align: middle;\n}\n\n.modal-container {\n min-width: 300px;\n max-width: 90vw;\n max-height: 75vh;\n overflow-y: auto;\n margin: 0px auto;\n padding: 20px 30px;\n border-radius: 2px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.33);\n transition: all 0.3s ease;\n font-family: Helvetica, Arial, sans-serif;\n}\n\n.modal-header h3 {\n margin-top: 0;\n color: #42b983;\n}\n\n.modal-body {\n margin: 20px 0;\n}\n\n.modal-default-button {\n float: right;\n}\n\n/*\r\n * The following styles are auto-applied to elements with\r\n * transition=\"modal\" when their visibility is toggled\r\n * by Vue.js.\r\n *\r\n * You can easily play with the modal transition by editing\r\n * these styles.\r\n */\n\n.modal-enter {\n opacity: 0;\n}\n\n.modal-leave-active {\n opacity: 0;\n}\n\n.modal-enter .modal-container,\r\n.modal-leave-active .modal-container {\n transform: scale(1.1);\n}\r\n";
381
381
  styleInject(css_248z$3);
382
382
 
383
383
  script$2.render = render$2;
@@ -479,26 +479,27 @@ var script$3 = vue.defineComponent({
479
479
  });
480
480
 
481
481
  const _hoisted_1$3 = { class: "debug-menu" };
482
- const _hoisted_2$2 = /*#__PURE__*/vue.createElementVNode("h3", null, "Error(s)", -1);
482
+ const _hoisted_2$2 = /*#__PURE__*/vue.createElementVNode("h3", { class: "title" }, "Error(s)", -1);
483
483
  const _hoisted_3$2 = /*#__PURE__*/vue.createTextVNode(" There are errors in your dialogue scripts. Open the developer console for more details. ");
484
484
  const _hoisted_4$2 = ["innerHTML"];
485
- const _hoisted_5$2 = /*#__PURE__*/vue.createElementVNode("h3", null, "Debug Menu!", -1);
486
- const _hoisted_6$2 = /*#__PURE__*/vue.createTextVNode(" Hello this is the debug menu. ");
487
- const _hoisted_7$2 = /*#__PURE__*/vue.createElementVNode("option", {
485
+ const _hoisted_5$2 = /*#__PURE__*/vue.createElementVNode("h3", { class: "title" }, "Debug Menu!", -1);
486
+ const _hoisted_6$2 = { class: "container" };
487
+ const _hoisted_7$2 = /*#__PURE__*/vue.createTextVNode(" Hello this is the debug menu. ");
488
+ const _hoisted_8$1 = /*#__PURE__*/vue.createElementVNode("option", {
488
489
  selected: "",
489
490
  disabled: ""
490
491
  }, "Jump to a label", -1);
491
- const _hoisted_8$1 = ["value"];
492
- const _hoisted_9$1 = { class: "grid grid-cols-3 gap-4" };
493
- const _hoisted_10 = /*#__PURE__*/vue.createElementVNode("h2", null, "Skills", -1);
494
- const _hoisted_11 = { class: "table-auto" };
495
- const _hoisted_12 = /*#__PURE__*/vue.createElementVNode("tr", null, [
492
+ const _hoisted_9$1 = ["value"];
493
+ const _hoisted_10 = { class: "grid grid-cols-3 gap-4" };
494
+ const _hoisted_11 = /*#__PURE__*/vue.createElementVNode("h2", null, "Skills", -1);
495
+ const _hoisted_12 = { class: "table-auto" };
496
+ const _hoisted_13 = /*#__PURE__*/vue.createElementVNode("tr", null, [
496
497
  /*#__PURE__*/vue.createElementVNode("th", null, "Skill"),
497
498
  /*#__PURE__*/vue.createElementVNode("th", null, "Level")
498
499
  ], -1);
499
- const _hoisted_13 = /*#__PURE__*/vue.createElementVNode("h2", null, "Skill Checks", -1);
500
- const _hoisted_14 = { class: "table-auto" };
501
- const _hoisted_15 = /*#__PURE__*/vue.createElementVNode("thead", null, [
500
+ const _hoisted_14 = /*#__PURE__*/vue.createElementVNode("h2", null, "Skill Checks", -1);
501
+ const _hoisted_15 = { class: "table-auto" };
502
+ const _hoisted_16 = /*#__PURE__*/vue.createElementVNode("thead", null, [
502
503
  /*#__PURE__*/vue.createElementVNode("tr", null, [
503
504
  /*#__PURE__*/vue.createElementVNode("th", null, "Skill Check"),
504
505
  /*#__PURE__*/vue.createElementVNode("th", null, "Available"),
@@ -512,7 +513,7 @@ function render$3(_ctx, _cache, $props, $setup, $data, $options) {
512
513
  return (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [
513
514
  vue.createElementVNode("button", {
514
515
  onClick: _cache[0] || (_cache[0] = (...args) => (_ctx.open && _ctx.open(...args))),
515
- class: "debug-button"
516
+ class: "button debug-button"
516
517
  }, "Debug Menu"),
517
518
  (_ctx.errors.length > 0)
518
519
  ? (vue.openBlock(), vue.createBlock(_component_modal, {
@@ -546,49 +547,53 @@ function render$3(_ctx, _cache, $props, $setup, $data, $options) {
546
547
  _hoisted_5$2
547
548
  ]),
548
549
  body: vue.withCtx(() => [
549
- _hoisted_6$2,
550
- vue.createElementVNode("select", {
551
- name: "label-selector",
552
- onChange: _cache[1] || (_cache[1] = $event => (_ctx.labelSelected($event)))
553
- }, [
550
+ vue.createElementVNode("div", _hoisted_6$2, [
554
551
  _hoisted_7$2,
555
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.labels, (label) => {
556
- return (vue.openBlock(), vue.createElementBlock("option", {
557
- value: label,
558
- key: label
559
- }, vue.toDisplayString(label), 9, _hoisted_8$1))
560
- }), 128))
561
- ], 32),
562
- vue.createElementVNode("div", _hoisted_9$1, [
563
- vue.createElementVNode("button", {
564
- onClick: _cache[2] || (_cache[2] = (...args) => (_ctx.wordCount && _ctx.wordCount(...args)))
565
- }, "Word Count"),
566
- vue.createElementVNode("button", {
567
- onClick: _cache[3] || (_cache[3] = (...args) => (_ctx.save && _ctx.save(...args)))
568
- }, "Save Game")
569
- ]),
570
- vue.createElementVNode("h3", null, "Play time: " + vue.toDisplayString(_ctx.getPlayTimeString()), 1),
571
- _hoisted_10,
572
- vue.createElementVNode("table", _hoisted_11, [
573
- _hoisted_12,
574
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.skills, (skill, key) => {
575
- return (vue.openBlock(), vue.createElementBlock("tr", { key: key }, [
576
- vue.createElementVNode("td", null, vue.toDisplayString(key), 1),
577
- vue.createElementVNode("td", null, vue.toDisplayString(skill.level), 1)
578
- ]))
579
- }), 128))
580
- ]),
581
- _hoisted_13,
582
- vue.createElementVNode("table", _hoisted_14, [
583
- _hoisted_15,
584
- vue.createElementVNode("tbody", null, [
585
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.skillChecks, (check, key) => {
552
+ vue.createElementVNode("select", {
553
+ name: "label-selector",
554
+ onChange: _cache[1] || (_cache[1] = $event => (_ctx.labelSelected($event)))
555
+ }, [
556
+ _hoisted_8$1,
557
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.labels, (label) => {
558
+ return (vue.openBlock(), vue.createElementBlock("option", {
559
+ value: label,
560
+ key: label
561
+ }, vue.toDisplayString(label), 9, _hoisted_9$1))
562
+ }), 128))
563
+ ], 32),
564
+ vue.createElementVNode("div", _hoisted_10, [
565
+ vue.createElementVNode("button", {
566
+ onClick: _cache[2] || (_cache[2] = (...args) => (_ctx.wordCount && _ctx.wordCount(...args))),
567
+ class: "button"
568
+ }, "Word Count"),
569
+ vue.createElementVNode("button", {
570
+ onClick: _cache[3] || (_cache[3] = (...args) => (_ctx.save && _ctx.save(...args))),
571
+ class: "button"
572
+ }, "Save Game")
573
+ ]),
574
+ vue.createElementVNode("h3", null, "Play time: " + vue.toDisplayString(_ctx.getPlayTimeString()), 1),
575
+ _hoisted_11,
576
+ vue.createElementVNode("table", _hoisted_12, [
577
+ _hoisted_13,
578
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.skills, (skill, key) => {
586
579
  return (vue.openBlock(), vue.createElementBlock("tr", { key: key }, [
587
580
  vue.createElementVNode("td", null, vue.toDisplayString(key), 1),
588
- vue.createElementVNode("td", null, vue.toDisplayString(check.available ? '✅' : '❌'), 1),
589
- vue.createElementVNode("td", null, vue.toDisplayString(check.passed ? '✅' : '❌'), 1)
581
+ vue.createElementVNode("td", null, vue.toDisplayString(skill.level), 1)
590
582
  ]))
591
583
  }), 128))
584
+ ]),
585
+ _hoisted_14,
586
+ vue.createElementVNode("table", _hoisted_15, [
587
+ _hoisted_16,
588
+ vue.createElementVNode("tbody", null, [
589
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.skillChecks, (check, key) => {
590
+ return (vue.openBlock(), vue.createElementBlock("tr", { key: key }, [
591
+ vue.createElementVNode("td", null, vue.toDisplayString(key), 1),
592
+ vue.createElementVNode("td", null, vue.toDisplayString(check.available ? '✅' : '❌'), 1),
593
+ vue.createElementVNode("td", null, vue.toDisplayString(check.passed ? '✅' : '❌'), 1)
594
+ ]))
595
+ }), 128))
596
+ ])
592
597
  ])
593
598
  ])
594
599
  ]),
@@ -598,7 +603,7 @@ function render$3(_ctx, _cache, $props, $setup, $data, $options) {
598
603
  ]))
599
604
  }
600
605
 
601
- var css_248z$4 = ".debug-menu {\n z-index: 9999;\n}\n\n.debug-button {\n background-color: #4fc08d;\n position: fixed;\n bottom: 10px;\n right: 10px;\n padding: 2px;\n}\n\n.error-message {\n color: orangered;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n.error-filename {\n color: grey;\n text-decoration: underline;\n}\n";
606
+ var css_248z$4 = ".debug-menu {\n z-index: 9999;\n}\n\n.debug-button {\n background-color: #4fc08d;\n position: fixed;\n bottom: 10px;\n right: 10px;\n padding: 5px;\n}\n\n.error-message {\n color: orangered;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n.error-filename {\n color: grey;\n text-decoration: underline;\n}\r\n";
602
607
  styleInject(css_248z$4);
603
608
 
604
609
  script$3.render = render$3;
@@ -3857,7 +3862,8 @@ var script$4 = vue.defineComponent({
3857
3862
  };
3858
3863
  },
3859
3864
  mounted() {
3860
- howler.Howler.volume(0.5);
3865
+ const volume = howler.Howler.volume();
3866
+ this.$refs.slider.value = volume;
3861
3867
  },
3862
3868
  methods: {
3863
3869
  changeVolume(event) {
@@ -3880,12 +3886,16 @@ var script$4 = vue.defineComponent({
3880
3886
  });
3881
3887
 
3882
3888
  const _hoisted_1$4 = { class: "volume-controls" };
3883
- const _hoisted_2$3 = /*#__PURE__*/vue.createElementVNode("label", { for: "volume" }, "Volume", -1);
3889
+ const _hoisted_2$3 = /*#__PURE__*/vue.createElementVNode("label", {
3890
+ for: "volume",
3891
+ class: "volume-label"
3892
+ }, "Volume:", -1);
3884
3893
 
3885
3894
  function render$4(_ctx, _cache, $props, $setup, $data, $options) {
3886
3895
  return (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
3887
3896
  _hoisted_2$3,
3888
3897
  vue.createElementVNode("input", {
3898
+ ref: "slider",
3889
3899
  class: "volume-slider",
3890
3900
  type: "range",
3891
3901
  id: "volume",
@@ -3895,11 +3905,11 @@ function render$4(_ctx, _cache, $props, $setup, $data, $options) {
3895
3905
  step: "0.1",
3896
3906
  value: "0.5",
3897
3907
  onChange: _cache[0] || (_cache[0] = (...args) => (_ctx.changeVolume && _ctx.changeVolume(...args)))
3898
- }, null, 32)
3908
+ }, null, 544)
3899
3909
  ]))
3900
3910
  }
3901
3911
 
3902
- var css_248z$5 = ".volume-controls {\n color: white;\n font-size: 18px;\n -webkit-text-stroke: 1px black;\n}\n\n.volume-slider {\n width: 50px;\n background-color: blue;\n}\n";
3912
+ var css_248z$5 = ".volume-label {\n margin: 5px 20px;\n}\n\n.volume-controls {\n color: white;\n font-size: 20px;\n display: flex;\n align-items: center;\n}\n\n.volume-slider {\n width: 200px;\n background-color: blue;\n}\r\n";
3903
3913
  styleInject(css_248z$5);
3904
3914
 
3905
3915
  script$4.render = render$4;
@@ -3934,13 +3944,10 @@ const _hoisted_2$4 = { class: "bold" };
3934
3944
  const _hoisted_3$3 = /*#__PURE__*/vue.createTextVNode(": ");
3935
3945
 
3936
3946
  function render$5(_ctx, _cache, $props, $setup, $data, $options) {
3937
- const _component_VolumeControls = vue.resolveComponent("VolumeControls");
3938
-
3939
3947
  return (vue.openBlock(), vue.createElementBlock("div", {
3940
3948
  class: "hud",
3941
3949
  style: vue.normalizeStyle(_ctx.hudStyle)
3942
3950
  }, [
3943
- vue.createVNode(_component_VolumeControls),
3944
3951
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.stats, (value, key) => {
3945
3952
  return (vue.openBlock(), vue.createElementBlock("div", {
3946
3953
  key: key,
@@ -3958,7 +3965,7 @@ function render$5(_ctx, _cache, $props, $setup, $data, $options) {
3958
3965
  ], 4))
3959
3966
  }
3960
3967
 
3961
- var css_248z$6 = ".hud {\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n flex-direction: row-reverse;\n z-index: 3;\n}\n\n.hud-stat {\n border: 1px dotted white;\n background-color: rgba(0, 0, 0, 0.4);\n color: white;\n padding: 5px;\n}\n\n.hud-icon {\n display: inline-block;\n height: 1em;\n}\n";
3968
+ var css_248z$6 = ".hud {\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n flex-direction: row-reverse;\n z-index: 3;\n}\n\n.hud-stat {\n border: 1px dotted white;\n background-color: rgba(0, 0, 0, 0.4);\n color: white;\n padding: 5px;\n}\n\n.hud-icon {\n display: inline-block;\n height: 1em;\n}\r\n";
3962
3969
  styleInject(css_248z$6);
3963
3970
 
3964
3971
  script$5.render = render$5;
@@ -3995,7 +4002,7 @@ function render$6(_ctx, _cache, $props, $setup, $data, $options) {
3995
4002
  ]))
3996
4003
  }
3997
4004
 
3998
- var css_248z$7 = ".loading-bar {\n position: relative;\n width: 40vw;\n height: 10vh;\n border: 1px solid black;\n background-color: lightgrey;\n}\n\n.inner-loading-bar {\n height: 100%;\n background-color: lightgreen;\n color: black;\n}\n\n.loading-text {\n z-index: 99999;\n display: flex;\n align-items: center;\n justify-content: space-around;\n position: absolute;\n width: 100%;\n height: 100%;\n color: black;\n top: 0;\n}\n";
4005
+ var css_248z$7 = ".loading-bar {\n position: relative;\n width: 40vw;\n height: 10vh;\n border: 1px solid black;\n background-color: lightgrey;\n}\n\n.inner-loading-bar {\n height: 100%;\n background-color: lightgreen;\n color: black;\n}\n\n.loading-text {\n z-index: 99999;\n display: flex;\n align-items: center;\n justify-content: space-around;\n position: absolute;\n width: 100%;\n height: 100%;\n color: black;\n top: 0;\n}\r\n";
3999
4006
  styleInject(css_248z$7);
4000
4007
 
4001
4008
  script$6.render = render$6;
@@ -4030,7 +4037,7 @@ function render$7(_ctx, _cache, $props, $setup, $data, $options) {
4030
4037
  }))
4031
4038
  }
4032
4039
 
4033
- var css_248z$8 = ".notifications-holder {\n position: fixed;\n top: 0;\n left: 0;\n padding: 10px;\n display: flex;\n flex-direction: column-reverse;\n align-items: center;\n pointer-events: none;\n}\n\n.notification {\n margin-top: 10px;\n margin-bottom: 10px;\n border-radius: 10px;\n padding: 15px;\n background-color: darkslateblue;\n color: white;\n width: 40vh;\n text-align: center;\n}\n";
4040
+ var css_248z$8 = ".notifications-holder {\n position: fixed;\n top: 0;\n left: 0;\n padding: 10px;\n display: flex;\n flex-direction: column-reverse;\n align-items: center;\n pointer-events: none;\n}\n\n.notification {\n margin-top: 10px;\n margin-bottom: 10px;\n border-radius: 10px;\n padding: 15px;\n background-color: darkslateblue;\n color: white;\n width: 40vh;\n text-align: center;\n}\r\n";
4034
4041
  styleInject(css_248z$8);
4035
4042
 
4036
4043
  script$7.render = render$7;
@@ -4083,16 +4090,20 @@ function addDataHelper(sourceObj, path, value) {
4083
4090
  }
4084
4091
  function getModifiableData(state) {
4085
4092
  return {
4086
- DATA: state.machine.data,
4087
- SKILLS: state.skills,
4088
- BUTTONS: state.buttons,
4093
+ data: state.machine.data,
4094
+ skills: state.skills,
4095
+ buttons: state.buttons,
4089
4096
  };
4090
4097
  }
4091
4098
 
4092
4099
  function processText(store, text) {
4093
4100
  return text.replace(/%{[^}]*}/g, (match) => {
4094
4101
  const key = match.substr(2, match.length - 3);
4095
- const [obj, newKey] = findDataHelper(store.state.machine.data, key);
4102
+ const searchableState = {
4103
+ data: store.state.machine.data,
4104
+ skills: store.state.skills,
4105
+ };
4106
+ const [obj, newKey] = findDataHelper(searchableState, key);
4096
4107
  return obj[newKey];
4097
4108
  });
4098
4109
  }
@@ -4154,6 +4165,7 @@ function loadImage(key, path, resolver, rejecter) {
4154
4165
  }
4155
4166
 
4156
4167
  const audio = {};
4168
+ howler.Howler.volume(0.5);
4157
4169
  async function loadAudioAssets(config) {
4158
4170
  console.log(`Loading audio`);
4159
4171
  const loadingPromises = [];
@@ -4297,8 +4309,87 @@ function debounce(func, waitMilliseconds = 50, options = {}) {
4297
4309
  return debouncedFunction;
4298
4310
  }
4299
4311
 
4300
- console.log('hello app');
4301
4312
  var script$8 = vue.defineComponent({
4313
+ components: {
4314
+ Modal: script$2,
4315
+ VolumeControls: script$4,
4316
+ },
4317
+ props: {},
4318
+ data() {
4319
+ return {
4320
+ menuActive: false,
4321
+ };
4322
+ },
4323
+ mounted() {
4324
+ document.addEventListener('keydown', (event) => {
4325
+ const key = event.key;
4326
+ if (key === 'Escape') {
4327
+ this.toggleMenu();
4328
+ }
4329
+ });
4330
+ },
4331
+ methods: {
4332
+ openMenu() {
4333
+ this.menuActive = true;
4334
+ },
4335
+ closeMenu() {
4336
+ this.menuActive = false;
4337
+ },
4338
+ toggleMenu() {
4339
+ this.menuActive = !this.menuActive;
4340
+ },
4341
+ quit() {
4342
+ window.close();
4343
+ // quit
4344
+ },
4345
+ },
4346
+ computed: {},
4347
+ });
4348
+
4349
+ const _hoisted_1$7 = { class: "menu-container" };
4350
+ const _hoisted_2$6 = /*#__PURE__*/vue.createElementVNode("h3", { class: "title" }, "Menu", -1);
4351
+ const _hoisted_3$4 = { class: "menu-content" };
4352
+
4353
+ function render$8(_ctx, _cache, $props, $setup, $data, $options) {
4354
+ const _component_VolumeControls = vue.resolveComponent("VolumeControls");
4355
+ const _component_modal = vue.resolveComponent("modal");
4356
+
4357
+ return (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
4358
+ vue.createElementVNode("button", {
4359
+ class: "button menu-toggle-button",
4360
+ onClick: _cache[0] || (_cache[0] = (...args) => (_ctx.openMenu && _ctx.openMenu(...args)))
4361
+ }, "Menu"),
4362
+ (_ctx.menuActive)
4363
+ ? (vue.openBlock(), vue.createBlock(_component_modal, {
4364
+ key: 0,
4365
+ class: "menu",
4366
+ onClose: _ctx.closeMenu
4367
+ }, {
4368
+ header: vue.withCtx(() => [
4369
+ _hoisted_2$6
4370
+ ]),
4371
+ body: vue.withCtx(() => [
4372
+ vue.createElementVNode("div", _hoisted_3$4, [
4373
+ vue.createVNode(_component_VolumeControls),
4374
+ vue.createElementVNode("button", {
4375
+ class: "button title quit-button",
4376
+ onClick: _cache[1] || (_cache[1] = (...args) => (_ctx.quit && _ctx.quit(...args)))
4377
+ }, "Quit")
4378
+ ])
4379
+ ]),
4380
+ _: 1
4381
+ }, 8, ["onClose"]))
4382
+ : vue.createCommentVNode("", true)
4383
+ ]))
4384
+ }
4385
+
4386
+ var css_248z$9 = ".menu-content {\n margin: 50px;\n text-align: center;\n}\n\n.menu-toggle-button {\n margin: 0;\n padding: 2px;\n border-radius: 5px;\n}\n\n.quit-button {\n margin: 50px;\n text-align: center;\n}\r\n";
4387
+ styleInject(css_248z$9);
4388
+
4389
+ script$8.render = render$8;
4390
+
4391
+ console.log('hello app');
4392
+ var script$9 = vue.defineComponent({
4302
4393
  $refs: {
4303
4394
  dialogContainer: HTMLInputElement,
4304
4395
  },
@@ -4310,6 +4401,7 @@ var script$8 = vue.defineComponent({
4310
4401
  LoadingBar: script$6,
4311
4402
  NotificationToast: script$7,
4312
4403
  Hud: script$5,
4404
+ Menu: script$8,
4313
4405
  },
4314
4406
  data() {
4315
4407
  return {
@@ -4579,17 +4671,18 @@ var script$8 = vue.defineComponent({
4579
4671
  },
4580
4672
  });
4581
4673
 
4582
- const _hoisted_1$7 = ["width", "height"];
4583
- const _hoisted_2$6 = /*#__PURE__*/vue.createElementVNode("div", { class: "anchor" }, null, -1);
4584
- const _hoisted_3$4 = {
4674
+ const _hoisted_1$8 = ["width", "height"];
4675
+ const _hoisted_2$7 = /*#__PURE__*/vue.createElementVNode("div", { class: "anchor" }, null, -1);
4676
+ const _hoisted_3$5 = {
4585
4677
  key: 1,
4586
4678
  class: "flex flex-col"
4587
4679
  };
4588
4680
  const _hoisted_4$3 = { key: 2 };
4589
4681
 
4590
- function render$8(_ctx, _cache, $props, $setup, $data, $options) {
4682
+ function render$9(_ctx, _cache, $props, $setup, $data, $options) {
4591
4683
  const _component_Hud = vue.resolveComponent("Hud");
4592
4684
  const _component_DialogPicture = vue.resolveComponent("DialogPicture");
4685
+ const _component_Menu = vue.resolveComponent("Menu");
4593
4686
  const _component_DialogBox = vue.resolveComponent("DialogBox");
4594
4687
  const _component_LoadingBar = vue.resolveComponent("LoadingBar");
4595
4688
  const _component_DebugMenu = vue.resolveComponent("DebugMenu");
@@ -4627,7 +4720,7 @@ function render$8(_ctx, _cache, $props, $setup, $data, $options) {
4627
4720
  width: _ctx.layoutWidth,
4628
4721
  height: _ctx.layoutHeight,
4629
4722
  id: "background-canvas"
4630
- }, null, 8, _hoisted_1$7)
4723
+ }, null, 8, _hoisted_1$8)
4631
4724
  ], 4))
4632
4725
  : vue.createCommentVNode("", true),
4633
4726
  (_ctx.dialogPlaying)
@@ -4637,6 +4730,7 @@ function render$8(_ctx, _cache, $props, $setup, $data, $options) {
4637
4730
  ref: "dialog",
4638
4731
  style: vue.normalizeStyle(_ctx.dialogStyle)
4639
4732
  }, [
4733
+ vue.createVNode(_component_Menu, { class: "menu-toggle" }),
4640
4734
  vue.createVNode(vue.TransitionGroup, {
4641
4735
  name: "list",
4642
4736
  tag: "div",
@@ -4654,12 +4748,12 @@ function render$8(_ctx, _cache, $props, $setup, $data, $options) {
4654
4748
  ]),
4655
4749
  _: 1
4656
4750
  }, 8, ["style"]),
4657
- _hoisted_2$6
4751
+ _hoisted_2$7
4658
4752
  ], 4))
4659
4753
  : vue.createCommentVNode("", true)
4660
4754
  ], 4))
4661
4755
  : (_ctx.gameLoaded)
4662
- ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$4, [
4756
+ ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$5, [
4663
4757
  vue.createElementVNode("button", {
4664
4758
  class: "button menu-button start-button override",
4665
4759
  onClick: _cache[0] || (_cache[0] = (...args) => (_ctx.startGame && _ctx.startGame(...args)))
@@ -4685,10 +4779,10 @@ function render$8(_ctx, _cache, $props, $setup, $data, $options) {
4685
4779
  ], 4))
4686
4780
  }
4687
4781
 
4688
- var css_248z$9 = "#app {\n background-color: black;\n width: 100%;\n height: 100%;\n position: absolute;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n color: white;\n box-sizing: border-box;\n overflow: hidden;\n transform-origin: center center;\n}\n\n.game {\n background-color: black;\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n overflow: hidden;\n}\n\n.interact-button {\n height: 50px;\n background-color: #72080f;\n border: 1px solid black;\n font-weight: bold;\n font-size: 20px;\n text-align: center;\n flex-grow: 2;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n\n.interact-button:not(:last-child) {\n margin-right: 10px;\n}\n\n.dialog-container {\n flex-shrink: 2;\n /* padding: 20px; */\n min-height: 100%;\n width: 100%;\n background-color: #171717;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: center;\n overflow-x: hidden;\n}\n\n.dialog {\n overflow-y: auto;\n overflow-x: hidden;\n position: relative;\n}\n\n.dialog * {\n overflow-anchor: none;\n}\n\n.background {\n margin: 0;\n}\n\n#background-canvas {\n height: 100%;\n}\n\n.anchor {\n overflow-anchor: auto;\n height: 1px;\n}\n";
4689
- styleInject(css_248z$9);
4782
+ var css_248z$a = "#app {\n background-color: black;\n width: 100%;\n height: 100%;\n position: absolute;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n color: white;\n box-sizing: border-box;\n overflow: hidden;\n transform-origin: center center;\n}\n\n.game {\n background-color: black;\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n overflow: hidden;\n}\n\n.interact-button {\n height: 50px;\n background-color: #72080f;\n border: 1px solid black;\n font-weight: bold;\n font-size: 20px;\n text-align: center;\n flex-grow: 2;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n\n.interact-button:not(:last-child) {\n margin-right: 10px;\n}\n\n.dialog-container {\n flex-shrink: 2;\n /* padding: 20px; */\n min-height: 100%;\n width: 100%;\n background-color: #171717;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: center;\n overflow-x: hidden;\n}\n\n.dialog {\n overflow-y: auto;\n overflow-x: hidden;\n position: relative;\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n}\n\n.dialog::-webkit-scrollbar {\n display: none; /* webkit */\n}\n\n.dialog * {\n overflow-anchor: none;\n}\n\n.background {\n margin: 0;\n}\n\n#background-canvas {\n height: 100%;\n}\n\n.anchor {\n overflow-anchor: auto;\n height: 1px;\n}\n\n.menu-toggle {\n position: absolute;\n bottom: 0;\n left: 0;\n}\r\n";
4783
+ styleInject(css_248z$a);
4690
4784
 
4691
- script$8.render = render$8;
4785
+ script$9.render = render$9;
4692
4786
 
4693
4787
  function timeout(durationMs) {
4694
4788
  return new Promise((resolve, reject) => {
@@ -4720,6 +4814,8 @@ function processSkillCheck(ctx, skillcheck) {
4720
4814
  skill: skillcheck.skill,
4721
4815
  value: skillcheck.value,
4722
4816
  id: skillcheck.id,
4817
+ success: skillcheck.success.text,
4818
+ failure: skillcheck.failure.text,
4723
4819
  });
4724
4820
  }
4725
4821
  function runSkillCheck(ctx, params) {
@@ -4738,11 +4834,11 @@ function runSkillCheck(ctx, params) {
4738
4834
  }
4739
4835
  if (success) {
4740
4836
  ctx.commit('passSkillCheck', params.id);
4741
- writeText(ctx, `[${skill.name} - Success]`);
4837
+ writeText(ctx, `[${skill.name} - Success] ${params.success || ''}`);
4742
4838
  return true;
4743
4839
  }
4744
4840
  ctx.commit('failSkillCheck', params.id);
4745
- writeText(ctx, `[${skill.name} - Failure]`);
4841
+ writeText(ctx, `[${skill.name} - Failure] ${params.failure || ''}`);
4746
4842
  return false;
4747
4843
  }
4748
4844
  function runConditionCommand(ctx, command) {
@@ -4773,10 +4869,10 @@ function runCondition(ctx, condition) {
4773
4869
  function conditionFunction(ctx, condition) {
4774
4870
  const { state } = ctx;
4775
4871
  const context = {
4776
- DATA: state.machine.data,
4777
- SKILLS: state.skills,
4778
- SKILLCHECKS: state.skillChecks,
4779
- STATS: state.hudStats,
4872
+ data: state.machine.data,
4873
+ skills: state.skills,
4874
+ skillChecks: state.skillChecks,
4875
+ stats: state.hudStats,
4780
4876
  roll: (checkId, skill, value) => {
4781
4877
  const skillCheckState = getSkillCheckState(ctx, checkId);
4782
4878
  if (skillCheckState) {
@@ -4957,9 +5053,10 @@ async function runCommand(context, cmd, choices) {
4957
5053
  }
4958
5054
  catch (err) {
4959
5055
  console.log(state.machine.stack[state.machine.stack.length - 1].label);
4960
- error(commit, `Narrat script runtime error at <span class="error-filename">${cmd.fileName}:${cmd.line + 1}</span>
4961
- <b>${err}</b>
4962
- Script: ${cmd.code}
5056
+ console.error(err);
5057
+ error(commit, `Narrat script runtime error at <span class="error-filename">${cmd.fileName}:${cmd.line + 1}</span>
5058
+ <b>${err}</b>
5059
+ Script: ${cmd.code}
4963
5060
  Label: ${state.machine.stack[state.machine.stack.length - 1].label}`);
4964
5061
  }
4965
5062
  }
@@ -4983,18 +5080,21 @@ async function playerAnswered(context, choiceIndex) {
4983
5080
  const result = processSkillCheck(context, skillcheck);
4984
5081
  const winner = result ? skillcheck.success : skillcheck.failure;
4985
5082
  newBranch = winner.branch;
4986
- playerText = `[${result ? 'SUCCESS' : 'FAILURE'}] – ${winner.text}`;
5083
+ playerText = undefined;
4987
5084
  }
4988
5085
  }
4989
5086
  else {
4990
5087
  newBranch = choice.branch;
4991
5088
  }
4992
- const dialog = {
4993
- speaker: 'player',
4994
- text: playerText,
4995
- interactive: false,
4996
- };
4997
- commit('addDialog', { dialog });
5089
+ if (playerText) {
5090
+ // If the choice involves printing a player dialog, show it
5091
+ const dialog = {
5092
+ speaker: 'player',
5093
+ text: playerText,
5094
+ interactive: false,
5095
+ };
5096
+ commit('addDialog', { dialog });
5097
+ }
4998
5098
  if (newBranch) {
4999
5099
  const newStack = {
5000
5100
  currentIndex: 0,
@@ -5806,10 +5906,10 @@ async function startApp(config, options) {
5806
5906
  mousePos.x = e.clientX;
5807
5907
  mousePos.y = e.clientY;
5808
5908
  });
5809
- console.log('%c Narrat game engine – 0.7.1 - April 26, 2022 12:31:17', 'background: #222; color: #bada55');
5909
+ console.log('%c Narrat game engine – 0.8.2 - May 14, 2022 12:04:03', 'background: #222; color: #bada55');
5810
5910
  const storeSetup = setupStore(options);
5811
5911
  store$1 = storeSetup.store;
5812
- app = vue.createApp(script$8, {
5912
+ app = vue.createApp(script$9, {
5813
5913
  config,
5814
5914
  options,
5815
5915
  });