UNPKG

adventureland-gui

Version:

Basic UI for headless AdventureLand clients

119 lines (87 loc) 2.98 MB
/* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ /******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ "./source/client/index.css": /*!*********************************!*\ !*** ./source/client/index.css ***! \*********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://adventureland-gui/./source/client/index.css?"); /***/ }), /***/ "./source/client/index.ts": /*!********************************!*\ !*** ./source/client/index.ts ***! \********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! socket.io-client */ \"./node_modules/socket.io-client/build/esm/index.js\");\n/* harmony import */ var _index_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.css */ \"./source/client/index.css\");\n/* harmony import */ var pixi_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! pixi-webfont-loader */ \"pixi.js\");\n/* harmony import */ var pixi_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(pixi_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _G_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./G.json */ \"./source/client/G.json\");\n\r\n\r\n\r\n\r\n\r\nconst invDisplayed = new Map();\r\nlet bankCache;\r\nlet currentPackNum = 0;\r\nlet currentTotalPacks = 0;\r\npixi_js__WEBPACK_IMPORTED_MODULE_2__.extensions.add({ name: \"webfont-loader\", ref: pixi_js__WEBPACK_IMPORTED_MODULE_2__.WebfontLoaderPlugin, type: pixi_js__WEBPACK_IMPORTED_MODULE_2__.ExtensionType.Loader });\r\npixi_js__WEBPACK_IMPORTED_MODULE_2__.settings.ROUND_PIXELS = true;\r\npixi_js__WEBPACK_IMPORTED_MODULE_2__.settings.SCALE_MODE = pixi_js__WEBPACK_IMPORTED_MODULE_2__.SCALE_MODES.NEAREST;\r\npixi_js__WEBPACK_IMPORTED_MODULE_2__.settings.PRECISION_FRAGMENT = pixi_js__WEBPACK_IMPORTED_MODULE_2__.PRECISION.LOW;\r\nconst socket = socket_io_client__WEBPACK_IMPORTED_MODULE_0__.io({\r\n autoConnect: true,\r\n reconnection: true,\r\n transports: [\"websocket\"]\r\n});\r\nconst top = document.createElement(\"div\");\r\ntop.setAttribute(\"class\", \"top\");\r\nconst UIContainer = document.createElement(\"div\");\r\nUIContainer.setAttribute(\"class\", \"botUIContainer\");\r\nUIContainer.id = \"botUIContainer\";\r\nconst bottom = document.createElement(\"div\");\r\nbottom.setAttribute(\"class\", \"bottom\");\r\nconst bankContainer = document.createElement(\"div\");\r\nbankContainer.setAttribute(\"class\", \"bankUIContainer\");\r\nbankContainer.id = \"bankUIContainer\";\r\ntop.appendChild(UIContainer);\r\ndocument.body.appendChild(top);\r\nbottom.appendChild(bankContainer);\r\ndocument.body.appendChild(bottom);\r\nif (!bankCache)\r\n bankContainer.textContent = \"NO BANK DATA\";\r\nelse\r\n displayBank(bankCache, bankContainer);\r\npixi_js__WEBPACK_IMPORTED_MODULE_2__.Loader.shared.add({ name: \"pixel\", url: \"./assets/m5x7.ttf\" });\r\nfor (const name in _G_json__WEBPACK_IMPORTED_MODULE_3__.tilesets) {\r\n const gTileset = _G_json__WEBPACK_IMPORTED_MODULE_3__.tilesets[name];\r\n const url = `.${gTileset.file}`;\r\n console.log(`loading ${url}...`);\r\n pixi_js__WEBPACK_IMPORTED_MODULE_2__.Loader.shared.add({ name: url, url: url });\r\n}\r\nfor (const name in _G_json__WEBPACK_IMPORTED_MODULE_3__.sprites) {\r\n const gSprites = _G_json__WEBPACK_IMPORTED_MODULE_3__.sprites[name];\r\n const url = `.${gSprites.file}`;\r\n console.log(`loading ${url}...`);\r\n pixi_js__WEBPACK_IMPORTED_MODULE_2__.Loader.shared.add({ name: url, url: url });\r\n}\r\npixi_js__WEBPACK_IMPORTED_MODULE_2__.Loader.shared.load().onComplete.add(() => {\r\n});\r\nsocket.on(\"removeBot\", (id) => {\r\n const bot = document.getElementById(`${id}_BotUI`);\r\n bot.parentNode.removeChild(bot);\r\n});\r\nsocket.on(\"clear\", () => {\r\n const cont = document.getElementById(\"botUIContainer\");\r\n cont.childNodes.forEach(node => {\r\n node.parentNode.removeChild(node);\r\n });\r\n});\r\nsocket.on(\"player\", (id, data) => {\r\n const levelEle = document.getElementById(`${id}_Level`);\r\n levelEle.textContent = `Level: ${data.level}`;\r\n const hpBarEle = document.getElementById(`${id}_HP`);\r\n hpBarEle.style.width = `${((data.hp / data.max_hp) * 100).toFixed(2)}%`;\r\n const hpBarInfoEle = document.getElementById(`${id}_HP_Info`);\r\n hpBarInfoEle.textContent = `${data.hp.toLocaleString(\"en-US\")} / ${data.max_hp.toLocaleString(\"en-US\")} (${hpBarEle.style.width})`;\r\n const mpBarEle = document.getElementById(`${id}_MP`);\r\n mpBarEle.style.width = `${((data.mp / data.max_mp) * 100).toFixed(2)}%`;\r\n const mpBarInfoEle = document.getElementById(`${id}_MP_Info`);\r\n mpBarInfoEle.textContent = `${data.mp.toLocaleString(\"en-US\")} / ${data.max_mp.toLocaleString(\"en-US\")} (${mpBarEle.style.width})`;\r\n const xpBarEle = document.getElementById(`${id}_XP`);\r\n const max_xp = _G_json__WEBPACK_IMPORTED_MODULE_3__.levels[data.level];\r\n xpBarEle.style.width = `${((data.xp / max_xp) * 100).toFixed(2)}%`;\r\n const xpBarInfoEle = document.getElementById(`${id}_XP_Info`);\r\n xpBarInfoEle.textContent = `${data.xp.toLocaleString(\"en-US\")} / ${max_xp.toLocaleString(\"en-US\")} (${xpBarEle.style.width})`;\r\n const statusInfoEle = document.getElementById(`${id}_statuscontent`);\r\n while (statusInfoEle.childElementCount > 0) {\r\n statusInfoEle.removeChild(statusInfoEle.children[0]);\r\n }\r\n displayConditions(data.s, statusInfoEle);\r\n});\r\nsocket.on(\"inventory\", (id, data) => {\r\n const goldEle = document.getElementById(`${id}_Gold`);\r\n goldEle.textContent = data.gold.toLocaleString(\"en-US\");\r\n if (invDisplayed.get(id)) {\r\n updateEquipment(data.equipment);\r\n updateInventory(data.items);\r\n }\r\n else {\r\n const invButton = document.getElementById(`${id}_Inv`);\r\n invButton.onclick = () => {\r\n invButtonClick(id, data);\r\n };\r\n }\r\n});\r\nsocket.on(\"bank\", (data) => {\r\n bankCache = data;\r\n currentTotalPacks = Object.keys(data).length - 1;\r\n const cont = document.getElementById(\"bankUIContainer\");\r\n displayBank(data, cont);\r\n});\r\nsocket.on(\"addBot\", (id, data) => {\r\n console.log(`adding bot: { id: ${id} }...`);\r\n const botWindow = document.createElement(\"div\");\r\n botWindow.id = `${id}_BotUI`;\r\n botWindow.setAttribute(\"class\", \"botUI\");\r\n const idRow = document.createElement(\"div\");\r\n idRow.setAttribute(\"class\", \"botUIRow\");\r\n const idDisplay = document.createElement(\"div\");\r\n idDisplay.setAttribute(\"class\", \"textDisplay\");\r\n idDisplay.textContent = `Name: ${id}`;\r\n idRow.appendChild(idDisplay);\r\n botWindow.appendChild(idRow);\r\n const levelRow = document.createElement(\"div\");\r\n levelRow.setAttribute(\"class\", \"botUIRow\");\r\n const levelDisplay = document.createElement(\"div\");\r\n levelDisplay.setAttribute(\"class\", \"textDisplay\");\r\n levelDisplay.id = `${id}_Level`;\r\n levelDisplay.textContent = `Level: ${data.character.level}`;\r\n levelRow.appendChild(levelDisplay);\r\n botWindow.appendChild(levelRow);\r\n const healthRow = document.createElement(\"div\");\r\n healthRow.setAttribute(\"class\", \"botUIRow\");\r\n const healthBG = document.createElement(\"div\");\r\n healthBG.setAttribute(\"class\", \"statbar\");\r\n const healthBar = document.createElement(\"div\");\r\n healthBar.setAttribute(\"class\", \"hpbar\");\r\n healthBar.id = `${id}_HP`;\r\n healthBar.style.width = ((data.character.hp / data.character.max_hp) * 100).toFixed(2) + \"%\";\r\n const healthText = document.createElement(\"div\");\r\n healthText.id = `${id}_HP_Info`;\r\n healthText.setAttribute(\"class\", \"barlabel\");\r\n healthText.textContent = `${data.character.hp.toLocaleString(\"en-US\")} / ${data.character.max_hp.toLocaleString(\"en-US\")} (${healthBar.style.width})`;\r\n healthRow.appendChild(healthBG);\r\n healthBG.appendChild(healthBar);\r\n healthBG.appendChild(healthText);\r\n botWindow.appendChild(healthRow);\r\n const manaRow = document.createElement(\"div\");\r\n manaRow.setAttribute(\"class\", \"botUIRow\");\r\n const manaBG = document.createElement(\"div\");\r\n manaBG.setAttribute(\"class\", \"statbar\");\r\n const manaBar = document.createElement(\"div\");\r\n manaBar.setAttribute(\"class\", \"mpbar\");\r\n manaBar.id = `${id}_MP`;\r\n manaBar.style.width = `${((data.character.mp / data.character.max_mp) * 100).toFixed(2)}%`;\r\n const manaText = document.createElement(\"div\");\r\n manaText.id = `${id}_MP_Info`;\r\n manaText.setAttribute(\"class\", \"barlabel\");\r\n manaText.textContent = `${data.character.mp.toLocaleString(\"en-US\")} / ${data.character.max_mp.toLocaleString(\"en-US\")} (${manaBar.style.width})`;\r\n manaRow.appendChild(manaBG);\r\n manaBG.appendChild(manaBar);\r\n manaBG.appendChild(manaText);\r\n botWindow.appendChild(manaRow);\r\n const expRow = document.createElement(\"div\");\r\n expRow.setAttribute(\"class\", \"botUIRow\");\r\n const expBG = document.createElement(\"div\");\r\n expBG.setAttribute(\"class\", \"statbar\");\r\n const expBar = document.createElement(\"div\");\r\n expBar.setAttribute(\"class\", \"xpbar\");\r\n expBar.id = `${id}_XP`;\r\n const max_xp = _G_json__WEBPACK_IMPORTED_MODULE_3__.levels[data.character.level];\r\n expBar.style.width = `${((data.character.xp / max_xp) * 100).toFixed(2)}%`;\r\n const expText = document.createElement(\"div\");\r\n expText.id = `${id}_XP_Info`;\r\n expText.setAttribute(\"class\", \"barlabel\");\r\n expText.textContent = `${data.character.xp.toLocaleString(\"en-US\")} / ${max_xp.toLocaleString(\"en-US\")} (${expBar.style.width})`;\r\n expRow.appendChild(expBG);\r\n expBG.appendChild(expBar);\r\n expBG.appendChild(expText);\r\n botWindow.appendChild(expRow);\r\n const goldRow = document.createElement(\"div\");\r\n goldRow.setAttribute(\"class\", \"botUIRow\");\r\n const goldDisplay = document.createElement(\"div\");\r\n goldDisplay.setAttribute(\"class\", \"textDisplay\");\r\n goldRow.appendChild(goldDisplay);\r\n const goldLabel = document.createElement(\"div\");\r\n goldLabel.setAttribute(\"class\", \"textDisplayLabel\");\r\n goldLabel.textContent = \"Gold: \";\r\n goldDisplay.appendChild(goldLabel);\r\n const goldValue = document.createElement(\"div\");\r\n goldValue.setAttribute(\"class\", \"textDisplayValue gold\");\r\n goldValue.id = `${id}_Gold`;\r\n goldValue.textContent = data.inventory.gold.toLocaleString(\"en-US\");\r\n goldDisplay.appendChild(goldValue);\r\n botWindow.appendChild(goldRow);\r\n const invRow = document.createElement(\"div\");\r\n invRow.setAttribute(\"class\", \"botUIRow\");\r\n const invButton = document.createElement(\"div\");\r\n invButton.id = `${id}_Inv`;\r\n invButton.setAttribute(\"class\", \"button\");\r\n const invText = document.createTextNode(\"Inventory\");\r\n invButton.appendChild(invText);\r\n invRow.appendChild(invButton);\r\n botWindow.appendChild(invRow);\r\n invDisplayed.set(id, false);\r\n invButton.onclick = () => {\r\n invButtonClick(id, data.inventory);\r\n };\r\n const statusRow = document.createElement(\"div\");\r\n statusRow.setAttribute(\"class\", \"botUIRow\");\r\n const statusButton = document.createElement(\"div\");\r\n statusButton.id = `${id}_Status`;\r\n statusButton.setAttribute(\"class\", \"collapsible\");\r\n const statusText = document.createTextNode(\"Status Info\");\r\n statusButton.appendChild(statusText);\r\n statusButton.onclick = () => {\r\n statusButton.classList.toggle(\"active\");\r\n const content = document.getElementById(`${id}_statuscontent`);\r\n if (content.style.display === \"inline-block\")\r\n content.style.display = \"none\";\r\n else\r\n content.style.display = \"inline-block\";\r\n };\r\n statusRow.appendChild(statusButton);\r\n botWindow.appendChild(statusRow);\r\n const statusInfo = document.createElement(\"div\");\r\n statusInfo.setAttribute(\"class\", \"collapsiblecontent\");\r\n statusInfo.id = `${id}_statuscontent`;\r\n statusRow.appendChild(statusInfo);\r\n displayConditions(data.character.s, statusInfo);\r\n UIContainer.appendChild(botWindow);\r\n});\r\nfunction displayConditions(data, ele) {\r\n const statCont = document.createElement(\"div\");\r\n statCont.setAttribute(\"class\", \"statContainer\");\r\n ele.appendChild(statCont);\r\n if (\"typing\" in data) {\r\n delete data.typing;\r\n }\r\n const conditions = Object.keys(data);\r\n const numConditions = conditions.length;\r\n let row;\r\n for (let i = 0; i < numConditions; i++) {\r\n if (i % 9 == 0) {\r\n row = document.createElement(\"div\");\r\n statCont.appendChild(row);\r\n }\r\n const slot = document.createElement(\"div\");\r\n slot.setAttribute(\"class\", \"itemslot\");\r\n row.appendChild(slot);\r\n const border = document.createElement(\"div\");\r\n border.setAttribute(\"class\", \"itemborder\");\r\n slot.appendChild(border);\r\n const frame = document.createElement(\"div\");\r\n frame.setAttribute(\"class\", \"itemframe\");\r\n border.appendChild(frame);\r\n const cond = conditions[i];\r\n const img = document.createElement(\"img\");\r\n const pos = getConditionPos(cond);\r\n const src = getImgSrc(pos[0]);\r\n img.src = src;\r\n const imgData = _G_json__WEBPACK_IMPORTED_MODULE_3__.images[src.replace(\"./\", \"/\")];\r\n const width = imgData.width * 2;\r\n const height = imgData.height * 2;\r\n const offLeft = -(pos[1] * 40);\r\n const offTop = -(pos[2] * 40);\r\n img.style.width = `${width}px`;\r\n img.style.height = `${height}px`;\r\n img.style.marginTop = `${offTop}px`;\r\n img.style.marginLeft = `${offLeft}px`;\r\n frame.appendChild(img);\r\n const tooltip = document.createElement(\"div\");\r\n tooltip.setAttribute(\"class\", \"iteminfo\");\r\n frame.appendChild(tooltip);\r\n const namerow = document.createElement(\"div\");\r\n namerow.setAttribute(\"class\", \"smalltextdisplay\");\r\n try {\r\n namerow.textContent = _G_json__WEBPACK_IMPORTED_MODULE_3__.conditions[cond].name;\r\n }\r\n catch {\r\n namerow.textContent = cond;\r\n }\r\n tooltip.appendChild(namerow);\r\n const conData = data[cond];\r\n if (\"f\" in conData) {\r\n const fromRow = document.createElement(\"div\");\r\n fromRow.setAttribute(\"class\", \"smalltextdisplay\");\r\n fromRow.textContent = `From: ${conData.f}`;\r\n tooltip.appendChild(fromRow);\r\n }\r\n if (\"strong\" in conData) {\r\n const strongRow = document.createElement(\"div\");\r\n strongRow.setAttribute(\"class\", \"smalltextdisplay\");\r\n strongRow.textContent = `Strong: ${conData.strong}`;\r\n tooltip.appendChild(strongRow);\r\n }\r\n if (\"id\" in conData && \"c\" in conData) {\r\n const targetRow = document.createElement(\"div\");\r\n targetRow.setAttribute(\"class\", \"smalltextdisplay\");\r\n targetRow.textContent = `Target: ${conData.id}`;\r\n tooltip.appendChild(targetRow);\r\n const countRow = document.createElement(\"div\");\r\n countRow.setAttribute(\"class\", \"smalltextdisplay\");\r\n countRow.textContent = `Count: ${conData.c}`;\r\n tooltip.appendChild(countRow);\r\n }\r\n if (\"ms\" in conData) {\r\n const msRow = document.createElement(\"div\");\r\n msRow.setAttribute(\"class\", \"smalltextdisplay\");\r\n msRow.textContent = `MS: ${conData.ms}`;\r\n tooltip.appendChild(msRow);\r\n }\r\n }\r\n}\r\nfunction getConditionPos(cond) {\r\n try {\r\n const data = _G_json__WEBPACK_IMPORTED_MODULE_3__.conditions[cond];\r\n const skin = (data.skin == \"condition_positive\") ? \"condition_good\" : ((data.skin == \"condition_negative\") ? \"condition_bad\" : data.skin);\r\n return _G_json__WEBPACK_IMPORTED_MODULE_3__.positions[skin];\r\n }\r\n catch {\r\n console.log(`ConditionName: ${cond}`);\r\n return _G_json__WEBPACK_IMPORTED_MODULE_3__.positions.placeholder;\r\n }\r\n}\r\nfunction invButtonClick(id, data) {\r\n invDisplayed.set(id, true);\r\n const modal = document.createElement(\"div\");\r\n modal.setAttribute(\"class\", \"modal\");\r\n modal.onclick = () => {\r\n invDisplayed.set(id, false);\r\n modal.parentElement.removeChild(modal);\r\n };\r\n const emodal = document.createElement(\"div\");\r\n emodal.setAttribute(\"class\", \"emodal\");\r\n modal.appendChild(emodal);\r\n displayEquipment(data.equipment, emodal);\r\n const imodal = document.createElement(\"div\");\r\n imodal.setAttribute(\"class\", \"imodal\");\r\n modal.appendChild(imodal);\r\n displayInventory(data.items, imodal);\r\n document.body.appendChild(modal);\r\n}\r\nfunction getImgSrc(file) {\r\n if (file == \"\") {\r\n return \"./images/tiles/items/pack_20vt8.png\";\r\n }\r\n else if (file == \"skills\") {\r\n return \"./images/tiles/items/skills_20v6.png\";\r\n }\r\n else {\r\n return `./images/tiles/items/${file}.png`;\r\n }\r\n}\r\nfunction displayEmptySlot(type, row) {\r\n const slot = document.createElement(\"div\");\r\n slot.setAttribute(\"class\", \"emptyslot\");\r\n row.appendChild(slot);\r\n const border = document.createElement(\"div\");\r\n border.setAttribute(\"class\", \"equipborder\");\r\n slot.appendChild(border);\r\n const frame = document.createElement(\"div\");\r\n frame.setAttribute(\"class\", \"itemframe\");\r\n border.appendChild(frame);\r\n const img = document.createElement(\"img\");\r\n img.src = \"./images/tiles/items/pack_20vt8.png\";\r\n switch (type) {\r\n case \"amulet\":\r\n img.setAttribute(\"style\", \"width: 640px; height: 2560px; margin-top: -1240px; margin-left: -480px; opacity: 0.4;\");\r\n break;\r\n case \"belt\":\r\n img.setAttribute(\"style\", \"width: 640px; height: 2560px; margin-top: -120px; margin-left: -160px; opacity: 0.4;\");\r\n break;\r\n case \"cape\":\r\n img.setAttribute(\"style\", \"width: 640px; height: 2560px; margin-top: -240px; margin-left: -160px; opacity: 0.4;\");\r\n break;\r\n case \"chest\":\r\n img.setAttribute(\"style\", \"width: 640px; height: 2560px; margin-top: -40px; margin-left: -240px; opacity: 0.4;\");\r\n break;\r\n case \"earring1\":\r\n case \"earring2\":\r\n img.setAttribute(\"style\", \"width: 640px; height: 2560px; margin-top: -680px; margin-left: -200px; opacity: 0.4;\");\r\n break;\r\n case \"elixir\":\r\n img.setAttribute(\"style\", \"width: 640px; height: 2560px; margin-top: -1080px; margin-left: -0px; opacity: 0.4;\");\r\n break;\r\n case \"gloves\":\r\n img.setAttribute(\"style\", \"width: 640px; height: 2560px; margin-top: -80px; margin-left: -400px; opacity: 0.4;\");\r\n break;\r\n case \"helmet\":\r\n img.setAttribute(\"style\", \"width: 640px; height: 2560px; margin-top: -1240px; margin-left: -0px; opacity: 0.5;\");\r\n break;\r\n case \"mainhand\":\r\n img.setAttribute(\"style\", \"width: 640px; height: 2560px; margin-top: -1240px; margin-left: -200px; opacity: 0.36;\");\r\n break;\r\n case \"offhand\":\r\n img.setAttribute(\"style\", \"width: 640px; height: 2560px; margin-top: -1240px; margin-left: -240px; opacity: 0.4;\");\r\n break;\r\n case \"orb\":\r\n img.setAttribute(\"style\", \"width: 640px; height: 2560px; margin-top: -1000px; margin-left: -80px; opacity: 0.4;\");\r\n break;\r\n case \"pants\":\r\n img.setAttribute(\"style\", \"width: 640px; height: 2560px; margin-top: -1240px; margin-left: -80px; opacity: 0.5;\");\r\n break;\r\n case \"ring1\":\r\n case \"ring2\":\r\n img.setAttribute(\"style\", \"width: 640px; height: 2560px; margin-top: -1240px; margin-left: -520px; opacity: 0.4;\");\r\n break;\r\n case \"shoes\":\r\n img.setAttribute(\"style\", \"width: 640px; height: 2560px; margin-top: -1240px; margin-left: -120px; opacity: 0.5;\");\r\n break;\r\n }\r\n frame.appendChild(img);\r\n}\r\nfunction displayEquipmentSlot(equip, row) {\r\n const slot = document.createElement(\"div\");\r\n slot.setAttribute(\"class\", \"itemslot\");\r\n row.appendChild(slot);\r\n const border = document.createElement(\"div\");\r\n border.setAttribute(\"class\", \"equipborder\");\r\n slot.appendChild(border);\r\n const frame = document.createElement(\"div\");\r\n frame.setAttribute(\"class\", \"itemframe\");\r\n border.appendChild(frame);\r\n displayItem(equip, frame, true);\r\n}\r\nfunction displayEquipment(slots, ele) {\r\n const equipContain = document.createElement(\"div\");\r\n equipContain.setAttribute(\"class\", \"equipContainer\");\r\n equipContain.id = \"equipmentContainer\";\r\n ele.appendChild(equipContain);\r\n const row1 = document.createElement(\"div\");\r\n equipContain.appendChild(row1);\r\n const earring1 = slots.earring1;\r\n if (!earring1) {\r\n displayEmptySlot(\"earring1\", row1);\r\n }\r\n else {\r\n displayEquipmentSlot(earring1, row1);\r\n }\r\n const helmet = slots.helmet;\r\n if (!helmet) {\r\n displayEmptySlot(\"helmet\", row1);\r\n }\r\n else {\r\n displayEquipmentSlot(helmet, row1);\r\n }\r\n const earring2 = slots.earring2;\r\n if (!earring2) {\r\n displayEmptySlot(\"earring2\", row1);\r\n }\r\n else {\r\n displayEquipmentSlot(earring2, row1);\r\n }\r\n const amulet = slots.amulet;\r\n if (!amulet) {\r\n displayEmptySlot(\"amulet\", row1);\r\n }\r\n else {\r\n displayEquipmentSlot(amulet, row1);\r\n }\r\n const row2 = document.createElement(\"div\");\r\n equipContain.appendChild(row2);\r\n const weapon = slots.mainhand;\r\n if (!weapon) {\r\n displayEmptySlot(\"mainhand\", row2);\r\n }\r\n else {\r\n displayEquipmentSlot(weapon, row2);\r\n }\r\n const armor = slots.chest;\r\n if (!armor) {\r\n displayEmptySlot(\"chest\", row2);\r\n }\r\n else {\r\n displayEquipmentSlot(armor, row2);\r\n }\r\n const shield = slots.offhand;\r\n if (!shield) {\r\n displayEmptySlot(\"offhand\", row2);\r\n }\r\n else {\r\n displayEquipmentSlot(shield, row2);\r\n }\r\n const cape = slots.cape;\r\n if (!cape) {\r\n displayEmptySlot(\"cape\", row2);\r\n }\r\n else {\r\n displayEquipmentSlot(cape, row2);\r\n }\r\n const row3 = document.createElement(\"div\");\r\n equipContain.appendChild(row3);\r\n const ring1 = slots.ring1;\r\n if (!ring1) {\r\n displayEmptySlot(\"ring1\", row3);\r\n }\r\n else {\r\n displayEquipmentSlot(ring1, row3);\r\n }\r\n const pants = slots.pants;\r\n if (!pants) {\r\n displayEmptySlot(\"pants\", row3);\r\n }\r\n else {\r\n displayEquipmentSlot(pants, row3);\r\n }\r\n const ring2 = slots.ring2;\r\n if (!ring2) {\r\n displayEmptySlot(\"ring2\", row3);\r\n }\r\n else {\r\n displayEquipmentSlot(ring2, row3);\r\n }\r\n const orb = slots.orb;\r\n if (!orb) {\r\n displayEmptySlot(\"orb\", row3);\r\n }\r\n else {\r\n displayEquipmentSlot(orb, row3);\r\n }\r\n const row4 = document.createElement(\"div\");\r\n equipContain.appendChild(row4);\r\n const belt = slots.belt;\r\n if (!belt) {\r\n displayEmptySlot(\"belt\", row4);\r\n }\r\n else {\r\n displayEquipmentSlot(belt, row4);\r\n }\r\n const shoes = slots.shoes;\r\n if (!shoes) {\r\n displayEmptySlot(\"shoes\", row4);\r\n }\r\n else {\r\n displayEquipmentSlot(shoes, row4);\r\n }\r\n const gloves = slots.gloves;\r\n if (!gloves) {\r\n displayEmptySlot(\"gloves\", row4);\r\n }\r\n else {\r\n displayEquipmentSlot(gloves, row4);\r\n }\r\n const elixir = slots.elixir;\r\n if (!elixir) {\r\n displayEmptySlot(\"elixir\", row4);\r\n }\r\n else {\r\n displayEquipmentSlot(elixir, row4);\r\n }\r\n}\r\nfunction displayItem(item, ele, equip = false) {\r\n const itemSkin = _G_json__WEBPACK_IMPORTED_MODULE_3__.items[item.name].skin;\r\n const itemPos = _G_json__WEBPACK_IMPORTED_MODULE_3__.positions[itemSkin];\r\n const itemFile = getImgSrc(itemPos[0]);\r\n const img = document.createElement(\"img\");\r\n img.setAttribute(\"src\", itemFile);\r\n const imgData = _G_json__WEBPACK_IMPORTED_MODULE_3__.images[itemFile.replace(\"./\", \"/\")];\r\n const width = imgData.width * 2;\r\n const height = imgData.height * 2;\r\n const itemLeft = -(itemPos[1] * 40);\r\n const itemTop = -(itemPos[2] * 40);\r\n img.style.width = `${width}px`;\r\n img.style.height = `${height}px`;\r\n img.style.marginTop = `${itemTop}px`;\r\n img.style.marginLeft = `${itemLeft}px`;\r\n ele.style.cursor = \"help\";\r\n ele.appendChild(img);\r\n if (item.q && item.q > 1) {\r\n const iq = document.createElement(\"div\");\r\n let iqStyle = \"border: 2px solid gray; background: black; padding: 1px 2px 1px 3px; position: absolute; right: -2px; bottom: -2px; text-align: center; line-height: 16px; font-size: 24px; height: 16px;\";\r\n if (item.name.includes(\"hp\"))\r\n iqStyle += \" color: #F37A87;\";\r\n else if (item.name.includes(\"mp\"))\r\n iqStyle += \" color: #66B3F6;\";\r\n iq.setAttribute(\"style\", iqStyle);\r\n iq.textContent = item.q.toString(10);\r\n ele.appendChild(iq);\r\n }\r\n if (item.level && item.level > 0) {\r\n const il = document.createElement(\"div\");\r\n il.setAttribute(\"class\", \"itemlevel\");\r\n if (equip) {\r\n il.style.left = \"0px\";\r\n il.style.bottom = \"0px\";\r\n }\r\n else {\r\n il.style.left = \"-2px\";\r\n il.style.bottom = \"-2px\";\r\n }\r\n il.textContent = item.level.toString(10);\r\n ele.appendChild(il);\r\n }\r\n const tooltip = document.createElement(\"div\");\r\n tooltip.setAttribute(\"class\", \"iteminfo\");\r\n ele.appendChild(tooltip);\r\n const namerow = document.createElement(\"div\");\r\n namerow.setAttribute(\"class\", \"smalltextdisplay\");\r\n namerow.textContent = getName(item);\r\n tooltip.appendChild(namerow);\r\n}\r\nfunction getName(item) {\r\n const name = _G_json__WEBPACK_IMPORTED_MODULE_3__.items[item.name].name;\r\n let fixedName = name;\r\n if (item.p) {\r\n const pstr = item.p[0].toUpperCase() + item.p.substring(1);\r\n fixedName = pstr + \" \" + fixedName;\r\n }\r\n if (item.level && item.level > 0) {\r\n fixedName = fixedName + \" +\" + item.level.toString(10);\r\n }\r\n return fixedName;\r\n}\r\nfunction displayInventory(items, ele) {\r\n const invContain = document.createElement(\"div\");\r\n invContain.setAttribute(\"class\", \"invContainer\");\r\n invContain.id = \"inventoryContainer\";\r\n ele.appendChild(invContain);\r\n for (let i = 0; i < 6; i++) {\r\n const row = document.createElement(\"div\");\r\n invContain.appendChild(row);\r\n for (let j = 0; j < 7; j++) {\r\n const itemNum = (i * 7) + j;\r\n const slot = document.createElement(\"div\");\r\n slot.setAttribute(\"class\", \"itemslot\");\r\n row.appendChild(slot);\r\n const border = document.createElement(\"div\");\r\n border.setAttribute(\"class\", \"itemborder\");\r\n slot.appendChild(border);\r\n const frame = document.createElement(\"div\");\r\n frame.setAttribute(\"class\", \"itemframe\");\r\n frame.id = `frame_${itemNum}`;\r\n border.appendChild(frame);\r\n const item = items[itemNum];\r\n if (!item)\r\n continue;\r\n displayItem(item, frame);\r\n }\r\n }\r\n}\r\nfunction updateEquipment(data) {\r\n const cont = document.getElementById(\"equipmentContainer\");\r\n const parent = cont.parentElement;\r\n parent.removeChild(cont);\r\n displayEquipment(data, parent);\r\n}\r\nfunction updateInventory(data) {\r\n const cont = document.getElementById(\"inventoryContainer\");\r\n const parent = cont.parentElement;\r\n parent.removeChild(cont);\r\n displayInventory(data, parent);\r\n}\r\nfunction displayBank(data, ele) {\r\n ele.textContent = \"\";\r\n while (ele.childElementCount > 0) {\r\n ele.removeChild(ele.children[0]);\r\n }\r\n const leftArrow = document.createElement(\"div\");\r\n leftArrow.setAttribute(\"class\", \"packleft\");\r\n const leftImg = document.createElement(\"img\");\r\n leftImg.src = \"./images/arrowleft.png\";\r\n leftImg.style.padding = \"4px\";\r\n leftArrow.appendChild(leftImg);\r\n leftArrow.onclick = () => {\r\n currentPackNum--;\r\n if (currentPackNum < 0) {\r\n currentPackNum = currentTotalPacks - 1;\r\n }\r\n displayBank(data, ele);\r\n };\r\n ele.appendChild(leftArrow);\r\n const bankUI = document.createElement(\"div\");\r\n bankUI.setAttribute(\"class\", \"bankui\");\r\n ele.appendChild(bankUI);\r\n const rightArrow = document.createElement(\"div\");\r\n rightArrow.setAttribute(\"class\", \"packright\");\r\n const rightImg = document.createElement(\"img\");\r\n rightImg.src = \"./images/arrowright.png\";\r\n rightImg.style.padding = \"4px\";\r\n rightArrow.appendChild(rightImg);\r\n rightArrow.onclick = () => {\r\n currentPackNum++;\r\n if (currentPackNum >= currentTotalPacks) {\r\n currentPackNum = 0;\r\n }\r\n displayBank(data, ele);\r\n };\r\n ele.appendChild(rightArrow);\r\n const goldcell = document.createElement(\"div\");\r\n goldcell.setAttribute(\"class\", \"p4px\");\r\n bankUI.appendChild(goldcell);\r\n const goldDisplay = document.createElement(\"div\");\r\n goldDisplay.setAttribute(\"class\", \"textDisplay\");\r\n goldcell.appendChild(goldDisplay);\r\n const goldLabel = document.createElement(\"div\");\r\n goldLabel.setAttribute(\"class\", \"textDisplayLabel\");\r\n goldLabel.textContent = \"Gold: \";\r\n goldDisplay.appendChild(goldLabel);\r\n const goldValue = document.createElement(\"div\");\r\n goldValue.setAttribute(\"class\", \"textDisplayValue gold\");\r\n goldValue.textContent = data.gold.toLocaleString(\"en-US\");\r\n goldDisplay.appendChild(goldValue);\r\n const div = document.createElement(\"div\");\r\n div.setAttribute(\"class\", \"border\");\r\n bankUI.appendChild(div);\r\n const packdisplay = document.createElement(\"div\");\r\n packdisplay.setAttribute(\"class\", \"pack\");\r\n bankUI.appendChild(packdisplay);\r\n const pack = `items${currentPackNum}`;\r\n displayBankPack(data[pack], packdisplay);\r\n}\r\nfunction displayBankPack(data, ele) {\r\n for (let i = 0; i < 6; i++) {\r\n const row = document.createElement(\"div\");\r\n ele.appendChild(row);\r\n for (let j = 0; j < 7; j++) {\r\n const num = (i * 7) + j;\r\n const slot = document.createElement(\"div\");\r\n slot.setAttribute(\"class\", \"itemslot\");\r\n row.appendChild(slot);\r\n const border = document.createElement(\"div\");\r\n border.setAttribute(\"class\", \"itemborder\");\r\n slot.appendChild(border);\r\n const frame = document.createElement(\"div\");\r\n frame.setAttribute(\"class\", \"itemframe\");\r\n border.appendChild(frame);\r\n const item = data[num];\r\n if (!item)\r\n continue;\r\n displayItem(item, frame);\r\n }\r\n }\r\n}\r\n\n\n//# sourceURL=webpack://adventureland-gui/./source/client/index.ts?"); /***/ }), /***/ "pixi.js": /*!***********************!*\ !*** external "PIXI" ***! \***********************/ /***/ ((module) => { module.exports = PIXI; /***/ }), /***/ "./node_modules/@socket.io/component-emitter/index.mjs": /*!*************************************************************!*\ !*** ./node_modules/@socket.io/component-emitter/index.mjs ***! \*************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Emitter\": () => (/* binding */ Emitter)\n/* harmony export */ });\n/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nfunction Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n\n\n//# sourceURL=webpack://adventureland-gui/./node_modules/@socket.io/component-emitter/index.mjs?"); /***/ }), /***/ "./node_modules/engine.io-client/build/esm/contrib/has-cors.js": /*!*********************************************************************!*\ !*** ./node_modules/engine.io-client/build/esm/contrib/has-cors.js ***! \*********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"hasCORS\": () => (/* binding */ hasCORS)\n/* harmony export */ });\n// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nconst hasCORS = value;\n\n\n//# sourceURL=webpack://adventureland-gui/./node_modules/engine.io-client/build/esm/contrib/has-cors.js?"); /***/ }), /***/ "./node_modules/engine.io-client/build/esm/contrib/parseqs.js": /*!********************************************************************!*\ !*** ./node_modules/engine.io-client/build/esm/contrib/parseqs.js ***! \********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"decode\": () => (/* binding */ decode),\n/* harmony export */ \"encode\": () => (/* binding */ encode)\n/* harmony export */ });\n// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nfunction encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nfunction decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n\n\n//# sourceURL=webpack://adventureland-gui/./node_modules/engine.io-client/build/esm/contrib/parseqs.js?"); /***/ }), /***/ "./node_modules/engine.io-client/build/esm/contrib/parseuri.js": /*!*********************************************************************!*\ !*** ./node_modules/engine.io-client/build/esm/contrib/parseuri.js ***! \*********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"parse\": () => (/* binding */ parse)\n/* harmony export */ });\n// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nfunction parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.substr(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.substr(path.length - 1, 1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n\n\n//# sourceURL=webpack://adventureland-gui/./node_modules/engine.io-client/build/esm/contrib/parseuri.js?"); /***/ }), /***/ "./node_modules/engine.io-client/build/esm/contrib/yeast.js": /*!******************************************************************!*\ !*** ./node_modules/engine.io-client/build/esm/contrib/yeast.js ***! \******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"decode\": () => (/* binding */ decode),\n/* harmony export */ \"encode\": () => (/* binding */ encode),\n/* harmony export */ \"yeast\": () => (/* binding */ yeast)\n/* harmony export */ });\n// imported from https://github.com/unshiftio/yeast\n\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nfunction encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nfunction decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nfunction yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n\n\n//# sourceURL=webpack://adventureland-gui/./node_modules/engine.io-client/build/esm/contrib/yeast.js?"); /***/ }), /***/ "./node_modules/engine.io-client/build/esm/globalThis.browser.js": /*!***********************************************************************!*\ !*** ./node_modules/engine.io-client/build/esm/globalThis.browser.js ***! \***********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"globalThisShim\": () => (/* binding */ globalThisShim)\n/* harmony export */ });\nconst globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n\n\n//# sourceURL=webpack://adventureland-gui/./node_modules/engine.io-client/build/esm/globalThis.browser.js?"); /***/ }), /***/ "./node_modules/engine.io-client/build/esm/index.js": /*!**********************************************************!*\ !*** ./node_modules/engine.io-client/build/esm/index.js ***! \**********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Socket\": () => (/* reexport safe */ _socket_js__WEBPACK_IMPORTED_MODULE_0__.Socket),\n/* harmony export */ \"Transport\": () => (/* reexport safe */ _transport_js__WEBPACK_IMPORTED_MODULE_1__.Transport),\n/* harmony export */ \"installTimerFunctions\": () => (/* reexport safe */ _util_js__WEBPACK_IMPORTED_MODULE_3__.installTimerFunctions),\n/* harmony export */ \"parse\": () => (/* reexport safe */ _contrib_parseuri_js__WEBPACK_IMPORTED_MODULE_4__.parse),\n/* harmony export */ \"protocol\": () => (/* binding */ protocol),\n/* harmony export */ \"transports\": () => (/* reexport safe */ _transports_index_js__WEBPACK_IMPORTED_MODULE_2__.transports)\n/* harmony export */ });\n/* harmony import */ var _socket_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./socket.js */ \"./node_modules/engine.io-client/build/esm/socket.js\");\n/* harmony import */ var _transport_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transport.js */ \"./node_modules/engine.io-client/build/esm/transport.js\");\n/* harmony import */ var _transports_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transports/index.js */ \"./node_modules/engine.io-client/build/esm/transports/index.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util.js */ \"./node_modules/engine.io-client/build/esm/util.js\");\n/* harmony import */ var _contrib_parseuri_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./contrib/parseuri.js */ \"./node_modules/engine.io-client/build/esm/contrib/parseuri.js\");\n\n\nconst protocol = _socket_js__WEBPACK_IMPORTED_MODULE_0__.Socket.protocol;\n\n\n\n\n\n\n//# sourceURL=webpack://adventureland-gui/./node_modules/engine.io-client/build/esm/index.js?"); /***/ }), /***/ "./node_modules/engine.io-client/build/esm/socket.js": /*!***********************************************************!*\ !*** ./node_modules/engine.io-client/build/esm/socket.js ***! \***********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Socket\": () => (/* binding */ Socket)\n/* harmony export */ });\n/* harmony import */ var _transports_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transports/index.js */ \"./node_modules/engine.io-client/build/esm/transports/index.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util.js */ \"./node_modules/engine.io-client/build/esm/util.js\");\n/* harmony import */ var _contrib_parseqs_js__WEBPACK_IMPORTED_MODULE_2__ = __web