var methods = [];
undefined
for (var m in game) {
if (typeof game[m] == "function") {
methods.push(m);
}
}
['resetZoom', 'loadSounds', 'updateQuality', 'updateSettings',
'init', 'onSnapshot', 'chat', 'getMousePosition', 'tryFullscreen',
'getTeamHex', 'onPlayerDead', 'onPlayerAlive', 'disconnect',
'clearEntities', 'showScoreboard', 'openPlayerMenu', 'openReportMenu',
'submitReport', 'closeReportMenu', 'lobbyReady', 'lobbyJoinTeam',
'lobbyNewTeam', 'lobbyLockTeam', 'copyShareLink', 'verifyName',
'play', 'startTutorial', 'videoComplete', 'startSingleplayer',
'startPlayScreen', 'calculateRank']
-
resetZoom
:function(){H.z<=-1?H.zoom=.6:T?H.zoom=.75:I?H.zoom=.8:H.z>=1&&!M?H.zoom=1.3:H.zoom=1}```
-
loadSounds
:function te(){if(!ee){ee=!0,V={collect:new Howl({urls:["assets/collect.wav"],loop:!1,volume:.05}),rank_up:new Howl({urls:["assets/rank_up.wav"],loop:!1,volume:.2}),beep:new Howl({urls:["assets/beep.wav"],loop:!1,volume:.1}),xp_collect:new Howl({urls:["assets/xp_collect.mp3"],loop:!1,volume:.1}),round_end:new Howl({urls:["assets/round_end.wav"],loop:!1,volume:.2}),aboveground:new Howl({urls:["assets/ambient_aboveground.ogg"],loop:!0,volume:.1}),aboveground_winter:new Howl({urls:["assets/ambient_aboveground_winter.ogg"],loop:!0,volume:.2}),aboveground_summer:new Howl({urls:["assets/ambient_aboveground_summer.ogg"],loop:!0,volume:.2}),aboveground_summer_night:new Howl({urls:["assets/ambient_aboveground_summer_night.ogg"],loop:!0,volume:.1}),aboveground_fall:new Howl({urls:["assets/ambient_aboveground_fall.ogg"],loop:!0,volume:.2}),aboveground_fall_night:new Howl({urls:["assets/ambient_aboveground_fall_night.ogg"],loop:!0,volume:.2}),rain:new Howl({urls:["assets/rain.ogg"],loop:!0,volume:.02}),aboveground_night:new Howl({urls:["assets/ambient_aboveground_night.ogg"],loop:!0,volume:.004}),underground:new Howl({urls:["assets/ambient_underground.ogg"],loop:!0,volume:.25}),walk:new Howl({urls:["assets/walk_sound.ogg"],loop:!0,volume:.25})};for(var e=0;e<5;e++)V["thunder"+(e+1)]=new Howl({urls:["assets/thunder"+(e+1)+".ogg"],loop:!1,volume:.06});for(e=0;e<4;e++)V["wood_hit"+(e+1)]=new Howl({urls:["assets/wood_hit"+(e+1)+".mp3"],loop:!1,volume:.1});game.sounds=V}}
-
updateQuality
:function(){for(var e=0;e<q.length;e++){q[e].qualityChanged()}game.updateSettings()}
-
updateSettings
:function(){try{var e=JSON.stringify(game.settings);window.localStorage.setItem("settings",e)}catch(e){console.error("Failed to update settings.")}}
-
init
:function Te(){var e=game.queryData.address;"127.0.0.1"!==e&&"localhost"!==e||(e=window.location.hostname);for(var a=0;a<q.length;a++){q[a].remove()}game.isMapEditor?(s=!0,B={connected:!0,on:function(){}}):game.isSingleplayer?(s=!0,B={connected:!0,on:function(e,t){game.fakeSockets.clientSocket.socketEvents[e]=t},emit:function(e,t){game.fakeSockets.worker?game.fakeSockets.worker.sendMessage(e,t):game.fakeSockets.serverSocket.socketEvents[e](t)},socketEvents:{}},game.fakeSockets.clientSocket=B):B=io("//"+e+":"+game.queryData.port,{query:{userToken:game.queryData.token,gameSocketType:"main"},reconnection:!1,transports:["websocket"],upgrade:!1}),game.mainSocket=B,function(){if(!s)var e=setInterval(function(){(D&&"lobby"!==D||z&&z.canControl)&&((l+=1)===o?(oe.text="You will be kicked for inactivity in one minute.",oe.visible=!0):l>=i&&(B.forcedDisconnect=!0,B.disconnect(),clearInterval(e),oe.text="You have been kicked for inactivity.",oe.visible=!0))},6e4);game.doSpawn=function(e,t){e.preventDefault(),B.emit("spawn",{type:t})},B.on("chat",function(e){if(!game.settings.disableChat)if(e.id)for(var t=0;t<q.length;t++){var a=q[t];if(e.id===a.serverId){a.chat&&(a.chat.text=e.message,a.chat.visible=!0,a.chat.removeChat=Date.now()+5e3);break}}else"team"===e.channel?game.teamChat&&game.teamChat.component&&game.teamChat.component.addChatMessage(e):game.lobbyChat&&game.lobbyChat.component&&game.lobbyChat.component.addChatMessage(e)});var a=Date.now();function v(e){var a=null;return"insect"===e.type?a=ct(e.id,e.subtype,e.x,e.y,e.z,e.width,e.height,e.team,e.netData):"object"===e.type?a=function(e,a,n,r,i,o,s,l,d){var u=bt(e,"object",a,n,r,i,l,d);"stick"===a&&(u.clientsideOnly=!0);if("rock"===a||"stick"===a){var c=new PIXI.Sprite;c.tint=0,c.width=o,c.height=s,c.alpha=.5,c.anchor.set(.5),u.shadow=c,u.addChild(c)}var f=new PIXI.Sprite;f.width=o,f.height=s,f.anchor.set(.5),u.sprite=f,u.addChild(f);var v=250;u.canLookUnder=!1;var b=null;if("anthill"===a){f.texture=J.anthill.texture;var w=new PIXI.Sprite(J.anthill_below.texture);w.y=-20,w.width=o,w.height=s,w.anchor.set(.5),u.sprite2=w,u.addChild(w)}else if("food"===a)f.texture=lt(d.foodType);else if("material"===a)f.texture=lt(d.matType);else if("wreath"===a)J.wreath&&J.wreath.texture?f.texture=J.wreath.texture:f.texture=J.white.texture;else if("brood"===a)b=vt(J.brood.texture,64,64),f.texture=b[0][0];else if("rock"===a)b=[[J.rock1.texture,J.rock2.texture,J.rock3.texture,J.rock4.texture]],f.texture=b[0][d.rockType],u.shadow.texture=f.texture;else if("object_hide"===a)d.sw&&d.sh?(b=vt(J[d.sprite].texture,d.sw,d.sh),f.texture=b[d.sy][d.sx]):f.texture=J[d.sprite].texture,u.canLookUnder=!0;else if("object_solid"===a)f.texture=J[d.sprite].texture;else if(""===a)b=vt(J.brood.texture,64,64),f.texture=b[0][0];else if("stick"===a)b=vt(J.sticks.texture,512,128),f.texture=b[0][d.stickType],u.shadow.texture=f.texture;else if("plant"===a){b=vt(J.clover.texture,64,64),f.texture=b[0][0],u.canLookUnder=!0,v=o,u.leafDropShadowFilter=new PIXI.filters.DropShadowFilter({rotation:90,distance:.8*s,alpha:.175});var M=new PIXI.Sprite(b[1][0]);M.y=.15*-s,M.width=o,M.height=s,M.anchor.set(.5,.85),u.plantStalk=M;var I=d.leafCount;u.leaves=[];for(var T=0;T<I;T++){var S=new PIXI.Sprite(b[0][1]);S.nightValCloseTime=.5+.3*Math.random(),S.winterValCloseTime=.05+.1*Math.random(),S.x=0,S.y=.35*-s,S.width=.35*o,S.height=.35*s,S.baseRotation=2*Math.PI/I*T+d.leafRotation,S.anchor.set(.5,1),S.rotationOffset=Math.round(1e6*Math.random()),u.leaves.push(S)}u.addChild(M);for(var k=0;k<u.leaves.length;k++){var D=u.leaves[k];u.plantStalk.addChild(D)}}else"aphid"===a?f.texture=J.aphid.texture:"food_source"===a?(b=vt(J.spider2.texture,350,350),f.texture=b[0][2]):console.error("Invalid object subtype:",a);u.canLookUnder&&(u.viewDistOffset=250);if("brood"===a){var E=new PIXI.Container;E.getZIndex=function(){return u.getZIndex()-100},u.guiSpriteContainer=E,x.cstage.addChild(E);var C=new PIXI.Sprite(se[0][0]);C.width=40,C.height=40,C.anchor.set(.5),u.guiSprite=C,E.addChild(C)}var A=parseInt(8*Math.random()),_=.2,P=u.tick,L=!1,O=Math.round(1e6*Math.random()),j=0;u.tick=function(e){if("brood"===a&&(A+=_,parseInt(A)>=8&&(A=0,_=.08+Math.random()/6),u.netData&&u.netData.broodStage&&(f.texture=b[parseInt(A)][u.netData.broodStage])),"plant"===a&&u.visible){var n=1;if(ht()&&g&&(n=1+1.5*g),j>100?j-=.05*j:j=0,u.leafDropShadowFilter){var r=t/(t*H.zoom),i=H.y*r,o=.001*(u.y-(i+s));o<0&&(o=0),o>.175&&(o=.175),u.leafDropShadowFilter.alpha=o}if(!z&&game.isSandbox&&j<=1e4&&(Math.abs(Ge)>=5||Math.abs(Xe)>=5)){var l=game.getMousePosition();Math.distanceBetween(u,l)<100&&(j=2e4)}if(j<=1e3)for(var d=0;d<q.length;d++){var c=q[d];if("insect"===c.type&&"spider"===c.subtype&&(Math.abs(c.dx)>=2||Math.abs(c.dy)>=2)&&Math.distanceBetween(u,c)<=95){j=2e4;break}}if("winter"===h.type)u.plantStalk.visible=!1,u.plantStalk.scale.set(1);else if(p&&"winter"===p.type)if(y>=.9)u.plantStalk.visible=!1,u.plantStalk.scale.set(1);else if(y>=.5){var w=2*(y-
-
onSnapshot
:function(e){var t=new DataView(e),a=0,n=t.getFloat64(a);for(d=Date.now()-n,a+=8,_e=0;a<t.byteLength;){var r=t.getUint32(a),i=L[r];if(i){var o={time:n,serverTimeDiff:d,x:t.getFloat32(a+4),y:t.getFloat32(a+8),z:t.getInt8(a+12),rotation:t.getFloat32(a+13)};a+=17,i.addState(o),_e++}else a+=17}return null}
-
chat
:function(e){game.settings.disableChat||(l=0,B.emit("chat",{local:!0,message:e}))}
-
getMousePosition
:function(){if(x.renderer.plugins.interaction&&x.renderer.plugins.interaction.mouse&&x.renderer.plugins.interaction.mouse.global){var e=x.renderer.plugins.interaction.mouse.global,a=t/(t*H.zoom);return(M||e.x<-9e3||e.y<-9e3)&&(e={x:E,y:C}),{x:(e.x+H.x)*a,y:(e.y+H.y)*a}}return{x:0,y:0}}
-
tryFullscreen
:function(){try{document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement||st(document.body)}catch(e){}}
-
getTeamHex
:function(e){var t="#000000";switch(e){case 0:t="#727272";break;case 1:t="#d61d1d";break;case 2:t="#1ecc1e";break;case 3:t="#1c1cce";break;case 4:t="#cfbf00";break;case 5:t="#d16a00";break;case 6:t="#d12da7";break;case 7:t="#00FFFC"}return t}
-
onPlayerDead
:function(){ve?(v=!0,z=null,game.isSandbox=!0):game.services.ad.showBannerAd&&game.services.ad.showBannerAd()}
-
onPlayerAlive
:function(){game.services.ad.hideBannerAd&&game.services.ad.hideBannerAd()}
-
disconnect
:function(){window.location.reload()}
-
clearEntities
:function(){for(var e=0;e<q.length;e++){q[e].remove()}}
-
showScoreboard
:function da(e){la||D?e&&la&&ua():(la=!0,game.lobbyComponent&&game.lobbyComponent.showModal(!0),B&&B.emit("scoreboard",null))}
-
openPlayerMenu
:function(e){$("#scoreboardModal").hide(),game.openReportMenu(e)}
-
openReportMenu
:function(e){var t=function(e){for(var t=0;t<b.players.length;t++){var a=b.players[t];if(a.clientId===e)return a}}(e);t&&(S=!0,$("#reportMenuModal").show(),$("#report-menu-name").text(t.name),ca=t)}
-
submitReport
:function(){if(ca){var e=objectifyForm($("#report-player-form")).reportMessage.trim();e&&e.length>6?(B.emit("reportPlayer",{clientId:ca.clientId,reason:e}),ca=null,game.closeReportMenu()):$.bootstrapGrowl("Report reason must be longer than 6 characters.",{type:"danger"})}}
-
closeReportMenu
:function(){S=!1,$("#reportMessage").val(""),$("#reportMenuModal").hide()}
-
lobbyReady
:function(){B.emit("lobbyReady")}
-
lobbyJoinTeam
:function(e){B.emit("lobbyJoinTeam",e)}
-
lobbyNewTeam
:function(){B.emit("lobbyNewTeam")}
-
lobbyLockTeam
:function(){B.emit("lobbyLockTeam")}
-
copyShareLink
:function(e){try{!function(e){var t,a,n="INPUT"===e.tagName||"TEXTAREA"===e.tagName;if(n)r=e,t=e.selectionStart,a=e.selectionEnd;else{if(!(r=document.getElementById("_hiddenCopyText_"))){var r=document.createElement("textarea");r.style.position="absolute",r.style.left="-9999px",r.style.top="0",r.id="_hiddenCopyText_",document.body.appendChild(r)}r.textContent=e.textContent}var i,o=document.activeElement;r.focus(),r.setSelectionRange(0,r.value.length);try{i=document.execCommand("copy")}catch(e){i=!1}o&&"function"==typeof o.focus&&o.focus(),n?e.setSelectionRange(t,a):r.textContent=""}(document.getElementById(e)),$.bootstrapGrowl("Link copied to clipboard!",{type:"success"})}catch(e){$.bootstrapGrowl("Failed to copy! Try and select the link.",{type:"danger"})}}
-
verifyName
:function(e){return e?/[^a-zA-Z0-9\[\]]/.test(e)?($.bootstrapGrowl("Names can only have letters and numbers.",{type:"danger"}),!1):e.length<=2?($.bootstrapGrowl("Name is too short.",{type:"danger"}),!1):!(e.length>16)||($.bootstrapGrowl("Name is too long.",{type:"danger"}),!1):($.bootstrapGrowl("Please enter a name.",{type:"danger"}),!1)}
-
play
:function(e,t,a){t||(t=lastPlayData),t||(t={}),lastPlayData=t;var n=t.playerName;if(!n&&window.localStorage&&(n=window.localStorage.getItem("name")),a||game.verifyName(n)){game.isTutorial=!1;try{window.localStorage?game.disableTutorialAsk="true"===window.localStorage.getItem("disableTutorialAsk"):game.disableTutorialAsk="true"===Cookies.get("disableTutorialAsk")}catch(e){game.disableTutorialAsk="true"===Cookies.get("disableTutorialAsk")}if(game.services.user.currentUser&&game.services.user.currentUser.currentXp>=1e3&&(game.disableTutorialAsk=!0),!game.disableTutorialAsk){try{window.localStorage?window.localStorage.setItem("disableTutorialAsk","true"):Cookies.set("disableTutorialAsk",game.disableTutorialAsk,{expires:365})}catch(e){Cookies.set("disableTutorialAsk",game.disableTutorialAsk,{expires:365})}try{return void game.startTutorial()}catch(e){}}if(e||game.queryData&&game.queryData.invite||!game.services.ad.checkShowVideoAd()){var r="";Cookies.get("token")&&(r="&session="+Cookies.get("token"));var i=t.regionCode;i||(i="NA1");var o="";game.queryData&&game.queryData.invite&&(o="&invite="+game.queryData.invite),$("#loading-overlay").show(),axios.post(API_URL+"/token?name="+n+"®ion="+i+r+o,e).then(function(t){var a=t.data;a.success?(Cookies.set("lastUpdateSeen",$("#change-log-text").data().updateCount,{expires:365}),window.localStorage&&window.localStorage.setItem("name",n),window.ga&&(ga("send",{hitType:"event",eventCategory:"Lobby",eventAction:r?"playAsUser":"playAsGuest"}),e&&e.privateGame&&ga("send",{hitType:"event",eventCategory:"Lobby",eventAction:"createPrivateGame"})),game.queryData=a,game.startPlayScreen(!1,!1),game.init(),$("#loading-overlay").hide()):($.bootstrapGrowl(a.message,{type:"danger"}),$("#loading-overlay").hide())},function(){$.bootstrapGrowl("Failed to connect to game server.",{type:"danger"}),$("#loading-overlay").hide()})}else waitingToPlay=!0}}
-
startTutorial
:function(){game.disableTutorialAsk=!0,game.startSingleplayer(!0)}
-
videoComplete
:function(){waitingToPlay&&(game.play(),waitingToPlay=!1),waitingToPlaySingleplayer&&(game.startSingleplayer(!1,waitingToPlaySingleplayer.isSandbox),waitingToPlaySingleplayer=null)}
-
startSingleplayer
:function startSingleplayer(e,t){if(e||!game.services.ad.checkShowVideoAd()){if(serverConfig={isSingleplayer:!0,isTutorial:e,isSandbox:t,skipGameLobby:!0,isMobile:game.isMobile},game.clearEntities(),game.isTutorial=e,window.Worker)registerWorker();else{var a={to:function(){return a},emit:function(e,t){game.fakeSockets&&game.fakeSockets.clientSocket.socketEvents[e]&&game.fakeSockets.clientSocket.socketEvents[e](t)},sendGlobalMessage:function(e,t){game.fakeSockets&&game.fakeSockets.clientSocket.socketEvents[e]&&game.fakeSockets.clientSocket.socketEvents[e](t)}},n=new window.antwarServer.Server(a,1,function(){},{},null,null,serverConfig,window);n.startGame(),game.fakeSockets={serverSocket:{connected:!0,on:function(e,t){game.fakeSockets.serverSocket.socketEvents[e]=t},emit:function(e,t){game.fakeSockets.clientSocket.socketEvents[e](t)},snapSocket:{client:{conn:{write:function(e){game.onSnapshot(e.buffer)}}}},socketEvents:{},disconnect:function(){window.location.reload()}}},startPlayScreen(!0,!0),setTimeout(function(){game.server=n,game.init(),game.fakeSockets.serverSocket.name="Player",game.fakeSockets.serverSocket.user={isDev:!0},n.onClientConnected(game.fakeSockets.serverSocket)},1)}if(e){game.disableTutorialAsk=!0;try{window.localStorage?window.localStorage.setItem("disableTutorialAsk","true"):Cookies.set("disableTutorialAsk",game.disableTutorialAsk,{expires:365})}catch(e){Cookies.set("disableTutorialAsk",game.disableTutorialAsk,{expires:365})}}var r="playSingleplayer";e&&(r="playTutorial"),t&&(r="playSandbox"),window.ga&&ga("send",{hitType:"event",eventCategory:"Lobby",eventAction:r})}else waitingToPlaySingleplayer={isSandbox:t}}
-
startPlayScreen
:function startPlayScreen(e,t){$("#ad-menu").remove(),game.loadSounds(),game.isPlayScreen=!0,game.isSingleplayer=e,game.isSandbox=t,e||game.queryData&&game.queryData.token?(game.services.ad.hideBannerAd(),cleanUri()):window.location="/",game.services.socket.disconnectMenuSocket(),game.appComponent.updateIsPlayScreen(),$(".game-menu-button").show()}
-
calculateRank
:function(e){return Math.floor(RANK_CONSTANT*Math.sqrt(e))}
Todo: Add documentation on what the functions do