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.esm.js CHANGED
@@ -1,6 +1,6 @@
1
- // Version: 0.7.1 - April 26, 2022 12:31:17
1
+ // Version: 0.8.2 - May 14, 2022 12:04:03
2
2
  import 'es6-promise/auto';
3
- import { ref, reactive, readonly, defineComponent, openBlock, createElementBlock, normalizeStyle, createElementVNode, createCommentVNode, Fragment, renderList, createBlock, Transition, withCtx, renderSlot, createTextVNode, resolveComponent, toDisplayString, createVNode, TransitionGroup, createApp } from 'vue';
3
+ import { ref, reactive, readonly, defineComponent, openBlock, createElementBlock, normalizeStyle, createElementVNode, createCommentVNode, Fragment, renderList, createBlock, Transition, withCtx, renderSlot, createTextVNode, resolveComponent, toDisplayString, TransitionGroup, createVNode, createApp } from 'vue';
4
4
  import { createLogger, createStore } from 'vuex';
5
5
 
6
6
  function styleInject(css, ref) {
@@ -30,7 +30,7 @@ function styleInject(css, ref) {
30
30
  }
31
31
  }
32
32
 
33
- 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";
33
+ 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";
34
34
  styleInject(css_248z);
35
35
 
36
36
  const f=ref([]),v=ref(null),m=ref(null),g=ref(null),h=reactive({current:""}),y=[],b=ref(!1),k=readonly(f),w=readonly(v),M=readonly(m),q=readonly(g),x=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;}};
@@ -239,7 +239,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
239
239
  ], 4))
240
240
  }
241
241
 
242
- 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";
242
+ 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";
243
243
  styleInject(css_248z$1);
244
244
 
245
245
  script.render = render;
@@ -303,7 +303,7 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
303
303
  ], 4))
304
304
  }
305
305
 
306
- 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";
306
+ 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";
307
307
  styleInject(css_248z$2);
308
308
 
309
309
  script$1.render = render$1;
@@ -360,7 +360,7 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
360
360
  renderSlot(_ctx.$slots, "footer", {}, () => [
361
361
  _hoisted_9,
362
362
  createElementVNode("button", {
363
- class: "modal-default-button",
363
+ class: "modal-default-button button",
364
364
  onClick: _cache[0] || (_cache[0] = $event => (_ctx.$emit('close')))
365
365
  }, " Close ")
366
366
  ])
@@ -373,7 +373,7 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) {
373
373
  }))
374
374
  }
375
375
 
376
- 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";
376
+ 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";
377
377
  styleInject(css_248z$3);
378
378
 
379
379
  script$2.render = render$2;
@@ -475,26 +475,27 @@ var script$3 = defineComponent({
475
475
  });
476
476
 
477
477
  const _hoisted_1$3 = { class: "debug-menu" };
478
- const _hoisted_2$2 = /*#__PURE__*/createElementVNode("h3", null, "Error(s)", -1);
478
+ const _hoisted_2$2 = /*#__PURE__*/createElementVNode("h3", { class: "title" }, "Error(s)", -1);
479
479
  const _hoisted_3$2 = /*#__PURE__*/createTextVNode(" There are errors in your dialogue scripts. Open the developer console for more details. ");
480
480
  const _hoisted_4$2 = ["innerHTML"];
