yolkbot 1.0.16 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  /* eslint-disable */
2
2
 
3
- import{GunList as n,Movements as m,ShellStreaks as c,SocialMedias as d}from"../constants/index.js";import{Cluck9mm as u}from"../constants/guns.js";class f{constructor(s,t=null){if(this.id=s.id,this.uniqueId=s.uniqueId,this.name=s.name,this.safeName=s.safeName,this.team=s.team,this.playing=s.playing,this.socials=s.social&&JSON.parse(s.social),this.socials&&this.socials.forEach(i=>i.type=d[i.id]),this.isVip=s.upgradeProductId>0,this.showBadge=!s.hideBadge||!1,this.position={x:s.x,y:s.y,z:s.z},this.jumping=s.$controlKeys&m.JUMP,this.climbing=!1,this.view={yaw:s.yaw,pitch:s.pitch},t){const i=Math.round(s.x),h=Math.floor(s.y),o=Math.round(s.z);this.inKotcZone=t.some(e=>e.x===i&&e.y===h&&e.z===o)}this.character={eggColor:s.shellColor,primaryGun:s.primaryWeaponItem,secondaryGun:s.secondaryWeaponItem,stamp:s.stampItem,hat:s.hatItem,grenade:s.grenadeItem,melee:s.meleeItem,stampPos:{x:s.stampPosX,y:s.stampPosY}},this.stats={killsInGame:s.kills,deathsInGame:s.deaths,streak:s.streak,totalKills:s.totalKills,totalDeaths:s.totalDeaths,bestGameStreak:s.bestGameStreak,bestOverallStreak:s.bestOverallStreak},this.activeGun=s.weaponIdx,this.selectedGun=s.charClass,this.weapons=[],this.character.primaryGun&&(this.weapons[0]=new n[this.selectedGun],this.weapons[1]=new u),this.grenades=1,this.streak=s.score,this.streakRewards=Object.values(c).filter(i=>s.activeShellStreaks&i),this.hp=s.hp,this.hpShield=0,this.spawnShield=s.shield,this.randomSeed=0}}var w=f;export{f as GamePlayer,w as default};
3
+ import{GunList as n,Movement as m,ReverseSocialMedia as c,ShellStreak as d}from"../constants/index.js";import{Cluck9mm as u}from"../constants/guns.js";class f{constructor(s,t=null){if(this.id=s.id,this.uniqueId=s.uniqueId,this.name=s.name,this.safeName=s.safeName,this.team=s.team,this.playing=s.playing,this.socials=s.social&&JSON.parse(s.social),this.socials&&this.socials.forEach(i=>i.type=c[i.id]),this.isVip=s.upgradeProductId>0,this.showBadge=!s.hideBadge||!1,this.position={x:s.x,y:s.y,z:s.z},this.jumping=s.$controlKeys&m.Jump,this.climbing=!1,this.view={yaw:s.yaw,pitch:s.pitch},t){const i=Math.round(s.x),h=Math.floor(s.y),o=Math.round(s.z);this.inKotcZone=t.some(e=>e.x===i&&e.y===h&&e.z===o)}this.character={eggColor:s.shellColor,primaryGun:s.primaryWeaponItem,secondaryGun:s.secondaryWeaponItem,stamp:s.stampItem,hat:s.hatItem,grenade:s.grenadeItem,melee:s.meleeItem,stampPos:{x:s.stampPosX,y:s.stampPosY}},this.stats={killsInGame:s.kills,deathsInGame:s.deaths,streak:s.streak,totalKills:s.totalKills,totalDeaths:s.totalDeaths,bestGameStreak:s.bestGameStreak,bestOverallStreak:s.bestOverallStreak},this.activeGun=s.weaponIdx,this.selectedGun=s.charClass,this.weapons=[],this.character.primaryGun&&(this.weapons[0]=new n[this.selectedGun],this.weapons[1]=new u),this.grenades=1,this.streak=s.score,this.streakRewards=Object.values(d).filter(i=>s.activeShellStreaks&i),this.hp=s.hp,this.hpShield=0,this.spawnShield=s.shield,this.randomSeed=0}}var w=f;export{f as GamePlayer,w as default};
package/dist/bot.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /* eslint-disable */
2
2
 
