From 817d5fd33441190dad49d02d04627b21b37d599a Mon Sep 17 00:00:00 2001 From: No Name Release Bot Date: Wed, 3 Mar 2021 00:18:39 +0000 Subject: [PATCH 1/2] Prepare release 1.0.2 --- docs/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/main.js b/docs/main.js index fe79f967..e70b6fc6 100644 --- a/docs/main.js +++ b/docs/main.js @@ -1 +1 @@ -(()=>{var e,t,n={424:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var a=n(645),o=n.n(a),s=n(890),i=o()((function(e){return e[1]}));i.i(s.Z),i.push([e.id,"\r\n",""]);const r=i},890:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(645),o=n.n(a)()((function(e){return e[1]}));o.push([e.id,'body {\r\n background-color: rgb(0, 0, 0);\r\n }\r\n\r\n#gameContainer {\r\n font-family: \'Lato\', sans-serif;\r\n color: rgb(0, 0, 0);\r\n display: grid;\r\n width: auto;\r\n height: auto;\r\n grid-template-columns: max-content 330px auto auto;\r\n grid-template-rows: auto auto auto;\r\n}\r\n\r\n#gameContainer div {\r\n border: 1px solid black;\r\n}\r\n\r\n#gameContainer > div > div {\r\n border: none !important;\r\n}\r\n\r\nul {\r\n list-style: none;\r\n padding-left: 0;\r\n}\r\n\r\n#listBox {\r\n grid-column: 1;\r\n grid-row: 1 / 3;\r\n max-height: 600px;\r\n width: 240px;\r\n overflow: auto;\r\n float: left;\r\n text-align: left;\r\n background-color: rgba(255, 244, 89, 0.932);\r\n}\r\n\r\n#routesBox {\r\n grid-column: 4;\r\n grid-row: 1 / 3;\r\n max-height: 600px;\r\n width: 240px;\r\n overflow: auto;\r\n float: left;\r\n text-align: left;\r\n background-color: rgba(255, 244, 89, 0.932);\r\n}\r\n\r\n#listBox ul {\r\n padding-left: 15px;\r\n font-size: larger;\r\n}\r\n\r\n#pokedexBox select {\r\n margin-left: auto;\r\n margin-right: auto;\r\n margin-top: 10px;\r\n width: 95%;\r\n}\r\n\r\n.listPoke p {\r\n margin: 0 0 0 10px;\r\n padding: 0;\r\n}\r\n\r\n.pokeUpButton,\r\n.pokeDownButton,\r\n.pokeFirstButton,\r\n.toStorageButton,\r\n.pokeEvolveButton,\r\n.pokePrestigeButton {\r\n display: none;\r\n}\r\n\r\n#rosterBox ul li:first-child .pokeUpButton,\r\n#rosterBox ul li:last-child .pokeDownButton,\r\n#storageBox ul li:first-child .pokeUpButton,\r\n#storageBox ul li:last-child .pokeDownButton {\r\n display: none;\r\n}\r\n\r\n.manageTeamEnabled .pokeUpButton,\r\n.manageTeamEnabled .pokeDownButton,\r\n.manageTeamEnabled .pokeFirstButton,\r\n.manageTeamEnabled .toStorageButton,\r\n.manageTeamEnabled .canEvolve ~ .pokeEvolveButton,\r\n.manageTeamEnabled .canPrestige ~ .pokePrestigeButton {\r\n display: inline;\r\n padding-left: 3px;\r\n padding-right: 3px;\r\n}\r\n.fa-arrow-up:before{content:"\\f062"}\r\n.fa-arrow-down:before{content:"\\f063"}\r\n\r\n.activeNormal {\r\n color: rgb(80, 157, 2);\r\n}\r\n.inactiveNormal {\r\n color: rgb(66, 116, 10);\r\n}\r\n.dead {\r\n color: red;\r\n}\r\n.pokeDex0 {\r\n color: #808080;\r\n}\r\n.pokeDex1 {\r\n color: #38375a;\r\n}\r\n.pokeDex2 {\r\n color: #99844b;\r\n}\r\n.pokeDex3, .pokeDex5 {\r\n color: rgba(42, 55, 190, 0.5);\r\n}\r\n.activeShiny, .inactiveShiny {\r\n font-weight: bold;\r\n}\r\n.activeShiny {\r\n color: rgb(192, 160, 0);\r\n}\r\n.inactiveShiny, .pokeDex4, .pokeDex7 {\r\n color: rgba(192, 160, 0, 0.5);\r\n}\r\n.pokeDex3, .pokeDex4 {\r\n font-style: italic;\r\n}\r\n.pokeDex6, .pokeDex8 {\r\n font-weight: bold;\r\n}\r\n.pokeDex6 {\r\n color: #2a37be;\r\n}\r\n.pokeDex8 {\r\n color: #c0a000;\r\n}\r\n\r\n#viewSelectBox {\r\n grid-column: 2;\r\n grid-row: 2;\r\n width: 50%;\r\n height: 220px;\r\n text-align: center;\r\n background-color: rgb(255, 244, 89);\r\n}\r\n\r\n#viewSelectBox p {\r\n margin: 0;\r\n}\r\n\r\n#invBox {\r\n grid-column: 3;\r\n grid-row: 2;\r\n padding: 5px;\r\n font-size: medium;\r\n background-color: rgb(255, 244, 89);\r\n}\r\n\r\n#invBox p {\r\n margin: 5px;\r\n}\r\n\r\n#pokeCoinsPic {\r\n padding-left: 20px;\r\n}\r\n\r\n#enemyBox {\r\n grid-column: 3;\r\n width: auto;\r\n grid-row: 1;\r\n background-color: rgb(255, 244, 89);\r\n}\r\n\r\n#playerBox {\r\n grid-column: 2;\r\n grid-row: 1;\r\n background-color: rgb(255, 244, 89);\r\n align-content: center;\r\n}\r\n\r\n#console {\r\n grid-column: 2;\r\n grid-row: 3;\r\n overflow-y: scroll;\r\n margin-top: -65px;\r\n height: 143px;\r\n max-height: 143px;\r\n background-color: rgb(255, 244, 89);\r\n}\r\n#console-text {\r\n padding-left: 9px;\r\n}\r\n#townBox {\r\n text-align: center;\r\n}\r\n#navBox {\r\n grid-column: 2;\r\n grid-row: 2;\r\n margin-left: 50%;\r\n height: 220px;\r\n width: 50%;\r\n text-align: center;\r\n background-color: rgb(255, 244, 89);\r\n}\r\n#navBox .button, #viewSelectBox .button, #townBox button {\r\n margin-top: 7px;\r\n align-items: center;\r\n width: 150px;\r\n height: 35px;\r\n background-color: #000000;\r\n color: red;\r\n}\r\n.button {\r\n text-decoration: none;\r\n font: 400 13.3333px Arial;\r\n align-items: flex-start;\r\n text-align: center;\r\n cursor: default;\r\n color: buttontext;\r\n background-color: #000000;\r\n box-sizing: border-box;\r\n padding: 2px 6px 3px;\r\n border-width: 2px;\r\n border-style: outset;\r\n border-color: buttonface;\r\n border-image: initial;\r\n}\r\n#navBox p {\r\n margin: 0 0 5px 0;\r\n}\r\n\r\n.pokeBox {\r\n position: relative;\r\n line-height: 25px;\r\n font-size: 12px;\r\n text-align: center;\r\n width: 165px;\r\n float: center;\r\n}\r\n.pokeBox .img.attacked-right{\r\n margin-left: 15px;\r\n}\r\n.pokeBox .img.attacked-left{\r\n margin-right: 15px;\r\n}\r\n.pokeBox .img {\r\n transition: margin 0.08s ease-out;\r\n margin-left: 0;\r\n margin-right: 0;\r\n}\r\n.pokeBox .name {\r\n font-size: 18px;\r\n font-weight: 500;\r\n}\r\n/* progressbar reset*/\r\nprogress, /* All HTML5 progress enabled browsers */\r\nprogress[role] /* polyfill */\r\n{\r\n /* Turns off styling - not usually needed, but good to know. */\r\n appearance: none;\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n /* gets rid of default border in Firefox and Opera. */\r\n border: none;\r\n /* Needs to be in here for Safari polyfill so background images work as expected. */\r\n background-size: auto;\r\n /* Dimensions */\r\n width: 400px;\r\n height: 60px;\r\n\r\n}\r\n/* Polyfill */\r\nprogress[role]:after {\r\n background-image: none; /* removes default background from polyfill */\r\n}\r\n/* Ensure fallback text doesn\'t appear in polyfill */\r\nprogress[role] strong {\r\n display: none;\r\n}\r\n/* progress bg */\r\nprogress, /* Firefox */\r\nprogress[role][aria-valuenow] { /* Polyfill */\r\n background: rgb(6, 64, 65) !important; /* !important is needed by the polyfill */\r\n}\r\n/* Chrome */\r\nprogress::-webkit-progress-bar {\r\n background: rgb(6, 64, 65);\r\n}\r\n/* progress value */\r\n/* IE10 */\r\nprogress {\r\n color: rgb(15, 238, 141);\r\n}\r\n/* Firefox */\r\nprogress::-moz-progress-bar {\r\n background: rgb(15, 238, 141);\r\n}\r\n/* Chrome */\r\nprogress::-webkit-progress-value {\r\n background: rgb(15, 238, 141);\r\n border-radius: 0 10px 0 0;\r\n}\r\n/* Polyfill */\r\nprogress[aria-valuenow]:before {\r\n background: rgb(15, 238, 141);\r\n}\r\n\r\nprogress {\r\n width: 70px;\r\n height: 5px;\r\n position: relative;\r\n top: -3px;\r\n box-shadow: 0 0 2px black;\r\n}\r\nprogress.expBar {\r\n width: 120px;\r\n}\r\n\r\n#version {\r\n position: absolute;\r\n}\r\n\r\n#modalPopup {\r\n z-index: 2;\r\n display: none;\r\n flex-direction: column;\r\n position: fixed;\r\n top: 10vh;\r\n left: 50%;\r\n margin-left: -150px;\r\n padding: 15px;\r\n border: solid 1px rgb(0, 0, 0);\r\n background-color: #66c966;\r\n border-radius: 2px;\r\n overflow: auto;\r\n width: 300px;\r\n height: 50px;\r\n}\r\n\r\n#popupText {\r\n vertical-align: middle;\r\n margin: auto;\r\n font-weight: bold;\r\n}\r\n\r\n.modalContainer {\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 2;\r\n}\r\n\r\n.modalDialog {\r\n display: flex;\r\n flex-direction: column;\r\n position: fixed;\r\n top: 10vh;\r\n bottom: 10vh;\r\n left: 10vw;\r\n right: 10vw;\r\n padding: 15px;\r\n border: solid 1px rgb(0, 0, 0);\r\n background-color: white;\r\n border-radius: 5px;\r\n overflow: auto;\r\n}\r\n\r\n.modalTitle {\r\n flex: 0 0 auto;\r\n margin: 0;\r\n padding: 0 0 10px;\r\n}\r\n\r\n.modalDialog h4 {\r\n flex: 0 0 auto;\r\n margin: 0;\r\n}\r\n\r\n#settingsDialog > div > p {\r\n padding:0;\r\n margin:5px 10px;\r\n}\r\n\r\n#forceSave {\r\n color:red;\r\n display:none;\r\n}\r\n\r\n#copySaveText {\r\n float: right;\r\n margin-top: 2px;\r\n}\r\n\r\n#saveText {\r\n flex: 1 1 auto;\r\n}\r\n\r\n#saveLoadButtons {\r\n margin-bottom: 7px;\r\n}\r\n\r\n#statisticsList li, #achievementsList li {\r\n padding: 2px 15px;\r\n}\r\n#statisticsList li:nth-child(even) {background: #CCC}\r\n#statisticsList li:nth-child(odd) {background: #FFF}\r\n#achievementsList li:nth-child(even) {background: #CCC}\r\n#achievementsList li:nth-child(odd) {background: #FFF}\r\n#achievementsList li.complete {\r\n text-decoration: line-through;\r\n font-style: italic;\r\n}\r\n\r\n#townBuildings {\r\n\r\n}\r\n.townBuilding {\r\n width: 45%;\r\n float: left;\r\n margin-left: 20px;\r\n background-color: rgb(240,240,240);\r\n}\r\n.townBuilding h4 { margin-left: 10px; }\r\n.townBuilding ul {\r\n border-top: 1px solid rgb(217, 217, 217);\r\n padding: 5px 20px;\r\n}\r\nul#shopItems li {\r\n margin-top: 2px;\r\n}\r\n.traderList {\r\n max-height: 200px;\r\n overflow-y: scroll;\r\n overflow-x: hidden;\r\n}\r\n',""]);const s=o},645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,a){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(a)for(var s=0;s{"use strict";var a=n(379),o=n.n(a),s=n(424),i=o()(s.default,{insert:"head",singleton:!1});if(!s.default.locals||e.hot.invalidate){var r=s.default.locals;e.hot.accept(424,(t=>{s=n(424),function(e,t,n){if(!e&&t||e&&!t)return!1;var a;for(a in e)if(e[a]!==t[a])return!1;for(a in t)if(!e[a])return!1;return!0}(r,s.default.locals)?(r=s.default.locals,i(s.default)):e.hot.invalidate()}))}e.hot.dispose((function(){i()})),s.default.locals},379:(e,t,n)=>{"use strict";var a,o=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),s=[];function i(e){for(var t=-1,n=0;n{(()=>{const{run:e}=n(929);let t,a="";try{t=ʎɐɹɔosǝʌɹǝs}catch(e){const{log:t}=n(756);t.error("The entry for webpack-plugin-serve was included in your build, but it does not appear that the plugin was. Please check your configuration.")}try{a=n.h()}catch(e){}e(a,t)})()},552:(e,t,n)=>{const{error:a,refresh:o,warn:s}=n(756)(),i=[1008,1011];e.exports={ClientSocket:class{constructor(e,...t){this.args=t,this.attempts=0,this.eventHandlers=[],this.options=e,this.retrying=!1,this.connect()}addEventListener(...e){this.eventHandlers.push(e),this.socket.addEventListener(...e)}close(){this.socket.close()}connect(){if(this.socket&&delete this.socket,this.connecting=!0,this.socket=new WebSocket(...this.args),this.options.retry?this.socket.addEventListener("close",(e=>{i.includes(e.code)||(this.retrying||s("The WebSocket was closed and will attempt to reconnect"),this.reconnect())})):this.socket.onclose=()=>s(`The client WebSocket was closed. ${o}`),this.socket.addEventListener("open",(()=>{this.attempts=0,this.retrying=!1})),this.eventHandlers.length)for(const[e,t]of this.eventHandlers)this.socket.addEventListener(e,t)}reconnect(){if(this.attempts+=1,this.retrying=!0,this.attempts>10)return a(`The WebSocket could not be reconnected. ${o}`),void(this.retrying=!1);const e=1e3*this.attempts**2;setTimeout((()=>this.connect(this.args)),e)}removeEventListener(...e){const[,t]=e;this.eventHandlers=this.eventHandlers.filter((([,e])=>e===t)),this.socket.removeEventListener(...e)}}}},929:(e,t,n)=>{e.exports={run:(e,t)=>{const{address:a,client:o={},hmr:s,progress:i,secure:r,status:p}=t;t.firstInstance=!window.webpackPluginServe,window.webpackPluginServe=window.webpackPluginServe||{compilers:{}},window.webpackPluginServe.silent=!!o.silent;const{ClientSocket:l}=n(552),{replace:c}=n(410),{error:m,info:k,warn:h}=n(756)(),d=new l(o,`${r?"wss":"ws"}://${o.address||a}/wps`),{compilerName:g}=t;if(window.webpackPluginServe.compilers[g]={},window.addEventListener("beforeunload",(()=>d.close())),d.addEventListener("message",(n=>{const{action:a,data:o={}}=JSON.parse(n.data),{errors:i,hash:r="",warnings:p}=o||{},l=r.slice(0,7),d=t.compilerName?`(Compiler: ${t.compilerName}) `:"",b=window.webpackPluginServe.compilers[g],{wpsId:u}=o;switch(a){case"build":b.done=!1;break;case"connected":k(`WebSocket connected ${d}`);break;case"done":b.done=!0;break;case"problems":o.errors.length&&m(`${d}Build ${l} produced errors:\n`,i),o.warnings.length&&h(`${d}Build ${l} produced warnings:\n`,p);break;case"reload":window.location.reload();break;case"replace":u&&u===t.wpsId&&c(e,r,"refresh-on-failure"===s)}})),t.firstInstance){if("minimal"===i){const{init:e}=n(938);e(t,d)}else if(i){const{init:e}=n(211);e(t,d)}if(p){const{init:e}=n(158);e(t,d)}k("Hot Module Replacement is active"),t.liveReload&&k("Live Reload taking precedence over Hot Module Replacement")}}}},410:(e,t,n)=>{const{error:a,info:o,refresh:s,warn:i}=n(756)();let r=!0;e.exports={replace:async(t,n,p)=>{const{apply:l,check:c,status:m}=e.hot;if(n&&(r=n.includes(t)),!r){const e=m();if("abort"===e||"fail"===e)return void i(`An HMR update was triggered, but ${e}ed. ${s}`);let t;try{t=await c(!1)}catch(e){return}if(!t)return void i(`No modules found for replacement. ${s}`);t=await l((k=p?()=>{p&&location.reload()}:()=>{},{onUnaccepted(e){k(),i("Change in unaccepted module(s):\n",e),i(e)},onDeclined(e){k(),i("Change in declined module(s):\n",e)},onErrored(e){k(),a("Error in module(s):\n",e)}})),t&&(r=!0,o(`Build ${n.slice(0,7)} replaced:\n`,t))}var k}}},756:e=>{const{error:t,info:n,warn:a}=console,o={error:t.bind(console,"⬡ wps:"),info:n.bind(console,"⬡ wps:"),refresh:"Please refresh the page",warn:a.bind(console,"⬡ wps:")},s=()=>{},i={error:s,info:s,warn:s};e.exports=()=>window.webpackPluginServe.silent?i:o},938:(e,t,n)=>{const{addCss:a,addHtml:o}=n(27),s="wps-progress-minimal",i=`\n
\n
\n
\n`,r=`\n#${s} {\n position: fixed;\n top: 0;\n left: 0;\n height: 4px;\n width: 100vw;\n z-index: 2147483645;\n}\n\n#${s}-bar {\n width: 0%;\n height: 4px;\n background-color: rgb(186, 223, 172);\n}\n\n@keyframes ${s}-fade {\n\t0% {\n\t\topacity: 1;\n\t}\n\t100% {\n\t\topacity: 0;\n\t}\n}\n\n.${s}-disappear {\n animation: ${s}-fade .3s;\n animation-fill-mode: forwards;\n animation-delay: .5s;\n}\n\n.${s}-hidden {\n display: none;\n}\n`;let p=!1;const l=e=>{document.querySelector(`#${s}-bar`).style.width=`${e}%`},c=e=>{e.classList.add(`${s}-disappear`)};e.exports={init:(e,t)=>{e.firstInstance&&(document.addEventListener("DOMContentLoaded",(()=>{a(r),o(i);const e=document.querySelector(`#${s}`);e.addEventListener("animationend",(()=>{l(0),e.classList.add(`${s}-hidden`)}))})),document.addEventListener("visibilitychange",(()=>{if(!document.hidden&&p){const e=document.querySelector(`#${s}`);c(e),p=!1}}))),t.addEventListener("message",(e=>{const{action:t,data:n}=JSON.parse(e.data);if("progress"!==t)return;const a=Math.floor(100*n.percent),o=document.querySelector(`#${s}`);o.classList.remove(`${s}-hidden`,`${s}-disappear`),1===n.percent?document.hidden?p=!0:c(o):p=!1,l(a)}))}}},211:(e,t,n)=>{const{addCss:a,addHtml:o}=n(27),s="wps-progress",i=`\n#${s}{\n width: 200px;\n height: 200px;\n position: fixed;\n right: 5%;\n top: 5%;\n transition: opacity .25s ease-in-out;\n z-index: 2147483645;\n}\n\n#${s}-bg {\n fill: #282d35;\n}\n\n#${s}-fill {\n fill: rgba(0, 0, 0, 0);\n stroke: rgb(186, 223, 172);\n stroke-dasharray: 219.99078369140625;\n stroke-dashoffset: -219.99078369140625;\n stroke-width: 10;\n transform: rotate(90deg)translate(0px, -80px);\n}\n\n#${s}-percent {\n font-family: 'Open Sans';\n font-size: 18px;\n fill: #ffffff;\n}\n\n#${s}-percent-value {\n dominant-baseline: middle;\n text-anchor: middle;\n}\n\n#${s}-percent-super {\n fill: #bdc3c7;\n font-size: .45em;\n baseline-shift: 10%;\n}\n\n.${s}-noselect {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n}\n\n@keyframes ${s}-fade {\n\t0% {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t\t-webkit-transform: scale(1);\n\t}\n\t100% {\n\t\topacity: 0;\n\t\ttransform: scale(0);\n\t\t-webkit-transform: scale(0);\n\t}\n}\n\n.${s}-disappear {\n animation: ${s}-fade .3s;\n animation-fill-mode:forwards;\n animation-delay: .5s;\n}\n\n.${s}-hidden {\n display: none;\n}\n\n/* Put google web font at the end, or you'll see FOUC in Firefox */\n@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,700');\n`,r=`\n\n \n \n 0%\n\n`;let p=!1;const l=e=>{const t=document.querySelector(`#${s}-percent-value`),n=(100-e)/100*-219.99078369140625;document.querySelector(`#${s}-fill`).setAttribute("style",`stroke-dashoffset: ${n}`),t.innerHTML=e.toString()},c=e=>{e.classList.add(`${s}-disappear`)};e.exports={init:(e,t)=>{e.firstInstance&&(document.addEventListener("DOMContentLoaded",(()=>{a(i),o(r);const e=document.querySelector(`#${s}`);e.addEventListener("animationend",(()=>{l(0),e.classList.add(`${s}-hidden`)}))})),document.addEventListener("visibilitychange",(()=>{if(!document.hidden&&p){const e=document.querySelector(`#${s}`);c(e),p=!1}}))),t.addEventListener("message",(e=>{const{action:t,data:n}=JSON.parse(e.data);if("progress"!==t)return;const a=Math.floor(100*n.percent),o=document.querySelector(`#${s}`);o&&(o.classList.remove(`${s}-disappear`,`${s}-hidden`),1===n.percent?document.hidden?p=!0:c(o):p=!1,l(a))}))}}},158:(e,t,n)=>{const{addCss:a,addHtml:o,socketMessage:s}=n(27),i="wps-status",r=`\n#${i} {\n background: #282d35;\n border-radius: 0.6em;\n display: flex;\n flex-direction: column;\n\tfont-family: 'Open Sans', Helvetica, Arial, sans-serif;\n\tfont-size: 10px;\n height: 90%;\n min-height: 20em;\n left: 50%;\n opacity: 1;\n overflow: hidden;\n padding-bottom: 3em;\n position: absolute;\n top: 2rem;\n transform: translateX(-50%);\n transition: opacity .25s ease-in-out;\n width: 95%;\n z-index: 2147483645;\n}\n\n@keyframes ${i}-hidden-display {\n\t0% {\n\t\topacity: 1;\n\t}\n\t99% {\n\t\tdisplay: inline-flex;\n\t\topacity: 0;\n\t}\n\t100% {\n\t\tdisplay: none;\n\t\topacity: 0;\n\t}\n}\n\n#${i}.${i}-hidden {\n animation: ${i}-hidden-display .3s;\n animation-fill-mode:forwards;\n display: none;\n}\n\n#${i}.${i}-min {\n animation: minimize 10s;\n bottom: 2em;\n cursor: pointer;\n height: 6em;\n left: auto;\n min-height: 6em;\n padding-bottom: 0;\n position: absolute;\n right: 2em;\n top: auto;\n transform: none;\n width: 6em;\n}\n\n#${i}.${i}-min #${i}-beacon {\n display: block;\n}\n\n#${i}-title {\n color: #fff;\n font-size: 1.2em;\n font-weight: normal;\n margin: 0;\n padding: 0.6em 0;\n text-align: center;\n width: 100%;\n}\n\n#${i}.${i}-min #${i}-title {\n display: none;\n}\n\n#${i}-title-errors {\n color: #ff5f58;\n font-style: normal;\n padding-left: 1em;\n}\n\n#${i}-title-warnings {\n color: #ffbd2e;\n font-style: normal;\n padding-left: 1em;\n}\n\n#${i}-problems {\n overflow-y: auto;\n padding: 1em 2em;\n}\n\n#${i}-problems pre {\n color: #ddd;\n background: #282d35;\n display: block;\n font-size: 1.3em;\n\tfont-family: 'Open Sans', Helvetica, Arial, sans-serif;\n white-space: pre-wrap;\n}\n\n#${i}-problems pre em {\n background: #ff5f58;\n border-radius: 0.3em;\n color: #641e16;\n font-style: normal;\n line-height: 3em;\n margin-right: 0.4em;\n padding: 0.1em 0.4em;\n text-transform: uppercase;\n}\n\npre#${i}-warnings em {\n background: #ffbd2e;\n color: #3e2723;\n}\n\npre#${i}-success {\n display: none;\n text-align: center;\n}\n\npre#${i}-success em {\n background: #7fb900;\n color: #004d40;\n}\n\n#${i}-problems.${i}-success #${i}-success {\n display: block;\n}\n\n#${i}.${i}-min #${i}-problems {\n display: none;\n}\n\n#${i}-nav {\n opacity: 0.5;\n padding: 1.2em;\n position: absolute;\n}\n\n#${i}.${i}-min #${i}-nav {\n display: none;\n}\n\n#${i}-nav:hover {\n opacity: 1;\n}\n\n#${i}-nav div {\n background: #ff5f58;\n border-radius: 1.2em;\n cursor: pointer;\n display: inline-block;\n height: 1.2em;\n position: relative;\n width: 1.2em;\n}\n\ndiv#${i}-min {\n background: #ffbd2e;\n margin-left: 0.8em;\n}\n\n#${i}-beacon {\n border-radius: 3em;\n display: none;\n font-size: 10px;\n height: 3em;\n margin: 1.6em auto;\n position: relative;\n width: 3em;\n}\n\n#${i}-beacon:before, #${i}-beacon:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(127,185,0, 0.2);\n border-radius: 3em;\n opacity: 0;\n}\n\n#${i}-beacon:before {\n animation: ${i}-pulse 3s infinite linear;\n transform: scale(1);\n}\n\n#${i}-beacon:after {\n animation: ${i}-pulse 3s 2s infinite linear;\n}\n\n\n@keyframes ${i}-pulse {\n 0% {\n opacity: 0;\n transform: scale(0.6);\n }\n 33% {\n opacity: 1;\n transform: scale(1);\n }\n 100% {\n opacity: 0;\n transform: scale(1.4);\n }\n}\n\n#${i}-beacon mark {\n background: rgba(127, 185, 0, 1);\n border-radius: 100% 100%;\n height: 1em;\n left: 1em;\n position: absolute;\n top: 1em;\n width: 1em;\n}\n\n#${i}-beacon.${i}-error mark {\n background: #ff5f58;\n}\n\n#${i}-beacon.${i}-error:before, #${i}-beacon.error:after {\n background: rgba(255, 95, 88, 0.2);\n}\n\n#${i}-beacon.${i}-warning mark {\n background: #ffbd2e;\n}\n\n#${i}-beacon.${i}-warning:before, #${i}-beacon.warning:after {\n background: rgba(255, 189, 46, 0.2);\n}\n\n/* Put google web font at the end, or you'll see FOUC in Firefox */\n@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,700');\n`,p=`\n\n`;e.exports={init:(e,t)=>{const n=`${i}-hidden`;let l,c,m,k,h,d,g,b=!1;const u=()=>{k.innerHTML="",h.innerHTML="",m.classList.remove(`${i}-success`),c.className="",d.innerText="",g.innerText=""};e.firstInstance&&document.addEventListener("DOMContentLoaded",(()=>{a(r),[l]=o(p),c=document.querySelector(`#${i}-beacon`),m=document.querySelector(`#${i}-problems`),k=document.querySelector(`#${i}-errors`),h=document.querySelector(`#${i}-warnings`),d=document.querySelector(`#${i}-title-errors`),g=document.querySelector(`#${i}-title-warnings`);const e=document.querySelector(`#${i}-close`),t=document.querySelector(`#${i}-min`);l.addEventListener("click",(()=>{l.classList.remove(`${i}-min`)})),e.addEventListener("click",(()=>{l.classList.add(`${i}-hidden`)})),t.addEventListener("click",(e=>{l.classList.add(`${i}-min`),e.stopImmediatePropagation()}))})),s(t,((e,t)=>{if(!l)return;const{compilers:a}=window.webpackPluginServe;switch(e){case"build":u();break;case"problems":(e=>{if(e.length){m.classList.remove(`${i}-success`),c.classList.add(`${i}-error`);for(const t of e)o(`
Error in ${t}
`,k);d.innerText=`${e.length} Error(s)`}else d.innerText="";l.classList.remove(n)})(t.errors),(e=>{if(e.length){m.classList.remove(`${i}-success`),c.classList.contains(`${i}-error`)||c.classList.add(`${i}-warning`);for(const t of e)o(`
Warning in ${t}
`,h);g.innerText=`${e.length} Warning(s)`}else g.innerText="";l.classList.remove(n)})(t.warnings),l.classList.remove(n),b=t.errors.length||t.warnings.length;break;case"replace":for(const e of Object.keys(a))if(!a[e])return;!b||k.children.length||h.children.length||(u(),b=!1,m.classList.add(`${i}-success`),l.classList.remove(n),setTimeout((()=>l.classList.add(n)),3e3))}}))}}},27:e=>{e.exports={addCss:e=>{const t=document.createElement("style");t.type="text/css",e.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),document.head.appendChild(t)},addHtml:(e,t)=>{const n=document.createElement("div"),a=[];for(n.innerHTML=e.trim();n.firstChild;)a.push((t||document.body).appendChild(n.firstChild));return a},socketMessage:(e,t)=>{e.addEventListener("message",(e=>{const{action:n,data:a={}}=JSON.parse(e.data);t(n,a)}))}}},698:(e,t,n)=>{"use strict";const a={Slow:[1,2,10,33,80,156,270,428,640,911,1250,1663,2160,2746,3430,4218,5120,6141,7290,8573,1e4,11576,13310,15208,17280,19531,21970,24603,27440,30486,33750,37238,40960,44921,49130,53593,58320,63316,68590,74148,8e4,86151,92610,99383,106480,113906,121670,129778,138240,147061,156250,165813,175760,186096,196830,207968,219520,231491,243890,256723,27e4,283726,297910,312558,327680,343281,359370,375953,393040,410636,428750,447388,466560,486271,506530,527343,548720,570666,593190,616298,64e4,664301,689210,714733,740880,767656,795070,823128,851840,881211,911250,941963,973360,1005446,1038230,1071718,1105920,1140841,1176490,1212873,1e18],"Medium Slow":[1,2,9,57,96,135,179,236,314,419,560,742,973,1261,1612,2035,2535,3120,3798,4575,5460,6458,7577,8825,10208,11735,13411,15244,17242,19411,21760,24294,27021,29949,33084,36435,40007,43808,47846,52127,56660,61450,66505,71833,77440,83335,89523,96012,102810,109923,117360,125126,133229,141677,150476,159635,169159,179056,189334,199999,211060,222522,234393,246681,259392,272535,286115,300140,314618,329555,344960,360838,377197,394045,411388,429235,447591,466464,485862,505791,526260,547274,568841,590969,613664,636935,660787,685228,710266,735907,762160,789030,816525,844653,873420,902835,932903,963632,995030,1027103,1e18],"Medium Fast":[1,2,8,27,64,125,216,343,512,729,1e3,1331,1728,2197,2744,3375,4096,4913,5832,6859,8e3,9261,10648,12167,13824,15625,17576,19683,21952,24389,27e3,29791,32768,35937,39304,42875,46656,50653,54872,59319,64e3,68921,74088,79507,85184,91125,97336,103823,110592,117649,125e3,132651,140608,148877,157464,166375,175616,185193,195112,205379,216e3,226981,238328,250047,262144,274625,287496,300763,314432,328509,343e3,357911,373248,389017,405224,421875,438976,456533,474552,493039,512e3,531441,551368,571787,592704,614125,636056,658503,681472,704969,729e3,753571,778688,804357,830584,857375,884736,912673,941192,970299,1e18],Fast:[1,2,6,21,51,100,172,274,409,583,800,1064,1382,1757,2195,2700,3276,3930,4665,5487,6400,7408,8518,9733,11059,12500,14060,15746,17561,19511,21600,23832,26214,28749,31443,34300,37324,40522,43897,47455,51200,55136,59270,63605,68147,72900,77868,83058,88473,94119,1e5,106120,112486,119101,125971,133100,140492,148154,156089,164303,172800,181584,190662,200037,209715,219700,229996,240610,251545,262807,274400,286328,298598,311213,324179,337500,351180,365226,379641,394431,409600,425152,441094,457429,474163,491300,508844,526802,545177,563975,583200,602856,622950,643485,664467,685900,707788,730138,752953,776239,1e18]},o={route:{}};o.route.locked="rgb(255, 0, 0)",o.route.unlocked="rgb(0, 0, 0)",o.route.current="rgb(139, 69, 19)";const s=0,i=1,r=2,p=3,l=4,c=5,m=6,k=7,h=8,d={pokeball:1,greatball:1.5,ultraball:2,masterball:100},g=[{pokemon:[{Pokemon:"Bulbasaur"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"45",attack:"49",defense:"49","sp atk":"65","sp def":"65",speed:"45",types:["Grass","Poison"]}],exp:[{"base exp":"64"}],images:{normal:{front:"assets/sprites/normal/front/Bulbasaur.png",back:"assets/sprites/normal/back/Bulbasaur.png"},shiny:{front:"assets/sprites/shiny/front/Bulbasaur.png",back:"assets/sprites/shiny/back/Bulbasaur.png"}}},{pokemon:[{Pokemon:"Ivysaur"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"60",attack:"62",defense:"63","sp atk":"80","sp def":"80",speed:"60",types:["Grass","Poison"]}],exp:[{"base exp":"142"}]},{pokemon:[{Pokemon:"Venusaur"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"80",attack:"82",defense:"83","sp atk":"100","sp def":"100",speed:"80",types:["Grass","Poison"]}],exp:[{"base exp":"236"}]},{pokemon:[{Pokemon:"Charmander"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"39",attack:"52",defense:"43","sp atk":"60","sp def":"50",speed:"65",types:["Fire"]}],exp:[{"base exp":"62"}],images:{normal:{front:"assets/sprites/normal/front/Charmander.png",back:"assets/sprites/normal/back/Charmander.png"},shiny:{front:"assets/sprites/shiny/front/Charmander.png",back:"assets/sprites/shiny/back/Charmander.png"}}},{pokemon:[{Pokemon:"Charmeleon"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"58",attack:"64",defense:"58","sp atk":"80","sp def":"65",speed:"80",types:["Fire"]}],exp:[{"base exp":"142"}]},{pokemon:[{Pokemon:"Charizard"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"78",attack:"84",defense:"78","sp atk":"109","sp def":"85",speed:"100",types:["Fire","Flying"]}],exp:[{"base exp":"240"}]},{pokemon:[{Pokemon:"Squirtle"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"44",attack:"48",defense:"65","sp atk":"50","sp def":"64",speed:"43",types:["Water"]}],exp:[{"base exp":"63"}],images:{normal:{front:"assets/sprites/normal/front/Squirtle.png",back:"assets/sprites/normal/back/Squirtle.png"},shiny:{front:"assets/sprites/shiny/front/Squirtle.png",back:"assets/sprites/shiny/back/Squirtle.png"}}},{pokemon:[{Pokemon:"Wartortle"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"59",attack:"63",defense:"80","sp atk":"65","sp def":"80",speed:"58",types:["Water"]}],exp:[{"base exp":"142"}]},{pokemon:[{Pokemon:"Blastoise"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"79",attack:"83",defense:"100","sp atk":"85","sp def":"105",speed:"78",types:["Water"]}],exp:[{"base exp":"239"}]},{pokemon:[{Pokemon:"Caterpie"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"45",attack:"30",defense:"35","sp atk":"20","sp def":"20",speed:"45",types:["Bug"]}],exp:[{"base exp":"39"}]},{pokemon:[{Pokemon:"Metapod"}],stats:[{"catch rate":"120","growth rate":"Medium Fast",hp:"50",attack:"20",defense:"55","sp atk":"25","sp def":"25",speed:"30",types:["Bug"]}],exp:[{"base exp":"72"}]},{pokemon:[{Pokemon:"Butterfree"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"60",attack:"45",defense:"50","sp atk":"90","sp def":"80",speed:"70",types:["Bug","Flying"]}],exp:[{"base exp":"178"}]},{pokemon:[{Pokemon:"Weedle"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"40",attack:"35",defense:"30","sp atk":"20","sp def":"20",speed:"50",types:["Bug","Poison"]}],exp:[{"base exp":"39"}]},{pokemon:[{Pokemon:"Kakuna"}],stats:[{"catch rate":"120","growth rate":"Medium Fast",hp:"45",attack:"25",defense:"50","sp atk":"25","sp def":"25",speed:"35",types:["Bug","Poison"]}],exp:[{"base exp":"72"}]},{pokemon:[{Pokemon:"Beedrill"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"90",defense:"40","sp atk":"45","sp def":"80",speed:"75",types:["Bug","Poison"]}],exp:[{"base exp":"178"}]},{pokemon:[{Pokemon:"Pidgey"}],stats:[{"catch rate":"255","growth rate":"Medium Slow",hp:"40",attack:"45",defense:"40","sp atk":"35","sp def":"35",speed:"56",types:["Normal","Flying"]}],exp:[{"base exp":"50"}]},{pokemon:[{Pokemon:"Pidgeotto"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"63",attack:"60",defense:"55","sp atk":"50","sp def":"50",speed:"71",types:["Normal","Flying"]}],exp:[{"base exp":"122"}]},{pokemon:[{Pokemon:"Pidgeot"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"83",attack:"80",defense:"75","sp atk":"70","sp def":"70",speed:"101",types:["Normal","Flying"]}],exp:[{"base exp":"216"}]},{pokemon:[{Pokemon:"Rattata"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"30",attack:"56",defense:"35","sp atk":"25","sp def":"35",speed:"72",types:["Normal"]}],exp:[{"base exp":"51"}]},{pokemon:[{Pokemon:"Raticate"}],stats:[{"catch rate":"127","growth rate":"Medium Fast",hp:"55",attack:"81",defense:"60","sp atk":"50","sp def":"70",speed:"97",types:["Normal"]}],exp:[{"base exp":"145"}]},{pokemon:[{Pokemon:"Spearow"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"40",attack:"60",defense:"30","sp atk":"31","sp def":"31",speed:"70",types:["Normal","Flying"]}],exp:[{"base exp":"52"}]},{pokemon:[{Pokemon:"Fearow"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"65",attack:"90",defense:"65","sp atk":"61","sp def":"61",speed:"100",types:["Normal","Flying"]}],exp:[{"base exp":"155"}]},{pokemon:[{Pokemon:"Ekans"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"35",attack:"60",defense:"44","sp atk":"40","sp def":"54",speed:"55",types:["Poison"]}],exp:[{"base exp":"58"}]},{pokemon:[{Pokemon:"Arbok"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"60",attack:"85",defense:"69","sp atk":"65","sp def":"79",speed:"80",types:["Poison"]}],exp:[{"base exp":"153"}]},{pokemon:[{Pokemon:"Pikachu"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"35",attack:"55",defense:"40","sp atk":"50","sp def":"50",speed:"90",types:["Electric"]}],exp:[{"base exp":"112"}],images:{normal:{front:"assets/sprites/normal/front/Pikachu.png",back:"assets/sprites/normal/back/Pikachu.png"},shiny:{front:"assets/sprites/shiny/front/Pikachu.png",back:"assets/sprites/shiny/back/Pikachu.png"}}},{pokemon:[{Pokemon:"Raichu"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"60",attack:"90",defense:"55","sp atk":"90","sp def":"80",speed:"110",types:["Electric"]}],exp:[{"base exp":"218"}]},{pokemon:[{Pokemon:"Sandshrew"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"50",attack:"75",defense:"85","sp atk":"20","sp def":"30",speed:"40",types:["Ground"]}],exp:[{"base exp":"60"}]},{pokemon:[{Pokemon:"Sandslash"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"75",attack:"100",defense:"110","sp atk":"45","sp def":"55",speed:"65",types:["Ground"]}],exp:[{"base exp":"158"}]},{pokemon:[{Pokemon:"Nidoran F"}],stats:[{"catch rate":"235","growth rate":"Medium Slow",hp:"55",attack:"47",defense:"52","sp atk":"40","sp def":"40",speed:"41",types:["Poison"]}],exp:[{"base exp":"55"}]},{pokemon:[{Pokemon:"Nidorina"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"70",attack:"62",defense:"67","sp atk":"55","sp def":"55",speed:"56",types:["Poison"]}],exp:[{"base exp":"128"}]},{pokemon:[{Pokemon:"Nidoqueen"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"90",attack:"92",defense:"87","sp atk":"75","sp def":"85",speed:"76",types:["Poison","Ground"]}],exp:[{"base exp":"227"}]},{pokemon:[{Pokemon:"Nidoran M"}],stats:[{"catch rate":"235","growth rate":"Medium Slow",hp:"46",attack:"57",defense:"40","sp atk":"40","sp def":"40",speed:"50",types:["Poison"]}],exp:[{"base exp":"55"}]},{pokemon:[{Pokemon:"Nidorino"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"61",attack:"72",defense:"57","sp atk":"55","sp def":"55",speed:"65",types:["Poison"]}],exp:[{"base exp":"128"}]},{pokemon:[{Pokemon:"Nidoking"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"81",attack:"102",defense:"77","sp atk":"85","sp def":"75",speed:"85",types:["Poison","Ground"]}],exp:[{"base exp":"227"}]},{pokemon:[{Pokemon:"Clefairy"}],stats:[{"catch rate":"150","growth rate":"Fast",hp:"70",attack:"45",defense:"48","sp atk":"60","sp def":"65",speed:"35",types:["Fairy"]}],exp:[{"base exp":"113"}]},{pokemon:[{Pokemon:"Clefable"}],stats:[{"catch rate":"25","growth rate":"Fast",hp:"95",attack:"70",defense:"73","sp atk":"95","sp def":"90",speed:"60",types:["Fairy"]}],exp:[{"base exp":"217"}]},{pokemon:[{Pokemon:"Vulpix"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"38",attack:"41",defense:"40","sp atk":"50","sp def":"65",speed:"65",types:["Fire"]}],exp:[{"base exp":"60"}]},{pokemon:[{Pokemon:"Ninetales"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"73",attack:"76",defense:"75","sp atk":"81","sp def":"100",speed:"100",types:["Fire"]}],exp:[{"base exp":"177"}]},{pokemon:[{Pokemon:"Jigglypuff"}],stats:[{"catch rate":"170","growth rate":"Fast",hp:"115",attack:"45",defense:"20","sp atk":"45","sp def":"25",speed:"20",types:["Normal","Fairy"]}],exp:[{"base exp":"95"}]},{pokemon:[{Pokemon:"Wigglytuff"}],stats:[{"catch rate":"50","growth rate":"Fast",hp:"140",attack:"70",defense:"45","sp atk":"85","sp def":"50",speed:"45",types:["Normal","Fairy"]}],exp:[{"base exp":"196"}]},{pokemon:[{Pokemon:"Zubat"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"40",attack:"45",defense:"35","sp atk":"30","sp def":"40",speed:"55",types:["Poison","Flying"]}],exp:[{"base exp":"49"}]},{pokemon:[{Pokemon:"Golbat"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"75",attack:"80",defense:"70","sp atk":"65","sp def":"75",speed:"90",types:["Poison","Flying"]}],exp:[{"base exp":"159"}]},{pokemon:[{Pokemon:"Oddish"}],stats:[{"catch rate":"255","growth rate":"Medium Slow",hp:"45",attack:"50",defense:"55","sp atk":"75","sp def":"65",speed:"30",types:["Grass","Poison"]}],exp:[{"base exp":"64"}]},{pokemon:[{Pokemon:"Gloom"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"60",attack:"65",defense:"70","sp atk":"85","sp def":"75",speed:"40",types:["Grass","Poison"]}],exp:[{"base exp":"138"}]},{pokemon:[{Pokemon:"Vileplume"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"75",attack:"80",defense:"85","sp atk":"110","sp def":"90",speed:"50",types:["Grass","Poison"]}],exp:[{"base exp":"221"}]},{pokemon:[{Pokemon:"Paras"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"35",attack:"70",defense:"55","sp atk":"45","sp def":"55",speed:"25",types:["Bug","Grass"]}],exp:[{"base exp":"57"}]},{pokemon:[{Pokemon:"Parasect"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"60",attack:"95",defense:"80","sp atk":"60","sp def":"80",speed:"30",types:["Bug","Grass"]}],exp:[{"base exp":"142"}]},{pokemon:[{Pokemon:"Venonat"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"60",attack:"55",defense:"50","sp atk":"40","sp def":"55",speed:"45",types:["Bug","Poison"]}],exp:[{"base exp":"61"}]},{pokemon:[{Pokemon:"Venomoth"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"70",attack:"65",defense:"60","sp atk":"90","sp def":"75",speed:"90",types:["Bug","Poison"]}],exp:[{"base exp":"158"}]},{pokemon:[{Pokemon:"Diglett"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"10",attack:"55",defense:"25","sp atk":"35","sp def":"45",speed:"95",types:["Ground"]}],exp:[{"base exp":"53"}]},{pokemon:[{Pokemon:"Dugtrio"}],stats:[{"catch rate":"50","growth rate":"Medium Fast",hp:"35",attack:"80",defense:"50","sp atk":"50","sp def":"70",speed:"120",types:["Ground"]}],exp:[{"base exp":"142"}]},{pokemon:[{Pokemon:"Meowth"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"40",attack:"45",defense:"35","sp atk":"40","sp def":"40",speed:"90",types:["Normal"]}],exp:[{"base exp":"58"}]},{pokemon:[{Pokemon:"Persian"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"65",attack:"70",defense:"60","sp atk":"65","sp def":"65",speed:"115",types:["Normal"]}],exp:[{"base exp":"154"}]},{pokemon:[{Pokemon:"Psyduck"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"50",attack:"52",defense:"48","sp atk":"65","sp def":"50",speed:"55",types:["Water"]}],exp:[{"base exp":"64"}]},{pokemon:[{Pokemon:"Golduck"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"80",attack:"82",defense:"78","sp atk":"95","sp def":"80",speed:"85",types:["Water"]}],exp:[{"base exp":"175"}]},{pokemon:[{Pokemon:"Mankey"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"40",attack:"80",defense:"35","sp atk":"35","sp def":"45",speed:"70",types:["Fighting"]}],exp:[{"base exp":"61"}]},{pokemon:[{Pokemon:"Primeape"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"65",attack:"105",defense:"60","sp atk":"60","sp def":"70",speed:"95",types:["Fighting"]}],exp:[{"base exp":"159"}]},{pokemon:[{Pokemon:"Growlithe"}],stats:[{"catch rate":"190","growth rate":"Slow",hp:"55",attack:"70",defense:"45","sp atk":"70","sp def":"50",speed:"60",types:["Fire"]}],exp:[{"base exp":"70"}]},{pokemon:[{Pokemon:"Arcanine"}],stats:[{"catch rate":"75","growth rate":"Slow",hp:"90",attack:"110",defense:"80","sp atk":"100","sp def":"80",speed:"95",types:["Fire"]}],exp:[{"base exp":"194"}]},{pokemon:[{Pokemon:"Poliwag"}],stats:[{"catch rate":"255","growth rate":"Medium Slow",hp:"40",attack:"50",defense:"40","sp atk":"40","sp def":"40",speed:"90",types:["Water"]}],exp:[{"base exp":"60"}]},{pokemon:[{Pokemon:"Poliwhirl"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"65",attack:"65",defense:"65","sp atk":"50","sp def":"50",speed:"90",types:["Water"]}],exp:[{"base exp":"135"}]},{pokemon:[{Pokemon:"Poliwrath"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"90",attack:"95",defense:"95","sp atk":"70","sp def":"90",speed:"70",types:["Water","Fighting"]}],exp:[{"base exp":"230"}]},{pokemon:[{Pokemon:"Abra"}],stats:[{"catch rate":"200","growth rate":"Medium Slow",hp:"25",attack:"20",defense:"15","sp atk":"105","sp def":"55",speed:"90",types:["Psychic"]}],exp:[{"base exp":"62"}]},{pokemon:[{Pokemon:"Kadabra"}],stats:[{"catch rate":"100","growth rate":"Medium Slow",hp:"40",attack:"35",defense:"30","sp atk":"120","sp def":"70",speed:"105",types:["Psychic"]}],exp:[{"base exp":"140"}]},{pokemon:[{Pokemon:"Alakazam"}],stats:[{"catch rate":"50","growth rate":"Medium Slow",hp:"55",attack:"50",defense:"45","sp atk":"135","sp def":"95",speed:"120",types:["Psychic"]}],exp:[{"base exp":"225"}]},{pokemon:[{Pokemon:"Machop"}],stats:[{"catch rate":"180","growth rate":"Medium Slow",hp:"70",attack:"80",defense:"50","sp atk":"35","sp def":"35",speed:"35",types:["Fighting"]}],exp:[{"base exp":"61"}]},{pokemon:[{Pokemon:"Machoke"}],stats:[{"catch rate":"90","growth rate":"Medium Slow",hp:"80",attack:"100",defense:"70","sp atk":"50","sp def":"60",speed:"45",types:["Fighting"]}],exp:[{"base exp":"142"}]},{pokemon:[{Pokemon:"Machamp"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"90",attack:"130",defense:"80","sp atk":"65","sp def":"85",speed:"55",types:["Fighting"]}],exp:[{"base exp":"227"}]},{pokemon:[{Pokemon:"Bellsprout"}],stats:[{"catch rate":"255","growth rate":"Medium Slow",hp:"50",attack:"75",defense:"35","sp atk":"70","sp def":"30",speed:"40",types:["Grass","Poison"]}],exp:[{"base exp":"60"}]},{pokemon:[{Pokemon:"Weepinbell"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"65",attack:"90",defense:"50","sp atk":"85","sp def":"45",speed:"55",types:["Grass","Poison"]}],exp:[{"base exp":"137"}]},{pokemon:[{Pokemon:"Victreebel"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"80",attack:"105",defense:"65","sp atk":"100","sp def":"70",speed:"70",types:["Grass","Poison"]}],exp:[{"base exp":"221"}]},{pokemon:[{Pokemon:"Tentacool"}],stats:[{"catch rate":"190","growth rate":"Slow",hp:"40",attack:"40",defense:"35","sp atk":"50","sp def":"100",speed:"70",types:["Water","Poison"]}],exp:[{"base exp":"67"}]},{pokemon:[{Pokemon:"Tentacruel"}],stats:[{"catch rate":"60","growth rate":"Slow",hp:"80",attack:"70",defense:"65","sp atk":"80","sp def":"120",speed:"100",types:["Water","Poison"]}],exp:[{"base exp":"180"}]},{pokemon:[{Pokemon:"Geodude"}],stats:[{"catch rate":"255","growth rate":"Medium Slow",hp:"40",attack:"80",defense:"100","sp atk":"30","sp def":"30",speed:"20",types:["Rock","Ground"]}],exp:[{"base exp":"60"}]},{pokemon:[{Pokemon:"Graveler"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"55",attack:"95",defense:"115","sp atk":"45","sp def":"45",speed:"35",types:["Rock","Ground"]}],exp:[{"base exp":"137"}]},{pokemon:[{Pokemon:"Golem"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"80",attack:"110",defense:"130","sp atk":"55","sp def":"65",speed:"45",types:["Rock","Ground"]}],exp:[{"base exp":"223"}]},{pokemon:[{Pokemon:"Ponyta"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"50",attack:"85",defense:"55","sp atk":"65","sp def":"65",speed:"90",types:["Fire"]}],exp:[{"base exp":"82"}]},{pokemon:[{Pokemon:"Rapidash"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"65",attack:"100",defense:"70","sp atk":"80","sp def":"80",speed:"105",types:["Fire"]}],exp:[{"base exp":"175"}]},{pokemon:[{Pokemon:"Slowpoke"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"90",attack:"65",defense:"65","sp atk":"40","sp def":"40",speed:"15",types:["Water","Psychic"]}],exp:[{"base exp":"63"}]},{pokemon:[{Pokemon:"Slowbro"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"95",attack:"75",defense:"110","sp atk":"100","sp def":"80",speed:"30",types:["Water","Psychic"]}],exp:[{"base exp":"172"}]},{pokemon:[{Pokemon:"Magnemite"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"25",attack:"35",defense:"70","sp atk":"95","sp def":"55",speed:"45",types:["Electric","Steel"]}],exp:[{"base exp":"65"}]},{pokemon:[{Pokemon:"Magneton"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"50",attack:"60",defense:"95","sp atk":"120","sp def":"70",speed:"70",types:["Electric","Steel"]}],exp:[{"base exp":"163"}]},{pokemon:[{Pokemon:"Farfetchd"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"52",attack:"65",defense:"55","sp atk":"58","sp def":"62",speed:"60",types:["Normal","Flying"]}],exp:[{"base exp":"123"}]},{pokemon:[{Pokemon:"Doduo"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"35",attack:"85",defense:"45","sp atk":"35","sp def":"35",speed:"75",types:["Normal","Flying"]}],exp:[{"base exp":"62"}]},{pokemon:[{Pokemon:"Dodrio"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"60",attack:"110",defense:"70","sp atk":"60","sp def":"60",speed:"100",types:["Normal","Flying"]}],exp:[{"base exp":"161"}]},{pokemon:[{Pokemon:"Seel"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"65",attack:"45",defense:"55","sp atk":"45","sp def":"70",speed:"45",types:["Water"]}],exp:[{"base exp":"65"}]},{pokemon:[{Pokemon:"Dewgong"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"90",attack:"70",defense:"80","sp atk":"70","sp def":"95",speed:"70",types:["Water","Ice"]}],exp:[{"base exp":"166"}]},{pokemon:[{Pokemon:"Grimer"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"80",attack:"80",defense:"50","sp atk":"40","sp def":"50",speed:"25",types:["Poison"]}],exp:[{"base exp":"65"}]},{pokemon:[{Pokemon:"Muk"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"105",attack:"105",defense:"75","sp atk":"65","sp def":"100",speed:"50",types:["Poison"]}],exp:[{"base exp":"175"}]},{pokemon:[{Pokemon:"Shellder"}],stats:[{"catch rate":"190","growth rate":"Slow",hp:"30",attack:"65",defense:"100","sp atk":"45","sp def":"25",speed:"40",types:["Water"]}],exp:[{"base exp":"61"}]},{pokemon:[{Pokemon:"Cloyster"}],stats:[{"catch rate":"60","growth rate":"Slow",hp:"50",attack:"95",defense:"180","sp atk":"85","sp def":"45",speed:"70",types:["Water","Ice"]}],exp:[{"base exp":"184"}]},{pokemon:[{Pokemon:"Gastly"}],stats:[{"catch rate":"190","growth rate":"Medium Slow",hp:"30",attack:"35",defense:"30","sp atk":"100","sp def":"35",speed:"80",types:["Ghost","Poison"]}],exp:[{"base exp":"62"}]},{pokemon:[{Pokemon:"Haunter"}],stats:[{"catch rate":"90","growth rate":"Medium Slow",hp:"45",attack:"50",defense:"45","sp atk":"115","sp def":"55",speed:"95",types:["Ghost","Poison"]}],exp:[{"base exp":"142"}]},{pokemon:[{Pokemon:"Gengar"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"60",attack:"65",defense:"60","sp atk":"130","sp def":"75",speed:"110",types:["Ghost","Poison"]}],exp:[{"base exp":"225"}]},{pokemon:[{Pokemon:"Onix"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"35",attack:"45",defense:"160","sp atk":"30","sp def":"45",speed:"70",types:["Rock","Ground"]}],exp:[{"base exp":"77"}]},{pokemon:[{Pokemon:"Drowzee"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"60",attack:"48",defense:"45","sp atk":"43","sp def":"90",speed:"42",types:["Psychic"]}],exp:[{"base exp":"66"}]},{pokemon:[{Pokemon:"Hypno"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"85",attack:"73",defense:"70","sp atk":"73","sp def":"115",speed:"67",types:["Psychic"]}],exp:[{"base exp":"169"}]},{pokemon:[{Pokemon:"Krabby"}],stats:[{"catch rate":"225","growth rate":"Medium Fast",hp:"30",attack:"105",defense:"90","sp atk":"25","sp def":"25",speed:"50",types:["Water"]}],exp:[{"base exp":"65"}]},{pokemon:[{Pokemon:"Kingler"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"55",attack:"130",defense:"115","sp atk":"50","sp def":"50",speed:"75",types:["Water"]}],exp:[{"base exp":"166"}]},{pokemon:[{Pokemon:"Voltorb"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"40",attack:"30",defense:"50","sp atk":"55","sp def":"55",speed:"100",types:["Electric"]}],exp:[{"base exp":"66"}]},{pokemon:[{Pokemon:"Electrode"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"60",attack:"50",defense:"70","sp atk":"80","sp def":"80",speed:"140",types:["Electric"]}],exp:[{"base exp":"168"}]},{pokemon:[{Pokemon:"Exeggcute"}],stats:[{"catch rate":"90","growth rate":"Slow",hp:"60",attack:"40",defense:"80","sp atk":"60","sp def":"45",speed:"40",types:["Grass","Psychic"]}],exp:[{"base exp":"65"}]},{pokemon:[{Pokemon:"Exeggutor"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"95",attack:"95",defense:"85","sp atk":"125","sp def":"65",speed:"55",types:["Grass","Psychic"]}],exp:[{"base exp":"182"}]},{pokemon:[{Pokemon:"Cubone"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"50",attack:"50",defense:"95","sp atk":"40","sp def":"50",speed:"35",types:["Ground"]}],exp:[{"base exp":"64"}]},{pokemon:[{Pokemon:"Marowak"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"60",attack:"80",defense:"110","sp atk":"50","sp def":"80",speed:"45",types:["Ground"]}],exp:[{"base exp":"149"}]},{pokemon:[{Pokemon:"Hitmonlee"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"50",attack:"120",defense:"53","sp atk":"35","sp def":"110",speed:"87",types:["Fighting"]}],exp:[{"base exp":"159"}]},{pokemon:[{Pokemon:"Hitmonchan"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"50",attack:"105",defense:"79","sp atk":"35","sp def":"110",speed:"76",types:["Fighting"]}],exp:[{"base exp":"159"}]},{pokemon:[{Pokemon:"Lickitung"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"90",attack:"55",defense:"75","sp atk":"60","sp def":"75",speed:"30",types:["Normal"]}],exp:[{"base exp":"77"}]},{pokemon:[{Pokemon:"Koffing"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"40",attack:"65",defense:"95","sp atk":"60","sp def":"45",speed:"35",types:["Poison"]}],exp:[{"base exp":"68"}]},{pokemon:[{Pokemon:"Weezing"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"65",attack:"90",defense:"120","sp atk":"85","sp def":"70",speed:"60",types:["Poison"]}],exp:[{"base exp":"172"}]},{pokemon:[{Pokemon:"Rhyhorn"}],stats:[{"catch rate":"120","growth rate":"Slow",hp:"80",attack:"85",defense:"95","sp atk":"30","sp def":"30",speed:"25",types:["Ground","Rock"]}],exp:[{"base exp":"69"}]},{pokemon:[{Pokemon:"Rhydon"}],stats:[{"catch rate":"60","growth rate":"Slow",hp:"105",attack:"130",defense:"120","sp atk":"45","sp def":"45",speed:"40",types:["Ground","Rock"]}],exp:[{"base exp":"170"}]},{pokemon:[{Pokemon:"Chansey"}],stats:[{"catch rate":"30","growth rate":"Fast",hp:"250",attack:"5",defense:"5","sp atk":"35","sp def":"105",speed:"50",types:["Normal"]}],exp:[{"base exp":"395"}]},{pokemon:[{Pokemon:"Tangela"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"55",defense:"115","sp atk":"100","sp def":"40",speed:"60",types:["Grass"]}],exp:[{"base exp":"87"}]},{pokemon:[{Pokemon:"Kangaskhan"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"105",attack:"95",defense:"80","sp atk":"40","sp def":"80",speed:"90",types:["Normal"]}],exp:[{"base exp":"172"}]},{pokemon:[{Pokemon:"Horsea"}],stats:[{"catch rate":"225","growth rate":"Medium Fast",hp:"30",attack:"40",defense:"70","sp atk":"70","sp def":"25",speed:"60",types:["Water"]}],exp:[{"base exp":"59"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/horsea.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/horsea.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/horsea.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/horsea.gif"}}},{pokemon:[{Pokemon:"Seadra"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"55",attack:"65",defense:"95","sp atk":"95","sp def":"45",speed:"85",types:["Water"]}],exp:[{"base exp":"154"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/seadra.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/seadra.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/seadra.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/seadra.gif"}}},{pokemon:[{Pokemon:"Goldeen"}],stats:[{"catch rate":"225","growth rate":"Medium Fast",hp:"45",attack:"67",defense:"60","sp atk":"35","sp def":"50",speed:"63",types:["Water"]}],exp:[{"base exp":"64"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/goldeen.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/goldeen.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/goldeen.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/goldeen.gif"}}},{pokemon:[{Pokemon:"Seaking"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"80",attack:"92",defense:"65","sp atk":"65","sp def":"80",speed:"68",types:["Water"]}],exp:[{"base exp":"158"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/seaking.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/seaking.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/seaking.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/seaking.gif"}}},{pokemon:[{Pokemon:"Staryu"}],stats:[{"catch rate":"225","growth rate":"Slow",hp:"30",attack:"45",defense:"55","sp atk":"70","sp def":"55",speed:"85",types:["Water"]}],exp:[{"base exp":"68"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/staryu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/staryu.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/staryu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/staryu.gif"}}},{pokemon:[{Pokemon:"Starmie"}],stats:[{"catch rate":"60","growth rate":"Slow",hp:"60",attack:"75",defense:"85","sp atk":"100","sp def":"85",speed:"115",types:["Water","Psychic"]}],exp:[{"base exp":"182"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/starmie.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/starmie.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/starmie.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/starmie.gif"}}},{pokemon:[{Pokemon:"Mr. Mime"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"40",attack:"45",defense:"65","sp atk":"100","sp def":"120",speed:"90",types:["Psychic","Fairy"]}],exp:[{"base exp":"161"}]},{pokemon:[{Pokemon:"Scyther"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"70",attack:"110",defense:"80","sp atk":"55","sp def":"80",speed:"105",types:["Bug","Flying"]}],exp:[{"base exp":"100"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/scyther.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/scyther.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/scyther.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/scyther.gif"}}},{pokemon:[{Pokemon:"Jynx"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"50",defense:"35","sp atk":"115","sp def":"95",speed:"95",types:["Ice","Psychic"]}],exp:[{"base exp":"159"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/jynx.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/jynx.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/jynx.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/jynx.gif"}}},{pokemon:[{Pokemon:"Electabuzz"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"83",defense:"57","sp atk":"95","sp def":"85",speed:"105",types:["Electric"]}],exp:[{"base exp":"172"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/electabuzz.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/electabuzz.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/electabuzz.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/electabuzz.gif"}}},{pokemon:[{Pokemon:"Magmar"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"95",defense:"57","sp atk":"100","sp def":"85",speed:"93",types:["Fire"]}],exp:[{"base exp":"173"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/magmar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/magmar.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/magmar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/magmar.gif"}}},{pokemon:[{Pokemon:"Pinsir"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"65",attack:"125",defense:"100","sp atk":"55","sp def":"70",speed:"85",types:["Bug"]}],exp:[{"base exp":"175"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/pinsir.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/pinsir.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/pinsir.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/pinsir.gif"}}},{pokemon:[{Pokemon:"Tauros"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"75",attack:"100",defense:"95","sp atk":"40","sp def":"70",speed:"110",types:["Normal"]}],exp:[{"base exp":"172"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/tauros.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/tauros.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/tauros.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/tauros.gif"}}},{pokemon:[{Pokemon:"Magikarp"}],stats:[{"catch rate":"255","growth rate":"Slow",hp:"20",attack:"10",defense:"55","sp atk":"15","sp def":"20",speed:"80",types:["Water"]}],exp:[{"base exp":"40"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/magikarp.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/magikarp.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/magikarp.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/magikarp.gif"}}},{pokemon:[{Pokemon:"Gyarados"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"95",attack:"125",defense:"79","sp atk":"60","sp def":"100",speed:"81",types:["Water","Flying"]}],exp:[{"base exp":"189"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/gyarados.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/gyarados.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/gyarados.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/gyarados.gif"}}},{pokemon:[{Pokemon:"Lapras"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"130",attack:"85",defense:"80","sp atk":"85","sp def":"95",speed:"60",types:["Water","Ice"]}],exp:[{"base exp":"187"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/lapras.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/lapras.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/lapras.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/lapras.gif"}}},{pokemon:[{Pokemon:"Ditto"}],stats:[{"catch rate":"35","growth rate":"Medium Fast",hp:"48",attack:"48",defense:"48","sp atk":"48","sp def":"48",speed:"48",types:["Normal"]}],exp:[{"base exp":"101"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/ditto.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/ditto.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/ditto.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/ditto.gif"}}},{pokemon:[{Pokemon:"Eevee"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"55",attack:"55",defense:"50","sp atk":"45","sp def":"65",speed:"55",types:["Normal"]}],exp:[{"base exp":"65"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/eevee.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/eevee.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/eevee.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/eevee.gif"}}},{pokemon:[{Pokemon:"Vaporeon"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"130",attack:"65",defense:"60","sp atk":"110","sp def":"95",speed:"65",types:["Water"]}],exp:[{"base exp":"184"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/vaporeon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/vaporeon.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/vaporeon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/vaporeon.gif"}}},{pokemon:[{Pokemon:"Jolteon"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"65",defense:"60","sp atk":"110","sp def":"95",speed:"130",types:["Electric"]}],exp:[{"base exp":"184"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/jolteon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/jolteon.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/jolteon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/jolteon.gif"}}},{pokemon:[{Pokemon:"Flareon"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"130",defense:"60","sp atk":"95","sp def":"110",speed:"65",types:["Fire"]}],exp:[{"base exp":"184"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/flareon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/flareon.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/flareon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/flareon.gif"}}},{pokemon:[{Pokemon:"Porygon"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"60",defense:"70","sp atk":"85","sp def":"75",speed:"40",types:["Normal"]}],exp:[{"base exp":"79"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/porygon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/porygon.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/porygon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/porygon.gif"}}},{pokemon:[{Pokemon:"Omanyte"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"35",attack:"40",defense:"100","sp atk":"90","sp def":"55",speed:"35",types:["Rock","Water"]}],exp:[{"base exp":"71"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/omanyte.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/omanyte.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/omanyte.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/omanyte.gif"}}},{pokemon:[{Pokemon:"Omastar"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"70",attack:"60",defense:"125","sp atk":"115","sp def":"70",speed:"55",types:["Rock","Water"]}],exp:[{"base exp":"173"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/omastar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/omastar.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/omastar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/omastar.gif"}}},{pokemon:[{Pokemon:"Kabuto"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"30",attack:"80",defense:"90","sp atk":"55","sp def":"45",speed:"55",types:["Rock","Water"]}],exp:[{"base exp":"71"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/kabuto.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/kabuto.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/kabuto.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/kabuto.gif"}}},{pokemon:[{Pokemon:"Kabutops"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"60",attack:"115",defense:"105","sp atk":"65","sp def":"70",speed:"80",types:["Rock","Water"]}],exp:[{"base exp":"173"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/kabutops.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/kabutops.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/kabutops.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/kabutops.gif"}}},{pokemon:[{Pokemon:"Aerodactyl"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"80",attack:"105",defense:"65","sp atk":"60","sp def":"75",speed:"130",types:["Rock","Flying"]}],exp:[{"base exp":"180"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/aerodactyl.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/aerodactyl.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/aerodactyl.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/aerodactyl.gif"}}},{pokemon:[{Pokemon:"Snorlax"}],stats:[{"catch rate":"25","growth rate":"Slow",hp:"160",attack:"110",defense:"65","sp atk":"65","sp def":"110",speed:"30",types:["Normal"]}],exp:[{"base exp":"189"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/snorlax.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/snorlax.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/snorlax.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/snorlax.gif"}}},{pokemon:[{Pokemon:"Articuno"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"90",attack:"85",defense:"100","sp atk":"95","sp def":"125",speed:"85",types:["Ice","Flying"]}],exp:[{"base exp":"261"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/articuno.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/articuno.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/articuno.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/articuno.gif"}}},{pokemon:[{Pokemon:"Zapdos"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"90",attack:"90",defense:"85","sp atk":"125","sp def":"90",speed:"100",types:["Electric","Flying"]}],exp:[{"base exp":"261"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/zapdos.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/zapdos.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/zapdos.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/zapdos.gif"}}},{pokemon:[{Pokemon:"Moltres"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"90",attack:"100",defense:"90","sp atk":"125","sp def":"85",speed:"90",types:["Fire","Flying"]}],exp:[{"base exp":"261"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/moltres.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/moltres.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/moltres.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/moltres.gif"}}},{pokemon:[{Pokemon:"Dratini"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"41",attack:"64",defense:"45","sp atk":"50","sp def":"50",speed:"50",types:["Dragon"]}],exp:[{"base exp":"60"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/dratini.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/dratini.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/dratini.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/dratini.gif"}}},{pokemon:[{Pokemon:"Dragonair"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"61",attack:"84",defense:"65","sp atk":"70","sp def":"70",speed:"70",types:["Dragon"]}],exp:[{"base exp":"147"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/dragonair.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/dragonair.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/dragonair.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/dragonair.gif"}}},{pokemon:[{Pokemon:"Dragonite"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"91",attack:"134",defense:"95","sp atk":"100","sp def":"100",speed:"80",types:["Dragon","Flying"]}],exp:[{"base exp":"270"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/dragonite.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/dragonite.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/dragonite.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/dragonite.gif"}}},{pokemon:[{Pokemon:"Mewtwo"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"106",attack:"110",defense:"90","sp atk":"154","sp def":"90",speed:"130",types:["Psychic"]}],exp:[{"base exp":"306"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/mewtwo.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/mewtwo.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/mewtwo.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/mewtwo.gif"}}},{pokemon:[{Pokemon:"Mew"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"100",attack:"100",defense:"100","sp atk":"100","sp def":"100",speed:"100",types:["Psychic"]}],exp:[{"base exp":"270"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/mew.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/mew.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/mew.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/mew.gif"}}},{pokemon:[{Pokemon:"Chikorita"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"45",attack:"49",defense:"65","sp atk":"49","sp def":"65",speed:"45",types:["Grass"]}],exp:[{"base exp":"64"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/chikorita.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/chikorita.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/chikorita.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/chikorita.gif"}}},{pokemon:[{Pokemon:"Bayleef"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"60",attack:"62",defense:"80","sp atk":"63","sp def":"80",speed:"60",types:["Grass"]}],exp:[{"base exp":"142"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/bayleef.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/bayleef.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/bayleef.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/bayleef.gif"}}},{pokemon:[{Pokemon:"Meganium"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"80",attack:"82",defense:"100","sp atk":"83","sp def":"100",speed:"80",types:["Grass"]}],exp:[{"base exp":"236"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/meganium.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/meganium.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/meganium.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/meganium.gif"}}},{pokemon:[{Pokemon:"Cyndaquil"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"39",attack:"52",defense:"43","sp atk":"60","sp def":"50",speed:"65",types:["Fire"]}],exp:[{"base exp":"62"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/cyndaquil.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/cyndaquil.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/cyndaquil.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/cyndaquil.gif"}}},{pokemon:[{Pokemon:"Quilava"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"58",attack:"64",defense:"58","sp atk":"80","sp def":"65",speed:"80",types:["Fire"]}],exp:[{"base exp":"142"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/quilava.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/quilava.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/quilava.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/quilava.gif"}}},{pokemon:[{Pokemon:"Typhlosion"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"78",attack:"84",defense:"78","sp atk":"109","sp def":"85",speed:"100",types:["Fire"]}],exp:[{"base exp":"240"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/typhlosion.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/typhlosion.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/typhlosion.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/typhlosion.gif"}}},{pokemon:[{Pokemon:"Totodile"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"50",attack:"65",defense:"64","sp atk":"44","sp def":"48",speed:"43",types:["Water"]}],exp:[{"base exp":"63"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/totodile.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/totodile.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/totodile.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/totodile.gif"}}},{pokemon:[{Pokemon:"Croconaw"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"65",attack:"80",defense:"80","sp atk":"59","sp def":"63",speed:"58",types:["Water"]}],exp:[{"base exp":"142"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/croconaw.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/croconaw.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/croconaw.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/croconaw.gif"}}},{pokemon:[{Pokemon:"Feraligatr"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"85",attack:"105",defense:"100","sp atk":"79","sp def":"83",speed:"78",types:["Water"]}],exp:[{"base exp":"239"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/feraligatr.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/feraligatr.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/feraligatr.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/feraligatr.gif"}}},{pokemon:[{Pokemon:"Sentret"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"35",attack:"46",defense:"34","sp atk":"35","sp def":"45",speed:"20",types:["Normal"]}],exp:[{"base exp":"43"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/sentret.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/sentret.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/sentret.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/sentret.gif"}}},{pokemon:[{Pokemon:"Furret"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"85",attack:"76",defense:"64","sp atk":"45","sp def":"55",speed:"90",types:["Normal"]}],exp:[{"base exp":"145"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/furret.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/furret.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/furret.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/furret.gif"}}},{pokemon:[{Pokemon:"Hoothoot"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"60",attack:"30",defense:"30","sp atk":"36","sp def":"56",speed:"50",types:["Normal","Flying"]}],exp:[{"base exp":"52"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/hoothoot.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/hoothoot.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/hoothoot.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/hoothoot.gif"}}},{pokemon:[{Pokemon:"Noctowl"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"100",attack:"50",defense:"50","sp atk":"76","sp def":"96",speed:"70",types:["Normal","Flying"]}],exp:[{"base exp":"155"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/noctowl.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/noctowl.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/noctowl.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/noctowl.gif"}}},{pokemon:[{Pokemon:"Ledyba"}],stats:[{"catch rate":"255","growth rate":"Fast",hp:"40",attack:"20",defense:"30","sp atk":"40","sp def":"80",speed:"55",types:["Bug","Flying"]}],exp:[{"base exp":"53"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/ledyba.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/ledyba.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/ledyba.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/ledyba.gif"}}},{pokemon:[{Pokemon:"Ledian"}],stats:[{"catch rate":"90","growth rate":"Fast",hp:"55",attack:"35",defense:"50","sp atk":"55","sp def":"110",speed:"85",types:["Bug","Flying"]}],exp:[{"base exp":"137"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/ledian.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/ledian.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/ledian.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/ledian.gif"}}},{pokemon:[{Pokemon:"Spinarak"}],stats:[{"catch rate":"255","growth rate":"Fast",hp:"40",attack:"60",defense:"40","sp atk":"40","sp def":"40",speed:"30",types:["Bug","Poison"]}],exp:[{"base exp":"50"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/spinarak.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/spinarak.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/spinarak.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/spinarak.gif"}}},{pokemon:[{Pokemon:"Ariados"}],stats:[{"catch rate":"90","growth rate":"Fast",hp:"70",attack:"90",defense:"70","sp atk":"60","sp def":"60",speed:"40",types:["Bug","Poison"]}],exp:[{"base exp":"137"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/ariados.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/ariados.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/ariados.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/ariados.gif"}}},{pokemon:[{Pokemon:"Crobat"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"85",attack:"90",defense:"80","sp atk":"70","sp def":"80",speed:"130",types:["Poison","Flying"]}],exp:[{"base exp":"241"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/crobat.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/crobat.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/crobat.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/crobat.gif"}}},{pokemon:[{Pokemon:"Chinchou"}],stats:[{"catch rate":"190","growth rate":"Slow",hp:"75",attack:"38",defense:"38","sp atk":"56","sp def":"56",speed:"67",types:["Water","Electric"]}],exp:[{"base exp":"66"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/chinchou.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/chinchou.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/chinchou.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/chinchou.gif"}}},{pokemon:[{Pokemon:"Lanturn"}],stats:[{"catch rate":"75","growth rate":"Slow",hp:"125",attack:"58",defense:"58","sp atk":"76","sp def":"76",speed:"67",types:["Water","Electric"]}],exp:[{"base exp":"161"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/lanturn.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/lanturn.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/lanturn.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/lanturn.gif"}}},{pokemon:[{Pokemon:"Pichu"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"20",attack:"40",defense:"15","sp atk":"35","sp def":"35",speed:"60",types:["Electric"]}],exp:[{"base exp":"41"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/pichu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/pichu.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/pichu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/pichu.gif"}}},{pokemon:[{Pokemon:"Cleffa"}],stats:[{"catch rate":"150","growth rate":"Fast",hp:"50",attack:"25",defense:"28","sp atk":"45","sp def":"55",speed:"15",types:["Fairy"]}],exp:[{"base exp":"44"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/cleffa.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/cleffa.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/cleffa.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/cleffa.gif"}}},{pokemon:[{Pokemon:"Igglybuff"}],stats:[{"catch rate":"170","growth rate":"Fast",hp:"90",attack:"30",defense:"15","sp atk":"40","sp def":"20",speed:"15",types:["Normal","Fairy"]}],exp:[{"base exp":"42"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/igglybuff.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/igglybuff.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/igglybuff.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/igglybuff.gif"}}},{pokemon:[{Pokemon:"Togepi"}],stats:[{"catch rate":"190","growth rate":"Fast",hp:"35",attack:"20",defense:"65","sp atk":"40","sp def":"65",speed:"20",types:["Fairy"]}],exp:[{"base exp":"49"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/togepi.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/togepi.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/togepi.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/togepi.gif"}}},{pokemon:[{Pokemon:"Togetic"}],stats:[{"catch rate":"75","growth rate":"Fast",hp:"55",attack:"40",defense:"85","sp atk":"80","sp def":"105",speed:"40",types:["Fairy","Flying"]}],exp:[{"base exp":"142"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/togetic.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/togetic.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/togetic.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/togetic.gif"}}},{pokemon:[{Pokemon:"Natu"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"40",attack:"50",defense:"45","sp atk":"70","sp def":"45",speed:"70",types:["Psychic","Flying"]}],exp:[{"base exp":"64"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/natu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/natu.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/natu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/natu.gif"}}},{pokemon:[{Pokemon:"Xatu"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"65",attack:"75",defense:"70","sp atk":"95","sp def":"70",speed:"95",types:["Psychic","Flying"]}],exp:[{"base exp":"165"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/xatu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/xatu.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/xatu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/xatu.gif"}}},{pokemon:[{Pokemon:"Mareep"}],stats:[{"catch rate":"235","growth rate":"Medium Slow",hp:"55",attack:"40",defense:"40","sp atk":"65","sp def":"45",speed:"35",types:["Electric"]}],exp:[{"base exp":"56"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/mareep.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/mareep.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/mareep.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/mareep.gif"}}},{pokemon:[{Pokemon:"Flaaffy"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"70",attack:"55",defense:"55","sp atk":"80","sp def":"60",speed:"45",types:["Electric"]}],exp:[{"base exp":"128"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/flaaffy.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/flaaffy.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/flaaffy.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/flaaffy.gif"}}},{pokemon:[{Pokemon:"Ampharos"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"90",attack:"75",defense:"85","sp atk":"115","sp def":"90",speed:"55",types:["Electric"]}],exp:[{"base exp":"230"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/ampharos.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/ampharos.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/ampharos.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/ampharos.gif"}}},{pokemon:[{Pokemon:"Bellossom"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"75",attack:"80",defense:"95","sp atk":"90","sp def":"100",speed:"50",types:["Grass"]}],exp:[{"base exp":"221"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/bellossom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/bellossom.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/bellossom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/bellossom.gif"}}},{pokemon:[{Pokemon:"Marill"}],stats:[{"catch rate":"190","growth rate":"Fast",hp:"70",attack:"20",defense:"50","sp atk":"20","sp def":"50",speed:"40",types:["Water","Fairy"]}],exp:[{"base exp":"88"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/marill.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/marill.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/marill.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/marill.gif"}}},{pokemon:[{Pokemon:"Azumarill"}],stats:[{"catch rate":"75","growth rate":"Fast",hp:"100",attack:"50",defense:"80","sp atk":"60","sp def":"80",speed:"50",types:["Water","Fairy"]}],exp:[{"base exp":"189"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/azumarill.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/azumarill.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/azumarill.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/azumarill.gif"}}},{pokemon:[{Pokemon:"Sudowoodo"}],stats:[{"catch rate":"65","growth rate":"Medium Fast",hp:"70",attack:"100",defense:"115","sp atk":"30","sp def":"65",speed:"30",types:["Rock"]}],exp:[{"base exp":"144"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/sudowoodo.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/sudowoodo.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/sudowoodo.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/sudowoodo.gif"}}},{pokemon:[{Pokemon:"Politoed"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"90",attack:"75",defense:"75","sp atk":"90","sp def":"100",speed:"70",types:["Water"]}],exp:[{"base exp":"225"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/politoed.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/politoed.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/politoed.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/politoed.gif"}}},{pokemon:[{Pokemon:"Hoppip"}],stats:[{"catch rate":"255","growth rate":"Medium Slow",hp:"35",attack:"35",defense:"40","sp atk":"35","sp def":"55",speed:"50",types:["Grass","Flying"]}],exp:[{"base exp":"50"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/hoppip.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/hoppip.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/hoppip.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/hoppip.gif"}}},{pokemon:[{Pokemon:"Skiploom"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"55",attack:"45",defense:"50","sp atk":"45","sp def":"65",speed:"80",types:["Grass","Flying"]}],exp:[{"base exp":"119"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/skiploom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/skiploom.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/skiploom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/skiploom.gif"}}},{pokemon:[{Pokemon:"Jumpluff"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"75",attack:"55",defense:"70","sp atk":"55","sp def":"95",speed:"110",types:["Grass","Flying"]}],exp:[{"base exp":"207"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/jumpluff.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/jumpluff.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/jumpluff.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/jumpluff.gif"}}},{pokemon:[{Pokemon:"Aipom"}],stats:[{"catch rate":"45","growth rate":"Fast",hp:"55",attack:"70",defense:"55","sp atk":"40","sp def":"55",speed:"85",types:["Normal"]}],exp:[{"base exp":"72"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/aipom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/aipom.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/aipom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/aipom.gif"}}},{pokemon:[{Pokemon:"Sunkern"}],stats:[{"catch rate":"235","growth rate":"Medium Slow",hp:"30",attack:"30",defense:"30","sp atk":"30","sp def":"30",speed:"30",types:["Grass"]}],exp:[{"base exp":"36"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/sunkern.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/sunkern.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/sunkern.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/sunkern.gif"}}},{pokemon:[{Pokemon:"Sunflora"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"75",attack:"75",defense:"55","sp atk":"105","sp def":"85",speed:"30",types:["Grass"]}],exp:[{"base exp":"149"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/sunflora.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/sunflora.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/sunflora.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/sunflora.gif"}}},{pokemon:[{Pokemon:"Yanma"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"65",attack:"65",defense:"45","sp atk":"75","sp def":"45",speed:"95",types:["Bug","Flying"]}],exp:[{"base exp":"78"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/yanma.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/yanma.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/yanma.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/yanma.gif"}}},{pokemon:[{Pokemon:"Wooper"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"55",attack:"45",defense:"45","sp atk":"25","sp def":"25",speed:"15",types:["Water","Ground"]}],exp:[{"base exp":"42"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/wooper.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/wooper.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/wooper.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/wooper.gif"}}},{pokemon:[{Pokemon:"Quagsire"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"95",attack:"85",defense:"85","sp atk":"65","sp def":"65",speed:"35",types:["Water","Ground"]}],exp:[{"base exp":"151"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/quagsire.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/quagsire.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/quagsire.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/quagsire.gif"}}},{pokemon:[{Pokemon:"Espeon"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"65",defense:"60","sp atk":"130","sp def":"95",speed:"110",types:["Psychic"]}],exp:[{"base exp":"184"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/espeon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/espeon.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/espeon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/espeon.gif"}}},{pokemon:[{Pokemon:"Umbreon"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"95",attack:"65",defense:"110","sp atk":"60","sp def":"130",speed:"65",types:["Dark"]}],exp:[{"base exp":"184"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/umbreon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/umbreon.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/umbreon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/umbreon.gif"}}},{pokemon:[{Pokemon:"Murkrow"}],stats:[{"catch rate":"30","growth rate":"Medium Slow",hp:"60",attack:"85",defense:"42","sp atk":"85","sp def":"42",speed:"91",types:["Dark","Flying"]}],exp:[{"base exp":"81"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/murkrow.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/murkrow.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/murkrow.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/murkrow.gif"}}},{pokemon:[{Pokemon:"Slowking"}],stats:[{"catch rate":"70","growth rate":"Medium Fast",hp:"95",attack:"75",defense:"80","sp atk":"100","sp def":"110",speed:"30",types:["Water","Psychic"]}],exp:[{"base exp":"172"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/slowking.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/slowking.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/slowking.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/slowking.gif"}}},{pokemon:[{Pokemon:"Misdreavus"}],stats:[{"catch rate":"45","growth rate":"Fast",hp:"60",attack:"60",defense:"60","sp atk":"85","sp def":"85",speed:"85",types:["Ghost"]}],exp:[{"base exp":"87"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/misdreavus.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/misdreavus.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/misdreavus.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/misdreavus.gif"}}},{pokemon:[{Pokemon:"Unown"}],stats:[{"catch rate":"225","growth rate":"Medium Fast",hp:"48",attack:"72",defense:"48","sp atk":"72","sp def":"48",speed:"48",types:["Psychic"]}],exp:[{"base exp":"118"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/unown.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/unown.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/unown.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/unown.gif"}}},{pokemon:[{Pokemon:"Wobbuffet"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"190",attack:"33",defense:"58","sp atk":"33","sp def":"58",speed:"33",types:["Psychic"]}],exp:[{"base exp":"142"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/wobbuffet.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/wobbuffet.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/wobbuffet.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/wobbuffet.gif"}}},{pokemon:[{Pokemon:"Girafarig"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"70",attack:"80",defense:"65","sp atk":"90","sp def":"65",speed:"85",types:["Normal","Psychic"]}],exp:[{"base exp":"159"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/girafarig.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/girafarig.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/girafarig.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/girafarig.gif"}}},{pokemon:[{Pokemon:"Pineco"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"50",attack:"65",defense:"90","sp atk":"35","sp def":"35",speed:"15",types:["Bug"]}],exp:[{"base exp":"58"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/pineco.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/pineco.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/pineco.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/pineco.gif"}}},{pokemon:[{Pokemon:"Forretress"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"75",attack:"90",defense:"140","sp atk":"60","sp def":"60",speed:"40",types:["Bug","Steel"]}],exp:[{"base exp":"163"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/forretress.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/forretress.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/forretress.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/forretress.gif"}}},{pokemon:[{Pokemon:"Dunsparce"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"100",attack:"70",defense:"70","sp atk":"65","sp def":"65",speed:"45",types:["Normal"]}],exp:[{"base exp":"145"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/dunsparce.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/dunsparce.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/dunsparce.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/dunsparce.gif"}}},{pokemon:[{Pokemon:"Gligar"}],stats:[{"catch rate":"60","growth rate":"Medium Slow",hp:"65",attack:"75",defense:"105","sp atk":"35","sp def":"65",speed:"85",types:["Ground","Flying"]}],exp:[{"base exp":"86"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/gligar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/gligar.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/gligar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/gligar.gif"}}},{pokemon:[{Pokemon:"Steelix"}],stats:[{"catch rate":"25","growth rate":"Medium Fast",hp:"75",attack:"85",defense:"200","sp atk":"55","sp def":"65",speed:"30",types:["Steel","Ground"]}],exp:[{"base exp":"179"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/steelix.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/steelix.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/steelix.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/steelix.gif"}}},{pokemon:[{Pokemon:"Snubbull"}],stats:[{"catch rate":"190","growth rate":"Fast",hp:"60",attack:"80",defense:"50","sp atk":"40","sp def":"40",speed:"30",types:["Fairy"]}],exp:[{"base exp":"60"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/snubbull.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/snubbull.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/snubbull.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/snubbull.gif"}}},{pokemon:[{Pokemon:"Granbull"}],stats:[{"catch rate":"75","growth rate":"Fast",hp:"90",attack:"120",defense:"75","sp atk":"60","sp def":"60",speed:"45",types:["Fairy"]}],exp:[{"base exp":"158"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/granbull.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/granbull.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/granbull.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/granbull.gif"}}},{pokemon:[{Pokemon:"Qwilfish"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"95",defense:"75","sp atk":"55","sp def":"55",speed:"85",types:["Water","Poison"]}],exp:[{"base exp":"86"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/qwilfish.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/qwilfish.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/qwilfish.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/qwilfish.gif"}}},{pokemon:[{Pokemon:"Scizor"}],stats:[{"catch rate":"25","growth rate":"Medium Fast",hp:"70",attack:"130",defense:"100","sp atk":"55","sp def":"80",speed:"65",types:["Bug","Steel"]}],exp:[{"base exp":"175"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/scizor.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/scizor.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/scizor.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/scizor.gif"}}},{pokemon:[{Pokemon:"Shuckle"}],stats:[{"catch rate":"190","growth rate":"Medium Slow",hp:"20",attack:"10",defense:"230","sp atk":"10","sp def":"230",speed:"5",types:["Bug","Rock"]}],exp:[{"base exp":"177"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/shuckle.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/shuckle.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/shuckle.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/shuckle.gif"}}},{pokemon:[{Pokemon:"Heracross"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"80",attack:"125",defense:"75","sp atk":"40","sp def":"95",speed:"85",types:["Bug","Fighting"]}],exp:[{"base exp":"175"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/heracross.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/heracross.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/heracross.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/heracross.gif"}}},{pokemon:[{Pokemon:"Sneasel"}],stats:[{"catch rate":"60","growth rate":"Medium Slow",hp:"55",attack:"95",defense:"55","sp atk":"35","sp def":"75",speed:"115",types:["Dark","Ice"]}],exp:[{"base exp":"86"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/sneasel.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/sneasel.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/sneasel.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/sneasel.gif"}}},{pokemon:[{Pokemon:"Teddiursa"}],stats:[{"catch rate":"120","growth rate":"Medium Fast",hp:"60",attack:"80",defense:"50","sp atk":"50","sp def":"50",speed:"40",types:["Normal"]}],exp:[{"base exp":"66"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/teddiursa.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/teddiursa.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/teddiursa.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/teddiursa.gif"}}},{pokemon:[{Pokemon:"Ursaring"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"90",attack:"130",defense:"75","sp atk":"75","sp def":"75",speed:"55",types:["Normal"]}],exp:[{"base exp":"175"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/ursaring.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/ursaring.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/ursaring.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/ursaring.gif"}}},{pokemon:[{Pokemon:"Slugma"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"40",attack:"40",defense:"40","sp atk":"70","sp def":"40",speed:"20",types:["Fire"]}],exp:[{"base exp":"50"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/slugma.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/slugma.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/slugma.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/slugma.gif"}}},{pokemon:[{Pokemon:"Magcargo"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"50",attack:"50",defense:"120","sp atk":"80","sp def":"80",speed:"30",types:["Fire","Rock"]}],exp:[{"base exp":"144"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/magcargo.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/magcargo.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/magcargo.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/magcargo.gif"}}},{pokemon:[{Pokemon:"Swinub"}],stats:[{"catch rate":"225","growth rate":"Slow",hp:"50",attack:"50",defense:"40","sp atk":"30","sp def":"30",speed:"50",types:["Ice","Ground"]}],exp:[{"base exp":"50"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/swinub.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/swinub.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/swinub.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/swinub.gif"}}},{pokemon:[{Pokemon:"Piloswine"}],stats:[{"catch rate":"75","growth rate":"Slow",hp:"100",attack:"100",defense:"80","sp atk":"60","sp def":"60",speed:"50",types:["Ice","Ground"]}],exp:[{"base exp":"158"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/piloswine.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/piloswine.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/piloswine.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/piloswine.gif"}}},{pokemon:[{Pokemon:"Corsola"}],stats:[{"catch rate":"60","growth rate":"Fast",hp:"55",attack:"55",defense:"85","sp atk":"65","sp def":"85",speed:"35",types:["Water","Rock"]}],exp:[{"base exp":"133"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/corsola.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/corsola.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/corsola.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/corsola.gif"}}},{pokemon:[{Pokemon:"Remoraid"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"35",attack:"65",defense:"35","sp atk":"65","sp def":"35",speed:"65",types:["Water"]}],exp:[{"base exp":"60"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/remoraid.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/remoraid.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/remoraid.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/remoraid.gif"}}},{pokemon:[{Pokemon:"Octillery"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"75",attack:"105",defense:"75","sp atk":"105","sp def":"75",speed:"45",types:["Water"]}],exp:[{"base exp":"168"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/octillery.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/octillery.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/octillery.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/octillery.gif"}}},{pokemon:[{Pokemon:"Delibird"}],stats:[{"catch rate":"45","growth rate":"Fast",hp:"45",attack:"55",defense:"45","sp atk":"65","sp def":"45",speed:"75",types:["Ice","Flying"]}],exp:[{"base exp":"116"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/delibird.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/delibird.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/delibird.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/delibird.gif"}}},{pokemon:[{Pokemon:"Mantine"}],stats:[{"catch rate":"25","growth rate":"Slow",hp:"65",attack:"40",defense:"70","sp atk":"80","sp def":"140",speed:"70",types:["Water","Flying"]}],exp:[{"base exp":"163"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/mantine.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/mantine.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/mantine.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/mantine.gif"}}},{pokemon:[{Pokemon:"Skarmory"}],stats:[{"catch rate":"25","growth rate":"Slow",hp:"65",attack:"80",defense:"140","sp atk":"40","sp def":"70",speed:"70",types:["Steel","Flying"]}],exp:[{"base exp":"163"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/skarmory.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/skarmory.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/skarmory.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/skarmory.gif"}}},{pokemon:[{Pokemon:"Houndour"}],stats:[{"catch rate":"120","growth rate":"Slow",hp:"45",attack:"60",defense:"30","sp atk":"80","sp def":"50",speed:"65",types:["Dark","Fire"]}],exp:[{"base exp":"66"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/houndour.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/houndour.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/houndour.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/houndour.gif"}}},{pokemon:[{Pokemon:"Houndoom"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"75",attack:"90",defense:"50","sp atk":"110","sp def":"80",speed:"95",types:["Dark","Fire"]}],exp:[{"base exp":"175"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/houndoom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/houndoom.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/houndoom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/houndoom.gif"}}},{pokemon:[{Pokemon:"Kingdra"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"75",attack:"95",defense:"95","sp atk":"95","sp def":"95",speed:"85",types:["Water","Dragon"]}],exp:[{"base exp":"243"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/kingdra.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/kingdra.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/kingdra.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/kingdra.gif"}}},{pokemon:[{Pokemon:"Phanpy"}],stats:[{"catch rate":"120","growth rate":"Medium Fast",hp:"90",attack:"60",defense:"60","sp atk":"40","sp def":"40",speed:"40",types:["Ground"]}],exp:[{"base exp":"66"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/phanpy.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/phanpy.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/phanpy.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/phanpy.gif"}}},{pokemon:[{Pokemon:"Donphan"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"90",attack:"120",defense:"120","sp atk":"60","sp def":"60",speed:"50",types:["Ground"]}],exp:[{"base exp":"175"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/donphan.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/donphan.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/donphan.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/donphan.gif"}}},{pokemon:[{Pokemon:"Porygon2"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"85",attack:"80",defense:"90","sp atk":"105","sp def":"95",speed:"60",types:["Normal"]}],exp:[{"base exp":"180"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/porygon2.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/porygon2.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/porygon2.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/porygon2.gif"}}},{pokemon:[{Pokemon:"Stantler"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"73",attack:"95",defense:"62","sp atk":"85","sp def":"65",speed:"85",types:["Normal"]}],exp:[{"base exp":"163"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/stantler.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/stantler.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/stantler.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/stantler.gif"}}},{pokemon:[{Pokemon:"Smeargle"}],stats:[{"catch rate":"45","growth rate":"Fast",hp:"55",attack:"20",defense:"35","sp atk":"20","sp def":"45",speed:"75",types:["Normal"]}],exp:[{"base exp":"88"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/smeargle.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/smeargle.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/smeargle.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/smeargle.gif"}}},{pokemon:[{Pokemon:"Tyrogue"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"35",attack:"35",defense:"35","sp atk":"35","sp def":"35",speed:"35",types:["Fighting"]}],exp:[{"base exp":"42"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/tyrogue.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/tyrogue.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/tyrogue.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/tyrogue.gif"}}},{pokemon:[{Pokemon:"Hitmontop"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"50",attack:"95",defense:"95","sp atk":"35","sp def":"110",speed:"70",types:["Fighting"]}],exp:[{"base exp":"159"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/hitmontop.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/hitmontop.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/hitmontop.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/hitmontop.gif"}}},{pokemon:[{Pokemon:"Smoochum"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"45",attack:"30",defense:"15","sp atk":"85","sp def":"65",speed:"65",types:["Ice","Psychic"]}],exp:[{"base exp":"61"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/smoochum.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/smoochum.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/smoochum.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/smoochum.gif"}}},{pokemon:[{Pokemon:"Elekid"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"45",attack:"63",defense:"37","sp atk":"65","sp def":"55",speed:"95",types:["Electric"]}],exp:[{"base exp":"72"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/elekid.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/elekid.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/elekid.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/elekid.gif"}}},{pokemon:[{Pokemon:"Magby"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"45",attack:"75",defense:"37","sp atk":"70","sp def":"55",speed:"83",types:["Fire"]}],exp:[{"base exp":"73"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/magby.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/magby.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/magby.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/magby.gif"}}},{pokemon:[{Pokemon:"Miltank"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"95",attack:"80",defense:"105","sp atk":"40","sp def":"70",speed:"100",types:["Normal"]}],exp:[{"base exp":"172"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/miltank.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/miltank.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/miltank.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/miltank.gif"}}},{pokemon:[{Pokemon:"Blissey"}],stats:[{"catch rate":"30","growth rate":"Fast",hp:"255",attack:"10",defense:"10","sp atk":"75","sp def":"135",speed:"55",types:["Normal"]}],exp:[{"base exp":"608"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/blissey.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/blissey.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/blissey.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/blissey.gif"}}},{pokemon:[{Pokemon:"Raikou"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"90",attack:"85",defense:"75","sp atk":"115","sp def":"100",speed:"115",types:["Electric"]}],exp:[{"base exp":"261"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/raikou.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/raikou.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/raikou.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/raikou.gif"}}},{pokemon:[{Pokemon:"Entei"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"115",attack:"115",defense:"85","sp atk":"90","sp def":"75",speed:"100",types:["Fire"]}],exp:[{"base exp":"261"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/entei.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/entei.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/entei.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/entei.gif"}}},{pokemon:[{Pokemon:"Suicune"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"100",attack:"75",defense:"115","sp atk":"90","sp def":"115",speed:"85",types:["Water"]}],exp:[{"base exp":"261"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/suicune.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/suicune.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/suicune.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/suicune.gif"}}},{pokemon:[{Pokemon:"Larvitar"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"50",attack:"64",defense:"50","sp atk":"45","sp def":"50",speed:"41",types:["Rock","Ground"]}],exp:[{"base exp":"60"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/larvitar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/larvitar.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/larvitar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/larvitar.gif"}}},{pokemon:[{Pokemon:"Pupitar"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"70",attack:"84",defense:"70","sp atk":"65","sp def":"70",speed:"51",types:["Rock","Ground"]}],exp:[{"base exp":"144"}]},{pokemon:[{Pokemon:"Tyranitar"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"100",attack:"134",defense:"110","sp atk":"95","sp def":"100",speed:"61",types:["Rock","Dark"]}],exp:[{"base exp":"270"}]},{pokemon:[{Pokemon:"Lugia"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"106",attack:"90",defense:"130","sp atk":"90","sp def":"154",speed:"110",types:["Psychic","Flying"]}],exp:[{"base exp":"306"}]},{pokemon:[{Pokemon:"Ho-Oh"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"106",attack:"130",defense:"90","sp atk":"110","sp def":"154",speed:"90",types:["Fire","Flying"]}],exp:[{"base exp":"306"}]},{pokemon:[{Pokemon:"Celebi"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"100",attack:"100",defense:"100","sp atk":"100","sp def":"100",speed:"100",types:["Psychic","Grass"]}],exp:[{"base exp":"270"}]}];function b(e){return 100*Math.random()0?t:0===t.length&&e.length>0?e:e.length>0&&t.length>0?e.concat(t):[]}function w(e){const t=e.replace(/([A-Z])/g," $1");return t.charAt(0).toUpperCase()+t.slice(1)}function x(e){let t=1,n=!0;const a=setInterval((()=>{t<=.1&&(n=!1),t>=1&&!n&&clearInterval(a),e.style.opacity=t,e.style.filter=`alpha(opacity=${100*t})`,n?t-=.1*t:t+=.1*t}),10)}const v=e=>g.filter((t=>t.pokemon[0].Pokemon===e))[0],P=e=>document.querySelector(e),S={Bulbasaur:{level:"16",to:"Ivysaur"},Ivysaur:{level:"32",to:"Venusaur"},Charmander:{level:"16",to:"Charmeleon"},Charmeleon:{level:"36",to:"Charizard"},Charizard:{level:"100",to:"M-Charizard X"},Squirtle:{level:"16",to:"Wartortle"},Wartortle:{level:"36",to:"Blastoise"},Caterpie:{level:"7",to:"Metapod"},Metapod:{level:"10",to:"Butterfree"},Weedle:{level:"7",to:"Kakuna"},Kakuna:{level:"10",to:"Beedrill"},Pidgey:{level:"18",to:"Pidgeotto"},Pidgeotto:{level:"36",to:"Pidgeot"},Rattata:{level:"20",to:"Raticate"},Spearow:{level:"20",to:"Fearow"},Ekans:{level:"22",to:"Arbok"},Pikachu:{stone:"thunderStone",to:"Raichu"},Sandshrew:{level:"22",to:"Sandslash"},"Nidoran F":{level:"16",to:"Nidorina"},Nidorina:{stone:"moonStone",to:"Nidoqueen"},"Nidoran M":{level:"16",to:"Nidorino"},Nidorino:{stone:"moonStone",to:"Nidoking"},Clefairy:{stone:"moonStone",to:"Clefable"},Vulpix:{stone:"fireStone",to:"Ninetales"},Jigglypuff:{stone:"moonStone",to:"Wigglytuff"},Zubat:{level:"22",to:"Golbat"},Golbat:{level:"45",to:"Crobat"},Oddish:{level:"21",to:"Gloom"},Gloom:{stone:"leafStone",to:"Vileplume"},Paras:{level:"24",to:"Parasect"},Venonat:{level:"31",to:"Venomoth"},Diglett:{level:"26",to:"Dugtrio"},Meowth:{level:"28",to:"Persian"},Psyduck:{level:"33",to:"Golduck"},Mankey:{level:"28",to:"Primeape"},Growlithe:{stone:"fireStone",to:"Arcanine"},Poliwag:{level:"25",to:"Poliwhirl"},Poliwhirl:{stone:"waterStone",to:"Poliwrath"},Abra:{level:"16",to:"Kadabra"},Kadabra:{level:"40",to:"Alakazam"},Machop:{level:"28",to:"Machoke"},Machoke:{level:"40",to:"Machamp"},Bellsprout:{level:"21",to:"Weepinbell"},Weepinbell:{stone:"leafStone",to:"Victreebel"},Tentacool:{level:"30",to:"Tentacruel"},Geodude:{level:"25",to:"Graveler"},Graveler:{level:"40",to:"Golem"},Ponyta:{level:"40",to:"Rapidash"},Slowpoke:{level:"37",to:"Slowbro"},Magnemite:{level:"30",to:"Magneton"},Doduo:{level:"31",to:"Dodrio"},Seel:{level:"34",to:"Dewgong"},Grimer:{level:"38",to:"Muk"},Shellder:{stone:"waterStone",to:"Cloyster"},Gastly:{level:"25",to:"Haunter"},Haunter:{level:"40",to:"Gengar"},Drowzee:{level:"26",to:"Hypno"},Krabby:{level:"28",to:"Kingler"},Voltorb:{level:"30",to:"Electrode"},Exeggcute:{stone:"leafStone",to:"Exeggutor"},Cubone:{level:"28",to:"Marowak"},Koffing:{level:"35",to:"Weezing"},Rhyhorn:{level:"42",to:"Rhydon"},Horsea:{level:"32",to:"Seadra"},Goldeen:{level:"33",to:"Seaking"},Staryu:{stone:"waterStone",to:"Starmie"},Magikarp:{level:"20",to:"Gyarados"},Eevee:{stone:"fireStone",to:"Flareon"},Eevee:{stone:"waterStone",to:"Vaporeon"},Eevee:{stone:"thunderStone",to:"Jolteon"},Omanyte:{level:"40",to:"Omastar"},Kabuto:{level:"40",to:"Kabutops"},Dratini:{level:"30",to:"Dragonair"},Dragonair:{level:"55",to:"Dragonite"},Chikorita:{level:"16",to:"Bayleef"},Bayleef:{level:"32",to:"Meganium"},Cyndaquil:{level:"14",to:"Quilava"},Quilava:{level:"36",to:"Typhlosion"},Totodile:{level:"18",to:"Croconaw"},Croconaw:{level:"30",to:"Feraligatr"},Sentret:{level:"15",to:"Furret"},Hoothoot:{level:"20",to:"Noctowl"},Ledyba:{level:"18",to:"Ledian"},Spinarak:{level:"22",to:"Ariados"},Chinchou:{level:"27",to:"Lanturn"},Pichu:{level:"10",to:"Pikachu"},Cleffa:{level:"10",to:"Clefairy"},Igglybuff:{level:"10",to:"Jigglypuff"},Togepi:{level:"20",to:"Togetic"},Natu:{level:"25",to:"Xatu"},Mareep:{level:"15",to:"Flaaffy"},Flaaffy:{level:"30",to:"Ampharos"},Vileplume:{level:"40",to:"Bellossom"},Poliwrath:{level:"60",to:"Politoad"},Marill:{level:"18",to:"Azumarill"},Hoppip:{level:"18",to:"Skiploom"},Skiploom:{level:"30",to:"Jumpluff"},Sunkern:{level:"25",to:"Sunflora"},Wooper:{level:"20",to:"Quagsire"},Slowbro:{level:"50",to:"Slowking"},Pineco:{level:"31",to:"Forretress"},Onix:{level:"50",to:"Steelix"},Snubbull:{level:"23",to:"Granbull"},Teddiursa:{level:"30",to:"Ursaring"},Slugma:{level:"38",to:"Magcargo"},Swinub:{level:"33",to:"Piloswine"},Remoraid:{level:"25",to:"Octillery"},Houndour:{level:"24",to:"Houndoom"},Phanpy:{level:"25",to:"Donphan"},Larvitar:{level:"30",to:"Pupitar"},Pupitar:{level:"55",to:"Tyranitar"},"M-Mewtwo X":{level:"100",to:"M-Mewtwo Y"},"M-Mewtwo Y":{level:"100",to:"M-Mewtwo X"}},C=e=>{const t=function(e,t,n,o,s,i=0){this.poke=u(e),this.expTable=a[this.poke.stats[0]["growth rate"]],this.exp=t&&this.expTable[t-1]||n,this.isShiny=!0===o,this.caughtAt=s||Date.now(),this.prestigeLevel=i,this.hp=3*this.setHpValue(this.poke.stats[0].hp)};return t.prototype.currentLevel=function(){return this.expTable.filter((e=>e<=this.exp)).length},t.prototype.statValue=function(e){return Math.floor((e+50)*this.currentLevel()/150*Math.pow(1.25,this.prestigeLevel))},t.prototype.setHpValue=function(e){return Math.floor(e*this.currentLevel()/40)},t.prototype.tryEvolve=function(t){if(void 0!==S[this.poke.pokemon[0].Pokemon]){const n=this.poke.pokemon[0].Pokemon,a=S[this.poke.pokemon[0].Pokemon].to,o=S[this.poke.pokemon[0].Pokemon].stone,s=Number(S[this.poke.pokemon[0].Pokemon].level);this.currentLevel()>=s&&(this.poke=u(v(a)),e.addPokedex(a,t?h:m),e.hasPokemon(n,t)||e.addPokedex(n,t?k:c)),e.unlocked[o]&&(this.poke=u(v(a)),e.addPokedex(a,t?h:m),e.hasPokemon(n,t)||e.addPokedex(n,t?k:c))}},t.prototype.canEvolve=function(){if(void 0!==S[this.poke.pokemon[0].Pokemon]){const t=Number(S[this.poke.pokemon[0].Pokemon].level),n=S[this.poke.pokemon[0].Pokemon].stone;if(this.currentLevel()>=t&&!e.hasPokemon(S[this.poke.pokemon[0].Pokemon].to,0))return!0;if(e.unlocked[n]&&!e.hasPokemon(S[this.poke.pokemon[0].Pokemon].to,0))return!0}return!1},t.prototype.tryPrestige=function(){this.canPrestige()&&(this.exp=this.expTable[4],this.setHp(this.maxHp()),this.prestigeLevel++)},t.prototype.canPrestige=function(){return this.level()>=100},t.prototype.setHp=function(e){this.hp=e},t.prototype.getHp=function(){return this.hp},t.prototype.maxHp=function(){return 3*this.setHpValue(this.poke.stats[0].hp)},t.prototype.attack=function(){return this.statValue(this.poke.stats[0].attack)},t.prototype.defense=function(){return this.statValue(this.poke.stats[0].defense)},t.prototype.spAttack=function(){return this.statValue(this.poke.stats[0]["sp atk"])},t.prototype.spDefense=function(){return this.statValue(this.poke.stats[0]["sp def"])},t.prototype.speed=function(){return this.statValue(this.poke.stats[0].speed)},t.prototype.avgDefense=function(){return(this.defense()+this.spDefense())/2},t.prototype.pokeName=function(){return this.poke.pokemon[0].Pokemon},t.prototype.image=function(){const e=this.isShiny?"shiny":"normal";return{front:"assets/sprites/"+[e]+"/front/"+this.poke.pokemon[0].Pokemon+".png",back:"assets/sprites/"+[e]+"/back/"+this.poke.pokemon[0].Pokemon+".png"}},t.prototype.shiny=function(){return this.isShiny},t.prototype.types=function(){return this.poke.stats[0].types},t.prototype.catchRate=function(){return Number(this.poke.stats[0]["catch rate"])},t.prototype.lifeAsText=function(){return(this.getHp()<0?0:this.getHp())+" / "+this.maxHp()},t.prototype.alive=function(){return this.getHp()>0},t.prototype.giveExp=function(e){this.exp+=e},t.prototype.currentExp=function(){return this.exp},t.prototype.nextLevelExp=function(){return this.expTable[this.currentLevel()]},t.prototype.thisLevelExp=function(){return this.expTable[this.currentLevel()-1]||10},t.prototype.level=function(){return this.currentLevel()},t.prototype.attackSpeed=function(){const e=Math.floor(1e3/(500+this.speed())*800);return e<=300?300:e},t.prototype.avgAttack=function(){return(this.attack()+this.spAttack())/2},t.prototype.takeDamage=function(e){const t=e-this.avgDefense()/10>0&&Math.ceil((e-this.avgDefense()/10)*(2*(Math.random()+.1))/100)||0;return this.setHp(this.getHp()-t),t},t.prototype.baseExp=function(){return Number(this.poke.exp[0]["base exp"])},t.prototype.heal=function(){return this.setHp(this.maxHp())},t.prototype.save=function(){return[this.poke.pokemon[0].Pokemon,this.exp,this.isShiny,this.caughtAt,this.prestigeLevel]},{Poke:t,makeRandomPoke:e=>new t(f(g),e)}},M={Kanto:{_global:{pokes:["Bulbasaur","Charmander","Squirtle"],rarePokes:["Omanyte","Kabuto","Aerodactyl","Hitmonlee","Hitmonchan","Lapras","Eevee"],superRare:["Mewtwo","Mew","Articuno","Zapdos","Moltres","Porygon"]},palletTown:{name:"Pallet Town",town:!0,trainer:{name:"Prof. Oak",badge:null,poke:[["Bulbasaur",15],["Charmander",15],["Squirtle",15]]}},route1:{name:"Route 1",pokes:["Pidgey","Rattata"],minLevel:2,maxLevel:5,respawn:"palletTown"},viridianCity:{name:"Viridian City",town:!0,trainer:{name:"Giovanni",badge:"Earth Badge",poke:[["Rhyhorn",45],["Dugtrio",42],["Nidoqueen",44],["Nidoking",45],["Rhydon",50]]}},route22:{name:"Route 22",pokes:["Pidgey","Rattata","Nidoran F","Nidoran M"],minLevel:2,maxLevel:5,respawn:"viridianCity"},route2:{name:"Route 2",pokes:["Pidgey","Rattata","Caterpie","Weedle","Nidoran F","Nidoran M"],minLevel:3,maxLevel:5,respawn:"viridianCity"},viridianForest:{name:"Virdian Forest",pokes:["Caterpie","Metapod","Weedle","Kakuna","Pikachu"],minLevel:3,maxLevel:6,respawn:"viridianCity"},pewterCity:{name:"Pewter City",town:!0,trainer:{name:"Brock",badge:"Boulder Badge",poke:[["Geodude",12],["Onix",14]]}},route3:{name:"Route 3",pokes:["Pidgey","Spearow","Jigglypuff"],minLevel:5,maxLevel:12,respawn:"pewterCity",_unlock:{badges:{"Boulder Badge":!0}}},mtMoon:{name:"Mt. Moon",pokes:["Zubat","Clefairy","Paras","Geodude"],minLevel:6,maxLevel:12,respawn:"pewterCity",_unlock:{badges:{"Boulder Badge":!0}}},route4:{name:"Route 4",pokes:["Rattata","Spearow","Ekans","Sandshrew"],minLevel:6,maxLevel:12,respawn:"pewterCity",_unlock:{badges:{"Boulder Badge":!0}}},ceruleanCity:{name:"Cerulean City",town:!0,trainer:{name:"Misty",badge:"Cascade Badge",poke:[["Staryu",18],["Starmie",21]]},_unlock:{badges:{"Boulder Badge":!0}}},route24:{name:"Route 24",pokes:["Caterpie","Metapod","Weedle","Kakuna","Oddish","Abra","Bellsprout"],minLevel:7,maxLevel:14,respawn:"ceruleanCity",_unlock:{badges:{"Boulder Badge":!0}}},route25:{name:"Route 25",pokes:["Caterpie","Metapod","Weedle","Kakuna","Pidgey","Oddish","Abra","Bellsprout"],minLevel:7,maxLevel:14,respawn:"ceruleanCity",_unlock:{badges:{"Boulder Badge":!0}}},route5:{name:"Route 5",pokes:["Pidgey","Oddish","Meowth","Mankey","Bellsprout"],minLevel:10,maxLevel:16,respawn:"ceruleanCity",_unlock:{badges:{"Cascade Badge":!0}}},route6:{name:"Route 6",pokes:["Pidgey","Pidgeotto","Oddish","Meowth","Mankey","Abra","Bellsprout"],minLevel:10,maxLevel:16,respawn:"ceruleanCity",_unlock:{badges:{"Cascade Badge":!0}}},vermilionCity:{name:"Vermilion City",town:!0,trainer:{name:"Lt. Surge",badge:"Thunder Badge",poke:[["Voltorb",21],["Pikachu",18],["Raichu",24]]},_unlock:{badges:{"Cascade Badge":!0}}},diglettCave:{name:"Diglett Cave",pokes:["Diglett","Dugtrio"],minLevel:15,maxLevel:31,respawn:"vermilionCity",_unlock:{badges:{"Thunder Badge":!0}}},route11:{name:"Route 11",pokes:["Spearow","Ekans","Sandshrew","Drowzee"],minLevel:18,maxLevel:25,respawn:"vermilionCity",_unlock:{badges:{"Thunder Badge":!0}}},route9:{name:"Route 9",pokes:["Spearow","Ekans","Sandshrew","Drowzee"],minLevel:9,maxLevel:17,respawn:"ceruleanCity",_unlock:{badges:{"Thunder Badge":!0}}},rockTunnel:{name:"Rock Tunnel",pokes:["Zubat","Machop","Geodude","Onix"],minLevel:11,maxLevel:17,respawn:"ceruleanCity",_unlock:{badges:{"Thunder Badge":!0}}},route10:{name:"Route 10",pokes:["Spearow","Ekans","Sandshrew","Voltorb"],minLevel:11,maxLevel:17,respawn:"ceruleanCity",_unlock:{badges:{"Thunder Badge":!0}}},lavenderTown:{name:"Lavender Town",town:!0,_unlock:{badges:{"Thunder Badge":!0}}},pokemonTower:{name:"Pokemon Tower",pokes:["Gastly","Haunter","Cubone"],minLevel:13,maxLevel:18,respawn:"lavenderTown",_unlock:{badges:{"Thunder Badge":!0}}},route8:{name:"Route 8",pokes:["Pidgey","Pidgeotto","Vulpix","Oddish","Meowth","Mankey","Growlithe","Abra","Kadabra","Bellsprout"],minLevel:15,maxLevel:20,respawn:"lavenderTown",_unlock:{badges:{"Thunder Badge":!0}}},route7:{name:"Route 7",pokes:["Pidgey","Vulpix","Oddish","Meowth","Mankey","Growlithe","Bellsprout"],minLevel:18,maxLevel:22,respawn:"lavenderTown",_unlock:{badges:{"Thunder Badge":!0}}},celadonCity:{name:"Celadon City",town:!0,trainer:{name:"Erika",badge:"Rainbow Badge",poke:[["Victreebel",29],["Tangela",24],["Vileplume",29]]},_unlock:{badges:{"Thunder Badge":!0}}},saffronCity:{name:"Saffron City",town:!0,trainer:{name:"Sabrina",badge:"Marsh Badge",poke:[["Kadabra",38],["Mr. Mime",37],["Venomoth",38],["Alakazam",43]]},_unlock:{badges:{"Rainbow Badge":!0}}},route16:{name:"Route 16",pokes:["Rattata","Raticate","Spearow","Doduo","Snorlax"],minLevel:18,maxLevel:30,respawn:"celadonCity",_unlock:{badges:{"Rainbow Badge":!0}}},route17:{name:"Route 17",pokes:["Raticate","Spearow","Fearow","Doduo"],minLevel:20,maxLevel:29,respawn:"celadonCity",_unlock:{badges:{"Rainbow Badge":!0}}},route18:{name:"Route 18",pokes:["Rattata","Raticate","Spearow","Fearow","Doduo"],minLevel:20,maxLevel:29,respawn:"celadonCity",_unlock:{badges:{"Rainbow Badge":!0}}},fuchsiaCity:{name:"Fuchsia City",town:!0,trainer:{name:"Koga",badge:"Soul Badge",poke:[["Koffing",37],["Muk",39],["Koffing",37],["Weezing",43]]},_unlock:{badges:{"Rainbow Badge":!0}}},safariZone:{name:"Safari Zone",pokes:["Nidoran F","Nidorina","Nidoran M","Nidorino","Parasect","Venonat","Exeggcute","Rhyhorn","Kangaskhan","Scyther","Pinsir","Tauros"],minLevel:22,maxLevel:31,respawn:"fuchsiaCity",_unlock:{badges:{"Soul Badge":!0}}},route15:{name:"Route 15",pokes:["Pidgey","Pidgeotto","Oddish","Gloom","Venonat","Bellsprout","Weepinbell","Ditto"],minLevel:22,maxLevel:30,respawn:"fuchsiaCity",_unlock:{badges:{"Soul Badge":!0}}},route14:{name:"Route 14",pokes:["Pidgey","Pidgeotto","Oddish","Gloom","Venonat","Bellsprout","Weepinbell","Ditto"],minLevel:23,maxLevel:30,respawn:"fuchsiaCity",_unlock:{badges:{"Soul Badge":!0}}},route13:{name:"Route 13",pokes:["Pidgey","Oddish","Gloom","Venonat","Bellsprout","Weepinbell","Ditto"],minLevel:22,maxLevel:30,respawn:"fuchsiaCity",_unlock:{badges:{"Soul Badge":!0}}},route12:{name:"Route 12",pokes:["Pidgey","Oddish","Gloom","Venonat","Bellsprout","Weepinbell","Snorlax"],minLevel:22,maxLevel:30,respawn:"lavenderTown",_unlock:{badges:{"Soul Badge":!0}}},powerPlant:{name:"Power Plant",pokes:["Pikachu","Raichu","Magnemite","Magneton","Voltorb","Electrode","Electabuzz"],minLevel:25,maxLevel:35,respawn:"lavenderTown",_unlock:{badges:{"Soul Badge":!0}}},route19:{name:"Route 19",pokes:["Raticate","Pidgeotto","Oddish","Ditto"],minLevel:26,maxLevel:30,respawn:"fuchsiaCity",_unlock:{badges:{"Soul Badge":!0}}},seafoamIsland:{name:"Seafoam Island",pokes:["Psyduck","Slowpoke","Seel","Shellder","Krabby","Horsea","Staryu"],minLevel:30,maxLevel:40,_unlock:{badges:{"Soul Badge":!0}}},route20:{name:"Route 20",pokes:["Raticate","Pidgeotto","Weepinbell","Kadabra"],minLevel:27,maxLevel:31,respawn:"fuchsiaCity",_unlock:{badges:{"Soul Badge":!0}}},cinnabarIsland:{name:"Cinnabar Island",town:!0,trainer:{name:"Blaine",badge:"Volcano Badge",poke:[["Growlithe",42],["Ponyta",40],["Rapidash",42],["Arcanine",47]]},_unlock:{badges:{"Soul Badge":!0}}},pokemonMansion:{name:"Pokemon Mansion",pokes:["Vulpix","Growlithe","Ponyta","Grimer","Muk","Koffing","Weezing","Magmar"],minLevel:32,maxLevel:40,respawn:"cinnabarIsland",_unlock:{badges:{"Volcano Badge":!0}}},route21:{name:"Route 21",pokes:["Pidgey","Pidgeotto","Rattata","Raticate","Tangela"],minLevel:21,maxLevel:32,respawn:"cinnabarIsland",_unlock:{badges:{"Volcano Badge":!0}}},route23:{name:"Route 23",pokes:["Spearow","Fearow","Ekans","Arbok","Sandshrew","Sandslash","Ditto"],minLevel:33,maxLevel:43,respawn:"viridianCity",_unlock:{badges:{"Earth Badge":!0}}},victoryRoad:{name:"Victory Road",pokes:["Zubat","Golbat","Venomoth","Machop","Machoke","Geodude","Graveler","Marowak"],minLevel:36,maxLevel:45,respawn:"viridianCity",_unlock:{badges:{"Earth Badge":!0}}},ceruleanCave:{name:"Cerulean Cave",pokes:["Wigglytuff","Venomoth","Kadabra","Dodrio","Electrode","Marowak","Rhydon","Chansey","Ditto"],minLevel:51,maxLevel:60,respawn:"ceruleanCity",_unlock:{badges:{"Earth Badge":!0}}},water:{name:"Fishing",pokes:{1:["Magikarp"],2:["Psyduck","Poliwag","Goldeen","Tentacool"],3:["Shellder","Krabby","Horsea","Staryu","Dratini"]},minLevel:5,maxLevel:40,fishing:1}},Johto:{_unlock:{dex:{caughtCount:140}},_global:{pokes:[],rarePokes:["Chikorita","Cyndaquil","Totodile","Shuckle"],superRare:["Raikou","Entei","Suicune","Ho-Oh","Celebi","Lugia"]},NewBarkTown:{name:"New Bark Town",town:!0,trainer:{name:"Prof. Elm",badge:null,poke:[["Chikorita",15],["Cyndaquil",15],["Totodile",15]]}},route29:{name:"Route 29",pokes:["Sentret","Hoothoot","Hoppip","Pidgey","Rattata"],minLevel:2,maxLevel:5,respawn:"starter2"},cherrygroveCity:{name:"Cherrygrove City",town:!0},route30:{name:"Route 30",pokes:["Ledyba","Hoppip","Spinarak","Hoothoot","Caterpie","Weedle","Kakuna","Pidgey","Zubat","Poliwag","Rattata","Metapod"],minLevel:2,maxLevel:5,respawn:"cherrygroveCity"},route46:{name:"Route 46",pokes:["Rattata","Spearow","Jigglypuff","Geodude","Phanpy"],minLevel:2,maxLevel:5,respawn:"NewBarkTown"},route31:{name:"Route 31",pokes:["Hoothoot","Rattata","Ledyba","Spinarak","Caterpie","Metapod","Weedle","Kakuna","Pidgey","Zubat","Poliwag","Hoppip","Gastly","Bellsprout"],minLevel:3,maxLevel:6,respawn:"cherrygroveCity"},darkCave:{name:"Dark Cave",pokes:["Teddiursa","Dunsparce","Ursaring","Wobbuffet","Shuckle","Krabby","Geodude","Zubat","Goldeen","Magikarp"],minLevel:2,maxLevel:30,respawn:"cherrygroveCity"},violetCity:{name:"Violet City",town:!0,trainer:{name:"Falkner",badge:"Zephyr Badge",poke:[["Pidgey",7],["Pidgeotto",9]]}},sproutTower:{name:"Sprout Tower",pokes:["Rattata","Gastly"],minLevel:3,maxLevel:6,respawn:"violetCity",_unlock:{badges:{"Zephyr Badge":!0}}},route32:{name:"Route 32",pokes:["Mareep","Hoppip","Wooper","Hoothoot","Gastly","Ekans","Zubat","Rattata","Bellsprout","Pidgey"],minLevel:4,maxLevel:8,respawn:"violetCity",_unlock:{badges:{"Zephyr Badge":!0}}},ruinsofAlph:{name:"Ruins of Alph",pokes:["Natu","Smeargle","Wooper"],minLevel:18,maxLevel:24,respawn:"violetCity",_unlock:{badges:{"Zephyr Badge":!0}}},innerRuins:{name:"Inner Ruins",pokes:["Unown"],minLevel:5,maxLevel:5,respawn:"violetCity",_unlock:{badges:{"Zephyr Badge":!0}}},unionCave:{name:"Union Cave",pokes:["Zubat","Geodude","Onix","Rattata","Golbat","Raticate","Lapras","Sandshrew","Wooper","Quagsire"],minLevel:6,maxLevel:24,respawn:"violetCity",_unlock:{badges:{"Zephyr Badge":!0}}},route33:{name:"Route 33",pokes:["Rattata","Spearow","Ekans","Geodude","Zubat","Hoppip"],minLevel:6,maxLevel:8,respawn:"violetCity",_unlock:{badges:{"Zephyr Badge":!0}}},slowpokeWell:{name:"Slowpoke Well",pokes:["Zubat","Slowpoke","Slowbro","Golbat","Slowking"],minLevel:5,maxLevel:25,respawn:"violetCity",_unlock:{badges:{"Zephyr Badge":!0}}},azaleaTown:{name:"Azalea Town",town:!0,trainer:{name:"Bugsy",badge:"Hive Badge",poke:[["Metapod",14],["Kakuna",14],["Scyther",16]]},_unlock:{badges:{"Zephyr Badge":!0}}},ilexForest:{name:"Ilex Forest",pokes:["Caterpie","Weedle","Metapod","Kakuna","Paras","Pidgey","Venonat","Zubat","Oddish","Psyduck"],minLevel:5,maxLevel:7,respawn:"violetCity",_unlock:{badges:{"Hive Badge":!0}}},route34:{name:"Route 34",pokes:["Snubbull","Ditto","Hoothoot","Abra","Jigglypuff","Drowzee","Rattata","Pidgey"],minLevel:10,maxLevel:12,respawn:"azaleaTown",_unlock:{badges:{"Hive Badge":!0}}},daycareHouse:{name:"Daycare House",pokes:["Pichu","Cleffa","Igglybuff","Tyrogue","Smoochum","Elekid","Magby","Togepi"],minLevel:5,maxLevel:5},goldenrodCity:{name:"Goldenrod City",town:!0,trainer:{name:"Whitney",badge:"Plain Badge",poke:[["Clefairy",18],["Miltank",20]]},_unlock:{badges:{"Hive Badge":!0}}},route35:{name:"Route 35",pokes:["Yanma","Noctowl","Pidgey","Nidoran M","Nidoran F","Jigglypuff","Psyduck","Growlithe","Abra","Drowzee","Hoothoot","Ditto","Snubull"],minLevel:10,maxLevel:14,respawn:"goldenrodCity",_unlock:{badges:{"Plain Badge":!0}}},nationalPark:{name:"National Park",pokes:["Sunkern","Ledyba","Spinarak","Hoothoot","Caterpie","Metapod","Weedle","Kakuna","Pidgey","Nidoran M","Nidoran F","Venonat","Psyduck"],minLevel:10,maxLevel:15,respawn:"goldenrodCity",_unlock:{badges:{"Plain Badge":!0}}},route36:{name:"Route 36",pokes:["Stantler","Sudowoodo","Ledyba","Spinarak","Hoothoot","Pidgey","Nidoran M","Nidoran F","Vulpix","Growlithe","Bellsprout","Gastly"],minLevel:13,maxLevel:20,respawn:"goldenrodCity",_unlock:{badges:{"Plain Badge":!0}}},route37:{name:"Route 37",pokes:["Stantler","Spinarak","Ledyba","Hoothoot","Ledian","Ariados","Pidgey","Pidgeotto","Vulpix","Growlithe"],minLevel:13,maxLevel:16,respawn:"goldenrodCity",_unlock:{badges:{"Plain Badge":!0}}},burnedTower:{name:"Burned Tower",pokes:["Rattata","Raticate","Zubat","Koffing","Weezing","Magmar"],minLevel:13,maxLevel:16,respawn:"goldenrodCity",_unlock:{badges:{"Plain Badge":!0}}},tinTower:{name:"Tin Tower",pokes:["Rattata","Gastly"],minLevel:20,maxLevel:24,respawn:"goldenrodCity",_unlock:{badges:{"Plain Badge":!0}}},ecruteakCity:{name:"Ecruteak City",town:!0,trainer:{name:"Morty",badge:"Fog Badge",poke:[["Gastly",21],["Haunter",21],["Haunter",23],["Gengar",25]]},_unlock:{badges:{"Plain Badge":!0}}},route38:{name:"Route 38",pokes:["Snubbull","Miltank","Noctowl","Pidgeotto","Rattata","Meowth","Raticate","Magnemite","Farfetchd","Tauros"],minLevel:13,maxLevel:16,respawn:"ecruteakCity",_unlock:{badges:{"Fog Badge":!0}}},route39:{name:"Route 39",pokes:["Miltank","Noctowl","Pidgeotto","Rattata","Raticate","Meowth","Magnemite","Farfetchd","Tauros"],minLevel:15,maxLevel:16,respawn:"ecruteakCity",_unlock:{badges:{"Fog Badge":!0}}},olivineCity:{name:"Olivine City",town:!0,trainer:{name:"Jasmine",badge:"Mineral Badge",poke:[["Magnemite",30],["Magnemite",30],["Steelix",35]]},_unlock:{badges:{"Fog Badge":!0}}},route40:{name:"Route 40",pokes:["Tentacool","Tentacruel"],minLevel:15,maxLevel:24,respawn:"olivineCity",_unlock:{badges:{"Mineral Badge":!0}}},cianwoodCity:{name:"Cianwood City",town:!0,trainer:{name:"Chuck",badge:"Storm Badge",poke:[["Primeape",27],["Poliwrath",30]]},_unlock:{badges:{"Mineral Badge":!0}}},route41:{name:"Route 41",pokes:["Mantine","Tentacool","Tentacruel"],minLevel:20,maxLevel:24,respawn:"cianwoodCity",_unlock:{badges:{"Storm Badge":!0}}},whirlIsland:{name:"Whirl Island",pokes:["Krabby","Zubat","Seel","Golbat"],minLevel:22,maxLevel:26,respawn:"cianwoodCity",_unlock:{badges:{"Storm Badge":!0}}},route42:{name:"Route 42",pokes:["Mareep","Flaaffy","Marill","Rattata","Raticate","Spearow","Fearow","Ekans","Arbok","Zubat","Golbat","Mankey"],minLevel:13,maxLevel:17,respawn:"ecruteakCity",_unlock:{badges:{"Storm Badge":!0}}},mtMortar:{name:"Mt. Mortar",pokes:["Zubat","Golbat","Machop","Machoke","Geodude","Graveler","Raticate","Marill"],minLevel:15,maxLevel:32,respawn:"ecruteakCity",_unlock:{badges:{"Storm Badge":!0}}},rocketHideout:{name:"Rocket Hideout",pokes:["Electrode","Voltorb","Geodude","Koffing"],minLevel:23,maxLevel:23,respawn:"ecruteakCity",_unlock:{badges:{"Storm Badge":!0}}},mahoganyTown:{name:"Mahogany Town",town:!0,trainer:{name:"Pryce",badge:"Glacier Badge",poke:[["Seel",27],["Dewgong",29],["Piloswine",31]]},_unlock:{badges:{"Storm Badge":!0}}},route43:{name:"Route 43",pokes:["Girafarig","Flaaffy","Mareep","Noctowl","Sentret","Furret","Pidgeotto","Raticate","Venonat","Venomoth"],minLevel:15,maxLevel:17,respawn:"mahoganyTown",_unlock:{badges:{"Glacier Badge":!0}}},lakeofRage:{name:"Lake of Rage",pokes:["Gyarados","Magikarp"],minLevel:30,maxLevel:30,respawn:"mahoganyTown",_unlock:{badges:{"Glacier Badge":!0}}},route44:{name:"Route 44",pokes:["Lickitung","Tangela","Bellsprout","Weepinbell","Poliwag","Poliwhirl"],minLevel:22,maxLevel:26,respawn:"mahoganyTown",_unlock:{badges:{"Glacier Badge":!0}}},icePath:{name:"Ice Path",pokes:["Swinub","Delibird","Sneasel","Zubat","Golbat","Jynx"],minLevel:21,maxLevel:24,respawn:"mahoganyTown",_unlock:{badges:{"Glacier Badge":!0}}},dragonsDen:{name:"Dragons Den",pokes:["Dratini"],minLevel:10,maxLevel:14,respawn:"mahoganyTown",_unlock:{badges:{"Glacier Badge":!0}}},route45:{name:"Route 45",pokes:["Teddiursa","Gligar","Phanpy","Skarmory","Donphan"],minLevel:20,maxLevel:27,respawn:"mahoganyTown",_unlock:{badges:{"Glacier Badge":!0}}},blackthornCity:{name:"Blackthorn City",town:!0,trainer:{name:"Clair",badge:"Rising Badge",poke:[["Dragonair",37],["Dragonair",37],["Dragonair",37],["Kingdra",40]]},_unlock:{badges:{"Glacier Badge":!0}}},route47:{name:"Route 47",pokes:["Raticate","Spearow","Fearow","Gloom","Ditto","Farfetchd","Noctowl","Miltank"],minLevel:40,maxLevel:43,respawn:"cianwoodCity",_unlock:{badges:{"Rising Badge":!0}}},route48:{name:"Route 48",pokes:["Fearow","Vulpix","Gloom","Diglett","Growlithe","Farfetchd","Tauros","Hoppip","Girafarig"],minLevel:40,maxLevel:43,respawn:"cianwoodCity",_unlock:{badges:{"Rising Badge":!0}}},route26:{name:"Route 26",pokes:["Raticate","Arbok","Sandslash","Ponyta","Doduo","Dodrio","Noctowl","Quagsire"],minLevel:28,maxLevel:32,respawn:"NewBarkTown",_unlock:{badges:{"Rising Badge":!0}}},route27:{name:"Route 27",pokes:["Raticate","Arbok","Sandslash","Ponyta","Doduo","Dodrio","Noctowl","Quagsire"],minLevel:28,maxLevel:32,respawn:"NewBarkTown",_unlock:{badges:{"Rising Badge":!0}}},route28:{name:"Route 28",pokes:["Ponyta","Tangela","Ursaring","Donphan","Rapidash","Arbok","Doduo","Sneasel","Poliwhirl","Golbat"],minLevel:39,maxLevel:42,respawn:"NewBarkTown",_unlock:{badges:{"Rising Badge":!0}}},mtSilver:{name:"Mt.Silver",pokes:["Ursaring","Donphan","Misdreavus","Larvitar","Pupitar","Arbok","Golbat","Poliwhirl","Dodrio","Rapidash","Sneasel","Onix"],minLevel:38,maxLevel:48,respawn:"blackthornCity",_unlock:{badges:{"Rising Badge":!0}}},headbutt:{name:"Headbutt",pokes:["Aipom","Pineco","Heracross","Spinarak","Ledyba","Hoothoot","Noctowl"],minLevel:10,maxLevel:10,respawn:"blackthornCity",_unlock:{badges:{"Rising Badge":!0}}},water3:{name:"Fishing",pokes:{1:["Remoraid"],2:["Marill","Chinchou","Wooper"],3:["Corsola","Qwilfish","Lanturn","Octillery"]},minLevel:10,maxLevel:40,fishing:1}}},L=(e,t,n,a=!0)=>{e.renderPokeOnContainer("enemy",t.activePoke()),e.renderPokeOnContainer("player",n.activePoke(),n.settings.spriteChoice||"back")},F={Fire:{Fire:.5,Water:.5,Grass:2,Electric:1,Ice:2,Psychic:1,Normal:1,Fighting:1,Flying:1,Ground:1,Rock:.5,Bug:2,Poison:1,Ghost:1,Dragon:.5,Dark:1,Steel:2,Fairy:1},Water:{Fire:2,Water:.5,Grass:.5,Electric:1,Ice:1,Psychic:1,Normal:1,Fighting:1,Flying:1,Ground:2,Rock:2,Bug:1,Poison:1,Ghost:1,Dragon:.5,Dark:1,Steel:1,Fairy:1},Grass:{Fire:.5,Water:2,Grass:.5,Electric:1,Ice:1,Psychic:1,Normal:1,Fighting:1,Flying:.5,Ground:2,Rock:2,Bug:.5,Poison:.5,Ghost:1,Dragon:.5,Dark:1,Steel:.5,Fairy:1},Electric:{Fire:1,Water:2,Grass:.5,Electric:.5,Ice:1,Psychic:1,Normal:1,Fighting:1,Flying:2,Ground:.25,Rock:1,Bug:1,Poison:1,Ghost:1,Dragon:.5,Dark:1,Steel:1,Fairy:1},Ice:{Fire:.5,Water:.5,Grass:2,Electric:1,Ice:.5,Psychic:1,Normal:1,Fighting:1,Flying:2,Ground:2,Rock:1,Bug:1,Poison:1,Ghost:1,Dragon:2,Dark:1,Steel:.5,Fairy:1},Psychic:{Fire:1,Water:1,Grass:1,Electric:1,Ice:1,Psychic:.5,Normal:1,Fighting:2,Flying:1,Ground:1,Rock:1,Bug:1,Poison:2,Ghost:1,Dragon:1,Dark:.25,Steel:.5,Fairy:1},Normal:{Fire:1,Water:1,Grass:1,Electric:1,Ice:1,Psychic:1,Normal:1,Fighting:1,Flying:1,Ground:1,Rock:.5,Bug:1,Poison:1,Ghost:.25,Dragon:1,Dark:1,Steel:.5,Fairy:1},Fighting:{Fire:1,Water:1,Grass:1,Electric:1,Ice:2,Psychic:.5,Normal:2,Fighting:1,Flying:.5,Ground:1,Rock:2,Bug:.5,Poison:.5,Ghost:.25,Dragon:1,Dark:2,Steel:2,Fairy:.5},Flying:{Fire:1,Water:1,Grass:2,Electric:.5,Ice:1,Psychic:1,Normal:1,Fighting:2,Flying:1,Ground:1,Rock:.5,Bug:2,Poison:1,Ghost:1,Dragon:1,Dark:1,Steel:.5,Fairy:1},Ground:{Fire:2,Water:1,Grass:.5,Electric:2,Ice:1,Psychic:1,Normal:1,Fighting:1,Flying:.25,Ground:1,Rock:2,Bug:.5,Poison:2,Ghost:1,Dragon:1,Dark:1,Steel:2,Fairy:1},Rock:{Fire:2,Water:1,Grass:1,Electric:1,Ice:2,Psychic:1,Normal:1,Fighting:.5,Flying:2,Ground:.5,Rock:1,Bug:2,Poison:1,Ghost:1,Dragon:1,Dark:1,Steel:.5,Fairy:1},Bug:{Fire:.5,Water:1,Grass:2,Electric:1,Ice:1,Psychic:2,Normal:1,Fighting:.5,Flying:.5,Ground:1,Rock:1,Bug:1,Poison:.5,Ghost:.5,Dragon:1,Dark:2,Steel:.5,Fairy:.5},Poison:{Fire:1,Water:1,Grass:2,Electric:1,Ice:1,Psychic:1,Normal:1,Fighting:1,Flying:1,Ground:.5,Rock:.5,Bug:1,Poison:.5,Ghost:.5,Dragon:1,Dark:1,Steel:.25,Fairy:2},Ghost:{Fire:1,Water:1,Grass:1,Electric:1,Ice:1,Psychic:2,Normal:.25,Fighting:1,Flying:1,Ground:1,Rock:1,Bug:1,Poison:1,Ghost:2,Dragon:1,Dark:.5,Steel:1,Fairy:1},Dragon:{Fire:1,Water:1,Grass:1,Electric:1,Ice:1,Psychic:1,Normal:1,Fighting:1,Flying:1,Ground:1,Rock:1,Bug:1,Poison:1,Ghost:1,Dragon:2,Dark:1,Steel:.5,Fairy:.25},Dark:{Fire:1,Water:1,Grass:1,Electric:1,Ice:1,Psychic:2,Normal:1,Fighting:.5,Flying:1,Ground:1,Rock:1,Bug:1,Poison:1,Ghost:2,Dragon:1,Dark:.5,Steel:1,Fairy:.5},Steel:{Fire:.5,Water:.5,Grass:1,Electric:.5,Ice:2,Psychic:1,Normal:1,Fighting:1,Flying:1,Ground:1,Rock:2,Bug:1,Poison:1,Ghost:1,Dragon:1,Dark:1,Steel:.5,Fairy:2},Fairy:{Fire:.5,Water:1,Grass:1,Electric:1,Ice:1,Psychic:1,Normal:1,Fighting:2,Flying:1,Ground:1,Rock:1,Bug:1,Poison:.5,Ghost:1,Dragon:2,Dark:2,Steel:.5,Fairy:1}},B={statistics:{caught:[{name:"First Catch",value:1},{name:"A Good Start",value:100},{name:"Thousand Club",value:1e3}],totalThrows:[{name:"Little league",value:100},{name:"Big league",value:1e4},{name:"Perfect aim",value:5e5},{name:"Check out these arm cannons",value:5e6}],totalPokeCoins:[{name:"Money Bags",value:1e6}],totalCatchCoins:[{name:"Catch Coin Bags",value:1e5}],totalBattleCoins:[{name:"Battle Coin Bags",value:1e5}]},dex:{caughtCount:[{name:"Kanto Collector",value:140},{name:"Johto Collector",value:240}],caught:[{name:"Professor Oak",pokes:["Squirtle","Bulbasaur","Charmander"]},{name:"Professor Elm",pokes:["Chikorita","Totodile","Cyndaquil"]},{name:"Professor Birch",pokes:["Treecko","Mudkip","Torchic"]},{name:"Team Rocket",pokes:["Ekans","Koffing","Meowth"]},{name:"Mews",pokes:["Mew","Mewtwo"]}]}};n(548);const $=(e=>{let t,n;const a={pokemons:[],storage:[],pokedexData:[],pokedexHighestID:0,activePokeID:0,lastHeal:Date.now(),selectedBall:"pokeball",ballsAmount:{pokeball:20,greatball:0,ultraball:0,masterball:0},unlocked:{shinyDex:0,razzBerry:0,fishing:0,thunderStone:0,fireStone:0,waterStone:0,leafStone:0,moonStone:0,timeMachine:0},currencyAmount:{pokecoins:0,catchcoins:0,battlecoins:0},settings:{currentRegionId:"Kanto",currentRouteId:"route1",listView:"roster",autoSort:!0,dexView:"all",dexVersion:194,spriteChoice:"back",catching:!1},skills:{breeding:0,throwing:0,training:0},statistics:{seen:0,caught:0,released:0,sold:0,beaten:0,shinySeen:0,shinyCaught:0,shinyReleased:0,shinyBeaten:0,totalDamage:0,totalThrows:0,successfulThrows:0,pokeballThrows:0,pokeballSuccessfulThrows:0,greatballThrows:0,greatballSuccessfulThrows:0,ultraballThrows:0,ultraballSuccessfulThrows:0,masterballThrows:0,masterballSuccessfulThrows:0,totalPokeCoins:0,totalCatchCoins:0,totalBattleCoins:0,totalExp:0},badges:{},purgeData:!1,canHeal:function(){return Date.now()-this.lastHeal>3e4||Date.now()-this.lastHeal},checksum:function(e){let t=305419896;const n=e.length;for(let a=0;ag.findIndex((t=>t.pokemon[0].Pokemon==e.name)),addPokedex:function(e,n){const o=this.pokedexData.find((function(e){return this==e.name}),e);let s=!1;if("object"==typeof o?(o.flag=t))},getHighestPokeDex:function(){return this.pokedexHighestID=a.getPokedexData().sort(((e,t)=>this.findDexIndex(t)-this.findDexIndex(e)))[0],this.pokedexHighestID},countPokedex:function(e,t=!1){let n,a,o=0;for(n in this.pokedexData)a=this.pokedexData[n],(t&&e==a.flag||!t&&e<=a.flag)&&o++;return o},setActive:function(e){this.activePokeID=e},alivePokeIndexes:function(){return this.getPokemon().filter((e=>e.alive()))},activePoke:function(){return this.pokemons[this.activePokeID]},getPokemon:function(){return this.pokemons},getPokedexData:function(){return this.pokedexData},reorderPokes:function(e,t="roster"){"roster"===t?this.pokemons=e:this.storage=e},cmpFunctions:{lvl:(e,t)=>e.level()-t.level(),dex:(e,t)=>{const n=e=>g.findIndex((t=>t.pokemon[0].Pokemon==e.pokeName()));return n(e)-n(t)},vlv:(e,t)=>e.level()-t.level()||e.avgAttack()-t.avgAttack(),time:(e,t)=>e.caughtAt-t.caughtAt},inverseCmp:function(e){return(t,n)=>-e(t,n)},sortPokemon:function(){const e=document.getElementById("pokeSortDirSelect"),t=e.options[e.selectedIndex].value,n=document.getElementById("pokeSortOrderSelect"),o=n.options[n.selectedIndex].value;let s=this.cmpFunctions[o];"desc"===t&&(s=this.inverseCmp(s)),a.reorderPokes(a.storage.sort(s),"storage")},healAllPokemons:function(){return!0===this.canHeal()?(this.pokemons.forEach((e=>e.heal())),this.storage.forEach((e=>e.heal())),this.lastHeal=Date.now(),"healed"):this.canHeal()},hasPokemon:function(e,t){return void 0!==y(this.pokemons,this.storage).find((function(e){return this[0]==e.pokeName()&&this[1]==e.shiny()}),[e,t])},deletePoke:function(e,t="roster"){"roster"==t?e!==this.activePokeID&&(this.pokemons.splice(e,1),e0&&(this.ballsAmount[e]-=1,!0)},bestAvailableBall:function(){const e=["masterball","ultraball","greatball","pokeball"];for(let t=0;t0)return e[t];return null},addBalls:function(e,t){this.ballsAmount[e]+=t},addPokeCoins:function(e){this.currencyAmount.pokecoins+=e,this.statistics.totalPokeCoins+=e,t.renderPokeCoins()},addCatchCoins:function(e){this.currencyAmount.catchcoins+=e,this.statistics.totalCatchCoins+=e,t.renderCatchCoins()},addBattleCoins:function(e){this.currencyAmount.battlecoins+=e,this.statistics.totalBattleCoins+=e,t.renderBattleCoins()},meetsCriteria:function(e){for(const t in e)if("object"==typeof e[t])for(const n in e[t])if("dex"==t){if("caughtCount"==n&&this.countPokedex(p){localStorage.setItem(`poke${t}`,JSON.stringify(e.save()))})),localStorage.setItem("totalStorage",this.storage.length),this.storage.forEach(((e,t)=>{localStorage.setItem(`storage${t}`,JSON.stringify(e.save()))})),localStorage.setItem("ballsAmount",JSON.stringify(this.ballsAmount)),localStorage.setItem("pokedexData",JSON.stringify(this.pokedexData)),localStorage.setItem("statistics",JSON.stringify(this.statistics)),localStorage.setItem("settings",JSON.stringify(this.settings)),localStorage.setItem("badges",JSON.stringify(this.badges)),localStorage.setItem("unlocked",JSON.stringify(this.unlocked)),localStorage.setItem("currencyAmount",JSON.stringify(this.currencyAmount)))},saveToString:function(){const e=JSON.stringify({pokes:this.pokemons.map((e=>e.save())),storage:this.storage.map((e=>e.save())),pokedexData:this.pokedexData,statistics:this.statistics,settings:this.settings,ballsAmount:this.ballsAmount,badges:this.badges,unlocked:this.unlocked,currencyAmount:this.currencyAmount});return btoa(`${this.checksum(e)}|${e}`)},loadPokes:function(){this.pokemons=[];let e=0;if(this.storage=[],Array(Number(localStorage.getItem("totalPokes"))).fill(0).forEach(((t,a)=>{const o=JSON.parse(localStorage.getItem(`poke${a}`));if(o){const t=o[0],a=o[1],s=!0===o[2],i=o[3],r=o[4]||0;e<6?this.pokemons.push(new n(v(t),!1,Number(a),s,i,r)):this.storage.push(new n(v(t),!1,Number(a),s,i,r)),e++}})),Array(Number(localStorage.getItem("totalStorage"))).fill(0).forEach(((e,t)=>{const a=JSON.parse(localStorage.getItem(`storage${t}`));if(a){const e=a[0],t=a[1],o=!0===a[2],s=a[3],i=a[4]||0;this.storage.push(new n(v(e),!1,Number(t),o,s,i))}})),JSON.parse(localStorage.getItem("ballsAmount"))&&(this.ballsAmount=JSON.parse(localStorage.getItem("ballsAmount"))),JSON.parse(localStorage.getItem("pokedexData"))?this.pokedexData=JSON.parse(localStorage.getItem("pokedexData")):this.pokedexData=[],JSON.parse(localStorage.getItem("statistics"))){const e=JSON.parse(localStorage.getItem("statistics"));this.statistics={...this.statistics,...e}}if(JSON.parse(localStorage.getItem("settings"))&&(this.settings=JSON.parse(localStorage.getItem("settings"))),JSON.parse(localStorage.getItem("badges"))&&(this.badges=JSON.parse(localStorage.getItem("badges"))),JSON.parse(localStorage.getItem("unlocked"))){const e=JSON.parse(localStorage.getItem("unlocked"));this.unlocked={...this.unlocked,...e}}JSON.parse(localStorage.getItem("currencyAmount"))&&(this.currencyAmount=JSON.parse(localStorage.getItem("currencyAmount")))},loadFromString:function(e){let t=atob(e);if(t=t.split("|"),this.checksum(t[1])===t[0]){try{t=JSON.parse(t[1])}catch(e){return void alert("Failed to parse save data, loading canceled!")}this.pokemons=[];let e=0;this.storage=[],t.pokes.forEach((t=>{const a=t[0],o=t[1],s=!0===t[2],i=t[3],r=t[4]||0;e<6?this.pokemons.push(new n(v(a),!1,Number(o),s,i,r)):this.storage.push(new n(v(a),!1,Number(o),s,i,r)),e++})),t.storage.forEach((e=>{const t=e[0],a=e[1],o=!0===e[2],s=e[3],i=e[4]||0;this.storage.push(new n(v(t),!1,Number(a),o,s,i))})),this.ballsAmount=t.ballsAmount,this.currencyAmount=t.currencyAmount,this.pokedexData=t.pokedexData?t.pokedexData:[];const a=t.statistics?t.statistics:{};this.statistics={...this.statistics,...a},t.settings&&(this.settings=t.settings),this.badges=t.badges?t.badges:{};const o=t.unlocked?t.unlocked:[];this.unlocked={...this.unlocked,...o}}else alert("Invalid save data, loading canceled!")},attachDOM:e=>{t=e}},o=C(a);return n=o.Poke,a})(Date.now()),{Poke:D,makeRandomPoke:I}=C($),T=((e,t,n)=>{let a,o=null;const s=(e,t)=>new n(e,t,!1,Math.random()<1/8192);return{activePoke:()=>o,clear:()=>o=null,trainerPoke:e=>o=(e=>{a.trainerCurrentID=0;const t=v(e[0][0]);return s(t,e[0][1])})(e),generateNew:(e,n)=>o=((e,n)=>{const a=M[e],o=a[n];let i=[];if(o.fishing)for(let e=t.unlocked.fishing;e>0;e--)o.pokes[e]&&(i=y(i,o.pokes[e]));else i=o.pokes;a._global&&(a._global.pokes&&Math.random()<1/256&&(i=y(i,a._global.pokes)),a._global.rarePokes&&Math.random()<1/16384&&(i=y(i,a._global.rarePokes)),a._global.superRare&&Math.random()<1/65536&&(i=y(i,a._global.superRare)));const r=v(f(i)),p=o.minLevel+Math.round(Math.random()*(o.maxLevel-o.minLevel));return s(r,p)})(e,n),attachCL:e=>a=e}})(0,$,D),E=((e,t)=>{let n,a;const o={paused:!1,trainer:null,trainerPoke:{},trainerCurrentID:0,playerActivePoke:null,enemyActivePoke:null,playerTimerId:null,enemyTimerId:null,catchEnabled:!1,init:function(){o.paused||(o.playerActivePoke=e.activePoke(),o.enemyActivePoke=t.activePoke(),o.playerTimer(),o.enemyTimer())},pause:function(){o.paused=!0,o.stop(),t.clear(),o.enemyActivePoke=null},unpause:function(){o.paused=!1,o.stop(),o.newEnemy(),o.init()},stop:function(){window.clearTimeout(o.playerTimerId),window.clearTimeout(o.enemyTimerId)},refresh:function(){o.stop(),o.init()},playerTimer:function(){const e=o.playerActivePoke.attackSpeed();o.playerTimerId=window.setTimeout((()=>o.dealDamage(o.playerActivePoke,o.enemyActivePoke,"player")),e)},enemyTimer:function(){const e=o.enemyActivePoke.attackSpeed();o.enemyTimerId=window.setTimeout((()=>o.dealDamage(o.enemyActivePoke,o.playerActivePoke,"enemy")),e)},calculateDamageMultiplier:function(e,t){const n=(e,t)=>F[e][t[0]]*(t[1]&&F[e][t[1]]||1);return Math.max(n(e[0],t),e[1]&&n(e[1],t)||0)},dealDamage:function(a,s,i){if(!a||!s)return null;if(a.alive()&&s.alive()){const r="player"===i?"green":"rgb(207, 103, 59)";if(b(5))n.gameConsoleLog(`${a.pokeName()} missed!`,r);else{const p=b(5),l=p?1+a.level()/100:1,c=o.calculateDamageMultiplier(a.types(),s.types())*l,m=s.takeDamage(a.avgAttack()*c);p&&n.gameConsoleLog("Critical Hit!!",r),"player"===i?(n.gameConsoleLog(`${a.pokeName()} Attacked for ${m}`,"green"),e.statistics.totalDamage+=m):n.gameConsoleLog(`${a.pokeName()} Attacked for ${m}`,"rgb(207, 103, 59)"),n.renderPokeOnContainer("enemy",t.activePoke()),n.renderPokeOnContainer("player",e.activePoke(),e.settings.spriteChoice||"back")}"player"===i?(n.attackAnimation("playerImg","right"),o.playerTimer()):(n.attackAnimation("enemyImg","left"),o.enemyTimer())}a.alive()&&s.alive()||(window.clearTimeout(o.playerTimerId),window.clearTimeout(o.enemyTimerId),"enemy"===i&&!a.alive()||"player"===i&&!s.alive()?o.enemyFaint():o.playerFaint(),n.renderPokeOnContainer("enemy",t.activePoke()))},enemyFaint:function(){t.activePoke().shiny()?e.statistics.shinyBeaten++:e.statistics.beaten++,o.attemptCatch(),o.findPokeballs(t.activePoke().level());const a=Math.floor(4*o.enemyActivePoke.level())+5;e.addPokeCoins(a);const s=e.getPokemon().map((e=>e.level())),i=o.enemyActivePoke.baseExp()/16+3*o.enemyActivePoke.level();e.statistics.totalExp+=i,o.playerActivePoke.giveExp(i),n.gameConsoleLog(`${o.playerActivePoke.pokeName()} won ${Math.floor(i)}xp`,"rgb(153, 166, 11)"),e.getPokemon().forEach((e=>e.giveExp(o.enemyActivePoke.baseExp()/100+o.enemyActivePoke.level()/10)));const r=e.getPokemon().map((e=>e.level()));if(s.join("")!==r.join("")&&(n.gameConsoleLog("Your pokemon gained a level","rgb(153, 166, 11)"),"roster"==e.settings.listView&&n.renderPokeList(!1)),o.trainer){o.trainerPoke.splice(o.trainerCurrentID,1);const t=Math.floor(o.enemyActivePoke.level()*o.trainerPoke.length)+5;if(e.addBattleCoins(t),o.trainerPoke.length<1)return n.gameConsoleLog(`You have defeated ${o.trainer.name}`,"blue"),o.trainer.badge&&(e.badges[o.trainer.badge]||(e.badges[o.trainer.badge]=!0,n.gameConsoleLog(`You have earned the ${o.trainer.badge}.`,"purple"),n.renderRouteList())),o.trainer=null,o.pause(),!1}e.savePokes(),o.newEnemy(),o.enemyTimer(),o.playerTimer(),n.renderPokeOnContainer("player",e.activePoke(),e.settings.spriteChoice||"back")},newEnemy:function(){o.trainer?t.trainerPoke(o.trainerPoke):t.generateNew(e.settings.currentRegionId,e.settings.currentRouteId),o.enemyActivePoke=t.activePoke(),e.addPokedex(t.activePoke().pokeName(),t.activePoke().shiny()?r:i),t.activePoke().shiny()?e.statistics.shinySeen++:e.statistics.seen++},playerFaint:function(){n.gameConsoleLog(`${o.playerActivePoke.pokeName()} Fainted! `);const t=e.alivePokeIndexes();t.length>0?(e.setActive(e.getPokemon().indexOf(t[0])),o.playerActivePoke=e.activePoke(),n.gameConsoleLog(`Go ${o.playerActivePoke.pokeName()}!`),o.refresh()):(n.gameConsoleLog("You have no more usable pokemon. You blacked out!","red"),o.trainer&&(n.gameConsoleLog("You have been defeated","red"),o.trainer=null,o.pause()),x(P("#gameContainer")),n.gameConsoleLog("You reawaken at the nearest pokecenter.","blue"),M[e.settings.currentRegionId][e.settings.currentRouteId].respawn&&a.changeRoute(M[e.settings.currentRegionId][e.settings.currentRouteId].respawn,!0)),n.renderPokeList(!1)},attemptCatch:function(){if("all"==o.catchEnabled&&!o.trainer||"new"==o.catchEnabled&&!e.hasPokemon(t.activePoke().pokeName(),0)&&!o.trainer){const a=t.activePoke().shiny()?e.bestAvailableBall():e.selectedBall;if(e.consumeBall(a)){n.gameConsoleLog(`Trying to catch ${t.activePoke().pokeName()}...`,"purple"),e.statistics.totalThrows++,e.statistics[`${a}Throws`]++,n.renderBalls();const s=Math.floor(1*o.enemyActivePoke.level())+1,i=e.unlocked.razzBerry?1.25:1;b(t.activePoke().catchRate()*e.ballRNG(a)/3*i)?(e.statistics.successfulThrows++,e.statistics[`${a}SuccessfulThrows`]++,e.addCatchCoins(s),n.gameConsoleLog(`You caught ${t.activePoke().pokeName()}and gained${s}!!`,"purple"),e.hasPokemon(t.activePoke().pokeName(),0)||(e.addPoke(t.activePoke(),0),n.renderPokeList()),e.addPokedex(t.activePoke().pokeName(),t.activePoke().shiny()?h:m),t.activePoke().shiny()?(e.statistics.shinyCaught++,e.unlocked.shinyDex=1):e.statistics.caught++,L(n,t,e)):n.gameConsoleLog(`${t.activePoke().pokeName()} escaped!!`,"purple")}}},findPokeballs:function(t){const a=Math.floor(Math.random()*(t/2))+1,o={ultraball:10,greatball:20,pokeball:100},s=Math.floor(Math.random()*(2e3-4*t));for(const t in o)s{n=e},attachUI:e=>a=e};return o})($,T),R=((e,t)=>{let n;return{pokecoinShopItems:[{name:"Pokeball",pokecoins:100,ball:"pokeball"},{name:"Greatball",pokecoins:1e3,ball:"greatball"},{name:"Ultraball",pokecoins:1e4,ball:"ultraball"},{name:"Old Rod",pokecoins:1e4,fishing:1},{name:"Good Rod",pokecoins:1e5,fishing:2},{name:"Super Rod",pokecoins:1e6,fishing:3}],battlecoinShopItems:[{name:"Razz Berry",battlecoins:25e5,unlockable:"razzBerry"},{name:"Masterball",battlecoins:1e6,ball:"masterball"}],catchcoinShopItems:[{name:"Thunder Stone",catchcoins:1e5,unlockable:"thunderStone"},{name:"Fire Stone",catchcoins:1e5,unlockable:"fireStone"},{name:"Water Stone",catchcoins:1e5,unlockable:"waterStone"},{name:"Leaf Stone",catchcoins:1e5,unlockable:"leafStone"},{name:"Moon Stone",catchcoins:1e5,unlockable:"moonStone"}],renderPokeCoinShop:function(){let t="";for(let n=0;n=this.pokecoinShopItems[n].fishing&&(a=!1,o=!0);const s=` `;t+=`
  • ${this.pokecoinShopItems[n].name}: ${this.pokecoinShopItems[n].pokecoins}${s}
  • `}P("#pokecoinShopItems").innerHTML=t},renderBattleCoinShop:function(){let t="";for(let n=0;n${o?"Own":"Buy"}`;t+=`
  • ${this.battlecoinShopItems[n].name}: ${this.battlecoinShopItems[n].battlecoins}${s}
  • `}P("#battlecoinShopItems").innerHTML=t},renderCatchCoinShop:function(){let t="";for(let n=0;n${o?"Own":"Buy"}`;t+=`
  • : ${this.catchcoinShopItems[n].catchcoins}${s}
  • `}P("#catchcoinShopItems").innerHTML=t},buyPokeCoinItem:function(t){const a=this.pokecoinShopItems[t];return!(e.currencyAmount.pokecoinsBuy`,s+=`
  • ${t}: ¤100000${a}
  • `;P("#traderBuyList").innerHTML=s},renderTrader:function(){this.renderBuyTrader()},calculatePokeValue:function(e,t=1){const n=e.shiny()?1500:1;return Math.floor(e.level()/4*n*t)},buyPoke:function(a){const o=1e5;if(e.currencyAmount.pokecoinsn=e}})($,D),N=((e,t,n,a)=>{let o;const s={canClose:!0,displayStory:function(e,t,n){this.canClose=n,P("#storyContainer").style.display="block",P("#storyClose").style.display=n?"block":"none",P("#storyTitle").innerHTML=e,P("#storyContent").innerHTML=t},stories:{firstPoke:function(){let e="

    To help you get started please take one of my old pokemon

    ";e+=`

    `,e+=``,e+=``,e+=`

    `,s.displayStory("Welcome to the world of pokemon",e,!1)}},helpers:{getPokeImg:function(e){return g[e-1].images.normal.front},selectFirstPoke:function(s){const i=new a((e=>g[e-1])(s),5);e.addPoke(i),e.addPokedex(i.pokeName(),m),o.gameConsoleLog(`You received a ${e.activePoke().pokeName()}`,"purple"),e.setActive(0),n.unpause(),L(o,t,e),o.renderRoutesBox(),o.renderListBox(),P("#storyContainer").style.display="none"}},attachDOM:e=>o=e};return s})($,T,E,D),G=((e,t,n,a,o)=>{let s;return{changeRoute:function(a,o=!1){return o||0!=e.alivePokeIndexes().length?t.trainer?(s.gameConsoleLog("You cannot run away from a trainer battle.","red"),!1):e.routeUnlocked(e.settings.currentRegionId,a)?(e.settings.currentRouteId=a,M[e.settings.currentRegionId][e.settings.currentRouteId].town?t.pause():t.unpause(),L(s,n,e),e.savePokes(),s.renderRouteList(),!0):(s.gameConsoleLog("You cannot do that yet.","red"),!1):(s.gameConsoleLog("It is too dangerous to travel without a pokemon.","red"),!1)},changePokemon:function(a){e.setActive(a),t.changePlayerPoke(e.activePoke()),L(s,n,e)},deletePokemon:function(a,o,i="roster"){const r="roster"===i?e.getPokemon():e.storage;if(a.shiftKey)if("roster"!==i||r.length>1){const a=r[o];e.deletePoke(o,i),e.hasPokemon(a.pokeName(),a.shiny())||e.addPokedex(a.pokeName(),a.shiny()?l:p),"roster"===i?(t.changePlayerPoke(e.activePoke()),L(s,n,e)):s.renderStorage(),e.savePokes(),a.shiny()?e.settings.releasedShiny++:e.settings.releasedNormal++}else s.showPopup("You must have one active pokemon!");else alert("Hold shift while clicking the X to release a pokemon")},changeRegion:function(){const t=document.getElementById("regionSelect"),n=t.options[t.selectedIndex].value;return e.regionUnlocked(n)&&(e.settings.currentRegionId=n,"_"!==Object.keys(M[e.settings.currentRegionId])[0].charAt(0)?this.changeRoute(Object.keys(M[e.settings.currentRegionId])[0]):"_"!==Object.keys(M[e.settings.currentRegionId])[1].charAt(0)?this.changeRoute(Object.keys(M[e.settings.currentRegionId])[1]):this.changeRoute(Object.keys(M[e.settings.currentRegionId])[2])),!1},enablePokeListDelete:function(){e.settings.listView="roster",s.renderListBox()},enablePokeListAutoSort:function(){e.settings.autoSort=P("#autoSort").checked,s.renderPokeSort(),s.renderListBox()},changeDexView:function(){const t=document.getElementById("dexView");e.settings.dexView=t.options[t.selectedIndex].value,s.renderPokeDex()},changeCatchOption:function(e){t.changeCatch(e)},changeListView:function(t){e.settings.listView=t,s.renderListBox()},clearGameData:function(){s.checkConfirmed("#confirmClearData")&&(localStorage.clear(),e.purgeData=!0,window.location.reload(!0))},clearConsole:function(){s.gameConsoleClear()},changeSelectedBall:function(t){e.changeSelectedBall(t)},pokemonToFirst:function(n,a="roster"){var o,i;o=n,(i="roster"===a?e.getPokemon():e.storage).splice(0,0,i.splice(o,1)[0]),e.savePokes(),"roster"===a?(t.changePlayerPoke(e.activePoke()),s.renderPokeList()):s.renderStorage()},pokemonToDown:function(n,a="roster"){const o="roster"===a?e.getPokemon():e.storage;if(o[n+1]){const r=(i=n,e=>[...e.slice(0,parseInt(i)),e[parseInt(i)+1],e[parseInt(i)],...e.slice(parseInt(i)+2)])(o);e.reorderPokes(r,a),"roster"===a?(t.changePlayerPoke(e.activePoke()),s.renderPokeList()):s.renderStorage(),e.savePokes()}var i},pokemonToUp:function(n,a="roster"){const o="roster"===a?e.getPokemon():e.storage;if(o[n-1]){const r=(i=n,e=>[...e.slice(0,parseInt(i)-1),e[parseInt(i)],e[parseInt(i)-1],...e.slice(parseInt(i)+1)])(o);e.reorderPokes(r,a),"roster"===a?(t.changePlayerPoke(e.activePoke()),s.renderPokeList()):s.renderStorage(),e.savePokes()}var i},evolvePokemon:function(t){e.getPokemon()[t].tryEvolve(e.getPokemon()[t].shiny()),s.renderPokeList(),L(s,n,e)},prestigePokemon:function(t){e.getPokemon()[t].tryPrestige(e.getPokemon()[t].shiny()),s.renderPokeList(),L(s,n,e)},moveToStorage:function(t){if(e.pokemons.length>1){const n=e.getPokemon()[t];e.pokemons.splice(t,1),e.storage.push(n),s.renderPokeList()}else s.showPopup("You must have at least one active pokemon!")},moveToRoster:function(t){if(e.pokemons.length<6){const n=e.storage[t];e.storage.splice(t,1),e.pokemons.push(n),s.renderStorage(),s.renderPokeList()}else s.showPopup("You can only have six active pokemon!")},forceSave:function(){e.savePokes(),P("#forceSave").style.display="inline"},exportSaveDialog:function(){document.getElementById("saveDialogTitle").innerHTML="Export your save",document.queryCommandSupported("copy")&&(document.getElementById("copySaveText").style.display="initial"),document.getElementById("saveText").value=e.saveToString(),document.getElementById("loadButtonContainer").style.display="none",document.getElementById("saveDialogContainer").style.display="block",P("#settingsContainer").style.display="none"},importSaveDialog:function(){document.getElementById("saveDialogTitle").innerHTML="Import a save",document.getElementById("copySaveText").style.display="none",document.getElementById("saveText").value="",document.getElementById("loadButtonContainer").style.display="block",document.getElementById("saveDialogContainer").style.display="block",P("#settingsContainer").style.display="none"},importSave:function(){window.confirm("Loading a save will overwrite your current progress, are you sure you wish to continue?")&&(e.loadFromString(document.getElementById("saveText").value.trim()),document.getElementById("saveDialogContainer").style.display="none",L(s,n,e),s.renderListBox(),s.renderPokeSort(),s.renderBalls(),s.renderPokeCoins())},copySaveText:function(){document.getElementById("saveText").select(),document.execCommand("copy"),window.getSelection().removeAllRanges()},changePokeSortOrder:function(){e.sortPokemon(),e.savePokes(),s.renderStorage()},changeSpriteChoice:function(){document.getElementById("spriteChoiceFront").checked?(e.settings.spriteChoice="front",document.getElementById("player").className="container poke frontSprite"):(e.settings.spriteChoice="back",document.getElementById("player").className="container poke"),e.savePokes(),L(s,n,e)},viewStatistics:function(){const t={seen:"Pokemon Seen",caught:"Pokemon Caught",released:"Pokemon Released",sold:"Pokemon Sold",beaten:"Pokemon Beaten",shinySeen:"Shiny Pokemon Seen",shinyCaught:"Shiny Pokemon Caught",shinyReleased:"Shiny Pokemon Released",shinyBeaten:"Shiny Pokemon Beaten",totalDamage:"Total Damage Dealt",totalThrows:"Total Catch Attempts",successfulThrows:"Successfully Caught",pokeballThrows:"Pokeball Throws",pokeballSuccessfulThrows:"Caught with Pokeball",greatballThrows:"Greatball Throws",greatballSuccessfulThrows:"Caught with Greatball",ultraballThrows:"Ultraball Throws",ultraballSuccessfulThrows:"Caught with Ultraball",masterballThrows:"Masterball Throws",masterballSuccessfulThrows:"Caught with Masterball",totalPokeCoins:"Total Coin Obtained",totalExp:"Total Experience Earned"};let n="";for(const a in e.statistics)n+=`
  • ${t[a]}: ${e.statistics[a]}
  • `;document.getElementById("statisticsList").innerHTML=n,document.getElementById("statisticsContainer").style.display="block"},viewSettings:function(){document.getElementById("settingsContainer").style.display="block",P("#forceSave").style.display="none"},viewAchievements:function(){let t,n,a="";for(const o in B.statistics)for(let s=0,i=B.statistics[o].length;s=B.statistics[o][s].value,t=n?B.statistics[o][s].value:e.statistics[o],a+=`${B.statistics[o][s].name}: ${w(o)} ${t}/${B.statistics[o][s].value}`;for(let o=0,s=B.dex.caughtCount.length;o=B.dex.caughtCount[o].value,t=n?B.dex.caughtCount[o].value:s,a+=`${B.dex.caughtCount[o].name}: Unique Caught ${t}/${B.dex.caughtCount[o].value}`}for(let o=0,s=B.dex.caught.length;o0?", ":"",e.hasDexEntry(n,p)?(r+=`${n}`,s++):r+=n}n=s>=i,t=n?i:s,a+=`${B.dex.caught[o].name}: Catch ${r}`}document.getElementById("achievementsList").innerHTML=a,document.getElementById("achievementsContainer").style.display="block"},viewInventory:function(){if(t=e.badges,0!==Object.keys(t).length||t.constructor!==Object){let t="";for(const n in e.badges)t+=`
  • `;document.getElementById("badgeList").innerHTML=t}var t;document.getElementById("inventoryList").innerHTML="To do",document.getElementById("inventoryContainer").style.display="block"},viewTown:function(){a.renderPokeCoinShop(),a.renderBattleCoinShop(),a.renderCatchCoinShop(),a.renderTrader(),document.getElementById("townContainer").style.display="block"},trainerBattle:function(){const n=M[e.settings.currentRegionId][e.settings.currentRouteId];n.trainer&&n.trainer.poke.length>0&&(t.trainer={name:n.trainer.name,badge:n.trainer.badge},t.trainerPoke=Object.values({...n.trainer.poke}),t.unpause(),t.refresh())},closeStory:function(){o.canClose&&(P("#storyContainer").style.display="none")},attachDOM:e=>{s=e}}})($,E,T,R,N),A=((e,t,n)=>{const a={healElement:P("#heal"),logElement:P("#console #console-text"),setValue:function(e,t,n){void 0===n&&(n=!1),n&&(e.innerHTML+=t),n||e.innerHTML!==t&&(e.innerHTML=t)},getValue:function(e){return e.innerHTML},setProp:function(e,t,n){e[t]!==n&&(e[t]=n)},renderPokeOnContainer:function(t,n,a){const o=P(`#${t}Box`).querySelector(".pokeBox"),s=P("#townBox"),i=P("#trainerButton");if(!n){if(o.style.display="none","enemy"==t){s.style.display="block";const t=M[e.settings.currentRegionId][e.settings.currentRouteId];i.style.display=t.trainer?"":"none",i.innerHTML=t.trainer?t.trainer.name:""}return null}o.style.display="block","enemy"==t&&(s.style.display="none"),a=a||"front";const r={name:o.querySelector(".name"),img:o.querySelector(".img"),hp:o.querySelector(".hp"),hpBar:o.querySelector(".hpBar"),expBar:o.querySelector(".expBar"),status:o.querySelector(".status")};this.setValue(r.name,`${n.pokeName()} (${n.level()})`),this.setProp(r.img,"src",n.image()[a]),this.setValue(r.hp,n.lifeAsText()),this.setProp(r.hpBar,"value",n.getHp()),this.setProp(r.hpBar,"max",n.maxHp()),"player"===t&&(this.setProp(r.expBar,"value",Math.floor(n.currentExp()-n.thisLevelExp())),this.setProp(r.expBar,"max",n.nextLevelExp()-n.thisLevelExp())),this.setValue(r.status,(e=>{let t="";return t+=`Attack Speed: ${e.attackSpeed()/1e3}
    `,t+=`\nAttack: ${e.avgAttack()}
    `,t+=`\nDefense: ${e.avgDefense()}
    `,t})(n))},renderPokeDexSort:function(){let t='',n=!1;e.unlocked.shinyDex&&(t+=``,n=!0),n&&(P("#dexView").innerHTML=t,P("#dexView").style.display="block")},renderPokeDex:function(){const t=e.getPokedexData(),n=P("#dexList");let a="";function o(e){return this==e.name}let i=g.length;if("all"===e.settings.dexView){let t=e.pokedexHighestID;0==t&&(t=e.getHighestPokeDex()),i=e.findDexIndex(t)+5}for(let n=0;n=p||"missing"==e.settings.dexView&&i.flag!=m&&i.flag!=h||"shiny"==e.settings.dexView&&i.flag==h)&&("all"===e.settings.dexView&&i.flag==s?a+=`
  • ${n+1} ???
  • `:a+=`
  • ${n+1} ${g[n].pokemon[0].Pokemon}
  • `)}this.setValue(n,a,!1),this.renderPokeDexSort()},renderHeal:function(n,o){!0===n&&(this.setValue(this.healElement,"Heal!"),e.healAllPokemons(),t.refresh(),L(a,o,e,!1),a.renderPokeList(!1)),"number"==typeof n&&this.setValue(this.healElement,`Heal: ${Math.floor(n/3e4*100)}%`)},pokeStatus:function(t){return t.alive()?t===e.activePoke()?t.shiny()?"activeShiny":"activeNormal":t.shiny()?"inactiveShiny":"inactiveNormal":"dead"},renderPokeSort:function(){P("#autoSort").checked=e.settings.autoSort,e.settings.autoSort?(P("#pokeSortOrderSelect").style.display="inline",P("#pokeSortDirSelect").style.display="inline"):(P("#pokeSortOrderSelect").style.display="none",P("#pokeSortDirSelect").style.display="none")},renderPokeList:function(t=!0){const n=e.getPokemon(),a=P("#rosterList"),o=P("#enableDelete").checked;a.className="list"+(o?" manageTeamEnabled":"");let s="";n.forEach(((n,o)=>{const i=a.querySelector(`#listPoke${o}`);if(i){const a=i.querySelector(".pokeListName"),o=a.innerHTML!==`${n.pokeName()} (${n.level()+(n.prestigeLevel?`p${n.prestigeLevel}`:"")})`||a.getAttribute("status")!==this.pokeStatus(n);a.innerHTML=`${n.pokeName()} (${n.level()+(n.prestigeLevel?`p${n.prestigeLevel}`:"")})`,a.setAttribute("status",this.pokeStatus(n)),a.className=`pokeListName ${this.pokeStatus(n)}${n===e.activePoke()?" activePoke":""}${n.canEvolve()?" canEvolve":""}${n.canPrestige()?" canPrestige":""}`,i.querySelector("img").setAttribute("src",n.image().front),!t&&o&&x(i)}else{const e=``,t=``,a=``,i=``,r=``,p=``,l=`

    `;s+=`
  • ${l}${n.pokeName()} (${n.level()+(n.prestigeLevel?`p${n.prestigeLevel}`:"")})
    ${e}${t}${a}${i}${r}${p}
  • `}})),s.length>0&&this.setValue(a,s,!0);let i,r=n.length;for(;i=a.querySelector(`#listPoke${r}`);)a.removeChild(i),r++},renderStorage:function(){const t=e.storage,n=P("#storageList");let a="";t.forEach(((e,t)=>{const o=n.querySelector(`#storagePoke${t}`);if(o){const t=o.querySelector(".pokeListName");t.innerHTML=`${e.pokeName()} (${e.level()})`,t.setAttribute("status",this.pokeStatus(e)),t.className=`pokeListName ${this.pokeStatus(e)}`}else{const n=``,o=``,s=``,i=``;a+=`
  • ${e.pokeName()} (${e.level()})
    ${n}${o}${s}${i}
  • `}})),a.length>0&&this.setValue(n,a,!0);let o,s=t.length;for(;o=n.querySelector(`#storagePoke${s}`);)n.removeChild(o),s++;0==t.length&&this.setValue(n,"
  • Your storage is cold and empty
  • ")},renderRegionSelect:function(){let t="",n=0;for(const a in M)e.regionUnlocked(a)&&(t+=``,n++);n>1&&(P("#regionSelect").innerHTML=t,P("#regionSelect").style.display="block")},renderRouteList:function(){this.renderRegionSelect();const t=M[e.settings.currentRegionId],n=P("#routeList");P("#regionSelect").value=e.settings.currentRegionId,this.setValue(n,""),Object.keys(t).forEach((a=>{if("_unlock"!==a&&"_global"!==a){const s=t[a],i=e.routeUnlocked(e.settings.currentRegionId,a),r=i?`userInteractions.changeRoute('${a}')`:"";let p,l;i?(p=a===e.settings.currentRouteId?o.route.current:o.route.unlocked,l=a===e.settings.currentRouteId?"bold":"normal"):(p=o.route.locked,l="normal");const c=s.town?"":` (${s.minLevel}~${s.maxLevel})`,m=`
  • ${s.name}${c}
  • `;this.setValue(n,m,!0)}}))},renderListBox:function(){const t=P("#rosterBox"),n=P("#pokedexBox"),a=P("#storageBox");t.style.display="none",n.style.display="none",a.style.display="none","pokeDex"===e.settings.listView?(n.style.display="block",this.renderPokeDex()):"storage"===e.settings.listView?(a.style.display="block",this.renderStorage()):(t.style.display="block",this.renderPokeList())},renderRoutesBox:function(){this.renderRouteList()},checkConfirmed:function(e){return P(e).checked},attackAnimation:function(e,t){const n=P(`#${e}`);n.classList=`img attacked-${t}`,window.setTimeout((()=>n.classList="img"),80)},gameConsoleLog:function(e,t){P("#enableConsole").checked&&(this.logElement.innerHTML=t?`${e}
    ${this.logElement.innerHTML}`:`${e}
    ${this.logElement.innerHTML}`);const n=this.logElement.innerHTML.split("
    ");n.length>=100&&(n.splice(n.length-1,1),this.logElement.innerHTML=n.join("
    "))},gameConsoleClear:function(){this.logElement.innerHTML=""},renderBalls:function(){Object.keys(e.ballsAmount).forEach((t=>{P(`.ball-amount.${t}`).innerHTML=e.ballsAmount[t]}))},renderPokeCoins:function(){P("#pokeCoins").innerHTML=e.currencyAmount.pokecoins},renderCatchCoins:function(){P("#catchCoins").innerHTML=e.currencyAmount.catchcoins},renderBattleCoins:function(){P("#battleCoins").innerHTML=e.currencyAmount.battlecoins},renderCurrency:function(){this.renderBattleCoins(),this.renderCatchCoins(),this.renderPokeCoins()},refreshCatchOption:function(e){P("#enableCatchNew").checked=!1,P("#enableCatchAll").checked=!1,"new"===e?P("#enableCatchNew").checked=!0:"all"===e&&(P("#enableCatchAll").checked=!0),n.changeCatchOption(e)},showPopup:function(e){P("#modalPopup").style.display="flex",P("#modalPopup #popupText").innerText=e,setTimeout(this.hidePopup,2e3)},hidePopup:function(){P("#modalPopup").style.display="none",P("#modalPopup #popupText").innerText=""},bindEvents:function(){P("#enableDelete").addEventListener("click",(()=>{n.enablePokeListDelete()})),P("#autoSort").addEventListener("click",(()=>{n.enablePokeListAutoSort()})),P("#viewRoster").addEventListener("click",(()=>{n.changeListView("roster")})),P("#viewPokeDex").addEventListener("click",(()=>{n.changeListView("pokeDex")})),P("#viewStorage").addEventListener("click",(()=>{n.changeListView("storage")})),P("#dexView").addEventListener("change",(()=>{n.changeDexView()})),P("#enableCatchAll").addEventListener("click",(()=>{let t;P("#enableCatchAll").checked?(P("#enableCatchNew").checked=!1,t="all"):t=!1,e.settings.catching=t,n.changeCatchOption(t)})),P("#enableCatchNew").addEventListener("click",(()=>{let t;P("#enableCatchNew").checked?(P("#enableCatchAll").checked=!1,t="new"):t=!1,e.settings.catching=t,n.changeCatchOption(t)})),P("#saveDialogContainer").addEventListener("click",(e=>{e.target===P("#saveDialogContainer")&&(P("#saveDialogContainer").style.display="none")})),P("#inventoryContainer").addEventListener("click",(e=>{e.target===P("#inventoryContainer")&&(P("#inventoryContainer").style.display="none")})),P("#statisticsContainer").addEventListener("click",(e=>{e.target===P("#statisticsContainer")&&(P("#statisticsContainer").style.display="none")})),P("#settingsContainer").addEventListener("click",(e=>{e.target===P("#settingsContainer")&&(P("#settingsContainer").style.display="none")})),P("#achievementsContainer").addEventListener("click",(e=>{e.target===P("#achievementsContainer")&&(P("#achievementsContainer").style.display="none")})),P("#townContainer").addEventListener("click",(e=>{e.target===P("#townContainer")&&(P("#townContainer").style.display="none")})),window.addEventListener("beforeunload",(()=>{e.purgeData||e.savePokes(!0)}))}};return a})($,E,G);E.attachUI(G),T.attachCL(E),[$,G,E,N,R].forEach((e=>e.attachDOM(A))),Object.assign(window,{userInteractions:G,story:N}),null!==localStorage.getItem("totalPokes")?($.loadPokes(),A.refreshCatchOption($.settings.catching),G.changeRoute($.settings.currentRouteId)):(E.pause(),N.stories.firstPoke()),"front"===$.settings.spriteChoice?(document.getElementById("spriteChoiceFront").checked=!0,document.getElementById("player").className+=" frontSprite"):document.getElementById("spriteChoiceBack").checked=!0,A.bindEvents(),A.renderBalls(),A.renderCurrency(),L(A,T,$),A.renderRoutesBox(),A.renderListBox(),A.renderRegionSelect(),A.renderPokeSort(),E.init(),requestAnimationFrame((function e(){A.renderHeal($.canHeal(),T),requestAnimationFrame(e)}))}},a={};function o(e){if(a[e])return a[e].exports;var t=a[e]={id:e,exports:{}},s={id:e,module:t,factory:n[e],require:o};return o.i.forEach((function(e){e(s)})),t=s.module,s.factory.call(t.exports,t,t.exports,s.require),t.exports}o.m=n,o.c=a,o.i=[],o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.hu=e=>"_-7a95ad2-"+e+"-wps-hmr.js",o.hmrF=()=>"main-7a95ad2-wps-hmr.json",o.h=()=>"6643b2c5a650bd3b2fd6",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="no-name-pokemon-game:",o.l=(n,a,s,i)=>{if(e[n])e[n].push(a);else{var r,p;if(void 0!==s)for(var l=document.getElementsByTagName("script"),c=0;c{r.onerror=r.onload=null,clearTimeout(h);var o=e[n];if(delete e[n],r.parentNode&&r.parentNode.removeChild(r),o&&o.forEach((e=>e(a))),t)return t(a)},h=setTimeout(k.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=k.bind(null,r.onerror),r.onload=k.bind(null,r.onload),p&&document.head.appendChild(r)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e,t,n,a,s={},i=o.c,r=[],p=[],l="idle";function c(e){l=e;for(var t=0;t0)return c("abort"),Promise.resolve().then((function(){throw s[0]}));c("dispose"),t.forEach((function(e){e.dispose&&e.dispose()})),c("apply");var i=function(e){o||(o=e)},r=[];return t.forEach((function(e){if(e.apply){var t=e.apply(i);if(t)for(var n=0;n=0&&u._disposeHandlers.splice(t,1)},invalidate:function(){switch(this._selfInvalidated=!0,l){case"idle":n=[],Object.keys(o.hmrI).forEach((function(e){o.hmrI[e](g,n)})),c("ready");break;case"ready":Object.keys(o.hmrI).forEach((function(e){o.hmrI[e](g,n)}));break;case"prepare":case"check":case"dispose":case"apply":(a=a||[]).push(g)}},check:k,apply:h,status:function(e){if(!e)return l;p.push(e)},addStatusHandler:function(e){p.push(e)},removeStatusHandler:function(e){var t=p.indexOf(e);t>=0&&p.splice(t,1)},data:s[g]},e=void 0,u),f.parents=r,f.children=[],r=[],d.require=y})),o.hmrC={},o.hmrI={}})(),(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e,t,n,a,s={179:0},i={};function r(e){return new Promise(((t,n)=>{i[e]=t;var a=o.p+o.hu(e),s=new Error;o.l(a,(t=>{if(i[e]){i[e]=void 0;var a=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;s.message="Loading hot update chunk "+e+" failed.\n("+a+": "+o+")",s.name="ChunkLoadError",s.type=a,s.request=o,n(s)}}))}))}function p(i){function r(e){for(var t=[e],n={},a=t.map((function(e){return{chain:[e],id:e}}));a.length>0;){var s=a.pop(),i=s.id,r=s.chain,l=o.c[i];if(l&&(!l.hot._selfAccepted||l.hot._selfInvalidated)){if(l.hot._selfDeclined)return{type:"self-declined",chain:r,moduleId:i};if(l.hot._main)return{type:"unaccepted",chain:r,moduleId:i};for(var c=0;c ")),d.type){case"self-declined":i.onDeclined&&i.onDeclined(d),i.ignoreDeclined||(b=new Error("Aborted because of self decline: "+d.moduleId+y));break;case"declined":i.onDeclined&&i.onDeclined(d),i.ignoreDeclined||(b=new Error("Aborted because of declined dependency: "+d.moduleId+" in "+d.parentId+y));break;case"unaccepted":i.onUnaccepted&&i.onUnaccepted(d),i.ignoreUnaccepted||(b=new Error("Aborted because "+h+" is not accepted"+y));break;case"accepted":i.onAccepted&&i.onAccepted(d),u=!0;break;case"disposed":i.onDisposed&&i.onDisposed(d),f=!0;break;default:throw new Error("Unexception type "+d.type)}if(b)return{error:b};if(u)for(h in m[h]=g,p(c,d.outdatedModules),d.outdatedDependencies)o.o(d.outdatedDependencies,h)&&(l[h]||(l[h]=[]),p(l[h],d.outdatedDependencies[h]));f&&(p(c,[d.moduleId]),m[h]=k)}t=void 0;for(var w,x=[],v=0;v0;){var i=a.pop(),r=o.c[i];if(r){var p={},m=r.hot._disposeHandlers;for(v=0;v=0&&k.parents.splice(e,1)}}}for(var h in l)if(o.o(l,h)&&(r=o.c[h]))for(w=l[h],v=0;v=0&&r.children.splice(e,1)},apply:function(e){for(var t in m)o.o(m,t)&&(o.m[t]=m[t]);for(var n=0;n{for(var r in n)o.o(n,r)&&(t[r]=n[r]);s&&a.push(s),i[e]&&(i[e](),i[e]=void 0)},o.hmrI.jsonp=function(e,s){t||(t={},a=[],n=[],s.push(p)),o.o(t,e)||(t[e]=o.m[e])},o.hmrC.jsonp=function(i,l,c,m,k,h){k.push(p),e={},n=l,t=c.reduce((function(e,t){return e[t]=!1,e}),{}),a=[],i.forEach((function(t){o.o(s,t)&&void 0!==s[t]&&(m.push(r(t)),e[t]=!0)})),o.f&&(o.f.jsonpHmr=function(t,n){e&&!o.o(e,t)&&o.o(s,t)&&void 0!==s[t]&&(n.push(r(t)),e[t]=!0)})},o.hmrM=()=>{if("undefined"==typeof fetch)throw new Error("No browser support: need fetch API");return fetch(o.p+o.hmrF()).then((e=>{if(404!==e.status){if(!e.ok)throw new Error("Failed to fetch update manifest "+e.statusText);return e.json()}}))}})(),o(698),o(586)})(); \ No newline at end of file +(()=>{var e,t,n={424:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});var a=n(645),o=n.n(a),s=n(890),i=o()((function(e){return e[1]}));i.i(s.Z),i.push([e.id,"\n",""]);const r=i},890:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(645),o=n.n(a)()((function(e){return e[1]}));o.push([e.id,'body {\n background-color: rgb(0, 0, 0);\n }\n\n#gameContainer {\n font-family: \'Lato\', sans-serif;\n color: rgb(0, 0, 0);\n display: grid;\n width: auto;\n height: auto;\n grid-template-columns: max-content 330px auto auto;\n grid-template-rows: auto auto auto;\n}\n\n#gameContainer div {\n border: 1px solid black;\n}\n\n#gameContainer > div > div {\n border: none !important;\n}\n\nul {\n list-style: none;\n padding-left: 0;\n}\n\n#listBox {\n grid-column: 1;\n grid-row: 1 / 3;\n max-height: 600px;\n width: 240px;\n overflow: auto;\n float: left;\n text-align: left;\n background-color: rgba(255, 244, 89, 0.932);\n}\n\n#routesBox {\n grid-column: 4;\n grid-row: 1 / 3;\n max-height: 600px;\n width: 240px;\n overflow: auto;\n float: left;\n text-align: left;\n background-color: rgba(255, 244, 89, 0.932);\n}\n\n#listBox ul {\n padding-left: 15px;\n font-size: larger;\n}\n\n#pokedexBox select {\n margin-left: auto;\n margin-right: auto;\n margin-top: 10px;\n width: 95%;\n}\n\n.listPoke p {\n margin: 0 0 0 10px;\n padding: 0;\n}\n\n.pokeUpButton,\n.pokeDownButton,\n.pokeFirstButton,\n.toStorageButton,\n.pokeEvolveButton,\n.pokePrestigeButton {\n display: none;\n}\n\n#rosterBox ul li:first-child .pokeUpButton,\n#rosterBox ul li:last-child .pokeDownButton,\n#storageBox ul li:first-child .pokeUpButton,\n#storageBox ul li:last-child .pokeDownButton {\n display: none;\n}\n\n.manageTeamEnabled .pokeUpButton,\n.manageTeamEnabled .pokeDownButton,\n.manageTeamEnabled .pokeFirstButton,\n.manageTeamEnabled .toStorageButton,\n.manageTeamEnabled .canEvolve ~ .pokeEvolveButton,\n.manageTeamEnabled .canPrestige ~ .pokePrestigeButton {\n display: inline;\n padding-left: 3px;\n padding-right: 3px;\n}\n.fa-arrow-up:before{content:"\\f062"}\n.fa-arrow-down:before{content:"\\f063"}\n\n.activeNormal {\n color: rgb(80, 157, 2);\n}\n.inactiveNormal {\n color: rgb(66, 116, 10);\n}\n.dead {\n color: red;\n}\n.pokeDex0 {\n color: #808080;\n}\n.pokeDex1 {\n color: #38375a;\n}\n.pokeDex2 {\n color: #99844b;\n}\n.pokeDex3, .pokeDex5 {\n color: rgba(42, 55, 190, 0.5);\n}\n.activeShiny, .inactiveShiny {\n font-weight: bold;\n}\n.activeShiny {\n color: rgb(192, 160, 0);\n}\n.inactiveShiny, .pokeDex4, .pokeDex7 {\n color: rgba(192, 160, 0, 0.5);\n}\n.pokeDex3, .pokeDex4 {\n font-style: italic;\n}\n.pokeDex6, .pokeDex8 {\n font-weight: bold;\n}\n.pokeDex6 {\n color: #2a37be;\n}\n.pokeDex8 {\n color: #c0a000;\n}\n\n#viewSelectBox {\n grid-column: 2;\n grid-row: 2;\n width: 50%;\n height: 220px;\n text-align: center;\n background-color: rgb(255, 244, 89);\n}\n\n#viewSelectBox p {\n margin: 0;\n}\n\n#invBox {\n grid-column: 3;\n grid-row: 2;\n padding: 5px;\n font-size: medium;\n background-color: rgb(255, 244, 89);\n}\n\n#invBox p {\n margin: 5px;\n}\n\n#pokeCoinsPic {\n padding-left: 20px;\n}\n\n#enemyBox {\n grid-column: 3;\n width: auto;\n grid-row: 1;\n background-color: rgb(255, 244, 89);\n}\n\n#playerBox {\n grid-column: 2;\n grid-row: 1;\n background-color: rgb(255, 244, 89);\n align-content: center;\n}\n\n#console {\n grid-column: 2;\n grid-row: 3;\n overflow-y: scroll;\n margin-top: -65px;\n height: 143px;\n max-height: 143px;\n background-color: rgb(255, 244, 89);\n}\n#console-text {\n padding-left: 9px;\n}\n#townBox {\n text-align: center;\n}\n#navBox {\n grid-column: 2;\n grid-row: 2;\n margin-left: 50%;\n height: 220px;\n width: 50%;\n text-align: center;\n background-color: rgb(255, 244, 89);\n}\n#navBox .button, #viewSelectBox .button, #townBox button {\n margin-top: 7px;\n align-items: center;\n width: 150px;\n height: 35px;\n background-color: #000000;\n color: red;\n}\n.button {\n text-decoration: none;\n font: 400 13.3333px Arial;\n align-items: flex-start;\n text-align: center;\n cursor: default;\n color: buttontext;\n background-color: #000000;\n box-sizing: border-box;\n padding: 2px 6px 3px;\n border-width: 2px;\n border-style: outset;\n border-color: buttonface;\n border-image: initial;\n}\n#navBox p {\n margin: 0 0 5px 0;\n}\n\n.pokeBox {\n position: relative;\n line-height: 25px;\n font-size: 12px;\n text-align: center;\n width: 165px;\n float: center;\n}\n.pokeBox .img.attacked-right{\n margin-left: 15px;\n}\n.pokeBox .img.attacked-left{\n margin-right: 15px;\n}\n.pokeBox .img {\n transition: margin 0.08s ease-out;\n margin-left: 0;\n margin-right: 0;\n}\n.pokeBox .name {\n font-size: 18px;\n font-weight: 500;\n}\n/* progressbar reset*/\nprogress, /* All HTML5 progress enabled browsers */\nprogress[role] /* polyfill */\n{\n /* Turns off styling - not usually needed, but good to know. */\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n /* gets rid of default border in Firefox and Opera. */\n border: none;\n /* Needs to be in here for Safari polyfill so background images work as expected. */\n background-size: auto;\n /* Dimensions */\n width: 400px;\n height: 60px;\n\n}\n/* Polyfill */\nprogress[role]:after {\n background-image: none; /* removes default background from polyfill */\n}\n/* Ensure fallback text doesn\'t appear in polyfill */\nprogress[role] strong {\n display: none;\n}\n/* progress bg */\nprogress, /* Firefox */\nprogress[role][aria-valuenow] { /* Polyfill */\n background: rgb(6, 64, 65) !important; /* !important is needed by the polyfill */\n}\n/* Chrome */\nprogress::-webkit-progress-bar {\n background: rgb(6, 64, 65);\n}\n/* progress value */\n/* IE10 */\nprogress {\n color: rgb(15, 238, 141);\n}\n/* Firefox */\nprogress::-moz-progress-bar {\n background: rgb(15, 238, 141);\n}\n/* Chrome */\nprogress::-webkit-progress-value {\n background: rgb(15, 238, 141);\n border-radius: 0 10px 0 0;\n}\n/* Polyfill */\nprogress[aria-valuenow]:before {\n background: rgb(15, 238, 141);\n}\n\nprogress {\n width: 70px;\n height: 5px;\n position: relative;\n top: -3px;\n box-shadow: 0 0 2px black;\n}\nprogress.expBar {\n width: 120px;\n}\n\n#version {\n position: absolute;\n}\n\n#modalPopup {\n z-index: 2;\n display: none;\n flex-direction: column;\n position: fixed;\n top: 10vh;\n left: 50%;\n margin-left: -150px;\n padding: 15px;\n border: solid 1px rgb(0, 0, 0);\n background-color: #66c966;\n border-radius: 2px;\n overflow: auto;\n width: 300px;\n height: 50px;\n}\n\n#popupText {\n vertical-align: middle;\n margin: auto;\n font-weight: bold;\n}\n\n.modalContainer {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 2;\n}\n\n.modalDialog {\n display: flex;\n flex-direction: column;\n position: fixed;\n top: 10vh;\n bottom: 10vh;\n left: 10vw;\n right: 10vw;\n padding: 15px;\n border: solid 1px rgb(0, 0, 0);\n background-color: white;\n border-radius: 5px;\n overflow: auto;\n}\n\n.modalTitle {\n flex: 0 0 auto;\n margin: 0;\n padding: 0 0 10px;\n}\n\n.modalDialog h4 {\n flex: 0 0 auto;\n margin: 0;\n}\n\n#settingsDialog > div > p {\n padding:0;\n margin:5px 10px;\n}\n\n#forceSave {\n color:red;\n display:none;\n}\n\n#copySaveText {\n float: right;\n margin-top: 2px;\n}\n\n#saveText {\n flex: 1 1 auto;\n}\n\n#saveLoadButtons {\n margin-bottom: 7px;\n}\n\n#statisticsList li, #achievementsList li {\n padding: 2px 15px;\n}\n#statisticsList li:nth-child(even) {background: #CCC}\n#statisticsList li:nth-child(odd) {background: #FFF}\n#achievementsList li:nth-child(even) {background: #CCC}\n#achievementsList li:nth-child(odd) {background: #FFF}\n#achievementsList li.complete {\n text-decoration: line-through;\n font-style: italic;\n}\n\n#townBuildings {\n\n}\n.townBuilding {\n width: 45%;\n float: left;\n margin-left: 20px;\n background-color: rgb(240,240,240);\n}\n.townBuilding h4 { margin-left: 10px; }\n.townBuilding ul {\n border-top: 1px solid rgb(217, 217, 217);\n padding: 5px 20px;\n}\nul#shopItems li {\n margin-top: 2px;\n}\n.traderList {\n max-height: 200px;\n overflow-y: scroll;\n overflow-x: hidden;\n}\n',""]);const s=o},645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,a){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(a)for(var s=0;s{"use strict";var a=n(379),o=n.n(a),s=n(424),i=o()(s.default,{insert:"head",singleton:!1});if(!s.default.locals||e.hot.invalidate){var r=s.default.locals;e.hot.accept(424,(t=>{s=n(424),function(e,t,n){if(!e&&t||e&&!t)return!1;var a;for(a in e)if(e[a]!==t[a])return!1;for(a in t)if(!e[a])return!1;return!0}(r,s.default.locals)?(r=s.default.locals,i(s.default)):e.hot.invalidate()}))}e.hot.dispose((function(){i()})),s.default.locals},379:(e,t,n)=>{"use strict";var a,o=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),s=[];function i(e){for(var t=-1,n=0;n{(()=>{const{run:e}=n(929);let t,a="";try{t=ʎɐɹɔosǝʌɹǝs}catch(e){const{log:t}=n(756);t.error("The entry for webpack-plugin-serve was included in your build, but it does not appear that the plugin was. Please check your configuration.")}try{a=n.h()}catch(e){}e(a,t)})()},552:(e,t,n)=>{const{error:a,refresh:o,warn:s}=n(756)(),i=[1008,1011];e.exports={ClientSocket:class{constructor(e,...t){this.args=t,this.attempts=0,this.eventHandlers=[],this.options=e,this.retrying=!1,this.connect()}addEventListener(...e){this.eventHandlers.push(e),this.socket.addEventListener(...e)}close(){this.socket.close()}connect(){if(this.socket&&delete this.socket,this.connecting=!0,this.socket=new WebSocket(...this.args),this.options.retry?this.socket.addEventListener("close",(e=>{i.includes(e.code)||(this.retrying||s("The WebSocket was closed and will attempt to reconnect"),this.reconnect())})):this.socket.onclose=()=>s(`The client WebSocket was closed. ${o}`),this.socket.addEventListener("open",(()=>{this.attempts=0,this.retrying=!1})),this.eventHandlers.length)for(const[e,t]of this.eventHandlers)this.socket.addEventListener(e,t)}reconnect(){if(this.attempts+=1,this.retrying=!0,this.attempts>10)return a(`The WebSocket could not be reconnected. ${o}`),void(this.retrying=!1);const e=1e3*this.attempts**2;setTimeout((()=>this.connect(this.args)),e)}removeEventListener(...e){const[,t]=e;this.eventHandlers=this.eventHandlers.filter((([,e])=>e===t)),this.socket.removeEventListener(...e)}}}},929:(e,t,n)=>{e.exports={run:(e,t)=>{const{address:a,client:o={},hmr:s,progress:i,secure:r,status:p}=t;t.firstInstance=!window.webpackPluginServe,window.webpackPluginServe=window.webpackPluginServe||{compilers:{}},window.webpackPluginServe.silent=!!o.silent;const{ClientSocket:l}=n(552),{replace:c}=n(410),{error:m,info:k,warn:h}=n(756)(),d=new l(o,`${r?"wss":"ws"}://${o.address||a}/wps`),{compilerName:g}=t;if(window.webpackPluginServe.compilers[g]={},window.addEventListener("beforeunload",(()=>d.close())),d.addEventListener("message",(n=>{const{action:a,data:o={}}=JSON.parse(n.data),{errors:i,hash:r="",warnings:p}=o||{},l=r.slice(0,7),d=t.compilerName?`(Compiler: ${t.compilerName}) `:"",b=window.webpackPluginServe.compilers[g],{wpsId:u}=o;switch(a){case"build":b.done=!1;break;case"connected":k(`WebSocket connected ${d}`);break;case"done":b.done=!0;break;case"problems":o.errors.length&&m(`${d}Build ${l} produced errors:\n`,i),o.warnings.length&&h(`${d}Build ${l} produced warnings:\n`,p);break;case"reload":window.location.reload();break;case"replace":u&&u===t.wpsId&&c(e,r,"refresh-on-failure"===s)}})),t.firstInstance){if("minimal"===i){const{init:e}=n(938);e(t,d)}else if(i){const{init:e}=n(211);e(t,d)}if(p){const{init:e}=n(158);e(t,d)}k("Hot Module Replacement is active"),t.liveReload&&k("Live Reload taking precedence over Hot Module Replacement")}}}},410:(e,t,n)=>{const{error:a,info:o,refresh:s,warn:i}=n(756)();let r=!0;e.exports={replace:async(t,n,p)=>{const{apply:l,check:c,status:m}=e.hot;if(n&&(r=n.includes(t)),!r){const e=m();if("abort"===e||"fail"===e)return void i(`An HMR update was triggered, but ${e}ed. ${s}`);let t;try{t=await c(!1)}catch(e){return}if(!t)return void i(`No modules found for replacement. ${s}`);t=await l((k=p?()=>{p&&location.reload()}:()=>{},{onUnaccepted(e){k(),i("Change in unaccepted module(s):\n",e),i(e)},onDeclined(e){k(),i("Change in declined module(s):\n",e)},onErrored(e){k(),a("Error in module(s):\n",e)}})),t&&(r=!0,o(`Build ${n.slice(0,7)} replaced:\n`,t))}var k}}},756:e=>{const{error:t,info:n,warn:a}=console,o={error:t.bind(console,"⬡ wps:"),info:n.bind(console,"⬡ wps:"),refresh:"Please refresh the page",warn:a.bind(console,"⬡ wps:")},s=()=>{},i={error:s,info:s,warn:s};e.exports=()=>window.webpackPluginServe.silent?i:o},938:(e,t,n)=>{const{addCss:a,addHtml:o}=n(27),s="wps-progress-minimal",i=`\n
    \n
    \n
    \n`,r=`\n#${s} {\n position: fixed;\n top: 0;\n left: 0;\n height: 4px;\n width: 100vw;\n z-index: 2147483645;\n}\n\n#${s}-bar {\n width: 0%;\n height: 4px;\n background-color: rgb(186, 223, 172);\n}\n\n@keyframes ${s}-fade {\n\t0% {\n\t\topacity: 1;\n\t}\n\t100% {\n\t\topacity: 0;\n\t}\n}\n\n.${s}-disappear {\n animation: ${s}-fade .3s;\n animation-fill-mode: forwards;\n animation-delay: .5s;\n}\n\n.${s}-hidden {\n display: none;\n}\n`;let p=!1;const l=e=>{document.querySelector(`#${s}-bar`).style.width=`${e}%`},c=e=>{e.classList.add(`${s}-disappear`)};e.exports={init:(e,t)=>{e.firstInstance&&(document.addEventListener("DOMContentLoaded",(()=>{a(r),o(i);const e=document.querySelector(`#${s}`);e.addEventListener("animationend",(()=>{l(0),e.classList.add(`${s}-hidden`)}))})),document.addEventListener("visibilitychange",(()=>{if(!document.hidden&&p){const e=document.querySelector(`#${s}`);c(e),p=!1}}))),t.addEventListener("message",(e=>{const{action:t,data:n}=JSON.parse(e.data);if("progress"!==t)return;const a=Math.floor(100*n.percent),o=document.querySelector(`#${s}`);o.classList.remove(`${s}-hidden`,`${s}-disappear`),1===n.percent?document.hidden?p=!0:c(o):p=!1,l(a)}))}}},211:(e,t,n)=>{const{addCss:a,addHtml:o}=n(27),s="wps-progress",i=`\n#${s}{\n width: 200px;\n height: 200px;\n position: fixed;\n right: 5%;\n top: 5%;\n transition: opacity .25s ease-in-out;\n z-index: 2147483645;\n}\n\n#${s}-bg {\n fill: #282d35;\n}\n\n#${s}-fill {\n fill: rgba(0, 0, 0, 0);\n stroke: rgb(186, 223, 172);\n stroke-dasharray: 219.99078369140625;\n stroke-dashoffset: -219.99078369140625;\n stroke-width: 10;\n transform: rotate(90deg)translate(0px, -80px);\n}\n\n#${s}-percent {\n font-family: 'Open Sans';\n font-size: 18px;\n fill: #ffffff;\n}\n\n#${s}-percent-value {\n dominant-baseline: middle;\n text-anchor: middle;\n}\n\n#${s}-percent-super {\n fill: #bdc3c7;\n font-size: .45em;\n baseline-shift: 10%;\n}\n\n.${s}-noselect {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n}\n\n@keyframes ${s}-fade {\n\t0% {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t\t-webkit-transform: scale(1);\n\t}\n\t100% {\n\t\topacity: 0;\n\t\ttransform: scale(0);\n\t\t-webkit-transform: scale(0);\n\t}\n}\n\n.${s}-disappear {\n animation: ${s}-fade .3s;\n animation-fill-mode:forwards;\n animation-delay: .5s;\n}\n\n.${s}-hidden {\n display: none;\n}\n\n/* Put google web font at the end, or you'll see FOUC in Firefox */\n@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,700');\n`,r=`\n\n \n \n 0%\n\n`;let p=!1;const l=e=>{const t=document.querySelector(`#${s}-percent-value`),n=(100-e)/100*-219.99078369140625;document.querySelector(`#${s}-fill`).setAttribute("style",`stroke-dashoffset: ${n}`),t.innerHTML=e.toString()},c=e=>{e.classList.add(`${s}-disappear`)};e.exports={init:(e,t)=>{e.firstInstance&&(document.addEventListener("DOMContentLoaded",(()=>{a(i),o(r);const e=document.querySelector(`#${s}`);e.addEventListener("animationend",(()=>{l(0),e.classList.add(`${s}-hidden`)}))})),document.addEventListener("visibilitychange",(()=>{if(!document.hidden&&p){const e=document.querySelector(`#${s}`);c(e),p=!1}}))),t.addEventListener("message",(e=>{const{action:t,data:n}=JSON.parse(e.data);if("progress"!==t)return;const a=Math.floor(100*n.percent),o=document.querySelector(`#${s}`);o&&(o.classList.remove(`${s}-disappear`,`${s}-hidden`),1===n.percent?document.hidden?p=!0:c(o):p=!1,l(a))}))}}},158:(e,t,n)=>{const{addCss:a,addHtml:o,socketMessage:s}=n(27),i="wps-status",r=`\n#${i} {\n background: #282d35;\n border-radius: 0.6em;\n display: flex;\n flex-direction: column;\n\tfont-family: 'Open Sans', Helvetica, Arial, sans-serif;\n\tfont-size: 10px;\n height: 90%;\n min-height: 20em;\n left: 50%;\n opacity: 1;\n overflow: hidden;\n padding-bottom: 3em;\n position: absolute;\n top: 2rem;\n transform: translateX(-50%);\n transition: opacity .25s ease-in-out;\n width: 95%;\n z-index: 2147483645;\n}\n\n@keyframes ${i}-hidden-display {\n\t0% {\n\t\topacity: 1;\n\t}\n\t99% {\n\t\tdisplay: inline-flex;\n\t\topacity: 0;\n\t}\n\t100% {\n\t\tdisplay: none;\n\t\topacity: 0;\n\t}\n}\n\n#${i}.${i}-hidden {\n animation: ${i}-hidden-display .3s;\n animation-fill-mode:forwards;\n display: none;\n}\n\n#${i}.${i}-min {\n animation: minimize 10s;\n bottom: 2em;\n cursor: pointer;\n height: 6em;\n left: auto;\n min-height: 6em;\n padding-bottom: 0;\n position: absolute;\n right: 2em;\n top: auto;\n transform: none;\n width: 6em;\n}\n\n#${i}.${i}-min #${i}-beacon {\n display: block;\n}\n\n#${i}-title {\n color: #fff;\n font-size: 1.2em;\n font-weight: normal;\n margin: 0;\n padding: 0.6em 0;\n text-align: center;\n width: 100%;\n}\n\n#${i}.${i}-min #${i}-title {\n display: none;\n}\n\n#${i}-title-errors {\n color: #ff5f58;\n font-style: normal;\n padding-left: 1em;\n}\n\n#${i}-title-warnings {\n color: #ffbd2e;\n font-style: normal;\n padding-left: 1em;\n}\n\n#${i}-problems {\n overflow-y: auto;\n padding: 1em 2em;\n}\n\n#${i}-problems pre {\n color: #ddd;\n background: #282d35;\n display: block;\n font-size: 1.3em;\n\tfont-family: 'Open Sans', Helvetica, Arial, sans-serif;\n white-space: pre-wrap;\n}\n\n#${i}-problems pre em {\n background: #ff5f58;\n border-radius: 0.3em;\n color: #641e16;\n font-style: normal;\n line-height: 3em;\n margin-right: 0.4em;\n padding: 0.1em 0.4em;\n text-transform: uppercase;\n}\n\npre#${i}-warnings em {\n background: #ffbd2e;\n color: #3e2723;\n}\n\npre#${i}-success {\n display: none;\n text-align: center;\n}\n\npre#${i}-success em {\n background: #7fb900;\n color: #004d40;\n}\n\n#${i}-problems.${i}-success #${i}-success {\n display: block;\n}\n\n#${i}.${i}-min #${i}-problems {\n display: none;\n}\n\n#${i}-nav {\n opacity: 0.5;\n padding: 1.2em;\n position: absolute;\n}\n\n#${i}.${i}-min #${i}-nav {\n display: none;\n}\n\n#${i}-nav:hover {\n opacity: 1;\n}\n\n#${i}-nav div {\n background: #ff5f58;\n border-radius: 1.2em;\n cursor: pointer;\n display: inline-block;\n height: 1.2em;\n position: relative;\n width: 1.2em;\n}\n\ndiv#${i}-min {\n background: #ffbd2e;\n margin-left: 0.8em;\n}\n\n#${i}-beacon {\n border-radius: 3em;\n display: none;\n font-size: 10px;\n height: 3em;\n margin: 1.6em auto;\n position: relative;\n width: 3em;\n}\n\n#${i}-beacon:before, #${i}-beacon:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(127,185,0, 0.2);\n border-radius: 3em;\n opacity: 0;\n}\n\n#${i}-beacon:before {\n animation: ${i}-pulse 3s infinite linear;\n transform: scale(1);\n}\n\n#${i}-beacon:after {\n animation: ${i}-pulse 3s 2s infinite linear;\n}\n\n\n@keyframes ${i}-pulse {\n 0% {\n opacity: 0;\n transform: scale(0.6);\n }\n 33% {\n opacity: 1;\n transform: scale(1);\n }\n 100% {\n opacity: 0;\n transform: scale(1.4);\n }\n}\n\n#${i}-beacon mark {\n background: rgba(127, 185, 0, 1);\n border-radius: 100% 100%;\n height: 1em;\n left: 1em;\n position: absolute;\n top: 1em;\n width: 1em;\n}\n\n#${i}-beacon.${i}-error mark {\n background: #ff5f58;\n}\n\n#${i}-beacon.${i}-error:before, #${i}-beacon.error:after {\n background: rgba(255, 95, 88, 0.2);\n}\n\n#${i}-beacon.${i}-warning mark {\n background: #ffbd2e;\n}\n\n#${i}-beacon.${i}-warning:before, #${i}-beacon.warning:after {\n background: rgba(255, 189, 46, 0.2);\n}\n\n/* Put google web font at the end, or you'll see FOUC in Firefox */\n@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,700');\n`,p=`\n\n`;e.exports={init:(e,t)=>{const n=`${i}-hidden`;let l,c,m,k,h,d,g,b=!1;const u=()=>{k.innerHTML="",h.innerHTML="",m.classList.remove(`${i}-success`),c.className="",d.innerText="",g.innerText=""};e.firstInstance&&document.addEventListener("DOMContentLoaded",(()=>{a(r),[l]=o(p),c=document.querySelector(`#${i}-beacon`),m=document.querySelector(`#${i}-problems`),k=document.querySelector(`#${i}-errors`),h=document.querySelector(`#${i}-warnings`),d=document.querySelector(`#${i}-title-errors`),g=document.querySelector(`#${i}-title-warnings`);const e=document.querySelector(`#${i}-close`),t=document.querySelector(`#${i}-min`);l.addEventListener("click",(()=>{l.classList.remove(`${i}-min`)})),e.addEventListener("click",(()=>{l.classList.add(`${i}-hidden`)})),t.addEventListener("click",(e=>{l.classList.add(`${i}-min`),e.stopImmediatePropagation()}))})),s(t,((e,t)=>{if(!l)return;const{compilers:a}=window.webpackPluginServe;switch(e){case"build":u();break;case"problems":(e=>{if(e.length){m.classList.remove(`${i}-success`),c.classList.add(`${i}-error`);for(const t of e)o(`
    Error in ${t}
    `,k);d.innerText=`${e.length} Error(s)`}else d.innerText="";l.classList.remove(n)})(t.errors),(e=>{if(e.length){m.classList.remove(`${i}-success`),c.classList.contains(`${i}-error`)||c.classList.add(`${i}-warning`);for(const t of e)o(`
    Warning in ${t}
    `,h);g.innerText=`${e.length} Warning(s)`}else g.innerText="";l.classList.remove(n)})(t.warnings),l.classList.remove(n),b=t.errors.length||t.warnings.length;break;case"replace":for(const e of Object.keys(a))if(!a[e])return;!b||k.children.length||h.children.length||(u(),b=!1,m.classList.add(`${i}-success`),l.classList.remove(n),setTimeout((()=>l.classList.add(n)),3e3))}}))}}},27:e=>{e.exports={addCss:e=>{const t=document.createElement("style");t.type="text/css",e.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),document.head.appendChild(t)},addHtml:(e,t)=>{const n=document.createElement("div"),a=[];for(n.innerHTML=e.trim();n.firstChild;)a.push((t||document.body).appendChild(n.firstChild));return a},socketMessage:(e,t)=>{e.addEventListener("message",(e=>{const{action:n,data:a={}}=JSON.parse(e.data);t(n,a)}))}}},698:(e,t,n)=>{"use strict";const a={Slow:[1,2,10,33,80,156,270,428,640,911,1250,1663,2160,2746,3430,4218,5120,6141,7290,8573,1e4,11576,13310,15208,17280,19531,21970,24603,27440,30486,33750,37238,40960,44921,49130,53593,58320,63316,68590,74148,8e4,86151,92610,99383,106480,113906,121670,129778,138240,147061,156250,165813,175760,186096,196830,207968,219520,231491,243890,256723,27e4,283726,297910,312558,327680,343281,359370,375953,393040,410636,428750,447388,466560,486271,506530,527343,548720,570666,593190,616298,64e4,664301,689210,714733,740880,767656,795070,823128,851840,881211,911250,941963,973360,1005446,1038230,1071718,1105920,1140841,1176490,1212873,1e18],"Medium Slow":[1,2,9,57,96,135,179,236,314,419,560,742,973,1261,1612,2035,2535,3120,3798,4575,5460,6458,7577,8825,10208,11735,13411,15244,17242,19411,21760,24294,27021,29949,33084,36435,40007,43808,47846,52127,56660,61450,66505,71833,77440,83335,89523,96012,102810,109923,117360,125126,133229,141677,150476,159635,169159,179056,189334,199999,211060,222522,234393,246681,259392,272535,286115,300140,314618,329555,344960,360838,377197,394045,411388,429235,447591,466464,485862,505791,526260,547274,568841,590969,613664,636935,660787,685228,710266,735907,762160,789030,816525,844653,873420,902835,932903,963632,995030,1027103,1e18],"Medium Fast":[1,2,8,27,64,125,216,343,512,729,1e3,1331,1728,2197,2744,3375,4096,4913,5832,6859,8e3,9261,10648,12167,13824,15625,17576,19683,21952,24389,27e3,29791,32768,35937,39304,42875,46656,50653,54872,59319,64e3,68921,74088,79507,85184,91125,97336,103823,110592,117649,125e3,132651,140608,148877,157464,166375,175616,185193,195112,205379,216e3,226981,238328,250047,262144,274625,287496,300763,314432,328509,343e3,357911,373248,389017,405224,421875,438976,456533,474552,493039,512e3,531441,551368,571787,592704,614125,636056,658503,681472,704969,729e3,753571,778688,804357,830584,857375,884736,912673,941192,970299,1e18],Fast:[1,2,6,21,51,100,172,274,409,583,800,1064,1382,1757,2195,2700,3276,3930,4665,5487,6400,7408,8518,9733,11059,12500,14060,15746,17561,19511,21600,23832,26214,28749,31443,34300,37324,40522,43897,47455,51200,55136,59270,63605,68147,72900,77868,83058,88473,94119,1e5,106120,112486,119101,125971,133100,140492,148154,156089,164303,172800,181584,190662,200037,209715,219700,229996,240610,251545,262807,274400,286328,298598,311213,324179,337500,351180,365226,379641,394431,409600,425152,441094,457429,474163,491300,508844,526802,545177,563975,583200,602856,622950,643485,664467,685900,707788,730138,752953,776239,1e18]},o={route:{}};o.route.locked="rgb(255, 0, 0)",o.route.unlocked="rgb(0, 0, 0)",o.route.current="rgb(139, 69, 19)";const s=0,i=1,r=2,p=3,l=4,c=5,m=6,k=7,h=8,d={pokeball:1,greatball:1.5,ultraball:2,masterball:100},g=[{pokemon:[{Pokemon:"Bulbasaur"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"45",attack:"49",defense:"49","sp atk":"65","sp def":"65",speed:"45",types:["Grass","Poison"]}],exp:[{"base exp":"64"}],images:{normal:{front:"assets/sprites/normal/front/Bulbasaur.png",back:"assets/sprites/normal/back/Bulbasaur.png"},shiny:{front:"assets/sprites/shiny/front/Bulbasaur.png",back:"assets/sprites/shiny/back/Bulbasaur.png"}}},{pokemon:[{Pokemon:"Ivysaur"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"60",attack:"62",defense:"63","sp atk":"80","sp def":"80",speed:"60",types:["Grass","Poison"]}],exp:[{"base exp":"142"}]},{pokemon:[{Pokemon:"Venusaur"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"80",attack:"82",defense:"83","sp atk":"100","sp def":"100",speed:"80",types:["Grass","Poison"]}],exp:[{"base exp":"236"}]},{pokemon:[{Pokemon:"Charmander"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"39",attack:"52",defense:"43","sp atk":"60","sp def":"50",speed:"65",types:["Fire"]}],exp:[{"base exp":"62"}],images:{normal:{front:"assets/sprites/normal/front/Charmander.png",back:"assets/sprites/normal/back/Charmander.png"},shiny:{front:"assets/sprites/shiny/front/Charmander.png",back:"assets/sprites/shiny/back/Charmander.png"}}},{pokemon:[{Pokemon:"Charmeleon"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"58",attack:"64",defense:"58","sp atk":"80","sp def":"65",speed:"80",types:["Fire"]}],exp:[{"base exp":"142"}]},{pokemon:[{Pokemon:"Charizard"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"78",attack:"84",defense:"78","sp atk":"109","sp def":"85",speed:"100",types:["Fire","Flying"]}],exp:[{"base exp":"240"}]},{pokemon:[{Pokemon:"Squirtle"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"44",attack:"48",defense:"65","sp atk":"50","sp def":"64",speed:"43",types:["Water"]}],exp:[{"base exp":"63"}],images:{normal:{front:"assets/sprites/normal/front/Squirtle.png",back:"assets/sprites/normal/back/Squirtle.png"},shiny:{front:"assets/sprites/shiny/front/Squirtle.png",back:"assets/sprites/shiny/back/Squirtle.png"}}},{pokemon:[{Pokemon:"Wartortle"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"59",attack:"63",defense:"80","sp atk":"65","sp def":"80",speed:"58",types:["Water"]}],exp:[{"base exp":"142"}]},{pokemon:[{Pokemon:"Blastoise"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"79",attack:"83",defense:"100","sp atk":"85","sp def":"105",speed:"78",types:["Water"]}],exp:[{"base exp":"239"}]},{pokemon:[{Pokemon:"Caterpie"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"45",attack:"30",defense:"35","sp atk":"20","sp def":"20",speed:"45",types:["Bug"]}],exp:[{"base exp":"39"}]},{pokemon:[{Pokemon:"Metapod"}],stats:[{"catch rate":"120","growth rate":"Medium Fast",hp:"50",attack:"20",defense:"55","sp atk":"25","sp def":"25",speed:"30",types:["Bug"]}],exp:[{"base exp":"72"}]},{pokemon:[{Pokemon:"Butterfree"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"60",attack:"45",defense:"50","sp atk":"90","sp def":"80",speed:"70",types:["Bug","Flying"]}],exp:[{"base exp":"178"}]},{pokemon:[{Pokemon:"Weedle"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"40",attack:"35",defense:"30","sp atk":"20","sp def":"20",speed:"50",types:["Bug","Poison"]}],exp:[{"base exp":"39"}]},{pokemon:[{Pokemon:"Kakuna"}],stats:[{"catch rate":"120","growth rate":"Medium Fast",hp:"45",attack:"25",defense:"50","sp atk":"25","sp def":"25",speed:"35",types:["Bug","Poison"]}],exp:[{"base exp":"72"}]},{pokemon:[{Pokemon:"Beedrill"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"90",defense:"40","sp atk":"45","sp def":"80",speed:"75",types:["Bug","Poison"]}],exp:[{"base exp":"178"}]},{pokemon:[{Pokemon:"Pidgey"}],stats:[{"catch rate":"255","growth rate":"Medium Slow",hp:"40",attack:"45",defense:"40","sp atk":"35","sp def":"35",speed:"56",types:["Normal","Flying"]}],exp:[{"base exp":"50"}]},{pokemon:[{Pokemon:"Pidgeotto"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"63",attack:"60",defense:"55","sp atk":"50","sp def":"50",speed:"71",types:["Normal","Flying"]}],exp:[{"base exp":"122"}]},{pokemon:[{Pokemon:"Pidgeot"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"83",attack:"80",defense:"75","sp atk":"70","sp def":"70",speed:"101",types:["Normal","Flying"]}],exp:[{"base exp":"216"}]},{pokemon:[{Pokemon:"Rattata"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"30",attack:"56",defense:"35","sp atk":"25","sp def":"35",speed:"72",types:["Normal"]}],exp:[{"base exp":"51"}]},{pokemon:[{Pokemon:"Raticate"}],stats:[{"catch rate":"127","growth rate":"Medium Fast",hp:"55",attack:"81",defense:"60","sp atk":"50","sp def":"70",speed:"97",types:["Normal"]}],exp:[{"base exp":"145"}]},{pokemon:[{Pokemon:"Spearow"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"40",attack:"60",defense:"30","sp atk":"31","sp def":"31",speed:"70",types:["Normal","Flying"]}],exp:[{"base exp":"52"}]},{pokemon:[{Pokemon:"Fearow"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"65",attack:"90",defense:"65","sp atk":"61","sp def":"61",speed:"100",types:["Normal","Flying"]}],exp:[{"base exp":"155"}]},{pokemon:[{Pokemon:"Ekans"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"35",attack:"60",defense:"44","sp atk":"40","sp def":"54",speed:"55",types:["Poison"]}],exp:[{"base exp":"58"}]},{pokemon:[{Pokemon:"Arbok"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"60",attack:"85",defense:"69","sp atk":"65","sp def":"79",speed:"80",types:["Poison"]}],exp:[{"base exp":"153"}]},{pokemon:[{Pokemon:"Pikachu"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"35",attack:"55",defense:"40","sp atk":"50","sp def":"50",speed:"90",types:["Electric"]}],exp:[{"base exp":"112"}],images:{normal:{front:"assets/sprites/normal/front/Pikachu.png",back:"assets/sprites/normal/back/Pikachu.png"},shiny:{front:"assets/sprites/shiny/front/Pikachu.png",back:"assets/sprites/shiny/back/Pikachu.png"}}},{pokemon:[{Pokemon:"Raichu"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"60",attack:"90",defense:"55","sp atk":"90","sp def":"80",speed:"110",types:["Electric"]}],exp:[{"base exp":"218"}]},{pokemon:[{Pokemon:"Sandshrew"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"50",attack:"75",defense:"85","sp atk":"20","sp def":"30",speed:"40",types:["Ground"]}],exp:[{"base exp":"60"}]},{pokemon:[{Pokemon:"Sandslash"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"75",attack:"100",defense:"110","sp atk":"45","sp def":"55",speed:"65",types:["Ground"]}],exp:[{"base exp":"158"}]},{pokemon:[{Pokemon:"Nidoran F"}],stats:[{"catch rate":"235","growth rate":"Medium Slow",hp:"55",attack:"47",defense:"52","sp atk":"40","sp def":"40",speed:"41",types:["Poison"]}],exp:[{"base exp":"55"}]},{pokemon:[{Pokemon:"Nidorina"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"70",attack:"62",defense:"67","sp atk":"55","sp def":"55",speed:"56",types:["Poison"]}],exp:[{"base exp":"128"}]},{pokemon:[{Pokemon:"Nidoqueen"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"90",attack:"92",defense:"87","sp atk":"75","sp def":"85",speed:"76",types:["Poison","Ground"]}],exp:[{"base exp":"227"}]},{pokemon:[{Pokemon:"Nidoran M"}],stats:[{"catch rate":"235","growth rate":"Medium Slow",hp:"46",attack:"57",defense:"40","sp atk":"40","sp def":"40",speed:"50",types:["Poison"]}],exp:[{"base exp":"55"}]},{pokemon:[{Pokemon:"Nidorino"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"61",attack:"72",defense:"57","sp atk":"55","sp def":"55",speed:"65",types:["Poison"]}],exp:[{"base exp":"128"}]},{pokemon:[{Pokemon:"Nidoking"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"81",attack:"102",defense:"77","sp atk":"85","sp def":"75",speed:"85",types:["Poison","Ground"]}],exp:[{"base exp":"227"}]},{pokemon:[{Pokemon:"Clefairy"}],stats:[{"catch rate":"150","growth rate":"Fast",hp:"70",attack:"45",defense:"48","sp atk":"60","sp def":"65",speed:"35",types:["Fairy"]}],exp:[{"base exp":"113"}]},{pokemon:[{Pokemon:"Clefable"}],stats:[{"catch rate":"25","growth rate":"Fast",hp:"95",attack:"70",defense:"73","sp atk":"95","sp def":"90",speed:"60",types:["Fairy"]}],exp:[{"base exp":"217"}]},{pokemon:[{Pokemon:"Vulpix"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"38",attack:"41",defense:"40","sp atk":"50","sp def":"65",speed:"65",types:["Fire"]}],exp:[{"base exp":"60"}]},{pokemon:[{Pokemon:"Ninetales"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"73",attack:"76",defense:"75","sp atk":"81","sp def":"100",speed:"100",types:["Fire"]}],exp:[{"base exp":"177"}]},{pokemon:[{Pokemon:"Jigglypuff"}],stats:[{"catch rate":"170","growth rate":"Fast",hp:"115",attack:"45",defense:"20","sp atk":"45","sp def":"25",speed:"20",types:["Normal","Fairy"]}],exp:[{"base exp":"95"}]},{pokemon:[{Pokemon:"Wigglytuff"}],stats:[{"catch rate":"50","growth rate":"Fast",hp:"140",attack:"70",defense:"45","sp atk":"85","sp def":"50",speed:"45",types:["Normal","Fairy"]}],exp:[{"base exp":"196"}]},{pokemon:[{Pokemon:"Zubat"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"40",attack:"45",defense:"35","sp atk":"30","sp def":"40",speed:"55",types:["Poison","Flying"]}],exp:[{"base exp":"49"}]},{pokemon:[{Pokemon:"Golbat"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"75",attack:"80",defense:"70","sp atk":"65","sp def":"75",speed:"90",types:["Poison","Flying"]}],exp:[{"base exp":"159"}]},{pokemon:[{Pokemon:"Oddish"}],stats:[{"catch rate":"255","growth rate":"Medium Slow",hp:"45",attack:"50",defense:"55","sp atk":"75","sp def":"65",speed:"30",types:["Grass","Poison"]}],exp:[{"base exp":"64"}]},{pokemon:[{Pokemon:"Gloom"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"60",attack:"65",defense:"70","sp atk":"85","sp def":"75",speed:"40",types:["Grass","Poison"]}],exp:[{"base exp":"138"}]},{pokemon:[{Pokemon:"Vileplume"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"75",attack:"80",defense:"85","sp atk":"110","sp def":"90",speed:"50",types:["Grass","Poison"]}],exp:[{"base exp":"221"}]},{pokemon:[{Pokemon:"Paras"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"35",attack:"70",defense:"55","sp atk":"45","sp def":"55",speed:"25",types:["Bug","Grass"]}],exp:[{"base exp":"57"}]},{pokemon:[{Pokemon:"Parasect"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"60",attack:"95",defense:"80","sp atk":"60","sp def":"80",speed:"30",types:["Bug","Grass"]}],exp:[{"base exp":"142"}]},{pokemon:[{Pokemon:"Venonat"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"60",attack:"55",defense:"50","sp atk":"40","sp def":"55",speed:"45",types:["Bug","Poison"]}],exp:[{"base exp":"61"}]},{pokemon:[{Pokemon:"Venomoth"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"70",attack:"65",defense:"60","sp atk":"90","sp def":"75",speed:"90",types:["Bug","Poison"]}],exp:[{"base exp":"158"}]},{pokemon:[{Pokemon:"Diglett"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"10",attack:"55",defense:"25","sp atk":"35","sp def":"45",speed:"95",types:["Ground"]}],exp:[{"base exp":"53"}]},{pokemon:[{Pokemon:"Dugtrio"}],stats:[{"catch rate":"50","growth rate":"Medium Fast",hp:"35",attack:"80",defense:"50","sp atk":"50","sp def":"70",speed:"120",types:["Ground"]}],exp:[{"base exp":"142"}]},{pokemon:[{Pokemon:"Meowth"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"40",attack:"45",defense:"35","sp atk":"40","sp def":"40",speed:"90",types:["Normal"]}],exp:[{"base exp":"58"}]},{pokemon:[{Pokemon:"Persian"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"65",attack:"70",defense:"60","sp atk":"65","sp def":"65",speed:"115",types:["Normal"]}],exp:[{"base exp":"154"}]},{pokemon:[{Pokemon:"Psyduck"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"50",attack:"52",defense:"48","sp atk":"65","sp def":"50",speed:"55",types:["Water"]}],exp:[{"base exp":"64"}]},{pokemon:[{Pokemon:"Golduck"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"80",attack:"82",defense:"78","sp atk":"95","sp def":"80",speed:"85",types:["Water"]}],exp:[{"base exp":"175"}]},{pokemon:[{Pokemon:"Mankey"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"40",attack:"80",defense:"35","sp atk":"35","sp def":"45",speed:"70",types:["Fighting"]}],exp:[{"base exp":"61"}]},{pokemon:[{Pokemon:"Primeape"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"65",attack:"105",defense:"60","sp atk":"60","sp def":"70",speed:"95",types:["Fighting"]}],exp:[{"base exp":"159"}]},{pokemon:[{Pokemon:"Growlithe"}],stats:[{"catch rate":"190","growth rate":"Slow",hp:"55",attack:"70",defense:"45","sp atk":"70","sp def":"50",speed:"60",types:["Fire"]}],exp:[{"base exp":"70"}]},{pokemon:[{Pokemon:"Arcanine"}],stats:[{"catch rate":"75","growth rate":"Slow",hp:"90",attack:"110",defense:"80","sp atk":"100","sp def":"80",speed:"95",types:["Fire"]}],exp:[{"base exp":"194"}]},{pokemon:[{Pokemon:"Poliwag"}],stats:[{"catch rate":"255","growth rate":"Medium Slow",hp:"40",attack:"50",defense:"40","sp atk":"40","sp def":"40",speed:"90",types:["Water"]}],exp:[{"base exp":"60"}]},{pokemon:[{Pokemon:"Poliwhirl"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"65",attack:"65",defense:"65","sp atk":"50","sp def":"50",speed:"90",types:["Water"]}],exp:[{"base exp":"135"}]},{pokemon:[{Pokemon:"Poliwrath"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"90",attack:"95",defense:"95","sp atk":"70","sp def":"90",speed:"70",types:["Water","Fighting"]}],exp:[{"base exp":"230"}]},{pokemon:[{Pokemon:"Abra"}],stats:[{"catch rate":"200","growth rate":"Medium Slow",hp:"25",attack:"20",defense:"15","sp atk":"105","sp def":"55",speed:"90",types:["Psychic"]}],exp:[{"base exp":"62"}]},{pokemon:[{Pokemon:"Kadabra"}],stats:[{"catch rate":"100","growth rate":"Medium Slow",hp:"40",attack:"35",defense:"30","sp atk":"120","sp def":"70",speed:"105",types:["Psychic"]}],exp:[{"base exp":"140"}]},{pokemon:[{Pokemon:"Alakazam"}],stats:[{"catch rate":"50","growth rate":"Medium Slow",hp:"55",attack:"50",defense:"45","sp atk":"135","sp def":"95",speed:"120",types:["Psychic"]}],exp:[{"base exp":"225"}]},{pokemon:[{Pokemon:"Machop"}],stats:[{"catch rate":"180","growth rate":"Medium Slow",hp:"70",attack:"80",defense:"50","sp atk":"35","sp def":"35",speed:"35",types:["Fighting"]}],exp:[{"base exp":"61"}]},{pokemon:[{Pokemon:"Machoke"}],stats:[{"catch rate":"90","growth rate":"Medium Slow",hp:"80",attack:"100",defense:"70","sp atk":"50","sp def":"60",speed:"45",types:["Fighting"]}],exp:[{"base exp":"142"}]},{pokemon:[{Pokemon:"Machamp"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"90",attack:"130",defense:"80","sp atk":"65","sp def":"85",speed:"55",types:["Fighting"]}],exp:[{"base exp":"227"}]},{pokemon:[{Pokemon:"Bellsprout"}],stats:[{"catch rate":"255","growth rate":"Medium Slow",hp:"50",attack:"75",defense:"35","sp atk":"70","sp def":"30",speed:"40",types:["Grass","Poison"]}],exp:[{"base exp":"60"}]},{pokemon:[{Pokemon:"Weepinbell"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"65",attack:"90",defense:"50","sp atk":"85","sp def":"45",speed:"55",types:["Grass","Poison"]}],exp:[{"base exp":"137"}]},{pokemon:[{Pokemon:"Victreebel"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"80",attack:"105",defense:"65","sp atk":"100","sp def":"70",speed:"70",types:["Grass","Poison"]}],exp:[{"base exp":"221"}]},{pokemon:[{Pokemon:"Tentacool"}],stats:[{"catch rate":"190","growth rate":"Slow",hp:"40",attack:"40",defense:"35","sp atk":"50","sp def":"100",speed:"70",types:["Water","Poison"]}],exp:[{"base exp":"67"}]},{pokemon:[{Pokemon:"Tentacruel"}],stats:[{"catch rate":"60","growth rate":"Slow",hp:"80",attack:"70",defense:"65","sp atk":"80","sp def":"120",speed:"100",types:["Water","Poison"]}],exp:[{"base exp":"180"}]},{pokemon:[{Pokemon:"Geodude"}],stats:[{"catch rate":"255","growth rate":"Medium Slow",hp:"40",attack:"80",defense:"100","sp atk":"30","sp def":"30",speed:"20",types:["Rock","Ground"]}],exp:[{"base exp":"60"}]},{pokemon:[{Pokemon:"Graveler"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"55",attack:"95",defense:"115","sp atk":"45","sp def":"45",speed:"35",types:["Rock","Ground"]}],exp:[{"base exp":"137"}]},{pokemon:[{Pokemon:"Golem"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"80",attack:"110",defense:"130","sp atk":"55","sp def":"65",speed:"45",types:["Rock","Ground"]}],exp:[{"base exp":"223"}]},{pokemon:[{Pokemon:"Ponyta"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"50",attack:"85",defense:"55","sp atk":"65","sp def":"65",speed:"90",types:["Fire"]}],exp:[{"base exp":"82"}]},{pokemon:[{Pokemon:"Rapidash"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"65",attack:"100",defense:"70","sp atk":"80","sp def":"80",speed:"105",types:["Fire"]}],exp:[{"base exp":"175"}]},{pokemon:[{Pokemon:"Slowpoke"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"90",attack:"65",defense:"65","sp atk":"40","sp def":"40",speed:"15",types:["Water","Psychic"]}],exp:[{"base exp":"63"}]},{pokemon:[{Pokemon:"Slowbro"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"95",attack:"75",defense:"110","sp atk":"100","sp def":"80",speed:"30",types:["Water","Psychic"]}],exp:[{"base exp":"172"}]},{pokemon:[{Pokemon:"Magnemite"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"25",attack:"35",defense:"70","sp atk":"95","sp def":"55",speed:"45",types:["Electric","Steel"]}],exp:[{"base exp":"65"}]},{pokemon:[{Pokemon:"Magneton"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"50",attack:"60",defense:"95","sp atk":"120","sp def":"70",speed:"70",types:["Electric","Steel"]}],exp:[{"base exp":"163"}]},{pokemon:[{Pokemon:"Farfetchd"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"52",attack:"65",defense:"55","sp atk":"58","sp def":"62",speed:"60",types:["Normal","Flying"]}],exp:[{"base exp":"123"}]},{pokemon:[{Pokemon:"Doduo"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"35",attack:"85",defense:"45","sp atk":"35","sp def":"35",speed:"75",types:["Normal","Flying"]}],exp:[{"base exp":"62"}]},{pokemon:[{Pokemon:"Dodrio"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"60",attack:"110",defense:"70","sp atk":"60","sp def":"60",speed:"100",types:["Normal","Flying"]}],exp:[{"base exp":"161"}]},{pokemon:[{Pokemon:"Seel"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"65",attack:"45",defense:"55","sp atk":"45","sp def":"70",speed:"45",types:["Water"]}],exp:[{"base exp":"65"}]},{pokemon:[{Pokemon:"Dewgong"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"90",attack:"70",defense:"80","sp atk":"70","sp def":"95",speed:"70",types:["Water","Ice"]}],exp:[{"base exp":"166"}]},{pokemon:[{Pokemon:"Grimer"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"80",attack:"80",defense:"50","sp atk":"40","sp def":"50",speed:"25",types:["Poison"]}],exp:[{"base exp":"65"}]},{pokemon:[{Pokemon:"Muk"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"105",attack:"105",defense:"75","sp atk":"65","sp def":"100",speed:"50",types:["Poison"]}],exp:[{"base exp":"175"}]},{pokemon:[{Pokemon:"Shellder"}],stats:[{"catch rate":"190","growth rate":"Slow",hp:"30",attack:"65",defense:"100","sp atk":"45","sp def":"25",speed:"40",types:["Water"]}],exp:[{"base exp":"61"}]},{pokemon:[{Pokemon:"Cloyster"}],stats:[{"catch rate":"60","growth rate":"Slow",hp:"50",attack:"95",defense:"180","sp atk":"85","sp def":"45",speed:"70",types:["Water","Ice"]}],exp:[{"base exp":"184"}]},{pokemon:[{Pokemon:"Gastly"}],stats:[{"catch rate":"190","growth rate":"Medium Slow",hp:"30",attack:"35",defense:"30","sp atk":"100","sp def":"35",speed:"80",types:["Ghost","Poison"]}],exp:[{"base exp":"62"}]},{pokemon:[{Pokemon:"Haunter"}],stats:[{"catch rate":"90","growth rate":"Medium Slow",hp:"45",attack:"50",defense:"45","sp atk":"115","sp def":"55",speed:"95",types:["Ghost","Poison"]}],exp:[{"base exp":"142"}]},{pokemon:[{Pokemon:"Gengar"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"60",attack:"65",defense:"60","sp atk":"130","sp def":"75",speed:"110",types:["Ghost","Poison"]}],exp:[{"base exp":"225"}]},{pokemon:[{Pokemon:"Onix"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"35",attack:"45",defense:"160","sp atk":"30","sp def":"45",speed:"70",types:["Rock","Ground"]}],exp:[{"base exp":"77"}]},{pokemon:[{Pokemon:"Drowzee"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"60",attack:"48",defense:"45","sp atk":"43","sp def":"90",speed:"42",types:["Psychic"]}],exp:[{"base exp":"66"}]},{pokemon:[{Pokemon:"Hypno"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"85",attack:"73",defense:"70","sp atk":"73","sp def":"115",speed:"67",types:["Psychic"]}],exp:[{"base exp":"169"}]},{pokemon:[{Pokemon:"Krabby"}],stats:[{"catch rate":"225","growth rate":"Medium Fast",hp:"30",attack:"105",defense:"90","sp atk":"25","sp def":"25",speed:"50",types:["Water"]}],exp:[{"base exp":"65"}]},{pokemon:[{Pokemon:"Kingler"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"55",attack:"130",defense:"115","sp atk":"50","sp def":"50",speed:"75",types:["Water"]}],exp:[{"base exp":"166"}]},{pokemon:[{Pokemon:"Voltorb"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"40",attack:"30",defense:"50","sp atk":"55","sp def":"55",speed:"100",types:["Electric"]}],exp:[{"base exp":"66"}]},{pokemon:[{Pokemon:"Electrode"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"60",attack:"50",defense:"70","sp atk":"80","sp def":"80",speed:"140",types:["Electric"]}],exp:[{"base exp":"168"}]},{pokemon:[{Pokemon:"Exeggcute"}],stats:[{"catch rate":"90","growth rate":"Slow",hp:"60",attack:"40",defense:"80","sp atk":"60","sp def":"45",speed:"40",types:["Grass","Psychic"]}],exp:[{"base exp":"65"}]},{pokemon:[{Pokemon:"Exeggutor"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"95",attack:"95",defense:"85","sp atk":"125","sp def":"65",speed:"55",types:["Grass","Psychic"]}],exp:[{"base exp":"182"}]},{pokemon:[{Pokemon:"Cubone"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"50",attack:"50",defense:"95","sp atk":"40","sp def":"50",speed:"35",types:["Ground"]}],exp:[{"base exp":"64"}]},{pokemon:[{Pokemon:"Marowak"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"60",attack:"80",defense:"110","sp atk":"50","sp def":"80",speed:"45",types:["Ground"]}],exp:[{"base exp":"149"}]},{pokemon:[{Pokemon:"Hitmonlee"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"50",attack:"120",defense:"53","sp atk":"35","sp def":"110",speed:"87",types:["Fighting"]}],exp:[{"base exp":"159"}]},{pokemon:[{Pokemon:"Hitmonchan"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"50",attack:"105",defense:"79","sp atk":"35","sp def":"110",speed:"76",types:["Fighting"]}],exp:[{"base exp":"159"}]},{pokemon:[{Pokemon:"Lickitung"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"90",attack:"55",defense:"75","sp atk":"60","sp def":"75",speed:"30",types:["Normal"]}],exp:[{"base exp":"77"}]},{pokemon:[{Pokemon:"Koffing"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"40",attack:"65",defense:"95","sp atk":"60","sp def":"45",speed:"35",types:["Poison"]}],exp:[{"base exp":"68"}]},{pokemon:[{Pokemon:"Weezing"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"65",attack:"90",defense:"120","sp atk":"85","sp def":"70",speed:"60",types:["Poison"]}],exp:[{"base exp":"172"}]},{pokemon:[{Pokemon:"Rhyhorn"}],stats:[{"catch rate":"120","growth rate":"Slow",hp:"80",attack:"85",defense:"95","sp atk":"30","sp def":"30",speed:"25",types:["Ground","Rock"]}],exp:[{"base exp":"69"}]},{pokemon:[{Pokemon:"Rhydon"}],stats:[{"catch rate":"60","growth rate":"Slow",hp:"105",attack:"130",defense:"120","sp atk":"45","sp def":"45",speed:"40",types:["Ground","Rock"]}],exp:[{"base exp":"170"}]},{pokemon:[{Pokemon:"Chansey"}],stats:[{"catch rate":"30","growth rate":"Fast",hp:"250",attack:"5",defense:"5","sp atk":"35","sp def":"105",speed:"50",types:["Normal"]}],exp:[{"base exp":"395"}]},{pokemon:[{Pokemon:"Tangela"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"55",defense:"115","sp atk":"100","sp def":"40",speed:"60",types:["Grass"]}],exp:[{"base exp":"87"}]},{pokemon:[{Pokemon:"Kangaskhan"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"105",attack:"95",defense:"80","sp atk":"40","sp def":"80",speed:"90",types:["Normal"]}],exp:[{"base exp":"172"}]},{pokemon:[{Pokemon:"Horsea"}],stats:[{"catch rate":"225","growth rate":"Medium Fast",hp:"30",attack:"40",defense:"70","sp atk":"70","sp def":"25",speed:"60",types:["Water"]}],exp:[{"base exp":"59"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/horsea.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/horsea.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/horsea.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/horsea.gif"}}},{pokemon:[{Pokemon:"Seadra"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"55",attack:"65",defense:"95","sp atk":"95","sp def":"45",speed:"85",types:["Water"]}],exp:[{"base exp":"154"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/seadra.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/seadra.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/seadra.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/seadra.gif"}}},{pokemon:[{Pokemon:"Goldeen"}],stats:[{"catch rate":"225","growth rate":"Medium Fast",hp:"45",attack:"67",defense:"60","sp atk":"35","sp def":"50",speed:"63",types:["Water"]}],exp:[{"base exp":"64"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/goldeen.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/goldeen.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/goldeen.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/goldeen.gif"}}},{pokemon:[{Pokemon:"Seaking"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"80",attack:"92",defense:"65","sp atk":"65","sp def":"80",speed:"68",types:["Water"]}],exp:[{"base exp":"158"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/seaking.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/seaking.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/seaking.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/seaking.gif"}}},{pokemon:[{Pokemon:"Staryu"}],stats:[{"catch rate":"225","growth rate":"Slow",hp:"30",attack:"45",defense:"55","sp atk":"70","sp def":"55",speed:"85",types:["Water"]}],exp:[{"base exp":"68"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/staryu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/staryu.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/staryu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/staryu.gif"}}},{pokemon:[{Pokemon:"Starmie"}],stats:[{"catch rate":"60","growth rate":"Slow",hp:"60",attack:"75",defense:"85","sp atk":"100","sp def":"85",speed:"115",types:["Water","Psychic"]}],exp:[{"base exp":"182"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/starmie.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/starmie.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/starmie.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/starmie.gif"}}},{pokemon:[{Pokemon:"Mr. Mime"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"40",attack:"45",defense:"65","sp atk":"100","sp def":"120",speed:"90",types:["Psychic","Fairy"]}],exp:[{"base exp":"161"}]},{pokemon:[{Pokemon:"Scyther"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"70",attack:"110",defense:"80","sp atk":"55","sp def":"80",speed:"105",types:["Bug","Flying"]}],exp:[{"base exp":"100"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/scyther.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/scyther.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/scyther.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/scyther.gif"}}},{pokemon:[{Pokemon:"Jynx"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"50",defense:"35","sp atk":"115","sp def":"95",speed:"95",types:["Ice","Psychic"]}],exp:[{"base exp":"159"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/jynx.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/jynx.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/jynx.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/jynx.gif"}}},{pokemon:[{Pokemon:"Electabuzz"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"83",defense:"57","sp atk":"95","sp def":"85",speed:"105",types:["Electric"]}],exp:[{"base exp":"172"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/electabuzz.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/electabuzz.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/electabuzz.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/electabuzz.gif"}}},{pokemon:[{Pokemon:"Magmar"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"95",defense:"57","sp atk":"100","sp def":"85",speed:"93",types:["Fire"]}],exp:[{"base exp":"173"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/magmar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/magmar.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/magmar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/magmar.gif"}}},{pokemon:[{Pokemon:"Pinsir"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"65",attack:"125",defense:"100","sp atk":"55","sp def":"70",speed:"85",types:["Bug"]}],exp:[{"base exp":"175"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/pinsir.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/pinsir.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/pinsir.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/pinsir.gif"}}},{pokemon:[{Pokemon:"Tauros"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"75",attack:"100",defense:"95","sp atk":"40","sp def":"70",speed:"110",types:["Normal"]}],exp:[{"base exp":"172"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/tauros.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/tauros.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/tauros.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/tauros.gif"}}},{pokemon:[{Pokemon:"Magikarp"}],stats:[{"catch rate":"255","growth rate":"Slow",hp:"20",attack:"10",defense:"55","sp atk":"15","sp def":"20",speed:"80",types:["Water"]}],exp:[{"base exp":"40"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/magikarp.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/magikarp.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/magikarp.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/magikarp.gif"}}},{pokemon:[{Pokemon:"Gyarados"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"95",attack:"125",defense:"79","sp atk":"60","sp def":"100",speed:"81",types:["Water","Flying"]}],exp:[{"base exp":"189"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/gyarados.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/gyarados.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/gyarados.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/gyarados.gif"}}},{pokemon:[{Pokemon:"Lapras"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"130",attack:"85",defense:"80","sp atk":"85","sp def":"95",speed:"60",types:["Water","Ice"]}],exp:[{"base exp":"187"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/lapras.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/lapras.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/lapras.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/lapras.gif"}}},{pokemon:[{Pokemon:"Ditto"}],stats:[{"catch rate":"35","growth rate":"Medium Fast",hp:"48",attack:"48",defense:"48","sp atk":"48","sp def":"48",speed:"48",types:["Normal"]}],exp:[{"base exp":"101"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/ditto.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/ditto.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/ditto.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/ditto.gif"}}},{pokemon:[{Pokemon:"Eevee"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"55",attack:"55",defense:"50","sp atk":"45","sp def":"65",speed:"55",types:["Normal"]}],exp:[{"base exp":"65"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/eevee.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/eevee.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/eevee.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/eevee.gif"}}},{pokemon:[{Pokemon:"Vaporeon"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"130",attack:"65",defense:"60","sp atk":"110","sp def":"95",speed:"65",types:["Water"]}],exp:[{"base exp":"184"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/vaporeon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/vaporeon.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/vaporeon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/vaporeon.gif"}}},{pokemon:[{Pokemon:"Jolteon"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"65",defense:"60","sp atk":"110","sp def":"95",speed:"130",types:["Electric"]}],exp:[{"base exp":"184"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/jolteon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/jolteon.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/jolteon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/jolteon.gif"}}},{pokemon:[{Pokemon:"Flareon"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"130",defense:"60","sp atk":"95","sp def":"110",speed:"65",types:["Fire"]}],exp:[{"base exp":"184"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/flareon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/flareon.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/flareon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/flareon.gif"}}},{pokemon:[{Pokemon:"Porygon"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"60",defense:"70","sp atk":"85","sp def":"75",speed:"40",types:["Normal"]}],exp:[{"base exp":"79"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/porygon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/porygon.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/porygon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/porygon.gif"}}},{pokemon:[{Pokemon:"Omanyte"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"35",attack:"40",defense:"100","sp atk":"90","sp def":"55",speed:"35",types:["Rock","Water"]}],exp:[{"base exp":"71"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/omanyte.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/omanyte.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/omanyte.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/omanyte.gif"}}},{pokemon:[{Pokemon:"Omastar"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"70",attack:"60",defense:"125","sp atk":"115","sp def":"70",speed:"55",types:["Rock","Water"]}],exp:[{"base exp":"173"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/omastar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/omastar.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/omastar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/omastar.gif"}}},{pokemon:[{Pokemon:"Kabuto"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"30",attack:"80",defense:"90","sp atk":"55","sp def":"45",speed:"55",types:["Rock","Water"]}],exp:[{"base exp":"71"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/kabuto.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/kabuto.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/kabuto.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/kabuto.gif"}}},{pokemon:[{Pokemon:"Kabutops"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"60",attack:"115",defense:"105","sp atk":"65","sp def":"70",speed:"80",types:["Rock","Water"]}],exp:[{"base exp":"173"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/kabutops.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/kabutops.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/kabutops.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/kabutops.gif"}}},{pokemon:[{Pokemon:"Aerodactyl"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"80",attack:"105",defense:"65","sp atk":"60","sp def":"75",speed:"130",types:["Rock","Flying"]}],exp:[{"base exp":"180"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/aerodactyl.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/aerodactyl.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/aerodactyl.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/aerodactyl.gif"}}},{pokemon:[{Pokemon:"Snorlax"}],stats:[{"catch rate":"25","growth rate":"Slow",hp:"160",attack:"110",defense:"65","sp atk":"65","sp def":"110",speed:"30",types:["Normal"]}],exp:[{"base exp":"189"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/snorlax.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/snorlax.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/snorlax.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/snorlax.gif"}}},{pokemon:[{Pokemon:"Articuno"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"90",attack:"85",defense:"100","sp atk":"95","sp def":"125",speed:"85",types:["Ice","Flying"]}],exp:[{"base exp":"261"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/articuno.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/articuno.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/articuno.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/articuno.gif"}}},{pokemon:[{Pokemon:"Zapdos"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"90",attack:"90",defense:"85","sp atk":"125","sp def":"90",speed:"100",types:["Electric","Flying"]}],exp:[{"base exp":"261"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/zapdos.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/zapdos.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/zapdos.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/zapdos.gif"}}},{pokemon:[{Pokemon:"Moltres"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"90",attack:"100",defense:"90","sp atk":"125","sp def":"85",speed:"90",types:["Fire","Flying"]}],exp:[{"base exp":"261"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/moltres.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/moltres.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/moltres.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/moltres.gif"}}},{pokemon:[{Pokemon:"Dratini"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"41",attack:"64",defense:"45","sp atk":"50","sp def":"50",speed:"50",types:["Dragon"]}],exp:[{"base exp":"60"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/dratini.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/dratini.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/dratini.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/dratini.gif"}}},{pokemon:[{Pokemon:"Dragonair"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"61",attack:"84",defense:"65","sp atk":"70","sp def":"70",speed:"70",types:["Dragon"]}],exp:[{"base exp":"147"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/dragonair.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/dragonair.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/dragonair.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/dragonair.gif"}}},{pokemon:[{Pokemon:"Dragonite"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"91",attack:"134",defense:"95","sp atk":"100","sp def":"100",speed:"80",types:["Dragon","Flying"]}],exp:[{"base exp":"270"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/dragonite.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/dragonite.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/dragonite.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/dragonite.gif"}}},{pokemon:[{Pokemon:"Mewtwo"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"106",attack:"110",defense:"90","sp atk":"154","sp def":"90",speed:"130",types:["Psychic"]}],exp:[{"base exp":"306"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/mewtwo.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/mewtwo.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/mewtwo.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/mewtwo.gif"}}},{pokemon:[{Pokemon:"Mew"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"100",attack:"100",defense:"100","sp atk":"100","sp def":"100",speed:"100",types:["Psychic"]}],exp:[{"base exp":"270"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/mew.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/mew.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/mew.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/mew.gif"}}},{pokemon:[{Pokemon:"Chikorita"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"45",attack:"49",defense:"65","sp atk":"49","sp def":"65",speed:"45",types:["Grass"]}],exp:[{"base exp":"64"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/chikorita.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/chikorita.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/chikorita.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/chikorita.gif"}}},{pokemon:[{Pokemon:"Bayleef"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"60",attack:"62",defense:"80","sp atk":"63","sp def":"80",speed:"60",types:["Grass"]}],exp:[{"base exp":"142"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/bayleef.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/bayleef.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/bayleef.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/bayleef.gif"}}},{pokemon:[{Pokemon:"Meganium"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"80",attack:"82",defense:"100","sp atk":"83","sp def":"100",speed:"80",types:["Grass"]}],exp:[{"base exp":"236"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/meganium.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/meganium.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/meganium.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/meganium.gif"}}},{pokemon:[{Pokemon:"Cyndaquil"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"39",attack:"52",defense:"43","sp atk":"60","sp def":"50",speed:"65",types:["Fire"]}],exp:[{"base exp":"62"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/cyndaquil.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/cyndaquil.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/cyndaquil.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/cyndaquil.gif"}}},{pokemon:[{Pokemon:"Quilava"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"58",attack:"64",defense:"58","sp atk":"80","sp def":"65",speed:"80",types:["Fire"]}],exp:[{"base exp":"142"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/quilava.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/quilava.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/quilava.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/quilava.gif"}}},{pokemon:[{Pokemon:"Typhlosion"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"78",attack:"84",defense:"78","sp atk":"109","sp def":"85",speed:"100",types:["Fire"]}],exp:[{"base exp":"240"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/typhlosion.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/typhlosion.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/typhlosion.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/typhlosion.gif"}}},{pokemon:[{Pokemon:"Totodile"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"50",attack:"65",defense:"64","sp atk":"44","sp def":"48",speed:"43",types:["Water"]}],exp:[{"base exp":"63"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/totodile.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/totodile.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/totodile.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/totodile.gif"}}},{pokemon:[{Pokemon:"Croconaw"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"65",attack:"80",defense:"80","sp atk":"59","sp def":"63",speed:"58",types:["Water"]}],exp:[{"base exp":"142"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/croconaw.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/croconaw.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/croconaw.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/croconaw.gif"}}},{pokemon:[{Pokemon:"Feraligatr"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"85",attack:"105",defense:"100","sp atk":"79","sp def":"83",speed:"78",types:["Water"]}],exp:[{"base exp":"239"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/feraligatr.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/feraligatr.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/feraligatr.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/feraligatr.gif"}}},{pokemon:[{Pokemon:"Sentret"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"35",attack:"46",defense:"34","sp atk":"35","sp def":"45",speed:"20",types:["Normal"]}],exp:[{"base exp":"43"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/sentret.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/sentret.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/sentret.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/sentret.gif"}}},{pokemon:[{Pokemon:"Furret"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"85",attack:"76",defense:"64","sp atk":"45","sp def":"55",speed:"90",types:["Normal"]}],exp:[{"base exp":"145"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/furret.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/furret.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/furret.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/furret.gif"}}},{pokemon:[{Pokemon:"Hoothoot"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"60",attack:"30",defense:"30","sp atk":"36","sp def":"56",speed:"50",types:["Normal","Flying"]}],exp:[{"base exp":"52"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/hoothoot.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/hoothoot.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/hoothoot.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/hoothoot.gif"}}},{pokemon:[{Pokemon:"Noctowl"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"100",attack:"50",defense:"50","sp atk":"76","sp def":"96",speed:"70",types:["Normal","Flying"]}],exp:[{"base exp":"155"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/noctowl.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/noctowl.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/noctowl.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/noctowl.gif"}}},{pokemon:[{Pokemon:"Ledyba"}],stats:[{"catch rate":"255","growth rate":"Fast",hp:"40",attack:"20",defense:"30","sp atk":"40","sp def":"80",speed:"55",types:["Bug","Flying"]}],exp:[{"base exp":"53"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/ledyba.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/ledyba.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/ledyba.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/ledyba.gif"}}},{pokemon:[{Pokemon:"Ledian"}],stats:[{"catch rate":"90","growth rate":"Fast",hp:"55",attack:"35",defense:"50","sp atk":"55","sp def":"110",speed:"85",types:["Bug","Flying"]}],exp:[{"base exp":"137"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/ledian.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/ledian.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/ledian.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/ledian.gif"}}},{pokemon:[{Pokemon:"Spinarak"}],stats:[{"catch rate":"255","growth rate":"Fast",hp:"40",attack:"60",defense:"40","sp atk":"40","sp def":"40",speed:"30",types:["Bug","Poison"]}],exp:[{"base exp":"50"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/spinarak.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/spinarak.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/spinarak.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/spinarak.gif"}}},{pokemon:[{Pokemon:"Ariados"}],stats:[{"catch rate":"90","growth rate":"Fast",hp:"70",attack:"90",defense:"70","sp atk":"60","sp def":"60",speed:"40",types:["Bug","Poison"]}],exp:[{"base exp":"137"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/ariados.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/ariados.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/ariados.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/ariados.gif"}}},{pokemon:[{Pokemon:"Crobat"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"85",attack:"90",defense:"80","sp atk":"70","sp def":"80",speed:"130",types:["Poison","Flying"]}],exp:[{"base exp":"241"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/crobat.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/crobat.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/crobat.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/crobat.gif"}}},{pokemon:[{Pokemon:"Chinchou"}],stats:[{"catch rate":"190","growth rate":"Slow",hp:"75",attack:"38",defense:"38","sp atk":"56","sp def":"56",speed:"67",types:["Water","Electric"]}],exp:[{"base exp":"66"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/chinchou.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/chinchou.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/chinchou.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/chinchou.gif"}}},{pokemon:[{Pokemon:"Lanturn"}],stats:[{"catch rate":"75","growth rate":"Slow",hp:"125",attack:"58",defense:"58","sp atk":"76","sp def":"76",speed:"67",types:["Water","Electric"]}],exp:[{"base exp":"161"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/lanturn.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/lanturn.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/lanturn.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/lanturn.gif"}}},{pokemon:[{Pokemon:"Pichu"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"20",attack:"40",defense:"15","sp atk":"35","sp def":"35",speed:"60",types:["Electric"]}],exp:[{"base exp":"41"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/pichu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/pichu.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/pichu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/pichu.gif"}}},{pokemon:[{Pokemon:"Cleffa"}],stats:[{"catch rate":"150","growth rate":"Fast",hp:"50",attack:"25",defense:"28","sp atk":"45","sp def":"55",speed:"15",types:["Fairy"]}],exp:[{"base exp":"44"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/cleffa.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/cleffa.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/cleffa.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/cleffa.gif"}}},{pokemon:[{Pokemon:"Igglybuff"}],stats:[{"catch rate":"170","growth rate":"Fast",hp:"90",attack:"30",defense:"15","sp atk":"40","sp def":"20",speed:"15",types:["Normal","Fairy"]}],exp:[{"base exp":"42"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/igglybuff.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/igglybuff.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/igglybuff.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/igglybuff.gif"}}},{pokemon:[{Pokemon:"Togepi"}],stats:[{"catch rate":"190","growth rate":"Fast",hp:"35",attack:"20",defense:"65","sp atk":"40","sp def":"65",speed:"20",types:["Fairy"]}],exp:[{"base exp":"49"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/togepi.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/togepi.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/togepi.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/togepi.gif"}}},{pokemon:[{Pokemon:"Togetic"}],stats:[{"catch rate":"75","growth rate":"Fast",hp:"55",attack:"40",defense:"85","sp atk":"80","sp def":"105",speed:"40",types:["Fairy","Flying"]}],exp:[{"base exp":"142"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/togetic.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/togetic.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/togetic.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/togetic.gif"}}},{pokemon:[{Pokemon:"Natu"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"40",attack:"50",defense:"45","sp atk":"70","sp def":"45",speed:"70",types:["Psychic","Flying"]}],exp:[{"base exp":"64"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/natu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/natu.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/natu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/natu.gif"}}},{pokemon:[{Pokemon:"Xatu"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"65",attack:"75",defense:"70","sp atk":"95","sp def":"70",speed:"95",types:["Psychic","Flying"]}],exp:[{"base exp":"165"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/xatu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/xatu.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/xatu.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/xatu.gif"}}},{pokemon:[{Pokemon:"Mareep"}],stats:[{"catch rate":"235","growth rate":"Medium Slow",hp:"55",attack:"40",defense:"40","sp atk":"65","sp def":"45",speed:"35",types:["Electric"]}],exp:[{"base exp":"56"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/mareep.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/mareep.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/mareep.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/mareep.gif"}}},{pokemon:[{Pokemon:"Flaaffy"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"70",attack:"55",defense:"55","sp atk":"80","sp def":"60",speed:"45",types:["Electric"]}],exp:[{"base exp":"128"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/flaaffy.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/flaaffy.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/flaaffy.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/flaaffy.gif"}}},{pokemon:[{Pokemon:"Ampharos"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"90",attack:"75",defense:"85","sp atk":"115","sp def":"90",speed:"55",types:["Electric"]}],exp:[{"base exp":"230"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/ampharos.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/ampharos.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/ampharos.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/ampharos.gif"}}},{pokemon:[{Pokemon:"Bellossom"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"75",attack:"80",defense:"95","sp atk":"90","sp def":"100",speed:"50",types:["Grass"]}],exp:[{"base exp":"221"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/bellossom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/bellossom.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/bellossom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/bellossom.gif"}}},{pokemon:[{Pokemon:"Marill"}],stats:[{"catch rate":"190","growth rate":"Fast",hp:"70",attack:"20",defense:"50","sp atk":"20","sp def":"50",speed:"40",types:["Water","Fairy"]}],exp:[{"base exp":"88"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/marill.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/marill.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/marill.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/marill.gif"}}},{pokemon:[{Pokemon:"Azumarill"}],stats:[{"catch rate":"75","growth rate":"Fast",hp:"100",attack:"50",defense:"80","sp atk":"60","sp def":"80",speed:"50",types:["Water","Fairy"]}],exp:[{"base exp":"189"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/azumarill.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/azumarill.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/azumarill.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/azumarill.gif"}}},{pokemon:[{Pokemon:"Sudowoodo"}],stats:[{"catch rate":"65","growth rate":"Medium Fast",hp:"70",attack:"100",defense:"115","sp atk":"30","sp def":"65",speed:"30",types:["Rock"]}],exp:[{"base exp":"144"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/sudowoodo.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/sudowoodo.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/sudowoodo.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/sudowoodo.gif"}}},{pokemon:[{Pokemon:"Politoed"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"90",attack:"75",defense:"75","sp atk":"90","sp def":"100",speed:"70",types:["Water"]}],exp:[{"base exp":"225"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/politoed.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/politoed.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/politoed.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/politoed.gif"}}},{pokemon:[{Pokemon:"Hoppip"}],stats:[{"catch rate":"255","growth rate":"Medium Slow",hp:"35",attack:"35",defense:"40","sp atk":"35","sp def":"55",speed:"50",types:["Grass","Flying"]}],exp:[{"base exp":"50"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/hoppip.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/hoppip.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/hoppip.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/hoppip.gif"}}},{pokemon:[{Pokemon:"Skiploom"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"55",attack:"45",defense:"50","sp atk":"45","sp def":"65",speed:"80",types:["Grass","Flying"]}],exp:[{"base exp":"119"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/skiploom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/skiploom.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/skiploom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/skiploom.gif"}}},{pokemon:[{Pokemon:"Jumpluff"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"75",attack:"55",defense:"70","sp atk":"55","sp def":"95",speed:"110",types:["Grass","Flying"]}],exp:[{"base exp":"207"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/jumpluff.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/jumpluff.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/jumpluff.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/jumpluff.gif"}}},{pokemon:[{Pokemon:"Aipom"}],stats:[{"catch rate":"45","growth rate":"Fast",hp:"55",attack:"70",defense:"55","sp atk":"40","sp def":"55",speed:"85",types:["Normal"]}],exp:[{"base exp":"72"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/aipom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/aipom.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/aipom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/aipom.gif"}}},{pokemon:[{Pokemon:"Sunkern"}],stats:[{"catch rate":"235","growth rate":"Medium Slow",hp:"30",attack:"30",defense:"30","sp atk":"30","sp def":"30",speed:"30",types:["Grass"]}],exp:[{"base exp":"36"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/sunkern.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/sunkern.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/sunkern.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/sunkern.gif"}}},{pokemon:[{Pokemon:"Sunflora"}],stats:[{"catch rate":"120","growth rate":"Medium Slow",hp:"75",attack:"75",defense:"55","sp atk":"105","sp def":"85",speed:"30",types:["Grass"]}],exp:[{"base exp":"149"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/sunflora.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/sunflora.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/sunflora.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/sunflora.gif"}}},{pokemon:[{Pokemon:"Yanma"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"65",attack:"65",defense:"45","sp atk":"75","sp def":"45",speed:"95",types:["Bug","Flying"]}],exp:[{"base exp":"78"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/yanma.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/yanma.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/yanma.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/yanma.gif"}}},{pokemon:[{Pokemon:"Wooper"}],stats:[{"catch rate":"255","growth rate":"Medium Fast",hp:"55",attack:"45",defense:"45","sp atk":"25","sp def":"25",speed:"15",types:["Water","Ground"]}],exp:[{"base exp":"42"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/wooper.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/wooper.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/wooper.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/wooper.gif"}}},{pokemon:[{Pokemon:"Quagsire"}],stats:[{"catch rate":"90","growth rate":"Medium Fast",hp:"95",attack:"85",defense:"85","sp atk":"65","sp def":"65",speed:"35",types:["Water","Ground"]}],exp:[{"base exp":"151"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/quagsire.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/quagsire.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/quagsire.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/quagsire.gif"}}},{pokemon:[{Pokemon:"Espeon"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"65",defense:"60","sp atk":"130","sp def":"95",speed:"110",types:["Psychic"]}],exp:[{"base exp":"184"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/espeon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/espeon.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/espeon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/espeon.gif"}}},{pokemon:[{Pokemon:"Umbreon"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"95",attack:"65",defense:"110","sp atk":"60","sp def":"130",speed:"65",types:["Dark"]}],exp:[{"base exp":"184"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/umbreon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/umbreon.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/umbreon.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/umbreon.gif"}}},{pokemon:[{Pokemon:"Murkrow"}],stats:[{"catch rate":"30","growth rate":"Medium Slow",hp:"60",attack:"85",defense:"42","sp atk":"85","sp def":"42",speed:"91",types:["Dark","Flying"]}],exp:[{"base exp":"81"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/murkrow.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/murkrow.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/murkrow.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/murkrow.gif"}}},{pokemon:[{Pokemon:"Slowking"}],stats:[{"catch rate":"70","growth rate":"Medium Fast",hp:"95",attack:"75",defense:"80","sp atk":"100","sp def":"110",speed:"30",types:["Water","Psychic"]}],exp:[{"base exp":"172"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/slowking.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/slowking.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/slowking.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/slowking.gif"}}},{pokemon:[{Pokemon:"Misdreavus"}],stats:[{"catch rate":"45","growth rate":"Fast",hp:"60",attack:"60",defense:"60","sp atk":"85","sp def":"85",speed:"85",types:["Ghost"]}],exp:[{"base exp":"87"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/misdreavus.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/misdreavus.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/misdreavus.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/misdreavus.gif"}}},{pokemon:[{Pokemon:"Unown"}],stats:[{"catch rate":"225","growth rate":"Medium Fast",hp:"48",attack:"72",defense:"48","sp atk":"72","sp def":"48",speed:"48",types:["Psychic"]}],exp:[{"base exp":"118"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/unown.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/unown.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/unown.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/unown.gif"}}},{pokemon:[{Pokemon:"Wobbuffet"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"190",attack:"33",defense:"58","sp atk":"33","sp def":"58",speed:"33",types:["Psychic"]}],exp:[{"base exp":"142"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/wobbuffet.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/wobbuffet.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/wobbuffet.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/wobbuffet.gif"}}},{pokemon:[{Pokemon:"Girafarig"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"70",attack:"80",defense:"65","sp atk":"90","sp def":"65",speed:"85",types:["Normal","Psychic"]}],exp:[{"base exp":"159"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/girafarig.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/girafarig.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/girafarig.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/girafarig.gif"}}},{pokemon:[{Pokemon:"Pineco"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"50",attack:"65",defense:"90","sp atk":"35","sp def":"35",speed:"15",types:["Bug"]}],exp:[{"base exp":"58"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/pineco.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/pineco.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/pineco.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/pineco.gif"}}},{pokemon:[{Pokemon:"Forretress"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"75",attack:"90",defense:"140","sp atk":"60","sp def":"60",speed:"40",types:["Bug","Steel"]}],exp:[{"base exp":"163"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/forretress.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/forretress.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/forretress.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/forretress.gif"}}},{pokemon:[{Pokemon:"Dunsparce"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"100",attack:"70",defense:"70","sp atk":"65","sp def":"65",speed:"45",types:["Normal"]}],exp:[{"base exp":"145"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/dunsparce.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/dunsparce.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/dunsparce.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/dunsparce.gif"}}},{pokemon:[{Pokemon:"Gligar"}],stats:[{"catch rate":"60","growth rate":"Medium Slow",hp:"65",attack:"75",defense:"105","sp atk":"35","sp def":"65",speed:"85",types:["Ground","Flying"]}],exp:[{"base exp":"86"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/gligar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/gligar.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/gligar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/gligar.gif"}}},{pokemon:[{Pokemon:"Steelix"}],stats:[{"catch rate":"25","growth rate":"Medium Fast",hp:"75",attack:"85",defense:"200","sp atk":"55","sp def":"65",speed:"30",types:["Steel","Ground"]}],exp:[{"base exp":"179"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/steelix.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/steelix.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/steelix.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/steelix.gif"}}},{pokemon:[{Pokemon:"Snubbull"}],stats:[{"catch rate":"190","growth rate":"Fast",hp:"60",attack:"80",defense:"50","sp atk":"40","sp def":"40",speed:"30",types:["Fairy"]}],exp:[{"base exp":"60"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/snubbull.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/snubbull.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/snubbull.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/snubbull.gif"}}},{pokemon:[{Pokemon:"Granbull"}],stats:[{"catch rate":"75","growth rate":"Fast",hp:"90",attack:"120",defense:"75","sp atk":"60","sp def":"60",speed:"45",types:["Fairy"]}],exp:[{"base exp":"158"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/granbull.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/granbull.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/granbull.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/granbull.gif"}}},{pokemon:[{Pokemon:"Qwilfish"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"65",attack:"95",defense:"75","sp atk":"55","sp def":"55",speed:"85",types:["Water","Poison"]}],exp:[{"base exp":"86"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/qwilfish.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/qwilfish.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/qwilfish.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/qwilfish.gif"}}},{pokemon:[{Pokemon:"Scizor"}],stats:[{"catch rate":"25","growth rate":"Medium Fast",hp:"70",attack:"130",defense:"100","sp atk":"55","sp def":"80",speed:"65",types:["Bug","Steel"]}],exp:[{"base exp":"175"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/scizor.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/scizor.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/scizor.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/scizor.gif"}}},{pokemon:[{Pokemon:"Shuckle"}],stats:[{"catch rate":"190","growth rate":"Medium Slow",hp:"20",attack:"10",defense:"230","sp atk":"10","sp def":"230",speed:"5",types:["Bug","Rock"]}],exp:[{"base exp":"177"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/shuckle.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/shuckle.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/shuckle.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/shuckle.gif"}}},{pokemon:[{Pokemon:"Heracross"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"80",attack:"125",defense:"75","sp atk":"40","sp def":"95",speed:"85",types:["Bug","Fighting"]}],exp:[{"base exp":"175"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/heracross.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/heracross.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/heracross.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/heracross.gif"}}},{pokemon:[{Pokemon:"Sneasel"}],stats:[{"catch rate":"60","growth rate":"Medium Slow",hp:"55",attack:"95",defense:"55","sp atk":"35","sp def":"75",speed:"115",types:["Dark","Ice"]}],exp:[{"base exp":"86"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/sneasel.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/sneasel.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/sneasel.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/sneasel.gif"}}},{pokemon:[{Pokemon:"Teddiursa"}],stats:[{"catch rate":"120","growth rate":"Medium Fast",hp:"60",attack:"80",defense:"50","sp atk":"50","sp def":"50",speed:"40",types:["Normal"]}],exp:[{"base exp":"66"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/teddiursa.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/teddiursa.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/teddiursa.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/teddiursa.gif"}}},{pokemon:[{Pokemon:"Ursaring"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"90",attack:"130",defense:"75","sp atk":"75","sp def":"75",speed:"55",types:["Normal"]}],exp:[{"base exp":"175"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/ursaring.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/ursaring.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/ursaring.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/ursaring.gif"}}},{pokemon:[{Pokemon:"Slugma"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"40",attack:"40",defense:"40","sp atk":"70","sp def":"40",speed:"20",types:["Fire"]}],exp:[{"base exp":"50"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/slugma.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/slugma.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/slugma.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/slugma.gif"}}},{pokemon:[{Pokemon:"Magcargo"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"50",attack:"50",defense:"120","sp atk":"80","sp def":"80",speed:"30",types:["Fire","Rock"]}],exp:[{"base exp":"144"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/magcargo.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/magcargo.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/magcargo.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/magcargo.gif"}}},{pokemon:[{Pokemon:"Swinub"}],stats:[{"catch rate":"225","growth rate":"Slow",hp:"50",attack:"50",defense:"40","sp atk":"30","sp def":"30",speed:"50",types:["Ice","Ground"]}],exp:[{"base exp":"50"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/swinub.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/swinub.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/swinub.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/swinub.gif"}}},{pokemon:[{Pokemon:"Piloswine"}],stats:[{"catch rate":"75","growth rate":"Slow",hp:"100",attack:"100",defense:"80","sp atk":"60","sp def":"60",speed:"50",types:["Ice","Ground"]}],exp:[{"base exp":"158"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/piloswine.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/piloswine.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/piloswine.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/piloswine.gif"}}},{pokemon:[{Pokemon:"Corsola"}],stats:[{"catch rate":"60","growth rate":"Fast",hp:"55",attack:"55",defense:"85","sp atk":"65","sp def":"85",speed:"35",types:["Water","Rock"]}],exp:[{"base exp":"133"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/corsola.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/corsola.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/corsola.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/corsola.gif"}}},{pokemon:[{Pokemon:"Remoraid"}],stats:[{"catch rate":"190","growth rate":"Medium Fast",hp:"35",attack:"65",defense:"35","sp atk":"65","sp def":"35",speed:"65",types:["Water"]}],exp:[{"base exp":"60"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/remoraid.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/remoraid.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/remoraid.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/remoraid.gif"}}},{pokemon:[{Pokemon:"Octillery"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"75",attack:"105",defense:"75","sp atk":"105","sp def":"75",speed:"45",types:["Water"]}],exp:[{"base exp":"168"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/octillery.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/octillery.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/octillery.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/octillery.gif"}}},{pokemon:[{Pokemon:"Delibird"}],stats:[{"catch rate":"45","growth rate":"Fast",hp:"45",attack:"55",defense:"45","sp atk":"65","sp def":"45",speed:"75",types:["Ice","Flying"]}],exp:[{"base exp":"116"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/delibird.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/delibird.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/delibird.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/delibird.gif"}}},{pokemon:[{Pokemon:"Mantine"}],stats:[{"catch rate":"25","growth rate":"Slow",hp:"65",attack:"40",defense:"70","sp atk":"80","sp def":"140",speed:"70",types:["Water","Flying"]}],exp:[{"base exp":"163"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/mantine.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/mantine.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/mantine.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/mantine.gif"}}},{pokemon:[{Pokemon:"Skarmory"}],stats:[{"catch rate":"25","growth rate":"Slow",hp:"65",attack:"80",defense:"140","sp atk":"40","sp def":"70",speed:"70",types:["Steel","Flying"]}],exp:[{"base exp":"163"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/skarmory.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/skarmory.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/skarmory.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/skarmory.gif"}}},{pokemon:[{Pokemon:"Houndour"}],stats:[{"catch rate":"120","growth rate":"Slow",hp:"45",attack:"60",defense:"30","sp atk":"80","sp def":"50",speed:"65",types:["Dark","Fire"]}],exp:[{"base exp":"66"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/houndour.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/houndour.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/houndour.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/houndour.gif"}}},{pokemon:[{Pokemon:"Houndoom"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"75",attack:"90",defense:"50","sp atk":"110","sp def":"80",speed:"95",types:["Dark","Fire"]}],exp:[{"base exp":"175"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/houndoom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/houndoom.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/houndoom.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/houndoom.gif"}}},{pokemon:[{Pokemon:"Kingdra"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"75",attack:"95",defense:"95","sp atk":"95","sp def":"95",speed:"85",types:["Water","Dragon"]}],exp:[{"base exp":"243"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/kingdra.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/kingdra.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/kingdra.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/kingdra.gif"}}},{pokemon:[{Pokemon:"Phanpy"}],stats:[{"catch rate":"120","growth rate":"Medium Fast",hp:"90",attack:"60",defense:"60","sp atk":"40","sp def":"40",speed:"40",types:["Ground"]}],exp:[{"base exp":"66"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/phanpy.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/phanpy.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/phanpy.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/phanpy.gif"}}},{pokemon:[{Pokemon:"Donphan"}],stats:[{"catch rate":"60","growth rate":"Medium Fast",hp:"90",attack:"120",defense:"120","sp atk":"60","sp def":"60",speed:"50",types:["Ground"]}],exp:[{"base exp":"175"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/donphan.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/donphan.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/donphan.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/donphan.gif"}}},{pokemon:[{Pokemon:"Porygon2"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"85",attack:"80",defense:"90","sp atk":"105","sp def":"95",speed:"60",types:["Normal"]}],exp:[{"base exp":"180"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/porygon2.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/porygon2.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/porygon2.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/porygon2.gif"}}},{pokemon:[{Pokemon:"Stantler"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"73",attack:"95",defense:"62","sp atk":"85","sp def":"65",speed:"85",types:["Normal"]}],exp:[{"base exp":"163"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/stantler.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/stantler.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/stantler.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/stantler.gif"}}},{pokemon:[{Pokemon:"Smeargle"}],stats:[{"catch rate":"45","growth rate":"Fast",hp:"55",attack:"20",defense:"35","sp atk":"20","sp def":"45",speed:"75",types:["Normal"]}],exp:[{"base exp":"88"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/smeargle.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/smeargle.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/smeargle.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/smeargle.gif"}}},{pokemon:[{Pokemon:"Tyrogue"}],stats:[{"catch rate":"75","growth rate":"Medium Fast",hp:"35",attack:"35",defense:"35","sp atk":"35","sp def":"35",speed:"35",types:["Fighting"]}],exp:[{"base exp":"42"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/tyrogue.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/tyrogue.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/tyrogue.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/tyrogue.gif"}}},{pokemon:[{Pokemon:"Hitmontop"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"50",attack:"95",defense:"95","sp atk":"35","sp def":"110",speed:"70",types:["Fighting"]}],exp:[{"base exp":"159"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/hitmontop.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/hitmontop.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/hitmontop.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/hitmontop.gif"}}},{pokemon:[{Pokemon:"Smoochum"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"45",attack:"30",defense:"15","sp atk":"85","sp def":"65",speed:"65",types:["Ice","Psychic"]}],exp:[{"base exp":"61"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/smoochum.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/smoochum.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/smoochum.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/smoochum.gif"}}},{pokemon:[{Pokemon:"Elekid"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"45",attack:"63",defense:"37","sp atk":"65","sp def":"55",speed:"95",types:["Electric"]}],exp:[{"base exp":"72"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/elekid.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/elekid.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/elekid.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/elekid.gif"}}},{pokemon:[{Pokemon:"Magby"}],stats:[{"catch rate":"45","growth rate":"Medium Fast",hp:"45",attack:"75",defense:"37","sp atk":"70","sp def":"55",speed:"83",types:["Fire"]}],exp:[{"base exp":"73"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/magby.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/magby.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/magby.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/magby.gif"}}},{pokemon:[{Pokemon:"Miltank"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"95",attack:"80",defense:"105","sp atk":"40","sp def":"70",speed:"100",types:["Normal"]}],exp:[{"base exp":"172"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/miltank.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/miltank.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/miltank.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/miltank.gif"}}},{pokemon:[{Pokemon:"Blissey"}],stats:[{"catch rate":"30","growth rate":"Fast",hp:"255",attack:"10",defense:"10","sp atk":"75","sp def":"135",speed:"55",types:["Normal"]}],exp:[{"base exp":"608"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/blissey.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/blissey.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/blissey.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/blissey.gif"}}},{pokemon:[{Pokemon:"Raikou"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"90",attack:"85",defense:"75","sp atk":"115","sp def":"100",speed:"115",types:["Electric"]}],exp:[{"base exp":"261"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/raikou.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/raikou.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/raikou.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/raikou.gif"}}},{pokemon:[{Pokemon:"Entei"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"115",attack:"115",defense:"85","sp atk":"90","sp def":"75",speed:"100",types:["Fire"]}],exp:[{"base exp":"261"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/entei.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/entei.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/entei.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/entei.gif"}}},{pokemon:[{Pokemon:"Suicune"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"100",attack:"75",defense:"115","sp atk":"90","sp def":"115",speed:"85",types:["Water"]}],exp:[{"base exp":"261"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/suicune.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/suicune.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/suicune.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/suicune.gif"}}},{pokemon:[{Pokemon:"Larvitar"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"50",attack:"64",defense:"50","sp atk":"45","sp def":"50",speed:"41",types:["Rock","Ground"]}],exp:[{"base exp":"60"}],images:{normal:{front:"https://img.pokemondb.net/sprites/black-white/anim/normal/larvitar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-normal/larvitar.gif"},shiny:{front:"https://img.pokemondb.net/sprites/black-white/anim/shiny/larvitar.gif",back:"https://img.pokemondb.net/sprites/black-white/anim/back-shiny/larvitar.gif"}}},{pokemon:[{Pokemon:"Pupitar"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"70",attack:"84",defense:"70","sp atk":"65","sp def":"70",speed:"51",types:["Rock","Ground"]}],exp:[{"base exp":"144"}]},{pokemon:[{Pokemon:"Tyranitar"}],stats:[{"catch rate":"45","growth rate":"Slow",hp:"100",attack:"134",defense:"110","sp atk":"95","sp def":"100",speed:"61",types:["Rock","Dark"]}],exp:[{"base exp":"270"}]},{pokemon:[{Pokemon:"Lugia"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"106",attack:"90",defense:"130","sp atk":"90","sp def":"154",speed:"110",types:["Psychic","Flying"]}],exp:[{"base exp":"306"}]},{pokemon:[{Pokemon:"Ho-Oh"}],stats:[{"catch rate":"3","growth rate":"Slow",hp:"106",attack:"130",defense:"90","sp atk":"110","sp def":"154",speed:"90",types:["Fire","Flying"]}],exp:[{"base exp":"306"}]},{pokemon:[{Pokemon:"Celebi"}],stats:[{"catch rate":"45","growth rate":"Medium Slow",hp:"100",attack:"100",defense:"100","sp atk":"100","sp def":"100",speed:"100",types:["Psychic","Grass"]}],exp:[{"base exp":"270"}]}];function b(e){return 100*Math.random()0?t:0===t.length&&e.length>0?e:e.length>0&&t.length>0?e.concat(t):[]}function w(e){const t=e.replace(/([A-Z])/g," $1");return t.charAt(0).toUpperCase()+t.slice(1)}function x(e){let t=1,n=!0;const a=setInterval((()=>{t<=.1&&(n=!1),t>=1&&!n&&clearInterval(a),e.style.opacity=t,e.style.filter=`alpha(opacity=${100*t})`,n?t-=.1*t:t+=.1*t}),10)}const v=e=>g.filter((t=>t.pokemon[0].Pokemon===e))[0],P=e=>document.querySelector(e),S={Bulbasaur:{level:"16",to:"Ivysaur"},Ivysaur:{level:"32",to:"Venusaur"},Charmander:{level:"16",to:"Charmeleon"},Charmeleon:{level:"36",to:"Charizard"},Charizard:{level:"100",to:"M-Charizard X"},Squirtle:{level:"16",to:"Wartortle"},Wartortle:{level:"36",to:"Blastoise"},Caterpie:{level:"7",to:"Metapod"},Metapod:{level:"10",to:"Butterfree"},Weedle:{level:"7",to:"Kakuna"},Kakuna:{level:"10",to:"Beedrill"},Pidgey:{level:"18",to:"Pidgeotto"},Pidgeotto:{level:"36",to:"Pidgeot"},Rattata:{level:"20",to:"Raticate"},Spearow:{level:"20",to:"Fearow"},Ekans:{level:"22",to:"Arbok"},Pikachu:{stone:"thunderStone",to:"Raichu"},Sandshrew:{level:"22",to:"Sandslash"},"Nidoran F":{level:"16",to:"Nidorina"},Nidorina:{stone:"moonStone",to:"Nidoqueen"},"Nidoran M":{level:"16",to:"Nidorino"},Nidorino:{stone:"moonStone",to:"Nidoking"},Clefairy:{stone:"moonStone",to:"Clefable"},Vulpix:{stone:"fireStone",to:"Ninetales"},Jigglypuff:{stone:"moonStone",to:"Wigglytuff"},Zubat:{level:"22",to:"Golbat"},Golbat:{level:"45",to:"Crobat"},Oddish:{level:"21",to:"Gloom"},Gloom:{stone:"leafStone",to:"Vileplume"},Paras:{level:"24",to:"Parasect"},Venonat:{level:"31",to:"Venomoth"},Diglett:{level:"26",to:"Dugtrio"},Meowth:{level:"28",to:"Persian"},Psyduck:{level:"33",to:"Golduck"},Mankey:{level:"28",to:"Primeape"},Growlithe:{stone:"fireStone",to:"Arcanine"},Poliwag:{level:"25",to:"Poliwhirl"},Poliwhirl:{stone:"waterStone",to:"Poliwrath"},Abra:{level:"16",to:"Kadabra"},Kadabra:{level:"40",to:"Alakazam"},Machop:{level:"28",to:"Machoke"},Machoke:{level:"40",to:"Machamp"},Bellsprout:{level:"21",to:"Weepinbell"},Weepinbell:{stone:"leafStone",to:"Victreebel"},Tentacool:{level:"30",to:"Tentacruel"},Geodude:{level:"25",to:"Graveler"},Graveler:{level:"40",to:"Golem"},Ponyta:{level:"40",to:"Rapidash"},Slowpoke:{level:"37",to:"Slowbro"},Magnemite:{level:"30",to:"Magneton"},Doduo:{level:"31",to:"Dodrio"},Seel:{level:"34",to:"Dewgong"},Grimer:{level:"38",to:"Muk"},Shellder:{stone:"waterStone",to:"Cloyster"},Gastly:{level:"25",to:"Haunter"},Haunter:{level:"40",to:"Gengar"},Drowzee:{level:"26",to:"Hypno"},Krabby:{level:"28",to:"Kingler"},Voltorb:{level:"30",to:"Electrode"},Exeggcute:{stone:"leafStone",to:"Exeggutor"},Cubone:{level:"28",to:"Marowak"},Koffing:{level:"35",to:"Weezing"},Rhyhorn:{level:"42",to:"Rhydon"},Horsea:{level:"32",to:"Seadra"},Goldeen:{level:"33",to:"Seaking"},Staryu:{stone:"waterStone",to:"Starmie"},Magikarp:{level:"20",to:"Gyarados"},Eevee:{stone:"fireStone",to:"Flareon"},Eevee:{stone:"waterStone",to:"Vaporeon"},Eevee:{stone:"thunderStone",to:"Jolteon"},Omanyte:{level:"40",to:"Omastar"},Kabuto:{level:"40",to:"Kabutops"},Dratini:{level:"30",to:"Dragonair"},Dragonair:{level:"55",to:"Dragonite"},Chikorita:{level:"16",to:"Bayleef"},Bayleef:{level:"32",to:"Meganium"},Cyndaquil:{level:"14",to:"Quilava"},Quilava:{level:"36",to:"Typhlosion"},Totodile:{level:"18",to:"Croconaw"},Croconaw:{level:"30",to:"Feraligatr"},Sentret:{level:"15",to:"Furret"},Hoothoot:{level:"20",to:"Noctowl"},Ledyba:{level:"18",to:"Ledian"},Spinarak:{level:"22",to:"Ariados"},Chinchou:{level:"27",to:"Lanturn"},Pichu:{level:"10",to:"Pikachu"},Cleffa:{level:"10",to:"Clefairy"},Igglybuff:{level:"10",to:"Jigglypuff"},Togepi:{level:"20",to:"Togetic"},Natu:{level:"25",to:"Xatu"},Mareep:{level:"15",to:"Flaaffy"},Flaaffy:{level:"30",to:"Ampharos"},Vileplume:{level:"40",to:"Bellossom"},Poliwrath:{level:"60",to:"Politoad"},Marill:{level:"18",to:"Azumarill"},Hoppip:{level:"18",to:"Skiploom"},Skiploom:{level:"30",to:"Jumpluff"},Sunkern:{level:"25",to:"Sunflora"},Wooper:{level:"20",to:"Quagsire"},Slowbro:{level:"50",to:"Slowking"},Pineco:{level:"31",to:"Forretress"},Onix:{level:"50",to:"Steelix"},Snubbull:{level:"23",to:"Granbull"},Teddiursa:{level:"30",to:"Ursaring"},Slugma:{level:"38",to:"Magcargo"},Swinub:{level:"33",to:"Piloswine"},Remoraid:{level:"25",to:"Octillery"},Houndour:{level:"24",to:"Houndoom"},Phanpy:{level:"25",to:"Donphan"},Larvitar:{level:"30",to:"Pupitar"},Pupitar:{level:"55",to:"Tyranitar"},"M-Mewtwo X":{level:"100",to:"M-Mewtwo Y"},"M-Mewtwo Y":{level:"100",to:"M-Mewtwo X"}},C=e=>{const t=function(e,t,n,o,s,i=0){this.poke=u(e),this.expTable=a[this.poke.stats[0]["growth rate"]],this.exp=t&&this.expTable[t-1]||n,this.isShiny=!0===o,this.caughtAt=s||Date.now(),this.prestigeLevel=i,this.hp=3*this.setHpValue(this.poke.stats[0].hp)};return t.prototype.currentLevel=function(){return this.expTable.filter((e=>e<=this.exp)).length},t.prototype.statValue=function(e){return Math.floor((e+50)*this.currentLevel()/150*Math.pow(1.25,this.prestigeLevel))},t.prototype.setHpValue=function(e){return Math.floor(e*this.currentLevel()/40)},t.prototype.tryEvolve=function(t){if(void 0!==S[this.poke.pokemon[0].Pokemon]){const n=this.poke.pokemon[0].Pokemon,a=S[this.poke.pokemon[0].Pokemon].to,o=S[this.poke.pokemon[0].Pokemon].stone,s=Number(S[this.poke.pokemon[0].Pokemon].level);this.currentLevel()>=s&&(this.poke=u(v(a)),e.addPokedex(a,t?h:m),e.hasPokemon(n,t)||e.addPokedex(n,t?k:c)),e.unlocked[o]&&(this.poke=u(v(a)),e.addPokedex(a,t?h:m),e.hasPokemon(n,t)||e.addPokedex(n,t?k:c))}},t.prototype.canEvolve=function(){if(void 0!==S[this.poke.pokemon[0].Pokemon]){const t=Number(S[this.poke.pokemon[0].Pokemon].level),n=S[this.poke.pokemon[0].Pokemon].stone;if(this.currentLevel()>=t&&!e.hasPokemon(S[this.poke.pokemon[0].Pokemon].to,0))return!0;if(e.unlocked[n]&&!e.hasPokemon(S[this.poke.pokemon[0].Pokemon].to,0))return!0}return!1},t.prototype.tryPrestige=function(){this.canPrestige()&&(this.exp=this.expTable[4],this.setHp(this.maxHp()),this.prestigeLevel++)},t.prototype.canPrestige=function(){return this.level()>=100},t.prototype.setHp=function(e){this.hp=e},t.prototype.getHp=function(){return this.hp},t.prototype.maxHp=function(){return 3*this.setHpValue(this.poke.stats[0].hp)},t.prototype.attack=function(){return this.statValue(this.poke.stats[0].attack)},t.prototype.defense=function(){return this.statValue(this.poke.stats[0].defense)},t.prototype.spAttack=function(){return this.statValue(this.poke.stats[0]["sp atk"])},t.prototype.spDefense=function(){return this.statValue(this.poke.stats[0]["sp def"])},t.prototype.speed=function(){return this.statValue(this.poke.stats[0].speed)},t.prototype.avgDefense=function(){return(this.defense()+this.spDefense())/2},t.prototype.pokeName=function(){return this.poke.pokemon[0].Pokemon},t.prototype.image=function(){const e=this.isShiny?"shiny":"normal";return{front:"assets/sprites/"+[e]+"/front/"+this.poke.pokemon[0].Pokemon+".png",back:"assets/sprites/"+[e]+"/back/"+this.poke.pokemon[0].Pokemon+".png"}},t.prototype.shiny=function(){return this.isShiny},t.prototype.types=function(){return this.poke.stats[0].types},t.prototype.catchRate=function(){return Number(this.poke.stats[0]["catch rate"])},t.prototype.lifeAsText=function(){return(this.getHp()<0?0:this.getHp())+" / "+this.maxHp()},t.prototype.alive=function(){return this.getHp()>0},t.prototype.giveExp=function(e){this.exp+=e},t.prototype.currentExp=function(){return this.exp},t.prototype.nextLevelExp=function(){return this.expTable[this.currentLevel()]},t.prototype.thisLevelExp=function(){return this.expTable[this.currentLevel()-1]||10},t.prototype.level=function(){return this.currentLevel()},t.prototype.attackSpeed=function(){const e=Math.floor(1e3/(500+this.speed())*800);return e<=300?300:e},t.prototype.avgAttack=function(){return(this.attack()+this.spAttack())/2},t.prototype.takeDamage=function(e){const t=e-this.avgDefense()/10>0&&Math.ceil((e-this.avgDefense()/10)*(2*(Math.random()+.1))/100)||0;return this.setHp(this.getHp()-t),t},t.prototype.baseExp=function(){return Number(this.poke.exp[0]["base exp"])},t.prototype.heal=function(){return this.setHp(this.maxHp())},t.prototype.save=function(){return[this.poke.pokemon[0].Pokemon,this.exp,this.isShiny,this.caughtAt,this.prestigeLevel]},{Poke:t,makeRandomPoke:e=>new t(f(g),e)}},M={Kanto:{_global:{pokes:["Bulbasaur","Charmander","Squirtle"],rarePokes:["Omanyte","Kabuto","Aerodactyl","Hitmonlee","Hitmonchan","Lapras","Eevee"],superRare:["Mewtwo","Mew","Articuno","Zapdos","Moltres","Porygon"]},palletTown:{name:"Pallet Town",town:!0,trainer:{name:"Prof. Oak",badge:null,poke:[["Bulbasaur",15],["Charmander",15],["Squirtle",15]]}},route1:{name:"Route 1",pokes:["Pidgey","Rattata"],minLevel:2,maxLevel:5,respawn:"palletTown"},viridianCity:{name:"Viridian City",town:!0,trainer:{name:"Giovanni",badge:"Earth Badge",poke:[["Rhyhorn",45],["Dugtrio",42],["Nidoqueen",44],["Nidoking",45],["Rhydon",50]]}},route22:{name:"Route 22",pokes:["Pidgey","Rattata","Nidoran F","Nidoran M"],minLevel:2,maxLevel:5,respawn:"viridianCity"},route2:{name:"Route 2",pokes:["Pidgey","Rattata","Caterpie","Weedle","Nidoran F","Nidoran M"],minLevel:3,maxLevel:5,respawn:"viridianCity"},viridianForest:{name:"Virdian Forest",pokes:["Caterpie","Metapod","Weedle","Kakuna","Pikachu"],minLevel:3,maxLevel:6,respawn:"viridianCity"},pewterCity:{name:"Pewter City",town:!0,trainer:{name:"Brock",badge:"Boulder Badge",poke:[["Geodude",12],["Onix",14]]}},route3:{name:"Route 3",pokes:["Pidgey","Spearow","Jigglypuff"],minLevel:5,maxLevel:12,respawn:"pewterCity",_unlock:{badges:{"Boulder Badge":!0}}},mtMoon:{name:"Mt. Moon",pokes:["Zubat","Clefairy","Paras","Geodude"],minLevel:6,maxLevel:12,respawn:"pewterCity",_unlock:{badges:{"Boulder Badge":!0}}},route4:{name:"Route 4",pokes:["Rattata","Spearow","Ekans","Sandshrew"],minLevel:6,maxLevel:12,respawn:"pewterCity",_unlock:{badges:{"Boulder Badge":!0}}},ceruleanCity:{name:"Cerulean City",town:!0,trainer:{name:"Misty",badge:"Cascade Badge",poke:[["Staryu",18],["Starmie",21]]},_unlock:{badges:{"Boulder Badge":!0}}},route24:{name:"Route 24",pokes:["Caterpie","Metapod","Weedle","Kakuna","Oddish","Abra","Bellsprout"],minLevel:7,maxLevel:14,respawn:"ceruleanCity",_unlock:{badges:{"Boulder Badge":!0}}},route25:{name:"Route 25",pokes:["Caterpie","Metapod","Weedle","Kakuna","Pidgey","Oddish","Abra","Bellsprout"],minLevel:7,maxLevel:14,respawn:"ceruleanCity",_unlock:{badges:{"Boulder Badge":!0}}},route5:{name:"Route 5",pokes:["Pidgey","Oddish","Meowth","Mankey","Bellsprout"],minLevel:10,maxLevel:16,respawn:"ceruleanCity",_unlock:{badges:{"Cascade Badge":!0}}},route6:{name:"Route 6",pokes:["Pidgey","Pidgeotto","Oddish","Meowth","Mankey","Abra","Bellsprout"],minLevel:10,maxLevel:16,respawn:"ceruleanCity",_unlock:{badges:{"Cascade Badge":!0}}},vermilionCity:{name:"Vermilion City",town:!0,trainer:{name:"Lt. Surge",badge:"Thunder Badge",poke:[["Voltorb",21],["Pikachu",18],["Raichu",24]]},_unlock:{badges:{"Cascade Badge":!0}}},diglettCave:{name:"Diglett Cave",pokes:["Diglett","Dugtrio"],minLevel:15,maxLevel:31,respawn:"vermilionCity",_unlock:{badges:{"Thunder Badge":!0}}},route11:{name:"Route 11",pokes:["Spearow","Ekans","Sandshrew","Drowzee"],minLevel:18,maxLevel:25,respawn:"vermilionCity",_unlock:{badges:{"Thunder Badge":!0}}},route9:{name:"Route 9",pokes:["Spearow","Ekans","Sandshrew","Drowzee"],minLevel:9,maxLevel:17,respawn:"ceruleanCity",_unlock:{badges:{"Thunder Badge":!0}}},rockTunnel:{name:"Rock Tunnel",pokes:["Zubat","Machop","Geodude","Onix"],minLevel:11,maxLevel:17,respawn:"ceruleanCity",_unlock:{badges:{"Thunder Badge":!0}}},route10:{name:"Route 10",pokes:["Spearow","Ekans","Sandshrew","Voltorb"],minLevel:11,maxLevel:17,respawn:"ceruleanCity",_unlock:{badges:{"Thunder Badge":!0}}},lavenderTown:{name:"Lavender Town",town:!0,_unlock:{badges:{"Thunder Badge":!0}}},pokemonTower:{name:"Pokemon Tower",pokes:["Gastly","Haunter","Cubone"],minLevel:13,maxLevel:18,respawn:"lavenderTown",_unlock:{badges:{"Thunder Badge":!0}}},route8:{name:"Route 8",pokes:["Pidgey","Pidgeotto","Vulpix","Oddish","Meowth","Mankey","Growlithe","Abra","Kadabra","Bellsprout"],minLevel:15,maxLevel:20,respawn:"lavenderTown",_unlock:{badges:{"Thunder Badge":!0}}},route7:{name:"Route 7",pokes:["Pidgey","Vulpix","Oddish","Meowth","Mankey","Growlithe","Bellsprout"],minLevel:18,maxLevel:22,respawn:"lavenderTown",_unlock:{badges:{"Thunder Badge":!0}}},celadonCity:{name:"Celadon City",town:!0,trainer:{name:"Erika",badge:"Rainbow Badge",poke:[["Victreebel",29],["Tangela",24],["Vileplume",29]]},_unlock:{badges:{"Thunder Badge":!0}}},saffronCity:{name:"Saffron City",town:!0,trainer:{name:"Sabrina",badge:"Marsh Badge",poke:[["Kadabra",38],["Mr. Mime",37],["Venomoth",38],["Alakazam",43]]},_unlock:{badges:{"Rainbow Badge":!0}}},route16:{name:"Route 16",pokes:["Rattata","Raticate","Spearow","Doduo","Snorlax"],minLevel:18,maxLevel:30,respawn:"celadonCity",_unlock:{badges:{"Rainbow Badge":!0}}},route17:{name:"Route 17",pokes:["Raticate","Spearow","Fearow","Doduo"],minLevel:20,maxLevel:29,respawn:"celadonCity",_unlock:{badges:{"Rainbow Badge":!0}}},route18:{name:"Route 18",pokes:["Rattata","Raticate","Spearow","Fearow","Doduo"],minLevel:20,maxLevel:29,respawn:"celadonCity",_unlock:{badges:{"Rainbow Badge":!0}}},fuchsiaCity:{name:"Fuchsia City",town:!0,trainer:{name:"Koga",badge:"Soul Badge",poke:[["Koffing",37],["Muk",39],["Koffing",37],["Weezing",43]]},_unlock:{badges:{"Rainbow Badge":!0}}},safariZone:{name:"Safari Zone",pokes:["Nidoran F","Nidorina","Nidoran M","Nidorino","Parasect","Venonat","Exeggcute","Rhyhorn","Kangaskhan","Scyther","Pinsir","Tauros"],minLevel:22,maxLevel:31,respawn:"fuchsiaCity",_unlock:{badges:{"Soul Badge":!0}}},route15:{name:"Route 15",pokes:["Pidgey","Pidgeotto","Oddish","Gloom","Venonat","Bellsprout","Weepinbell","Ditto"],minLevel:22,maxLevel:30,respawn:"fuchsiaCity",_unlock:{badges:{"Soul Badge":!0}}},route14:{name:"Route 14",pokes:["Pidgey","Pidgeotto","Oddish","Gloom","Venonat","Bellsprout","Weepinbell","Ditto"],minLevel:23,maxLevel:30,respawn:"fuchsiaCity",_unlock:{badges:{"Soul Badge":!0}}},route13:{name:"Route 13",pokes:["Pidgey","Oddish","Gloom","Venonat","Bellsprout","Weepinbell","Ditto"],minLevel:22,maxLevel:30,respawn:"fuchsiaCity",_unlock:{badges:{"Soul Badge":!0}}},route12:{name:"Route 12",pokes:["Pidgey","Oddish","Gloom","Venonat","Bellsprout","Weepinbell","Snorlax"],minLevel:22,maxLevel:30,respawn:"lavenderTown",_unlock:{badges:{"Soul Badge":!0}}},powerPlant:{name:"Power Plant",pokes:["Pikachu","Raichu","Magnemite","Magneton","Voltorb","Electrode","Electabuzz"],minLevel:25,maxLevel:35,respawn:"lavenderTown",_unlock:{badges:{"Soul Badge":!0}}},route19:{name:"Route 19",pokes:["Raticate","Pidgeotto","Oddish","Ditto"],minLevel:26,maxLevel:30,respawn:"fuchsiaCity",_unlock:{badges:{"Soul Badge":!0}}},seafoamIsland:{name:"Seafoam Island",pokes:["Psyduck","Slowpoke","Seel","Shellder","Krabby","Horsea","Staryu"],minLevel:30,maxLevel:40,_unlock:{badges:{"Soul Badge":!0}}},route20:{name:"Route 20",pokes:["Raticate","Pidgeotto","Weepinbell","Kadabra"],minLevel:27,maxLevel:31,respawn:"fuchsiaCity",_unlock:{badges:{"Soul Badge":!0}}},cinnabarIsland:{name:"Cinnabar Island",town:!0,trainer:{name:"Blaine",badge:"Volcano Badge",poke:[["Growlithe",42],["Ponyta",40],["Rapidash",42],["Arcanine",47]]},_unlock:{badges:{"Soul Badge":!0}}},pokemonMansion:{name:"Pokemon Mansion",pokes:["Vulpix","Growlithe","Ponyta","Grimer","Muk","Koffing","Weezing","Magmar"],minLevel:32,maxLevel:40,respawn:"cinnabarIsland",_unlock:{badges:{"Volcano Badge":!0}}},route21:{name:"Route 21",pokes:["Pidgey","Pidgeotto","Rattata","Raticate","Tangela"],minLevel:21,maxLevel:32,respawn:"cinnabarIsland",_unlock:{badges:{"Volcano Badge":!0}}},route23:{name:"Route 23",pokes:["Spearow","Fearow","Ekans","Arbok","Sandshrew","Sandslash","Ditto"],minLevel:33,maxLevel:43,respawn:"viridianCity",_unlock:{badges:{"Earth Badge":!0}}},victoryRoad:{name:"Victory Road",pokes:["Zubat","Golbat","Venomoth","Machop","Machoke","Geodude","Graveler","Marowak"],minLevel:36,maxLevel:45,respawn:"viridianCity",_unlock:{badges:{"Earth Badge":!0}}},ceruleanCave:{name:"Cerulean Cave",pokes:["Wigglytuff","Venomoth","Kadabra","Dodrio","Electrode","Marowak","Rhydon","Chansey","Ditto"],minLevel:51,maxLevel:60,respawn:"ceruleanCity",_unlock:{badges:{"Earth Badge":!0}}},water:{name:"Fishing",pokes:{1:["Magikarp"],2:["Psyduck","Poliwag","Goldeen","Tentacool"],3:["Shellder","Krabby","Horsea","Staryu","Dratini"]},minLevel:5,maxLevel:40,fishing:1}},Johto:{_unlock:{dex:{caughtCount:140}},_global:{pokes:[],rarePokes:["Chikorita","Cyndaquil","Totodile","Shuckle"],superRare:["Raikou","Entei","Suicune","Ho-Oh","Celebi","Lugia"]},NewBarkTown:{name:"New Bark Town",town:!0,trainer:{name:"Prof. Elm",badge:null,poke:[["Chikorita",15],["Cyndaquil",15],["Totodile",15]]}},route29:{name:"Route 29",pokes:["Sentret","Hoothoot","Hoppip","Pidgey","Rattata"],minLevel:2,maxLevel:5,respawn:"starter2"},cherrygroveCity:{name:"Cherrygrove City",town:!0},route30:{name:"Route 30",pokes:["Ledyba","Hoppip","Spinarak","Hoothoot","Caterpie","Weedle","Kakuna","Pidgey","Zubat","Poliwag","Rattata","Metapod"],minLevel:2,maxLevel:5,respawn:"cherrygroveCity"},route46:{name:"Route 46",pokes:["Rattata","Spearow","Jigglypuff","Geodude","Phanpy"],minLevel:2,maxLevel:5,respawn:"NewBarkTown"},route31:{name:"Route 31",pokes:["Hoothoot","Rattata","Ledyba","Spinarak","Caterpie","Metapod","Weedle","Kakuna","Pidgey","Zubat","Poliwag","Hoppip","Gastly","Bellsprout"],minLevel:3,maxLevel:6,respawn:"cherrygroveCity"},darkCave:{name:"Dark Cave",pokes:["Teddiursa","Dunsparce","Ursaring","Wobbuffet","Shuckle","Krabby","Geodude","Zubat","Goldeen","Magikarp"],minLevel:2,maxLevel:30,respawn:"cherrygroveCity"},violetCity:{name:"Violet City",town:!0,trainer:{name:"Falkner",badge:"Zephyr Badge",poke:[["Pidgey",7],["Pidgeotto",9]]}},sproutTower:{name:"Sprout Tower",pokes:["Rattata","Gastly"],minLevel:3,maxLevel:6,respawn:"violetCity",_unlock:{badges:{"Zephyr Badge":!0}}},route32:{name:"Route 32",pokes:["Mareep","Hoppip","Wooper","Hoothoot","Gastly","Ekans","Zubat","Rattata","Bellsprout","Pidgey"],minLevel:4,maxLevel:8,respawn:"violetCity",_unlock:{badges:{"Zephyr Badge":!0}}},ruinsofAlph:{name:"Ruins of Alph",pokes:["Natu","Smeargle","Wooper"],minLevel:18,maxLevel:24,respawn:"violetCity",_unlock:{badges:{"Zephyr Badge":!0}}},innerRuins:{name:"Inner Ruins",pokes:["Unown"],minLevel:5,maxLevel:5,respawn:"violetCity",_unlock:{badges:{"Zephyr Badge":!0}}},unionCave:{name:"Union Cave",pokes:["Zubat","Geodude","Onix","Rattata","Golbat","Raticate","Lapras","Sandshrew","Wooper","Quagsire"],minLevel:6,maxLevel:24,respawn:"violetCity",_unlock:{badges:{"Zephyr Badge":!0}}},route33:{name:"Route 33",pokes:["Rattata","Spearow","Ekans","Geodude","Zubat","Hoppip"],minLevel:6,maxLevel:8,respawn:"violetCity",_unlock:{badges:{"Zephyr Badge":!0}}},slowpokeWell:{name:"Slowpoke Well",pokes:["Zubat","Slowpoke","Slowbro","Golbat","Slowking"],minLevel:5,maxLevel:25,respawn:"violetCity",_unlock:{badges:{"Zephyr Badge":!0}}},azaleaTown:{name:"Azalea Town",town:!0,trainer:{name:"Bugsy",badge:"Hive Badge",poke:[["Metapod",14],["Kakuna",14],["Scyther",16]]},_unlock:{badges:{"Zephyr Badge":!0}}},ilexForest:{name:"Ilex Forest",pokes:["Caterpie","Weedle","Metapod","Kakuna","Paras","Pidgey","Venonat","Zubat","Oddish","Psyduck"],minLevel:5,maxLevel:7,respawn:"violetCity",_unlock:{badges:{"Hive Badge":!0}}},route34:{name:"Route 34",pokes:["Snubbull","Ditto","Hoothoot","Abra","Jigglypuff","Drowzee","Rattata","Pidgey"],minLevel:10,maxLevel:12,respawn:"azaleaTown",_unlock:{badges:{"Hive Badge":!0}}},daycareHouse:{name:"Daycare House",pokes:["Pichu","Cleffa","Igglybuff","Tyrogue","Smoochum","Elekid","Magby","Togepi"],minLevel:5,maxLevel:5},goldenrodCity:{name:"Goldenrod City",town:!0,trainer:{name:"Whitney",badge:"Plain Badge",poke:[["Clefairy",18],["Miltank",20]]},_unlock:{badges:{"Hive Badge":!0}}},route35:{name:"Route 35",pokes:["Yanma","Noctowl","Pidgey","Nidoran M","Nidoran F","Jigglypuff","Psyduck","Growlithe","Abra","Drowzee","Hoothoot","Ditto","Snubull"],minLevel:10,maxLevel:14,respawn:"goldenrodCity",_unlock:{badges:{"Plain Badge":!0}}},nationalPark:{name:"National Park",pokes:["Sunkern","Ledyba","Spinarak","Hoothoot","Caterpie","Metapod","Weedle","Kakuna","Pidgey","Nidoran M","Nidoran F","Venonat","Psyduck"],minLevel:10,maxLevel:15,respawn:"goldenrodCity",_unlock:{badges:{"Plain Badge":!0}}},route36:{name:"Route 36",pokes:["Stantler","Sudowoodo","Ledyba","Spinarak","Hoothoot","Pidgey","Nidoran M","Nidoran F","Vulpix","Growlithe","Bellsprout","Gastly"],minLevel:13,maxLevel:20,respawn:"goldenrodCity",_unlock:{badges:{"Plain Badge":!0}}},route37:{name:"Route 37",pokes:["Stantler","Spinarak","Ledyba","Hoothoot","Ledian","Ariados","Pidgey","Pidgeotto","Vulpix","Growlithe"],minLevel:13,maxLevel:16,respawn:"goldenrodCity",_unlock:{badges:{"Plain Badge":!0}}},burnedTower:{name:"Burned Tower",pokes:["Rattata","Raticate","Zubat","Koffing","Weezing","Magmar"],minLevel:13,maxLevel:16,respawn:"goldenrodCity",_unlock:{badges:{"Plain Badge":!0}}},tinTower:{name:"Tin Tower",pokes:["Rattata","Gastly"],minLevel:20,maxLevel:24,respawn:"goldenrodCity",_unlock:{badges:{"Plain Badge":!0}}},ecruteakCity:{name:"Ecruteak City",town:!0,trainer:{name:"Morty",badge:"Fog Badge",poke:[["Gastly",21],["Haunter",21],["Haunter",23],["Gengar",25]]},_unlock:{badges:{"Plain Badge":!0}}},route38:{name:"Route 38",pokes:["Snubbull","Miltank","Noctowl","Pidgeotto","Rattata","Meowth","Raticate","Magnemite","Farfetchd","Tauros"],minLevel:13,maxLevel:16,respawn:"ecruteakCity",_unlock:{badges:{"Fog Badge":!0}}},route39:{name:"Route 39",pokes:["Miltank","Noctowl","Pidgeotto","Rattata","Raticate","Meowth","Magnemite","Farfetchd","Tauros"],minLevel:15,maxLevel:16,respawn:"ecruteakCity",_unlock:{badges:{"Fog Badge":!0}}},olivineCity:{name:"Olivine City",town:!0,trainer:{name:"Jasmine",badge:"Mineral Badge",poke:[["Magnemite",30],["Magnemite",30],["Steelix",35]]},_unlock:{badges:{"Fog Badge":!0}}},route40:{name:"Route 40",pokes:["Tentacool","Tentacruel"],minLevel:15,maxLevel:24,respawn:"olivineCity",_unlock:{badges:{"Mineral Badge":!0}}},cianwoodCity:{name:"Cianwood City",town:!0,trainer:{name:"Chuck",badge:"Storm Badge",poke:[["Primeape",27],["Poliwrath",30]]},_unlock:{badges:{"Mineral Badge":!0}}},route41:{name:"Route 41",pokes:["Mantine","Tentacool","Tentacruel"],minLevel:20,maxLevel:24,respawn:"cianwoodCity",_unlock:{badges:{"Storm Badge":!0}}},whirlIsland:{name:"Whirl Island",pokes:["Krabby","Zubat","Seel","Golbat"],minLevel:22,maxLevel:26,respawn:"cianwoodCity",_unlock:{badges:{"Storm Badge":!0}}},route42:{name:"Route 42",pokes:["Mareep","Flaaffy","Marill","Rattata","Raticate","Spearow","Fearow","Ekans","Arbok","Zubat","Golbat","Mankey"],minLevel:13,maxLevel:17,respawn:"ecruteakCity",_unlock:{badges:{"Storm Badge":!0}}},mtMortar:{name:"Mt. Mortar",pokes:["Zubat","Golbat","Machop","Machoke","Geodude","Graveler","Raticate","Marill"],minLevel:15,maxLevel:32,respawn:"ecruteakCity",_unlock:{badges:{"Storm Badge":!0}}},rocketHideout:{name:"Rocket Hideout",pokes:["Electrode","Voltorb","Geodude","Koffing"],minLevel:23,maxLevel:23,respawn:"ecruteakCity",_unlock:{badges:{"Storm Badge":!0}}},mahoganyTown:{name:"Mahogany Town",town:!0,trainer:{name:"Pryce",badge:"Glacier Badge",poke:[["Seel",27],["Dewgong",29],["Piloswine",31]]},_unlock:{badges:{"Storm Badge":!0}}},route43:{name:"Route 43",pokes:["Girafarig","Flaaffy","Mareep","Noctowl","Sentret","Furret","Pidgeotto","Raticate","Venonat","Venomoth"],minLevel:15,maxLevel:17,respawn:"mahoganyTown",_unlock:{badges:{"Glacier Badge":!0}}},lakeofRage:{name:"Lake of Rage",pokes:["Gyarados","Magikarp"],minLevel:30,maxLevel:30,respawn:"mahoganyTown",_unlock:{badges:{"Glacier Badge":!0}}},route44:{name:"Route 44",pokes:["Lickitung","Tangela","Bellsprout","Weepinbell","Poliwag","Poliwhirl"],minLevel:22,maxLevel:26,respawn:"mahoganyTown",_unlock:{badges:{"Glacier Badge":!0}}},icePath:{name:"Ice Path",pokes:["Swinub","Delibird","Sneasel","Zubat","Golbat","Jynx"],minLevel:21,maxLevel:24,respawn:"mahoganyTown",_unlock:{badges:{"Glacier Badge":!0}}},dragonsDen:{name:"Dragons Den",pokes:["Dratini"],minLevel:10,maxLevel:14,respawn:"mahoganyTown",_unlock:{badges:{"Glacier Badge":!0}}},route45:{name:"Route 45",pokes:["Teddiursa","Gligar","Phanpy","Skarmory","Donphan"],minLevel:20,maxLevel:27,respawn:"mahoganyTown",_unlock:{badges:{"Glacier Badge":!0}}},blackthornCity:{name:"Blackthorn City",town:!0,trainer:{name:"Clair",badge:"Rising Badge",poke:[["Dragonair",37],["Dragonair",37],["Dragonair",37],["Kingdra",40]]},_unlock:{badges:{"Glacier Badge":!0}}},route47:{name:"Route 47",pokes:["Raticate","Spearow","Fearow","Gloom","Ditto","Farfetchd","Noctowl","Miltank"],minLevel:40,maxLevel:43,respawn:"cianwoodCity",_unlock:{badges:{"Rising Badge":!0}}},route48:{name:"Route 48",pokes:["Fearow","Vulpix","Gloom","Diglett","Growlithe","Farfetchd","Tauros","Hoppip","Girafarig"],minLevel:40,maxLevel:43,respawn:"cianwoodCity",_unlock:{badges:{"Rising Badge":!0}}},route26:{name:"Route 26",pokes:["Raticate","Arbok","Sandslash","Ponyta","Doduo","Dodrio","Noctowl","Quagsire"],minLevel:28,maxLevel:32,respawn:"NewBarkTown",_unlock:{badges:{"Rising Badge":!0}}},route27:{name:"Route 27",pokes:["Raticate","Arbok","Sandslash","Ponyta","Doduo","Dodrio","Noctowl","Quagsire"],minLevel:28,maxLevel:32,respawn:"NewBarkTown",_unlock:{badges:{"Rising Badge":!0}}},route28:{name:"Route 28",pokes:["Ponyta","Tangela","Ursaring","Donphan","Rapidash","Arbok","Doduo","Sneasel","Poliwhirl","Golbat"],minLevel:39,maxLevel:42,respawn:"NewBarkTown",_unlock:{badges:{"Rising Badge":!0}}},mtSilver:{name:"Mt.Silver",pokes:["Ursaring","Donphan","Misdreavus","Larvitar","Pupitar","Arbok","Golbat","Poliwhirl","Dodrio","Rapidash","Sneasel","Onix"],minLevel:38,maxLevel:48,respawn:"blackthornCity",_unlock:{badges:{"Rising Badge":!0}}},headbutt:{name:"Headbutt",pokes:["Aipom","Pineco","Heracross","Spinarak","Ledyba","Hoothoot","Noctowl"],minLevel:10,maxLevel:10,respawn:"blackthornCity",_unlock:{badges:{"Rising Badge":!0}}},water3:{name:"Fishing",pokes:{1:["Remoraid"],2:["Marill","Chinchou","Wooper"],3:["Corsola","Qwilfish","Lanturn","Octillery"]},minLevel:10,maxLevel:40,fishing:1}}},L=(e,t,n,a=!0)=>{e.renderPokeOnContainer("enemy",t.activePoke()),e.renderPokeOnContainer("player",n.activePoke(),n.settings.spriteChoice||"back")},F={Fire:{Fire:.5,Water:.5,Grass:2,Electric:1,Ice:2,Psychic:1,Normal:1,Fighting:1,Flying:1,Ground:1,Rock:.5,Bug:2,Poison:1,Ghost:1,Dragon:.5,Dark:1,Steel:2,Fairy:1},Water:{Fire:2,Water:.5,Grass:.5,Electric:1,Ice:1,Psychic:1,Normal:1,Fighting:1,Flying:1,Ground:2,Rock:2,Bug:1,Poison:1,Ghost:1,Dragon:.5,Dark:1,Steel:1,Fairy:1},Grass:{Fire:.5,Water:2,Grass:.5,Electric:1,Ice:1,Psychic:1,Normal:1,Fighting:1,Flying:.5,Ground:2,Rock:2,Bug:.5,Poison:.5,Ghost:1,Dragon:.5,Dark:1,Steel:.5,Fairy:1},Electric:{Fire:1,Water:2,Grass:.5,Electric:.5,Ice:1,Psychic:1,Normal:1,Fighting:1,Flying:2,Ground:.25,Rock:1,Bug:1,Poison:1,Ghost:1,Dragon:.5,Dark:1,Steel:1,Fairy:1},Ice:{Fire:.5,Water:.5,Grass:2,Electric:1,Ice:.5,Psychic:1,Normal:1,Fighting:1,Flying:2,Ground:2,Rock:1,Bug:1,Poison:1,Ghost:1,Dragon:2,Dark:1,Steel:.5,Fairy:1},Psychic:{Fire:1,Water:1,Grass:1,Electric:1,Ice:1,Psychic:.5,Normal:1,Fighting:2,Flying:1,Ground:1,Rock:1,Bug:1,Poison:2,Ghost:1,Dragon:1,Dark:.25,Steel:.5,Fairy:1},Normal:{Fire:1,Water:1,Grass:1,Electric:1,Ice:1,Psychic:1,Normal:1,Fighting:1,Flying:1,Ground:1,Rock:.5,Bug:1,Poison:1,Ghost:.25,Dragon:1,Dark:1,Steel:.5,Fairy:1},Fighting:{Fire:1,Water:1,Grass:1,Electric:1,Ice:2,Psychic:.5,Normal:2,Fighting:1,Flying:.5,Ground:1,Rock:2,Bug:.5,Poison:.5,Ghost:.25,Dragon:1,Dark:2,Steel:2,Fairy:.5},Flying:{Fire:1,Water:1,Grass:2,Electric:.5,Ice:1,Psychic:1,Normal:1,Fighting:2,Flying:1,Ground:1,Rock:.5,Bug:2,Poison:1,Ghost:1,Dragon:1,Dark:1,Steel:.5,Fairy:1},Ground:{Fire:2,Water:1,Grass:.5,Electric:2,Ice:1,Psychic:1,Normal:1,Fighting:1,Flying:.25,Ground:1,Rock:2,Bug:.5,Poison:2,Ghost:1,Dragon:1,Dark:1,Steel:2,Fairy:1},Rock:{Fire:2,Water:1,Grass:1,Electric:1,Ice:2,Psychic:1,Normal:1,Fighting:.5,Flying:2,Ground:.5,Rock:1,Bug:2,Poison:1,Ghost:1,Dragon:1,Dark:1,Steel:.5,Fairy:1},Bug:{Fire:.5,Water:1,Grass:2,Electric:1,Ice:1,Psychic:2,Normal:1,Fighting:.5,Flying:.5,Ground:1,Rock:1,Bug:1,Poison:.5,Ghost:.5,Dragon:1,Dark:2,Steel:.5,Fairy:.5},Poison:{Fire:1,Water:1,Grass:2,Electric:1,Ice:1,Psychic:1,Normal:1,Fighting:1,Flying:1,Ground:.5,Rock:.5,Bug:1,Poison:.5,Ghost:.5,Dragon:1,Dark:1,Steel:.25,Fairy:2},Ghost:{Fire:1,Water:1,Grass:1,Electric:1,Ice:1,Psychic:2,Normal:.25,Fighting:1,Flying:1,Ground:1,Rock:1,Bug:1,Poison:1,Ghost:2,Dragon:1,Dark:.5,Steel:1,Fairy:1},Dragon:{Fire:1,Water:1,Grass:1,Electric:1,Ice:1,Psychic:1,Normal:1,Fighting:1,Flying:1,Ground:1,Rock:1,Bug:1,Poison:1,Ghost:1,Dragon:2,Dark:1,Steel:.5,Fairy:.25},Dark:{Fire:1,Water:1,Grass:1,Electric:1,Ice:1,Psychic:2,Normal:1,Fighting:.5,Flying:1,Ground:1,Rock:1,Bug:1,Poison:1,Ghost:2,Dragon:1,Dark:.5,Steel:1,Fairy:.5},Steel:{Fire:.5,Water:.5,Grass:1,Electric:.5,Ice:2,Psychic:1,Normal:1,Fighting:1,Flying:1,Ground:1,Rock:2,Bug:1,Poison:1,Ghost:1,Dragon:1,Dark:1,Steel:.5,Fairy:2},Fairy:{Fire:.5,Water:1,Grass:1,Electric:1,Ice:1,Psychic:1,Normal:1,Fighting:2,Flying:1,Ground:1,Rock:1,Bug:1,Poison:.5,Ghost:1,Dragon:2,Dark:2,Steel:.5,Fairy:1}},B={statistics:{caught:[{name:"First Catch",value:1},{name:"A Good Start",value:100},{name:"Thousand Club",value:1e3}],totalThrows:[{name:"Little league",value:100},{name:"Big league",value:1e4},{name:"Perfect aim",value:5e5},{name:"Check out these arm cannons",value:5e6}],totalPokeCoins:[{name:"Money Bags",value:1e6}],totalCatchCoins:[{name:"Catch Coin Bags",value:1e5}],totalBattleCoins:[{name:"Battle Coin Bags",value:1e5}]},dex:{caughtCount:[{name:"Kanto Collector",value:140},{name:"Johto Collector",value:240}],caught:[{name:"Professor Oak",pokes:["Squirtle","Bulbasaur","Charmander"]},{name:"Professor Elm",pokes:["Chikorita","Totodile","Cyndaquil"]},{name:"Professor Birch",pokes:["Treecko","Mudkip","Torchic"]},{name:"Team Rocket",pokes:["Ekans","Koffing","Meowth"]},{name:"Mews",pokes:["Mew","Mewtwo"]}]}};n(548);const $=(e=>{let t,n;const a={pokemons:[],storage:[],pokedexData:[],pokedexHighestID:0,activePokeID:0,lastHeal:Date.now(),selectedBall:"pokeball",ballsAmount:{pokeball:20,greatball:0,ultraball:0,masterball:0},unlocked:{shinyDex:0,razzBerry:0,fishing:0,thunderStone:0,fireStone:0,waterStone:0,leafStone:0,moonStone:0,timeMachine:0},currencyAmount:{pokecoins:0,catchcoins:0,battlecoins:0},settings:{currentRegionId:"Kanto",currentRouteId:"route1",listView:"roster",autoSort:!0,dexView:"all",dexVersion:194,spriteChoice:"back",catching:!1},skills:{breeding:0,throwing:0,training:0},statistics:{seen:0,caught:0,released:0,sold:0,beaten:0,shinySeen:0,shinyCaught:0,shinyReleased:0,shinyBeaten:0,totalDamage:0,totalThrows:0,successfulThrows:0,pokeballThrows:0,pokeballSuccessfulThrows:0,greatballThrows:0,greatballSuccessfulThrows:0,ultraballThrows:0,ultraballSuccessfulThrows:0,masterballThrows:0,masterballSuccessfulThrows:0,totalPokeCoins:0,totalCatchCoins:0,totalBattleCoins:0,totalExp:0},badges:{},purgeData:!1,canHeal:function(){return Date.now()-this.lastHeal>3e4||Date.now()-this.lastHeal},checksum:function(e){let t=305419896;const n=e.length;for(let a=0;ag.findIndex((t=>t.pokemon[0].Pokemon==e.name)),addPokedex:function(e,n){const o=this.pokedexData.find((function(e){return this==e.name}),e);let s=!1;if("object"==typeof o?(o.flag=t))},getHighestPokeDex:function(){return this.pokedexHighestID=a.getPokedexData().sort(((e,t)=>this.findDexIndex(t)-this.findDexIndex(e)))[0],this.pokedexHighestID},countPokedex:function(e,t=!1){let n,a,o=0;for(n in this.pokedexData)a=this.pokedexData[n],(t&&e==a.flag||!t&&e<=a.flag)&&o++;return o},setActive:function(e){this.activePokeID=e},alivePokeIndexes:function(){return this.getPokemon().filter((e=>e.alive()))},activePoke:function(){return this.pokemons[this.activePokeID]},getPokemon:function(){return this.pokemons},getPokedexData:function(){return this.pokedexData},reorderPokes:function(e,t="roster"){"roster"===t?this.pokemons=e:this.storage=e},cmpFunctions:{lvl:(e,t)=>e.level()-t.level(),dex:(e,t)=>{const n=e=>g.findIndex((t=>t.pokemon[0].Pokemon==e.pokeName()));return n(e)-n(t)},vlv:(e,t)=>e.level()-t.level()||e.avgAttack()-t.avgAttack(),time:(e,t)=>e.caughtAt-t.caughtAt},inverseCmp:function(e){return(t,n)=>-e(t,n)},sortPokemon:function(){const e=document.getElementById("pokeSortDirSelect"),t=e.options[e.selectedIndex].value,n=document.getElementById("pokeSortOrderSelect"),o=n.options[n.selectedIndex].value;let s=this.cmpFunctions[o];"desc"===t&&(s=this.inverseCmp(s)),a.reorderPokes(a.storage.sort(s),"storage")},healAllPokemons:function(){return!0===this.canHeal()?(this.pokemons.forEach((e=>e.heal())),this.storage.forEach((e=>e.heal())),this.lastHeal=Date.now(),"healed"):this.canHeal()},hasPokemon:function(e,t){return void 0!==y(this.pokemons,this.storage).find((function(e){return this[0]==e.pokeName()&&this[1]==e.shiny()}),[e,t])},deletePoke:function(e,t="roster"){"roster"==t?e!==this.activePokeID&&(this.pokemons.splice(e,1),e0&&(this.ballsAmount[e]-=1,!0)},bestAvailableBall:function(){const e=["masterball","ultraball","greatball","pokeball"];for(let t=0;t0)return e[t];return null},addBalls:function(e,t){this.ballsAmount[e]+=t},addPokeCoins:function(e){this.currencyAmount.pokecoins+=e,this.statistics.totalPokeCoins+=e,t.renderPokeCoins()},addCatchCoins:function(e){this.currencyAmount.catchcoins+=e,this.statistics.totalCatchCoins+=e,t.renderCatchCoins()},addBattleCoins:function(e){this.currencyAmount.battlecoins+=e,this.statistics.totalBattleCoins+=e,t.renderBattleCoins()},meetsCriteria:function(e){for(const t in e)if("object"==typeof e[t])for(const n in e[t])if("dex"==t){if("caughtCount"==n&&this.countPokedex(p){localStorage.setItem(`poke${t}`,JSON.stringify(e.save()))})),localStorage.setItem("totalStorage",this.storage.length),this.storage.forEach(((e,t)=>{localStorage.setItem(`storage${t}`,JSON.stringify(e.save()))})),localStorage.setItem("ballsAmount",JSON.stringify(this.ballsAmount)),localStorage.setItem("pokedexData",JSON.stringify(this.pokedexData)),localStorage.setItem("statistics",JSON.stringify(this.statistics)),localStorage.setItem("settings",JSON.stringify(this.settings)),localStorage.setItem("badges",JSON.stringify(this.badges)),localStorage.setItem("unlocked",JSON.stringify(this.unlocked)),localStorage.setItem("currencyAmount",JSON.stringify(this.currencyAmount)))},saveToString:function(){const e=JSON.stringify({pokes:this.pokemons.map((e=>e.save())),storage:this.storage.map((e=>e.save())),pokedexData:this.pokedexData,statistics:this.statistics,settings:this.settings,ballsAmount:this.ballsAmount,badges:this.badges,unlocked:this.unlocked,currencyAmount:this.currencyAmount});return btoa(`${this.checksum(e)}|${e}`)},loadPokes:function(){this.pokemons=[];let e=0;if(this.storage=[],Array(Number(localStorage.getItem("totalPokes"))).fill(0).forEach(((t,a)=>{const o=JSON.parse(localStorage.getItem(`poke${a}`));if(o){const t=o[0],a=o[1],s=!0===o[2],i=o[3],r=o[4]||0;e<6?this.pokemons.push(new n(v(t),!1,Number(a),s,i,r)):this.storage.push(new n(v(t),!1,Number(a),s,i,r)),e++}})),Array(Number(localStorage.getItem("totalStorage"))).fill(0).forEach(((e,t)=>{const a=JSON.parse(localStorage.getItem(`storage${t}`));if(a){const e=a[0],t=a[1],o=!0===a[2],s=a[3],i=a[4]||0;this.storage.push(new n(v(e),!1,Number(t),o,s,i))}})),JSON.parse(localStorage.getItem("ballsAmount"))&&(this.ballsAmount=JSON.parse(localStorage.getItem("ballsAmount"))),JSON.parse(localStorage.getItem("pokedexData"))?this.pokedexData=JSON.parse(localStorage.getItem("pokedexData")):this.pokedexData=[],JSON.parse(localStorage.getItem("statistics"))){const e=JSON.parse(localStorage.getItem("statistics"));this.statistics={...this.statistics,...e}}if(JSON.parse(localStorage.getItem("settings"))&&(this.settings=JSON.parse(localStorage.getItem("settings"))),JSON.parse(localStorage.getItem("badges"))&&(this.badges=JSON.parse(localStorage.getItem("badges"))),JSON.parse(localStorage.getItem("unlocked"))){const e=JSON.parse(localStorage.getItem("unlocked"));this.unlocked={...this.unlocked,...e}}JSON.parse(localStorage.getItem("currencyAmount"))&&(this.currencyAmount=JSON.parse(localStorage.getItem("currencyAmount")))},loadFromString:function(e){let t=atob(e);if(t=t.split("|"),this.checksum(t[1])===t[0]){try{t=JSON.parse(t[1])}catch(e){return void alert("Failed to parse save data, loading canceled!")}this.pokemons=[];let e=0;this.storage=[],t.pokes.forEach((t=>{const a=t[0],o=t[1],s=!0===t[2],i=t[3],r=t[4]||0;e<6?this.pokemons.push(new n(v(a),!1,Number(o),s,i,r)):this.storage.push(new n(v(a),!1,Number(o),s,i,r)),e++})),t.storage.forEach((e=>{const t=e[0],a=e[1],o=!0===e[2],s=e[3],i=e[4]||0;this.storage.push(new n(v(t),!1,Number(a),o,s,i))})),this.ballsAmount=t.ballsAmount,this.currencyAmount=t.currencyAmount,this.pokedexData=t.pokedexData?t.pokedexData:[];const a=t.statistics?t.statistics:{};this.statistics={...this.statistics,...a},t.settings&&(this.settings=t.settings),this.badges=t.badges?t.badges:{};const o=t.unlocked?t.unlocked:[];this.unlocked={...this.unlocked,...o}}else alert("Invalid save data, loading canceled!")},attachDOM:e=>{t=e}},o=C(a);return n=o.Poke,a})(Date.now()),{Poke:D,makeRandomPoke:I}=C($),T=((e,t,n)=>{let a,o=null;const s=(e,t)=>new n(e,t,!1,Math.random()<1/8192);return{activePoke:()=>o,clear:()=>o=null,trainerPoke:e=>o=(e=>{a.trainerCurrentID=0;const t=v(e[0][0]);return s(t,e[0][1])})(e),generateNew:(e,n)=>o=((e,n)=>{const a=M[e],o=a[n];let i=[];if(o.fishing)for(let e=t.unlocked.fishing;e>0;e--)o.pokes[e]&&(i=y(i,o.pokes[e]));else i=o.pokes;a._global&&(a._global.pokes&&Math.random()<1/256&&(i=y(i,a._global.pokes)),a._global.rarePokes&&Math.random()<1/16384&&(i=y(i,a._global.rarePokes)),a._global.superRare&&Math.random()<1/65536&&(i=y(i,a._global.superRare)));const r=v(f(i)),p=o.minLevel+Math.round(Math.random()*(o.maxLevel-o.minLevel));return s(r,p)})(e,n),attachCL:e=>a=e}})(0,$,D),E=((e,t)=>{let n,a;const o={paused:!1,trainer:null,trainerPoke:{},trainerCurrentID:0,playerActivePoke:null,enemyActivePoke:null,playerTimerId:null,enemyTimerId:null,catchEnabled:!1,init:function(){o.paused||(o.playerActivePoke=e.activePoke(),o.enemyActivePoke=t.activePoke(),o.playerTimer(),o.enemyTimer())},pause:function(){o.paused=!0,o.stop(),t.clear(),o.enemyActivePoke=null},unpause:function(){o.paused=!1,o.stop(),o.newEnemy(),o.init()},stop:function(){window.clearTimeout(o.playerTimerId),window.clearTimeout(o.enemyTimerId)},refresh:function(){o.stop(),o.init()},playerTimer:function(){const e=o.playerActivePoke.attackSpeed();o.playerTimerId=window.setTimeout((()=>o.dealDamage(o.playerActivePoke,o.enemyActivePoke,"player")),e)},enemyTimer:function(){const e=o.enemyActivePoke.attackSpeed();o.enemyTimerId=window.setTimeout((()=>o.dealDamage(o.enemyActivePoke,o.playerActivePoke,"enemy")),e)},calculateDamageMultiplier:function(e,t){const n=(e,t)=>F[e][t[0]]*(t[1]&&F[e][t[1]]||1);return Math.max(n(e[0],t),e[1]&&n(e[1],t)||0)},dealDamage:function(a,s,i){if(!a||!s)return null;if(a.alive()&&s.alive()){const r="player"===i?"green":"rgb(207, 103, 59)";if(b(5))n.gameConsoleLog(`${a.pokeName()} missed!`,r);else{const p=b(5),l=p?1+a.level()/100:1,c=o.calculateDamageMultiplier(a.types(),s.types())*l,m=s.takeDamage(a.avgAttack()*c);p&&n.gameConsoleLog("Critical Hit!!",r),"player"===i?(n.gameConsoleLog(`${a.pokeName()} Attacked for ${m}`,"green"),e.statistics.totalDamage+=m):n.gameConsoleLog(`${a.pokeName()} Attacked for ${m}`,"rgb(207, 103, 59)"),n.renderPokeOnContainer("enemy",t.activePoke()),n.renderPokeOnContainer("player",e.activePoke(),e.settings.spriteChoice||"back")}"player"===i?(n.attackAnimation("playerImg","right"),o.playerTimer()):(n.attackAnimation("enemyImg","left"),o.enemyTimer())}a.alive()&&s.alive()||(window.clearTimeout(o.playerTimerId),window.clearTimeout(o.enemyTimerId),"enemy"===i&&!a.alive()||"player"===i&&!s.alive()?o.enemyFaint():o.playerFaint(),n.renderPokeOnContainer("enemy",t.activePoke()))},enemyFaint:function(){t.activePoke().shiny()?e.statistics.shinyBeaten++:e.statistics.beaten++,o.attemptCatch(),o.findPokeballs(t.activePoke().level());const a=Math.floor(4*o.enemyActivePoke.level())+5;e.addPokeCoins(a);const s=e.getPokemon().map((e=>e.level())),i=o.enemyActivePoke.baseExp()/16+3*o.enemyActivePoke.level();e.statistics.totalExp+=i,o.playerActivePoke.giveExp(i),n.gameConsoleLog(`${o.playerActivePoke.pokeName()} won ${Math.floor(i)}xp`,"rgb(153, 166, 11)"),e.getPokemon().forEach((e=>e.giveExp(o.enemyActivePoke.baseExp()/100+o.enemyActivePoke.level()/10)));const r=e.getPokemon().map((e=>e.level()));if(s.join("")!==r.join("")&&(n.gameConsoleLog("Your pokemon gained a level","rgb(153, 166, 11)"),"roster"==e.settings.listView&&n.renderPokeList(!1)),o.trainer){o.trainerPoke.splice(o.trainerCurrentID,1);const t=Math.floor(o.enemyActivePoke.level()*o.trainerPoke.length)+5;if(e.addBattleCoins(t),o.trainerPoke.length<1)return n.gameConsoleLog(`You have defeated ${o.trainer.name}`,"blue"),o.trainer.badge&&(e.badges[o.trainer.badge]||(e.badges[o.trainer.badge]=!0,n.gameConsoleLog(`You have earned the ${o.trainer.badge}.`,"purple"),n.renderRouteList())),o.trainer=null,o.pause(),!1}e.savePokes(),o.newEnemy(),o.enemyTimer(),o.playerTimer(),n.renderPokeOnContainer("player",e.activePoke(),e.settings.spriteChoice||"back")},newEnemy:function(){o.trainer?t.trainerPoke(o.trainerPoke):t.generateNew(e.settings.currentRegionId,e.settings.currentRouteId),o.enemyActivePoke=t.activePoke(),e.addPokedex(t.activePoke().pokeName(),t.activePoke().shiny()?r:i),t.activePoke().shiny()?e.statistics.shinySeen++:e.statistics.seen++},playerFaint:function(){n.gameConsoleLog(`${o.playerActivePoke.pokeName()} Fainted! `);const t=e.alivePokeIndexes();t.length>0?(e.setActive(e.getPokemon().indexOf(t[0])),o.playerActivePoke=e.activePoke(),n.gameConsoleLog(`Go ${o.playerActivePoke.pokeName()}!`),o.refresh()):(n.gameConsoleLog("You have no more usable pokemon. You blacked out!","red"),o.trainer&&(n.gameConsoleLog("You have been defeated","red"),o.trainer=null,o.pause()),x(P("#gameContainer")),n.gameConsoleLog("You reawaken at the nearest pokecenter.","blue"),M[e.settings.currentRegionId][e.settings.currentRouteId].respawn&&a.changeRoute(M[e.settings.currentRegionId][e.settings.currentRouteId].respawn,!0)),n.renderPokeList(!1)},attemptCatch:function(){if("all"==o.catchEnabled&&!o.trainer||"new"==o.catchEnabled&&!e.hasPokemon(t.activePoke().pokeName(),0)&&!o.trainer){const a=t.activePoke().shiny()?e.bestAvailableBall():e.selectedBall;if(e.consumeBall(a)){n.gameConsoleLog(`Trying to catch ${t.activePoke().pokeName()}...`,"purple"),e.statistics.totalThrows++,e.statistics[`${a}Throws`]++,n.renderBalls();const s=Math.floor(1*o.enemyActivePoke.level())+1,i=e.unlocked.razzBerry?1.25:1;b(t.activePoke().catchRate()*e.ballRNG(a)/3*i)?(e.statistics.successfulThrows++,e.statistics[`${a}SuccessfulThrows`]++,e.addCatchCoins(s),n.gameConsoleLog(`You caught ${t.activePoke().pokeName()}and gained${s}!!`,"purple"),e.hasPokemon(t.activePoke().pokeName(),0)||(e.addPoke(t.activePoke(),0),n.renderPokeList()),e.addPokedex(t.activePoke().pokeName(),t.activePoke().shiny()?h:m),t.activePoke().shiny()?(e.statistics.shinyCaught++,e.unlocked.shinyDex=1):e.statistics.caught++,L(n,t,e)):n.gameConsoleLog(`${t.activePoke().pokeName()} escaped!!`,"purple")}}},findPokeballs:function(t){const a=Math.floor(Math.random()*(t/2))+1,o={ultraball:10,greatball:20,pokeball:100},s=Math.floor(Math.random()*(2e3-4*t));for(const t in o)s{n=e},attachUI:e=>a=e};return o})($,T),R=((e,t)=>{let n;return{pokecoinShopItems:[{name:"Pokeball",pokecoins:100,ball:"pokeball"},{name:"Greatball",pokecoins:1e3,ball:"greatball"},{name:"Ultraball",pokecoins:1e4,ball:"ultraball"},{name:"Old Rod",pokecoins:1e4,fishing:1},{name:"Good Rod",pokecoins:1e5,fishing:2},{name:"Super Rod",pokecoins:1e6,fishing:3}],battlecoinShopItems:[{name:"Razz Berry",battlecoins:25e5,unlockable:"razzBerry"},{name:"Masterball",battlecoins:1e6,ball:"masterball"}],catchcoinShopItems:[{name:"Thunder Stone",catchcoins:1e5,unlockable:"thunderStone"},{name:"Fire Stone",catchcoins:1e5,unlockable:"fireStone"},{name:"Water Stone",catchcoins:1e5,unlockable:"waterStone"},{name:"Leaf Stone",catchcoins:1e5,unlockable:"leafStone"},{name:"Moon Stone",catchcoins:1e5,unlockable:"moonStone"}],renderPokeCoinShop:function(){let t="";for(let n=0;n=this.pokecoinShopItems[n].fishing&&(a=!1,o=!0);const s=` `;t+=`
  • ${this.pokecoinShopItems[n].name}: ${this.pokecoinShopItems[n].pokecoins}${s}
  • `}P("#pokecoinShopItems").innerHTML=t},renderBattleCoinShop:function(){let t="";for(let n=0;n${o?"Own":"Buy"}`;t+=`
  • ${this.battlecoinShopItems[n].name}: ${this.battlecoinShopItems[n].battlecoins}${s}
  • `}P("#battlecoinShopItems").innerHTML=t},renderCatchCoinShop:function(){let t="";for(let n=0;n${o?"Own":"Buy"}`;t+=`
  • : ${this.catchcoinShopItems[n].catchcoins}${s}
  • `}P("#catchcoinShopItems").innerHTML=t},buyPokeCoinItem:function(t){const a=this.pokecoinShopItems[t];return!(e.currencyAmount.pokecoinsBuy`,s+=`
  • ${t}: ¤100000${a}
  • `;P("#traderBuyList").innerHTML=s},renderTrader:function(){this.renderBuyTrader()},calculatePokeValue:function(e,t=1){const n=e.shiny()?1500:1;return Math.floor(e.level()/4*n*t)},buyPoke:function(a){const o=1e5;if(e.currencyAmount.pokecoinsn=e}})($,D),N=((e,t,n,a)=>{let o;const s={canClose:!0,displayStory:function(e,t,n){this.canClose=n,P("#storyContainer").style.display="block",P("#storyClose").style.display=n?"block":"none",P("#storyTitle").innerHTML=e,P("#storyContent").innerHTML=t},stories:{firstPoke:function(){let e="

    To help you get started please take one of my old pokemon

    ";e+=`

    `,e+=``,e+=``,e+=`

    `,s.displayStory("Welcome to the world of pokemon",e,!1)}},helpers:{getPokeImg:function(e){return g[e-1].images.normal.front},selectFirstPoke:function(s){const i=new a((e=>g[e-1])(s),5);e.addPoke(i),e.addPokedex(i.pokeName(),m),o.gameConsoleLog(`You received a ${e.activePoke().pokeName()}`,"purple"),e.setActive(0),n.unpause(),L(o,t,e),o.renderRoutesBox(),o.renderListBox(),P("#storyContainer").style.display="none"}},attachDOM:e=>o=e};return s})($,T,E,D),G=((e,t,n,a,o)=>{let s;return{changeRoute:function(a,o=!1){return o||0!=e.alivePokeIndexes().length?t.trainer?(s.gameConsoleLog("You cannot run away from a trainer battle.","red"),!1):e.routeUnlocked(e.settings.currentRegionId,a)?(e.settings.currentRouteId=a,M[e.settings.currentRegionId][e.settings.currentRouteId].town?t.pause():t.unpause(),L(s,n,e),e.savePokes(),s.renderRouteList(),!0):(s.gameConsoleLog("You cannot do that yet.","red"),!1):(s.gameConsoleLog("It is too dangerous to travel without a pokemon.","red"),!1)},changePokemon:function(a){e.setActive(a),t.changePlayerPoke(e.activePoke()),L(s,n,e)},deletePokemon:function(a,o,i="roster"){const r="roster"===i?e.getPokemon():e.storage;if(a.shiftKey)if("roster"!==i||r.length>1){const a=r[o];e.deletePoke(o,i),e.hasPokemon(a.pokeName(),a.shiny())||e.addPokedex(a.pokeName(),a.shiny()?l:p),"roster"===i?(t.changePlayerPoke(e.activePoke()),L(s,n,e)):s.renderStorage(),e.savePokes(),a.shiny()?e.settings.releasedShiny++:e.settings.releasedNormal++}else s.showPopup("You must have one active pokemon!");else alert("Hold shift while clicking the X to release a pokemon")},changeRegion:function(){const t=document.getElementById("regionSelect"),n=t.options[t.selectedIndex].value;return e.regionUnlocked(n)&&(e.settings.currentRegionId=n,"_"!==Object.keys(M[e.settings.currentRegionId])[0].charAt(0)?this.changeRoute(Object.keys(M[e.settings.currentRegionId])[0]):"_"!==Object.keys(M[e.settings.currentRegionId])[1].charAt(0)?this.changeRoute(Object.keys(M[e.settings.currentRegionId])[1]):this.changeRoute(Object.keys(M[e.settings.currentRegionId])[2])),!1},enablePokeListDelete:function(){e.settings.listView="roster",s.renderListBox()},enablePokeListAutoSort:function(){e.settings.autoSort=P("#autoSort").checked,s.renderPokeSort(),s.renderListBox()},changeDexView:function(){const t=document.getElementById("dexView");e.settings.dexView=t.options[t.selectedIndex].value,s.renderPokeDex()},changeCatchOption:function(e){t.changeCatch(e)},changeListView:function(t){e.settings.listView=t,s.renderListBox()},clearGameData:function(){s.checkConfirmed("#confirmClearData")&&(localStorage.clear(),e.purgeData=!0,window.location.reload(!0))},clearConsole:function(){s.gameConsoleClear()},changeSelectedBall:function(t){e.changeSelectedBall(t)},pokemonToFirst:function(n,a="roster"){var o,i;o=n,(i="roster"===a?e.getPokemon():e.storage).splice(0,0,i.splice(o,1)[0]),e.savePokes(),"roster"===a?(t.changePlayerPoke(e.activePoke()),s.renderPokeList()):s.renderStorage()},pokemonToDown:function(n,a="roster"){const o="roster"===a?e.getPokemon():e.storage;if(o[n+1]){const r=(i=n,e=>[...e.slice(0,parseInt(i)),e[parseInt(i)+1],e[parseInt(i)],...e.slice(parseInt(i)+2)])(o);e.reorderPokes(r,a),"roster"===a?(t.changePlayerPoke(e.activePoke()),s.renderPokeList()):s.renderStorage(),e.savePokes()}var i},pokemonToUp:function(n,a="roster"){const o="roster"===a?e.getPokemon():e.storage;if(o[n-1]){const r=(i=n,e=>[...e.slice(0,parseInt(i)-1),e[parseInt(i)],e[parseInt(i)-1],...e.slice(parseInt(i)+1)])(o);e.reorderPokes(r,a),"roster"===a?(t.changePlayerPoke(e.activePoke()),s.renderPokeList()):s.renderStorage(),e.savePokes()}var i},evolvePokemon:function(t){e.getPokemon()[t].tryEvolve(e.getPokemon()[t].shiny()),s.renderPokeList(),L(s,n,e)},prestigePokemon:function(t){e.getPokemon()[t].tryPrestige(e.getPokemon()[t].shiny()),s.renderPokeList(),L(s,n,e)},moveToStorage:function(t){if(e.pokemons.length>1){const n=e.getPokemon()[t];e.pokemons.splice(t,1),e.storage.push(n),s.renderPokeList()}else s.showPopup("You must have at least one active pokemon!")},moveToRoster:function(t){if(e.pokemons.length<6){const n=e.storage[t];e.storage.splice(t,1),e.pokemons.push(n),s.renderStorage(),s.renderPokeList()}else s.showPopup("You can only have six active pokemon!")},forceSave:function(){e.savePokes(),P("#forceSave").style.display="inline"},exportSaveDialog:function(){document.getElementById("saveDialogTitle").innerHTML="Export your save",document.queryCommandSupported("copy")&&(document.getElementById("copySaveText").style.display="initial"),document.getElementById("saveText").value=e.saveToString(),document.getElementById("loadButtonContainer").style.display="none",document.getElementById("saveDialogContainer").style.display="block",P("#settingsContainer").style.display="none"},importSaveDialog:function(){document.getElementById("saveDialogTitle").innerHTML="Import a save",document.getElementById("copySaveText").style.display="none",document.getElementById("saveText").value="",document.getElementById("loadButtonContainer").style.display="block",document.getElementById("saveDialogContainer").style.display="block",P("#settingsContainer").style.display="none"},importSave:function(){window.confirm("Loading a save will overwrite your current progress, are you sure you wish to continue?")&&(e.loadFromString(document.getElementById("saveText").value.trim()),document.getElementById("saveDialogContainer").style.display="none",L(s,n,e),s.renderListBox(),s.renderPokeSort(),s.renderBalls(),s.renderPokeCoins())},copySaveText:function(){document.getElementById("saveText").select(),document.execCommand("copy"),window.getSelection().removeAllRanges()},changePokeSortOrder:function(){e.sortPokemon(),e.savePokes(),s.renderStorage()},changeSpriteChoice:function(){document.getElementById("spriteChoiceFront").checked?(e.settings.spriteChoice="front",document.getElementById("player").className="container poke frontSprite"):(e.settings.spriteChoice="back",document.getElementById("player").className="container poke"),e.savePokes(),L(s,n,e)},viewStatistics:function(){const t={seen:"Pokemon Seen",caught:"Pokemon Caught",released:"Pokemon Released",sold:"Pokemon Sold",beaten:"Pokemon Beaten",shinySeen:"Shiny Pokemon Seen",shinyCaught:"Shiny Pokemon Caught",shinyReleased:"Shiny Pokemon Released",shinyBeaten:"Shiny Pokemon Beaten",totalDamage:"Total Damage Dealt",totalThrows:"Total Catch Attempts",successfulThrows:"Successfully Caught",pokeballThrows:"Pokeball Throws",pokeballSuccessfulThrows:"Caught with Pokeball",greatballThrows:"Greatball Throws",greatballSuccessfulThrows:"Caught with Greatball",ultraballThrows:"Ultraball Throws",ultraballSuccessfulThrows:"Caught with Ultraball",masterballThrows:"Masterball Throws",masterballSuccessfulThrows:"Caught with Masterball",totalPokeCoins:"Total Coin Obtained",totalExp:"Total Experience Earned"};let n="";for(const a in e.statistics)n+=`
  • ${t[a]}: ${e.statistics[a]}
  • `;document.getElementById("statisticsList").innerHTML=n,document.getElementById("statisticsContainer").style.display="block"},viewSettings:function(){document.getElementById("settingsContainer").style.display="block",P("#forceSave").style.display="none"},viewAchievements:function(){let t,n,a="";for(const o in B.statistics)for(let s=0,i=B.statistics[o].length;s=B.statistics[o][s].value,t=n?B.statistics[o][s].value:e.statistics[o],a+=`${B.statistics[o][s].name}: ${w(o)} ${t}/${B.statistics[o][s].value}`;for(let o=0,s=B.dex.caughtCount.length;o=B.dex.caughtCount[o].value,t=n?B.dex.caughtCount[o].value:s,a+=`${B.dex.caughtCount[o].name}: Unique Caught ${t}/${B.dex.caughtCount[o].value}`}for(let o=0,s=B.dex.caught.length;o0?", ":"",e.hasDexEntry(n,p)?(r+=`${n}`,s++):r+=n}n=s>=i,t=n?i:s,a+=`${B.dex.caught[o].name}: Catch ${r}`}document.getElementById("achievementsList").innerHTML=a,document.getElementById("achievementsContainer").style.display="block"},viewInventory:function(){if(t=e.badges,0!==Object.keys(t).length||t.constructor!==Object){let t="";for(const n in e.badges)t+=`
  • `;document.getElementById("badgeList").innerHTML=t}var t;document.getElementById("inventoryList").innerHTML="To do",document.getElementById("inventoryContainer").style.display="block"},viewTown:function(){a.renderPokeCoinShop(),a.renderBattleCoinShop(),a.renderCatchCoinShop(),a.renderTrader(),document.getElementById("townContainer").style.display="block"},trainerBattle:function(){const n=M[e.settings.currentRegionId][e.settings.currentRouteId];n.trainer&&n.trainer.poke.length>0&&(t.trainer={name:n.trainer.name,badge:n.trainer.badge},t.trainerPoke=Object.values({...n.trainer.poke}),t.unpause(),t.refresh())},closeStory:function(){o.canClose&&(P("#storyContainer").style.display="none")},attachDOM:e=>{s=e}}})($,E,T,R,N),A=((e,t,n)=>{const a={healElement:P("#heal"),logElement:P("#console #console-text"),setValue:function(e,t,n){void 0===n&&(n=!1),n&&(e.innerHTML+=t),n||e.innerHTML!==t&&(e.innerHTML=t)},getValue:function(e){return e.innerHTML},setProp:function(e,t,n){e[t]!==n&&(e[t]=n)},renderPokeOnContainer:function(t,n,a){const o=P(`#${t}Box`).querySelector(".pokeBox"),s=P("#townBox"),i=P("#trainerButton");if(!n){if(o.style.display="none","enemy"==t){s.style.display="block";const t=M[e.settings.currentRegionId][e.settings.currentRouteId];i.style.display=t.trainer?"":"none",i.innerHTML=t.trainer?t.trainer.name:""}return null}o.style.display="block","enemy"==t&&(s.style.display="none"),a=a||"front";const r={name:o.querySelector(".name"),img:o.querySelector(".img"),hp:o.querySelector(".hp"),hpBar:o.querySelector(".hpBar"),expBar:o.querySelector(".expBar"),status:o.querySelector(".status")};this.setValue(r.name,`${n.pokeName()} (${n.level()})`),this.setProp(r.img,"src",n.image()[a]),this.setValue(r.hp,n.lifeAsText()),this.setProp(r.hpBar,"value",n.getHp()),this.setProp(r.hpBar,"max",n.maxHp()),"player"===t&&(this.setProp(r.expBar,"value",Math.floor(n.currentExp()-n.thisLevelExp())),this.setProp(r.expBar,"max",n.nextLevelExp()-n.thisLevelExp())),this.setValue(r.status,(e=>{let t="";return t+=`Attack Speed: ${e.attackSpeed()/1e3}
    `,t+=`\nAttack: ${e.avgAttack()}
    `,t+=`\nDefense: ${e.avgDefense()}
    `,t})(n))},renderPokeDexSort:function(){let t='',n=!1;e.unlocked.shinyDex&&(t+=``,n=!0),n&&(P("#dexView").innerHTML=t,P("#dexView").style.display="block")},renderPokeDex:function(){const t=e.getPokedexData(),n=P("#dexList");let a="";function o(e){return this==e.name}let i=g.length;if("all"===e.settings.dexView){let t=e.pokedexHighestID;0==t&&(t=e.getHighestPokeDex()),i=e.findDexIndex(t)+5}for(let n=0;n=p||"missing"==e.settings.dexView&&i.flag!=m&&i.flag!=h||"shiny"==e.settings.dexView&&i.flag==h)&&("all"===e.settings.dexView&&i.flag==s?a+=`
  • ${n+1} ???
  • `:a+=`
  • ${n+1} ${g[n].pokemon[0].Pokemon}
  • `)}this.setValue(n,a,!1),this.renderPokeDexSort()},renderHeal:function(n,o){!0===n&&(this.setValue(this.healElement,"Heal!"),e.healAllPokemons(),t.refresh(),L(a,o,e,!1),a.renderPokeList(!1)),"number"==typeof n&&this.setValue(this.healElement,`Heal: ${Math.floor(n/3e4*100)}%`)},pokeStatus:function(t){return t.alive()?t===e.activePoke()?t.shiny()?"activeShiny":"activeNormal":t.shiny()?"inactiveShiny":"inactiveNormal":"dead"},renderPokeSort:function(){P("#autoSort").checked=e.settings.autoSort,e.settings.autoSort?(P("#pokeSortOrderSelect").style.display="inline",P("#pokeSortDirSelect").style.display="inline"):(P("#pokeSortOrderSelect").style.display="none",P("#pokeSortDirSelect").style.display="none")},renderPokeList:function(t=!0){const n=e.getPokemon(),a=P("#rosterList"),o=P("#enableDelete").checked;a.className="list"+(o?" manageTeamEnabled":"");let s="";n.forEach(((n,o)=>{const i=a.querySelector(`#listPoke${o}`);if(i){const a=i.querySelector(".pokeListName"),o=a.innerHTML!==`${n.pokeName()} (${n.level()+(n.prestigeLevel?`p${n.prestigeLevel}`:"")})`||a.getAttribute("status")!==this.pokeStatus(n);a.innerHTML=`${n.pokeName()} (${n.level()+(n.prestigeLevel?`p${n.prestigeLevel}`:"")})`,a.setAttribute("status",this.pokeStatus(n)),a.className=`pokeListName ${this.pokeStatus(n)}${n===e.activePoke()?" activePoke":""}${n.canEvolve()?" canEvolve":""}${n.canPrestige()?" canPrestige":""}`,i.querySelector("img").setAttribute("src",n.image().front),!t&&o&&x(i)}else{const e=``,t=``,a=``,i=``,r=``,p=``,l=`

    `;s+=`
  • ${l}${n.pokeName()} (${n.level()+(n.prestigeLevel?`p${n.prestigeLevel}`:"")})
    ${e}${t}${a}${i}${r}${p}
  • `}})),s.length>0&&this.setValue(a,s,!0);let i,r=n.length;for(;i=a.querySelector(`#listPoke${r}`);)a.removeChild(i),r++},renderStorage:function(){const t=e.storage,n=P("#storageList");let a="";t.forEach(((e,t)=>{const o=n.querySelector(`#storagePoke${t}`);if(o){const t=o.querySelector(".pokeListName");t.innerHTML=`${e.pokeName()} (${e.level()})`,t.setAttribute("status",this.pokeStatus(e)),t.className=`pokeListName ${this.pokeStatus(e)}`}else{const n=``,o=``,s=``,i=``;a+=`
  • ${e.pokeName()} (${e.level()})
    ${n}${o}${s}${i}
  • `}})),a.length>0&&this.setValue(n,a,!0);let o,s=t.length;for(;o=n.querySelector(`#storagePoke${s}`);)n.removeChild(o),s++;0==t.length&&this.setValue(n,"
  • Your storage is cold and empty
  • ")},renderRegionSelect:function(){let t="",n=0;for(const a in M)e.regionUnlocked(a)&&(t+=``,n++);n>1&&(P("#regionSelect").innerHTML=t,P("#regionSelect").style.display="block")},renderRouteList:function(){this.renderRegionSelect();const t=M[e.settings.currentRegionId],n=P("#routeList");P("#regionSelect").value=e.settings.currentRegionId,this.setValue(n,""),Object.keys(t).forEach((a=>{if("_unlock"!==a&&"_global"!==a){const s=t[a],i=e.routeUnlocked(e.settings.currentRegionId,a),r=i?`userInteractions.changeRoute('${a}')`:"";let p,l;i?(p=a===e.settings.currentRouteId?o.route.current:o.route.unlocked,l=a===e.settings.currentRouteId?"bold":"normal"):(p=o.route.locked,l="normal");const c=s.town?"":` (${s.minLevel}~${s.maxLevel})`,m=`
  • ${s.name}${c}
  • `;this.setValue(n,m,!0)}}))},renderListBox:function(){const t=P("#rosterBox"),n=P("#pokedexBox"),a=P("#storageBox");t.style.display="none",n.style.display="none",a.style.display="none","pokeDex"===e.settings.listView?(n.style.display="block",this.renderPokeDex()):"storage"===e.settings.listView?(a.style.display="block",this.renderStorage()):(t.style.display="block",this.renderPokeList())},renderRoutesBox:function(){this.renderRouteList()},checkConfirmed:function(e){return P(e).checked},attackAnimation:function(e,t){const n=P(`#${e}`);n.classList=`img attacked-${t}`,window.setTimeout((()=>n.classList="img"),80)},gameConsoleLog:function(e,t){P("#enableConsole").checked&&(this.logElement.innerHTML=t?`${e}
    ${this.logElement.innerHTML}`:`${e}
    ${this.logElement.innerHTML}`);const n=this.logElement.innerHTML.split("
    ");n.length>=100&&(n.splice(n.length-1,1),this.logElement.innerHTML=n.join("
    "))},gameConsoleClear:function(){this.logElement.innerHTML=""},renderBalls:function(){Object.keys(e.ballsAmount).forEach((t=>{P(`.ball-amount.${t}`).innerHTML=e.ballsAmount[t]}))},renderPokeCoins:function(){P("#pokeCoins").innerHTML=e.currencyAmount.pokecoins},renderCatchCoins:function(){P("#catchCoins").innerHTML=e.currencyAmount.catchcoins},renderBattleCoins:function(){P("#battleCoins").innerHTML=e.currencyAmount.battlecoins},renderCurrency:function(){this.renderBattleCoins(),this.renderCatchCoins(),this.renderPokeCoins()},refreshCatchOption:function(e){P("#enableCatchNew").checked=!1,P("#enableCatchAll").checked=!1,"new"===e?P("#enableCatchNew").checked=!0:"all"===e&&(P("#enableCatchAll").checked=!0),n.changeCatchOption(e)},showPopup:function(e){P("#modalPopup").style.display="flex",P("#modalPopup #popupText").innerText=e,setTimeout(this.hidePopup,2e3)},hidePopup:function(){P("#modalPopup").style.display="none",P("#modalPopup #popupText").innerText=""},bindEvents:function(){P("#enableDelete").addEventListener("click",(()=>{n.enablePokeListDelete()})),P("#autoSort").addEventListener("click",(()=>{n.enablePokeListAutoSort()})),P("#viewRoster").addEventListener("click",(()=>{n.changeListView("roster")})),P("#viewPokeDex").addEventListener("click",(()=>{n.changeListView("pokeDex")})),P("#viewStorage").addEventListener("click",(()=>{n.changeListView("storage")})),P("#dexView").addEventListener("change",(()=>{n.changeDexView()})),P("#enableCatchAll").addEventListener("click",(()=>{let t;P("#enableCatchAll").checked?(P("#enableCatchNew").checked=!1,t="all"):t=!1,e.settings.catching=t,n.changeCatchOption(t)})),P("#enableCatchNew").addEventListener("click",(()=>{let t;P("#enableCatchNew").checked?(P("#enableCatchAll").checked=!1,t="new"):t=!1,e.settings.catching=t,n.changeCatchOption(t)})),P("#saveDialogContainer").addEventListener("click",(e=>{e.target===P("#saveDialogContainer")&&(P("#saveDialogContainer").style.display="none")})),P("#inventoryContainer").addEventListener("click",(e=>{e.target===P("#inventoryContainer")&&(P("#inventoryContainer").style.display="none")})),P("#statisticsContainer").addEventListener("click",(e=>{e.target===P("#statisticsContainer")&&(P("#statisticsContainer").style.display="none")})),P("#settingsContainer").addEventListener("click",(e=>{e.target===P("#settingsContainer")&&(P("#settingsContainer").style.display="none")})),P("#achievementsContainer").addEventListener("click",(e=>{e.target===P("#achievementsContainer")&&(P("#achievementsContainer").style.display="none")})),P("#townContainer").addEventListener("click",(e=>{e.target===P("#townContainer")&&(P("#townContainer").style.display="none")})),window.addEventListener("beforeunload",(()=>{e.purgeData||e.savePokes(!0)}))}};return a})($,E,G);E.attachUI(G),T.attachCL(E),[$,G,E,N,R].forEach((e=>e.attachDOM(A))),Object.assign(window,{userInteractions:G,story:N}),null!==localStorage.getItem("totalPokes")?($.loadPokes(),A.refreshCatchOption($.settings.catching),G.changeRoute($.settings.currentRouteId)):(E.pause(),N.stories.firstPoke()),"front"===$.settings.spriteChoice?(document.getElementById("spriteChoiceFront").checked=!0,document.getElementById("player").className+=" frontSprite"):document.getElementById("spriteChoiceBack").checked=!0,A.bindEvents(),A.renderBalls(),A.renderCurrency(),L(A,T,$),A.renderRoutesBox(),A.renderListBox(),A.renderRegionSelect(),A.renderPokeSort(),E.init(),requestAnimationFrame((function e(){A.renderHeal($.canHeal(),T),requestAnimationFrame(e)}))}},a={};function o(e){if(a[e])return a[e].exports;var t=a[e]={id:e,exports:{}},s={id:e,module:t,factory:n[e],require:o};return o.i.forEach((function(e){e(s)})),t=s.module,s.factory.call(t.exports,t,t.exports,s.require),t.exports}o.m=n,o.c=a,o.i=[],o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.hu=e=>"_-89f38f6-"+e+"-wps-hmr.js",o.hmrF=()=>"main-89f38f6-wps-hmr.json",o.h=()=>"7a27da8924847137e548",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="no-name-pokemon-game:",o.l=(n,a,s,i)=>{if(e[n])e[n].push(a);else{var r,p;if(void 0!==s)for(var l=document.getElementsByTagName("script"),c=0;c{r.onerror=r.onload=null,clearTimeout(h);var o=e[n];if(delete e[n],r.parentNode&&r.parentNode.removeChild(r),o&&o.forEach((e=>e(a))),t)return t(a)},h=setTimeout(k.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=k.bind(null,r.onerror),r.onload=k.bind(null,r.onload),p&&document.head.appendChild(r)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e,t,n,a,s={},i=o.c,r=[],p=[],l="idle";function c(e){l=e;for(var t=0;t0)return c("abort"),Promise.resolve().then((function(){throw s[0]}));c("dispose"),t.forEach((function(e){e.dispose&&e.dispose()})),c("apply");var i=function(e){o||(o=e)},r=[];return t.forEach((function(e){if(e.apply){var t=e.apply(i);if(t)for(var n=0;n=0&&u._disposeHandlers.splice(t,1)},invalidate:function(){switch(this._selfInvalidated=!0,l){case"idle":n=[],Object.keys(o.hmrI).forEach((function(e){o.hmrI[e](g,n)})),c("ready");break;case"ready":Object.keys(o.hmrI).forEach((function(e){o.hmrI[e](g,n)}));break;case"prepare":case"check":case"dispose":case"apply":(a=a||[]).push(g)}},check:k,apply:h,status:function(e){if(!e)return l;p.push(e)},addStatusHandler:function(e){p.push(e)},removeStatusHandler:function(e){var t=p.indexOf(e);t>=0&&p.splice(t,1)},data:s[g]},e=void 0,u),f.parents=r,f.children=[],r=[],d.require=y})),o.hmrC={},o.hmrI={}})(),(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e,t,n,a,s={179:0},i={};function r(e){return new Promise(((t,n)=>{i[e]=t;var a=o.p+o.hu(e),s=new Error;o.l(a,(t=>{if(i[e]){i[e]=void 0;var a=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;s.message="Loading hot update chunk "+e+" failed.\n("+a+": "+o+")",s.name="ChunkLoadError",s.type=a,s.request=o,n(s)}}))}))}function p(i){function r(e){for(var t=[e],n={},a=t.map((function(e){return{chain:[e],id:e}}));a.length>0;){var s=a.pop(),i=s.id,r=s.chain,l=o.c[i];if(l&&(!l.hot._selfAccepted||l.hot._selfInvalidated)){if(l.hot._selfDeclined)return{type:"self-declined",chain:r,moduleId:i};if(l.hot._main)return{type:"unaccepted",chain:r,moduleId:i};for(var c=0;c ")),d.type){case"self-declined":i.onDeclined&&i.onDeclined(d),i.ignoreDeclined||(b=new Error("Aborted because of self decline: "+d.moduleId+y));break;case"declined":i.onDeclined&&i.onDeclined(d),i.ignoreDeclined||(b=new Error("Aborted because of declined dependency: "+d.moduleId+" in "+d.parentId+y));break;case"unaccepted":i.onUnaccepted&&i.onUnaccepted(d),i.ignoreUnaccepted||(b=new Error("Aborted because "+h+" is not accepted"+y));break;case"accepted":i.onAccepted&&i.onAccepted(d),u=!0;break;case"disposed":i.onDisposed&&i.onDisposed(d),f=!0;break;default:throw new Error("Unexception type "+d.type)}if(b)return{error:b};if(u)for(h in m[h]=g,p(c,d.outdatedModules),d.outdatedDependencies)o.o(d.outdatedDependencies,h)&&(l[h]||(l[h]=[]),p(l[h],d.outdatedDependencies[h]));f&&(p(c,[d.moduleId]),m[h]=k)}t=void 0;for(var w,x=[],v=0;v0;){var i=a.pop(),r=o.c[i];if(r){var p={},m=r.hot._disposeHandlers;for(v=0;v=0&&k.parents.splice(e,1)}}}for(var h in l)if(o.o(l,h)&&(r=o.c[h]))for(w=l[h],v=0;v=0&&r.children.splice(e,1)},apply:function(e){for(var t in m)o.o(m,t)&&(o.m[t]=m[t]);for(var n=0;n{for(var r in n)o.o(n,r)&&(t[r]=n[r]);s&&a.push(s),i[e]&&(i[e](),i[e]=void 0)},o.hmrI.jsonp=function(e,s){t||(t={},a=[],n=[],s.push(p)),o.o(t,e)||(t[e]=o.m[e])},o.hmrC.jsonp=function(i,l,c,m,k,h){k.push(p),e={},n=l,t=c.reduce((function(e,t){return e[t]=!1,e}),{}),a=[],i.forEach((function(t){o.o(s,t)&&void 0!==s[t]&&(m.push(r(t)),e[t]=!0)})),o.f&&(o.f.jsonpHmr=function(t,n){e&&!o.o(e,t)&&o.o(s,t)&&void 0!==s[t]&&(n.push(r(t)),e[t]=!0)})},o.hmrM=()=>{if("undefined"==typeof fetch)throw new Error("No browser support: need fetch API");return fetch(o.p+o.hmrF()).then((e=>{if(404!==e.status){if(!e.ok)throw new Error("Failed to fetch update manifest "+e.statusText);return e.json()}}))}})(),o(698),o(586)})(); \ No newline at end of file From cd7bf7a0bb310254b7248756d089a58d914f7c84 Mon Sep 17 00:00:00 2001 From: No Name Release Bot Date: Wed, 3 Mar 2021 00:18:40 +0000 Subject: [PATCH 2/2] 1.0.2 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 820a0e66..1fd234a6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "no-name-pokemon-game", - "version": "1.0.1", + "version": "1.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c37a04f8..bb07877b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "no-name-pokemon-game", - "version": "1.0.1", + "version": "1.0.2", "description": "This is a game that is based off of PokeIdle Extended (which in turn is based off of PokeIdle).", "main": "index.js", "scripts": {