<!-- SOLID-PLAYTIME · part 172 -->
"#9bf8ff",n.fillText(Math.max(0,Math.round(o.infusion)).toLocaleString(),i-78,c)});if(n.strokeStyle="rgba(255,220,111,.6)",n.lineWidth=8,n.strokeRect(25,25,i-50,s-50),n.strokeStyle="rgba(114,244,255,.35)",n.lineWidth=3,n.strokeRect(42,42,i-84,s-84),this.leaderboardTexture)this.leaderboardTexture.needsUpdate=!0}setLeaderboard(t){this.paintLeaderboard(t)}buildPortal(t,e,n,i){let s=new he,a=this.ground(e,n);s.position.set(e,a+4.6,n);for(let o=0;o<4;o+=1){let l=new At(new cn(3.4+o*0.55,0.11,8,48),this.glow(o%2?16769947:i,0.82-o*0.13));l.userData.speed=0.22+o*0.11,s.add(l)}let r=new At(new Oc(3.1,48),new Pn({color:6,transparent:!0,opacity:0.92,side:hn}));return r.position.z=0.08,s.add(r),s.userData.label=t,this.scene.add(s),s}canOccupy(t,e){return Math.hypot(t-Aa.x,e-Aa.y)>=9.2}setMovement(t,e){this.moveX=Math.max(-1,Math.min(1,t)),this.moveY=Math.max(-1,Math.min(1,e))}setRun(t){this.run=t}setActive(t){if(this.active=t,!t)this.setMovement(0,0)}jump(){if(this.flying)this.flightLift=this.flightLift+3.4,this.vy=Math.max(this.vy,4.6);else if(this.grounded)this.vy=9.2,this.grounded=!1}toggleFly(){if(this.flying=!this.flying,this.leaderboardMesh&&(this.leaderboardMesh.visible=!this.flying),this.leaderboardBox&&(this.leaderboardBox.visible=!this.flying),this.softLanding=!this.flying,this.flying)this.grounded=!1,this.vy=Math.max(this.vy,3.6);else this.flightLift=0,this.vy=Math.min(this.vy,0);return this.flying}adjustFlight(t){if(!this.flying)return;this.flightLift=Math.max(-4,Math.min(26,this.flightLift+t)),this.vy+=Math.sign(t)*2.3}attack(){if(this.attackClock>0)return;if(this.attackClock=0.8,this.warT=2.8,this.slashArc)this.slashArc.visible=!0}orbit(t,e){this.yaw-=t*0.0046;let n=Math.PI/2-0.015;this.cameraPitch=Math.max(-n,Math.min(n,this.cameraPitch+e*0.0042))}trackPointer(t,e){let n=this.renderer.domElement.getBoundingClientRect();if(n.width<1||n.height<1)return;let i=(t-n.left)/n.width*2-1,s=-((e-n.top)/n.height)*2+1;this.trackRay.set(i,s,0.5).unproject(this.camera).sub(this.camera.position).normalize();let a=this.camera.position.distanceTo(this.hero.position);this.trackPoint.copy(this.camera.position).addScaledVector(this.trackRay,a);let r=this.hero.worldToLocal(this.trackLocal.copy(this.trackPoint)),o=Math.atan2(r.x,r.z),l=Math.atan2(r.y-3.2,Math.max(0.001,Math.hypot(r.x,r.z)));this.trackTargetYaw=Math.max(-0.55,Math.min(0.55,o)),this.trackTargetPitch=Math.max(-0.38,Math.min(0.3,-l*0.7)),this.lastTrackTime=this.t}onTrackMove=(t)=>{this.trackPointer(t.clientX,t.clientY)};onTapDown=(t)=>{this.tapDown={x:t.clientX,y:t.clientY,t:performance.now(),id:t.pointerId}};onTapUp=(t)=>{let e=this.tapDown;if(this.tapDown=null,!e||e.id!==t.pointerId)return;if(performance.now()-e.t>280||Math.hypot(t.clientX-e.x,t.clientY-e.y)>14)return;this.tryPoke(t.clientX,t.clientY)};tryPoke(t,e){if(this.t<this.pokeCooldownUntil||this.pokeTargets.length===0)return;let n=this.renderer.domElement.getBoundingClientRect();if(n.width<1||n.height<1)return;if(this.pokeNdc.set((t-n.left)/n.width*2-1,-((e-n.top)/n.height)*2+1),this.raycaster.setFromCamera(this.pokeNdc,this.camera),this.raycaster.intersectObjects(this.pokeTargets,!1).length===0)return;this.pokeCooldownUntil=this.t+2.5,this.pokeHopT=0.45,this.warT=Math.max(this.warT,1.4),this.attack();let i=WM[Math.random()*WM.length|0]??"HEY.";this.onEvent({type:"message",text:i})}loop(t){if(this.disposed)return;this.raf=requestAnimationFrame(this.loop);let e=Math.min(0.04,Math.max(0,(t-(this.last||t))/1000));if(this.last=t,this.t+=e,this.active)this.update(e);this.updateAtmosphere(e),this.portals.forEach((n,i)=>{n.rotation.y+=e*(i%2?-0.35:0.35),n.children.forEach((s,a)=>{s.rotation.z+=e*(s.userData.speed??0.18+a*0.06)}),n.position.y=this.ground(n.position.x,n.position.z)+4.6+Math.sin(this.t*1.3+i)*0.18}),this.monitorQuality(t),this.renderer.render(this.scene,this.camera)}updateAtmosphere(t){let e=Math.pow(Math.max(0,Math.sin(this.t*0.73)*Math.sin(this.t*2.47+1.2)),18);if(this.stormBolts.forEach((n,i)=>{let s=n.material,a=n.userData.phase??i,r=n.userData.baseOpacity??0.12,o=Math.pow(Math.max(0,Math.sin(this.t*(1.4+i*0.03)+a)),28);if(s instanceof Sn)s.opacity=Math.min(0.96,r+o*0.84+e*0.42)}),this.stormFlash.intensity=e*(this.mobile?46:78),this.distantLayers.forEach((n)=>{let i=n.userData.spin;if(i)n.rotation.y+=i*t}),this.embers&&this.emberOrigin){let n=this.embers.geometry.getAttribute("position");if(n instanceof tn){let i=this.qualityLevel>=2?Math.floor(n.count*0.45):n.count;this.embers.geometry.setDrawRange(0,i);for(let s=0;s<i;s+=1){let a=this.emberOrigin[s*3]??0,r=this.emberOrigin[s*3+1]??0,o=this.emberOrigin[s*3+2]??0;n.setXYZ(s,a+Math.sin(this.t*0.7+s)*1.6,r+(this.t*(2.4+s%5)+s*0.61)%42,o+Math.cos(this.t*0.55+s*0.7)*1.2)}n.needsUpdate=!0}}}monitorQuality(t){this.qualityFrames+=1;let e=t-this.qualityWindowStart;if(e<1800)return;let n=this.qualityFrames*1000/Math.max(1,e);if(this.qualityFrames=0,this.qualityWindowStart=t,n<42&&this.qualityLevel<3){if(this.qualit