PageSourceSearch

https://pkmnsim.netlify.app/main.js

js pkmnsim.netlify.app collected 2026-10-03 11:16:08 UTC 18,025 bytes, 1 lines download raw bytes

1!function(e){var t={};function n(o){if(t[o])return t[o].exports;var c=t[o]={i:o,l:!1,exports:{}};return e[o].call(c.exports,c,c.exports,n),c.l=!0,c.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var c in e)n.d(o,c,function(t){return e[t]}.bind(null,c));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";function o(e,t){document.querySelectorAll(e).forEach(e=>{e.addEventListener("click",t)})}async function c(e,t){try{let n=await fetch(`https://pokeapi.co/api/v2/${e}/${t}`);return await n.json()}catch(e){alert("Sorry, we didn't recognize that request."),console.log(e)}}n.r(t);let r,a={pkmn:async e=>await c("pokemon",e),async type(){let e=[];return(await c("type","")).results.forEach(async(t,n)=>{let o=await c("type",t.name);e.push(o)}),e},move:async e=>await c("move",e),item:async e=>await c("item",e)};function s(e,t){let n=0,o=20;e.innerHTML="",function c(){n<t.length&&(e.innerHTML=e.innerHTML+t.charAt(n),n++,setTimeout(c,o))}()}function u(e){return e=e.charAt(0).toUpperCase()+e.slice(1).replace("-"," ")}function i(e,t){let n,o,c=t.curHP/t.HP;n=c>=.5?"green":c>=.25?"#FFDE00":"#CC0000",(o="u"==e?document.querySelector(".uHPBarFill"):document.querySelector(".cHPBarFill")).style.backgroundColor=n}async function l(e,t){document.querySelector(".audio_cont").innerHTML=`<audio autoplay loop src="./css/themes/battle${Math.ceil(2*Math.random())}.mp3" type="audio/mpeg"></audio>`;let n=document.querySelector(".window"),c=e[0],r=t[0],l=await a.item("potion"),m=5;n.innerHTML=`<div class="battle_cont"><div class="disp cDisp"> <div class="name, cPkmnName"></div> <div class="cHPBar HPBar"> <div class="cHPBarFill HPBarFill"></div> </div> </div><div class="battle_sprite_cont"><img class='userSprite battleSprite' src="${c.sprite.back}"></img><img class='compSprite battleSprite' src="${r.sprite.front}"></div> <div class="disp uDisp"> <div class="name, uPkmnName"></div> <div class="uHPBar HPBar"> <div class="uHPBarFill HPBarFill"></div> </div> </div>  </div> <div class="textbox"> <div class="textbox_text"></div> <div class="textbox_next"></div> </div> <div class="battle_button_cont"> <button class="turn_button btn" value="0">Attack</button><button class="turn_button btn" value="1">Items</button><button class="turn_button btn" value="2">Pokemon</button> </div>`,function n(){document.querySelector(".battle_button_cont").innerHTML='<button class="turn_button btn" value="0">Attack</button><button class="turn_button btn" value="1">Items</button><button class="turn_button btn" value="2">Pokemon</button>',document.querySelector(".cPkmnName").innerHTML=u(r.name),document.querySelector(".uPkmnName").innerHTML=u(c.name),document.querySelector(".textbox_text").innerHTML="",document.querySelector(".textbox_next").innerHTML="";let a,d=document.querySelector(".HPBar").getBoundingClientRect().width-8;function p(t,n,o,l){if(null==o)a=`${u(t.name)} flailed about.`;else{let s=o.damage_class.name;"status"==s?"transform"==o.name?(e[e.findIndex(e=>e==c)]=r,c=r,document.querySelector(".userSprite").src=c.sprite.back,document.querySelector(".uHPBarFill").style.setProperty("width",d*(c.curHP/c.HP)),document.querySelector(".uPkmnName").innerHTML=u(c.name),a=`Ditto transformed into ${u(c.name)}!`):"protect"==o.name||"detect"==o.name?(a=`${u(t.name)} used ${o.name} and braced itself!`,t.protected=!0):0!=o.stat_changes.length?function(e,t,n){switch(a=`${u(e.name)} used ${u(n.name)}. `,n.target.name){case"user":case"users-field":n.stat_changes.forEac
1h(t=>{switch(t.stat.name){case"attack":e.atk*=1+.5*t.change,a+="It's attack rose! ";break;case"defense":e.def*=1+.5*t.change,a+="It's defense rose! ";break;case"special-attack":e.sAtk*=1+.5*t.change,a+="It's special attack rose! ";break;case"special-defense":e.sDef*=1+.5*t.change,a+="It's special defense rose! ";break;case"speed":e.speed*=1+.5*t.change,a+="It's speed rose! ";break;default:a+="But it failed... "}});break;case"all-opponents":case"selected-pokemon":n.stat_changes.forEach(e=>{switch(e.stat.name){case"attack":t.atk*=1-e.change*(1/3),a+=`${u(t.name)}'s attack fell! `;break;case"defense":t.def*=1-e.change*(1/3),a+=`${u(t.name)}'s defense fell! `;break;case"special-attack":t.sAtk*=1-e.change*(1/3),a+=`${u(t.name)}'s special attack fell! `;break;case"special-defense":t.sDef*=1-e.change*(1/3),a+=`${u(t.name)}'s special defense fell! `;break;case"speed":t.speed*=1-e.change*(1/3),a+=`${u(t.name)}'s speed fell! `;break;default:a+="But it failed... "}});break;default:alert("statRes defaulting, check logs.")}}(t,n,o):a=`${u(t.name)} used ${u(o.name)}, but it failed!`:1==n.protected?(a=`${u(n.name)} protected itself from ${u(t.name)}'s ${o.name}!`,n.protected=!1):"special"==s?_("sAtk",t,n,o):"physical"==s&&_("atk",t,n,o)}let m;n.curHP=Math.round(n.curHP);let p,b=n.curHP/n.HP;n.curHP<=0&&(b=0),"c"==l?(m=document.querySelector(".cHPBarFill"),document.querySelector(".userSprite").classList.add("userSpriteAtk"),setTimeout((function(){document.querySelector(".userSprite").classList.remove("userSpriteAtk")}),1e3),document.querySelector(".compSprite").classList.add("compSpriteRecoil"),setTimeout((function(){document.querySelector(".compSprite").classList.remove("compSpriteRecoil")}),1e3),i("c",r)):(m=document.querySelector(".uHPBarFill"),document.querySelector(".compSprite").classList.add("compSpriteAtk"),setTimeout((function(){document.querySelector(".compSprite").classList.remove("compSpriteAtk")}),1e3),document.querySelector(".userSprite").classList.add("userSpriteRecoil"),setTimeout((function(){document.querySelector(".userSprite").classList.remove("userSpriteRecoil")}),1e3),i("u",c)),p=(document.querySelector(".HPBar").getBoundingClientRect().width-8)*b,m.style.setProperty("width",p),n.protected,a=u(a),s(document.querySelector(".textbox_text"),a),document.querySelector(".textbox_next").innerHTML='<span class="textbox_attack_next"> [Next] </span>'}function _(e,t,n,o){let c,r;switch(e){case"atk":c=t.atk,r=n.def;break;case"sAtk":c=t.sAtk,r=n.sDef}a=`${u(t.name)} used ${u(o.name)}. `;let s=.25*Math.random()+.85,i=1,l=1,m=1;!function(){let e=n.types.map(e=>e.damage_relations.double_damage_from).map(e=>e.map(e=>e.name)),t=n.types.map(e=>e.damage_relations.half_damage_from).map(e=>e.map(e=>e.name));e.forEach(e=>{1==e.includes(o.type.name)&&(i*=2)}),t.forEach(e=>{1==e.includes(o.type.name)&&(i=.5)}),i>1&&(a+="It was super effective!"),i<1&&(a+="It was not very effective...")}(),t.types.includes(o.type.name)&&(l=1.5),1==Math.random()*t.speed/512&&(m=1.5,a+="It was a critical hit!");let d=s*i*l*m,p=(12*o.power*(c/r)/50+2)*d;n.curHP-=p}function b(t,a){document.querySelector(".battle_button_cont").innerHTML='<div class="switch_cont"><div class="switch_button_cont"></div><div class="select_switch_cont"><div class="select_back select_switch"><</div><div class="select_next select_switch">></div></div></div>';let l=document.querySelector(".textbox_text"),m=document.querySelector(".textbox_next"),_=document.querySelector(".switch_button_cont"),b=[];m.innerHTML="",a.forEach(e=>{e.curHP<=0&&(e.curHP=0);let t=`<button class="pkmn_switch_button %active% " value="${a.indexOf(e)}"> <img src=${e.sprite.front}> ${u(e.name)} ${Math.round(e.curHP)}/${e.HP}</button>`;t=e.curHP<=0?t.replace("%active%","pkmn_switch_button_inactive"):t.replace("%active%","pkmn_switch_button_active"),b.push(t)});let x=0,y=b.length-1;function f(){x>y?x=0:x<0&&(x=y),_.innerHTML=b[x],o(".pkmn_switch_button_inactive",e=>{let t=a[e.target.value];s(l,`${u(t.name)} is unable to fight.`)}),o(".pkmn_switch_button_active",a=>{let l=a.target.value;t!=e[l]?(c=e[l],document.querySelector(".userSprite").src=c.sprite.back,document.querySelector(".uHPBarFill").style.setProperty("width",d*(c.curHP/c.HP)),i("u",c),document.querySelector(".uPkmnName").innerHTML=u(c.name),s(document.querySelector(".textbox_text"),`You sent out ${u(c.name)}!`),document.querySelector(".textbox_next").innerHTML='<span class="textbox_user_next_pokemon"> [Next] </span>',document.querySelector(".battle_button_cont").innerHTML="",o(".textbox_user_next_pokemon",()=>{p(r,c,r.moves[Math.round(Math.random()*(r.moves.length-1))],"u"),o(".textbox_attack_next",n)})):n()})}f(),o(".select_back",()=>{x--,f()}),o(".select_next",()=>{x++,f()}),o(".pkmn_switch_button_inactive",e=>{let t=a[e.target.value];s(l,`${u(t.name)} is unable to fight.`)})}o(".turn_button",(function(a){let _=a.target.value,x=document.querySelector(".battle_button_cont");document.querySelector(".battle_button_cont").innerHTML='<div class="battle_button_cont_atk">';let y=document.querySelector(".battle_button_cont_atk");
1switch(_){case"0":c.moves.forEach((e,t)=>{y.insertAdjacentHTML("beforeend",`<button class="attack_button btn" value="${t}">${u(e.name)}</button>`)}),x.insertAdjacentHTML("afterbegin",'<div class="return_cont"><div class="return"><</div></div>'),o(".return",n),o(".attack_button",a=>{let l=c.moves[a.target.value],m=r.moves[Math.round(Math.random()*(r.moves.length-1))];document.querySelector(".battle_button_cont").innerHTML="",c.speed>=r.speed?(p(c,r,l,"c"),o(".textbox_attack_next",()=>{r.curHP<=0?(s(document.querySelector(".textbox_text"),`The opposing ${u(r.name)} has fainted!`),document.querySelector(".textbox_next").innerHTML='<span class="textbox_opponent_fainted"> [Next] </span>',o(".textbox_opponent_fainted",()=>{t.indexOf(r)==t.length-1?(s(document.querySelector(".textbox_text"),"Your oppoent is out of useable pokemon. You win!"),document.querySelector(".audio_cont").innerHTML='<audio autoplay src="./css/themes/win.mp3" type="audio/mpeg"></audio>',document.querySelector(".compSprite").style.opacity="0",document.querySelector(".textbox_next").innerHTML='<span class="textbox_game_end"> [Next] </span>',o(".textbox_game_end",()=>{location.reload()})):(r=t[t.indexOf(r)+1],document.querySelector(".compSprite").src=r.sprite.front,document.querySelector(".cPkmnName").innerHTML=u(r.name),s(document.querySelector(".textbox_text"),`Your opponent sent out ${u(r.name)}.`),document.querySelector(".textbox_next").innerHTML='<span class="textbox_opponent_next_pokemon"> [Next] </span>',document.querySelector(".cPkmnName").innerHTML=u(r.name),document.querySelector(".cHPBarFill").style.setProperty("width",d*(r.curHP/r.HP)),i("c",r),o(".textbox_opponent_next_pokemon",n))})):(p(r,c,m,"u"),o(".textbox_attack_next",()=>{if(c.curHP<=0){0==e.map(e=>e.curHP>0).includes(!0)?(s(document.querySelector(".textbox_text"),"You are out of useable Pokemon... Game Over."),document.querySelector(".audio_cont").innerHTML='<audio autoplay src="./css/themes/win.mp3" type="audio/mpeg"></audio>',document.querySelector(".userSprite").style.opacity="0",document.querySelector(".textbox_next").innerHTML='<span class="textbox_game_end"> [Next] </span>',o(".textbox_game_end",()=>{location.reload()})):(s(document.querySelector(".textbox_text"),`${u(c.name)} has fainted. Choose your next Pokemon.`),b(c,e),o(".pkmn_switch_button_active",t=>{let o=t.target.value;c=e[o],document.querySelector(".userSprite").src=c.sprite.back,document.querySelector(".uPkmnName").innerHTML=u(c.name),document.querySelector(".uHPBarFill").style.setProperty("width",d*(c.curHP/c.HP)),i("u",c),n()}))}else n()}))})):(p(r,c,m,"u"),o(".textbox_attack_next",()=>{if(c.curHP<=0){0==e.map(e=>e.curHP>0).includes(!0)?(s(document.querySelector(".textbox_text"),"You are out of useable Pokemon... Game Over."),document.querySelector(".audio_cont").innerHTML='<audio autoplay src="./css/themes/win.mp3" type="audio/mpeg"></audio>',document.querySelector(".userSprite").style.opacity="0",document.querySelector(".textbox_next").innerHTML='<span class="textbox_game_end"> [Next] </span>',o(".textbox_game_end",()=>{location.reload()})):(s(document.querySelector(".textbox_text"),`${u(c.name)} has fainted. Choose your next Pokemon.`),b(c,e),o(".pkmn_switch_button_active",t=>{let o=t.target.value;c=e[o],document.querySelector(".userSprite").src=c.sprite.back,document.querySelector(".uPkmnName").innerHTML=u(c.name),document.querySelector(".uHPBarFill").style.setProperty("width",d*(c.curHP/c.HP)),i("u",c),n()}))}else p(c,r,l,"c"),o(".textbox_attack_next",()=>{r.curHP<=0?(s(document.querySelector(".textbox_text"),`The opposing ${u(r.name)} has fainted!`),document.querySelector(".textbox_next").innerHTML='<span class="textbox_opponent_fainted"> [Next] </span>',o(".textbox_opponent_fainted",()=>{t.indexOf(r)==t.length-1?(s(document.querySelector(".textbox_text"),"Your oppoent is out of useable pokemon. You win!"),document.querySelector(".audio_cont").innerHTML='<audio autoplay src="./css/themes/win.mp3" type="audio/mpeg"></audio>',document.querySelector(".compSprite").style.opacity="0",document.querySelector(".textbox_next").innerHTML='<span class="textbox_game_end"> [Next] </span>',o(".textbox_game_end",()=>{location.reload()})):(r=t[t.indexOf(r)+1],document.querySelector(".compSprite").src=r.sprite.front,document.querySelector(".cPkmnName").innerHTML=u(r.name),s(document.querySelector(".textbox_text"),`Your opponent sent out ${u(r.name)}.`),document.querySelector(".textbox_next").innerHTML='<span class="textbox_opponent_next_pokemon"> [Next] </span>',document.querySelector(".cHPBarFill").style.setProperty("width",d*(r.curHP/r.HP)),i("c",r),o(".textbox_opponent_next_pokemon",n))}
1)):n()})}))});break;case"1":!function(e,t){let a;document.querySelector(".battle_button_cont").innerHTML=`<div class="return_cont"><div class="return"><</div></div><div class="item_disp_cont"><button class="potion"><img src="${e.sprites.default}"> Heal 20 HP on your current Pkmn (x${t}).</button></div>`,o(".return",n),o(".potion",()=>{if(t>0)if(c.curHP<=0)a=`${u(c.name)} has fainted and can't be healed.`;else if(c.curHP==c.HP)a=`${u(c.name)} is already fully healed.`;else{m--,c.curHP+=20,c.curHP>c.HP&&(c.curHP=c.HP),a=`${u(c.name)} had its health restored!`,document.querySelector(".battle_button_cont").innerHTML="";let e=c.curHP/c.HP,t=document.querySelector(".uHPBarFill"),s=(document.querySelector(".HPBar").getBoundingClientRect().width-8)*e;t.style.setProperty("width",s),i("u",c),document.querySelector(".textbox_next").innerHTML='<span class="textbox_potion_next"> [Next] </span>',o(".textbox_potion_next",()=>{document.querySelector(".battle_button_cont").innerHTML="",p(r,c,r.moves[Math.round(Math.random()*(r.moves.length-1))],"u"),o(".textbox_attack_next",n)})}else a="You are out of this item.";s(document.querySelector(".textbox_text"),a)})}(l,m);break;case"2":b(c,e);break;default:alert("Defaulting. Check logs.")}}))}()}(async()=>{r=await a.type()})();class m{constructor(e){this.name=e.name,this.types=r.filter(t=>{if(e.types.map(e=>e.type.name).includes(t.name))return t}),[this.speed,this.sDef,this.sAtk,this.def,this.atk,this.HP]=e.stats.map(e=>e.base_stat),this.moves=e.moves.map(e=>e.move.name),this.sprite={front:e.sprites.front_default,back:e.sprites.back_default},this.curHP=this.HP,this.protected=!1,Math.random()>=.9&&(this.sprite.front=e.sprites.front_shiny,this.sprite.back=e.sprites.back_shiny)}}async function d(e,t){t=t.map(async e=>{return await a.move(e)}),e.moves=[],t.forEach(t=>{Promise.resolve(t).then((function(t){e.moves.push(t)}))})}async function p(e,t){!function(e,t){let n=0,c=document.querySelector(".window");!function r(a){c.innerHTML='<div class="move_init_select_cont"><select class="move_init_select"></select><select class="move_init_select"></select><select class="move_init_select"></select><select class="move_init_select"></select><div class="move_init_button_cont"><button class="move_init_button btn">Continue</button></div></div>',document.querySelectorAll(".move_init_select").forEach(e=>{a.moves.forEach(t=>{e.insertAdjacentHTML("beforeend",`<option value='${t}'>${t}</option>`)})}),o(".move_init_button",()=>{let o=[],c=[];for(document.querySelectorAll(".move_init_select").forEach(e=>{o.push(e.value)});c.length<4;)c.push(t[n].moves[Math.round(Math.random()*t[n].moves.length)]);d(e[n],o),d(t[n],c),(n+=1)==e.length?l(e,t):r(e[n])})}(e[n])}(e=e.map(e=>new m(e)),t=t.map(e=>new m(e)))}!async function(){!function(){let e,t=document.querySelector(".window"),n=[],c=[];o(".pkmn_count_submit",(function(){e=document.querySelector('input[name="pkmn_count"]:checked').value,t.innerHTML='<div class="pkmn_select_cont"><div class="pkmn_select"> <input class="pkmn_select_name "type="text" value="Name a Pokemon" onfocus="this.value = \'\'"> <button type="submit" class="pkmn_select_submit">Submit</button> </div> <div class="selection_sprite_holder"> </div> <div class="selection_VS"> </div> <div class="c_sprite_holder"> </div> </div></div>',o(".pkmn_select_submit",(async function(){let t=document.querySelector(".pkmn_select_name").value.toLowerCase().replace(/ /g,"");if(0!=t.length){let r=await a.pkmn(t);if(null==r)return;{let t=await r,s=await a.pkmn(Math.round(807*Math.random()));n.push(t),c.push(s),document.querySelector(".selection_sprite_holder").insertAdjacentHTML("beforeend",`<img src="${t.sprites.front_default}" class="selection_sprite">`),n.length==e&&(document.querySelector(".pkmn_select").innerHTML='<button type="submit" name="pkmn_confirm" id="pkmn_confirm" value="Proceed">Proceed</button>',document.querySelector(".selection_VS").innerHTML="VS",c.forEach(e=>{document.querySelector(".c_sprite_holder").insertAdjacentHTML("beforeend",`<img src="${e.sprites.front_default}" class="selection_sprite">`)}),o("#pkmn_confirm",()=>{p(n,c)}
1))}}else alert("Please fill in the field.")}))}))}()}()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.