narrat 2.3.0 → 2.3.1

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.
Files changed (115) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +128 -128
  3. package/dist/app.vue.d.ts +94 -91
  4. package/dist/components/MainMenu.vue.d.ts +12 -12
  5. package/dist/components/{SkillsWindow.vue.d.ts → Skills.vue.d.ts} +22 -22
  6. package/dist/components/StartMenu.vue.d.ts +46 -46
  7. package/dist/components/debug/debug-menu.vue.d.ts +48 -48
  8. package/dist/components/dialog-picture.vue.d.ts +9 -11
  9. package/dist/components/engine-splash/engine-splash.vue.d.ts +54 -54
  10. package/dist/components/game-dialog.vue.d.ts +65 -65
  11. package/dist/components/game-splash/game-splash.vue.d.ts +46 -46
  12. package/dist/components/hud.vue.d.ts +14 -14
  13. package/dist/components/in-game.vue.d.ts +46 -46
  14. package/dist/components/inventory-ui.vue.d.ts +30 -30
  15. package/dist/components/loading-bar.vue.d.ts +10 -10
  16. package/dist/components/menu-buttons.vue.d.ts +26 -54
  17. package/dist/components/notification-toast.vue.d.ts +6 -6
  18. package/dist/components/quests-ui.vue.d.ts +20 -20
  19. package/dist/components/save-slots.vue.d.ts +79 -79
  20. package/dist/components/saves/save-slot.vue.d.ts +108 -108
  21. package/dist/components/screen-layer.vue.d.ts +76 -76
  22. package/dist/components/screens.vue.d.ts +46 -46
  23. package/dist/components/transitions/NarratTransition.vue.d.ts +101 -101
  24. package/dist/components/utils/alert-modal.vue.d.ts +82 -82
  25. package/dist/components/utils/{modal-window.vue.d.ts → modal.vue.d.ts} +18 -18
  26. package/dist/components/utils/yes-no.vue.d.ts +106 -106
  27. package/dist/components/volume-controls.vue.d.ts +18 -18
  28. package/dist/config.d.ts +181 -194
  29. package/dist/constants.d.ts +8 -10
  30. package/dist/defaultConfig.d.ts +2 -2
  31. package/dist/demo/demo.d.ts +1 -1
  32. package/dist/dialog-box.vue.d.ts +41 -41
  33. package/dist/exports/config.d.ts +1 -1
  34. package/dist/exports/display.d.ts +2 -2
  35. package/dist/exports/plugins.d.ts +20 -38
  36. package/dist/favicon.svg +30 -30
  37. package/dist/lib.d.ts +14 -18
  38. package/dist/main.d.ts +6 -7
  39. package/dist/narrat.es.js +8419 -8981
  40. package/dist/narrat.es.js.map +1 -1
  41. package/dist/narrat.umd.js +73 -73
  42. package/dist/narrat.umd.js.map +1 -1
  43. package/dist/plugins/NarratPlugin.d.ts +11 -11
  44. package/dist/stores/audio-store.d.ts +48 -48
  45. package/dist/stores/dialog-store.d.ts +32 -32
  46. package/dist/stores/hud-stats-store.d.ts +22 -22
  47. package/dist/stores/inventory-store.d.ts +37 -37
  48. package/dist/stores/main-store.d.ts +822 -813
  49. package/dist/stores/notification-store.d.ts +15 -15
  50. package/dist/stores/quest-log.d.ts +39 -39
  51. package/dist/stores/rendering-store.d.ts +13 -13
  52. package/dist/stores/screens-store.d.ts +35 -35
  53. package/dist/stores/skills.d.ts +40 -40
  54. package/dist/stores/vm-store.d.ts +180 -180
  55. package/dist/style.css +1 -1
  56. package/dist/types/app-types.d.ts +5 -9
  57. package/dist/types/character-types.d.ts +27 -27
  58. package/dist/types/dialog-box-types.d.ts +11 -11
  59. package/dist/types/game-save.d.ts +36 -36
  60. package/dist/types/parser.d.ts +93 -93
  61. package/dist/types/state.d.ts +3 -3
  62. package/dist/utils/InputsListener.d.ts +9 -9
  63. package/dist/utils/ajax.d.ts +1 -1
  64. package/dist/utils/audio-loader.d.ts +10 -10
  65. package/dist/utils/characters.d.ts +5 -5
  66. package/dist/utils/data-helpers.d.ts +25 -28
  67. package/dist/utils/debounce.d.ts +14 -14
  68. package/dist/utils/error-handling.d.ts +3 -3
  69. package/dist/utils/helpers.d.ts +6 -6
  70. package/dist/utils/images-loader.d.ts +6 -6
  71. package/dist/utils/logger.d.ts +11 -11
  72. package/dist/utils/object-iterators.d.ts +8 -8
  73. package/dist/utils/promises.d.ts +1 -1
  74. package/dist/utils/randomId.d.ts +1 -1
  75. package/dist/utils/save-helpers.d.ts +18 -18
  76. package/dist/utils/skillchecks.d.ts +17 -17
  77. package/dist/utils/string-helpers.d.ts +3 -3
  78. package/dist/utils/time-helpers.d.ts +2 -2
  79. package/dist/utils/transition.d.ts +15 -15
  80. package/dist/utils/type-utils.d.ts +1 -2
  81. package/dist/utils/typed-emitter.d.ts +18 -18
  82. package/dist/vm/commands/arithmetic-commands.d.ts +23 -23
  83. package/dist/vm/commands/audio-commands.d.ts +15 -15
  84. package/dist/vm/commands/choice.d.ts +37 -37
  85. package/dist/vm/commands/clear_dialog.d.ts +2 -2
  86. package/dist/vm/commands/command-helpers.d.ts +3 -3
  87. package/dist/vm/commands/command-plugin.d.ts +43 -43
  88. package/dist/vm/commands/flow-commands.d.ts +24 -24
  89. package/dist/vm/commands/if.d.ts +10 -10
  90. package/dist/vm/commands/index.d.ts +2 -2
  91. package/dist/vm/commands/inventory-commands.d.ts +15 -15
  92. package/dist/vm/commands/logic-command.d.ts +42 -42
  93. package/dist/vm/commands/math-commands.d.ts +30 -30
  94. package/dist/vm/commands/notify.d.ts +6 -6
  95. package/dist/vm/commands/quest-commands.d.ts +30 -30
  96. package/dist/vm/commands/random-commands.d.ts +10 -10
  97. package/dist/vm/commands/screen-commands.d.ts +15 -15
  98. package/dist/vm/commands/set.d.ts +6 -6
  99. package/dist/vm/commands/skill-commands.d.ts +30 -30
  100. package/dist/vm/commands/stats-commands.d.ts +12 -12
  101. package/dist/vm/commands/string-commands.d.ts +9 -9
  102. package/dist/vm/commands/text-field.d.ts +7 -7
  103. package/dist/vm/commands/text.d.ts +14 -14
  104. package/dist/vm/commands/wait.d.ts +4 -4
  105. package/dist/vm/vm-helpers.d.ts +18 -18
  106. package/dist/vm/vm-parser.d.ts +19 -19
  107. package/dist/vm/vm-parser.test.d.ts +1 -1
  108. package/dist/vm/vm.d.ts +18 -21
  109. package/package.json +1 -1
  110. package/dist/exports/components.d.ts +0 -2
  111. package/dist/exports/events.d.ts +0 -1
  112. package/dist/exports/others.d.ts +0 -1
  113. package/dist/exports/stores.d.ts +0 -11
  114. package/dist/menu-buttons/menu-buttons.d.ts +0 -4
  115. package/dist/stores/menu-store.d.ts +0 -36
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- *,:before,:after{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}*{--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}::moz-focus-inner{border-style:none;padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body{margin:0;font-family:inherit;line-height:inherit}b{font-weight:bolder}button,input,select{font-family:inherit;font-size:100%;line-height:1.15;margin:0;padding:0;line-height:inherit;color:inherit}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button{background-color:transparent;background-image:none}button,[role=button]{cursor:pointer}html{-webkit-text-size-adjust:100%;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";line-height:1.5}hr{height:0;color:inherit;border-top-width:1px}h3,h2,hr,p,h1{margin:0}h3,h2,h1{font-size:inherit;font-weight:inherit}img{border-style:solid;display:block;vertical-align:middle;max-width:100%;height:auto}input::placeholder{opacity:1;color:#9ca3af}input::webkit-input-placeholder{opacity:1;color:#9ca3af}input::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder{opacity:1;color:#9ca3af}input::-ms-input-placeholder{opacity:1;color:#9ca3af}table{text-indent:0;border-color:inherit;border-collapse:collapse}ul{list-style:none;margin:0;padding:0}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.block{display:block}.inline{display:inline}.flex{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.grid{display:-ms-grid;display:grid}.hidden{display:none}.flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.items-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.list-disc{list-style-type:disc}.static{position:static}.absolute{position:absolute}.resize{resize:both}.table-auto{table-layout:auto}.line-through{-webkit-text-decoration-line:line-through;text-decoration-line:line-through}.indent{text-indent:1.5rem}.w-full{width:100%}.gap-4{grid-gap:1rem;gap:1rem}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.transform{--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-rotate: 0;--tw-rotate-x: 0;--tw-rotate-y: 0;--tw-rotate-z: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-scale-z: 1;-webkit-transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));-ms-transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));transform:translate(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotate(var(--tw-rotate-z)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z))}.\<transition,.transition,.transition\.duration,.transition\.delay{-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform,filter,backdrop-filter;-o-transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,-webkit-box-shadow,transform,-webkit-transform,filter,backdrop-filter;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);-o-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;-o-transition-duration:.15s;transition-duration:.15s}.duration{-webkit-transition-duration:.15s;-o-transition-duration:.15s;transition-duration:.15s}:root{--font-family: "Helvetica", sans-serif, "Arial", "sans-serif";--bg-color: #131720;--text-color: #d9e1f2;--primary: hsl(255, 30%, 55%);--focus: hsl(210, 90%, 50%);--secondary: #42b983;--border-color: hsla(0, 0%, 100%, .2);--light-1: hsl(210, 30%, 40%);--light-2: hsl(255, 30%, 50%);--light-background: linear-gradient(to right, var(--light-1), var(--light-2));--shadow-1: hsla(236, 50%, 50%, .3);--shadow-2: hsla(236, 50%, 50%, .4);--hud-background: rgba(0, 0, 0, .4);--hud-text-color: var(--text-color);--notifications-bg: darkslateblue;--skills-text-background: rgba(0, 0, 0, .5);--skills-text-color: var(--text-color);--skills-level-background: rgba(0, 0, 0, .5);--skills-level-color: orange;--skills-xp-bar-height: 40px;--skill-check-name-color: orange;--skill-check-difficulty: orange;--skill-check-success: green;--skill-check-failed: red;--skill-check-color: orange;--dialog-choice-color: orange;--dialog-choice-hover-color: var(--text-color);--inventory-text-background: rgba(0, 0, 0, .5);--inventory-text-color: var(--text-color);--inventory-amount-background: rgba(0, 0, 0, .5);--inventory-amount-color: orange;--quest-title-color: yellow;--completed-quest-title-color: grey;--objective-in-progress-color: white;--objective-completed-color: grey;--loading-bar-inner-bg: var(--light-background);--loading-bar-outer-bg: var(--bg-color)}body{font-family:var(--font-family);padding:0;margin:0;font-family:Arial,sans-serif;background-color:#000}*{font-family:var(--font-family);user-select:none}.list-item{display:inline-block;margin-right:10px}.list-enter-active,.list-leave-active{transition:all .3s ease}.think-command{color:#0ff}#app{background-size:cover}.list-enter-from,.list-leave-to{opacity:0;transform:translate(300px)}.notification-item{display:inline-block;margin-right:10px}.notification-enter-active,.notification-leave-active{transition:all .3s ease}.notification-enter-from,.notification-leave-to{opacity:0;transform:translateY(-300px)}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.fade-in-enter-active{transition:opacity .1s ease}.fade-in-enter-from{opacity:0}.select{background:var(--light-background);padding:10px}.option{background-color:var(--light-2);padding:5px;color:var(--text-color)}.button{background:var(--light-background);color:var(--text-color);box-shadow:.4rem .5rem 2.4rem .2rem var(--shadow-1),inset -2px -4px #0006,inset 2px 2px #fff7;border-radius:10px;padding:10px;font-weight:800;font-size:16px;margin:10px;transition:.2s;box-shadow:inset -2px -4px #0006,inset 2px 2px #fff7}.button.large{border-radius:20px}.menu-button{border-radius:5px}.button.main-menu-button{border-radius:20px}.button:focus,.button:hover{transform:translateY(-.2rem);box-shadow:0 0 1rem .2rem var(--shadow-2),inset -2px -4px #0006,inset 2px 2px #fff7}.disabled{user-select:none;pointer-events:none}.button.disabled{box-shadow:unset;color:gray;background:var(--border-color)}.input{background:var(--light-background);color:var(--text-color);box-shadow:.4rem .4rem 2.4rem .2rem var(--shadow-1);border-radius:100px;padding:10px;font-weight:800;font-size:16px;margin:10px;transition:.2s}.input:focus,.input:hover{transform:translateY(-.2rem);box-shadow:0 0 2.4rem .2rem var(--shadow-2)}a{color:pink;text-decoration:underline}th,td{padding:4px;border:1px solid var(--text-color);text-align:center}#game-holder{width:100vw;height:100vh;padding:0;margin:0;top:0;left:0;background-color:#000;display:flex;align-items:center;justify-content:center;min-height:-webkit-fill-available}.title{font-size:30px;font-weight:700;text-align:center}.container{padding:20px}h1,h2,h3,h4{font-weight:700}h1{font-size:30px}h2{font-size:26px}h3{font-size:24px}hr.solid{border:1px solid var(--text-color);margin-top:30px;margin-bottom:30px}.card-1{box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d;transition:all .3s cubic-bezier(.25,.8,.25,1)}.card-1:hover{box-shadow:0 14px 28px #00000040,0 10px 10px #00000038}.card-2{box-shadow:0 3px 6px #00000029,0 3px 6px #0000003b}.card-3{box-shadow:0 10px 20px #00000030,0 6px 6px #0000003b}.card-4{box-shadow:0 14px 28px #00000040,0 10px 10px #00000038}.card-5{box-shadow:0 19px 38px #0000004d,0 15px 12px #00000038}.dialog-choice{transition:.2s}.dialog-choice:hover{transform:scale(1.05);transform-origin:center}.dialog-choice:not(:hover)>.skill-check-name,.passive-skill-check>.skill-check-name{color:var(--skill-check-name-color)}.dialog-choice:not(:hover)>.skill-check-difficulty,.passive-skill-check>.skill-check-difficulty{color:var(--skill-check-difficulty)}.skill-check-difficulty{font-weight:700}.dialog-choice:not(:hover)>.skill-check-success,.passive-skill-check>.skill-check-success{color:var(--skill-check-success)}.dialog-choice:not(:hover)>.skill-check-failed,.passive-skill-check>.skill-check-failed{color:var(--skill-check-failed)}.dialog-choice:not(:hover)>.skill-check,.passive-skill-check.skill-check{color:var(--skill-check-color)}.narrat-canvas{position:absolute;height:100%;top:0;left:0}#touchTrigger{pointer-events:none}.narrat-transition-fade-enter-active,.narrat-transition-fade-leave-active{transition-property:opacity;transition-timing-function:ease;transition-duration:.3s}.narrat-transition-fade-enter-from,.narrat-transition-fade-leave-to{opacity:0}.narrat-transition-slide-right-enter-active,.narrat-transition-slide-right-leave-active{transition-property:transform;transition-timing-function:ease;transition-duration:.3s}.narrat-transition-slide-right-enter-from{transform:translate(-100%)}.narrat-transition-slide-right-leave-to{transform:translate(100%)}.narrat-transition-slide-left-enter-active,.narrat-transition-slide-left-leave-active{transition-property:transform;transition-timing-function:ease;transition-duration:.3s}.narrat-transition-slide-left-enter-from{transform:translate(100%)}.narrat-transition-slide-left-leave-to{transform:translate(-100%)}.narrat-transition-slide-top-enter-active,.narrat-transition-slide-top-leave-active{transition-property:transform;transition-timing-function:ease;transition-duration:.3s}.narrat-transition-slide-top-enter-from{transform:translateY(100%)}.narrat-transition-slide-top-leave-to{transform:translateY(-100%)}.narrat-transition-slide-bottom-enter-active,.narrat-transition-slide-bottom-leave-active{transition-property:transform;transition-timing-function:ease;transition-duration:.3s}.narrat-transition-slide-bottom-enter-from{transform:translateY(-100%)}.narrat-transition-slide-bottom-leave-to{transform:translateY(100%)}.screens-fade-enter-active,.screens-fade-leave-active{transition:opacity .5s ease}.screens-fade-enter-from,.screens-fade-leave-to{opacity:0}.modal-mask{position:absolute;z-index:9998;top:0;left:0;width:100%;height:100%;background-color:#00000080;transition:opacity .3s ease;display:flex;flex-direction:column;flex-shrink:2 2;align-items:center;justify-content:center}.modal-container{min-width:300px;max-width:90vw;max-height:100%;overflow-y:hidden;margin:10px auto;padding:20px 30px;border-radius:5px;transition:all .3s ease;font-family:Helvetica,Arial,sans-serif;background:linear-gradient(to right,hsl(210,30%,20%),hsl(255,30%,25%));display:flex;flex-direction:column}.modal-header{position:relative}.modal-header h3{flex-shrink:0;margin-top:0;color:var(--secondary)}.modal-body{margin:20px 0;overflow-y:auto;flex-shrink:2}.modal-default-button{float:right}.modal-enter,.modal-leave-active{opacity:0}.modal-enter .modal-container,.modal-leave-active .modal-container{-webkit-transform:scale(1.1);transform:scale(1.1)}.close-button{border:1px solid var(--text-color);border-radius:50px;font-size:30px;font-weight:700;position:absolute;right:-20px;top:-10px;width:50px;height:50px}.close-button:hover{background-color:var(--focus)}.debug-menu{z-index:9999}.debug-button{position:fixed;bottom:10px;right:10px;padding:5px}.error-message{color:#ff4500;margin-top:10px;margin-bottom:10px}.error-filename{color:gray;text-decoration:underline}.debug-menu-container{width:100%}.search-result{border:1px solid var(--text-color);padding:10px;font-weight:700;font-size:20px;width:100}.jump-menu-container{width:80%}.debug-info{position:fixed;background-color:#0009;border:1px dotted var(--text-color);top:0;left:0;padding:5px}.variables-viewer{height:100%}.notifications-holder{position:fixed;top:0;right:0;padding:10px;display:flex;flex-direction:column-reverse;align-items:center;pointer-events:none}.notification{margin-top:10px;margin-bottom:10px;border-radius:10px;padding:15px;background:var(--notifications-bg);width:40vh;text-align:center}.save-slot{background:var(--light-background);border:1px dashed white;width:100%;padding:20px}.save-slot:not(:last-child){margin-bottom:20px}.save-name{font-size:1.2rem;font-weight:700;background-color:var(--bg-color);color:var(--text-color)}.save-modal{width:70%}.saves-container{padding:20px}#game-menu{width:100%;height:100%;padding:20px;background-color:#000}#game-title-container{margin-bottom:80px}#game-title-text{text-align:center;font-size:50px}.menu-button{font-size:25px;margin-bottom:10px}#game-header{position:relative;top:100px}.start-menu-buttons-container{width:400px}.save-modal{width:70%}.saves-container{padding:20px}.dialog-picture{position:absolute;width:80px;height:80px;border:2px solid white;border-radius:10px;background-color:gray;z-index:99}.dialog-picture img{width:100%;height:100%}.dialog-title{font-size:20px;font-weight:700}.dialog-text{font-size:16px}.dialog-box{color:var(--text-color);padding:10px 10px 10px 2em;margin-bottom:10px}.dialog-choice{color:var(--dialog-choice-color)}.dialog-choice:hover{color:var(--dialog-choice-hover-color);cursor:pointer}.buttons-container{width:100%;padding:10px;display:flex;justify-content:space-evenly;align-items:stretch;box-sizing:border-box}.interact-button{cursor:pointer;user-select:none;height:50px;color:var(--text-color);border:1px solid black;font-weight:700;font-size:24px;text-align:center;flex-grow:2;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.dialog-container{flex-shrink:2;min-height:100%;width:100%;background-color:(var(--bg-color));box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;overflow-x:hidden}.dialog{overflow-y:auto;overflow-x:hidden;position:relative;-ms-overflow-style:none;scrollbar-width:none;background:var(--bg-color)}.dialog::-webkit-scrollbar{display:none}.dialog *{overflow-anchor:none}.anchor{overflow-anchor:auto;height:1px}.menu-content{text-align:center}.menu-toggle-button{margin:0;padding:2px;border-radius:5px}.menu-toggle-button:not(:last-child){margin-right:10px}.menu-modal{width:500px}.viewport-layer{background-size:cover;background-repeat:no-repeat;background-position:center;position:absolute;left:0;top:0}.viewport-button{position:absolute;display:flex;justify-content:center;align-items:center;background:var(--light-background);color:#fff;font-size:30px;font-weight:700}.viewport-button.interactable{cursor:pointer;animation:pulse .8s infinite;animation-timing-function:linear}.viewport-button.disabled{pointer-events:none;user-select:none}.viewport-button.greyed{opacity:.3}.viewport-button.hidden{opacity:0;display:none}.transition-holder{position:absolute;top:0;left:0;width:100%;height:100%}.viewport{position:relative}.layer-container{position:absolute;top:0;left:0;width:100%;height:100%}.hud{position:absolute;right:0;top:0;display:flex;flex-direction:row-reverse;z-index:3}.hud-stat{border:1px dotted white;background-color:var(--hud-background);color:var(--hud-text-color);padding:5px}.hud-icon{display:inline-block;height:1em}.hud-text{margin-left:5px}.game{position:absolute;background-color:var(--bg-color);display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;height:100%;box-sizing:border-box;overflow:hidden}.menu-toggle{position:fixed;bottom:0px;right:15%;z-index:2}#loading-bar{position:relative;width:60vw;height:50px;border-radius:50px;background:var(--loading-bar-outer-bg);border:3px solid white}#inner-loading-bar{height:100%;border-radius:50px 0 0 50px;background:var(--loading-bar-inner-bg)}#loading-text{z-index:99999;display:flex;align-items:center;justify-content:space-around;position:absolute;width:100%;height:100%;top:0}@keyframes animate-logo{0%{transform:perspective(10000px) rotateY(0) rotateX(0) scale(.8)}50%{transform:perspective(10000px) rotateY(180deg) rotateX(-10deg) scale(1)}to{transform:perspective(10000px) rotateY(360deg) rotateX(0) scale(.8)}}#engine-splash-header{position:absolute;width:50%;perspective:300px;transition-property:opacity}#engine-splash-header.invisible{opacity:0}#engine-splash-screen{position:absolute;width:100%;height:100%;background-color:#000}#engine-splash-logo{width:300px;height:300px;margin:50px;transform-style:preserve-3d;animation:animate-logo infinite 10s;animation-timing-function:linear}#game-splash-title{font-size:70px;text-align:center;margin-bottom:40px}#game-splash-screen{width:100%;height:100%;position:absolute;background-color:#000}.splash-start-button{padding:10px 20px;font-size:35px}#app{background-color:var(--bg-color);width:100%;height:100%;position:absolute;display:flex;flex-direction:row;align-items:center;justify-content:center;color:var(--text-color);box-sizing:border-box;overflow:hidden;transform-origin:center center}.interact-button{height:50px;border:1px solid black;font-weight:700;font-size:20px;text-align:center;flex-grow:2;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.interact-button:not(:last-child){margin-right:10px}.volume-label{font-size:20px;font-weight:700;width:180px;text-align:right;margin-right:20px}.volume-controls{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--light-background);border:1px dashed white;padding:20px;margin:20px 0}.volume-control{width:100%;font-size:25px;display:flex;align-items:center;justify-content:space-between;margin:0 20px}.volume-slider{flex-grow:2;background-color:#00f}.quit-button{margin:20px;text-align:center}.main-menu-modal{width:60%}.inventory-modal{width:800px;min-height:50%}.inventory-container{display:grid;grid-auto-rows:auto;grid-template-columns:repeat(3,1fr);grid-gap:20px 20px}.item-display{width:200px;height:300px;position:relative;background-repeat:no-repeat;background-size:contain}.item-title{position:absolute;bottom:0px;text-align:center;width:100%;color:var(--inventory-text-color);background:var(--inventory-text-background)}.item-amount{position:absolute;top:0;right:0;font-weight:700;font-size:25px;color:var(--inventory-amount-color);width:40px;height:40px;background-color:var(--inventory-amount-background)}.item-description-container{justify-content:space-between;align-items:stretch}.item-left{border:1px dashed white;flex-direction:column;padding:10px;justify-content:center}.item-right{border:1px dashed white;flex-direction:column;flex-grow:2;align-items:baseline;padding:10px}.quests-modal{width:100%;min-height:50%}.quest-header{display:flex;flex-direction:row;align-items:center}.quest-title{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.quest-completed{color:var(--completed-quest-title-color)}.quest-in-progress{color:var(--quest-title-color)}.quest-state{font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.quest-description{font-size:1.1rem;text-align:justify;font-style:italic;margin-bottom:.5rem}.quest-objectives-container{margin-left:10px}.quest-objective-completed{color:var(--objective-completed-color);text-decoration:line-through}.quest-objective-in-progress{color:var(--objective-in-progress-color)}.quest-objective-description{font-size:1rem;margin-bottom:.5rem}.skills-modal{width:800px}.skills-container{display:grid;grid-auto-rows:auto;grid-template-columns:repeat(3,1fr);grid-gap:20px 20px}.skill-display{width:200px;height:300px;position:relative;background-size:cover}.skill-title{position:absolute;bottom:0px;text-align:center;width:100%;color:var(--skills-text-color);background:var(--skills-text-background)}.skill-level{position:absolute;top:0;right:0;font-weight:700;font-size:25px;color:var(--skills-level-color);width:var(--skills-xp-bar-height);height:var(--skills-xp-bar-height);background-color:var(--skills-level-background)}.skill-description-container{justify-content:space-between;align-items:stretch}.skill-left{flex-direction:column;border:1px dashed white;padding:10px;justify-content:center}.skill-right{border:1px dashed white;flex-direction:column;align-items:baseline;flex-grow:2}.skill-xp-container{position:absolute;top:0;left:0;height:var(--skills-xp-bar-height);width:calc(100% - var(--skills-xp-bar-height));background-color:#00000080}.skill-xp-bar{position:absolute;top:0;left:0;width:50%;height:100%;background-color:#0000fa80}.skill-xp-text{z-index:2}
1
+ *,:before,:after{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}*{--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}::moz-focus-inner{border-style:none;padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body{margin:0;font-family:inherit;line-height:inherit}b{font-weight:bolder}button,input,select{font-family:inherit;font-size:100%;line-height:1.15;margin:0;padding:0;line-height:inherit;color:inherit}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button{background-color:transparent;background-image:none}button,[role=button]{cursor:pointer}html{-webkit-text-size-adjust:100%;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";line-height:1.5}hr{height:0;color:inherit;border-top-width:1px}h3,h2,hr,p,h1{margin:0}h3,h2,h1{font-size:inherit;font-weight:inherit}img{border-style:solid;display:block;vertical-align:middle;max-width:100%;height:auto}input::placeholder{opacity:1;color:#9ca3af}input::webkit-input-placeholder{opacity:1;color:#9ca3af}input::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder{opacity:1;color:#9ca3af}input::-ms-input-placeholder{opacity:1;color:#9ca3af}table{text-indent:0;border-color:inherit;border-collapse:collapse}ul{list-style:none;margin:0;padding:0}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.block{display:block}.inline{display:inline}.flex{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.grid{display:-ms-grid;display:grid}.hidden{display:none}.flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.items-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.list-disc{list-style-type:disc}.static{position:static}.absolute{position:absolute}.resize{resize:both}.table-auto{table-layout:auto}.line-through{-webkit-text-decoration-line:line-through;text-decoration-line:line-through}.indent{text-indent:1.5rem}.w-full{width:100%}.gap-4{grid-gap:1rem;gap:1rem}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.transform{--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-rotate: 0;--tw-rotate-x: 0;--tw-rotate-y: 0;--tw-rotate-z: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-scale-z: 1;-webkit-transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));-ms-transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));transform:translate(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotate(var(--tw-rotate-z)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z))}.\<transition,.transition,.transition\.duration,.transition\.delay{-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform,filter,backdrop-filter;-o-transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,-webkit-box-shadow,transform,-webkit-transform,filter,backdrop-filter;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);-o-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;-o-transition-duration:.15s;transition-duration:.15s}.duration{-webkit-transition-duration:.15s;-o-transition-duration:.15s;transition-duration:.15s}:root{--font-family: "Helvetica", sans-serif, "Arial", "sans-serif";--bg-color: #131720;--text-color: #d9e1f2;--primary: hsl(255, 30%, 55%);--focus: hsl(210, 90%, 50%);--secondary: #42b983;--border-color: hsla(0, 0%, 100%, .2);--light-1: hsl(210, 30%, 40%);--light-2: hsl(255, 30%, 50%);--light-background: linear-gradient(to right, var(--light-1), var(--light-2));--shadow-1: hsla(236, 50%, 50%, .3);--shadow-2: hsla(236, 50%, 50%, .4);--hud-background: rgba(0, 0, 0, .4);--hud-text-color: var(--text-color);--notifications-bg: darkslateblue;--skills-text-background: rgba(0, 0, 0, .5);--skills-text-color: var(--text-color);--skills-level-background: rgba(0, 0, 0, .5);--skills-level-color: orange;--skills-xp-bar-height: 40px;--skill-check-name-color: orange;--skill-check-difficulty: orange;--skill-check-success: green;--skill-check-failed: red;--skill-check-color: orange;--dialog-choice-color: orange;--dialog-choice-hover-color: var(--text-color);--inventory-text-background: rgba(0, 0, 0, .5);--inventory-text-color: var(--text-color);--inventory-amount-background: rgba(0, 0, 0, .5);--inventory-amount-color: orange;--quest-title-color: yellow;--completed-quest-title-color: grey;--objective-in-progress-color: white;--objective-completed-color: grey;--loading-bar-inner-bg: var(--light-background);--loading-bar-outer-bg: var(--bg-color)}body{font-family:var(--font-family);padding:0;margin:0;font-family:Arial,sans-serif;background-color:#000}*{font-family:var(--font-family);user-select:none}.list-item{display:inline-block;margin-right:10px}.list-enter-active,.list-leave-active{transition:all .3s ease}.think-command{color:#0ff}#app{background-size:cover}.list-enter-from,.list-leave-to{opacity:0;transform:translate(300px)}.notification-item{display:inline-block;margin-right:10px}.notification-enter-active,.notification-leave-active{transition:all .3s ease}.notification-enter-from,.notification-leave-to{opacity:0;transform:translateY(-300px)}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.fade-in-enter-active{transition:opacity .1s ease}.fade-in-enter-from{opacity:0}.select{background:var(--light-background);padding:10px}.option{background-color:var(--light-2);padding:5px;color:var(--text-color)}.button{background:var(--light-background);color:var(--text-color);box-shadow:.4rem .5rem 2.4rem .2rem var(--shadow-1),inset -2px -4px #0006,inset 2px 2px #fff7;border-radius:10px;padding:10px;font-weight:800;font-size:16px;margin:10px;transition:.2s;box-shadow:inset -2px -4px #0006,inset 2px 2px #fff7}.button.large{border-radius:20px}.menu-button{border-radius:5px}.button.main-menu-button{border-radius:20px}.button:focus,.button:hover{transform:translateY(-.2rem);box-shadow:0 0 1rem .2rem var(--shadow-2),inset -2px -4px #0006,inset 2px 2px #fff7}.disabled{user-select:none;pointer-events:none}.button.disabled{box-shadow:unset;color:gray;background:var(--border-color)}.input{background:var(--light-background);color:var(--text-color);box-shadow:.4rem .4rem 2.4rem .2rem var(--shadow-1);border-radius:100px;padding:10px;font-weight:800;font-size:16px;margin:10px;transition:.2s}.input:focus,.input:hover{transform:translateY(-.2rem);box-shadow:0 0 2.4rem .2rem var(--shadow-2)}a{color:pink;text-decoration:underline}th,td{padding:4px;border:1px solid var(--text-color);text-align:center}#game-holder{width:100vw;height:100vh;padding:0;margin:0;top:0;left:0;background-color:#000;display:flex;align-items:center;justify-content:center;min-height:-webkit-fill-available}.title{font-size:30px;font-weight:700;text-align:center}.container{padding:20px}h1,h2,h3,h4{font-weight:700}h1{font-size:30px}h2{font-size:26px}h3{font-size:24px}hr.solid{border:1px solid var(--text-color);margin-top:30px;margin-bottom:30px}.card-1{box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d;transition:all .3s cubic-bezier(.25,.8,.25,1)}.card-1:hover{box-shadow:0 14px 28px #00000040,0 10px 10px #00000038}.card-2{box-shadow:0 3px 6px #00000029,0 3px 6px #0000003b}.card-3{box-shadow:0 10px 20px #00000030,0 6px 6px #0000003b}.card-4{box-shadow:0 14px 28px #00000040,0 10px 10px #00000038}.card-5{box-shadow:0 19px 38px #0000004d,0 15px 12px #00000038}.dialog-choice{transition:.2s}.dialog-choice:hover{transform:scale(1.05);transform-origin:center}.dialog-choice:not(:hover)>.skill-check-name,.passive-skill-check>.skill-check-name{color:var(--skill-check-name-color)}.dialog-choice:not(:hover)>.skill-check-difficulty,.passive-skill-check>.skill-check-difficulty{color:var(--skill-check-difficulty)}.skill-check-difficulty{font-weight:700}.dialog-choice:not(:hover)>.skill-check-success,.passive-skill-check>.skill-check-success{color:var(--skill-check-success)}.dialog-choice:not(:hover)>.skill-check-failed,.passive-skill-check>.skill-check-failed{color:var(--skill-check-failed)}.dialog-choice:not(:hover)>.skill-check,.passive-skill-check.skill-check{color:var(--skill-check-color)}.narrat-canvas{position:absolute;height:100%;top:0;left:0}#touchTrigger{pointer-events:none}.narrat-transition-fade-enter-active,.narrat-transition-fade-leave-active{transition-property:opacity;transition-timing-function:ease;transition-duration:.3s}.narrat-transition-fade-enter-from,.narrat-transition-fade-leave-to{opacity:0}.narrat-transition-slide-right-enter-active,.narrat-transition-slide-right-leave-active{transition-property:transform;transition-timing-function:ease;transition-duration:.3s}.narrat-transition-slide-right-enter-from{transform:translate(-100%)}.narrat-transition-slide-right-leave-to{transform:translate(100%)}.screens-fade-enter-active,.screens-fade-leave-active{transition:opacity .5s ease}.screens-fade-enter-from,.screens-fade-leave-to{opacity:0}.modal-mask{position:absolute;z-index:9998;top:0;left:0;width:100%;height:100%;background-color:#00000080;transition:opacity .3s ease;display:flex;flex-direction:column;flex-shrink:2 2;align-items:center;justify-content:center}.modal-container{min-width:300px;max-width:90vw;max-height:100%;overflow-y:hidden;margin:10px auto;padding:20px 30px;border-radius:5px;transition:all .3s ease;font-family:Helvetica,Arial,sans-serif;background:linear-gradient(to right,hsl(210,30%,20%),hsl(255,30%,25%));display:flex;flex-direction:column}.modal-header{position:relative}.modal-header h3{flex-shrink:0;margin-top:0;color:var(--secondary)}.modal-body{margin:20px 0;overflow-y:auto;flex-shrink:2}.modal-default-button{float:right}.modal-enter,.modal-leave-active{opacity:0}.modal-enter .modal-container,.modal-leave-active .modal-container{-webkit-transform:scale(1.1);transform:scale(1.1)}.close-button{border:1px solid var(--text-color);border-radius:50px;font-size:30px;font-weight:700;position:absolute;right:-20px;top:-10px;width:50px;height:50px}.close-button:hover{background-color:var(--focus)}.debug-menu{z-index:9999}.debug-button{position:fixed;bottom:10px;right:10px;padding:5px}.error-message{color:#ff4500;margin-top:10px;margin-bottom:10px}.error-filename{color:gray;text-decoration:underline}.debug-menu-container{width:100%}.search-result{border:1px solid var(--text-color);padding:10px;font-weight:700;font-size:20px;width:100}.jump-menu-container{width:80%}.debug-info{position:fixed;background-color:#0009;border:1px dotted var(--text-color);top:0;left:0;padding:5px}.variables-viewer{height:100%}.notifications-holder{position:fixed;top:0;right:0;padding:10px;display:flex;flex-direction:column-reverse;align-items:center;pointer-events:none}.notification{margin-top:10px;margin-bottom:10px;border-radius:10px;padding:15px;background:var(--notifications-bg);width:40vh;text-align:center}.save-slot{background:var(--light-background);border:1px dashed white;width:100%;padding:20px}.save-slot:not(:last-child){margin-bottom:20px}.save-name{font-size:1.2rem;font-weight:700;background-color:var(--bg-color);color:var(--text-color)}.save-modal{width:70%}.saves-container{padding:20px}#game-menu{width:100%;height:100%;padding:20px;background-color:#000}#game-title-container{margin-bottom:80px}#game-title-text{text-align:center;font-size:50px}.menu-button{font-size:25px;margin-bottom:10px}#game-header{position:relative;top:100px}.start-menu-buttons-container{width:400px}.save-modal{width:70%}.saves-container{padding:20px}.inventory-modal{width:800px;min-height:50%}.inventory-container{display:grid;grid-auto-rows:auto;grid-template-columns:repeat(3,1fr);grid-gap:20px 20px}.item-display{width:200px;height:300px;position:relative;background-repeat:no-repeat;background-size:contain}.item-title{position:absolute;bottom:0px;text-align:center;width:100%;color:var(--inventory-text-color);background:var(--inventory-text-background)}.item-amount{position:absolute;top:0;right:0;font-weight:700;font-size:25px;color:var(--inventory-amount-color);width:40px;height:40px;background-color:var(--inventory-amount-background)}.item-description-container{justify-content:space-between;align-items:stretch}.item-left{border:1px dashed white;flex-direction:column;padding:10px;justify-content:center}.item-right{border:1px dashed white;flex-direction:column;flex-grow:2;align-items:baseline;padding:10px}.dialog-picture{position:absolute;width:80px;height:80px;border:2px solid white;border-radius:10px;background-color:gray;z-index:99}.dialog-picture img{width:100%;height:100%}.dialog-title{font-size:20px;font-weight:700}.dialog-text{font-size:16px}.dialog-box{color:var(--text-color);padding:10px 10px 10px 2em;margin-bottom:10px}.dialog-choice{color:var(--dialog-choice-color)}.dialog-choice:hover{color:var(--dialog-choice-hover-color);cursor:pointer}.buttons-container{width:100%;padding:10px;display:flex;justify-content:space-evenly;align-items:stretch;box-sizing:border-box}.interact-button{cursor:pointer;user-select:none;height:50px;color:var(--text-color);border:1px solid black;font-weight:700;font-size:24px;text-align:center;flex-grow:2;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.dialog-container{flex-shrink:2;min-height:100%;width:100%;background-color:(var(--bg-color));box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;overflow-x:hidden}.dialog{overflow-y:auto;overflow-x:hidden;position:relative;-ms-overflow-style:none;scrollbar-width:none;background:var(--bg-color)}.dialog::-webkit-scrollbar{display:none}.dialog *{overflow-anchor:none}.anchor{overflow-anchor:auto;height:1px}.quests-modal{width:100%;min-height:50%}.quest-header{display:flex;flex-direction:row;align-items:center}.quest-title{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.quest-completed{color:var(--completed-quest-title-color)}.quest-in-progress{color:var(--quest-title-color)}.quest-state{font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.quest-description{font-size:1.1rem;text-align:justify;font-style:italic;margin-bottom:.5rem}.quest-objectives-container{margin-left:10px}.quest-objective-completed{color:var(--objective-completed-color);text-decoration:line-through}.quest-objective-in-progress{color:var(--objective-in-progress-color)}.quest-objective-description{font-size:1rem;margin-bottom:.5rem}.menu-content{text-align:center}.menu-toggle-button{margin:0;padding:2px;border-radius:5px}.menu-toggle-button:not(:last-child){margin-right:10px}.menu-modal{width:500px}.viewport-layer{background-size:cover;background-repeat:no-repeat;background-position:center;position:absolute;left:0;top:0}.viewport-button{position:absolute;display:flex;justify-content:center;align-items:center}.viewport-button.interactable{cursor:pointer}.viewport-button.disabled{pointer-events:none;user-select:none}.viewport-button.greyed{opacity:.3}.viewport-button.hidden{opacity:0;display:none}.transition-holder{position:absolute;top:0;left:0;width:100%;height:100%}.viewport{position:relative}.layer-container{position:absolute;top:0;left:0;width:100%;height:100%}.skills-modal{width:800px}.skills-container{display:grid;grid-auto-rows:auto;grid-template-columns:repeat(3,1fr);grid-gap:20px 20px}.skill-display{width:200px;height:300px;position:relative;background-size:cover}.skill-title{position:absolute;bottom:0px;text-align:center;width:100%;color:var(--skills-text-color);background:var(--skills-text-background)}.skill-level{position:absolute;top:0;right:0;font-weight:700;font-size:25px;color:var(--skills-level-color);width:var(--skills-xp-bar-height);height:var(--skills-xp-bar-height);background-color:var(--skills-level-background)}.skill-description-container{justify-content:space-between;align-items:stretch}.skill-left{flex-direction:column;border:1px dashed white;padding:10px;justify-content:center}.skill-right{border:1px dashed white;flex-direction:column;align-items:baseline;flex-grow:2}.skill-xp-container{position:absolute;top:0;left:0;height:var(--skills-xp-bar-height);width:calc(100% - var(--skills-xp-bar-height));background-color:#00000080}.skill-xp-bar{position:absolute;top:0;left:0;width:50%;height:100%;background-color:#0000fa80}.skill-xp-text{z-index:2}.volume-label{font-size:20px;font-weight:700;width:180px;text-align:right;margin-right:20px}.volume-controls{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--light-background);border:1px dashed white;padding:20px;margin:20px 0}.volume-control{width:100%;font-size:25px;display:flex;align-items:center;justify-content:space-between;margin:0 20px}.volume-slider{flex-grow:2;background-color:#00f}.quit-button{margin:20px;text-align:center}.main-menu-modal{width:60%}.hud{position:absolute;right:0;top:0;display:flex;flex-direction:row-reverse;z-index:3}.hud-stat{border:1px dotted white;background-color:var(--hud-background);color:var(--hud-text-color);padding:5px}.hud-icon{display:inline-block;height:1em}.hud-text{margin-left:5px}.game{position:absolute;background-color:var(--bg-color);display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;height:100%;box-sizing:border-box;overflow:hidden}.menu-toggle{position:fixed;bottom:0px;right:15%;z-index:2}#loading-bar{position:relative;width:60vw;height:50px;border-radius:50px;background:var(--loading-bar-outer-bg);border:3px solid white}#inner-loading-bar{height:100%;border-radius:50px 0 0 50px;background:var(--loading-bar-inner-bg)}#loading-text{z-index:99999;display:flex;align-items:center;justify-content:space-around;position:absolute;width:100%;height:100%;top:0}@keyframes animate-logo{0%{transform:perspective(10000px) rotateY(0) rotateX(0) scale(.8)}50%{transform:perspective(10000px) rotateY(180deg) rotateX(-10deg) scale(1)}to{transform:perspective(10000px) rotateY(360deg) rotateX(0) scale(.8)}}#engine-splash-header{position:absolute;width:50%;perspective:300px;transition-property:opacity}#engine-splash-header.invisible{opacity:0}#engine-splash-screen{position:absolute;width:100%;height:100%;background-color:#000}#engine-splash-logo{width:300px;height:300px;margin:50px;transform-style:preserve-3d;animation:animate-logo infinite 10s;animation-timing-function:linear}#game-splash-title{font-size:70px;text-align:center;margin-bottom:40px}#game-splash-screen{width:100%;height:100%;position:absolute;background-color:#000}.splash-start-button{padding:10px 20px;font-size:35px}#app{background-color:var(--bg-color);width:100%;height:100%;position:absolute;display:flex;flex-direction:row;align-items:center;justify-content:center;color:var(--text-color);box-sizing:border-box;overflow:hidden;transform-origin:center center}.interact-button{height:50px;border:1px solid black;font-weight:700;font-size:20px;text-align:center;flex-grow:2;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.interact-button:not(:last-child){margin-right:10px}
@@ -1,9 +1,5 @@
1
- export interface AppOptions {
2
- baseAssetsPath: string;
3
- baseDataPath: string;
4
- charactersPath: string;
5
- configPath: string;
6
- logging: boolean;
7
- debug: boolean;
8
- }
9
- export declare type AppOptionsInput = Partial<AppOptions>;
1
+ export interface GameConfig {
2
+ baseAssetsPath?: string;
3
+ charactersPath: string;
4
+ configPath: string;
5
+ }
@@ -1,27 +1,27 @@
1
- export interface CharactersConfigFile {
2
- config: {
3
- imagesPath: string;
4
- };
5
- characters: {
6
- [key: string]: CharacterData;
7
- };
8
- }
9
- export interface CharacterData {
10
- sprites?: {
11
- [key: string]: string;
12
- };
13
- name: string;
14
- style?: DialogStyle;
15
- }
16
- export interface DialogStyle {
17
- color?: string;
18
- boxCss?: {
19
- [key: string]: any;
20
- };
21
- nameCss?: {
22
- [key: string]: any;
23
- };
24
- textCss?: {
25
- [key: string]: any;
26
- };
27
- }
1
+ export interface CharactersConfigFile {
2
+ config: {
3
+ imagesPath: string;
4
+ };
5
+ characters: {
6
+ [key: string]: CharacterData;
7
+ };
8
+ }
9
+ export interface CharacterData {
10
+ sprites?: {
11
+ [key: string]: string;
12
+ };
13
+ name: string;
14
+ style?: DialogStyle;
15
+ }
16
+ export interface DialogStyle {
17
+ color?: string;
18
+ boxCss?: {
19
+ [key: string]: any;
20
+ };
21
+ nameCss?: {
22
+ [key: string]: any;
23
+ };
24
+ textCss?: {
25
+ [key: string]: any;
26
+ };
27
+ }
@@ -1,11 +1,11 @@
1
- import { DialogChoice } from '../stores/dialog-store';
2
- export interface DialogBoxParameters {
3
- title: string;
4
- text: string;
5
- styleId: string;
6
- cssClass?: string;
7
- choices: DialogChoice[];
8
- textField?: boolean;
9
- old: boolean;
10
- interactive: boolean;
11
- }
1
+ import { DialogChoice } from '../stores/dialog-store';
2
+ export interface DialogBoxParameters {
3
+ title: string;
4
+ text: string;
5
+ styleId: string;
6
+ cssClass?: string;
7
+ choices: DialogChoice[];
8
+ textField?: boolean;
9
+ old: boolean;
10
+ interactive: boolean;
11
+ }
@@ -1,36 +1,36 @@
1
- import { AudioSave } from '../stores/audio-store';
2
- import { DialogSave } from '../stores/dialog-store';
3
- import { HudSave } from '../stores/hud-stats-store';
4
- import { InventorySave } from '../stores/inventory-store';
5
- import { MainSaveData } from '../stores/main-store';
6
- import { QuestLogSave } from '../stores/quest-log';
7
- import { ScreenSave } from '../stores/screens-store';
8
- import { SkillsSave } from '../stores/skills';
9
- import { VMSave } from '../stores/vm-store';
10
- export declare type GameSave = {
11
- version: string;
12
- skills: SkillsSave;
13
- screen: ScreenSave;
14
- main: MainSaveData;
15
- dialog: DialogSave;
16
- vm: VMSave;
17
- audio: AudioSave;
18
- hud: HudSave;
19
- inventory: InventorySave;
20
- quests: QuestLogSave;
21
- metadata: SaveSlotMetadata;
22
- };
23
- export interface SaveSlotMetadata {
24
- saveDate: string;
25
- name: string;
26
- slotType: 'manual' | 'auto';
27
- id: string;
28
- createdCounter: number;
29
- }
30
- export declare type StoredSaveFile = SaveFile | GameSave;
31
- export declare type SaveFile = {
32
- slots: Array<GameSave>;
33
- lastSaveSlot?: string;
34
- slotsCounter: number;
35
- };
36
- export declare function isOldSave(save: StoredSaveFile): save is GameSave;
1
+ import { AudioSave } from '../stores/audio-store';
2
+ import { DialogSave } from '../stores/dialog-store';
3
+ import { HudSave } from '../stores/hud-stats-store';
4
+ import { InventorySave } from '../stores/inventory-store';
5
+ import { MainSaveData } from '../stores/main-store';
6
+ import { QuestLogSave } from '../stores/quest-log';
7
+ import { ScreenSave } from '../stores/screens-store';
8
+ import { SkillsSave } from '../stores/skills';
9
+ import { VMSave } from '../stores/vm-store';
10
+ export declare type GameSave = {
11
+ version: string;
12
+ skills: SkillsSave;
13
+ screen: ScreenSave;
14
+ main: MainSaveData;
15
+ dialog: DialogSave;
16
+ vm: VMSave;
17
+ audio: AudioSave;
18
+ hud: HudSave;
19
+ inventory: InventorySave;
20
+ quests: QuestLogSave;
21
+ metadata: SaveSlotMetadata;
22
+ };
23
+ export interface SaveSlotMetadata {
24
+ saveDate: string;
25
+ name: string;
26
+ slotType: 'manual' | 'auto';
27
+ id: string;
28
+ createdCounter: number;
29
+ }
30
+ export declare type StoredSaveFile = SaveFile | GameSave;
31
+ export declare type SaveFile = {
32
+ slots: Array<GameSave>;
33
+ lastSaveSlot?: string;
34
+ slotsCounter: number;
35
+ };
36
+ export declare function isOldSave(save: StoredSaveFile): save is GameSave;
@@ -1,93 +1,93 @@
1
- export declare namespace Parser {
2
- type Primitive = string | number | boolean | undefined | null;
3
- type Expression = Array<Primitive | Expression>;
4
- interface IfOptions {
5
- condition: string;
6
- success: Branch;
7
- failure?: Branch;
8
- }
9
- interface ChoiceOptions {
10
- prompt: ParsedExpression;
11
- choices: ChoicePrompt[];
12
- }
13
- interface ChoicePrompt {
14
- choice: string;
15
- branch: Branch;
16
- condition?: string;
17
- skillCheck?: SkillCheckOptions;
18
- index: number;
19
- }
20
- interface PlayOptions {
21
- mode: 'sound' | 'music';
22
- audio: string;
23
- }
24
- interface StopOptions {
25
- mode: 'sound' | 'music';
26
- audio?: string;
27
- }
28
- interface SkillCheckOptions {
29
- id: string;
30
- skill: string;
31
- value: number;
32
- hideAfterRoll: boolean;
33
- success: Branch;
34
- failure: Branch;
35
- }
36
- interface JumpOptions {
37
- label: string;
38
- }
39
- interface WaitOptions {
40
- duration: number;
41
- }
42
- interface TextOptions {
43
- text: string;
44
- }
45
- interface SetScreenOption {
46
- screen: string;
47
- }
48
- interface EmptyOptions {
49
- }
50
- type DefaultArg = {
51
- [key: string]: Arg;
52
- };
53
- type CommandOptions<T = DefaultArg> = T;
54
- interface Command<Options = CommandOptions, StaticOptions = {}> {
55
- args: Arg[];
56
- commandType: string;
57
- options: Options;
58
- code: string;
59
- staticOptions: StaticOptions;
60
- operator: string;
61
- line: number;
62
- fileName: string;
63
- finishCommand?: (res: any) => void;
64
- }
65
- type Arg = ParsedExpression | Primitive;
66
- interface ParsedExpression<Options = CommandOptions, StaticOptions = {}> {
67
- code: string;
68
- command: {
69
- commandType: string;
70
- operator: string;
71
- args: Arg[];
72
- options: Options;
73
- staticOptions: StaticOptions;
74
- };
75
- fileName: string;
76
- line: number;
77
- }
78
- type Branch = ParsedExpression[];
79
- interface ParsedScript {
80
- [key: string]: ParsedLabel;
81
- }
82
- interface ParsedLabel {
83
- branch: Parser.Branch;
84
- args?: string[];
85
- }
86
- interface Line {
87
- code: string;
88
- indentation: number;
89
- line: number;
90
- expression: Expression;
91
- branch?: Line[];
92
- }
93
- }
1
+ export declare namespace Parser {
2
+ type Primitive = string | number | boolean | undefined | null;
3
+ type Expression = Array<Primitive | Expression>;
4
+ interface IfOptions {
5
+ condition: string;
6
+ success: Branch;
7
+ failure?: Branch;
8
+ }
9
+ interface ChoiceOptions {
10
+ prompt: ParsedExpression;
11
+ choices: ChoicePrompt[];
12
+ }
13
+ interface ChoicePrompt {
14
+ choice: string;
15
+ branch: Branch;
16
+ condition?: string;
17
+ skillCheck?: SkillCheckOptions;
18
+ index: number;
19
+ }
20
+ interface PlayOptions {
21
+ mode: 'sound' | 'music';
22
+ audio: string;
23
+ }
24
+ interface StopOptions {
25
+ mode: 'sound' | 'music';
26
+ audio?: string;
27
+ }
28
+ interface SkillCheckOptions {
29
+ id: string;
30
+ skill: string;
31
+ value: number;
32
+ hideAfterRoll: boolean;
33
+ success: Branch;
34
+ failure: Branch;
35
+ }
36
+ interface JumpOptions {
37
+ label: string;
38
+ }
39
+ interface WaitOptions {
40
+ duration: number;
41
+ }
42
+ interface TextOptions {
43
+ text: string;
44
+ }
45
+ interface SetScreenOption {
46
+ screen: string;
47
+ }
48
+ interface EmptyOptions {
49
+ }
50
+ type DefaultArg = {
51
+ [key: string]: Arg;
52
+ };
53
+ type CommandOptions<T = DefaultArg> = T;
54
+ interface Command<Options = CommandOptions, StaticOptions = {}> {
55
+ args: Arg[];
56
+ commandType: string;
57
+ options: Options;
58
+ code: string;
59
+ staticOptions: StaticOptions;
60
+ operator: string;
61
+ line: number;
62
+ fileName: string;
63
+ finishCommand?: (res: any) => void;
64
+ }
65
+ type Arg = ParsedExpression | Primitive;
66
+ interface ParsedExpression<Options = CommandOptions, StaticOptions = {}> {
67
+ code: string;
68
+ command: {
69
+ commandType: string;
70
+ operator: string;
71
+ args: Arg[];
72
+ options: Options;
73
+ staticOptions: StaticOptions;
74
+ };
75
+ fileName: string;
76
+ line: number;
77
+ }
78
+ type Branch = ParsedExpression[];
79
+ interface ParsedScript {
80
+ [key: string]: ParsedLabel;
81
+ }
82
+ interface ParsedLabel {
83
+ branch: Parser.Branch;
84
+ args?: string[];
85
+ }
86
+ interface Line {
87
+ code: string;
88
+ indentation: number;
89
+ line: number;
90
+ expression: Expression;
91
+ branch?: Line[];
92
+ }
93
+ }
@@ -1,3 +1,3 @@
1
- export interface Vue {
2
- $mq: 'sm' | 'md' | 'lg';
3
- }
1
+ export interface Vue {
2
+ $mq: 'sm' | 'md' | 'lg';
3
+ }
@@ -1,9 +1,9 @@
1
- import { TypedEmitter } from './typed-emitter';
2
- export interface InputEvents {
3
- keydown: (event: KeyboardEvent) => void;
4
- debouncedKeydown: (event: KeyboardEvent) => void;
5
- }
6
- export declare class InputsListener extends TypedEmitter<InputEvents> {
7
- setup(debug?: boolean): void;
8
- }
9
- export declare const inputEvents: InputsListener;
1
+ import { TypedEmitter } from './typed-emitter';
2
+ export interface InputEvents {
3
+ keydown: (event: KeyboardEvent) => void;
4
+ debouncedKeydown: (event: KeyboardEvent) => void;
5
+ }
6
+ export declare class InputsListener extends TypedEmitter<InputEvents> {
7
+ setup(debug?: boolean): void;
8
+ }
9
+ export declare const inputEvents: InputsListener;
@@ -1 +1 @@
1
- export declare function getFile(url: string): Promise<string>;
1
+ export declare function getFile(url: string): Promise<string>;
@@ -1,10 +1,10 @@
1
- import { Config, MusicConfig, AudioConfig } from '../config';
2
- import { Howl } from 'howler';
3
- export declare const audio: {
4
- [key: string]: Howl;
5
- };
6
- export declare function loadAudioAssets(config: Config): Promise<void[]>;
7
- export declare function audioEvent(event: string): void;
8
- export declare function loadAudio(key: string, config: AudioConfig | MusicConfig): Promise<void>;
9
- export declare function stopHowlerById(musicKey: string, howlerId: number): void;
10
- export declare function getAudio(key: string): Howl | undefined;
1
+ import { Config, MusicConfig, AudioConfig } from '../config';
2
+ import { Howl } from 'howler';
3
+ export declare const audio: {
4
+ [key: string]: Howl;
5
+ };
6
+ export declare function loadAudioAssets(config: Config): Promise<void[]>;
7
+ export declare function audioEvent(event: string): void;
8
+ export declare function loadAudio(key: string, config: AudioConfig | MusicConfig): Promise<void>;
9
+ export declare function stopHowlerById(musicKey: string, howlerId: number): void;
10
+ export declare function getAudio(key: string): Howl | undefined;
@@ -1,5 +1,5 @@
1
- import { CharacterData, CharactersConfigFile, DialogStyle } from '../types/character-types';
2
- export declare function setCharactersConfig(data: CharactersConfigFile): void;
3
- export declare function getCharacterInfo(character: string): CharacterData;
4
- export declare function getCharacterPictureUrl(character: string, pose?: string): string | undefined;
5
- export declare function getCharacterStyle(character?: string): DialogStyle;
1
+ import { CharacterData, CharactersConfigFile, DialogStyle } from '../types/character-types';
2
+ export declare function setCharactersConfig(data: CharactersConfigFile): void;
3
+ export declare function getCharacterInfo(character: string): CharacterData;
4
+ export declare function getCharacterPictureUrl(character: string, pose?: string): string | undefined;
5
+ export declare function getCharacterStyle(character?: string): DialogStyle;
@@ -1,28 +1,25 @@
1
- export declare function findDataHelper<T>(sourceObj: any, path: string): [T, string];
2
- export declare function findDataHelperWithoutAutoCreate<T>(sourceObj: any, path: string): [T, string] | undefined;
3
- export declare function setDataHelper<T>(sourceObj: any, path: string, value: T): void;
4
- export declare function addDataHelper<T>(sourceObj: any, path: string, value: T): void;
5
- export declare function getModifiableDataPinia(): {
6
- data: import("../stores/vm-store").DataState;
7
- skills: import("../stores/skills").SkillsState;
8
- buttons: import("../stores/screens-store").ButtonsState;
9
- items: {
10
- [key: string]: import("../stores/inventory-store").ItemState;
11
- };
12
- quests: {
13
- [key: string]: import("../stores/quest-log").QuestState;
14
- };
15
- stats: import("../stores/hud-stats-store").HudStatsState;
16
- scope: {
17
- [key: string]: any;
18
- };
19
- config: import("../config").Config;
20
- gameOptions: {
21
- baseAssetsPath: string;
22
- baseDataPath: string;
23
- charactersPath: string;
24
- configPath: string;
25
- logging: boolean;
26
- debug: boolean;
27
- };
28
- };
1
+ export declare function findDataHelper<T>(sourceObj: any, path: string): [T, string];
2
+ export declare function findDataHelperWithoutAutoCreate<T>(sourceObj: any, path: string): [T, string] | undefined;
3
+ export declare function setDataHelper<T>(sourceObj: any, path: string, value: T): void;
4
+ export declare function addDataHelper<T>(sourceObj: any, path: string, value: T): void;
5
+ export declare function getModifiableDataPinia(): {
6
+ data: import("../stores/vm-store").DataState;
7
+ skills: import("../stores/skills").SkillsState;
8
+ buttons: import("../stores/screens-store").ButtonsState;
9
+ items: {
10
+ [key: string]: import("../stores/inventory-store").ItemState;
11
+ };
12
+ quests: {
13
+ [key: string]: import("../stores/quest-log").QuestState;
14
+ };
15
+ stats: import("../stores/hud-stats-store").HudStatsState;
16
+ scope: {
17
+ [key: string]: any;
18
+ };
19
+ config: import("../config").Config;
20
+ gameOptions: {
21
+ baseAssetsPath?: string | undefined;
22
+ logging: boolean;
23
+ debug: boolean;
24
+ };
25
+ };
@@ -1,14 +1,14 @@
1
- /**
2
- * A function that emits a side effect.
3
- */
4
- export declare type Procedure = (...args: any[]) => any;
5
- export declare type Options<TT> = {
6
- isImmediate?: boolean;
7
- maxWait?: number;
8
- callback?: (data: TT) => void;
9
- };
10
- export interface DebouncedFunction<F extends Procedure> {
11
- (this: ThisParameterType<F>, ...args: Parameters<F>): Promise<ReturnType<F>>;
12
- cancel: (reason?: any) => void;
13
- }
14
- export declare function debounce<F extends Procedure>(func: F, waitMilliseconds?: number, options?: Options<ReturnType<F>>): DebouncedFunction<F>;
1
+ /**
2
+ * A function that emits a side effect.
3
+ */
4
+ export declare type Procedure = (...args: any[]) => any;
5
+ export declare type Options<TT> = {
6
+ isImmediate?: boolean;
7
+ maxWait?: number;
8
+ callback?: (data: TT) => void;
9
+ };
10
+ export interface DebouncedFunction<F extends Procedure> {
11
+ (this: ThisParameterType<F>, ...args: Parameters<F>): Promise<ReturnType<F>>;
12
+ cancel: (reason?: any) => void;
13
+ }
14
+ export declare function debounce<F extends Procedure>(func: F, waitMilliseconds?: number, options?: Options<ReturnType<F>>): DebouncedFunction<F>;
@@ -1,3 +1,3 @@
1
- import { ParserContext } from '../vm/vm-parser';
2
- export declare function parserError(ctx: ParserContext, line: number, text: string): void;
3
- export declare function error(text: string, ...args: any[]): void;
1
+ import { ParserContext } from '../vm/vm-parser';
2
+ export declare function parserError(ctx: ParserContext, line: number, text: string): void;
3
+ export declare function error(text: string, ...args: any[]): void;
@@ -1,6 +1,6 @@
1
- export declare function aspectRatioFit(screenWidth: number, screenHeight: number, gameWidth: number, gameHeight: number): number;
2
- export declare function screenToCanvas(x: number, y: number, element: HTMLCanvasElement): {
3
- x: number;
4
- y: number;
5
- };
6
- export declare function aabb(ax: number, ay: number, aw: number, ah: number, bx: number, by: number, bw: number, bh: number): boolean;
1
+ export declare function aspectRatioFit(screenWidth: number, screenHeight: number, gameWidth: number, gameHeight: number): number;
2
+ export declare function screenToCanvas(x: number, y: number, element: HTMLCanvasElement): {
3
+ x: number;
4
+ y: number;
5
+ };
6
+ export declare function aabb(ax: number, ay: number, aw: number, ah: number, bx: number, by: number, bw: number, bh: number): boolean;
@@ -1,6 +1,6 @@
1
- import { Config } from '../config';
2
- export declare const images: {
3
- [key: string]: HTMLImageElement;
4
- };
5
- export declare function loadImages(config: Config): Promise<void>;
6
- export declare function loadImage(key: string, path: string, resolver: any, rejecter: any): void;
1
+ import { Config } from '../config';
2
+ export declare const images: {
3
+ [key: string]: HTMLImageElement;
4
+ };
5
+ export declare function loadImages(config: Config): Promise<void>;
6
+ export declare function loadImage(key: string, path: string, resolver: any, rejecter: any): void;