{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/icons/washerwoman.png","webpack:///./src/assets/icons/barista.png","webpack:///./src/assets/icons/cerenovus.png","webpack:///./src/assets/icons/amnesiac.png","webpack:///./src/assets/icons/shabaloth.png","webpack:///./src/assets/icons/lunatic.png","webpack:///./src/assets/icons/oracle.png","webpack:///./src/assets/icons/ravenkeeper.png","webpack:///./src/assets/icons/undertaker.png","webpack:///./src/assets/icons/chambermaid.png","webpack:///./src/assets/icons/plus.png","webpack:///./src/assets/icons/recluse.png","webpack:///./src/assets/icons/mutant.png","webpack:///./src/assets/icons/chef.png","webpack:///./src/assets/icons/zombuul.png","webpack:///./src/assets/icons/sailor.png","webpack:///./src/assets/icons/widow.png","webpack:///./src/store/session.js","webpack:///./src/assets/icons/bonecollector.png","webpack:///./src/assets/icons/baron.png","webpack:///./src/assets/icons/bureaucrat.png","webpack:///./src/assets/icons/leviathan.png","webpack:///./src/assets/icons/artist.png","webpack:///./src/assets/icons/sage.png","webpack:///./src/assets/icons/scapegoat.png","webpack:///./src/assets/icons/philosopher.png","webpack:///./src/components/TownSquare.vue?b88a","webpack:///./src/assets/icons/butcher.png","webpack:///./src/assets/icons/towncrier.png","webpack:///./src/assets/icons/vortox.png","webpack:///./src/assets/icons/deviant.png","webpack:///./src/assets/icons/imp.png","webpack:///./src/assets/icons/moonchild.png","webpack:///./src/assets/icons/snakecharmer.png","webpack:///./src/assets/icons/fortuneteller.png","webpack:///./src/assets/icons/fool.png","webpack:///./src/assets/icons/apprentice.png","webpack:///./src/components/Menu.vue?bf0d","webpack:///./src/assets/icons/librarian.png","webpack:///./src/assets/icons/soldier.png","webpack:///./src/assets/icons/minstrel.png","webpack:///./src/assets/icons/exorcist.png","webpack:///./src/assets/icons/harlot.png","webpack:///./src/assets/icons/goon.png","webpack:///./src/App.vue?3b3e","webpack:///./src/components/TownSquare.vue?7424","webpack:///./src/components/Player.vue?bd1d","webpack:///./src/components/Token.vue?b481","webpack:///src/components/Token.vue","webpack:///./src/components/Token.vue?ca97","webpack:///./src/components/Token.vue","webpack:///src/components/Player.vue","webpack:///./src/components/Player.vue?1369","webpack:///./src/components/Player.vue","webpack:///./src/components/modals/ReminderModal.vue?fd10","webpack:///./src/components/modals/Modal.vue?52c3","webpack:///src/components/modals/Modal.vue","webpack:///./src/components/modals/Modal.vue?a5e5","webpack:///./src/components/modals/Modal.vue","webpack:///src/components/modals/ReminderModal.vue","webpack:///./src/components/modals/ReminderModal.vue?c533","webpack:///./src/components/modals/ReminderModal.vue","webpack:///./src/components/modals/RoleModal.vue?e98b","webpack:///src/components/modals/RoleModal.vue","webpack:///./src/components/modals/RoleModal.vue?15f8","webpack:///./src/components/modals/RoleModal.vue","webpack:///src/components/TownSquare.vue","webpack:///./src/components/TownSquare.vue?335a","webpack:///./src/components/TownSquare.vue","webpack:///./src/components/TownInfo.vue?0961","webpack:///src/components/TownInfo.vue","webpack:///./src/components/TownInfo.vue?6260","webpack:///./src/components/TownInfo.vue","webpack:///./src/components/Menu.vue?eccf","webpack:///./src/components/Screenshot.vue?ed03","webpack:///src/components/Screenshot.vue","webpack:///./src/components/Screenshot.vue?82cf","webpack:///./src/components/Screenshot.vue","webpack:///src/components/Menu.vue","webpack:///./src/components/Menu.vue?9842","webpack:///./src/components/Menu.vue","webpack:///./src/components/modals/RolesModal.vue?7af3","webpack:///src/components/modals/RolesModal.vue","webpack:///./src/components/modals/RolesModal.vue?b003","webpack:///./src/components/modals/RolesModal.vue","webpack:///./src/components/modals/EditionModal.vue?ec86","webpack:///src/components/modals/EditionModal.vue","webpack:///./src/components/modals/EditionModal.vue?d6f4","webpack:///./src/components/modals/EditionModal.vue","webpack:///./src/components/Intro.vue?9a5b","webpack:///src/components/Intro.vue","webpack:///./src/components/Intro.vue?a380","webpack:///./src/components/Intro.vue","webpack:///src/App.vue","webpack:///./src/App.vue?b65f","webpack:///./src/App.vue","webpack:///./src/store/modules/players.js","webpack:///./src/store/index.js","webpack:///./src/main.js","webpack:///./src/assets/icons/cannibal.png","webpack:///./src/App.vue?6ee5","webpack:///./src/assets/icons/goblin.png","webpack:///./src/assets/icons/x.png","webpack:///./src/assets/icons sync ^\\.\\/.*\\.png$","webpack:///./src/assets/icons/butler.png","webpack:///./src/assets/icons/juggler.png","webpack:///./src/assets/icons/balloonist.png","webpack:///./src/assets/icons/innkeeper.png","webpack:///./src/assets/icons/good.png","webpack:///./src/assets/icons/flowergirl.png","webpack:///./src/assets/icons/monk.png","webpack:///./src/assets/icons/nodashii.png","webpack:///./src/assets/icons/saint.png","webpack:///./src/assets/icons/fanggu.png","webpack:///./src/assets/icons/dreamer.png","webpack:///./src/components/Player.vue?6d3c","webpack:///./src/assets/icons/pithag.png","webpack:///./src/assets/icons/bishop.png","webpack:///./src/components/modals/Modal.vue?3563","webpack:///./src/assets/icons/mathematician.png","webpack:///./src/components/modals/EditionModal.vue?4f76","webpack:///./src/components/TownInfo.vue?ca37","webpack:///./src/assets/icons/assassin.png","webpack:///./src/assets/icons/godfather.png","webpack:///./src/assets/icons/thief.png","webpack:///./src/assets/icons/tinker.png","webpack:///./src/components/Intro.vue?efdc","webpack:///./src/assets/icons/pukka.png","webpack:///./src/assets/icons/voudon.png","webpack:///./src/components/modals/RoleModal.vue?240c","webpack:///./src/assets/icons/seamstress.png","webpack:///./src/assets/icons/klutz.png","webpack:///./src/assets/icons/matron.png","webpack:///./src/assets/icons/mayor.png","webpack:///./src/assets/icons/professor.png","webpack:///./src/assets/icons/investigator.png","webpack:///./src/assets/icons/tealady.png","webpack:///./src/assets/icons/empath.png","webpack:///./src/components/Token.vue?0f0c","webpack:///./src/components/modals/RolesModal.vue?53f0","webpack:///./src/components/modals/ReminderModal.vue?3635","webpack:///./src/assets/icons/evil.png","webpack:///./src/assets/icons/fisherman.png","webpack:///./src/assets/icons/po.png","webpack:///./src/components/Screenshot.vue?d943","webpack:///./src/assets/icons/grandmother.png","webpack:///./src/assets/icons/gossip.png","webpack:///./src/assets/icons/devilsadvocate.png","webpack:///./src/assets/icons/beggar.png","webpack:///./src/assets/icons/slayer.png","webpack:///./src/assets/icons/savant.png","webpack:///./src/assets/icons/drunk.png","webpack:///./src/assets/icons/gambler.png","webpack:///./src/store/persistence.js","webpack:///./src/assets/icons/eviltwin.png","webpack:///./src/assets/icons/spy.png","webpack:///./src/assets/icons/courtier.png","webpack:///./src/assets/icons/gunslinger.png","webpack:///./src/assets/icons/virgin.png","webpack:///./src/assets/icons/judge.png","webpack:///./src/assets/icons/sweetheart.png","webpack:///./src/assets/icons/poisoner.png","webpack:///./src/assets/icons/scarletwoman.png","webpack:///./src/assets/icons/vigormortis.png","webpack:///./src/assets/icons/witch.png","webpack:///./src/assets/icons/mastermind.png","webpack:///./src/assets/icons/clockmaker.png","webpack:///./src/assets/icons/barber.png","webpack:///./src/assets/icons/pacifist.png"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","LiveSession","store","this","wss","socket","isSpectator","gamestate","channel","disconnect","WebSocket","addEventListener","_handleMessage","onopen","_onOpen","onclose","commit","command","params","send","JSON","stringify","_send","sendGamestate","parse","err","console","log","_updateGamestate","_updatePlayer","state","session","_open","close","players","map","player","isDead","isVoteless","role","team","id","edition","x","forEach","index","indexOf","subscribe","type","payload","connect","location","hash","sendPlayer","param","substr","split","render","_vm","_h","$createElement","_c","_self","class","screenshot","grimoire","isScreenshot","style","backgroundImage","background","attrs","on","keyup","_e","takeScreenshot","ref","staticRenderFns","staticClass","public","isPublic","spectator","zoom","_l","from","Math","max","swap","move","nominate","$event","openReminderModal","openRoleModal","removePlayer","cancel","swapPlayer","movePlayer","$emit","_v","stopPropagation","bluffs","selectedPlayer","dead","traveler","toggleStatus","nightOrder","first","isNightOrder","_s","_f","firstNightReminder","other","otherNightReminder","updatePlayer","active","isMenuOpen","changeName","reminder","removeReminder","setRole","reminders","ability","props","default","filters","nameToFontSize","methods","component","components","Token","required","computed","isSwap","handleEmojis","text","replace","width","height","y","$refs","getBoundingClientRect","prompt","$store","playerIndex","directives","rawName","modals","availableReminders","expression","toggleModal","addReminder","_t","Modal","roles","some","availableRoles","Player","RoleModal","ReminderModal","confirm","to","undefined","teams","alive","votes","townsfolk","outsider","minion","demon","nonTravelers","getters","filter","game","leaveSession","success","isScreenshotSuccess","open","toggleMenu","toggleGrimoire","toggleNightOrder","updateZoom","round","setBackground","sessionId","hostSession","joinSession","copySessionUrl","addPlayer","randomizeSeatings","clearPlayers","clearRoles","stream","canvas","video","alert","navigator","mediaDevices","getDisplayMedia","cursor","audio","srcObject","play","setTimeout","context","getContext","setAttribute","videoWidth","videoHeight","drawImage","toBlob","blob","item","ClipboardItem","clipboard","write","Screenshot","dimensions","capture","random","permissions","query","then","url","href","link","writeText","dispatch","teamRoles","selected","disabled","selectedRoles","assignRoles","selectRandomRoles","randomElement","arr","floor","roleSelection","values","reduce","a","b","hasSelectedSetupRoles","setup","$set","playerCount","composition","keys","available","sort","pop","mounted","watch","isCustom","script","handleURL","handleUpload","openUpload","promptURL","setEdition","editions","scripts","upload","click","file","files","size","reader","FileReader","parseScript","readAsText","res","fetch","json","Intro","TownInfo","TownSquare","Menu","EditionModal","RolesModal","menu","NEWPLAYER","min","firstNight","otherNight","includes","Map","set","actions","mutations","namespaced","use","getRolesByEdition","selectedEdition","find","localeCompare","Store","document","title","by","status","plugins","faIcons","add","config","productionTip","h","App","$mount","webpackContext","req","webpackContextResolve","e","Error","code","resolve","localStorage","getItem","setItem","removeItem"],"mappings":"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","file":"js/app.c6122c24.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/townsquare/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"56d7\",\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/washerwoman.a0c66e53.png\";","module.exports = __webpack_public_path__ + \"img/barista.fd2bba67.png\";","module.exports = __webpack_public_path__ + \"img/cerenovus.736554ca.png\";","module.exports = __webpack_public_path__ + \"img/amnesiac.03ce8f67.png\";","module.exports = __webpack_public_path__ + \"img/shabaloth.f461dd08.png\";","module.exports = __webpack_public_path__ + \"img/lunatic.f2982146.png\";","module.exports = __webpack_public_path__ + \"img/oracle.63459162.png\";","module.exports = __webpack_public_path__ + \"img/ravenkeeper.552f1f2f.png\";","module.exports = __webpack_public_path__ + \"img/undertaker.1df72155.png\";","module.exports = __webpack_public_path__ + \"img/chambermaid.b6f002ce.png\";","module.exports = __webpack_public_path__ + \"img/plus.c11bf1ed.png\";","module.exports = __webpack_public_path__ + \"img/recluse.a6519a1d.png\";","module.exports = __webpack_public_path__ + \"img/mutant.b28a535c.png\";","module.exports = __webpack_public_path__ + \"img/chef.d4e7f9a6.png\";","module.exports = __webpack_public_path__ + \"img/zombuul.ec71a259.png\";","module.exports = __webpack_public_path__ + \"img/sailor.631521c2.png\";","module.exports = __webpack_public_path__ + \"img/widow.ec8d8cb0.png\";","class LiveSession {\n constructor(store) {\n this.wss = \"wss://connect.websocket.in/v3/\";\n this.key = \"zXzDomOphNQ94tWXrHfT8E8gkxjUMSXOQt0ypZetKoFsIUiEBegqWNAlExyd\";\n this.socket = null;\n this.isSpectator = true;\n this.gamestate = [];\n this.store = store;\n }\n\n /**\n * Open a new session for the passed channel.\n * @param channel\n * @private\n */\n _open(channel) {\n this.disconnect();\n this.socket = new WebSocket(this.wss + channel + \"?apiKey=\" + this.key);\n this.socket.addEventListener(\"message\", this._handleMessage.bind(this));\n this.socket.onopen = this._onOpen.bind(this);\n this.socket.onclose = () => {\n this.socket = null;\n this.store.commit(\"setSessionId\", \"\");\n };\n }\n\n /**\n * Send a message through the socket.\n * @param command\n * @param params\n * @private\n */\n _send(command, params) {\n if (this.socket) {\n this.socket.send(JSON.stringify([command, params]));\n }\n }\n\n /**\n * Open event handler for socket.\n * @private\n */\n _onOpen() {\n if (this.isSpectator) {\n this._send(\"req\", \"gs\");\n } else {\n this.sendGamestate();\n }\n }\n\n /**\n * Handle an incoming socket message.\n * @param data\n * @private\n */\n _handleMessage({ data }) {\n let command, params;\n try {\n [command, params] = JSON.parse(data);\n } catch (err) {\n console.log(\"unsupported socket message\", data);\n }\n switch (command) {\n case \"req\":\n if (params === \"gs\") {\n this.sendGamestate();\n }\n break;\n case \"gs\":\n this._updateGamestate(params);\n break;\n case \"player\":\n this._updatePlayer(params);\n }\n }\n\n /**\n * Connect to a new live session, either as host or spectator.\n * @param channel\n */\n connect(channel) {\n this.isSpectator = this.store.state.session.isSpectator;\n this._open(channel);\n }\n\n /**\n * Close the current session, if any.\n */\n disconnect() {\n if (this.socket) {\n this.socket.close();\n this.socket = null;\n }\n }\n\n /**\n * Publish the current gamestate.\n */\n sendGamestate() {\n if (this.isSpectator) return;\n this.gamestate = this.store.state.players.players.map(player => ({\n name: player.name,\n isDead: player.isDead,\n isVoteless: player.isVoteless,\n ...(player.role && player.role.team === \"traveler\"\n ? {\n role: {\n id: player.role.id,\n team: \"traveler\",\n name: player.role.name\n }\n }\n : {})\n }));\n this._send(\"gs\", {\n gamestate: this.gamestate,\n edition: this.store.state.edition\n });\n }\n\n /**\n * Update the gamestate based on incoming data.\n * @param gamestate\n * @param edition\n * @private\n */\n _updateGamestate({ gamestate, edition }) {\n this.store.commit(\"setEdition\", edition);\n const players = this.store.state.players.players;\n // adjust number of players\n if (players.length < gamestate.length) {\n for (let x = players.length; x < gamestate.length; x++) {\n this.store.commit(\"players/add\", gamestate[x].name);\n }\n } else if (players.length > gamestate.length) {\n for (let x = players.length; x > gamestate.length; x--) {\n this.store.commit(\"players/remove\", x - 1);\n }\n }\n // update status for each player\n gamestate.forEach((state, x) => {\n const player = players[x];\n const { name, isDead, isVoteless, role } = state;\n if (player.name !== name) {\n this.store.commit(\"players/update\", {\n player,\n property: \"name\",\n value: name\n });\n }\n if (player.isDead !== isDead) {\n this.store.commit(\"players/update\", {\n player,\n property: \"isDead\",\n value: isDead\n });\n }\n if (player.isVoteless !== isVoteless) {\n this.store.commit(\"players/update\", {\n player,\n property: \"isVoteless\",\n value: isVoteless\n });\n }\n if (role && player.role.id !== role.id) {\n this.store.commit(\"players/update\", {\n player,\n property: \"role\",\n value: role\n });\n } else if (!role && player.role.team === \"traveler\") {\n this.store.commit(\"players/update\", {\n player,\n property: \"role\",\n value: {}\n });\n }\n });\n }\n\n /**\n * Publish a player update.\n * @param player\n * @param property\n * @param value\n */\n sendPlayer({ player, property, value }) {\n if (this.isSpectator || property === \"reminders\") return;\n const index = this.store.state.players.players.indexOf(player);\n if (property === \"role\") {\n if (value.team && value.team === \"traveler\") {\n // update local gamestate to remember this player as a traveler\n this.gamestate[index].role = {\n id: player.role.id,\n team: \"traveler\",\n name: player.role.name\n };\n this._send(\"player\", {\n index,\n property,\n value: this.gamestate[index].role\n });\n } else if (this.gamestate[index].role) {\n delete this.gamestate[index].role;\n this._send(\"player\", { index, property, value: {} });\n }\n } else {\n this._send(\"player\", { index, property, value });\n }\n }\n\n /**\n * Update a player based on incoming data.\n * @param index\n * @param property\n * @param value\n * @private\n */\n _updatePlayer({ index, property, value }) {\n const player = this.store.state.players.players[index];\n if (!player) return;\n // special case where a player stops being a traveler\n if (\n property === \"role\" &&\n value.team !== \"traveler\" &&\n player.role.team === \"traveler\"\n ) {\n // reset to an unknown role\n this.store.commit(\"players/update\", {\n player,\n property: \"role\",\n value: {}\n });\n } else {\n // just update the player otherwise\n this.store.commit(\"players/update\", { player, property, value });\n }\n }\n}\n\nmodule.exports = store => {\n // setup\n const session = new LiveSession(store);\n\n // listen to mutations\n store.subscribe(({ type, payload }) => {\n switch (type) {\n case \"setSessionId\":\n if (payload) {\n session.connect(payload);\n } else {\n window.location.hash = \"\";\n session.disconnect();\n }\n break;\n case \"players/set\":\n case \"players/swap\":\n case \"players/move\":\n case \"players/clear\":\n case \"players/remove\":\n case \"players/add\":\n case \"setEdition\":\n session.sendGamestate();\n break;\n case \"players/update\":\n session.sendPlayer(payload);\n break;\n }\n });\n\n // check for session Id in hash\n const [command, param] = window.location.hash.substr(1).split(\"/\");\n if (command === \"play\") {\n store.commit(\"setSpectator\", true);\n store.commit(\"setSessionId\", param);\n }\n};\n","module.exports = __webpack_public_path__ + \"img/bonecollector.846af8c8.png\";","module.exports = __webpack_public_path__ + \"img/baron.9ce9bd3b.png\";","module.exports = __webpack_public_path__ + \"img/bureaucrat.88ec372a.png\";","module.exports = __webpack_public_path__ + \"img/leviathan.dfbff6e8.png\";","module.exports = __webpack_public_path__ + \"img/artist.f89690cd.png\";","module.exports = __webpack_public_path__ + \"img/sage.5afc100d.png\";","module.exports = __webpack_public_path__ + \"img/scapegoat.8bd95c23.png\";","module.exports = __webpack_public_path__ + \"img/philosopher.92032c70.png\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TownSquare.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TownSquare.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/butcher.e0b672b7.png\";","module.exports = __webpack_public_path__ + \"img/towncrier.18a4377b.png\";","module.exports = __webpack_public_path__ + \"img/vortox.6add3a3a.png\";","module.exports = __webpack_public_path__ + \"img/deviant.e8a761ae.png\";","module.exports = __webpack_public_path__ + \"img/imp.cd0fa5b8.png\";","module.exports = __webpack_public_path__ + \"img/moonchild.6c84161e.png\";","module.exports = __webpack_public_path__ + \"img/snakecharmer.e512cc1e.png\";","module.exports = __webpack_public_path__ + \"img/fortuneteller.4396927c.png\";","module.exports = __webpack_public_path__ + \"img/fool.a730aab3.png\";","module.exports = __webpack_public_path__ + \"img/apprentice.b7055345.png\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=style&index=0&id=87b1e426&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=style&index=0&id=87b1e426&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/librarian.6fd7f267.png\";","module.exports = __webpack_public_path__ + \"img/soldier.451de0df.png\";","module.exports = __webpack_public_path__ + \"img/minstrel.1647382d.png\";","module.exports = __webpack_public_path__ + \"img/exorcist.8c0f5cac.png\";","module.exports = __webpack_public_path__ + \"img/harlot.1a418200.png\";","module.exports = __webpack_public_path__ + \"img/goon.719106f2.png\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ screenshot: _vm.grimoire.isScreenshot },style:({\n backgroundImage: _vm.grimoire.background\n ? (\"url('\" + (_vm.grimoire.background) + \"')\")\n : ''\n }),attrs:{\"id\":\"app\",\"tabindex\":\"-1\"},on:{\"keyup\":_vm.keyup}},[(!_vm.players.length)?_c('Intro'):_vm._e(),(_vm.players.length)?_c('TownInfo'):_vm._e(),_c('TownSquare',{on:{\"screenshot\":_vm.takeScreenshot}}),_c('Menu',{ref:\"menu\"}),_c('EditionModal'),_c('RolesModal')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"square\",class:{\n public: _vm.grimoire.isPublic,\n spectator: _vm.session.isSpectator\n },style:({ zoom: _vm.grimoire.zoom }),attrs:{\"id\":\"townsquare\"}},[_c('ul',{staticClass:\"circle\",class:['size-' + _vm.players.length]},_vm._l((_vm.players),function(player,index){return _c('Player',{key:index,class:{\n from: Math.max(_vm.swap, _vm.move, _vm.nominate) === index,\n swap: _vm.swap > -1,\n move: _vm.move > -1,\n nominate: _vm.nominate > -1\n },attrs:{\"player\":player},on:{\"add-reminder\":function($event){return _vm.openReminderModal(index)},\"set-role\":function($event){return _vm.openRoleModal(index)},\"remove-player\":function($event){return _vm.removePlayer(index)},\"cancel\":function($event){return _vm.cancel(index)},\"swap-player\":function($event){return _vm.swapPlayer(index, $event)},\"move-player\":function($event){return _vm.movePlayer(index, $event)},\"screenshot\":function($event){return _vm.$emit('screenshot', $event)}}})}),1),(_vm.players.length > 6)?_c('div',{ref:\"bluffs\",staticClass:\"bluffs\"},[_c('h3',[_vm._v(\"Demon bluffs\")]),_c('font-awesome-icon',{attrs:{\"icon\":\"camera\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.takeScreenshot($event)}}}),_c('ul',_vm._l((_vm.bluffs),function(index){return _c('li',{key:index,on:{\"click\":function($event){return _vm.openRoleModal(index * -1)}}},[_c('Token',{attrs:{\"role\":_vm.grimoire.bluffs[index - 1]}})],1)}),0)],1):_vm._e(),_c('ReminderModal',{attrs:{\"player-index\":_vm.selectedPlayer}}),_c('RoleModal',{attrs:{\"player-index\":_vm.selectedPlayer}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',[_c('div',{ref:\"player\",staticClass:\"player\",class:{\n dead: _vm.player.isDead,\n 'no-vote': _vm.player.isVoteless,\n traveler: _vm.player.role && _vm.player.role.team === 'traveler'\n }},[_c('div',{staticClass:\"shroud\",on:{\"click\":function($event){return _vm.toggleStatus()}}}),_c('div',{staticClass:\"life\",on:{\"click\":function($event){return _vm.toggleStatus()}}}),(_vm.nightOrder.get(_vm.player).first && _vm.grimoire.isNightOrder)?_c('div',{staticClass:\"night first\"},[_c('em',[_vm._v(_vm._s(_vm.nightOrder.get(_vm.player).first)+\".\")]),(_vm.player.role.firstNightReminder)?_c('span',[_vm._v(_vm._s(_vm._f(\"handleEmojis\")(_vm.player.role.firstNightReminder)))]):_vm._e()]):_vm._e(),(_vm.nightOrder.get(_vm.player).other && _vm.grimoire.isNightOrder)?_c('div',{staticClass:\"night other\"},[_c('em',[_vm._v(_vm._s(_vm.nightOrder.get(_vm.player).other)+\".\")]),(_vm.player.role.otherNightReminder)?_c('span',[_vm._v(_vm._s(_vm._f(\"handleEmojis\")(_vm.player.role.otherNightReminder)))]):_vm._e()]):_vm._e(),_c('Token',{attrs:{\"role\":_vm.player.role},on:{\"set-role\":function($event){return _vm.$emit('set-role')}}}),_c('font-awesome-icon',{staticClass:\"cancel\",attrs:{\"icon\":\"times-circle\",\"title\":\"Cancel\"},on:{\"click\":function($event){return _vm.cancel()}}}),_c('font-awesome-icon',{staticClass:\"swap\",attrs:{\"icon\":\"exchange-alt\",\"title\":\"Swap seats with this player\"},on:{\"click\":function($event){return _vm.swapPlayer(_vm.player)}}}),_c('font-awesome-icon',{staticClass:\"move\",attrs:{\"icon\":\"redo-alt\",\"title\":\"Move player to this seat\"},on:{\"click\":function($event){return _vm.movePlayer(_vm.player)}}}),(_vm.player.isDead && !_vm.player.isVoteless)?_c('font-awesome-icon',{staticClass:\"vote\",attrs:{\"icon\":\"vote-yea\",\"title\":\"Ghost vote\"},on:{\"click\":function($event){return _vm.updatePlayer('isVoteless', true)}}}):_vm._e(),_c('div',{staticClass:\"name\",class:{ active: _vm.isMenuOpen },on:{\"click\":function($event){_vm.isMenuOpen = !_vm.isMenuOpen}}},[_vm._v(\" \"+_vm._s(_vm.player.name)+\" \")]),_c('transition',{attrs:{\"name\":\"fold\"}},[(_vm.isMenuOpen && !_vm.session.isSpectator)?_c('ul',{staticClass:\"menu\"},[_c('li',{on:{\"click\":_vm.changeName}},[_c('font-awesome-icon',{attrs:{\"icon\":\"user-edit\"}}),_vm._v(\"Rename \")],1),_c('li',{on:{\"click\":function($event){return _vm.movePlayer()}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"redo-alt\"}}),_vm._v(\" Move player \")],1),_c('li',{on:{\"click\":function($event){return _vm.swapPlayer()}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"exchange-alt\"}}),_vm._v(\" Swap seats \")],1),_c('li',{on:{\"click\":_vm.takeScreenshot}},[_c('font-awesome-icon',{attrs:{\"icon\":\"camera\"}}),_vm._v(\" Screenshot \")],1),_c('li',{on:{\"click\":function($event){return _vm.$emit('remove-player')}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"times-circle\"}}),_vm._v(\" Remove \")],1)]):_vm._e()])],1),(_vm.player.reminders)?_vm._l((_vm.player.reminders),function(reminder){return _c('div',{key:reminder.role + ' ' + reminder.name,staticClass:\"reminder\",class:[reminder.role],on:{\"click\":function($event){return _vm.removeReminder(reminder)}}},[_c('span',{staticClass:\"icon\",style:({\n backgroundImage: (\"url(\" + (require('../assets/icons/' +\n reminder.role +\n '.png')) + \")\")\n })}),_vm._v(\" \"+_vm._s(reminder.name)+\" \")])}):_vm._e(),_c('div',{staticClass:\"reminder add\",on:{\"click\":function($event){return _vm.$emit('add-reminder')}}},[_c('span',{staticClass:\"icon\"})])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"token\",class:[_vm.role.id],on:{\"click\":_vm.setRole}},[(_vm.role.id)?_c('span',{staticClass:\"icon\",style:({\n backgroundImage: (\"url(\" + (require('../assets/icons/' +\n _vm.role.id +\n '.png')) + \")\")\n })}):_vm._e(),(_vm.role.firstNight)?_c('span',{staticClass:\"leaf-left\"}):_vm._e(),(_vm.role.otherNight)?_c('span',{staticClass:\"leaf-right\"}):_vm._e(),(_vm.role.reminders && _vm.role.reminders.length)?_c('span',{class:['leaf-top' + _vm.role.reminders.length]}):_vm._e(),(_vm.role.setup)?_c('span',{staticClass:\"leaf-orange\"}):_vm._e(),_c('svg',{staticClass:\"name\",attrs:{\"viewBox\":\"0 0 150 150\"}},[_c('path',{attrs:{\"d\":\"M 13 75 C 13 160, 138 160, 138 75\",\"id\":\"curve\",\"fill\":\"transparent\"}}),_c('text',{staticClass:\"label\",attrs:{\"width\":\"150\",\"x\":\"66.6%\",\"text-anchor\":\"middle\",\"font-size\":_vm._f(\"nameToFontSize\")(_vm.role.name)}},[_c('textPath',{attrs:{\"xlink:href\":\"#curve\"}},[_vm._v(\" \"+_vm._s(_vm.role.name)+\" \")])])]),_c('div',{staticClass:\"edition\",class:[(\"edition-\" + (_vm.role.edition)), _vm.role.team]}),(_vm.role.ability)?_c('div',{staticClass:\"ability\"},[_vm._v(\" \"+_vm._s(_vm.role.ability)+\" \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Token.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Token.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Token.vue?vue&type=template&id=77841dfe&scoped=true&\"\nimport script from \"./Token.vue?vue&type=script&lang=js&\"\nexport * from \"./Token.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Token.vue?vue&type=style&index=0&id=77841dfe&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"77841dfe\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Player.vue?vue&type=template&id=0e1c03e6&\"\nimport script from \"./Player.vue?vue&type=script&lang=js&\"\nexport * from \"./Player.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Player.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.players[_vm.playerIndex])?_c('Modal',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.modals.reminder && _vm.availableReminders.length),expression:\"modals.reminder && availableReminders.length\"}],on:{\"close\":function($event){return _vm.toggleModal('reminder')}}},[_c('h3',[_vm._v(\"Choose a reminder token:\")]),_c('ul',{staticClass:\"reminders\"},_vm._l((_vm.availableReminders),function(reminder){return _c('li',{key:reminder.role + ' ' + reminder.name,staticClass:\"reminder\",class:[reminder.role],on:{\"click\":function($event){return _vm.addReminder(reminder)}}},[_c('span',{staticClass:\"icon\",style:({\n backgroundImage: (\"url(\" + (require('../../assets/icons/' +\n reminder.role +\n '.png')) + \")\")\n })}),_vm._v(\" \"+_vm._s(reminder.name)+\" \")])}),0)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"modal-fade\"}},[_c('div',{staticClass:\"modal-backdrop\",on:{\"click\":_vm.close}},[_c('div',{staticClass:\"modal\",attrs:{\"role\":\"dialog\",\"aria-labelledby\":\"modalTitle\",\"aria-describedby\":\"modalDescription\"},on:{\"click\":function($event){$event.stopPropagation();}}},[_c('font-awesome-icon',{staticClass:\"close\",attrs:{\"icon\":\"times-circle\"},on:{\"click\":_vm.close}}),_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=e5ed0adc&\"\nimport script from \"./Modal.vue?vue&type=script&lang=js&\"\nexport * from \"./Modal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Modal.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReminderModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReminderModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ReminderModal.vue?vue&type=template&id=1e8ee28e&scoped=true&\"\nimport script from \"./ReminderModal.vue?vue&type=script&lang=js&\"\nexport * from \"./ReminderModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ReminderModal.vue?vue&type=style&index=0&id=1e8ee28e&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1e8ee28e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.modals.role && _vm.availableRoles.length),expression:\"modals.role && availableRoles.length\"}],on:{\"close\":function($event){return _vm.toggleModal('role')}}},[_c('h3',[_vm._v(\" Choose a new character for \"+_vm._s(_vm.playerIndex >= 0 && _vm.players.length ? _vm.players[_vm.playerIndex].name : \"bluffing\")+\" \")]),_c('ul',{staticClass:\"tokens\"},_vm._l((_vm.availableRoles),function(role){return _c('li',{key:role.id,class:[role.team],on:{\"click\":function($event){return _vm.setRole(role)}}},[_c('Token',{attrs:{\"role\":role}})],1)}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoleModal.vue?vue&type=template&id=b7e1897a&scoped=true&\"\nimport script from \"./RoleModal.vue?vue&type=script&lang=js&\"\nexport * from \"./RoleModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RoleModal.vue?vue&type=style&index=0&id=b7e1897a&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b7e1897a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TownSquare.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TownSquare.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TownSquare.vue?vue&type=template&id=208536a7&\"\nimport script from \"./TownSquare.vue?vue&type=script&lang=js&\"\nexport * from \"./TownSquare.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TownSquare.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"info\"},[_c('li',{staticClass:\"edition\",class:['edition-' + _vm.edition]}),(_vm.players.length - _vm.teams.traveler < 5)?_c('li',[_vm._v(\" Please add more players! \")]):_vm._e(),_c('li',[_vm._v(\" \"+_vm._s(_vm.players.length)+\" \"),_c('font-awesome-icon',{staticClass:\"players\",attrs:{\"icon\":\"users\"}}),_vm._v(\" \"+_vm._s(_vm.teams.alive)+\" \"),_c('font-awesome-icon',{staticClass:\"alive\",attrs:{\"icon\":\"heartbeat\"}}),_vm._v(\" \"+_vm._s(_vm.teams.votes)+\" \"),_c('font-awesome-icon',{staticClass:\"votes\",attrs:{\"icon\":\"vote-yea\"}})],1),(_vm.players.length - _vm.teams.traveler >= 5)?_c('li',[_vm._v(\" \"+_vm._s(_vm.teams.townsfolk)+\" \"),_c('font-awesome-icon',{staticClass:\"townsfolk\",attrs:{\"icon\":\"user-friends\"}}),_vm._v(\" \"+_vm._s(_vm.teams.outsider)+\" \"),_c('font-awesome-icon',{staticClass:\"outsider\",attrs:{\"icon\":_vm.teams.outsider > 1 ? 'user-friends' : 'user'}}),_vm._v(\" \"+_vm._s(_vm.teams.minion)+\" \"),_c('font-awesome-icon',{staticClass:\"minion\",attrs:{\"icon\":_vm.teams.minion > 1 ? 'user-friends' : 'user'}}),_vm._v(\" \"+_vm._s(_vm.teams.demon)+\" \"),_c('font-awesome-icon',{staticClass:\"demon\",attrs:{\"icon\":_vm.teams.demon > 1 ? 'user-friends' : 'user'}}),(_vm.teams.traveler)?[_vm._v(\" \"+_vm._s(_vm.teams.traveler)+\" \"),_c('font-awesome-icon',{staticClass:\"traveler\",attrs:{\"icon\":_vm.teams.traveler > 1 ? 'user-friends' : 'user'}})]:_vm._e()],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TownInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TownInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TownInfo.vue?vue&type=template&id=262546e0&\"\nimport script from \"./TownInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./TownInfo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TownInfo.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"controls\"}},[_c('Screenshot',{ref:\"screenshot\"}),(_vm.session.sessionId)?_c('font-awesome-icon',{class:{ spectator: _vm.session.isSpectator },attrs:{\"icon\":\"broadcast-tower\",\"title\":\"You're currently in a live game!\"},on:{\"click\":_vm.leaveSession}}):_vm._e(),_c('font-awesome-icon',{class:{ success: _vm.grimoire.isScreenshotSuccess },attrs:{\"icon\":\"camera\",\"title\":\"Take a screenshot\"},on:{\"click\":function($event){return _vm.takeScreenshot()}}}),_c('div',{staticClass:\"menu\",class:{ open: _vm.grimoire.isMenuOpen }},[_c('font-awesome-icon',{attrs:{\"icon\":\"cog\"},on:{\"click\":_vm.toggleMenu}}),_c('ul',[_c('li',{staticClass:\"headline\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"book-open\"}}),_vm._v(\" Grimoire \")],1),(_vm.players.length)?_c('li',{on:{\"click\":_vm.toggleGrimoire}},[_c('em',[_vm._v(\"[G]\")]),(!_vm.grimoire.isPublic)?[_vm._v(\"Hide\")]:_vm._e(),(_vm.grimoire.isPublic)?[_vm._v(\"Show\")]:_vm._e()],2):_vm._e(),(_vm.players.length)?_c('li',{on:{\"click\":_vm.toggleNightOrder}},[_c('em',[_c('font-awesome-icon',{attrs:{\"icon\":['fas', _vm.grimoire.isNightOrder ? 'check-square' : 'square']}})],1),_vm._v(\" Night order \")]):_vm._e(),(_vm.players.length)?_c('li',[_c('em',[_c('font-awesome-icon',{attrs:{\"icon\":\"search-minus\"},on:{\"click\":function($event){return _vm.updateZoom(-0.1)}}}),_vm._v(\" \"+_vm._s(Math.round(_vm.grimoire.zoom * 100))+\"% \"),_c('font-awesome-icon',{attrs:{\"icon\":\"search-plus\"},on:{\"click\":function($event){return _vm.updateZoom(0.1)}}})],1),_vm._v(\" Zoom \")]):_vm._e(),_c('li',{on:{\"click\":_vm.setBackground}},[_vm._v(\" Background image \")]),(!_vm.session.sessionId)?_c('li',{on:{\"click\":_vm.hostSession}},[_vm._v(\" Host Live Session \")]):_vm._e(),(!_vm.session.sessionId)?_c('li',{on:{\"click\":_vm.joinSession}},[_vm._v(\" Join Live Session \")]):_vm._e(),(_vm.session.sessionId)?_c('li',{staticClass:\"headline\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"broadcast-tower\"}}),_vm._v(\" \"+_vm._s(_vm.session.isSpectator ? \"Playing\" : \"Hosting\")+\" \")],1):_vm._e(),(_vm.session.sessionId)?_c('li',{on:{\"click\":_vm.copySessionUrl}},[_c('em',[_c('font-awesome-icon',{attrs:{\"icon\":\"copy\"}})],1),_vm._v(\" Copy player link \")]):_vm._e(),(_vm.session.sessionId)?_c('li',{on:{\"click\":_vm.leaveSession}},[_c('em',[_vm._v(_vm._s(_vm.session.sessionId))]),_vm._v(\" Leave Session \")]):_vm._e(),(!_vm.session.isSpectator)?[_c('li',{staticClass:\"headline\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"users\"}}),_vm._v(\" Players \")],1),(_vm.players.length < 20)?_c('li',{on:{\"click\":_vm.addPlayer}},[_c('em',[_vm._v(\"[A]\")]),_vm._v(\" Add \")]):_vm._e(),(_vm.players.length > 2)?_c('li',{on:{\"click\":_vm.randomizeSeatings}},[_c('em',[_vm._v(\"[R]\")]),_vm._v(\" Randomize \")]):_vm._e(),(_vm.players.length)?_c('li',{on:{\"click\":_vm.clearPlayers}},[_vm._v(\" Remove all \")]):_vm._e(),_c('li',{staticClass:\"headline\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"theater-masks\"}}),_vm._v(\" Characters \")],1),_c('li',{on:{\"click\":function($event){return _vm.toggleModal('edition')}}},[_c('em',[_vm._v(\"[E]\")]),_vm._v(\" Select Edition \")]),(_vm.players.length > 4)?_c('li',{on:{\"click\":function($event){return _vm.toggleModal('roles')}}},[_c('em',[_vm._v(\"[C]\")]),_vm._v(\" Choose & Assign \")]):_vm._e(),(_vm.players.length)?_c('li',{on:{\"click\":_vm.clearRoles}},[_vm._v(\" Remove all \")]):_vm._e()]:_vm._e()],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"screenshot\"}},[_c('video',{ref:\"video\",attrs:{\"autoplay\":\"\"}}),_c('canvas',{ref:\"canvas\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Screenshot.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Screenshot.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Screenshot.vue?vue&type=template&id=e449adba&scoped=true&\"\nimport script from \"./Screenshot.vue?vue&type=script&lang=js&\"\nexport * from \"./Screenshot.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Screenshot.vue?vue&type=style&index=0&id=e449adba&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e449adba\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Menu.vue?vue&type=template&id=87b1e426&scoped=true&\"\nimport script from \"./Menu.vue?vue&type=script&lang=js&\"\nexport * from \"./Menu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Menu.vue?vue&type=style&index=0&id=87b1e426&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"87b1e426\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.nonTravelers >= 5)?_c('Modal',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.modals.roles),expression:\"modals.roles\"}],staticClass:\"roles\",on:{\"close\":function($event){return _vm.toggleModal('roles')}}},[_c('h3',[_vm._v(\"Select the characters for \"+_vm._s(_vm.nonTravelers)+\" players:\")]),_vm._l((_vm.roleSelection),function(teamRoles,team){return _c('ul',{key:team,staticClass:\"tokens\"},[_c('li',{staticClass:\"count\",class:[team]},[_vm._v(\" \"+_vm._s(teamRoles.filter(function (role) { return role.selected; }).length)+\" / \"+_vm._s(_vm.game[_vm.nonTravelers - 5][team])+\" \")]),_vm._l((teamRoles),function(role){return _c('li',{key:role.id,class:[role.team, role.selected ? 'selected' : ''],on:{\"click\":function($event){role.selected = !role.selected}}},[_c('Token',{attrs:{\"role\":role}})],1)})],2)}),(_vm.hasSelectedSetupRoles)?_c('div',{staticClass:\"warning\"},[_vm._v(\" Warning: there are characters selected that modify the game setup! The randomizer does not account for these characters. \")]):_vm._e(),_c('div',{staticClass:\"button-group\"},[_c('div',{staticClass:\"button\",class:{\n disabled: _vm.selectedRoles > _vm.nonTravelers || !_vm.selectedRoles\n },on:{\"click\":_vm.assignRoles}},[_c('font-awesome-icon',{attrs:{\"icon\":\"people-arrows\"}}),_vm._v(\" Assign \"+_vm._s(_vm.selectedRoles)+\" characters randomly \")],1),_c('div',{staticClass:\"button\",on:{\"click\":_vm.selectRandomRoles}},[_c('font-awesome-icon',{attrs:{\"icon\":\"random\"}}),_vm._v(\" Shuffle characters \")],1)])],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RolesModal.vue?vue&type=template&id=56f09202&scoped=true&\"\nimport script from \"./RolesModal.vue?vue&type=script&lang=js&\"\nexport * from \"./RolesModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RolesModal.vue?vue&type=style&index=0&id=56f09202&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56f09202\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.modals.edition),expression:\"modals.edition\"}],staticClass:\"editions\",on:{\"close\":function($event){return _vm.toggleModal('edition')}}},[(!_vm.isCustom)?_c('div',[_c('h3',[_vm._v(\"Select an edition:\")]),_c('ul',{staticClass:\"editions\"},[_vm._l((_vm.editions),function(edition){return _c('li',{key:edition.id,staticClass:\"edition\",class:['edition-' + edition.id],on:{\"click\":function($event){return _vm.setEdition(edition.id)}}},[_vm._v(\" \"+_vm._s(edition.name)+\" \")])}),_c('li',{staticClass:\"edition edition-custom\",on:{\"click\":function($event){_vm.isCustom = true}}},[_vm._v(\" Custom Script \")])],2)]):_c('div',{staticClass:\"custom\"},[_c('h3',[_vm._v(\"Upload a custom script\")]),_vm._v(\" To play with a custom script, you need to select the characters you want to play with in the official \"),_c('a',{attrs:{\"href\":\"https://bloodontheclocktower.com/script-tool/\",\"target\":\"_blank\"}},[_vm._v(\"Script Tool\")]),_vm._v(\" and then upload the generated \\\"custom-list.json\\\" either directly here or provide a URL to such a hosted JSON file.\"),_c('br'),_c('h3',[_vm._v(\"Some custom Teensyville scripts:\")]),_c('ul',{staticClass:\"scripts\"},_vm._l((_vm.scripts),function(script,index){return _c('li',{key:index,on:{\"click\":function($event){return _vm.handleURL(script[1])}}},[_vm._v(\" \"+_vm._s(script[0])+\" \")])}),0),_c('input',{ref:\"upload\",attrs:{\"type\":\"file\",\"accept\":\"application/json\"},on:{\"change\":_vm.handleUpload}}),_c('div',{staticClass:\"button-group\"},[_c('div',{staticClass:\"button\",on:{\"click\":_vm.openUpload}},[_c('font-awesome-icon',{attrs:{\"icon\":\"file-upload\"}}),_vm._v(\" Upload JSON \")],1),_c('div',{staticClass:\"button\",on:{\"click\":_vm.promptURL}},[_c('font-awesome-icon',{attrs:{\"icon\":\"link\"}}),_vm._v(\" Enter URL \")],1),_c('div',{staticClass:\"button\",on:{\"click\":function($event){_vm.isCustom = false}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"undo\"}}),_vm._v(\" Back \")],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditionModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditionModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditionModal.vue?vue&type=template&id=007dd7c8&scoped=true&\"\nimport script from \"./EditionModal.vue?vue&type=script&lang=js&\"\nexport * from \"./EditionModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditionModal.vue?vue&type=style&index=0&id=007dd7c8&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"007dd7c8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"intro\"},[_c('img',{attrs:{\"src\":\"static/apple-icon.png\",\"alt\":\"\"}}),_vm._v(\" Welcome to the (unofficial) \"),_c('b',[_vm._v(\" Virtual Blood on the Clocktower Town Square\")]),_vm._v(\"!\"),_c('br'),_vm._v(\" Please add more players through the \"),_c('span',{staticClass:\"button\",on:{\"click\":_vm.toggleMenu}},[_c('font-awesome-icon',{attrs:{\"icon\":\"cog\"}}),_vm._v(\" Menu \")],1),_vm._v(\" on the top right or by pressing \"),_c('b',[_vm._v(\"[A]\")]),_vm._v(\".\"),_c('br'),_vm._v(\" This project is free and open source and can be found on \"),_c('a',{attrs:{\"href\":\"https://github.com/bra1n/townsquare\",\"target\":\"_blank\"}},[_vm._v(\"GitHub\")]),_vm._v(\". \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Intro.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Intro.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Intro.vue?vue&type=template&id=1ab9b794&scoped=true&\"\nimport script from \"./Intro.vue?vue&type=script&lang=js&\"\nexport * from \"./Intro.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Intro.vue?vue&type=style&index=0&id=1ab9b794&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ab9b794\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=5341e7e7&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","const NEWPLAYER = {\n role: {},\n reminders: [],\n isVoteless: false,\n isDead: false\n};\n\nconst state = () => ({\n players: []\n});\n\nconst getters = {\n nonTravelers({ players }) {\n const nonTravelers = players.filter(\n player => player.role.team !== \"traveler\"\n );\n return Math.min(nonTravelers.length, 15);\n },\n // calculate a Map of player => night order\n nightOrder({ players }) {\n const firstNight = [0];\n const otherNight = [0];\n players.forEach(({ role }) => {\n if (role.firstNight && !firstNight.includes(role.firstNight)) {\n firstNight.push(role.firstNight);\n }\n if (role.otherNight && !otherNight.includes(role.otherNight)) {\n otherNight.push(role.otherNight);\n }\n });\n firstNight.sort((a, b) => a - b);\n otherNight.sort((a, b) => a - b);\n const nightOrder = new Map();\n players.forEach(player => {\n const first = Math.max(firstNight.indexOf(player.role.firstNight), 0);\n const other = Math.max(otherNight.indexOf(player.role.otherNight), 0);\n nightOrder.set(player, { first, other });\n });\n return nightOrder;\n }\n};\n\nconst actions = {\n randomize({ state, commit }) {\n const players = state.players\n .map(a => [Math.random(), a])\n .sort((a, b) => a[0] - b[0])\n .map(a => a[1]);\n commit(\"set\", players);\n },\n clearRoles({ state, commit }) {\n const players = state.players.map(({ name }) => ({\n name,\n ...NEWPLAYER\n }));\n commit(\"set\", players);\n }\n};\n\nconst mutations = {\n clear(state) {\n state.players = [];\n },\n set(state, players = []) {\n state.players = players;\n },\n update(state, { player, property, value }) {\n const index = state.players.indexOf(player);\n if (index >= 0) {\n state.players[index][property] = value;\n }\n },\n add(state, name) {\n state.players.push({\n name,\n ...NEWPLAYER\n });\n },\n remove(state, index) {\n state.players.splice(index, 1);\n },\n swap(state, [from, to]) {\n [state.players[from], state.players[to]] = [\n state.players[to],\n state.players[from]\n ];\n },\n move(state, [from, to]) {\n state.players.splice(to, 0, state.players.splice(from, 1)[0]);\n }\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n};\n","import Vue from \"vue\";\nimport Vuex from \"vuex\";\nimport persistence from \"./persistence\";\nimport session from \"./session\";\nimport players from \"./modules/players\";\nimport editionJSON from \"../editions.json\";\nimport rolesJSON from \"../roles.json\";\n\nVue.use(Vuex);\n\nconst getRolesByEdition = (edition = \"tb\") => {\n const selectedEdition =\n editionJSON.find(({ id }) => id === edition) || editionJSON[0];\n return new Map(\n rolesJSON\n .filter(\n r => r.edition === edition || selectedEdition.roles.includes(r.id)\n )\n .sort((a, b) => b.team.localeCompare(a.team))\n .map(role => [role.id, role])\n );\n};\n\nexport default new Vuex.Store({\n modules: {\n players\n },\n state: {\n grimoire: {\n isNightOrder: true,\n isPublic: true,\n isMenuOpen: false,\n isScreenshot: false,\n isScreenshotSuccess: false,\n zoom: 1,\n background: \"\",\n bluffs: []\n },\n session: {\n sessionId: \"\",\n isSpectator: false\n },\n modals: {\n edition: false,\n roles: false,\n role: false,\n reminder: false\n },\n edition: \"tb\",\n roles: getRolesByEdition()\n },\n mutations: {\n toggleMenu({ grimoire }) {\n grimoire.isMenuOpen = !grimoire.isMenuOpen;\n },\n toggleGrimoire({ grimoire }, isPublic) {\n if (isPublic === true || isPublic === false) {\n grimoire.isPublic = isPublic;\n } else {\n grimoire.isPublic = !grimoire.isPublic;\n }\n document.title = `Blood on the Clocktower ${\n grimoire.isPublic ? \"Town Square\" : \"Grimoire\"\n }`;\n },\n toggleNightOrder({ grimoire }) {\n grimoire.isNightOrder = !grimoire.isNightOrder;\n },\n updateZoom({ grimoire }, by = 0) {\n grimoire.zoom += by;\n },\n setBackground({ grimoire }, background) {\n grimoire.background = background;\n },\n setSessionId({ session }, sessionId) {\n session.sessionId = sessionId;\n },\n setSpectator({ session }, spectator) {\n session.isSpectator = spectator;\n },\n setBluff({ grimoire }, { index, role } = {}) {\n if (index !== undefined) {\n grimoire.bluffs.splice(index, 1, role);\n } else {\n grimoire.bluffs = [];\n }\n },\n toggleModal({ modals }, name) {\n console.log(\"toggle\", name);\n modals[name] = !modals[name];\n },\n updateScreenshot({ grimoire }, status) {\n if (status !== true && status !== false) {\n grimoire.isScreenshotSuccess = false;\n grimoire.isScreenshot = true;\n } else {\n grimoire.isScreenshotSuccess = status;\n grimoire.isScreenshot = false;\n }\n },\n setRoles(state, roles) {\n state.roles = new Map(\n rolesJSON\n .filter(r => roles.includes(r.id))\n .sort((a, b) => b.team.localeCompare(a.team))\n .map(role => [role.id, role])\n );\n },\n setEdition(state, edition) {\n state.edition = edition;\n state.modals.edition = false;\n if (edition !== \"custom\") {\n state.roles = getRolesByEdition(edition);\n }\n }\n },\n plugins: [persistence, session]\n});\n","import Vue from \"vue\";\nimport App from \"./App\";\nimport store from \"./store\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\n\nconst faIcons = [\n \"BookOpen\",\n \"BroadcastTower\",\n \"Camera\",\n \"CheckSquare\",\n \"Cog\",\n \"Copy\",\n \"ExchangeAlt\",\n \"FileUpload\",\n \"HandPointRight\",\n \"Heartbeat\",\n \"Link\",\n \"PeopleArrows\",\n \"Random\",\n \"RedoAlt\",\n \"SearchMinus\",\n \"SearchPlus\",\n \"Square\",\n \"TheaterMasks\",\n \"TimesCircle\",\n \"Undo\",\n \"User\",\n \"UserEdit\",\n \"UserFriends\",\n \"Users\",\n \"VoteYea\"\n];\nlibrary.add(...faIcons.map(i => fas[\"fa\" + i]));\nVue.component(\"font-awesome-icon\", FontAwesomeIcon);\nVue.config.productionTip = false;\n\nnew Vue({\n render: h => h(App),\n store\n}).$mount(\"#app\");\n","module.exports = __webpack_public_path__ + \"img/cannibal.e2bfb541.png\";","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/goblin.7ebbd9ad.png\";","module.exports = __webpack_public_path__ + \"img/x.fbca4d75.png\";","var map = {\n\t\"./amnesiac.png\": \"043b\",\n\t\"./apprentice.png\": \"4bea\",\n\t\"./artist.png\": \"2cd0\",\n\t\"./assassin.png\": \"9187\",\n\t\"./balloonist.png\": \"65db\",\n\t\"./barber.png\": \"fcc6\",\n\t\"./barista.png\": \"027a\",\n\t\"./baron.png\": \"24d3\",\n\t\"./beggar.png\": \"cfcc\",\n\t\"./bishop.png\": \"8030\",\n\t\"./bonecollector.png\": \"23b1\",\n\t\"./bureaucrat.png\": \"25f6\",\n\t\"./butcher.png\": \"37dd\",\n\t\"./butler.png\": \"64fe\",\n\t\"./cannibal.png\": \"5bd9\",\n\t\"./cerenovus.png\": \"0436\",\n\t\"./chambermaid.png\": \"125e\",\n\t\"./chef.png\": \"1e83\",\n\t\"./clockmaker.png\": \"f93f\",\n\t\"./courtier.png\": \"ee02\",\n\t\"./deviant.png\": \"3b65\",\n\t\"./devilsadvocate.png\": \"cd8b\",\n\t\"./dreamer.png\": \"71b8\",\n\t\"./drunk.png\": \"d97d\",\n\t\"./empath.png\": \"bb7a\",\n\t\"./evil.png\": \"c24f\",\n\t\"./eviltwin.png\": \"e014\",\n\t\"./exorcist.png\": \"5072\",\n\t\"./fanggu.png\": \"6ac0\",\n\t\"./fisherman.png\": \"c5db\",\n\t\"./flowergirl.png\": \"66ae\",\n\t\"./fool.png\": \"4720\",\n\t\"./fortuneteller.png\": \"43e8\",\n\t\"./gambler.png\": \"dce6\",\n\t\"./goblin.png\": \"5c8e\",\n\t\"./godfather.png\": \"99d0\",\n\t\"./good.png\": \"667e\",\n\t\"./goon.png\": \"55aa\",\n\t\"./gossip.png\": \"cadc\",\n\t\"./grandmother.png\": \"c9f5\",\n\t\"./gunslinger.png\": \"ee92\",\n\t\"./harlot.png\": \"559e\",\n\t\"./imp.png\": \"3e70\",\n\t\"./innkeeper.png\": \"663c\",\n\t\"./investigator.png\": \"b570\",\n\t\"./judge.png\": \"f09b\",\n\t\"./juggler.png\": \"65ab\",\n\t\"./klutz.png\": \"adfc\",\n\t\"./leviathan.png\": \"2b04\",\n\t\"./librarian.png\": \"4d73\",\n\t\"./lunatic.png\": \"0b61\",\n\t\"./mastermind.png\": \"f834\",\n\t\"./mathematician.png\": \"8888\",\n\t\"./matron.png\": \"b1cb\",\n\t\"./mayor.png\": \"b223\",\n\t\"./minstrel.png\": \"4efd\",\n\t\"./monk.png\": \"6741\",\n\t\"./moonchild.png\": \"3f65\",\n\t\"./mutant.png\": \"17ad\",\n\t\"./nodashii.png\": \"68a4\",\n\t\"./oracle.png\": \"0c12\",\n\t\"./pacifist.png\": \"fff1\",\n\t\"./philosopher.png\": \"3603\",\n\t\"./pithag.png\": \"7f07\",\n\t\"./plus.png\": \"160b\",\n\t\"./po.png\": \"c73a\",\n\t\"./poisoner.png\": \"f282\",\n\t\"./professor.png\": \"b30c\",\n\t\"./pukka.png\": \"a6a2\",\n\t\"./ravenkeeper.png\": \"0c59\",\n\t\"./recluse.png\": \"177d\",\n\t\"./sage.png\": \"30b6\",\n\t\"./sailor.png\": \"223c\",\n\t\"./saint.png\": \"6936\",\n\t\"./savant.png\": \"d715\",\n\t\"./scapegoat.png\": \"327a\",\n\t\"./scarletwoman.png\": \"f322\",\n\t\"./seamstress.png\": \"ac7c\",\n\t\"./shabaloth.png\": \"0b29\",\n\t\"./slayer.png\": \"d62b\",\n\t\"./snakecharmer.png\": \"4021\",\n\t\"./soldier.png\": \"4e76\",\n\t\"./spy.png\": \"ec1e\",\n\t\"./sweetheart.png\": \"f1e5\",\n\t\"./tealady.png\": \"ba9b\",\n\t\"./thief.png\": \"9ce3\",\n\t\"./tinker.png\": \"9f7e\",\n\t\"./towncrier.png\": \"38a5\",\n\t\"./undertaker.png\": \"0e20\",\n\t\"./vigormortis.png\": \"f4bd\",\n\t\"./virgin.png\": \"eff4\",\n\t\"./vortox.png\": \"3a43\",\n\t\"./voudon.png\": \"a710\",\n\t\"./washerwoman.png\": \"013f\",\n\t\"./widow.png\": \"22c9\",\n\t\"./witch.png\": \"f558\",\n\t\"./x.png\": \"5cf2\",\n\t\"./zombuul.png\": \"20ca\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"61b0\";","module.exports = __webpack_public_path__ + \"img/butler.3763fa3d.png\";","module.exports = __webpack_public_path__ + \"img/juggler.7cc6d089.png\";","module.exports = __webpack_public_path__ + \"img/balloonist.3d6e31f8.png\";","module.exports = __webpack_public_path__ + \"img/innkeeper.8b0b87f1.png\";","module.exports = __webpack_public_path__ + \"img/good.9b3436c8.png\";","module.exports = __webpack_public_path__ + \"img/flowergirl.4ee69cb5.png\";","module.exports = __webpack_public_path__ + \"img/monk.a6f2667a.png\";","module.exports = __webpack_public_path__ + \"img/nodashii.5c943357.png\";","module.exports = __webpack_public_path__ + \"img/saint.f81db252.png\";","module.exports = __webpack_public_path__ + \"img/fanggu.cb4e346c.png\";","module.exports = __webpack_public_path__ + \"img/dreamer.ab7f2328.png\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/pithag.adc1ce12.png\";","module.exports = __webpack_public_path__ + \"img/bishop.dec14fdc.png\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/mathematician.31142ad1.png\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditionModal.vue?vue&type=style&index=0&id=007dd7c8&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditionModal.vue?vue&type=style&index=0&id=007dd7c8&scoped=true&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TownInfo.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TownInfo.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/assassin.db54a5ff.png\";","module.exports = __webpack_public_path__ + \"img/godfather.2febcd81.png\";","module.exports = __webpack_public_path__ + \"img/thief.60ce8845.png\";","module.exports = __webpack_public_path__ + \"img/tinker.669b5612.png\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Intro.vue?vue&type=style&index=0&id=1ab9b794&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Intro.vue?vue&type=style&index=0&id=1ab9b794&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/pukka.cbbc2d26.png\";","module.exports = __webpack_public_path__ + \"img/voudon.2b1f0492.png\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleModal.vue?vue&type=style&index=0&id=b7e1897a&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleModal.vue?vue&type=style&index=0&id=b7e1897a&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/seamstress.05f0eb74.png\";","module.exports = __webpack_public_path__ + \"img/klutz.c7e784cd.png\";","module.exports = __webpack_public_path__ + \"img/matron.ffb17746.png\";","module.exports = __webpack_public_path__ + \"img/mayor.98dda8d8.png\";","module.exports = __webpack_public_path__ + \"img/professor.8a5ccf04.png\";","module.exports = __webpack_public_path__ + \"img/investigator.13194f19.png\";","module.exports = __webpack_public_path__ + \"img/tealady.2d47353e.png\";","module.exports = __webpack_public_path__ + \"img/empath.d7a89ed7.png\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Token.vue?vue&type=style&index=0&id=77841dfe&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Token.vue?vue&type=style&index=0&id=77841dfe&scoped=true&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesModal.vue?vue&type=style&index=0&id=56f09202&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RolesModal.vue?vue&type=style&index=0&id=56f09202&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReminderModal.vue?vue&type=style&index=0&id=1e8ee28e&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReminderModal.vue?vue&type=style&index=0&id=1e8ee28e&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/evil.908a2622.png\";","module.exports = __webpack_public_path__ + \"img/fisherman.9077de7e.png\";","module.exports = __webpack_public_path__ + \"img/po.4c484011.png\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Screenshot.vue?vue&type=style&index=0&id=e449adba&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Screenshot.vue?vue&type=style&index=0&id=e449adba&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/grandmother.16001541.png\";","module.exports = __webpack_public_path__ + \"img/gossip.dd8d7312.png\";","module.exports = __webpack_public_path__ + \"img/devilsadvocate.e455fea0.png\";","module.exports = __webpack_public_path__ + \"img/beggar.b7a4fbda.png\";","module.exports = __webpack_public_path__ + \"img/slayer.0859544b.png\";","module.exports = __webpack_public_path__ + \"img/savant.16bfbc30.png\";","module.exports = __webpack_public_path__ + \"img/drunk.4883c5a1.png\";","module.exports = __webpack_public_path__ + \"img/gambler.000b4b9b.png\";","module.exports = store => {\n // initialize data\n if (localStorage.background !== undefined) {\n store.commit(\"setBackground\", localStorage.background);\n }\n if (localStorage.isPublic !== undefined) {\n store.commit(\"toggleGrimoire\", JSON.parse(localStorage.isPublic));\n }\n if (localStorage.edition !== undefined) {\n // this will initialize state.roles!\n store.commit(\"setEdition\", localStorage.edition);\n }\n if (localStorage.roles !== undefined) {\n store.commit(\"setRoles\", JSON.parse(localStorage.roles));\n }\n if (localStorage.bluffs !== undefined) {\n JSON.parse(localStorage.bluffs).forEach((role, index) => {\n store.commit(\"setBluff\", {\n index,\n role: store.state.roles.get(role) || {}\n });\n });\n }\n if (localStorage.players) {\n store.commit(\n \"players/set\",\n JSON.parse(localStorage.players).map(player => ({\n ...player,\n role: store.state.roles.get(player.role) || {}\n }))\n );\n }\n if (localStorage.getItem(\"session\")) {\n const [spectator, sessionId] = JSON.parse(localStorage.getItem(\"session\"));\n store.commit(\"setSpectator\", spectator);\n store.commit(\"setSessionId\", sessionId);\n }\n\n // listen to mutations\n store.subscribe(({ type, payload }, state) => {\n switch (type) {\n case \"toggleGrimoire\":\n localStorage.setItem(\n \"isPublic\",\n JSON.stringify(state.grimoire.isPublic)\n );\n break;\n case \"setBackground\":\n if (payload) {\n localStorage.setItem(\"background\", payload);\n } else {\n localStorage.removeItem(\"background\");\n }\n break;\n case \"setEdition\":\n if (payload === \"custom\") {\n localStorage.removeItem(\"edition\");\n } else {\n localStorage.setItem(\"edition\", payload);\n localStorage.removeItem(\"roles\");\n }\n break;\n case \"setRoles\":\n if (!payload.length) {\n localStorage.removeItem(\"roles\");\n } else {\n localStorage.setItem(\"roles\", JSON.stringify(payload));\n }\n break;\n case \"setBluff\":\n localStorage.setItem(\n \"bluffs\",\n JSON.stringify(state.grimoire.bluffs.map(({ id }) => id))\n );\n break;\n case \"setSessionId\":\n if (payload) {\n localStorage.setItem(\n \"session\",\n JSON.stringify([state.session.isSpectator, payload])\n );\n } else {\n localStorage.removeItem(\"session\");\n }\n break;\n case \"players/add\":\n case \"players/update\":\n case \"players/remove\":\n case \"players/clear\":\n case \"players/set\":\n case \"players/swap\":\n case \"players/move\":\n if (state.players.players.length) {\n localStorage.setItem(\n \"players\",\n JSON.stringify(\n state.players.players.map(player => ({\n ...player,\n // simplify the stored data\n role: player.role.id || {}\n }))\n )\n );\n } else {\n localStorage.removeItem(\"players\");\n }\n break;\n }\n });\n};\n","module.exports = __webpack_public_path__ + \"img/eviltwin.06a5a8b8.png\";","module.exports = __webpack_public_path__ + \"img/spy.b739966f.png\";","module.exports = __webpack_public_path__ + \"img/courtier.345180fb.png\";","module.exports = __webpack_public_path__ + \"img/gunslinger.9f84c9f2.png\";","module.exports = __webpack_public_path__ + \"img/virgin.eaf181e8.png\";","module.exports = __webpack_public_path__ + \"img/judge.79ec3877.png\";","module.exports = __webpack_public_path__ + \"img/sweetheart.ec1cef03.png\";","module.exports = __webpack_public_path__ + \"img/poisoner.44c80b94.png\";","module.exports = __webpack_public_path__ + \"img/scarletwoman.d2cdaffd.png\";","module.exports = __webpack_public_path__ + \"img/vigormortis.7716a80d.png\";","module.exports = __webpack_public_path__ + \"img/witch.2f895245.png\";","module.exports = __webpack_public_path__ + \"img/mastermind.c3ba5fbb.png\";","module.exports = __webpack_public_path__ + \"img/clockmaker.41906ffc.png\";","module.exports = __webpack_public_path__ + \"img/barber.a354ad9e.png\";","module.exports = __webpack_public_path__ + \"img/pacifist.ad2d0310.png\";"],"sourceRoot":""}