3
- import z from"./api.js";import s from"./comm/CommIn.js";import f from"./comm/CommOut.js";import{CloseCode as H}from"./comm/Codes.js";import{CommCode as c}from"./constants/codes.js";import v from"./bot/GamePlayer.js";import W from"./matchmaker.js";import j from"./socket.js";import{ChiknWinnerDailyLimit as K,CollectTypes as G,CoopStates as U,findItemById as p,FramesBetweenSyncs as b,GameActions as M,GameModes as d,GameOptionFlags as F,GunList as Z,ItemTypes as q,Movements as S,PlayTypes as $,ProxiesEnabled as Y,ShellStreaks as u,StateBufferSize as C}from"./constants/index.js";import R from"./dispatches/LookAtPosDispatch.js";import A from"./dispatches/MovementDispatch.js";import{NodeList as J}from"./pathing/mapnode.js";import{coords as Q}from"./wasm/wrapper.js";import{fetchMap as X,initKotcZones as V}from"./util.js";import{Challenges as tt}from"./constants/challenges.js";import{Maps as y}from"./constants/maps.js";const O=Object.fromEntries(Object.entries(U).map(([I,t])=>[t,I])),B=Object.fromEntries(Object.entries(d).map(([I,t])=>[t,I])),L={CHALLENGES:1,STATS:2,PATHFINDING:3,PING:5,COSMETIC_DATA:6,PLAYER_HEALTH:7,PACKET_HOOK:8,LOG_PACKETS:10,NO_LOGIN:11,DEBUG_BUFFER:12,DEBUG_BEST_TARGET:14,KOTC_ZONES:15},x=(I,t)=>(I%t+t)%t;class et{static Intents=L;Intents=L;#e=[];#t={};#i=[];#n;#o;constructor(t={}){t.proxy&&!Y&&this.processError("proxies do not work and hence are not supported in the browser"),this.intents=t.intents||[],this.intents.includes(this.Intents.COSMETIC_DATA)&&(p(1001)||this.processError("you cannot use the COSMETIC_DATA intent inside of the singlefile browser bundles")),this.instance=t.instance||"shellshock.io",this.protocol=t.protocol||"wss",this.proxy=t.proxy||"",this.httpProxy=t.httpProxy||"",this.state={name:"yolkbot",weaponIdx:0,inGame:!1,chatLines:0,yaw:0,pitch:0,controlKeys:0,reloading:!1,swappingGun:!1,usingMelee:!1,stateIdx:0,serverStateIdx:0,shotsFired:0,buffer:[],left:!1},this.players={},this.me=new v({}),this.game={raw:{},code:"",socket:null,gameModeId:0,gameMode:B[0],mapIdx:0,map:{filename:"",hash:"",name:"",modes:{FFA:!1,Teams:!1,Spatula:!1,King:!1},availability:"both",numPlayers:"18",raw:{},nodes:{},zones:[]},playerLimit:0,isGameOwner:!1,isPrivate:!0,options:{gravity:1,damage:1,healthRegen:1,locked:!1,noTeamChange:!1,noTeamShuffle:!1,weaponsDisabled:Array(7).fill(!1),mustUseSecondary:!1},collectables:[[],[]],teamScore:[0,0,0],spatula:{coords:{x:0,y:0,z:0},controlledBy:0,controlledByTeam:0},stage:U.capturing,zoneNumber:0,activeZone:[],capturing:0,captureProgress:0,numCapturing:0,stageName:"",capturePercent:0},this.#o=this.game,this.account={id:0,firebaseId:"",sessionId:"",session:"",email:"",password:"",cw:{atLimit:!1,limit:0,secondsUntilPlay:0,canPlayAgain:Date.now()},loadout:{hatId:null,meleeId:0,stampId:null,classIdx:0,colorIdx:0,grenadeId:0,primaryId:[3100,3600,3400,3800,4e3,4200,4500],secondaryId:new Array(7).fill(3e3),stampPositionX:0,stampPositionY:0},ownedItemIds:[],vip:!1,emailVerified:!1,isAged:!1,eggBalance:0,rawLoginData:{}},this.#n=this.account,this.matchmaker=null,this.api=new z({instance:this.instance,protocol:this.protocol,proxy:this.proxy,httpProxy:this.httpProxy,maxRetries:t?.apiMaxRetries}),this.ping=0,this.lastPingTime=-1,this.lastDeathTime=-1,this.lastUpdateTick=0,this.pathing={nodeList:null,followingPath:!1,activePath:null,activeNode:null,activeNodeIdx:0},this.hasQuit=!1}dispatch(t){return t.validate(this)?(t.check(this)?t.execute(this):this.#e.push(t),!0):!1}async createAccount(t,e){this.account.email=t,this.account.password=e;const a=await this.api.createAccount(t,e);return this.#s(a)}async login(t,e){this.account.email=t,this.account.password=e;const a=await this.api.loginWithCredentials(t,e);return this.#s(a)}async loginWithRefreshToken(t){const e=await this.api.loginWithRefreshToken(t);return this.#s(e)}async loginAnonymously(){delete this.account.email,delete this.account.password;const t=await this.api.loginAnonymously();return this.#s(t)}#s(t){return typeof t!="object"?(this.emit("authFail",t),!1):t.banRemaining?(this.emit("banned",t.banRemaining),!1):t.playerOutput?(t=t.playerOutput,this.account.rawLoginData=t,this.account.eggBalance=t.currentBalance,this.account.emailVerified=t.emailVerified,this.account.firebaseId=t.firebaseId,this.account.id=t.id,this.account.isAged=new Date(t.dateCreated).getTime()<17145468e5,this.account.loadout=t.loadout,this.account.ownedItemIds=t.ownedItemIds,this.account.session=t.session,this.account.sessionId=t.sessionId,this.account.vip=t.upgradeProductId&&!t.upgradeIsExpired,this.intents.includes(this.Intents.STATS)&&(this.account.stats={lifetime:t.statsLifetime,monthly:t.statsCurrent}),this.intents.includes(this.Intents.CHALLENGES)&&this.#a(t.challenges),this.emit("authSuccess",this.account),this.account):(this.emit("authFail",t),!1)}#a(t){this.account.challenges=[];for(const e of t){const a=tt.find(i=>i.id===e.challengeId);a&&(delete e.playerId,this.account.challenges.push({raw:{challengeInfo:a,challengeData:e},id:e.challengeId,name:a.loc.title,desc:a.loc.desc,rewardEggs:a.reward,isRerolled:!!e.reset,isClaimed:!!e.claimed,isCompleted:!!e.completed,progressNum:e.progress,goalNum:a.goal}))}}async initMatchmaker(){return!this.account.sessionId&&!this.intents.includes(this.Intents.NO_LOGIN)&&!await this.loginAnonymously()?!1:(this.matchmaker||(this.matchmaker=new W({sessionId:this.account.sessionId,proxy:this.proxy,instance:this.instance,protocol:this.protocol,noLogin:this.intents.includes(this.Intents.NO_LOGIN),api:this.api}),this.matchmaker.on("authFail",t=>this.emit("authFail",t)),this.matchmaker.on("error",t=>this.processError(t)),await this.matchmaker.getRegions()),!0)}async#c(t){return await this.initMatchmaker()?(await this.matchmaker.waitForConnect(),await new Promise(e=>{const a=i=>{if(i.command==="gameFound"&&(this.matchmaker.off("msg",a),this.game.raw=i,this.game.code=i.id,e(i.id)),i.error&&i.error==="gameNotFound")return this.processError(`Game ${t} not found (likely expired).`),this.leave(),"gameNotFound"};this.matchmaker.on("msg",a),this.matchmaker.send({command:"joinGame",id:t,observe:!1,sessionId:this.account.sessionId})})):"matchmakerInitFail"}async findPublicGame(t){return this.matchmaker||this.initMatchmaker(),this.matchmaker?await this.matchmaker.findPublicGame(t):!1}async createPrivateGame(t={}){if(!await this.initMatchmaker())return!1;if(!t.region&&!this.matchmaker.regionList&&!this.matchmaker.regionList.length)return this.processError("pass a region to createPrivateGame or call getRegions() for a random one");if(t.region||(t.region=this.matchmaker.getRandomRegion()),!t.mode)return this.processError("pass a mode to createPrivateGame");if(typeof d[t.mode]!="number")return this.processError("invalid mode passed to createPrivateGame, see GameModes for a list");t.map||(t.map=y[y.length*Math.random()|0].name);const e=y.find(o=>o.name.toLowerCase()===t.map.toLowerCase()),a=y.indexOf(e);return a===-1?this.processError("invalid map, see the Maps constant for a list"):(await this.matchmaker.waitForConnect(),await new Promise(o=>{const n=l=>{l.command==="gameFound"&&(this.matchmaker.off("msg",n),o(l))};this.matchmaker.on("msg",n),this.matchmaker.send({command:"findGame",region:t.region,playType:$.createPrivate,gameType:d[t.mode],sessionId:this.account.sessionId,noobLobby:!1,map:a})}))}async join(t,e){if(this.state.name=t||"yolkbot",typeof e=="string"){e.includes("#")&&(e=e.split("#")[1]);const i=await this.#c(e);if(i==="matchmakerInitFail")return this.processError("failed to create matchmaker, you may be ratelimited (try a vpn?)");if(i==="gameNotFound")return this.processError("game not found, it may have expired or been deleted");if(!this.game.raw.id)return this.processError("an internal error occured while joining the game, please report this to developers")}if(typeof e=="object"){if(this.account.id===0&&await this.loginAnonymously(),this.game.raw=e,this.game.code=this.game.raw.id,!this.game.raw.id)return this.processError("invalid game object passed to join (missing id)");if(!this.game.raw.subdomain)return this.processError("invalid game object passed to join (missing subdomain)");if(!this.game.raw.uuid)return this.processError("invalid game object passed to join (missing uuid)")}const a=async()=>{try{const i=this.instance.startsWith("localhost:")?this.instance:`${this.game.raw.subdomain}.${this.instance}`;this.game.socket=new j(`${this.protocol}://${i}/game/${this.game.raw.id}`,this.proxy),this.game.socket.onerror=async o=>(this.processError(o),await new Promise(n=>setTimeout(n,100)),await a())}catch{await new Promise(i=>setTimeout(i,100)),await a()}};await a(),this.game.socket.binaryType="arraybuffer",this.game.socket.onopen=()=>this.game.socket.onerror=null,this.game.socket.onmessage=i=>this.processPacket(i.data),this.game.socket.onclose=i=>{this.state.left?this.state.left=!1:(this.emit("close",i.code),this.leave(-1))}}#r(){if(Object.entries(this.me.position).map(e=>Math.floor(e[1])).join(",")===this.pathing.activePath[this.pathing.activePath.length-1].positionStr)this.pathing.followingPath=!1,this.pathing.activePath=null,this.pathing.activeNode=null,this.pathing.activeNodeIdx=0,this.dispatch(new A(0));else{let e;this.pathing.activeNodeIdx<this.pathing.activePath.length-1?(e=this.pathing.activePath[this.pathing.activeNodeIdx+1].flatCenter(),this.dispatch(new R(e))):(e=this.pathing.activePath[this.pathing.activeNodeIdx].flatCenter(),this.dispatch(new R(e)));for(const a of this.pathing.activePath)if(a.flatRadialDistance(this.me.position)<.1&&a.position.y===Math.floor(this.me.position.y)&&this.pathing.activePath.indexOf(a)>=this.pathing.activeNodeIdx){this.pathing.activeNodeIdx=this.pathing.activePath.indexOf(a)+1,this.pathing.activeNode=this.pathing.activePath[this.pathing.activeNodeIdx];break}this.state.controlKeys&S.FORWARD||this.dispatch(new A(S.FORWARD))}}update(){if(!this.hasQuit){if(this.pathing.followingPath&&this.intents.includes(this.Intents.PATHFINDING)&&this.#r(),this.#e.length>0)for(let t=0;t<this.#e.length;t++){const e=this.#e[t];e.check(this)&&(e.execute(this),this.#e.splice(t,1))}if(this.state.chatLines=Math.max(0,this.state.chatLines-1/(30*4)),this.me.playing){const t=this.state.stateIdx;if(this.intents.includes(this.Intents.DEBUG_BUFFER)&&(console.log("setting buffer for idx",t),console.log("checking...shotsFired",this.state.shotsFired)),this.me.jumping=!!(this.state.controlKeys&S.JUMP),this.state.buffer[t]={controlKeys:this.state.controlKeys,yaw:this.state.yaw,pitch:this.state.pitch,shotsFired:this.state.shotsFired},this.state.shotsFired=0,this.lastUpdateTick>=2){this.emit("tick");const e=f.getBuffer();e.packInt8(c.syncMe),e.packInt8(this.state.stateIdx),e.packInt8(this.state.serverStateIdx);const a=x(this.state.stateIdx-b+1,C);for(let i=0;i<b;i++){const o=x(a+i,C);this.intents.includes(this.Intents.DEBUG_BUFFER)&&console.log("going with",this.state.stateIdx,a,o,this.state.buffer[o]),e.packInt8(this.state.buffer[o]?.controlKeys||0),e.packInt8(this.state.buffer[o]?.shotsFired||0);const n=this.state.buffer[o]?.yaw||this.state.yaw,l=this.state.buffer[o]?.pitch||this.state.pitch,r=Q(n,l);e.packString(r),e.packInt8(100)}e.send(this.game.socket),this.state.buffer=[],this.lastUpdateTick=0}else this.lastUpdateTick++;this.state.stateIdx=x(this.state.stateIdx+1,C)}if(this.intents.includes(this.Intents.PLAYER_HEALTH))for(const t of Object.values(this.players)){if(t.playing&&t.hp>0){const e=.1*(this.game.isPrivate?this.game.options.healthRegen:1);t.streakRewards.includes(u.OverHeal)?t.hp=Math.max(100,t.hp-e):t.hp=Math.min(100,t.hp+e)}t.spawnShield>0&&(t.spawnShield-=6)}}}on(t,e){Object.keys(this.#t).includes(t)?this.#t[t].push(e):this.#t[t]=[e]}onAny(t){this.#i.push(t)}off(t,e){e?this.#t[t]=this.#t[t].filter(a=>a!==e):this.#t[t]=[]}emit(t,...e){if(!this.hasQuit){if(this.#t[t])for(const a of this.#t[t])a(...e);for(const a of this.#i)a(t,...e)}}#h(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=s.unPackString().valueOf(),i=this.players[t];this.emit("chat",i,a,e)}#l(){const t=s.unPackInt8U(),e=this.intents.includes(this.Intents.COSMETIC_DATA),a={id:t,uniqueId:s.unPackString(),name:s.unPackString(),safeName:s.unPackString(),charClass:s.unPackInt8U(),team:s.unPackInt8U(),primaryWeaponItem:e?p(s.unPackInt16U()):s.unPackInt16U(),secondaryWeaponItem:e?p(s.unPackInt16U()):s.unPackInt16U(),shellColor:s.unPackInt8U(),hatItem:e?p(s.unPackInt16U()):s.unPackInt16U(),stampItem:e?p(s.unPackInt16U()):s.unPackInt16U(),stampPosX:s.unPackInt8(),stampPosY:s.unPackInt8(),grenadeItem:e?p(s.unPackInt16U()):s.unPackInt16U(),meleeItem:e?p(s.unPackInt16U()):s.unPackInt16U(),x:s.unPackFloat(),y:s.unPackFloat(),z:s.unPackFloat(),$dx:s.unPackFloat(),$dy:s.unPackFloat(),$dz:s.unPackFloat(),yaw:s.unPackRadU(),pitch:s.unPackRad(),score:s.unPackInt32U(),kills:s.unPackInt16U(),deaths:s.unPackInt16U(),streak:s.unPackInt16U(),totalKills:s.unPackInt32U(),totalDeaths:s.unPackInt32U(),bestGameStreak:s.unPackInt16U(),bestOverallStreak:s.unPackInt16U(),shield:s.unPackInt8U(),hp:s.unPackInt8U(),playing:s.unPackInt8U(),weaponIdx:s.unPackInt8U(),$controlKeys:s.unPackInt8U(),upgradeProductId:s.unPackInt8U(),activeShellStreaks:s.unPackInt8U(),social:s.unPackLongString(),hideBadge:s.unPackInt8U()};s.unPackInt8U(),s.unPackInt8U(),s.unPackInt8U();const i=new v(a,this.game.gameMode===d.kotc?this.game.activeZone:null);this.players[a.id]||(this.players[a.id]=i),this.emit("playerJoin",i),this.me.id===a.id&&(this.me=i,this.emit("botJoined",this.me))}#m(){const t=s.unPackInt8U(),e=s.unPackInt16U(),a=s.unPackFloat(),i=s.unPackFloat(),o=s.unPackFloat(),n=s.unPackInt8U(),l=s.unPackInt8U(),r=s.unPackInt8U(),g=s.unPackInt8U(),k=s.unPackInt8U(),h=this.players[t];h&&(h.playing=!0,h.randomSeed=e,h.weapons[0]&&h.weapons[0].ammo&&(h.weapons[0].ammo.rounds=n),h.weapons[0]&&h.weapons[0].ammo&&(h.weapons[0].ammo.store=l),h.weapons[1]&&h.weapons[1].ammo&&(h.weapons[1].ammo.rounds=r),h.weapons[1]&&h.weapons[1].ammo&&(h.weapons[1].ammo.store=g),h.grenades=k,h.position={x:a,y:i,z:o},h.spawnShield=120,this.emit("playerRespawn",h))}#u(){const t=s.unPackInt8U(),e=s.unPackFloat(),a=s.unPackFloat(),i=s.unPackFloat(),o=s.unPackInt8U(),n=this.players[t];if(!n||n.id===this.me.id){for(let r=0;r<b;r++)s.unPackInt8U(),s.unPackRadU(),s.unPackRad(),s.unPackInt8U();return}for(let r=0;r<b;r++)s.unPackInt8U()&S.JUMP?n.jumping=!0:n.jumping=!1,n.view.yaw=s.unPackRadU(),n.view.pitch=s.unPackRad(),s.unPackInt8U();const l=n.position.x!==e||n.position.y!==a||n.position.z!==i||n.climbing!==o;if(n.position.x!==e&&(n.position.x=e),n.position.z!==i&&(n.position.z=i),(!n.jumping||Math.abs(n.position.y-a)>.5&&n.position.y!==a)&&(n.position.y=a),n.climbing!==o&&(n.climbing=o),l&&(this.emit("playerMove",n,n.position),this.game.gameModeId===d.kotc)){const r=this.game.activeZone;if(!r){n.inKotcZone&&(n.inKotcZone=!1,this.emit("playerLeaveZone",n,r));return}const g=Math.round(e),k=Math.floor(a),h=Math.round(i),w=r.some(P=>P.x===g&&P.y===k&&P.z===h);n.inKotcZone&&!w?(n.inKotcZone=!1,this.emit("playerLeaveZone",n)):!n.inKotcZone&&w&&(n.inKotcZone=!0,this.emit("playerEnterZone",n))}}#d(){const t=s.unPackInt8U(),e=this.players[t];e&&(e.playing=!1,this.emit("playerPause",e))}#p(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=this.players[t];a&&(a.activeGun=e,this.emit("playerSwapWeapon",a,e))}#g(){const t=s.unPackInt8U(),e=s.unPackInt8U();s.unPackInt8U(),s.unPackInt8U(),s.unPackInt8U();const a=this.players[t],i=this.players[e];a&&(a.playing=!1,a.streak=0,a.lastDeathTime=Date.now(),a.hp=100,a.spawnShield=0,a.stats.deathsInGame++,a.stats.totalDeaths++),i&&(i.streak++,i.stats.killsInGame++,i.stats.totalKills++,i.stats.streak=i.streak,i.streak>i.stats.bestGameStreak&&(i.stats.bestGameStreak=i.streak),i.streak>i.stats.bestOverallStreak&&(i.stats.bestOverallStreak=i.streak)),this.emit("playerDeath",a,i)}#k(){const t=s.unPackInt8U();for(let i=0;i<6;i++)s.unPackFloat();const e=this.players[t];if(!e)return;const a=e.weapons[e.activeGun];a&&a.ammo&&(a.ammo.rounds--,this.emit("playerFire",e,a))}#f(){const t=s.unPackInt16U(),e=s.unPackInt8U(),a=s.unPackFloat(),i=s.unPackFloat(),o=s.unPackFloat();this.game.collectables[e].push({id:t,x:a,y:i,z:o}),this.emit("spawnItem",e,t,{x:a,y:i,z:o})}#I(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=s.unPackInt8U(),i=s.unPackInt16U(),o=this.players[t];if(this.game.collectables[e]=this.game.collectables[e].filter(n=>n.id!==i),e===G.AMMO){const n=o.weapons[a];n&&n.ammo&&(n.ammo.store=Math.min(n.ammo.storeMax,n.ammo.store+n.ammo.pickup),this.emit("collectAmmo",o,n))}e===G.GRENADE&&(o.grenades++,o.grenades>3&&(o.grenades=3),this.emit("collectGrenade",o))}#P(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=this.players[t];if(!a)return;const i=a.hp;a.hp=e,this.emit("playerDamaged",a,i,a.hp)}#y(){const t=s.unPackInt8U();s.unPackFloat(),s.unPackFloat();const e=this.me.hp;this.me.hp=t,this.emit("selfDamaged",e,this.me.hp)}#w(){const t=s.unPackInt8U(),e=this.players[t];s.unPackInt8U();const a=s.unPackInt8U(),i=s.unPackFloat(),o=s.unPackFloat(),n=s.unPackFloat();if(this.me.climbing=!!s.unPackInt8U(),s.unPackInt8U(),s.unPackInt8U(),!e)return;this.state.serverStateIdx=a;const l=e.position.x,r=e.position.y,g=e.position.z;e.position.x=i,e.position.y=o,e.position.z=n,(l!==i||r!==o||g!==n)&&this.emit("selfMoved",e,{x:l,y:r,z:g},{x:i,y:o,z:n})}#U(){const t=f.getBuffer();t.packInt8(c.eventModifier),t.send(this.game.socket)}#b(){const t=s.unPackInt8U(),e={...this.players[t]};delete this.players[t.toString()],this.emit("playerLeave",e)}#S(){if(this.game.gameModeId===d.spatula){this.game.teamScore[1]=s.unPackInt16U(),this.game.teamScore[2]=s.unPackInt16U();const t={x:s.unPackFloat(),y:s.unPackFloat(),z:s.unPackFloat()},e=s.unPackInt8U(),a=s.unPackInt8U();this.game.spatula={coords:t,controlledBy:e,controlledByTeam:a},this.emit("gameStateChange",this.game)}else this.game.gameModeId===d.kotc?(this.game.stage=s.unPackInt8U(),this.game.zoneNumber=s.unPackInt8U(),this.game.capturing=s.unPackInt8U(),this.game.captureProgress=s.unPackInt16U(),this.game.numCapturing=s.unPackInt8U(),this.game.teamScore[1]=s.unPackInt8U(),this.game.teamScore[2]=s.unPackInt8U(),this.game.stageName=O[this.game.stage],this.game.capturePercent=this.game.captureProgress/1e3,this.game.activeZone=this.game.map.zones?this.game.map.zones[this.game.zoneNumber-1]:null,this.emit("gameStateChange",this.game)):this.game.gameModeId===d.team&&(this.game.teamScore[1]=s.unPackInt16U(),this.game.teamScore[2]=s.unPackInt16U());this.game.gameModeId!==d.spatula&&delete this.game.spatula,this.game.gameModeId!==d.kotc&&(delete this.game.stage,delete this.game.zoneNumber,delete this.game.capturing,delete this.game.captureProgress,delete this.game.numCapturing,delete this.game.stageName,delete this.game.numCapturing,delete this.game.activeZone),this.game.gameModeId===d.ffa&&delete this.game.teamScore}#v(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=this.players[t];switch(e){case u.HardBoiled:t===this.me.id&&(this.me.shieldHp=100),a.streakRewards.push(u.HardBoiled);break;case u.EggBreaker:a.streakRewards.push(u.EggBreaker);break;case u.Restock:{a.grenades=3,a.weapons[0]&&a.weapons[0].ammo&&(a.weapons[0].ammo.rounds=a.weapons[0].ammo.capacity,a.weapons[0].ammo.store=a.weapons[0].ammo.storeMax),a.weapons[1]&&a.weapons[1].ammo&&(a.weapons[1].ammo.rounds=a.weapons[1].ammo.capacity,a.weapons[1].ammo.store=a.weapons[1].ammo.storeMax);break}case u.OverHeal:a.hp=Math.min(200,a.hp+100),a.streakRewards.push(u.OverHeal);break;case u.DoubleEggs:a.streakRewards.push(u.DoubleEggs);break;case u.MiniEgg:a.streakRewards.push(u.MiniEgg);break}this.emit("playerBeginStreak",a,e)}#C(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=this.players[t];[u.EggBreaker,u.OverHeal,u.DoubleEggs,u.MiniEgg].includes(e)&&a.streakRewards.includes(e)&&(a.streakRewards=a.streakRewards.filter(o=>o!==e)),this.emit("playerEndStreak",a,e)}#x(){const t=s.unPackInt8U(),e=s.unPackInt8U();s.unPackFloat(),s.unPackFloat(),this.me.shieldHp=t,this.me.hp=e,this.me.shieldHp<=0?(this.me.streakRewards=this.me.streakRewards.filter(a=>a!==u.HardBoiled),this.emit("selfShieldLost")):this.emit("selfShieldHit",this.me.shieldHp)}#E(){const t={...this.game.options};let e=s.unPackInt8U(),a=s.unPackInt8U(),i=s.unPackInt8U();(e<1||e>4)&&(e=4),(a<0||a>8)&&(a=4),i>16&&(i=4),this.game.options.gravity=e/4,this.game.options.damage=a/4,this.game.options.healthRegen=i/4;const o=s.unPackInt8U();return Object.keys(F).forEach(n=>{const l=o&F[n]?1:0;this.game.options[n]=l}),this.game.options.weaponsDisabled=Array.from({length:7},()=>s.unPackInt8U()===1),this.game.options.mustUseSecondary=this.game.options.weaponsDisabled.every(n=>n),this.emit("gameOptionsChange",t,this.game.options),!1}#T(){const t=s.unPackInt8U();t===M.pause&&(this.emit("gameForcePause"),setTimeout(()=>this.me.playing=!1,3e3)),t===M.reset&&(Object.values(this.players).forEach(e=>e.streak=0),this.game.gameModeId!==d.ffa&&(this.game.teamScore=[0,0,0]),this.game.gameModeId===d.spatula&&(this.game.spatula.controlledBy=0,this.game.spatula.controlledByTeam=0,this.game.spatula.coords={x:0,y:0,z:0}),this.game.gameModeId===d.kotc&&(this.game.stage=U.capturing,this.game.zoneNumber=0,this.game.activeZone=null,this.game.capturing=0,this.game.captureProgress=0,this.game.numCapturing=0,this.game.stageName=O[U.capturing],this.game.capturePercent=0),this.emit("gameReset"))}#G(){if(!this.intents.includes(this.Intents.PING))return;const t=this.ping;this.ping=Date.now()-this.lastPingTime,this.emit("pingUpdate",t,this.ping),setTimeout(()=>{const e=f.getBuffer();e.packInt8(c.ping),e.send(this.game.socket),this.lastPingTime=Date.now()},1e3)}#M(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=this.players[t];if(!a)return;const i=a.team;a.team=e,a.streak=0,this.emit("playerSwitchTeam",a,i,e)}#F(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=s.unPackInt16U(),i=s.unPackInt16U(),o=s.unPackInt8U(),n=s.unPackInt16U(),l=s.unPackInt16U(),r=s.unPackInt16U(),g=s.unPackInt16U();s.unPackInt8(),s.unPackInt8();const k=this.intents.includes(this.Intents.COSMETIC_DATA),h=k?p(a):a,w=k?p(i):i,P=k?p(n):n,N=k?p(l):l,D=k?p(r):r,_=k?p(g):g,m=this.players[t];if(m){const E={...m.character},T=m.selectedGun;m.character.eggColor=o,m.character.primaryGun=h,m.character.secondaryGun=w,m.character.stamp=N,m.character.hat=P,m.character.grenade=D,m.character.melee=_,m.selectedGun=e,m.weapons[0]=new Z[e],T!==m.selectedGun&&this.emit("playerChangeGun",m,T,m.selectedGun),E!==m.character&&this.emit("playerChangeCharacter",m,E,m.character)}}#R(){const t=s.unPackInt32U(),e=this.account.eggBalance;this.account.eggBalance=t,this.emit("balanceUpdate",t-e,t)}#A(){this.me.playing=!1,this.emit("selfRespawnFail")}#O(){const t=s.unPackInt8U(),e=this.players[t];e&&this.emit("playerMelee",e)}#B(){const t=s.unPackInt8U(),e=this.players[t];if(!e)return;const a=e.weapons[e.activeGun];if(a.ammo){const i=Math.min(Math.min(a.ammo.capacity,a.ammo.reload)-a.ammo.rounds,a.ammo.store);a.ammo.rounds+=i,a.ammo.store-=i}this.emit("playerReload",e,a)}updateGameOptions(){const t=f.getBuffer();t.packInt8(c.gameOptions),t.packInt8(this.game.options.gravity*4),t.packInt8(this.game.options.damage*4),t.packInt8(this.game.options.healthRegen*4);const e=(this.game.options.locked?1:0)|(this.game.options.noTeamChange?2:0)|(this.game.options.noTeamShuffle?4:0);t.packInt8(e),this.game.options.weaponsDisabled.forEach(a=>{t.packInt8(a?1:0)}),t.send(this.game.socket)}#L(){this.updateGameOptions()}#N(){const t=s.unPackInt8U();let e=s.unPackInt16U();const a=s.unPackFloat(),i=s.unPackFloat(),o=s.unPackFloat(),n=s.unPackInt8U(),l=s.unPackFloat();this.intents.includes(this.Intents.COSMETIC_DATA)&&(e=p(e)),t===q.Grenade?this.emit("grenadeExploded",e,{x:a,y:i,z:o},n,l):this.emit("rocketHit",{x:a,y:i,z:o},n,l)}#D(){const t=s.unPackInt8U(),e=s.unPackFloat(),a=s.unPackFloat(),i=s.unPackFloat(),o=s.unPackFloat(),n=s.unPackFloat(),l=s.unPackFloat(),r=this.players[t];r&&(r.grenades--,this.emit("playerThrowGrenade",r,{x:e,y:a,z:i},{x:o,y:n,z:l}))}#_(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=this.players[t];if(!a)return;if(!this.intents.includes(this.Intents.CHALLENGES))return this.emit("challengeComplete",a,e);const i=this.account.challenges.find(o=>o.id===e);this.emit("challengeComplete",a,i),a.id===this.me.id&&this.refreshChallenges()}#z(){const t=f.getBuffer();t.packInt8(c.joinGame),t.packString(this.state.name),t.packString(this.game.raw.uuid),t.packInt8(0),t.packInt8(this.state.weaponIdx||this.account?.loadout?.classIdx||0),t.packInt32(this.account.session),t.packString(this.account.firebaseId),t.packString(this.account.sessionId),t.send(this.game.socket)}async#H(){if(this.me.id=s.unPackInt8U(),this.me.team=s.unPackInt8U(),this.game.gameModeId=s.unPackInt8U(),this.game.gameMode=B[this.game.gameModeId],this.game.mapIdx=s.unPackInt8U(),this.game.map=y[this.game.mapIdx],this.intents.includes(this.Intents.KOTC_ZONES)||this.intents.includes(this.Intents.PATHFINDING)){if(this.game.map.raw=await X(this.game.map.filename,this.game.map.hash),this.game.gameModeId===d.kotc){const e=this.game.map.raw.data["DYNAMIC.capture-zone.none"];e?this.game.map.zones=V(e):delete this.game.map.zones}this.intents.includes(this.Intents.PATHFINDING)&&(this.pathing.nodeList=new J(this.game.map.raw))}this.game.playerLimit=s.unPackInt8U(),this.game.isGameOwner=s.unPackInt8U()===1,this.game.isPrivate=s.unPackInt8U()===1,s.unPackInt8U(),this.state.inGame=!0,this.lastDeathTime=Date.now();const t=f.getBuffer();if(t.packInt8(c.clientReady),t.send(this.game.socket),this.updateIntervalId=setInterval(()=>this.update(),100/3),this.intents.includes(this.Intents.PING)){this.lastPingTime=Date.now();const e=f.getBuffer();e.packInt8(c.ping),e.send(this.game.socket)}this.emit("gameReady")}processPacket(t){s.init(t),this.intents.includes(this.Intents.PACKET_HOOK)&&this.emit("packet",t);let e=0,a=0,i=!1;for(;s.isMoreDataAvailable()&&!i;){const o=s.unPackInt8U();switch(o){case c.syncThem:this.#u();break;case c.fire:this.#k();break;case c.hitThem:this.#P();break;case c.syncMe:this.#w();break;case c.hitMe:this.#y();break;case c.swapWeapon:this.#p();break;case c.collectItem:this.#I();break;case c.respawn:this.#m();break;case c.die:this.#g();break;case c.pause:this.#d();break;case c.chat:this.#h();break;case c.addPlayer:this.#l();break;case c.removePlayer:this.#b();break;case c.eventModifier:this.#U();break;case c.metaGameState:this.#S();break;case c.beginShellStreak:this.#v();break;case c.endShellStreak:this.#C();break;case c.hitMeHardBoiled:this.#x();break;case c.gameOptions:this.#E();break;case c.ping:this.#G();break;case c.switchTeam:this.#M();break;case c.changeCharacter:this.#F();break;case c.reload:this.#B();break;case c.explode:this.#N();break;case c.throwGrenade:this.#D();break;case c.spawnItem:this.#f();break;case c.melee:this.#O();break;case c.updateBalance:this.#R();break;case c.challengeCompleted:this.#_();break;case c.socketReady:this.#z();break;case c.gameJoined:this.#H();break;case c.gameAction:this.#T();break;case c.requestGameOptions:this.#L();break;case c.respawnDenied:this.#A();break;case c.expireUpgrade:case c.clientReady:break;case c.musicInfo:s.unPackLongString();break;default:console.error(`processPacket: I got but couldn't identify a: ${Object.keys(c).find(n=>c[n]===o)} ${o}`),e&&console.error(`processPacket: It may be a result of the ${e} command (${a}).`),i=!0;break}e=Object.keys(c).find(n=>c[n]===o),a=o,this.intents.includes(this.Intents.LOG_PACKETS)&&console.log(`[LOG_PACKETS] Packet ${e}: ${a}`)}}async checkChiknWinner(){const t=await this.api.queryServices({cmd:"chicknWinnerReady",id:this.account.id,sessionId:this.account.sessionId});return typeof t=="string"?t:(this.account.cw.limit=t.limit,this.account.cw.atLimit=t.limit>=4,this.account.cw.secondsUntilPlay=(this.account.cw.atLimit?t.period:t.span)||0,this.account.cw.canPlayAgain=Date.now()+this.account.cw.secondsUntilPlay*1e3,this.account.cw)}async playChiknWinner(t=!0){if(this.account.cw.atLimit||this.account.cw.limit>K)return"hit_daily_limit";if(this.account.cw.canPlayAgain>Date.now()&&t)return"on_cooldown";const e=await this.api.queryServices({cmd:"incentivizedVideoReward",firebaseId:this.account.firebaseId,id:this.account.id,sessionId:this.account.sessionId,token:null});return typeof e=="string"?e:e.error?e.error==="RATELIMITED"||e.error==="RATELMITED"?(await this.checkChiknWinner(),"on_cooldown"):e.error==="SESSION_EXPIRED"?"session_expired":(console.error("Unknown Chikn Winner response, report this on Github:",e),"unknown_error"):e.reward?(this.account.eggBalance+=e.reward.eggsGiven,e.reward.itemIds.forEach(a=>this.account.ownedItemIds.push(a)),await this.checkChiknWinner(),e.reward):(console.error("Unknown Chikn Winner response, report this on Github:",e),"unknown_error")}async resetChiknWinner(){if(this.account.eggBalance<200)return"not_enough_eggs";if(!this.account.cw.atLimit)return"not_at_limit";const t=await this.api.queryServices({cmd:"chwReset",sessionId:this.account.sessionId});return typeof t=="string"?t:t.result!=="SUCCESS"?(console.error("Unknown Chikn Winner reset response, report this on Github:",t),"unknown_error"):(this.account.eggBalance-=200,await this.checkChiknWinner(),this.account.cw)}canSee(t){return this.intents.includes(this.Intents.PATHFINDING)?this.pathing.nodeList.hasLineOfSight(this.me.position,t.position):this.processError("You must have the PATHFINDING intent to use this method.")}getBestTarget(t=()=>!0){const a=Object.values(this.players).filter(o=>o?.playing).filter(o=>o.hp>0).filter(o=>o.id!==this.me.id).filter(o=>this.me.team===0||o.team!==this.me.team).filter(o=>!!t(o)).map(o=>({player:o,distance:Math.sqrt(Math.pow(o.position.x-this.me.position.x,2)+Math.pow(o.position.y-this.me.position.y,2)+Math.pow(o.position.z-this.me.position.z,2))})).sort((o,n)=>o.distance-n.distance);if(!a.length)return this.intents.includes(this.Intents.DEBUG_BEST_TARGET)&&console.log("no targets found"),null;const i=a.find(o=>this.canSee(o.player));return this.intents.includes(this.Intents.DEBUG_BEST_TARGET)&&(console.log("detected ",a.length,"targets"),console.log("closest target: ",a[0].player.name),console.log("all targets (ordered): ",a.map(o=>o.player.name)),console.log("found LoS player?",!!i),i&&console.log("closest LoS player: ",i.player.name)),i?{player:i.player,inLoS:!0}:{player:a[0].player,inLoS:!1}}async refreshChallenges(){const t=await this.api.queryServices({cmd:"challengeGetDaily",sessionId:this.account.sessionId,playerId:this.account.id});return this.#a(t),this.account.challenges}async rerollChallenge(t){const e=await this.api.queryServices({cmd:"challengeRerollSlot",sessionId:this.account.sessionId,slotId:t});return this.#a(e),this.account.challenges}async claimChallenge(t){const e=await this.api.queryServices({cmd:"challengeClaimReward",sessionId:this.account.sessionId,slotId:t});return this.#a(e.challenges),e.reward>0&&(this.account.eggBalance+=e.reward),{eggReward:e.reward,updatedChallenges:this.account.challenges}}async refreshBalance(){const t=await this.api.queryServices({cmd:"checkBalance",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId});return this.account.eggBalance=t.currentBalance,t.currentBalance}async redeemCode(t){const e=await this.api.queryServices({cmd:"redeem",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,id:this.account.id,code:t});return e.result==="SUCCESS"?(this.account.eggBalance=e.eggs_given,e.item_ids.forEach(a=>this.account.ownedItemIds.push(a)),{result:e,eggsGiven:e.eggs_given,itemIds:e.item_ids}):e}async claimURLReward(t){const e=await this.api.queryServices({cmd:"urlRewardParams",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,reward:t});return e.result==="SUCCESS"&&(this.account.eggBalance+=e.eggsGiven,e.itemIds.forEach(a=>this.account.ownedItemIds.push(a))),e}async claimSocialReward(t){const e=await this.api.queryServices({cmd:"reward",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,rewardTag:t});return e.result==="SUCCESS"&&(this.account.eggBalance+=e.eggsGiven,e.itemIds.forEach(a=>this.account.ownedItemIds.push(a))),e}async buyItem(t){const e=await this.api.queryServices({cmd:"buy",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,itemId:t,save:!0});return e.result==="SUCCESS"&&(this.account.eggBalance=e.currentBalance,this.account.ownedItemIds.push(e.itemId)),e}processError(t){if(this.#t.error&&this.#t.error.length)this.emit("error",t);else throw t}leave(t=H.mainMenu){this.hasQuit||(t>-1&&(this.game?.socket?.close(t),this.state.left=!0,this.emit("leave",t)),clearInterval(this.updateIntervalId),this.#e=[],this.state.inGame=!1,this.state.chatLines=0,this.state.reloading=!1,this.state.swappingGun=!1,this.state.usingMelee=!1,this.state.stateIdx=0,this.state.serverStateIdx=0,this.state.shotsFired=0,this.state.buffer=[],this.players={},this.me=new v({}),this.game=this.#o,this.ping=0,this.lastPingTime=-1,this.lastDeathTime=-1,this.lastUpdateTick=0,this.pathing={nodeList:null,followingPath:!1,activePath:null,activeNode:null,activeNodeIdx:0})}logout(){this.account=this.#n}quit(t=!1){this.hasQuit||(this.leave(),this.matchmaker&&(this.matchmaker.close(),t||(this.matchmaker=null)),t||(delete this.account,delete this.api,delete this.game,delete this.me,delete this.players,delete this.state),this.hasQuit=!0)}}var It=et;export{et as Bot,It as default};
3
+ import H from"./api.js";import s from"./comm/CommIn.js";import f from"./comm/CommOut.js";import{CloseCode as K}from"./comm/Codes.js";import{CommCode as c}from"./constants/codes.js";import C from"./bot/GamePlayer.js";import j from"./matchmaker.js";import W from"./socket.js";import{ChiknWinnerDailyLimit as Z,CollectType as G,CoopState as U,findItemById as d,FramesBetweenSyncs as b,GameAction as F,GameMode as p,GunList as q,ItemType as $,Movement as S,PlayType as Y,ProxiesEnabled as J,RawGameModes as M,RawGameOptionFlags as R,ShellStreak as u,StateBufferSize as v}from"./constants/index.js";import O from"./dispatches/LookAtPosDispatch.js";import A from"./dispatches/MovementDispatch.js";import{NodeList as Q}from"./pathing/mapnode.js";import{coords as X}from"./wasm/wrapper.js";import{fetchMap as V,initKotcZones as tt}from"./util.js";import{Challenges as et}from"./constants/challenges.js";import{Maps as y}from"./constants/maps.js";const B=Object.fromEntries(Object.entries(U).map(([I,t])=>[t,I.toLowerCase()])),L=Object.fromEntries(Object.entries(p).map(([I,t])=>[t,I])),N={CHALLENGES:1,STATS:2,PATHFINDING:3,PING:5,COSMETIC_DATA:6,PLAYER_HEALTH:7,PACKET_HOOK:8,LOG_PACKETS:10,NO_LOGIN:11,DEBUG_BUFFER:12,DEBUG_BEST_TARGET:14,KOTC_ZONES:15},x=(I,t)=>(I%t+t)%t;class st{static Intents=N;Intents=N;#e=[];#t={};#i=[];#n;#o;constructor(t={}){t.proxy&&!J&&this.processError("proxies do not work and hence are not supported in the browser"),this.intents=t.intents||[],this.intents.includes(this.Intents.COSMETIC_DATA)&&(d(1001)||this.processError("you cannot use the COSMETIC_DATA intent inside of the singlefile browser bundles")),this.instance=t.instance||"shellshock.io",this.protocol=t.protocol||"wss",this.proxy=t.proxy||"",this.httpProxy=t.httpProxy||"",this.state={name:"yolkbot",weaponIdx:0,inGame:!1,chatLines:0,yaw:0,pitch:0,controlKeys:0,reloading:!1,swappingGun:!1,usingMelee:!1,stateIdx:0,serverStateIdx:0,shotsFired:0,buffer:[],left:!1},this.players={},this.me=new C({}),this.game={raw:{},code:"",socket:null,gameModeId:0,gameMode:L[0],mapIdx:0,map:{filename:"",hash:"",name:"",modes:{FFA:!1,Teams:!1,Spatula:!1,King:!1},availability:"both",numPlayers:"18",raw:{},nodes:{},zones:[]},playerLimit:0,isGameOwner:!1,isPrivate:!0,options:{gravity:1,damage:1,healthRegen:1,locked:!1,noTeamChange:!1,noTeamShuffle:!1,weaponsDisabled:Array(7).fill(!1),mustUseSecondary:!1},collectables:[[],[]],teamScore:[0,0,0],spatula:{coords:{x:0,y:0,z:0},controlledBy:0,controlledByTeam:0},stage:U.Capturing,zoneNumber:0,activeZone:[],capturing:0,captureProgress:0,numCapturing:0,stageName:"",capturePercent:0},this.#o=this.game,this.account={id:0,firebaseId:"",sessionId:"",session:"",email:"",password:"",cw:{atLimit:!1,limit:0,secondsUntilPlay:0,canPlayAgain:Date.now()},loadout:{hatId:null,meleeId:0,stampId:null,classIdx:0,colorIdx:0,grenadeId:0,primaryId:[3100,3600,3400,3800,4e3,4200,4500],secondaryId:new Array(7).fill(3e3),stampPositionX:0,stampPositionY:0},ownedItemIds:[],vip:!1,emailVerified:!1,isAged:!1,eggBalance:0,rawLoginData:{}},this.#n=this.account,this.matchmaker=null,this.api=new H({instance:this.instance,protocol:this.protocol,proxy:this.proxy,httpProxy:this.httpProxy,maxRetries:t?.apiMaxRetries}),this.ping=0,this.lastPingTime=-1,this.lastDeathTime=-1,this.lastUpdateTick=0,this.pathing={nodeList:null,followingPath:!1,activePath:null,activeNode:null,activeNodeIdx:0},this.hasQuit=!1}dispatch(t){return t.validate(this)?(t.check(this)?t.execute(this):this.#e.push(t),!0):!1}async createAccount(t,e){this.account.email=t,this.account.password=e;const a=await this.api.createAccount(t,e);return this.#s(a)}async login(t,e){this.account.email=t,this.account.password=e;const a=await this.api.loginWithCredentials(t,e);return this.#s(a)}async loginWithRefreshToken(t){const e=await this.api.loginWithRefreshToken(t);return this.#s(e)}async loginAnonymously(){delete this.account.email,delete this.account.password;const t=await this.api.loginAnonymously();return this.#s(t)}#s(t){return typeof t!="object"?(this.emit("authFail",t),!1):t.banRemaining?(this.emit("banned",t.banRemaining),!1):t.playerOutput?(t=t.playerOutput,this.account.rawLoginData=t,this.account.eggBalance=t.currentBalance,this.account.emailVerified=t.emailVerified,this.account.firebaseId=t.firebaseId,this.account.id=t.id,this.account.isAged=new Date(t.dateCreated).getTime()<17145468e5,this.account.loadout=t.loadout,this.account.ownedItemIds=t.ownedItemIds,this.account.session=t.session,this.account.sessionId=t.sessionId,this.account.vip=t.upgradeProductId&&!t.upgradeIsExpired,this.intents.includes(this.Intents.STATS)&&(this.account.stats={lifetime:t.statsLifetime,monthly:t.statsCurrent}),this.intents.includes(this.Intents.CHALLENGES)&&this.#a(t.challenges),this.emit("authSuccess",this.account),this.account):(this.emit("authFail",t),!1)}#a(t){this.account.challenges=[];for(const e of t){const a=et.find(i=>i.id===e.challengeId);a&&(delete e.playerId,this.account.challenges.push({raw:{challengeInfo:a,challengeData:e},id:e.challengeId,name:a.loc.title,desc:a.loc.desc,rewardEggs:a.reward,isRerolled:!!e.reset,isClaimed:!!e.claimed,isCompleted:!!e.completed,progressNum:e.progress,goalNum:a.goal}))}}async initMatchmaker(){return!this.account.sessionId&&!this.intents.includes(this.Intents.NO_LOGIN)&&!await this.loginAnonymously()?!1:(this.matchmaker||(this.matchmaker=new j({sessionId:this.account.sessionId,proxy:this.proxy,instance:this.instance,protocol:this.protocol,noLogin:this.intents.includes(this.Intents.NO_LOGIN),api:this.api}),this.matchmaker.on("authFail",t=>this.emit("authFail",t)),this.matchmaker.on("error",t=>this.processError(t)),await this.matchmaker.getRegions()),!0)}async#c(t){return await this.initMatchmaker()?(await this.matchmaker.waitForConnect(),await new Promise(e=>{const a=i=>{if(i.command==="gameFound"&&(this.matchmaker.off("msg",a),this.game.raw=i,this.game.code=i.id,e(i.id)),i.error&&i.error==="gameNotFound")return this.processError(`Game ${t} not found (likely expired).`),this.leave(),"gameNotFound"};this.matchmaker.on("msg",a),this.matchmaker.send({command:"joinGame",id:t,observe:!1,sessionId:this.account.sessionId})})):"matchmakerInitFail"}async findPublicGame(t){return this.matchmaker||this.initMatchmaker(),this.matchmaker?await this.matchmaker.findPublicGame(t):!1}async createPrivateGame(t={}){if(!await this.initMatchmaker())return!1;if(!t.region&&!this.matchmaker.regionList&&!this.matchmaker.regionList.length)return this.processError("pass a region to createPrivateGame or call getRegions() for a random one");if(t.region||(t.region=this.matchmaker.getRandomRegion()),!t.mode)return this.processError("pass a mode to createPrivateGame");if(typeof M[t.mode]!="number")return this.processError("invalid mode passed to createPrivateGame");t.map||(t.map=y[y.length*Math.random()|0].name);const e=y.find(o=>o.name.toLowerCase()===t.map.toLowerCase()),a=y.indexOf(e);return a===-1?this.processError("invalid map, see the Maps constant for a list"):(await this.matchmaker.waitForConnect(),await new Promise(o=>{const n=l=>{l.command==="gameFound"&&(this.matchmaker.off("msg",n),o(l))};this.matchmaker.on("msg",n),this.matchmaker.send({command:"findGame",region:t.region,playType:Y.CreatePrivate,gameType:M[t.mode],sessionId:this.account.sessionId,noobLobby:!1,map:a})}))}async join(t,e){if(this.state.name=t||"yolkbot",typeof e=="string"){e.includes("#")&&(e=e.split("#")[1]);const i=await this.#c(e);if(i==="matchmakerInitFail")return this.processError("failed to create matchmaker, you may be ratelimited (try a vpn?)");if(i==="gameNotFound")return this.processError("game not found, it may have expired or been deleted");if(!this.game.raw.id)return this.processError("an internal error occured while joining the game, please report this to developers")}if(typeof e=="object"){if(this.account.id===0&&await this.loginAnonymously(),this.game.raw=e,this.game.code=this.game.raw.id,!this.game.raw.id)return this.processError("invalid game object passed to join (missing id)");if(!this.game.raw.subdomain)return this.processError("invalid game object passed to join (missing subdomain)");if(!this.game.raw.uuid)return this.processError("invalid game object passed to join (missing uuid)")}const a=async()=>{try{const i=this.instance.startsWith("localhost:")?this.instance:`${this.game.raw.subdomain}.${this.instance}`;this.game.socket=new W(`${this.protocol}://${i}/game/${this.game.raw.id}`,this.proxy),this.game.socket.onerror=async o=>(this.processError(o),await new Promise(n=>setTimeout(n,100)),await a())}catch{await new Promise(i=>setTimeout(i,100)),await a()}};await a(),this.game.socket.binaryType="arraybuffer",this.game.socket.onopen=()=>this.game.socket.onerror=null,this.game.socket.onmessage=i=>this.processPacket(i.data),this.game.socket.onclose=i=>{this.state.left?this.state.left=!1:(this.emit("close",i.code),this.leave(-1))}}#r(){if(Object.entries(this.me.position).map(e=>Math.floor(e[1])).join(",")===this.pathing.activePath[this.pathing.activePath.length-1].positionStr)this.pathing.followingPath=!1,this.pathing.activePath=null,this.pathing.activeNode=null,this.pathing.activeNodeIdx=0,this.dispatch(new A(0));else{let e;this.pathing.activeNodeIdx<this.pathing.activePath.length-1?(e=this.pathing.activePath[this.pathing.activeNodeIdx+1].flatCenter(),this.dispatch(new O(e))):(e=this.pathing.activePath[this.pathing.activeNodeIdx].flatCenter(),this.dispatch(new O(e)));for(const a of this.pathing.activePath)if(a.flatRadialDistance(this.me.position)<.1&&a.position.y===Math.floor(this.me.position.y)&&this.pathing.activePath.indexOf(a)>=this.pathing.activeNodeIdx){this.pathing.activeNodeIdx=this.pathing.activePath.indexOf(a)+1,this.pathing.activeNode=this.pathing.activePath[this.pathing.activeNodeIdx];break}this.state.controlKeys&S.Forward||this.dispatch(new A(S.Forward))}}update(){if(!this.hasQuit){if(this.pathing.followingPath&&this.intents.includes(this.Intents.PATHFINDING)&&this.#r(),this.#e.length>0)for(let t=0;t<this.#e.length;t++){const e=this.#e[t];e.check(this)&&(e.execute(this),this.#e.splice(t,1))}if(this.state.chatLines=Math.max(0,this.state.chatLines-1/(30*4)),this.me.playing){const t=this.state.stateIdx;if(this.intents.includes(this.Intents.DEBUG_BUFFER)&&(console.log("setting buffer for idx",t),console.log("checking...shotsFired",this.state.shotsFired)),this.me.jumping=!!(this.state.controlKeys&S.Jump),this.state.buffer[t]={controlKeys:this.state.controlKeys,yaw:this.state.yaw,pitch:this.state.pitch,shotsFired:this.state.shotsFired},this.state.shotsFired=0,this.lastUpdateTick>=2){this.emit("tick");const e=f.getBuffer();e.packInt8(c.syncMe),e.packInt8(this.state.stateIdx),e.packInt8(this.state.serverStateIdx);const a=x(this.state.stateIdx-b+1,v);for(let i=0;i<b;i++){const o=x(a+i,v);this.intents.includes(this.Intents.DEBUG_BUFFER)&&console.log("going with",this.state.stateIdx,a,o,this.state.buffer[o]),e.packInt8(this.state.buffer[o]?.controlKeys||0),e.packInt8(this.state.buffer[o]?.shotsFired||0);const n=this.state.buffer[o]?.yaw||this.state.yaw,l=this.state.buffer[o]?.pitch||this.state.pitch,r=X(n,l);e.packString(r),e.packInt8(100)}e.send(this.game.socket),this.state.buffer=[],this.lastUpdateTick=0}else this.lastUpdateTick++;this.state.stateIdx=x(this.state.stateIdx+1,v)}if(this.intents.includes(this.Intents.PLAYER_HEALTH))for(const t of Object.values(this.players)){if(t.playing&&t.hp>0){const e=.1*(this.game.isPrivate?this.game.options.healthRegen:1);t.streakRewards.includes(u.OverHeal)?t.hp=Math.max(100,t.hp-e):t.hp=Math.min(100,t.hp+e)}t.spawnShield>0&&(t.spawnShield-=6)}}}on(t,e){Object.keys(this.#t).includes(t)?this.#t[t].push(e):this.#t[t]=[e]}onAny(t){this.#i.push(t)}off(t,e){e?this.#t[t]=this.#t[t].filter(a=>a!==e):this.#t[t]=[]}emit(t,...e){if(!this.hasQuit){if(this.#t[t])for(const a of this.#t[t])a(...e);for(const a of this.#i)a(t,...e)}}#h(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=s.unPackString().valueOf(),i=this.players[t];this.emit("chat",i,a,e)}#l(){const t=s.unPackInt8U(),e=this.intents.includes(this.Intents.COSMETIC_DATA),a={id:t,uniqueId:s.unPackString(),name:s.unPackString(),safeName:s.unPackString(),charClass:s.unPackInt8U(),team:s.unPackInt8U(),primaryWeaponItem:e?d(s.unPackInt16U()):s.unPackInt16U(),secondaryWeaponItem:e?d(s.unPackInt16U()):s.unPackInt16U(),shellColor:s.unPackInt8U(),hatItem:e?d(s.unPackInt16U()):s.unPackInt16U(),stampItem:e?d(s.unPackInt16U()):s.unPackInt16U(),stampPosX:s.unPackInt8(),stampPosY:s.unPackInt8(),grenadeItem:e?d(s.unPackInt16U()):s.unPackInt16U(),meleeItem:e?d(s.unPackInt16U()):s.unPackInt16U(),x:s.unPackFloat(),y:s.unPackFloat(),z:s.unPackFloat(),$dx:s.unPackFloat(),$dy:s.unPackFloat(),$dz:s.unPackFloat(),yaw:s.unPackRadU(),pitch:s.unPackRad(),score:s.unPackInt32U(),kills:s.unPackInt16U(),deaths:s.unPackInt16U(),streak:s.unPackInt16U(),totalKills:s.unPackInt32U(),totalDeaths:s.unPackInt32U(),bestGameStreak:s.unPackInt16U(),bestOverallStreak:s.unPackInt16U(),shield:s.unPackInt8U(),hp:s.unPackInt8U(),playing:s.unPackInt8U(),weaponIdx:s.unPackInt8U(),$controlKeys:s.unPackInt8U(),upgradeProductId:s.unPackInt8U(),activeShellStreaks:s.unPackInt8U(),social:s.unPackLongString(),hideBadge:s.unPackInt8U()};s.unPackInt8U(),s.unPackInt8U(),s.unPackInt8U();const i=new C(a,this.game.gameMode===p.KOTC?this.game.activeZone:null);this.players[a.id]||(this.players[a.id]=i),this.emit("playerJoin",i),this.me.id===a.id&&(this.me=i,this.emit("botJoined",this.me))}#m(){const t=s.unPackInt8U(),e=s.unPackInt16U(),a=s.unPackFloat(),i=s.unPackFloat(),o=s.unPackFloat(),n=s.unPackInt8U(),l=s.unPackInt8U(),r=s.unPackInt8U(),g=s.unPackInt8U(),k=s.unPackInt8U(),h=this.players[t];h&&(h.playing=!0,h.randomSeed=e,h.weapons[0]&&h.weapons[0].ammo&&(h.weapons[0].ammo.rounds=n),h.weapons[0]&&h.weapons[0].ammo&&(h.weapons[0].ammo.store=l),h.weapons[1]&&h.weapons[1].ammo&&(h.weapons[1].ammo.rounds=r),h.weapons[1]&&h.weapons[1].ammo&&(h.weapons[1].ammo.store=g),h.grenades=k,h.position={x:a,y:i,z:o},h.spawnShield=120,this.emit("playerRespawn",h))}#u(){const t=s.unPackInt8U(),e=s.unPackFloat(),a=s.unPackFloat(),i=s.unPackFloat(),o=s.unPackInt8U(),n=this.players[t];if(!n||n.id===this.me.id){for(let r=0;r<b;r++)s.unPackInt8U(),s.unPackRadU(),s.unPackRad(),s.unPackInt8U();return}for(let r=0;r<b;r++)s.unPackInt8U()&S.Jump?n.jumping=!0:n.jumping=!1,n.view.yaw=s.unPackRadU(),n.view.pitch=s.unPackRad(),s.unPackInt8U();const l=n.position.x!==e||n.position.y!==a||n.position.z!==i||n.climbing!==o;if(n.position.x!==e&&(n.position.x=e),n.position.z!==i&&(n.position.z=i),(!n.jumping||Math.abs(n.position.y-a)>.5&&n.position.y!==a)&&(n.position.y=a),n.climbing!==o&&(n.climbing=o),l&&(this.emit("playerMove",n,n.position),this.game.gameModeId===p.KOTC)){const r=this.game.activeZone;if(!r){n.inKotcZone&&(n.inKotcZone=!1,this.emit("playerLeaveZone",n,r));return}const g=Math.round(e),k=Math.floor(a),h=Math.round(i),w=r.some(P=>P.x===g&&P.y===k&&P.z===h);n.inKotcZone&&!w?(n.inKotcZone=!1,this.emit("playerLeaveZone",n)):!n.inKotcZone&&w&&(n.inKotcZone=!0,this.emit("playerEnterZone",n))}}#d(){const t=s.unPackInt8U(),e=this.players[t];e&&(e.playing=!1,this.emit("playerPause",e))}#p(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=this.players[t];a&&(a.activeGun=e,this.emit("playerSwapWeapon",a,e))}#g(){const t=s.unPackInt8U(),e=s.unPackInt8U();s.unPackInt8U(),s.unPackInt8U(),s.unPackInt8U();const a=this.players[t],i=this.players[e];a&&(a.playing=!1,a.streak=0,a.lastDeathTime=Date.now(),a.hp=100,a.spawnShield=0,a.stats.deathsInGame++,a.stats.totalDeaths++),i&&(i.streak++,i.stats.killsInGame++,i.stats.totalKills++,i.stats.streak=i.streak,i.streak>i.stats.bestGameStreak&&(i.stats.bestGameStreak=i.streak),i.streak>i.stats.bestOverallStreak&&(i.stats.bestOverallStreak=i.streak)),this.emit("playerDeath",a,i)}#k(){const t=s.unPackInt8U();for(let i=0;i<6;i++)s.unPackFloat();const e=this.players[t];if(!e)return;const a=e.weapons[e.activeGun];a&&a.ammo&&(a.ammo.rounds--,this.emit("playerFire",e,a))}#f(){const t=s.unPackInt16U(),e=s.unPackInt8U(),a=s.unPackFloat(),i=s.unPackFloat(),o=s.unPackFloat();this.game.collectables[e].push({id:t,x:a,y:i,z:o}),this.emit("spawnItem",e,t,{x:a,y:i,z:o})}#I(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=s.unPackInt8U(),i=s.unPackInt16U(),o=this.players[t];if(this.game.collectables[e]=this.game.collectables[e].filter(n=>n.id!==i),e===G.Ammo){const n=o.weapons[a];n&&n.ammo&&(n.ammo.store=Math.min(n.ammo.storeMax,n.ammo.store+n.ammo.pickup),this.emit("collectAmmo",o,n))}e===G.Grenade&&(o.grenades++,o.grenades>3&&(o.grenades=3),this.emit("collectGrenade",o))}#P(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=this.players[t];if(!a)return;const i=a.hp;a.hp=e,this.emit("playerDamaged",a,i,a.hp)}#y(){const t=s.unPackInt8U();s.unPackFloat(),s.unPackFloat();const e=this.me.hp;this.me.hp=t,this.emit("selfDamaged",e,this.me.hp)}#w(){const t=s.unPackInt8U(),e=this.players[t];s.unPackInt8U();const a=s.unPackInt8U(),i=s.unPackFloat(),o=s.unPackFloat(),n=s.unPackFloat();if(this.me.climbing=!!s.unPackInt8U(),s.unPackInt8U(),s.unPackInt8U(),!e)return;this.state.serverStateIdx=a;const l=e.position.x,r=e.position.y,g=e.position.z;e.position.x=i,e.position.y=o,e.position.z=n,(l!==i||r!==o||g!==n)&&this.emit("selfMoved",e,{x:l,y:r,z:g},{x:i,y:o,z:n})}#U(){const t=f.getBuffer();t.packInt8(c.eventModifier),t.send(this.game.socket)}#b(){const t=s.unPackInt8U(),e={...this.players[t]};delete this.players[t.toString()],this.emit("playerLeave",e)}#S(){if(this.game.gameModeId===p.Spatula){this.game.teamScore[1]=s.unPackInt16U(),this.game.teamScore[2]=s.unPackInt16U();const t={x:s.unPackFloat(),y:s.unPackFloat(),z:s.unPackFloat()},e=s.unPackInt8U(),a=s.unPackInt8U();this.game.spatula={coords:t,controlledBy:e,controlledByTeam:a},this.emit("gameStateChange",this.game)}else this.game.gameModeId===p.KOTC?(this.game.stage=s.unPackInt8U(),this.game.zoneNumber=s.unPackInt8U(),this.game.capturing=s.unPackInt8U(),this.game.captureProgress=s.unPackInt16U(),this.game.numCapturing=s.unPackInt8U(),this.game.teamScore[1]=s.unPackInt8U(),this.game.teamScore[2]=s.unPackInt8U(),this.game.stageName=B[this.game.stage],this.game.capturePercent=this.game.captureProgress/1e3,this.game.activeZone=this.game.map.zones?this.game.map.zones[this.game.zoneNumber-1]:null,this.emit("gameStateChange",this.game)):this.game.gameModeId===p.Team&&(this.game.teamScore[1]=s.unPackInt16U(),this.game.teamScore[2]=s.unPackInt16U());this.game.gameModeId!==p.Spatula&&delete this.game.spatula,this.game.gameModeId!==p.KOTC&&(delete this.game.stage,delete this.game.zoneNumber,delete this.game.capturing,delete this.game.captureProgress,delete this.game.numCapturing,delete this.game.stageName,delete this.game.numCapturing,delete this.game.activeZone),this.game.gameModeId===p.FFA&&delete this.game.teamScore}#C(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=this.players[t];switch(e){case u.HardBoiled:t===this.me.id&&(this.me.shieldHp=100),a.streakRewards.push(u.HardBoiled);break;case u.EggBreaker:a.streakRewards.push(u.EggBreaker);break;case u.Restock:{a.grenades=3,a.weapons[0]&&a.weapons[0].ammo&&(a.weapons[0].ammo.rounds=a.weapons[0].ammo.capacity,a.weapons[0].ammo.store=a.weapons[0].ammo.storeMax),a.weapons[1]&&a.weapons[1].ammo&&(a.weapons[1].ammo.rounds=a.weapons[1].ammo.capacity,a.weapons[1].ammo.store=a.weapons[1].ammo.storeMax);break}case u.OverHeal:a.hp=Math.min(200,a.hp+100),a.streakRewards.push(u.OverHeal);break;case u.DoubleEggs:a.streakRewards.push(u.DoubleEggs);break;case u.MiniEgg:a.streakRewards.push(u.MiniEgg);break}this.emit("playerBeginStreak",a,e)}#v(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=this.players[t];[u.EggBreaker,u.OverHeal,u.DoubleEggs,u.MiniEgg].includes(e)&&a.streakRewards.includes(e)&&(a.streakRewards=a.streakRewards.filter(o=>o!==e)),this.emit("playerEndStreak",a,e)}#x(){const t=s.unPackInt8U(),e=s.unPackInt8U();s.unPackFloat(),s.unPackFloat(),this.me.shieldHp=t,this.me.hp=e,this.me.shieldHp<=0?(this.me.streakRewards=this.me.streakRewards.filter(a=>a!==u.HardBoiled),this.emit("selfShieldLost")):this.emit("selfShieldHit",this.me.shieldHp)}#T(){const t={...this.game.options};let e=s.unPackInt8U(),a=s.unPackInt8U(),i=s.unPackInt8U();(e<1||e>4)&&(e=4),(a<0||a>8)&&(a=4),i>16&&(i=4),this.game.options.gravity=e/4,this.game.options.damage=a/4,this.game.options.healthRegen=i/4;const o=s.unPackInt8U();return Object.keys(R).forEach(n=>{const l=o&R[n]?1:0;this.game.options[n]=l}),this.game.options.weaponsDisabled=Array.from({length:7},()=>s.unPackInt8U()===1),this.game.options.mustUseSecondary=this.game.options.weaponsDisabled.every(n=>n),this.emit("gameOptionsChange",t,this.game.options),!1}#E(){const t=s.unPackInt8U();t===F.Pause&&(this.emit("gameForcePause"),setTimeout(()=>this.me.playing=!1,3e3)),t===F.Reset&&(Object.values(this.players).forEach(e=>e.streak=0),this.game.gameModeId!==p.FFA&&(this.game.teamScore=[0,0,0]),this.game.gameModeId===p.Spatula&&(this.game.spatula.controlledBy=0,this.game.spatula.controlledByTeam=0,this.game.spatula.coords={x:0,y:0,z:0}),this.game.gameModeId===p.KOTC&&(this.game.stage=U.Capturing,this.game.zoneNumber=0,this.game.activeZone=null,this.game.capturing=0,this.game.captureProgress=0,this.game.numCapturing=0,this.game.stageName=B[U.Capturing],this.game.capturePercent=0),this.emit("gameReset"))}#G(){if(!this.intents.includes(this.Intents.PING))return;const t=this.ping;this.ping=Date.now()-this.lastPingTime,this.emit("pingUpdate",t,this.ping),setTimeout(()=>{const e=f.getBuffer();e.packInt8(c.ping),e.send(this.game.socket),this.lastPingTime=Date.now()},1e3)}#F(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=this.players[t];if(!a)return;const i=a.team;a.team=e,a.streak=0,this.emit("playerSwitchTeam",a,i,e)}#M(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=s.unPackInt16U(),i=s.unPackInt16U(),o=s.unPackInt8U(),n=s.unPackInt16U(),l=s.unPackInt16U(),r=s.unPackInt16U(),g=s.unPackInt16U();s.unPackInt8(),s.unPackInt8();const k=this.intents.includes(this.Intents.COSMETIC_DATA),h=k?d(a):a,w=k?d(i):i,P=k?d(n):n,D=k?d(l):l,_=k?d(r):r,z=k?d(g):g,m=this.players[t];if(m){const T={...m.character},E=m.selectedGun;m.character.eggColor=o,m.character.primaryGun=h,m.character.secondaryGun=w,m.character.stamp=D,m.character.hat=P,m.character.grenade=_,m.character.melee=z,m.selectedGun=e,m.weapons[0]=new q[e],E!==m.selectedGun&&this.emit("playerChangeGun",m,E,m.selectedGun),T!==m.character&&this.emit("playerChangeCharacter",m,T,m.character)}}#R(){const t=s.unPackInt32U(),e=this.account.eggBalance;this.account.eggBalance=t,this.emit("balanceUpdate",t-e,t)}#O(){this.me.playing=!1,this.emit("selfRespawnFail")}#A(){const t=s.unPackInt8U(),e=this.players[t];e&&this.emit("playerMelee",e)}#B(){const t=s.unPackInt8U(),e=this.players[t];if(!e)return;const a=e.weapons[e.activeGun];if(a.ammo){const i=Math.min(Math.min(a.ammo.capacity,a.ammo.reload)-a.ammo.rounds,a.ammo.store);a.ammo.rounds+=i,a.ammo.store-=i}this.emit("playerReload",e,a)}updateGameOptions(){const t=f.getBuffer();t.packInt8(c.gameOptions),t.packInt8(this.game.options.gravity*4),t.packInt8(this.game.options.damage*4),t.packInt8(this.game.options.healthRegen*4);const e=(this.game.options.locked?1:0)|(this.game.options.noTeamChange?2:0)|(this.game.options.noTeamShuffle?4:0);t.packInt8(e),this.game.options.weaponsDisabled.forEach(a=>{t.packInt8(a?1:0)}),t.send(this.game.socket)}#L(){this.updateGameOptions()}#N(){const t=s.unPackInt8U();let e=s.unPackInt16U();const a=s.unPackFloat(),i=s.unPackFloat(),o=s.unPackFloat(),n=s.unPackInt8U(),l=s.unPackFloat();this.intents.includes(this.Intents.COSMETIC_DATA)&&(e=d(e)),t===$.Grenade?this.emit("grenadeExploded",e,{x:a,y:i,z:o},n,l):this.emit("rocketHit",{x:a,y:i,z:o},n,l)}#D(){const t=s.unPackInt8U(),e=s.unPackFloat(),a=s.unPackFloat(),i=s.unPackFloat(),o=s.unPackFloat(),n=s.unPackFloat(),l=s.unPackFloat(),r=this.players[t];r&&(r.grenades--,this.emit("playerThrowGrenade",r,{x:e,y:a,z:i},{x:o,y:n,z:l}))}#_(){const t=s.unPackInt8U(),e=s.unPackInt8U(),a=this.players[t];if(!a)return;if(!this.intents.includes(this.Intents.CHALLENGES))return this.emit("challengeComplete",a,e);const i=this.account.challenges.find(o=>o.id===e);this.emit("challengeComplete",a,i),a.id===this.me.id&&this.refreshChallenges()}#z(){const t=f.getBuffer();t.packInt8(c.joinGame),t.packString(this.state.name),t.packString(this.game.raw.uuid),t.packInt8(0),t.packInt8(this.state.weaponIdx||this.account?.loadout?.classIdx||0),t.packInt32(this.account.session),t.packString(this.account.firebaseId),t.packString(this.account.sessionId),t.send(this.game.socket)}async#H(){if(this.me.id=s.unPackInt8U(),this.me.team=s.unPackInt8U(),this.game.gameModeId=s.unPackInt8U(),this.game.gameMode=L[this.game.gameModeId],this.game.mapIdx=s.unPackInt8U(),this.game.map=y[this.game.mapIdx],this.intents.includes(this.Intents.KOTC_ZONES)||this.intents.includes(this.Intents.PATHFINDING)){if(this.game.map.raw=await V(this.game.map.filename,this.game.map.hash),this.game.gameModeId===p.KOTC){const e=this.game.map.raw.data["DYNAMIC.capture-zone.none"];e?this.game.map.zones=tt(e):delete this.game.map.zones}this.intents.includes(this.Intents.PATHFINDING)&&(this.pathing.nodeList=new Q(this.game.map.raw))}this.game.playerLimit=s.unPackInt8U(),this.game.isGameOwner=s.unPackInt8U()===1,this.game.isPrivate=s.unPackInt8U()===1,s.unPackInt8U(),this.state.inGame=!0,this.lastDeathTime=Date.now();const t=f.getBuffer();if(t.packInt8(c.clientReady),t.send(this.game.socket),this.updateIntervalId=setInterval(()=>this.update(),100/3),this.intents.includes(this.Intents.PING)){this.lastPingTime=Date.now();const e=f.getBuffer();e.packInt8(c.ping),e.send(this.game.socket)}this.emit("gameReady")}processPacket(t){s.init(t),this.intents.includes(this.Intents.PACKET_HOOK)&&this.emit("packet",t);let e=0,a=0,i=!1;for(;s.isMoreDataAvailable()&&!i;){const o=s.unPackInt8U();switch(o){case c.syncThem:this.#u();break;case c.fire:this.#k();break;case c.hitThem:this.#P();break;case c.syncMe:this.#w();break;case c.hitMe:this.#y();break;case c.swapWeapon:this.#p();break;case c.collectItem:this.#I();break;case c.respawn:this.#m();break;case c.die:this.#g();break;case c.pause:this.#d();break;case c.chat:this.#h();break;case c.addPlayer:this.#l();break;case c.removePlayer:this.#b();break;case c.eventModifier:this.#U();break;case c.metaGameState:this.#S();break;case c.beginShellStreak:this.#C();break;case c.endShellStreak:this.#v();break;case c.hitMeHardBoiled:this.#x();break;case c.gameOptions:this.#T();break;case c.ping:this.#G();break;case c.switchTeam:this.#F();break;case c.changeCharacter:this.#M();break;case c.reload:this.#B();break;case c.explode:this.#N();break;case c.throwGrenade:this.#D();break;case c.spawnItem:this.#f();break;case c.melee:this.#A();break;case c.updateBalance:this.#R();break;case c.challengeCompleted:this.#_();break;case c.socketReady:this.#z();break;case c.gameJoined:this.#H();break;case c.gameAction:this.#E();break;case c.requestGameOptions:this.#L();break;case c.respawnDenied:this.#O();break;case c.expireUpgrade:case c.clientReady:break;case c.musicInfo:s.unPackLongString();break;default:console.error(`processPacket: I got but couldn't identify a: ${Object.keys(c).find(n=>c[n]===o)} ${o}`),e&&console.error(`processPacket: It may be a result of the ${e} command (${a}).`),i=!0;break}e=Object.keys(c).find(n=>c[n]===o),a=o,this.intents.includes(this.Intents.LOG_PACKETS)&&console.log(`[LOG_PACKETS] Packet ${e}: ${a}`)}}async checkChiknWinner(){const t=await this.api.queryServices({cmd:"chicknWinnerReady",id:this.account.id,sessionId:this.account.sessionId});return typeof t=="string"?t:(this.account.cw.limit=t.limit,this.account.cw.atLimit=t.limit>=4,this.account.cw.secondsUntilPlay=(this.account.cw.atLimit?t.period:t.span)||0,this.account.cw.canPlayAgain=Date.now()+this.account.cw.secondsUntilPlay*1e3,this.account.cw)}async playChiknWinner(t=!0){if(this.account.cw.atLimit||this.account.cw.limit>Z)return"hit_daily_limit";if(this.account.cw.canPlayAgain>Date.now()&&t)return"on_cooldown";const e=await this.api.queryServices({cmd:"incentivizedVideoReward",firebaseId:this.account.firebaseId,id:this.account.id,sessionId:this.account.sessionId,token:null});return typeof e=="string"?e:e.error?e.error==="RATELIMITED"||e.error==="RATELMITED"?(await this.checkChiknWinner(),"on_cooldown"):e.error==="SESSION_EXPIRED"?"session_expired":(console.error("Unknown Chikn Winner response, report this on Github:",e),"unknown_error"):e.reward?(this.account.eggBalance+=e.reward.eggsGiven,e.reward.itemIds.forEach(a=>this.account.ownedItemIds.push(a)),await this.checkChiknWinner(),e.reward):(console.error("Unknown Chikn Winner response, report this on Github:",e),"unknown_error")}async resetChiknWinner(){if(this.account.eggBalance<200)return"not_enough_eggs";if(!this.account.cw.atLimit)return"not_at_limit";const t=await this.api.queryServices({cmd:"chwReset",sessionId:this.account.sessionId});return typeof t=="string"?t:t.result!=="SUCCESS"?(console.error("Unknown Chikn Winner reset response, report this on Github:",t),"unknown_error"):(this.account.eggBalance-=200,await this.checkChiknWinner(),this.account.cw)}canSee(t){return this.intents.includes(this.Intents.PATHFINDING)?this.pathing.nodeList.hasLineOfSight(this.me.position,t.position):this.processError("You must have the PATHFINDING intent to use this method.")}getBestTarget(t=()=>!0){const a=Object.values(this.players).filter(o=>o?.playing).filter(o=>o.hp>0).filter(o=>o.id!==this.me.id).filter(o=>this.me.team===0||o.team!==this.me.team).filter(o=>!!t(o)).map(o=>({player:o,distance:Math.sqrt(Math.pow(o.position.x-this.me.position.x,2)+Math.pow(o.position.y-this.me.position.y,2)+Math.pow(o.position.z-this.me.position.z,2))})).sort((o,n)=>o.distance-n.distance);if(!a.length)return this.intents.includes(this.Intents.DEBUG_BEST_TARGET)&&console.log("no targets found"),null;const i=a.find(o=>this.canSee(o.player));return this.intents.includes(this.Intents.DEBUG_BEST_TARGET)&&(console.log("detected ",a.length,"targets"),console.log("closest target: ",a[0].player.name),console.log("all targets (ordered): ",a.map(o=>o.player.name)),console.log("found LoS player?",!!i),i&&console.log("closest LoS player: ",i.player.name)),i?{player:i.player,inLoS:!0}:{player:a[0].player,inLoS:!1}}async refreshChallenges(){const t=await this.api.queryServices({cmd:"challengeGetDaily",sessionId:this.account.sessionId,playerId:this.account.id});return this.#a(t),this.account.challenges}async rerollChallenge(t){const e=await this.api.queryServices({cmd:"challengeRerollSlot",sessionId:this.account.sessionId,slotId:t});return this.#a(e),this.account.challenges}async claimChallenge(t){const e=await this.api.queryServices({cmd:"challengeClaimReward",sessionId:this.account.sessionId,slotId:t});return this.#a(e.challenges),e.reward>0&&(this.account.eggBalance+=e.reward),{eggReward:e.reward,updatedChallenges:this.account.challenges}}async refreshBalance(){const t=await this.api.queryServices({cmd:"checkBalance",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId});return this.account.eggBalance=t.currentBalance,t.currentBalance}async redeemCode(t){const e=await this.api.queryServices({cmd:"redeem",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,id:this.account.id,code:t});return e.result==="SUCCESS"?(this.account.eggBalance=e.eggs_given,e.item_ids.forEach(a=>this.account.ownedItemIds.push(a)),{result:e,eggsGiven:e.eggs_given,itemIds:e.item_ids}):e}async claimURLReward(t){const e=await this.api.queryServices({cmd:"urlRewardParams",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,reward:t});return e.result==="SUCCESS"&&(this.account.eggBalance+=e.eggsGiven,e.itemIds.forEach(a=>this.account.ownedItemIds.push(a))),e}async claimSocialReward(t){const e=await this.api.queryServices({cmd:"reward",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,rewardTag:t});return e.result==="SUCCESS"&&(this.account.eggBalance+=e.eggsGiven,e.itemIds.forEach(a=>this.account.ownedItemIds.push(a))),e}async buyItem(t){const e=await this.api.queryServices({cmd:"buy",firebaseId:this.account.firebaseId,sessionId:this.account.sessionId,itemId:t,save:!0});return e.result==="SUCCESS"&&(this.account.eggBalance=e.currentBalance,this.account.ownedItemIds.push(e.itemId)),e}processError(t){if(this.#t.error&&this.#t.error.length)this.emit("error",t);else throw t}leave(t=K.mainMenu){this.hasQuit||(t>-1&&(this.game?.socket?.close(t),this.state.left=!0,this.emit("leave",t)),clearInterval(this.updateIntervalId),this.#e=[],this.state.inGame=!1,this.state.chatLines=0,this.state.reloading=!1,this.state.swappingGun=!1,this.state.usingMelee=!1,this.state.stateIdx=0,this.state.serverStateIdx=0,this.state.shotsFired=0,this.state.buffer=[],this.players={},this.me=new C({}),this.game=this.#o,this.ping=0,this.lastPingTime=-1,this.lastDeathTime=-1,this.lastUpdateTick=0,this.pathing={nodeList:null,followingPath:!1,activePath:null,activeNode:null,activeNodeIdx:0})}logout(){this.account=this.#n}quit(t=!1){this.hasQuit||(this.leave(),this.matchmaker&&(this.matchmaker.close(),t||(this.matchmaker=null)),t||(delete this.account,delete this.api,delete this.game,delete this.me,delete this.players,delete this.state),this.hasQuit=!0)}}var Pt=st;export{st as Bot,Pt as default};
@@ -1,3 +1,3 @@
1
1
  /* eslint-disable */
2
2
 
3
- const e=[{version:"1.0.6",date:"May 1 2025",content:["Lock in & look out eggventurers, it's time for the Leggacy of the Sun update!","Congrats to the winners of the EGG ORG takeover - all players have been awarded an Eggsassin Stamp!","We liked random killstreak bonuses so much we decided to keep them!","Eggiana Jones has arrived - the newest item bundle featuring a cracking new melee!","Throw Throw Apocalypto! Try the latest Premium Mayan Grenade - in-store & free for VIPs ","We got a hot one! Try the latest map Greenhouse in public & private lobbies","The Public Map pool has been overhauled! The Egg Org Maps are gone, replaced by a range of Mayan maps & old favorites!"]}];export{e as Changelog};
3
+ const e=[{version:"1.0.7",date:"May 3 2025",content:["Hit the gas with the latest Shell Shockers update introducing our smash new game - Kartbros.io.","Enjoy the new Kart Bros items, plus some of the other faves from the Kart and Bros sets in-store now.","Start your engines - a new VIP item has entered the store - Try the Premium Banana Grenade!","The Ridge Racer Bundle features The slick F1 racer Melee - wipe out your frenemies!","So we kinda broke controllers a little bit - fixed for all the joystick jockeys.","Another range of bug fixes, optimizations, ratchet tightening and squeegeeing has taken place behind the scenes.","Buckle up for the eggsciting new map: Zoomies - in public & private lobbies.","The Public Map pool has been switched and now contains 15 of your favorite Shell Shockers Maps."]}];export{e as Changelog};
@@ -1,3 +1,3 @@
1
1
  /* eslint-disable */
2
2
 
3
- const t=class{constructor(){this.dmgTypeId=0,this.highPrecision=!1,this.equipTime=13,this.stowWeaponTime=13,this.accuracy=this.constructor.accuracyMax,this.shootingAccuracy=this.constructor.accuracyMax,this.movementAccuracy=this.constructor.accuracyMax,this.accuracyMax=this.constructor.accuracyMax,this.accuracyMin=this.constructor.accuracyMin,this.accuracyLoss=this.constructor.accuracyLoss,this.accuracyRecover=this.constructor.accuracyRecover,this.tracer=0,this.burstQueue=0,this.adsMod=this.constructor.adsMod||.5,this.movementAccuracyMod=this.constructor.movementAccuracyMod||1,this.reloadBloom=!0,this.reloadTimeMod=this.constructor.reloadTimeMod||1}},s=class extends t{constructor(){super(),this.ammo={rounds:30,capacity:30,reload:30,store:240,storeMax:240,pickup:30},this.longReloadTime=205,this.shortReloadTime=160,this.weaponName="EggK-47",this.internalName="Eggk47",this.standardMeshName="eggk47",this.rof=3,this.recoil=7,this.automatic=!0,this.damage=20,this.totalDamage=20,this.range=20,this.velocity=1.5,this.tracer=1}},i=class extends t{constructor(){super(),this.ammo={rounds:2,capacity:2,reload:2,store:24,storeMax:24,pickup:8},this.longReloadTime=155,this.shortReloadTime=155,this.weaponName="Scrambler",this.internalName="Dozen Gauge",this.standardMeshName="dozenGauge",this.rof=8,this.recoil=10,this.automatic=!1,this.damage=8,this.totalDamage=8*20,this.range=8,this.velocity=1,this.tracer=0,this.damage=30,this.accuracyMax=.03,this.accuracyMin=.15,this.accuracyLoss=.05,this.accuracyRecover=.025,this.totalDamage=30,this.damage=8.5,this.accuracyMax=.14,this.accuracyMin=.17,this.accuracyLoss=.17,this.accuracyRecover=.02,this.totalDamage=170,this.adsMod=.6,this.movementAccuracyMod=.2}},c=class extends t{constructor(){super(),this.ammo={rounds:15,capacity:15,reload:15,store:60,storeMax:60,pickup:15},this.hasScope=!0,this.longReloadTime=225,this.shortReloadTime=165,this.highPrecision=!0,this.weaponName="Free Ranger",this.internalName="CSG-1",this.standardMeshName="csg1",this.rof=13,this.recoil=13,this.automatic=!1,this.damage=110,this.totalDamage=110,this.range=50,this.velocity=1.75,this.tracer=0,this.damage=105,this.accuracyMax=.004,this.accuracyMin=.3,this.accuracyLoss=.3,this.accuracyRecover=.025,this.totalDamage=105}},e=class extends t{constructor(){super(),this.ammo={rounds:15,capacity:15,reload:15,store:60,storeMax:60,pickup:15},this.longReloadTime=195,this.shortReloadTime=160,this.weaponName="Cluck 9mm",this.internalName="Cluck 9mm",this.standardMeshName="cluck9mm",this.rof=4,this.recoil=6,this.automatic=!1,this.damage=25,this.totalDamage=25,this.range=15,this.velocity=1,this.tracer=0,this.damage=26,this.accuracyMax=.035,this.accuracyMin=.15,this.accuracyLoss=.09,this.accuracyRecover=.08,this.totalDamage=26,this.adsMod=.8,this.movementAccuracyMod=.6}},o=class extends t{constructor(){super(),this.ammo={rounds:1,capacity:1,reload:1,store:3,storeMax:3,pickup:1},this.hasScope=!0,this.longReloadTime=170,this.shortReloadTime=170,this.weaponName="RPEGG",this.internalName="Eggsploder",this.standardMeshName="rpegg",this.rof=40,this.recoil=60,this.automatic=!1,this.damage=140,this.radius=2.75,this.totalDamage=140*2.75*.5,this.range=45,this.minRange=3,this.velocity=.4,this.accuracyMax=.015,this.accuracyMin=.3,this.accuracyLoss=.3,this.accuracyRecover=.02,this.absoluteMinAccuracy=.3}},r=class extends t{constructor(){super(),this.ammo={rounds:40,capacity:40,reload:40,store:200,storeMax:200,pickup:40},this.longReloadTime=225,this.shortReloadTime=190,this.weaponName="Whipper",this.internalName="SMEGG",this.standardMeshName="smg",this.rof=10,this.recoil=7,this.automatic=!0,this.damage=15,this.totalDamage=15,this.range=20,this.velocity=1.25,this.tracer=2,this.damage=23,this.accuracyMax=.06,this.accuracyMin=.19,this.accuracyLoss=.045,this.accuracyRecover=.05,this.totalDamage=23,this.adsMod=.6,this.movementAccuracyMod=.7}},h=class extends t{constructor(){super(),this.ammo={rounds:1,capacity:1,reload:1,store:12,storeMax:12,pickup:4},this.hasScope=!0,this.longReloadTime=144,this.shortReloadTime=144,this.weaponName="Crackshot",this.internalName="M2DZ",this.standardMeshName="m24",this.rof=60,this.recoil=40,this.automatic=!1,this.damage=170,this.totalDamage=170,this.range=60,this.velocity=2,this.tracer=0,this.damage=170,this.accuracyMax=0,this.accuracyMin=.35,this.accuracyLoss=.1,this.accuracyRecover=.023,this.totalDamage=170,this.movementAccuracyMod=.85,this.reloadBloom=!1,this.reloadTimeMod=.8}},m=class extends t{constructor(){super(),this.ammo={rounds:24,capacity:24,reload:24,store:150,storeMax:150,pickup:24},this.longReloadTime=205,this.shortReloadTime=160,this.weaponName="Tri-Hard",this.internalName="AUG",this.standardMeshName="aug",this.rof=15,this.recoil=18,this.automatic=!1,this.movementInstability=2,this.damage=20,this.totalDamage=20,this.range=20,this.velocity=1.5,this.tracer=0,this.burst=3,this.burstRof=1800/600,this.damage=35,this.accuracyMax=.03,this.accuracyMin=.15,this.accuracyLoss=.04,this.accuracyRecover=.03,this.totalDamage=34,this.adsMod=.6,this.movementAccuracyMod=.8}};export{m as AUG,c as CSG1,e as Cluck9mm,i as DozenGauge,s as Eggk47,h as M24,o as RPEGG,r as SMG};
3
+ const t=class{constructor(){this.highPrecision=!1,this.accuracy=this.constructor.accuracyMax,this.shootingAccuracy=this.constructor.accuracyMax,this.movementAccuracy=this.constructor.accuracyMax,this.accuracyMax=this.constructor.accuracyMax,this.accuracyMin=this.constructor.accuracyMin,this.accuracyLoss=this.constructor.accuracyLoss,this.accuracyRecover=this.constructor.accuracyRecover,this.tracer=0,this.adsMod=this.constructor.adsMod||.5,this.movementAccuracyMod=this.constructor.movementAccuracyMod||1,this.reloadBloom=!0,this.reloadTimeMod=this.constructor.reloadTimeMod||1}},s=class extends t{constructor(){super(),this.ammo={rounds:30,capacity:30,reload:30,store:240,storeMax:240,pickup:30},this.longReloadTime=205,this.shortReloadTime=160,this.weaponName="EggK-47",this.internalName="Eggk47",this.standardMeshName="eggk47",this.rof=3,this.recoil=7,this.automatic=!0,this.damage=30,this.totalDamage=30,this.range=20,this.velocity=1.5,this.tracer=1}},c=class extends t{constructor(){super(),this.ammo={rounds:2,capacity:2,reload:2,store:24,storeMax:24,pickup:8},this.longReloadTime=155,this.shortReloadTime=155,this.weaponName="Scrambler",this.internalName="Dozen Gauge",this.standardMeshName="dozenGauge",this.rof=8,this.recoil=10,this.automatic=!1,this.range=8,this.velocity=1,this.tracer=0,this.damage=8.5,this.accuracyMax=.13,this.accuracyMin=.16,this.accuracyLoss=.17,this.accuracyRecover=.02,this.totalDamage=170,this.adsMod=.6,this.movementAccuracyMod=.2}},i=class extends t{constructor(){super(),this.ammo={rounds:15,capacity:15,reload:15,store:60,storeMax:60,pickup:15},this.hasScope=!0,this.longReloadTime=225,this.shortReloadTime=165,this.highPrecision=!0,this.weaponName="Free Ranger",this.internalName="CSG-1",this.standardMeshName="csg1",this.rof=13,this.recoil=13,this.automatic=!1,this.damage=110,this.totalDamage=110,this.range=50,this.velocity=1.75,this.tracer=0,this.damage=105,this.accuracyMax=.004,this.accuracyMin=.3,this.accuracyLoss=.3,this.accuracyRecover=.025,this.totalDamage=105}},e=class extends t{constructor(){super(),this.ammo={rounds:15,capacity:15,reload:15,store:60,storeMax:60,pickup:15},this.longReloadTime=195,this.shortReloadTime=160,this.weaponName="Cluck 9mm",this.internalName="Cluck 9mm",this.standardMeshName="cluck9mm",this.rof=4,this.recoil=6,this.automatic=!1,this.damage=25,this.totalDamage=25,this.range=15,this.velocity=1,this.tracer=0,this.damage=26,this.accuracyMax=.035,this.accuracyMin=.15,this.accuracyLoss=.09,this.accuracyRecover=.08,this.totalDamage=26,this.adsMod=.8,this.movementAccuracyMod=.6}},o=class extends t{constructor(){super(),this.ammo={rounds:1,capacity:1,reload:1,store:3,storeMax:3,pickup:1},this.hasScope=!0,this.longReloadTime=170,this.shortReloadTime=170,this.weaponName="RPEGG",this.internalName="Eggsploder",this.standardMeshName="rpegg",this.rof=40,this.recoil=60,this.automatic=!1,this.damage=140,this.radius=2.75,this.totalDamage=140*2.75*.5,this.range=45,this.minRange=3,this.velocity=.4,this.accuracyMax=.015,this.accuracyMin=.3,this.accuracyLoss=.3,this.accuracyRecover=.02,this.absoluteMinAccuracy=.3}},r=class extends t{constructor(){super(),this.ammo={rounds:40,capacity:40,reload:40,store:200,storeMax:200,pickup:40},this.longReloadTime=225,this.shortReloadTime=190,this.weaponName="Whipper",this.internalName="SMEGG",this.standardMeshName="smg",this.rof=10,this.recoil=7,this.automatic=!0,this.damage=15,this.totalDamage=15,this.range=20,this.velocity=1.25,this.tracer=2,this.damage=23,this.accuracyMax=.06,this.accuracyMin=.19,this.accuracyLoss=.045,this.accuracyRecover=.05,this.totalDamage=23,this.adsMod=.6,this.movementAccuracyMod=.7}},h=class extends t{constructor(){super(),this.ammo={rounds:1,capacity:1,reload:1,store:12,storeMax:12,pickup:4},this.hasScope=!0,this.longReloadTime=144,this.shortReloadTime=144,this.weaponName="Crackshot",this.internalName="M2DZ",this.standardMeshName="m24",this.rof=60,this.recoil=40,this.automatic=!1,this.damage=170,this.totalDamage=170,this.range=60,this.velocity=2,this.tracer=0,this.damage=170,this.accuracyMax=0,this.accuracyMin=.35,this.accuracyLoss=.1,this.accuracyRecover=.023,this.totalDamage=170,this.movementAccuracyMod=.85,this.reloadBloom=!1,this.reloadTimeMod=.8}},m=class extends t{constructor(){super(),this.ammo={rounds:24,capacity:24,reload:24,store:150,storeMax:150,pickup:24},this.longReloadTime=205,this.shortReloadTime=160,this.weaponName="Tri-Hard",this.internalName="AUG",this.standardMeshName="aug",this.rof=15,this.recoil=18,this.automatic=!1,this.movementInstability=2,this.damage=20,this.totalDamage=20,this.range=20,this.velocity=1.5,this.tracer=0,this.burst=3,this.burstRof=1800/600,this.damage=35,this.accuracyMax=.03,this.accuracyMin=.15,this.accuracyLoss=.04,this.accuracyRecover=.03,this.totalDamage=34,this.adsMod=.6,this.movementAccuracyMod=.8}};export{m as AUG,i as CSG1,e as Cluck9mm,c as DozenGauge,s as Eggk47,h as M24,o as RPEGG,r as SMG};
@@ -1,3 +1,3 @@
1
1
  /* eslint-disable */
2
2
 
3
- const e={big:[{imageExt:".jpg",link:["https://basketballtips.info?utm_source=ssbigsplash&utm_medium=referral"],label:"BasketBros",active:!1,id:"kt4wqo5fb",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,label:"castles",link:["https://castles.cc?utm=sssplash"],imageExt:".png",id:"kmv2r4wvq",weighted:!1,hideOnCG:!1,linksTo:"link"},{link:["https://www.surveymonkey.com/r/eggjune22?utm_source=sssplash"],label:"Survey",imageExt:".png",id:"l47ejll3r",active:!1,weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",active:!1,label:"VIP Club",linksToVipStore:"1",id:"ki5mdikz13",weighted:!1,hideOnCG:!1,linksTo:"linksToVipStore"},{active:!1,label:"Creators",link:["http://shellcreators.bluewizard.com/"],imageExt:".png",id:"kiutzlr317",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",label:"MonthlyUpdate",active:!1,id:"kperqror1b",linksToTaggedItems:"Merc",weighted:!1,hideOnCG:!1,linksTo:"linksToTaggedItems"},{link:["https://bluewizard.threadless.com/collections/shell-shockers"],label:"BW merch",active:!1,imageExt:".png",id:"kkxdntoi1f",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".png",linksToTaggedItems:"JulyM23",active:!1,label:"Monthy Update",id:"lk7f4zzi1r",weighted:!1,hideOnCG:!1,linksTo:"linksToTaggedItems"},{active:!1,label:"Twitch Drops",link:["https://shellshock.io/twitch?utm_source=ss-splash-ad&utm_medium=referral"],imageExt:".png",id:"lerd8ope1s",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,label:"Nate Nook",link:["https://bluewizard.com/nate/?utm_source=sssplash"],imageExt:".jpg",id:"kzhfdvso1t",weighted:!1,hideOnCG:!1,linksTo:"link"},{label:"Basketball Grenade",link:["https://basketbros.io/?utm_source=ssbigsplash&utm_medium=referral"],active:!1,imageExt:".png",id:"l0srdxke1v",weighted:!1,hideOnCG:!1,linksTo:"link"},{label:"Bad Egg",imageExt:".png",link:["https://freegames.io/game/bad-egg?utm_source=shellshockers&utm_medium=referral&utm_campaign=splashad"],id:"lchuivey1x",active:!1,weighted:!1,hideOnCG:!1,linksTo:"link"},{link:["https://dragonjoust.io?utm_source=shellshockers&utm_medium=referral&utm_campaign=splashad"],label:"Dragon Joust",imageExt:".png",active:!1,id:"lcsafw1j1y",weighted:!1,hideOnCG:!1,linksTo:"link"},{link:["https://freegames.io/game/zuck-vs-musk---techbro-beatdown?utm_source=shellshockers&utm_medium=referral&utm_campaign=splashad"],label:"Zuck v Musk",active:!1,imageExt:".jpg",id:"lj8r5m7o20",weighted:!1,hideOnCG:!1,linksTo:"link"},{link:["https://freegames.io?utm_source=shellshockers&utm_medium=referral&utm_campaign=splashad"],active:!1,label:"Freegames",imageExt:".png",id:"ljyrwybt21",weighted:!1,hideOnCG:!1,linksTo:"link"}],small:[{link:["https://freegames.io/game/football-bros?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Football Bros",active:!0,weighted:!0,hideOnCG:!0,imageExt:".png",id:"lz8tuwxpg",linksTo:"link"},{active:!0,imageExt:".jpg",link:["https://freegames.io/game/basket-bros?utm_source=shell_shockers_houseads&utm_medium=referral","https://www.crazygames.com/game/basketbros"],label:"Basket Bros",id:"kokajqjqu",weighted:!1,hideOnCG:!0,linksTo:"link"},{active:!0,linksToVipStore:"1",imageExt:".png",label:"VIP",id:"kuzrh1cwt",weighted:!1,hideOnCG:!1,linksTo:"linksToVipStore"},{label:"Twitch Drops 7",imageExt:".png",id:"m7b5681oc",weighted:!1,hideOnCG:!1,linksTo:"linkToTwitch",linkToTwitch:"1",active:!1},{link:["https://freegames.io/game/mech-bros/?utm_source=shell_shockers_houseads&utm_medium=referral"],active:!1,label:"Mech Bros",weighted:!1,hideOnCG:!1,imageExt:".jpg",id:"lwk851end",linksTo:"link"},{link:["https://freegames.io/game/soccer-bros?utm_source=shell_shockers&utm_medium=referral","https://www.crazygames.com/game/soccer-bros"],label:"Soccer Bros",imageExt:".jpg",id:"lphl58wab",weighted:!1,hideOnCG:!1,linksTo:"link",active:!1},{imageExt:".png",label:"Private Games",id:"ls3tphkc6",active:!1,weighted:!1,hideOnCG:!1,linksTo:"linksToCreateGame",linksToCreateGame:"1"},{imageExt:".jpg",active:!1,label:"Shell Survey",link:["https://www.surveymonkey.com/r/septshell23"],id:"lofzjd42w",weighted:!1,hideOnCG:!1,linksTo:"link"},{link:["https://freegames.io/game/wrestle-bros?utm_source=shell_shockers_houseads&utm_medium=referral"],active:!1,label:"Wrestle Bros",imageExt:".png",id:"lhkqsfa911",weighted:!1,hideOnCG:!1,linksTo:"link"}],bigBanner:[{active:!0,label:"VIP",linksToVipStore:"1",imageExt:".png",id:"kuzrh1cwg",weighted:!1,hideOnCG:!1,linksTo:"linksToVipStore"},{active:!0,label:"VIP",linksToVipStore:"1",imageExt:".png",id:"kuzrh1cwh",weighted:!1,hideOnCG:!1,linksTo:"linksToVipStore"},{imageExt:".jpg",link:["https://freegames.io/game/basket-bros?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Basket Bros",active:!0,id:"kokal7c9i",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://freegames.io/game/basket-bros?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Basket Bros",active:!0,id:"kokamphkj",weighted:!1,hideOnCG:!1,linksTo:"link"},{label:"Dragon Joust",link:["https://freegames.io/game/dragon-joust?utm_source=shell_shockers&utm_medium=referral"],imageExt:".png",active:!0,id:"laskwdxfs",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!0,label:"Dragon Joust",link:["https://freegames.io/game/dragon-joust?utm_source=shell_shockers&utm_medium=referral"],imageExt:".png",id:"laskwvhat",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!0,label:"Bad Egg",link:["https://freegames.io/game/bad-egg?utm_source=shell_shockers&utm_medium=referral"],imageExt:".png",id:"laskxj0mu",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!0,label:"Bad Egg",link:["https://freegames.io/game/bad-egg?utm_source=shell_shockers&utm_medium=referral"],imageExt:".png",id:"laskxwdnv",weighted:!1,hideOnCG:!1,linksTo:"link"},{link:["https://freegames.io/game/wrestle-bros?utm_source=shell_shockers_houseads&utm_medium=referral"],active:!0,label:"Wrestle Bros",imageExt:".png",id:"lhkqwo2pw",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!0,label:"Wrestle Bros",link:["https://freegames.io/game/wrestle-bros?utm_source=shell_shockers_houseads&utm_medium=referral"],imageExt:".png",id:"lhkqx9ohx",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,imageExt:".jpg",link:["https://www.curiouscorrespondence.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Curious Correspondence",id:"kmy3p8p80",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://www.curiouscorrespondence.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Curious Correspondence",active:!1,id:"kmy3s9571",weighted:!1,hideOnCG:!1,linksTo:"link"},{label:"Curious Correspondence",link:["https://www.curiouscorrespondence.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],active:!1,imageExt:".jpg",id:"kmy3tjgj2",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",active:!1,label:"Friday the 13th Killer Puzzle",link:["https://f13killerpuzzle.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],id:"kmz1018u3",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://f13killerpuzzle.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Friday the 13th Killer Puzzle",id:"kmz1140y4",active:!1,weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".png",link:["https://store.steampowered.com/app/1233690/Hypergalactic_Psychic_Table_Tennis_3000/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Hypergalactic Psychic Table Tennis 3000",id:"kmz12sag5",active:!1,weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".png",active:!1,label:"Nuke Zone",link:["https://nuke.zone/?utm_source=shell_shockers_houseads&utm_medium=referral"],id:"kmz16o7h6",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".png",link:["https://raid.land/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Raid Land",active:!1,id:"kmz18sjd7",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://slashycamp.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],active:!1,label:"Slashy Camp",id:"kmz19yp68",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://slashycamp.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Slashy Camp",active:!1,id:"kmz1ap9b9",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://bluewizard.com/slayawaycamp-free-to-slay/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Slayaway Camp",active:!1,id:"kmz1bycra",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://bluewizard.com/slayawaycamp-free-to-slay/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Slayaway Camp",active:!1,id:"kmz1cyblb",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",active:!1,link:["https://shop.stormcrow.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Shop Storm Crow",id:"kmz1evxgc",weighted:!1,hideOnCG:!1,linksTo:"link"},{link:["https://shop.stormcrow.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Shop Storm Crow",active:!1,imageExt:".jpg",id:"kmz1fpoxd",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://shop.stormcrow.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Shop Storm Crow",active:!1,id:"kmz1gms0e",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://shop.stormcrow.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],active:!1,label:"Shop Storm Crow",id:"kmz1h7u4f",weighted:!1,hideOnCG:!1,linksTo:"link"},{label:"Headless",active:!1,link:["https://headless.gg/?utm_source=shell_shockers_houseads&utm_medium=referral"],imageExt:".jpg",id:"kp7h0zu8k",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,label:"Headless",link:["https://headless.gg/?utm_source=shell_shockers_houseads&utm_medium=referral"],imageExt:".jpg",id:"kp7h1ekxl",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,link:["https://store.steampowered.com/app/1255530/Nuke_Zone/?utm_source=ss-house-ads&utm_medium=referral&utm_campaign=next-fest-launch"],label:"Nuke Zone Next Fest",imageExt:".jpg",id:"kpzrnq8fm",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,label:"Nuke Zone Next Fest",link:["https://store.steampowered.com/app/1255530/Nuke_Zone/?utm_source=ss-house-ads&utm_medium=referral&utm_campaign=next-fest-launch"],imageExt:".jpg",id:"kpzro6wzn",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",label:"Nuke Zone Demo",link:["https://store.steampowered.com/app/1255530/Nuke_Zone/?utm_source=ss-house-ads&utm_medium=referral&utm_campaign=demo-june22"],active:!1,id:"kq88mifpo",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,label:"Nuke Zone Demo",link:["https://store.steampowered.com/app/1255530/Nuke_Zone/?utm_source=ss-house-ads&utm_medium=referral&utm_campaign=demo-june22"],imageExt:".jpg",id:"kq88n006p",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".png",link:["https://apps.apple.com/app/apple-store/id1515978119?pt=118229234&ct=ss-house-ad&mt=8"],active:!1,label:"SS Mobile iOS",id:"krdzwhajq",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,label:"Cubic Castles",imageExt:".png",link:["https://castles.cc/?utm_source=shell_shockers_houseads&utm_medium=referral"],id:"ktn7rc9jr",weighted:!1,hideOnCG:!1,linksTo:"link"}],houseAdPercentChance:100,specialItemsTag:"May25",featuredSocialMedia:"Instagram",premFeatured:"premFeatOne",smHouseAds:[{ad:"badEgg",weighted:0}],shellLogo:[{active:!1,label:"Christmas",imageExt:".svg",id:"lpn8kxv40",weighted:!1,hideOnCG:!1},{imageExt:".svg",label:"Egg Org 2",active:!1,id:"luhi1wp12",weighted:!1,hideOnCG:!1},{imageExt:".svg",label:"Halloween",id:"m1qxbsyk2",weighted:!1,hideOnCG:!1,active:!1}]};export{e as HousePromo};
3
+ const e={big:[{imageExt:".jpg",link:["https://basketballtips.info?utm_source=ssbigsplash&utm_medium=referral"],label:"BasketBros",active:!1,id:"kt4wqo5fb",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,label:"castles",link:["https://castles.cc?utm=sssplash"],imageExt:".png",id:"kmv2r4wvq",weighted:!1,hideOnCG:!1,linksTo:"link"},{link:["https://www.surveymonkey.com/r/eggjune22?utm_source=sssplash"],label:"Survey",imageExt:".png",id:"l47ejll3r",active:!1,weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",active:!1,label:"VIP Club",linksToVipStore:"1",id:"ki5mdikz13",weighted:!1,hideOnCG:!1,linksTo:"linksToVipStore"},{active:!1,label:"Creators",link:["http://shellcreators.bluewizard.com/"],imageExt:".png",id:"kiutzlr317",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",label:"MonthlyUpdate",active:!1,id:"kperqror1b",linksToTaggedItems:"Merc",weighted:!1,hideOnCG:!1,linksTo:"linksToTaggedItems"},{link:["https://bluewizard.threadless.com/collections/shell-shockers"],label:"BW merch",active:!1,imageExt:".png",id:"kkxdntoi1f",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".png",linksToTaggedItems:"JulyM23",active:!1,label:"Monthy Update",id:"lk7f4zzi1r",weighted:!1,hideOnCG:!1,linksTo:"linksToTaggedItems"},{active:!1,label:"Twitch Drops",link:["https://shellshock.io/twitch?utm_source=ss-splash-ad&utm_medium=referral"],imageExt:".png",id:"lerd8ope1s",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,label:"Nate Nook",link:["https://bluewizard.com/nate/?utm_source=sssplash"],imageExt:".jpg",id:"kzhfdvso1t",weighted:!1,hideOnCG:!1,linksTo:"link"},{label:"Basketball Grenade",link:["https://basketbros.io/?utm_source=ssbigsplash&utm_medium=referral"],active:!1,imageExt:".png",id:"l0srdxke1v",weighted:!1,hideOnCG:!1,linksTo:"link"},{label:"Bad Egg",imageExt:".png",link:["https://freegames.io/game/bad-egg?utm_source=shellshockers&utm_medium=referral&utm_campaign=splashad"],id:"lchuivey1x",active:!1,weighted:!1,hideOnCG:!1,linksTo:"link"},{link:["https://dragonjoust.io?utm_source=shellshockers&utm_medium=referral&utm_campaign=splashad"],label:"Dragon Joust",imageExt:".png",active:!1,id:"lcsafw1j1y",weighted:!1,hideOnCG:!1,linksTo:"link"},{link:["https://freegames.io/game/zuck-vs-musk---techbro-beatdown?utm_source=shellshockers&utm_medium=referral&utm_campaign=splashad"],label:"Zuck v Musk",active:!1,imageExt:".jpg",id:"lj8r5m7o20",weighted:!1,hideOnCG:!1,linksTo:"link"},{link:["https://freegames.io?utm_source=shellshockers&utm_medium=referral&utm_campaign=splashad"],active:!1,label:"Freegames",imageExt:".png",id:"ljyrwybt21",weighted:!1,hideOnCG:!1,linksTo:"link"}],small:[{link:["https://freegames.io/game/football-bros?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Football Bros",active:!1,weighted:!0,hideOnCG:!0,imageExt:".png",id:"lz8tuwxpg",linksTo:"link"},{active:!1,imageExt:".jpg",link:["https://freegames.io/game/basket-bros?utm_source=shell_shockers_houseads&utm_medium=referral","https://www.crazygames.com/game/basketbros"],label:"Basket Bros",id:"kokajqjqu",weighted:!1,hideOnCG:!0,linksTo:"link"},{active:!0,linksToVipStore:"1",imageExt:".png",label:"VIP",id:"kuzrh1cwt",weighted:!1,hideOnCG:!1,linksTo:"linksToVipStore"},{imageExt:".jpg",active:!0,label:"Kart Bros",link:["https://kartbros.io/"],id:"mbgzmt107",weighted:!0,hideOnCG:!0,linksTo:"link"},{label:"Twitch Drops 7",imageExt:".png",id:"m7b5681oc",weighted:!1,hideOnCG:!1,linksTo:"linkToTwitch",linkToTwitch:"1",active:!1},{link:["https://freegames.io/game/mech-bros/?utm_source=shell_shockers_houseads&utm_medium=referral"],active:!1,label:"Mech Bros",weighted:!1,hideOnCG:!1,imageExt:".jpg",id:"lwk851end",linksTo:"link"},{link:["https://freegames.io/game/soccer-bros?utm_source=shell_shockers&utm_medium=referral","https://www.crazygames.com/game/soccer-bros"],label:"Soccer Bros",imageExt:".jpg",id:"lphl58wab",weighted:!1,hideOnCG:!1,linksTo:"link",active:!1},{imageExt:".png",label:"Private Games",id:"ls3tphkc6",active:!1,weighted:!1,hideOnCG:!1,linksTo:"linksToCreateGame",linksToCreateGame:"1"},{link:["https://freegames.io/game/wrestle-bros?utm_source=shell_shockers_houseads&utm_medium=referral"],active:!1,label:"Wrestle Bros",imageExt:".png",id:"lhkqsfa911",weighted:!1,hideOnCG:!1,linksTo:"link"}],bigBanner:[{active:!0,label:"VIP",linksToVipStore:"1",imageExt:".png",id:"kuzrh1cwg",weighted:!1,hideOnCG:!1,linksTo:"linksToVipStore"},{active:!0,label:"VIP",linksToVipStore:"1",imageExt:".png",id:"kuzrh1cwh",weighted:!1,hideOnCG:!1,linksTo:"linksToVipStore"},{imageExt:".jpg",link:["https://freegames.io/game/basket-bros?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Basket Bros",active:!0,id:"kokal7c9i",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://freegames.io/game/basket-bros?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Basket Bros",active:!0,id:"kokamphkj",weighted:!1,hideOnCG:!1,linksTo:"link"},{label:"Dragon Joust",link:["https://freegames.io/game/dragon-joust?utm_source=shell_shockers&utm_medium=referral"],imageExt:".png",active:!0,id:"laskwdxfs",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!0,label:"Dragon Joust",link:["https://freegames.io/game/dragon-joust?utm_source=shell_shockers&utm_medium=referral"],imageExt:".png",id:"laskwvhat",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!0,label:"Bad Egg",link:["https://freegames.io/game/bad-egg?utm_source=shell_shockers&utm_medium=referral"],imageExt:".png",id:"laskxj0mu",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!0,label:"Bad Egg",link:["https://freegames.io/game/bad-egg?utm_source=shell_shockers&utm_medium=referral"],imageExt:".png",id:"laskxwdnv",weighted:!1,hideOnCG:!1,linksTo:"link"},{link:["https://freegames.io/game/wrestle-bros?utm_source=shell_shockers_houseads&utm_medium=referral"],active:!0,label:"Wrestle Bros",imageExt:".png",id:"lhkqwo2pw",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!0,label:"Wrestle Bros",link:["https://freegames.io/game/wrestle-bros?utm_source=shell_shockers_houseads&utm_medium=referral"],imageExt:".png",id:"lhkqx9ohx",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,imageExt:".jpg",link:["https://www.curiouscorrespondence.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Curious Correspondence",id:"kmy3p8p80",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://www.curiouscorrespondence.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Curious Correspondence",active:!1,id:"kmy3s9571",weighted:!1,hideOnCG:!1,linksTo:"link"},{label:"Curious Correspondence",link:["https://www.curiouscorrespondence.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],active:!1,imageExt:".jpg",id:"kmy3tjgj2",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",active:!1,label:"Friday the 13th Killer Puzzle",link:["https://f13killerpuzzle.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],id:"kmz1018u3",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://f13killerpuzzle.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Friday the 13th Killer Puzzle",id:"kmz1140y4",active:!1,weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".png",link:["https://store.steampowered.com/app/1233690/Hypergalactic_Psychic_Table_Tennis_3000/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Hypergalactic Psychic Table Tennis 3000",id:"kmz12sag5",active:!1,weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".png",active:!1,label:"Nuke Zone",link:["https://nuke.zone/?utm_source=shell_shockers_houseads&utm_medium=referral"],id:"kmz16o7h6",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".png",link:["https://raid.land/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Raid Land",active:!1,id:"kmz18sjd7",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://slashycamp.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],active:!1,label:"Slashy Camp",id:"kmz19yp68",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://slashycamp.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Slashy Camp",active:!1,id:"kmz1ap9b9",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://bluewizard.com/slayawaycamp-free-to-slay/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Slayaway Camp",active:!1,id:"kmz1bycra",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://bluewizard.com/slayawaycamp-free-to-slay/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Slayaway Camp",active:!1,id:"kmz1cyblb",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",active:!1,link:["https://shop.stormcrow.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Shop Storm Crow",id:"kmz1evxgc",weighted:!1,hideOnCG:!1,linksTo:"link"},{link:["https://shop.stormcrow.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Shop Storm Crow",active:!1,imageExt:".jpg",id:"kmz1fpoxd",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://shop.stormcrow.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],label:"Shop Storm Crow",active:!1,id:"kmz1gms0e",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",link:["https://shop.stormcrow.com/?utm_source=shell_shockers_houseads&utm_medium=referral"],active:!1,label:"Shop Storm Crow",id:"kmz1h7u4f",weighted:!1,hideOnCG:!1,linksTo:"link"},{label:"Headless",active:!1,link:["https://headless.gg/?utm_source=shell_shockers_houseads&utm_medium=referral"],imageExt:".jpg",id:"kp7h0zu8k",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,label:"Headless",link:["https://headless.gg/?utm_source=shell_shockers_houseads&utm_medium=referral"],imageExt:".jpg",id:"kp7h1ekxl",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,link:["https://store.steampowered.com/app/1255530/Nuke_Zone/?utm_source=ss-house-ads&utm_medium=referral&utm_campaign=next-fest-launch"],label:"Nuke Zone Next Fest",imageExt:".jpg",id:"kpzrnq8fm",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,label:"Nuke Zone Next Fest",link:["https://store.steampowered.com/app/1255530/Nuke_Zone/?utm_source=ss-house-ads&utm_medium=referral&utm_campaign=next-fest-launch"],imageExt:".jpg",id:"kpzro6wzn",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".jpg",label:"Nuke Zone Demo",link:["https://store.steampowered.com/app/1255530/Nuke_Zone/?utm_source=ss-house-ads&utm_medium=referral&utm_campaign=demo-june22"],active:!1,id:"kq88mifpo",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,label:"Nuke Zone Demo",link:["https://store.steampowered.com/app/1255530/Nuke_Zone/?utm_source=ss-house-ads&utm_medium=referral&utm_campaign=demo-june22"],imageExt:".jpg",id:"kq88n006p",weighted:!1,hideOnCG:!1,linksTo:"link"},{imageExt:".png",link:["https://apps.apple.com/app/apple-store/id1515978119?pt=118229234&ct=ss-house-ad&mt=8"],active:!1,label:"SS Mobile iOS",id:"krdzwhajq",weighted:!1,hideOnCG:!1,linksTo:"link"},{active:!1,label:"Cubic Castles",imageExt:".png",link:["https://castles.cc/?utm_source=shell_shockers_houseads&utm_medium=referral"],id:"ktn7rc9jr",weighted:!1,hideOnCG:!1,linksTo:"link"}],houseAdPercentChance:100,specialItemsTag:"Jun25",featuredSocialMedia:"tiktok",premFeatured:"premFeatTwo",smHouseAds:[{ad:"badEgg",weighted:0}],shellLogo:[{active:!1,label:"Christmas",imageExt:".svg",id:"lpn8kxv40",weighted:!1,hideOnCG:!1},{imageExt:".svg",label:"Egg Org 2",active:!1,id:"luhi1wp12",weighted:!1,hideOnCG:!1},{imageExt:".svg",label:"Halloween",id:"m1qxbsyk2",weighted:!1,hideOnCG:!1,active:!1}]};export{e as HousePromo};
@@ -1,3 +1,3 @@
1
1
  /* eslint-disable */
2
2
 
3
- import{AUG as t,CSG1 as o,DozenGauge as r,Eggk47 as n,M24 as a,RPEGG as s,SMG as c}from"./guns.js";import{findItemById as P}from"./findItemById.js";const l={none:0,pinned:2,team:4},d=3,m={AMMO:0,GRENADE:1},w={start:0,score:1,win:2,capturing:3,contested:4,takeover:5,abandoned:6,unclaimed:7},x="AIzaSyDP4SIjKaw6A4c-zvfYxICpbEjn1rRnN50",i=10,k=Math.ceil(30/i),S={reset:1,pause:2},g={ffa:0,team:1,spatula:2,kotc:3},u={locked:1,noTeamChange:2,noTeamShuffle:4},M=[n,r,o,s,c,a,t],e=typeof window<"u",f={Hat:1,Stamp:2,Primary:3,Secondary:4,Grenade:6,Melee:7},E={FORWARD:1,BACK:2,LEFT:4,RIGHT:8,JUMP:16,FIRE:32,MELEE:64,SCOPE:128},G={joinPublic:0,createPrivate:1,joinPrivate:2},R=!e&&typeof Bun>"u",T={HardBoiled:1,EggBreaker:2,Restock:4,OverHeal:8,DoubleEggs:16,MiniEgg:32},y={0:"Facebook",1:"Instagram",2:"Tiktok",3:"Discord",4:"Youtube",5:"Twitter",6:"Twitch"},I={Discord:"rew_1200",Tiktok:"rew_1208",Instagram:"rew_1219",Steam:"rew_1223",Facebook:"rew_1227",Twitter:"rew_1234",Twitch:"rew_twitch_social"},h=256,B={blue:1,red:2},b=["giveBasketBrosReward","mercZoneFinalGift","midMonthGiveMeEggs","newYolkerSignupReward","newYolkerItemReward","newYolkerWelcomeBack","WelcomeBack"],A=e?null:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36";export{l as ChatFlags,d as ChiknWinnerDailyLimit,m as CollectTypes,w as CoopStates,x as FirebaseKey,k as FramesBetweenSyncs,S as GameActions,g as GameModes,u as GameOptionFlags,M as GunList,e as IsBrowser,f as ItemTypes,E as Movements,G as PlayTypes,R as ProxiesEnabled,T as ShellStreaks,y as SocialMedias,I as SocialRewards,h as StateBufferSize,i as SyncRate,B as Teams,b as URLRewards,A as UserAgent,P as findItemById};
3
+ import{AUG as o,CSG1 as t,DozenGauge as r,Eggk47 as a,M24 as n,RPEGG as i,SMG as c}from"./guns.js";import{findItemById as D}from"./findItemById.js";const p={None:0,Pinned:2,Team:4,Mod:254,Server:255},l=3,d={Ammo:0,Grenade:1},m={Start:0,Score:1,Win:2,Capturing:3,Contested:4,Takeover:5,Abandoned:6,Unclaimed:7},w="AIzaSyDP4SIjKaw6A4c-zvfYxICpbEjn1rRnN50",x=3,k={Reset:1,Pause:2},S={FFA:0,Team:1,Spatula:2,KOTC:3},g={ffa:0,team:1,spatula:2,kotc:3},u={Locked:1,NoTeamChange:2,NoTeamShuffle:4},f={locked:1,noTeamChange:2,noTeamShuffle:4},T=13,G=[a,r,t,i,c,n,o],e=typeof window<"u",M={Hat:1,Stamp:2,Primary:3,Secondary:4,Grenade:6,Melee:7},h={Forward:1,Backward:2,Left:4,Right:8,Jump:16,Fire:32,Melee:64,Scope:128},R={JoinPublic:0,CreatePrivate:1,JoinPrivate:2},y=!e&&typeof Bun>"u",B={HardBoiled:1,EggBreaker:2,Restock:4,OverHeal:8,DoubleEggs:16,MiniEgg:32},C={Facebook:0,Instagram:1,Tiktok:2,Discord:3,Youtube:4,Twitter:5,Twitch:6},b={0:"facebook",1:"instagram",2:"tiktok",3:"discord",4:"youtube",5:"twitter",6:"twitch"},F={Discord:"rew_1200",Tiktok:"rew_1208",Instagram:"rew_1219",Steam:"rew_1223",Facebook:"rew_1227",Twitter:"rew_1234",Twitch:"rew_twitch_social"},I=256,v={Blue:1,Red:2},P=["giveBasketBrosReward","mercZoneFinalGift","midMonthGiveMeEggs","newYolkerSignupReward","newYolkerItemReward","newYolkerWelcomeBack","WelcomeBack"],_=e?null:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36";export{p as ChatFlag,l as ChiknWinnerDailyLimit,d as CollectType,m as CoopState,w as FirebaseKey,x as FramesBetweenSyncs,k as GameAction,S as GameMode,u as GameOptionFlag,T as GunEquipTime,G as GunList,e as IsBrowser,M as ItemType,h as Movement,R as PlayType,y as ProxiesEnabled,g as RawGameModes,f as RawGameOptionFlags,b as ReverseSocialMedia,B as ShellStreak,C as SocialMedia,F as SocialReward,I as StateBufferSize,v as Team,P as URLRewards,_ as UserAgent,D as findItemById};