481
- const _hoisted_5$2 = /*#__PURE__*/createElementVNode("h3", null, "Debug Menu!", -1);
482
- const _hoisted_6$2 = /*#__PURE__*/createTextVNode(" Hello this is the debug menu. ");
483
- const _hoisted_7$2 = /*#__PURE__*/createElementVNode("option", {
481
+ const _hoisted_5$2 = /*#__PURE__*/createElementVNode("h3", { class: "title" }, "Debug Menu!", -1);
482
+ const _hoisted_6$2 = { class: "container" };
483
+ const _hoisted_7$2 = /*#__PURE__*/createTextVNode(" Hello this is the debug menu. ");
484
+ const _hoisted_8$1 = /*#__PURE__*/createElementVNode("option", {
484
485
  selected: "",
485
486
  disabled: ""
486
487
  }, "Jump to a label", -1);
487
- const _hoisted_8$1 = ["value"];
488
- const _hoisted_9$1 = { class: "grid grid-cols-3 gap-4" };
489
- const _hoisted_10 = /*#__PURE__*/createElementVNode("h2", null, "Skills", -1);
490
- const _hoisted_11 = { class: "table-auto" };
491
- const _hoisted_12 = /*#__PURE__*/createElementVNode("tr", null, [
488
+ const _hoisted_9$1 = ["value"];
489
+ const _hoisted_10 = { class: "grid grid-cols-3 gap-4" };
490
+ const _hoisted_11 = /*#__PURE__*/createElementVNode("h2", null, "Skills", -1);
491
+ const _hoisted_12 = { class: "table-auto" };
492
+ const _hoisted_13 = /*#__PURE__*/createElementVNode("tr", null, [
492
493
  /*#__PURE__*/createElementVNode("th", null, "Skill"),
493
494
  /*#__PURE__*/createElementVNode("th", null, "Level")
494
495
  ], -1);
495
- const _hoisted_13 = /*#__PURE__*/createElementVNode("h2", null, "Skill Checks", -1);
496
- const _hoisted_14 = { class: "table-auto" };
497
- const _hoisted_15 = /*#__PURE__*/createElementVNode("thead", null, [
496
+ const _hoisted_14 = /*#__PURE__*/createElementVNode("h2", null, "Skill Checks", -1);
497
+ const _hoisted_15 = { class: "table-auto" };
498
+ const _hoisted_16 = /*#__PURE__*/createElementVNode("thead", null, [
498
499
  /*#__PURE__*/createElementVNode("tr", null, [
499
500
  /*#__PURE__*/createElementVNode("th", null, "Skill Check"),
500
501
  /*#__PURE__*/createElementVNode("th", null, "Available"),
@@ -508,7 +509,7 @@ function render$3(_ctx, _cache, $props, $setup, $data, $options) {
508
509
  return (openBlock(), createElementBlock("div", _hoisted_1$3, [
509
510
  createElementVNode("button", {
510
511
  onClick: _cache[0] || (_cache[0] = (...args) => (_ctx.open && _ctx.open(...args))),
511
- class: "debug-button"
512
+ class: "button debug-button"
512
513
  }, "Debug Menu"),
513
514
  (_ctx.errors.length > 0)
514
515
  ? (openBlock(), createBlock(_component_modal, {
@@ -542,49 +543,53 @@ function render$3(_ctx, _cache, $props, $setup, $data, $options) {
542
543
  _hoisted_5$2
543
544
  ]),
544
545
  body: withCtx(() => [
545
- _hoisted_6$2,
546
- createElementVNode("select", {
547
- name: "label-selector",
548
- onChange: _cache[1] || (_cache[1] = $event => (_ctx.labelSelected($event)))
549
- }, [
546
+ createElementVNode("div", _hoisted_6$2, [
550
547
  _hoisted_7$2,
551
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.labels, (label) => {
552
- return (openBlock(), createElementBlock("option", {
553
- value: label,
554
- key: label
555
- }, toDisplayString(label), 9, _hoisted_8$1))
556
- }), 128))
557
- ], 32),
558
- createElementVNode("div", _hoisted_9$1, [
559
- createElementVNode("button", {
560
- onClick: _cache[2] || (_cache[2] = (...args) => (_ctx.wordCount && _ctx.wordCount(...args)))
561
- }, "Word Count"),
562
- createElementVNode("button", {
563
- onClick: _cache[3] || (_cache[3] = (...args) => (_ctx.save && _ctx.save(...args)))
564
- }, "Save Game")
565
- ]),
566
- createElementVNode("h3", null, "Play time: " + toDisplayString(_ctx.getPlayTimeString()), 1),
567
- _hoisted_10,
568
- createElementVNode("table", _hoisted_11, [
569
- _hoisted_12,
570
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.skills, (skill, key) => {
571
- return (openBlock(), createElementBlock("tr", { key: key }, [
572
- createElementVNode("td", null, toDisplayString(key), 1),
573
- createElementVNode("td", null, toDisplayString(skill.level), 1)
574
- ]))
575
- }), 128))
576
- ]),
577
- _hoisted_13,
578
- createElementVNode("table", _hoisted_14, [
579
- _hoisted_15,
580
- createElementVNode("tbody", null, [
581
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.skillChecks, (check, key) => {
548
+ createElementVNode("select", {
549
+ name: "label-selector",
550
+ onChange: _cache[1] || (_cache[1] = $event => (_ctx.labelSelected($event)))
551
+ }, [
552
+ _hoisted_8$1,
553
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.labels, (label) => {
554
+ return (openBlock(), createElementBlock("option", {
555
+ value: label,
556
+ key: label
557
+ }, toDisplayString(label), 9, _hoisted_9$1))
558
+ }), 128))
559
+ ], 32),
560
+ createElementVNode("div", _hoisted_10, [
561
+ createElementVNode("button", {
562
+ onClick: _cache[2] || (_cache[2] = (...args) => (_ctx.wordCount && _ctx.wordCount(...args))),
563
+ class: "button"
564
+ }, "Word Count"),
565
+ createElementVNode("button", {
566
+ onClick: _cache[3] || (_cache[3] = (...args) => (_ctx.save && _ctx.save(...args))),
567
+ class: "button"
568
+ }, "Save Game")
569
+ ]),
570
+ createElementVNode("h3", null, "Play time: " + toDisplayString(_ctx.getPlayTimeString()), 1),
571
+ _hoisted_11,
572
+ createElementVNode("table", _hoisted_12, [
573
+ _hoisted_13,
574
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.skills, (skill, key) => {
582
575
  return (openBlock(), createElementBlock("tr", { key: key }, [
583
576
  createElementVNode("td", null, toDisplayString(key), 1),
584
- createElementVNode("td", null, toDisplayString(check.available ? '✅' : '❌'), 1),
585
- createElementVNode("td", null, toDisplayString(check.passed ? '✅' : '❌'), 1)
577
+ createElementVNode("td", null, toDisplayString(skill.level), 1)
586
578
  ]))
587
579
  }), 128))
580
+ ]),
581
+ _hoisted_14,
582
+ createElementVNode("table", _hoisted_15, [
583
+ _hoisted_16,
584
+ createElementVNode("tbody", null, [
585
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.skillChecks, (check, key) => {
586
+ return (openBlock(), createElementBlock("tr", { key: key }, [
587
+ createElementVNode("td", null, toDisplayString(key), 1),
588
+ createElementVNode("td", null, toDisplayString(check.available ? '✅' : '❌'), 1),
589
+ createElementVNode("td", null, toDisplayString(check.passed ? '✅' : '❌'), 1)
590
+ ]))
591
+ }), 128))
592
+ ])
588
593
  ])
589
594
  ])
590
595
  ]),
@@ -594,7 +599,7 @@ function render$3(_ctx, _cache, $props, $setup, $data, $options) {
594
599
  ]))
595
600
  }
596
601
 
597
- 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";
602
+ 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";
598
603
  styleInject(css_248z$4);
599
604
 
600
605
  script$3.render = render$3;
@@ -3853,7 +3858,8 @@ var script$4 = defineComponent({
3853
3858
  };
3854
3859
  },
3855
3860
  mounted() {
3856
- howler.Howler.volume(0.5);
3861
+ const volume = howler.Howler.volume();
3862
+ this.$refs.slider.value = volume;
3857
3863
  },
3858
3864
  methods: {
3859
3865
  changeVolume(event) {
@@ -3876,12 +3882,16 @@ var script$4 = defineComponent({
3876
3882
  });
3877
3883
 
3878
3884
  const _hoisted_1$4 = { class: "volume-controls" };
3879
- const _hoisted_2$3 = /*#__PURE__*/createElementVNode("label", { for: "volume" }, "Volume", -1);
3885
+ const _hoisted_2$3 = /*#__PURE__*/createElementVNode("label", {
3886
+ for: "volume",
3887
+ class: "volume-label"
3888
+ }, "Volume:", -1);
3880
3889
 
3881
3890
  function render$4(_ctx, _cache, $props, $setup, $data, $options) {
3882
3891
  return (openBlock(), createElementBlock("div", _hoisted_1$4, [
3883
3892
  _hoisted_2$3,
3884
3893
  createElementVNode("input", {
3894
+ ref: "slider",
3885
3895
  class: "volume-slider",
3886
3896
  type: "range",
3887
3897
  id: "volume",
@@ -3891,11 +3901,11 @@ function render$4(_ctx, _cache, $props, $setup, $data, $options) {
3891
3901
  step: "0.1",
3892
3902
  value: "0.5",
3893
3903
  onChange: _cache[0] || (_cache[0] = (...args) => (_ctx.changeVolume && _ctx.changeVolume(...args)))
3894
- }, null, 32)
3904
+ }, null, 544)
3895
3905
  ]))
3896
3906
  }
3897
3907
 
3898
- 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";
3908
+ 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";
3899
3909
  styleInject(css_248z$5);
3900
3910
 
3901
3911
  script$4.render = render$4;
@@ -3930,13 +3940,10 @@ const _hoisted_2$4 = { class: "bold" };
3930
3940
  const _hoisted_3$3 = /*#__PURE__*/createTextVNode(": ");
3931
3941
 
3932
3942
  function render$5(_ctx, _cache, $props, $setup, $data, $options) {
3933
- const _component_VolumeControls = resolveComponent("VolumeControls");
3934
-
3935
3943
  return (openBlock(), createElementBlock("div", {
3936
3944
  class: "hud",
3937
3945
  style: normalizeStyle(_ctx.hudStyle)
3938
3946
  }, [
3939
- createVNode(_component_VolumeControls),
3940
3947
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.stats, (value, key) => {
3941
3948
  return (openBlock(), createElementBlock("div", {
3942
3949
  key: key,
@@ -3954,7 +3961,7 @@ function render$5(_ctx, _cache, $props, $setup, $data, $options) {
3954
3961
  ], 4))
3955
3962
  }
3956
3963
 
3957
- 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";
3964
+ 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";
3958
3965
  styleInject(css_248z$6);
3959
3966
 
3960
3967
  script$5.render = render$5;
@@ -3991,7 +3998,7 @@ function render$6(_ctx, _cache, $props, $setup, $data, $options) {
3991
3998
  ]))
3992
3999
  }
3993
4000
 
3994
- 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";
4001
+ 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";
3995
4002
  styleInject(css_248z$7);
3996
4003
 
3997
4004
  script$6.render = render$6;
@@ -4026,7 +4033,7 @@ function render$7(_ctx, _cache, $props, $setup, $data, $options) {
4026
4033
  }))
4027
4034
  }
4028
4035
 
4029
- 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";
4036
+ 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";
4030
4037
  styleInject(css_248z$8);
4031
4038
 
4032
4039
  script$7.render = render$7;
@@ -4079,16 +4086,20 @@ function addDataHelper(sourceObj, path, value) {
4079
4086
  }
4080
4087
  function getModifiableData(state) {
4081
4088
  return {
4082
- DATA: state.machine.data,
4083
- SKILLS: state.skills,
4084
- BUTTONS: state.buttons,
4089
+ data: state.machine.data,
4090
+ skills: state.skills,
4091
+ buttons: state.buttons,
4085
4092
  };
4086
4093
  }
4087
4094
 
4088
4095
  function processText(store, text) {
4089
4096
  return text.replace(/%{[^}]*}/g, (match) => {
4090
4097
  const key = match.substr(2, match.length - 3);
4091
- const [obj, newKey] = findDataHelper(store.state.machine.data, key);
4098
+ const searchableState = {
4099
+ data: store.state.machine.data,
4100
+ skills: store.state.skills,
4101
+ };
4102
+ const [obj, newKey] = findDataHelper(searchableState, key);
4092
4103
  return obj[newKey];
4093
4104
  });
4094
4105
  }
@@ -4150,6 +4161,7 @@ function loadImage(key, path, resolver, rejecter) {
4150
4161
  }
4151
4162
 
4152
4163
  const audio = {};
4164
+ howler.Howler.volume(0.5);
4153
4165
  async function loadAudioAssets(config) {
4154
4166
  console.log(`Loading audio`);
4155
4167
  const loadingPromises = [];
@@ -4293,8 +4305,87 @@ function debounce(func, waitMilliseconds = 50, options = {}) {
4293
4305
  return debouncedFunction;
4294
4306
  }
4295
4307
 
4296
- console.log('hello app');
4297
4308
  var script$8 = defineComponent({
4309
+ components: {
4310
+ Modal: script$2,
4311
+ VolumeControls: script$4,
4312
+ },
4313
+ props: {},
4314
+ data() {
4315
+ return {
4316
+ menuActive: false,
4317
+ };
4318
+ },
4319
+ mounted() {
4320
+ document.addEventListener('keydown', (event) => {
4321
+ const key = event.key;
4322
+ if (key === 'Escape') {
4323
+ this.toggleMenu();
4324
+ }
4325
+ });
4326
+ },
4327
+ methods: {
4328
+ openMenu() {
4329
+ this.menuActive = true;
4330
+ },
4331
+ closeMenu() {
4332
+ this.menuActive = false;
4333
+ },
4334
+ toggleMenu() {
4335
+ this.menuActive = !this.menuActive;
4336
+ },
4337
+ quit() {
4338
+ window.close();
4339
+ // quit
4340
+ },
4341
+ },
4342
+ computed: {},
4343
+ });
4344
+
4345
+ const _hoisted_1$7 = { class: "menu-container" };
4346
+ const _hoisted_2$6 = /*#__PURE__*/createElementVNode("h3", { class: "title" }, "Menu", -1);
4347
+ const _hoisted_3$4 = { class: "menu-content" };
4348
+
4349
+ function render$8(_ctx, _cache, $props, $setup, $data, $options) {
4350
+ const _component_VolumeControls = resolveComponent("VolumeControls");
4351
+ const _component_modal = resolveComponent("modal");
4352
+
4353
+ return (openBlock(), createElementBlock("div", _hoisted_1$7, [
4354
+ createElementVNode("button", {
4355
+ class: "button menu-toggle-button",
4356
+ onClick: _cache[0] || (_cache[0] = (...args) => (_ctx.openMenu && _ctx.openMenu(...args)))
4357
+ }, "Menu"),
4358
+ (_ctx.menuActive)
4359
+ ? (openBlock(), createBlock(_component_modal, {
4360
+ key: 0,
4361
+ class: "menu",
4362
+ onClose: _ctx.closeMenu
4363
+ }, {
4364
+ header: withCtx(() => [
4365
+ _hoisted_2$6
4366
+ ]),
4367
+ body: withCtx(() => [
4368
+ createElementVNode("div", _hoisted_3$4, [
4369
+ createVNode(_component_VolumeControls),
4370
+ createElementVNode("button", {
4371
+ class: "button title quit-button",
4372
+ onClick: _cache[1] || (_cache[1] = (...args) => (_ctx.quit && _ctx.quit(...args)))
4373
+ }, "Quit")
4374
+ ])
4375
+ ]),
4376
+ _: 1
4377
+ }, 8, ["onClose"]))
4378
+ : createCommentVNode("", true)
4379
+ ]))
4380
+ }
4381
+
4382
+ 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";
4383
+ styleInject(css_248z$9);
4384
+
4385
+ script$8.render = render$8;
4386
+
4387
+ console.log('hello app');
4388
+ var script$9 = defineComponent({
4298
4389
  $refs: {
4299
4390
  dialogContainer: HTMLInputElement,
4300
4391
  },
@@ -4306,6 +4397,7 @@ var script$8 = defineComponent({
4306
4397
  LoadingBar: script$6,
4307
4398
  NotificationToast: script$7,
4308
4399
  Hud: script$5,
4400
+ Menu: script$8,
4309
4401
  },
4310
4402
  data() {
4311
4403
  return {
@@ -4575,17 +4667,18 @@ var script$8 = defineComponent({
4575
4667
  },
4576
4668
  });
4577
4669
 
4578
- const _hoisted_1$7 = ["width", "height"];
4579
- const _hoisted_2$6 = /*#__PURE__*/createElementVNode("div", { class: "anchor" }, null, -1);
4580
- const _hoisted_3$4 = {
4670
+ const _hoisted_1$8 = ["width", "height"];
4671
+ const _hoisted_2$7 = /*#__PURE__*/createElementVNode("div", { class: "anchor" }, null, -1);
4672
+ const _hoisted_3$5 = {
4581
4673
  key: 1,
4582
4674
  class: "flex flex-col"
4583
4675
  };
4584
4676
  const _hoisted_4$3 = { key: 2 };
4585
4677
 
4586
- function render$8(_ctx, _cache, $props, $setup, $data, $options) {
4678
+ function render$9(_ctx, _cache, $props, $setup, $data, $options) {
4587
4679
  const _component_Hud = resolveComponent("Hud");
4588
4680
  const _component_DialogPicture = resolveComponent("DialogPicture");
4681
+ const _component_Menu = resolveComponent("Menu");
4589
4682
  const _component_DialogBox = resolveComponent("DialogBox");
4590
4683
  const _component_LoadingBar = resolveComponent("LoadingBar");
4591
4684
  const _component_DebugMenu = resolveComponent("DebugMenu");
@@ -4623,7 +4716,7 @@ function render$8(_ctx, _cache, $props, $setup, $data, $options) {
4623
4716
  width: _ctx.layoutWidth,
4624
4717
  height: _ctx.layoutHeight,
4625
4718
  id: "background-canvas"
4626
- }, null, 8, _hoisted_1$7)
4719
+ }, null, 8, _hoisted_1$8)
4627
4720
  ], 4))
4628
4721
  : createCommentVNode("", true),
4629
4722
  (_ctx.dialogPlaying)
@@ -4633,6 +4726,7 @@ function render$8(_ctx, _cache, $props, $setup, $data, $options) {
4633
4726
  ref: "dialog",
4634
4727
  style: normalizeStyle(_ctx.dialogStyle)
4635
4728
  }, [
4729
+ createVNode(_component_Menu, { class: "menu-toggle" }),
4636
4730
  createVNode(TransitionGroup, {
4637
4731
  name: "list",
4638
4732
  tag: "div",
@@ -4650,12 +4744,12 @@ function render$8(_ctx, _cache, $props, $setup, $data, $options) {
4650
4744
  ]),
4651
4745
  _: 1
4652
4746
  }, 8, ["style"]),
4653
- _hoisted_2$6
4747
+ _hoisted_2$7
4654
4748
  ], 4))
4655
4749
  : createCommentVNode("", true)
4656
4750
  ], 4))
