-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbundle.js
267 lines (221 loc) · 70.1 KB
/
bundle.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "./src/main.ts");
/******/ })
/************************************************************************/
/******/ ({
/***/ "./assets/emotes.png":
/*!***************************!*\
!*** ./assets/emotes.png ***!
\***************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAABQCAYAAAA3ICPMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTUzNkIwQkE0RTc2MTFFQjlDRTVENzdDODAzRTVDMUEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTUzNkIwQjk0RTc2MTFFQjlDRTVENzdDODAzRTVDMUEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzA2OTkyM0Q0RDUzMTFFQkI4OTVBRkUxMTA4OEVDREYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzA2OTkyM0U0RDUzMTFFQkI4OTVBRkUxMTA4OEVDREYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5OhuXiAAAdNUlEQVR42uxd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\");\n\n//# sourceURL=webpack:///./assets/emotes.png?");
/***/ }),
/***/ "./node_modules/css-loader/dist/cjs.js!./src/styles.css":
/*!**************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js!./src/styles.css ***!
\**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _assets_emotes_png__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../assets/emotes.png */ \"./assets/emotes.png\");\n// Imports\n\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_1___default()(_assets_emotes_png__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.i, \"* {\\r\\n box-sizing: border-box;\\r\\n}\\r\\n\\r\\nimg {\\r\\n -webkit-user-drag: none;\\r\\n -khtml-user-drag: none;\\r\\n -moz-user-drag: none;\\r\\n -o-user-drag: none;\\r\\n}\\r\\n\\r\\n#container {\\r\\n -webkit-user-select: none;\\r\\n -khtml-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -o-user-select: none;\\r\\n user-select: none;\\r\\n}\\r\\n\\r\\n#container,\\r\\n#scene {\\r\\n overflow: hidden;\\r\\n width: 900px;\\r\\n height: 600px;\\r\\n}\\r\\n\\r\\n#container {\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n left: 50%;\\r\\n margin-top: -300px;\\r\\n margin-left: -450px;\\r\\n}\\r\\n\\r\\n#bg {\\r\\n position: absolute;\\r\\n z-index: 0;\\r\\n top: 0;\\r\\n left: 0;\\r\\n}\\r\\n\\r\\n#scene {\\r\\n position: relative;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n#bubble {\\r\\n position: absolute;\\r\\n z-index: 2;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n height: 168px;\\r\\n padding: 0 80px;\\r\\n padding-top: 48px;\\r\\n background-color: rgba(0, 0, 0, 0.6);\\r\\n font-family: \\\"Verdana\\\";\\r\\n font-size: 24px;\\r\\n color: white;\\r\\n text-shadow: 0 1px 2px black;\\r\\n}\\r\\n\\r\\n#title {\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 0;\\r\\n height: 40px;\\r\\n line-height: 40px;\\r\\n padding: 0 20px;\\r\\n background-color: black;\\r\\n font-size: 22px;\\r\\n}\\r\\n\\r\\n#title:after {\\r\\n content: \\\"\\\";\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 100%;\\r\\n height: 40px;\\r\\n width: 0;\\r\\n border-style: solid;\\r\\n border-width: 40px 20px 0 0;\\r\\n border-color: black;\\r\\n border-right-color: transparent;\\r\\n}\\r\\n\\r\\n@keyframes Blink {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n }\\r\\n 50% {\\r\\n opacity: 1;\\r\\n }\\r\\n 100% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n#icon {\\r\\n position: absolute;\\r\\n right: 20px;\\r\\n bottom: 20px;\\r\\n border-style: solid;\\r\\n border-width: 8px 0 8px 16px;\\r\\n border-color: transparent;\\r\\n border-left-color: #eee;\\r\\n animation: Blink 2s steps(1) infinite;\\r\\n}\\r\\n\\r\\n.hidden {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.sprite {\\r\\n position: absolute;\\r\\n z-index: 0;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n margin-bottom: -220px;\\r\\n filter: grayscale(50%);\\r\\n transition: all 300ms ease-in-out;\\r\\n}\\r\\n\\r\\n.sprite.active {\\r\\n margin-bottom: -200px;\\r\\n filter: grayscale(0);\\r\\n}\\r\\n\\r\\n.sprite.to-left {\\r\\n left: 40px;\\r\\n}\\r\\n\\r\\n.sprite.to-right {\\r\\n left: auto;\\r\\n right: 40px;\\r\\n}\\r\\n\\r\\n@keyframes Angry {\\r\\n 0% {\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n 50% {\\r\\n transform: rotate(8deg);\\r\\n }\\r\\n 100% {\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes Nervous {\\r\\n from {\\r\\n transform: translateY(-20px);\\r\\n }\\r\\n to {\\r\\n transform: translateY(0);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes Shake {\\r\\n 0% {\\r\\n transform: translateX(2px) translateY(0px);\\r\\n }\\r\\n 25% {\\r\\n transform: translateX(0px) translateY(2px);\\r\\n }\\r\\n 50% {\\r\\n transform: translateX(2px) translateY(2px);\\r\\n }\\r\\n 100% {\\r\\n transform: translateX(0px) translateY(2px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes Sigh {\\r\\n from {\\r\\n opacity: 1;\\r\\n transform: translateX(0px) translateY(0px);\\r\\n }\\r\\n to {\\r\\n opacity: 0;\\r\\n transform: translateX(-20px) translateY(20px);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes What {\\r\\n 0% {\\r\\n opacity: 1;\\r\\n }\\r\\n 25% {\\r\\n opacity: 0;\\r\\n }\\r\\n 50% {\\r\\n opacity: 1;\\r\\n }\\r\\n 100% {\\r\\n opacity: 0;\\r\\n }\\r\\n}\\r\\n\\r\\ndiv[class*=\\\"emote\\\"]:after {\\r\\n content: \\\"\\\";\\r\\n position: absolute;\\r\\n top: 0;\\r\\n right: 0;\\r\\n width: 80px;\\r\\n height: 80px;\\r\\n background-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");\\r\\n}\\r\\n\\r\\n.emote-angry:after,\\r\\n.emote-shake:after {\\r\\n animation: Angry 2s steps(1) infinite;\\r\\n}\\r\\n\\r\\n.emote-nervous:after {\\r\\n animation: Nervous 300ms ease-out 1;\\r\\n background-position: -80px 0;\\r\\n}\\r\\n\\r\\n.emote-shake {\\r\\n animation: Shake 200ms steps(4) infinite;\\r\\n}\\r\\n\\r\\n.emote-sigh:after {\\r\\n opacity: 0;\\r\\n animation: Sigh 1000ms ease-out 1 300ms;\\r\\n background-position: -160px 0;\\r\\n}\\r\\n\\r\\n.emote-what:after {\\r\\n opacity: 0;\\r\\n background-position: -240px 0;\\r\\n animation: What 200ms steps(1) 1 300ms;\\r\\n}\\r\\n\\r\\n/* Lisa Emotes */\\r\\n\\r\\n#lisa.emote-angry:after,\\r\\n#lisa.emote-shake:after {\\r\\n top: 64px;\\r\\n right: 128px;\\r\\n}\\r\\n\\r\\n#lisa.emote-nervous:after {\\r\\n top: 40px;\\r\\n right: 128px;\\r\\n}\\r\\n\\r\\n#lisa.emote-sigh:after {\\r\\n top: 132px;\\r\\n right: 240px;\\r\\n}\\r\\n\\r\\n#lisa.emote-what:after {\\r\\n top: 48px;\\r\\n right: 248px;\\r\\n}\\r\\n\\r\\n@keyframes EnterFromLeft {\\r\\n from {\\r\\n transform: translateX(-100%);\\r\\n left: 0;\\r\\n }\\r\\n to {\\r\\n transform: translateX(0);\\r\\n left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes EnterFromRight {\\r\\n from {\\r\\n right: 0;\\r\\n transform: translateX(100%);\\r\\n }\\r\\n to {\\r\\n right: 40px;\\r\\n transform: translateX(0);\\r\\n }\\r\\n}\\r\\n\\r\\n.sprite.enter.to-left {\\r\\n animation: 300ms ease-out EnterFromLeft;\\r\\n}\\r\\n\\r\\n.sprite.enter.to-right {\\r\\n animation: 300ms ease-out EnterFromRight;\\r\\n}\\r\\n\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack:///./src/styles.css?./node_modules/css-loader/dist/cjs.js");
/***/ }),
/***/ "./node_modules/css-loader/dist/runtime/api.js":
/*!*****************************************************!*\
!*** ./node_modules/css-loader/dist/runtime/api.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\n//# sourceURL=webpack:///./node_modules/css-loader/dist/runtime/api.js?");
/***/ }),
/***/ "./node_modules/css-loader/dist/runtime/getUrl.js":
/*!********************************************************!*\
!*** ./node_modules/css-loader/dist/runtime/getUrl.js ***!
\********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url.default : url;\n\n if (typeof url !== 'string') {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n'), \"\\\"\");\n }\n\n return url;\n};\n\n//# sourceURL=webpack:///./node_modules/css-loader/dist/runtime/getUrl.js?");
/***/ }),
/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
/*!****************************************************************************!*\
!*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
\****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = true ? __webpack_require__.nc : undefined;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n//# sourceURL=webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?");
/***/ }),
/***/ "./src/DOMManager.ts":
/*!***************************!*\
!*** ./src/DOMManager.ts ***!
\***************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar utils_1 = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\r\nvar ResourceManager_1 = __webpack_require__(/*! ./ResourceManager */ \"./src/ResourceManager.ts\");\r\nvar DOMManager = /** @class */ (function () {\r\n function DOMManager() {\r\n if (DOMManager.instance != null) {\r\n throw new TypeError(\"instance already exists\");\r\n }\r\n this.setupDOM();\r\n DOMManager.instance = this;\r\n }\r\n DOMManager.getInstance = function () {\r\n return this.instance;\r\n };\r\n DOMManager.prototype.setupDOM = function () {\r\n this.container = utils_1.createElement(\"container\");\r\n this.bubble = utils_1.createElement(\"bubble\");\r\n this.title = utils_1.createElement(\"title\");\r\n this.text = utils_1.createElement(\"text\");\r\n this.icon = utils_1.createElement(\"icon\");\r\n this.scene = utils_1.createElement(\"scene\");\r\n document.body.appendChild(this.container);\r\n this.container.appendChild(this.scene);\r\n this.container.appendChild(this.bubble);\r\n this.bubble.appendChild(this.title);\r\n this.bubble.appendChild(this.text);\r\n this.bubble.appendChild(this.icon);\r\n this.title.classList.add(\"hidden\");\r\n this.bubble.classList.add(\"hidden\");\r\n };\r\n DOMManager.prototype.setBackground = function (name) {\r\n var previous = document.getElementById(\"bg\");\r\n if (previous != null) {\r\n previous.id = \"\";\r\n previous.parentNode.removeChild(previous);\r\n }\r\n var image = ResourceManager_1.default.getInstance().getBackground(name);\r\n image.id = \"bg\";\r\n this.container.prepend(image);\r\n };\r\n DOMManager.prototype.toggleElement = function (element, value) {\r\n var list = element.classList;\r\n var active = list.contains(\"hidden\");\r\n if (!value && !active) {\r\n list.add(\"hidden\");\r\n }\r\n else if (value && active) {\r\n list.remove(\"hidden\");\r\n }\r\n };\r\n DOMManager.prototype.toggleSpeech = function (value) {\r\n this.toggleElement(this.bubble, value);\r\n };\r\n DOMManager.prototype.toggleIcon = function (value) {\r\n this.toggleElement(this.icon, value);\r\n };\r\n DOMManager.prototype.setText = function (text) {\r\n this.text.innerText = text;\r\n };\r\n DOMManager.prototype.setTitle = function (title) {\r\n this.title.innerText = title;\r\n var list = this.title.classList;\r\n var hidden = list.contains(\"hidden\");\r\n if (title !== \"\" && hidden) {\r\n list.remove(\"hidden\");\r\n }\r\n else if (title === \"\" && !hidden) {\r\n list.add(\"hidden\");\r\n }\r\n };\r\n DOMManager.prototype.insert = function (element) {\r\n this.scene.appendChild(element);\r\n };\r\n DOMManager.prototype.getContainer = function () {\r\n return this.container;\r\n };\r\n DOMManager.instance = new DOMManager();\r\n return DOMManager;\r\n}());\r\nexports.default = DOMManager;\r\n\n\n//# sourceURL=webpack:///./src/DOMManager.ts?");
/***/ }),
/***/ "./src/ResourceManager.ts":
/*!********************************!*\
!*** ./src/ResourceManager.ts ***!
\********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar sprite_1 = __webpack_require__(/*! ./sprite */ \"./src/sprite.ts\");\r\nvar utils_1 = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\r\nvar sprites = __webpack_require__(/*! ./data/sprites.json */ \"./src/data/sprites.json\");\r\nvar BG_TOTAL = 1;\r\nvar ResourceManager = /** @class */ (function () {\r\n function ResourceManager() {\r\n this.bgs = null;\r\n this.sprites = null;\r\n this.sounds = {};\r\n if (ResourceManager.instance != null) {\r\n throw new TypeError(\"instance already exists\");\r\n }\r\n this.fillResourceMaps();\r\n ResourceManager.instance = this;\r\n }\r\n ResourceManager.getInstance = function () {\r\n return this.instance;\r\n };\r\n ResourceManager.prototype.fillResourceMaps = function () {\r\n var _this = this;\r\n this.bgs = new Array(BG_TOTAL)\r\n .fill(\"bg\")\r\n .map(function (name, index) { return \"\" + name + (index + 1); })\r\n .reduce(function (result, name) {\r\n result[name] = null;\r\n return result;\r\n }, {});\r\n this.sprites = sprites.reduce(function (result, config) {\r\n var sprite = new sprite_1.default(config);\r\n var name = config.name;\r\n _this.sounds[name] = null;\r\n result[name] = sprite;\r\n return result;\r\n }, {});\r\n };\r\n ResourceManager.prototype.getSprite = function (name) {\r\n return this.sprites[name];\r\n };\r\n ResourceManager.prototype.getBackground = function (name) {\r\n return this.bgs[name];\r\n };\r\n ResourceManager.prototype.getSound = function (name) {\r\n return this.sounds[name];\r\n };\r\n ResourceManager.prototype.preload = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var images, keys, i, name_1, _a, _b, sprite, _c;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0: return [4 /*yield*/, this.preloadSpritesFor(this.sprites)];\r\n case 1:\r\n images = _d.sent();\r\n keys = Object.keys(this.sprites);\r\n i = 0;\r\n _d.label = 2;\r\n case 2:\r\n if (!(i < keys.length)) return [3 /*break*/, 5];\r\n name_1 = keys[i];\r\n _a = this.sounds;\r\n _b = name_1;\r\n return [4 /*yield*/, this.preloadSoundFor(name_1)];\r\n case 3:\r\n _a[_b] = _d.sent();\r\n sprite = this.sprites[name_1];\r\n sprite.setImage(images[name_1]);\r\n _d.label = 4;\r\n case 4:\r\n ++i;\r\n return [3 /*break*/, 2];\r\n case 5:\r\n _c = this;\r\n return [4 /*yield*/, this.preloadSpritesFor(this.bgs, \"jpg\")];\r\n case 6:\r\n _c.bgs = _d.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n ResourceManager.prototype.preloadSoundFor = function (name) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var audio, error_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, utils_1.preloadSound(name)];\r\n case 1:\r\n audio = _a.sent();\r\n return [2 /*return*/, audio];\r\n case 2:\r\n error_1 = _a.sent();\r\n console.warn(\"No sounds found for \\\"\" + name + \"\\\"\");\r\n return [2 /*return*/, null];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n ResourceManager.prototype.preloadSpritesFor = function (source, ext) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var result, list, i, name_2, image;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n result = {};\r\n list = Object.keys(source);\r\n i = 0;\r\n _a.label = 1;\r\n case 1:\r\n if (!(i < list.length)) return [3 /*break*/, 4];\r\n name_2 = list[i];\r\n return [4 /*yield*/, utils_1.preloadImage(name_2, ext)];\r\n case 2:\r\n image = _a.sent();\r\n result[name_2] = image;\r\n _a.label = 3;\r\n case 3:\r\n ++i;\r\n return [3 /*break*/, 1];\r\n case 4: return [2 /*return*/, result];\r\n }\r\n });\r\n });\r\n };\r\n ResourceManager.instance = new ResourceManager();\r\n return ResourceManager;\r\n}());\r\nexports.default = ResourceManager;\r\n\n\n//# sourceURL=webpack:///./src/ResourceManager.ts?");
/***/ }),
/***/ "./src/Scene.ts":
/*!**********************!*\
!*** ./src/Scene.ts ***!
\**********************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DOMManager_1 = __webpack_require__(/*! ./DOMManager */ \"./src/DOMManager.ts\");\r\nvar ResourceManager_1 = __webpack_require__(/*! ./ResourceManager */ \"./src/ResourceManager.ts\");\r\nvar Scene = /** @class */ (function () {\r\n function Scene() {\r\n }\r\n Scene.prototype.start = function (_a) {\r\n var actors = _a.actors, background = _a.background, dialogues = _a.dialogues;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var dom, resources, sprites, i, _b, index, text, config, target;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n dom = DOMManager_1.default.getInstance();\r\n resources = ResourceManager_1.default.getInstance();\r\n sprites = actors.map(function (name) { return resources.getSprite(name); });\r\n dom.setBackground(background);\r\n dom.toggleSpeech(true);\r\n i = 0;\r\n _c.label = 1;\r\n case 1:\r\n if (!(i < dialogues.length)) return [3 /*break*/, 6];\r\n _b = dialogues[i], index = _b[0], text = _b[1], config = _b[2];\r\n target = sprites[index];\r\n sprites.forEach(function (item) { return item.setActive(false); });\r\n if (config != null) {\r\n target.applyAction(config);\r\n }\r\n if (!!target.isInScene()) return [3 /*break*/, 3];\r\n return [4 /*yield*/, target.enter()];\r\n case 2:\r\n _c.sent();\r\n _c.label = 3;\r\n case 3: return [4 /*yield*/, target.say(text)];\r\n case 4:\r\n _c.sent();\r\n _c.label = 5;\r\n case 5:\r\n ++i;\r\n return [3 /*break*/, 1];\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return Scene;\r\n}());\r\nexports.default = Scene;\r\n\n\n//# sourceURL=webpack:///./src/Scene.ts?");
/***/ }),
/***/ "./src/SpeechBubble.ts":
/*!*****************************!*\
!*** ./src/SpeechBubble.ts ***!
\*****************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DOMManager_1 = __webpack_require__(/*! ./DOMManager */ \"./src/DOMManager.ts\");\r\nvar TEXT_SPEED = 50;\r\nvar SpeechBubble = /** @class */ (function () {\r\n function SpeechBubble() {\r\n this.text = null;\r\n this.finished = true;\r\n if (SpeechBubble.instance != null) {\r\n throw new TypeError(\"instance already exists\");\r\n }\r\n SpeechBubble.instance = this;\r\n }\r\n SpeechBubble.getInstance = function () {\r\n return this.instance;\r\n };\r\n SpeechBubble.prototype.isFinished = function () {\r\n return this.finished;\r\n };\r\n SpeechBubble.prototype.printTimeout = function (resolve, offset) {\r\n var _this = this;\r\n if (offset === void 0) { offset = 1; }\r\n if (this.finished) {\r\n DOMManager_1.default.getInstance().setText(this.text);\r\n resolve();\r\n return;\r\n }\r\n var total = this.text.length;\r\n if (offset <= total) {\r\n setTimeout(function () {\r\n var text = _this.text.slice(0, offset);\r\n var step = _this.text[offset + 1] === \" \" ? 2 : 1;\r\n DOMManager_1.default.getInstance().setText(text);\r\n _this.printTimeout(resolve, offset + step);\r\n }, TEXT_SPEED);\r\n }\r\n else {\r\n resolve();\r\n }\r\n };\r\n SpeechBubble.prototype.print = function (text) {\r\n var _this = this;\r\n var dom = DOMManager_1.default.getInstance();\r\n dom.toggleIcon(false);\r\n this.text = text;\r\n this.finished = false;\r\n new Promise(function (resolve) {\r\n _this.printTimeout(resolve);\r\n }).then(function () {\r\n _this.finished = true;\r\n dom.toggleIcon(true);\r\n });\r\n var container = dom.getContainer();\r\n return new Promise(function (resolve) {\r\n var handleClick = function () {\r\n if (_this.finished) {\r\n container.removeEventListener(\"click\", handleClick);\r\n resolve();\r\n }\r\n else {\r\n _this.finished = true;\r\n }\r\n };\r\n container.addEventListener(\"click\", handleClick);\r\n });\r\n };\r\n SpeechBubble.instance = new SpeechBubble();\r\n return SpeechBubble;\r\n}());\r\nexports.default = SpeechBubble;\r\n\n\n//# sourceURL=webpack:///./src/SpeechBubble.ts?");
/***/ }),
/***/ "./src/data/scenes.json":
/*!******************************!*\
!*** ./src/data/scenes.json ***!
\******************************/
/*! exports provided: 0, default */
/***/ (function(module) {
eval("module.exports = JSON.parse(\"[{\\\"actors\\\":[\\\"kosulya\\\",\\\"lisa\\\"],\\\"background\\\":\\\"bg1\\\",\\\"dialogues\\\":[[0,\\\"Я точно помню, что неделю назад оставлял тут свой бутерброд. В холодильнике его нет, в шкафчиках тоже. Может, ты видела?\\\"],[1,\\\"Какой бутерброд?\\\",{\\\"direction\\\":1,\\\"emote\\\":1}],[0,\\\"C бананом.\\\"],[1,\\\"Что?\\\",{\\\"emote\\\":2}],[0,\\\"Что?\\\"],[1,\\\"Ты зачем банан в бутерброд запихал?\\\",{\\\"emote\\\":3}],[0,\\\"А что здесь такого?\\\"],[1,\\\"Ничего.\\\",{\\\"emote\\\":4}],[1,\\\"Так, подожди.\\\",{\\\"emote\\\":5}]]}]\");\n\n//# sourceURL=webpack:///./src/data/scenes.json?");
/***/ }),
/***/ "./src/data/sprites.json":
/*!*******************************!*\
!*** ./src/data/sprites.json ***!
\*******************************/
/*! exports provided: 0, 1, default */
/***/ (function(module) {
eval("module.exports = JSON.parse(\"[{\\\"name\\\":\\\"kosulya\\\",\\\"title\\\":\\\"Косуля\\\"},{\\\"name\\\":\\\"lisa\\\",\\\"title\\\":\\\"Лиса\\\"}]\");\n\n//# sourceURL=webpack:///./src/data/sprites.json?");
/***/ }),
/***/ "./src/main.ts":
/*!*********************!*\
!*** ./src/main.ts ***!
\*********************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__webpack_require__(/*! ./styles.css */ \"./src/styles.css\");\r\nvar Scene_1 = __webpack_require__(/*! ./Scene */ \"./src/Scene.ts\");\r\nvar ResourceManager_1 = __webpack_require__(/*! ./ResourceManager */ \"./src/ResourceManager.ts\");\r\nvar scenes = __webpack_require__(/*! ./data/scenes.json */ \"./src/data/scenes.json\");\r\nfunction main() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var scene;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n scene = new Scene_1.default();\r\n return [4 /*yield*/, ResourceManager_1.default.getInstance().preload()];\r\n case 1:\r\n _a.sent();\r\n scene.start(scenes[0]);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\nmain();\r\n\n\n//# sourceURL=webpack:///./src/main.ts?");
/***/ }),
/***/ "./src/sprite.ts":
/*!***********************!*\
!*** ./src/sprite.ts ***!
\***********************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Emote = exports.Direction = void 0;\r\nvar DOMManager_1 = __webpack_require__(/*! ./DOMManager */ \"./src/DOMManager.ts\");\r\nvar ResourceManager_1 = __webpack_require__(/*! ./ResourceManager */ \"./src/ResourceManager.ts\");\r\nvar SpeechBubble_1 = __webpack_require__(/*! ./SpeechBubble */ \"./src/SpeechBubble.ts\");\r\nvar Direction;\r\n(function (Direction) {\r\n Direction[Direction[\"LEFT\"] = 0] = \"LEFT\";\r\n Direction[Direction[\"RIGHT\"] = 1] = \"RIGHT\";\r\n Direction[Direction[\"MIDDLE\"] = 2] = \"MIDDLE\";\r\n})(Direction = exports.Direction || (exports.Direction = {}));\r\nvar Emote;\r\n(function (Emote) {\r\n Emote[Emote[\"NONE\"] = 0] = \"NONE\";\r\n Emote[Emote[\"ANGRY\"] = 1] = \"ANGRY\";\r\n Emote[Emote[\"NERVOUS\"] = 2] = \"NERVOUS\";\r\n Emote[Emote[\"SHAKE\"] = 3] = \"SHAKE\";\r\n Emote[Emote[\"SIGH\"] = 4] = \"SIGH\";\r\n Emote[Emote[\"WHAT\"] = 5] = \"WHAT\";\r\n})(Emote = exports.Emote || (exports.Emote = {}));\r\nvar DIRECTIONS = [\"left\", \"right\", \"middle\"];\r\nvar EMOTES = [null, \"angry\", \"nervous\", \"shake\", \"sigh\", \"what\"];\r\nvar Sprite = /** @class */ (function () {\r\n function Sprite(_a) {\r\n var name = _a.name, title = _a.title;\r\n this.element = null;\r\n this.name = null;\r\n this.title = null;\r\n this.direction = Direction.LEFT;\r\n this.image = null;\r\n this.entered = false;\r\n this.active = false;\r\n this.emote = null;\r\n this.name = name;\r\n this.title = title;\r\n this.element = document.createElement(\"div\");\r\n this.element.classList.add(\"sprite\");\r\n this.element.id = this.name;\r\n }\r\n Sprite.prototype.getImage = function () {\r\n return this.image;\r\n };\r\n Sprite.prototype.setImage = function (image) {\r\n var _a;\r\n var parent = (_a = this.image) === null || _a === void 0 ? void 0 : _a.parentNode;\r\n if (parent != null) {\r\n parent.removeChild(this.image);\r\n }\r\n this.image = image;\r\n this.element.appendChild(image);\r\n };\r\n Sprite.prototype.getDirection = function () {\r\n return DIRECTIONS[this.direction];\r\n };\r\n Sprite.prototype.isInScene = function () {\r\n return this.entered;\r\n };\r\n Sprite.prototype.isActive = function () {\r\n return this.active;\r\n };\r\n Sprite.prototype.enter = function () {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n _this.entered = true;\r\n var direction = \"to-\" + _this.getDirection();\r\n var list = _this.element.classList;\r\n list.add(\"enter\");\r\n list.add(direction);\r\n _this.setActive(true);\r\n DOMManager_1.default.getInstance().insert(_this.element);\r\n var onAnimationEnd = function () {\r\n list.remove(\"enter\");\r\n _this.element.removeEventListener(\"animationend\", onAnimationEnd);\r\n resolve();\r\n };\r\n _this.element.addEventListener(\"animationend\", onAnimationEnd);\r\n });\r\n };\r\n Sprite.prototype.leave = function () {\r\n this.entered = false;\r\n this.setActive(false);\r\n this.element.parentNode.removeChild(this.element);\r\n };\r\n Sprite.prototype.setEmote = function (value) {\r\n var previous = \"emote-\" + EMOTES[this.emote];\r\n var list = this.element.classList;\r\n if (this.emote != null && list.contains(previous)) {\r\n list.remove(previous);\r\n }\r\n this.emote = value;\r\n var next = \"emote-\" + EMOTES[this.emote];\r\n if (this.emote != null && !list.contains(next)) {\r\n list.add(next);\r\n }\r\n };\r\n Sprite.prototype.setActive = function (value) {\r\n var list = this.element.classList;\r\n if (value) {\r\n this.active = true;\r\n list.add(\"active\");\r\n }\r\n else {\r\n this.active = false;\r\n list.remove(\"active\");\r\n }\r\n };\r\n Sprite.prototype.say = function (phrase) {\r\n if (!this.active) {\r\n this.setActive(true);\r\n }\r\n DOMManager_1.default.getInstance().setTitle(this.title);\r\n this.startSpeech();\r\n return SpeechBubble_1.default.getInstance().print(phrase);\r\n };\r\n Sprite.prototype.applyAction = function (_a) {\r\n var direction = _a.direction, emote = _a.emote;\r\n if (direction != null) {\r\n this.direction = direction;\r\n }\r\n if (emote != null) {\r\n this.setEmote(emote);\r\n }\r\n };\r\n Sprite.prototype.startSpeech = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var finished;\r\n return __generator(this, function (_a) {\r\n try {\r\n this.playSound();\r\n finished = SpeechBubble_1.default.getInstance().isFinished();\r\n if (!finished) {\r\n this.startSpeech();\r\n }\r\n }\r\n catch (error) {\r\n console.warn(\"No speech sounds for \\\"\" + this.name + \"\\\"\");\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n Sprite.prototype.playSound = function () {\r\n var audio = ResourceManager_1.default.getInstance().getSound(this.name);\r\n audio.play();\r\n };\r\n return Sprite;\r\n}());\r\nexports.default = Sprite;\r\n\n\n//# sourceURL=webpack:///./src/sprite.ts?");
/***/ }),
/***/ "./src/styles.css":
/*!************************!*\
!*** ./src/styles.css ***!
\************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_styles_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../node_modules/css-loader/dist/cjs.js!./styles.css */ \"./node_modules/css-loader/dist/cjs.js!./src/styles.css\");\n\n \n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_styles_css__WEBPACK_IMPORTED_MODULE_1__[\"default\"], options);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_styles_css__WEBPACK_IMPORTED_MODULE_1__[\"default\"].locals || {});\n\n//# sourceURL=webpack:///./src/styles.css?");
/***/ }),
/***/ "./src/utils.ts":
/*!**********************!*\
!*** ./src/utils.ts ***!
\**********************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.createElement = exports.preloadSound = exports.preloadImage = void 0;\r\nfunction preloadImage(name, ext) {\r\n if (ext === void 0) { ext = \"png\"; }\r\n return new Promise(function (resolve) {\r\n var image = new Image();\r\n image.src = \"assets/\" + name + \".\" + ext;\r\n image.onload = function () { return resolve(image); };\r\n });\r\n}\r\nexports.preloadImage = preloadImage;\r\nfunction preloadSound(name) {\r\n return new Promise(function (resolve, reject) {\r\n var audio = new Audio(\"assets/sound/\" + name + \".mp3\");\r\n var removeListeners = function () {\r\n audio.removeEventListener(\"suspend\", onError);\r\n audio.removeEventListener(\"canplaythrough\", onLoad);\r\n };\r\n var onLoad = function () {\r\n resolve(audio);\r\n removeListeners();\r\n };\r\n var onError = function () {\r\n reject();\r\n removeListeners();\r\n };\r\n audio.addEventListener(\"error\", onError);\r\n audio.addEventListener(\"canplaythrough\", onLoad);\r\n });\r\n}\r\nexports.preloadSound = preloadSound;\r\nfunction createElement(id, tag) {\r\n if (tag === void 0) { tag = \"div\"; }\r\n var element = document.createElement(tag);\r\n element.id = id;\r\n return element;\r\n}\r\nexports.createElement = createElement;\r\n\n\n//# sourceURL=webpack:///./src/utils.ts?");
/***/ })
/******/ });