4657
4751
  : (_ctx.gameLoaded)
4658
- ? (openBlock(), createElementBlock("div", _hoisted_3$4, [
4752
+ ? (openBlock(), createElementBlock("div", _hoisted_3$5, [
4659
4753
  createElementVNode("button", {
4660
4754
  class: "button menu-button start-button override",
4661
4755
  onClick: _cache[0] || (_cache[0] = (...args) => (_ctx.startGame && _ctx.startGame(...args)))
@@ -4681,10 +4775,10 @@ function render$8(_ctx, _cache, $props, $setup, $data, $options) {
4681
4775
  ], 4))
4682
4776
  }
4683
4777
 
4684
- 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";
4685
- styleInject(css_248z$9);
4778
+ 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";
4779
+ styleInject(css_248z$a);
4686
4780
 
4687
- script$8.render = render$8;
4781
+ script$9.render = render$9;
4688
4782
 
4689
4783
  function timeout(durationMs) {
4690
4784
  return new Promise((resolve, reject) => {
@@ -4716,6 +4810,8 @@ function processSkillCheck(ctx, skillcheck) {
4716
4810
  skill: skillcheck.skill,
4717
4811
  value: skillcheck.value,
4718
4812
  id: skillcheck.id,
4813
+ success: skillcheck.success.text,
4814
+ failure: skillcheck.failure.text,
4719
4815
  });
4720
4816
  }
4721
4817
  function runSkillCheck(ctx, params) {
@@ -4734,11 +4830,11 @@ function runSkillCheck(ctx, params) {
4734
4830
  }
4735
4831
  if (success) {
4736
4832
  ctx.commit('passSkillCheck', params.id);
4737
- writeText(ctx, `[${skill.name} - Success]`);
4833
+ writeText(ctx, `[${skill.name} - Success] ${params.success || ''}`);
4738
4834
  return true;
4739
4835
  }
4740
4836
  ctx.commit('failSkillCheck', params.id);
4741
- writeText(ctx, `[${skill.name} - Failure]`);
4837
+ writeText(ctx, `[${skill.name} - Failure] ${params.failure || ''}`);
4742
4838
  return false;
4743
4839
  }
4744
4840
  function runConditionCommand(ctx, command) {
@@ -4769,10 +4865,10 @@ function runCondition(ctx, condition) {
4769
4865
  function conditionFunction(ctx, condition) {
4770
4866
  const { state } = ctx;
4771
4867
  const context = {
4772
- DATA: state.machine.data,
4773
- SKILLS: state.skills,
4774
- SKILLCHECKS: state.skillChecks,
4775
- STATS: state.hudStats,
4868
+ data: state.machine.data,
4869
+ skills: state.skills,
4870
+ skillChecks: state.skillChecks,
4871
+ stats: state.hudStats,
4776
4872
  roll: (checkId, skill, value) => {
4777
4873
  const skillCheckState = getSkillCheckState(ctx, checkId);
4778
4874
  if (skillCheckState) {
@@ -4953,9 +5049,10 @@ async function runCommand(context, cmd, choices) {
4953
5049
  }
4954
5050
  catch (err) {
4955
5051
  console.log(state.machine.stack[state.machine.stack.length - 1].label);
4956
- error(commit, `Narrat script runtime error at <span class="error-filename">${cmd.fileName}:${cmd.line + 1}</span>
4957
- <b>${err}</b>
4958
- Script: ${cmd.code}
5052
+ console.error(err);
5053
+ error(commit, `Narrat script runtime error at <span class="error-filename">${cmd.fileName}:${cmd.line + 1}</span>
5054
+ <b>${err}</b>
5055
+ Script: ${cmd.code}
4959
5056
  Label: ${state.machine.stack[state.machine.stack.length - 1].label}`);
4960
5057
  }
4961
5058
  }
@@ -4979,18 +5076,21 @@ async function playerAnswered(context, choiceIndex) {
4979
5076
  const result = processSkillCheck(context, skillcheck);
4980
5077
  const winner = result ? skillcheck.success : skillcheck.failure;
4981
5078
  newBranch = winner.branch;
4982
- playerText = `[${result ? 'SUCCESS' : 'FAILURE'}] – ${winner.text}`;
5079
+ playerText = undefined;
4983
5080
  }
4984
5081
  }
4985
5082
  else {
4986
5083
  newBranch = choice.branch;
4987
5084
  }
4988
- const dialog = {
4989
- speaker: 'player',
4990
- text: playerText,
4991
- interactive: false,
4992
- };
4993
- commit('addDialog', { dialog });
5085
+ if (playerText) {
5086
+ // If the choice involves printing a player dialog, show it
5087
+ const dialog = {
5088
+ speaker: 'player',
5089
+ text: playerText,
5090
+ interactive: false,
5091
+ };
5092
+ commit('addDialog', { dialog });
5093
+ }
4994
5094
  if (newBranch) {
4995
5095
  const newStack = {
4996
5096
  currentIndex: 0,
@@ -5802,10 +5902,10 @@ async function startApp(config, options) {
5802
5902
  mousePos.x = e.clientX;
5803
5903
  mousePos.y = e.clientY;
5804
5904
  });
5805
- console.log('%c Narrat game engine – 0.7.1 - April 26, 2022 12:31:17', 'background: #222; color: #bada55');
5905
+ console.log('%c Narrat game engine – 0.8.2 - May 14, 2022 12:04:03', 'background: #222; color: #bada55');
5806
5906
  const storeSetup = setupStore(options);
5807
5907
  store$1 = storeSetup.store;
5808
- app = createApp(script$8, {
5908
+ app = createApp(script$9, {
5809
5909
  config,
5810
5910
  options,
5811
5911
  });