@vimp-games/tanks 0.22.19 → 0.22.21

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.
@@ -2,11 +2,6 @@
2
2
  "name": "vimp-tanks-core",
3
3
  "description": "VIMP Tanks — игровая симуляция (танки/оружие/боты) + wasm-bindgen ABI (GameCore/ClientCore) поверх vimp-engine-core.",
4
4
  "version": "0.1.0",
5
- "license": "MIT",
6
- "repository": {
7
- "type": "git",
8
- "url": "https://github.com/lgick/vimp-tanks"
9
- },
10
5
  "files": [
11
6
  "vimp_tanks_core_bg.wasm",
12
7
  "vimp_tanks_core.js",
@@ -1 +1 @@
1
- class we{__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,Ne.unregister(this),e}free(){const e=this.__destroy_into_raw();l.__wbg_gamecore_free(e,0)}abi_describe(){let e,r;try{const a=l.gamecore_abi_describe(this.__wbg_ptr);return e=a[0],r=a[1],R(a[0],a[1])}finally{l.__wbindgen_free(e,r,1)}}alive_players(){const e=l.gamecore_alive_players(this.__wbg_ptr);var r=Me(e[0],e[1]).slice();return l.__wbindgen_free(e[0],e[1]*4,4),r}apply_aim(e,r,a,o,s){l.gamecore_apply_aim(this.__wbg_ptr,e,r,a,o,s)}apply_input(e,r,a,o){const s=O(a,l.__wbindgen_malloc,l.__wbindgen_realloc),i=x,c=O(o,l.__wbindgen_malloc,l.__wbindgen_realloc),d=x;l.gamecore_apply_input(this.__wbg_ptr,e,r,s,i,c,d)}body_has_events(){return l.gamecore_body_has_events(this.__wbg_ptr)!==0}clear(){l.gamecore_clear(this.__wbg_ptr)}debug_json(){let e,r;try{const a=l.gamecore_debug_json(this.__wbg_ptr);return e=a[0],r=a[1],R(a[0],a[1])}finally{l.__wbindgen_free(e,r,1)}}deserialize_state(e){const r=Le(e,l.__wbindgen_malloc),a=x,o=l.gamecore_deserialize_state(this.__wbg_ptr,r,a);if(o[1])throw B(o[0])}dispatch(e,r){const a=O(e,l.__wbindgen_malloc,l.__wbindgen_realloc),o=x,s=Le(r,l.__wbindgen_malloc),i=x,c=l.gamecore_dispatch(this.__wbg_ptr,a,o,s,i);var d=be(c[0],c[1]).slice();return l.__wbindgen_free(c[0],c[1]*1,1),d}frame_bytes(){const e=l.gamecore_frame_bytes(this.__wbg_ptr);var r=be(e[0],e[1]).slice();return l.__wbindgen_free(e[0],e[1]*1,1),r}frame_ptr(){return l.gamecore_frame_ptr(this.__wbg_ptr)>>>0}is_alive(e){return l.gamecore_is_alive(this.__wbg_ptr,e)!==0}last_input_seq(e){return l.gamecore_last_input_seq(this.__wbg_ptr,e)>>>0}load_map(e){const r=O(e,l.__wbindgen_malloc,l.__wbindgen_realloc),a=x,o=l.gamecore_load_map(this.__wbg_ptr,r,a);if(o[1])throw B(o[0])}map_info(){let e,r;try{const a=l.gamecore_map_info(this.__wbg_ptr);return e=a[0],r=a[1],R(a[0],a[1])}finally{l.__wbindgen_free(e,r,1)}}constructor(e){const r=O(e,l.__wbindgen_malloc,l.__wbindgen_realloc),a=x,o=l.gamecore_new(r,a);if(o[2])throw B(o[1]);return this.__wbg_ptr=o[0],Ne.register(this,this.__wbg_ptr,this),this}pack_body(){const e=l.gamecore_pack_body(this.__wbg_ptr);if(e[1])throw B(e[0])}pack_frame(e,r,a,o,s,i,c,d){var p=ot(c)?0:O(c,l.__wbindgen_malloc,l.__wbindgen_realloc),m=x;return l.gamecore_pack_frame(this.__wbg_ptr,e,r,a,o,s,i,p,m,d)>>>0}players_data(){let e,r;try{const a=l.gamecore_players_data(this.__wbg_ptr);return e=a[0],r=a[1],R(a[0],a[1])}finally{l.__wbindgen_free(e,r,1)}}position_of(e){const r=l.gamecore_position_of(this.__wbg_ptr,e);var a=Me(r[0],r[1]).slice();return l.__wbindgen_free(r[0],r[1]*4,4),a}remove_actor(e){l.gamecore_remove_actor(this.__wbg_ptr,e)}remove_players_and_shots(){let e,r;try{const a=l.gamecore_remove_players_and_shots(this.__wbg_ptr);return e=a[0],r=a[1],R(a[0],a[1])}finally{l.__wbindgen_free(e,r,1)}}remove_scripted_actor(e){l.gamecore_remove_scripted_actor(this.__wbg_ptr,e)}reset_actor(e,r,a,o,s){l.gamecore_reset_actor(this.__wbg_ptr,e,r,a,o,s)}reset_all_vitals(){l.gamecore_reset_all_vitals(this.__wbg_ptr)}serialize_state(){const e=l.gamecore_serialize_state(this.__wbg_ptr);if(e[3])throw B(e[2]);var r=be(e[0],e[1]).slice();return l.__wbindgen_free(e[0],e[1]*1,1),r}set_actor_level(e,r){l.gamecore_set_actor_level(this.__wbg_ptr,e,r)}spawn_actor(e,r,a,o,s,i){const c=O(r,l.__wbindgen_malloc,l.__wbindgen_realloc),d=x,p=l.gamecore_spawn_actor(this.__wbg_ptr,e,c,d,a,o,s,i);if(p[1])throw B(p[0])}spawn_scripted_actor(e,r,a,o,s,i){const c=O(r,l.__wbindgen_malloc,l.__wbindgen_realloc),d=x,p=l.gamecore_spawn_scripted_actor(this.__wbg_ptr,e,c,d,a,o,s,i);if(p[1])throw B(p[0])}step(e){l.gamecore_step(this.__wbg_ptr,e)}take_events(){let e,r;try{const a=l.gamecore_take_events(this.__wbg_ptr);return e=a[0],r=a[1],R(a[0],a[1])}finally{l.__wbindgen_free(e,r,1)}}}Symbol.dispose&&(we.prototype[Symbol.dispose]=we.prototype.free);function at(){return{__proto__:null,"./vimp_tanks_core_bg.js":{__proto__:null,__wbg_Error_92b29b0548f8b746:function(e,r){return Error(R(e,r))},__wbg___wbindgen_throw_344f42d3211c4765:function(e,r){throw new Error(R(e,r))},__wbindgen_init_externref_table:function(){const e=l.__wbindgen_externrefs,r=e.grow(4);e.set(0,void 0),e.set(r+0,void 0),e.set(r+1,null),e.set(r+2,!0),e.set(r+3,!1)}}}}typeof FinalizationRegistry>"u"||new FinalizationRegistry(t=>l.__wbg_clientcore_free(t,1));const Ne=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>l.__wbg_gamecore_free(t,1));function Me(t,e){return t=t>>>0,nt().subarray(t/4,t/4+e)}function be(t,e){return t=t>>>0,H().subarray(t/1,t/1+e)}let q=null;function nt(){return(q===null||q.byteLength===0)&&(q=new Float32Array(l.memory.buffer)),q}function R(t,e){return it(t>>>0,e)}let X=null;function H(){return(X===null||X.byteLength===0)&&(X=new Uint8Array(l.memory.buffer)),X}function ot(t){return t==null}function Le(t,e){const r=e(t.length*1,1)>>>0;return H().set(t,r/1),x=t.length,r}function O(t,e,r){if(r===void 0){const c=K.encode(t),d=e(c.length,1)>>>0;return H().subarray(d,d+c.length).set(c),x=c.length,d}let a=t.length,o=e(a,1)>>>0;const s=H();let i=0;for(;i<a;i++){const c=t.charCodeAt(i);if(c>127)break;s[o+i]=c}if(i!==a){i!==0&&(t=t.slice(i)),o=r(o,a,a=i+t.length*3,1)>>>0;const c=H().subarray(o+i,o+a),d=K.encodeInto(t,c);i+=d.written,o=r(o,a,i,1)>>>0}return x=i,o}function B(t){const e=l.__wbindgen_externrefs.get(t);return l.__externref_table_dealloc(t),e}let ce=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});ce.decode();const st=2146435072;let xe=0;function it(t,e){return xe+=e,xe>=st&&(ce=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),ce.decode(),xe=e),ce.decode(H().subarray(t,t+e))}const K=new TextEncoder;"encodeInto"in K||(K.encodeInto=function(t,e){const r=K.encode(t);return e.set(r),{read:t.length,written:r.length}});let x=0,l;function lt(t,e){return l=t.exports,q=null,X=null,l.__wbindgen_start(),l}async function ct(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(o){if(t.ok&&r(t.type)&&t.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",o);else throw o}const a=await t.arrayBuffer();return await WebAssembly.instantiate(a,e)}else{const a=await WebAssembly.instantiate(t,e);return a instanceof WebAssembly.Instance?{instance:a,module:t}:a}function r(a){switch(a){case"basic":case"cors":case"default":return!0}return!1}}async function pt(t){if(l!==void 0)return l;t!==void 0&&(Object.getPrototypeOf(t)===Object.prototype?{module_or_path:t}=t:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),t===void 0&&(t=new URL("/assets/vimp_tanks_core_bg-Cn9Xl1tg.wasm",import.meta.url));const e=at();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));const{instance:r,module:a}=await ct(await t,e);return lt(r)}function mt(t){const e={},r=(a,o={},s={})=>{for(const[i,c]of Object.entries(s))for(const d of o[i]||[]){const p=e[a]??={};p[d]=Math.max(p[d]??0,c)}};r("0",t.layers,t.volumes);for(const[a,o]of Object.entries(t.levels||{}))r(String(a),o.layers,o.volumes);return e}function ft(t){const e=mt(t);return Object.keys(e).length===0?t:{...t,game:{...t.game,wallHeights:e}}}const dt={setId:"c1",scale:.2,spriteSheet:{img:"tiles3.png",frames:[[0,64,32,32],[0,192,32,32],[96,64,32,32]]},layers:{1:[0,1],4:[2]},step:32,physicsStatic:[1],physicsDynamic:(function(){const a=[];for(let p=0;p<20;p+=1)for(let m=0;m<1;m+=1){const E=(104+m*3)*32+48,ge=(45+p*3)*32+48;a.push({density:20,layer:3,position:[E,ge],angle:0,width:96,height:96,img:"b1.png",linearDamping:8,angularDamping:16})}return a})(),respawns:{team1:[[448,1840,0],[256,2304,0],[448,2688,0],[256,3e3,0],[256,512,0],[448,832,0],[256,1152,0],[448,3648,0],[256,3968,0],[448,4288,0]],team2:[[6272,1840,180],[6464,2304,180],[6272,2688,180],[6464,3e3,180],[6464,512,180],[6272,832,180],[6464,1152,180],[6272,3648,180],[6464,3968,180],[6272,4288,180]]},map:(function(){const r={floor:0,wall:1,effect:2},a=Array.from({length:150},()=>Array(210).fill(r.floor));for(let s=0;s<150;s++)for(let i=0;i<210;i++)(s<2||s>=148||i<2||i>=208)&&(a[s][i]=r.wall);const o=(s,i,c,d)=>{for(let p=i;p<=d;p++)for(let m=s;m<=c;m++)m>=0&&m<210&&p>=0&&p<150&&(a[p][m]=r.wall)};o(50,0,51,30),o(50,119,51,149),o(158,0,159,30),o(158,119,159,149),o(80,30,130,31),o(80,118,130,119);for(let s=64;s<86;s++)for(let i=2;i<208;i++)(i+s)%2===0?a[s][i]=r.effect:a[s][i]=r.floor;return a})()},Q=32,Ie=16,n={EMPTY:0,ASPHALT:1,SIDEWALK:2,LANE:3,SAND:4,MUD:5,WATER:6,OIL:7,CONVEYOR_E:8,CONVEYOR_W:9,BOOST_N:10,BOOST_E:11,WALL:12,ROOF:13,SLAB:14,RAILING:15,RAMP_N:16,RAMP_S:17,RAMP_E:18,RAMP_W:19,CANAL_WALL:20,WATER_2:21,WATER_3:22,WATER_4:23,CONVEYOR_E_2:24,CONVEYOR_E_3:25,CONVEYOR_E_4:26,CONVEYOR_W_2:27,CONVEYOR_W_3:28,CONVEYOR_W_4:29,BOOST_N_2:30,BOOST_E_2:31,FAN:32},ut=n.FAN+1,ht=Array.from({length:ut},(t,e)=>[e%Ie*Q,Math.floor(e/Ie)*Q,Q,Q]),Y=96,pe=72,T=32,v={x0:22,x1:73,railNorth:20,railSouth:26},Be={x0:15,x1:21},Ce={x0:74,x1:80},Fe={x0:38,x1:40},De={x0:55,x1:57},y={x0:24,x1:36,y0:30,y1:40},J={x0:18,x1:19,y0:34,y1:36},z={x0:20,x1:23,y0:34,y1:36},We={x0:29,x1:31},ee={wallNorth:54,wallSouth:62},Se=[{x0:27,x1:31},{x0:64,x1:68}],V={y0:53,y1:63},Ve={y0:50,y1:52},Pe={y0:64,y1:66},Ye={x0:45,x1:50},te={x0:47,x1:48,y0:64,y1:65},ve=[{x0:4,x1:10,y0:3,y1:7,roof:!0},{x0:25,x1:31,y0:3,y1:7,roof:!0},{x0:37,x1:44,y0:3,y1:15},{x0:51,x1:58,y0:3,y1:15},{x0:85,x1:91,y0:3,y1:7},{x0:38,x1:43,y0:29,y1:32,roof:!0},{x0:52,x1:57,y0:29,y1:32,roof:!0},{x0:38,x1:43,y0:39,y1:42,roof:!0},{x0:52,x1:57,y0:39,y1:42,roof:!0},{x0:62,x1:70,y0:31,y1:39},{x0:3,x1:8,y0:45,y1:50,roof:!0},{x0:87,x1:92,y0:45,y1:50,roof:!0}],Xe=t=>Array.from({length:pe},()=>Array(Y).fill(t)),u=(t,e,r,a,o,s)=>{for(let i=r;i<=o;i+=1)for(let c=e;c<=a;c+=1)t[i][c]=s},Z=(t,e,r,a,o)=>u(t,r,e,a,e,o),F=(t,e,r,a,o)=>u(t,e,r,e,a,o),he=(t,e,r)=>t>=e&&t<=r,$=(t,e,r,a)=>{for(let o=r;o<=a;o+=2)t[e][o]===n.ASPHALT&&(t[e][o]=n.LANE)},yt=(function(){const t=Xe(n.ASPHALT);for(const e of ve)u(t,e.x0-1,e.y0-1,e.x1+1,e.y1+1,n.SIDEWALK);for(const e of ve)u(t,e.x0,e.y0,e.x1,e.y1,n.WALL);$(t,23,2,93),$(t,35,38,44),$(t,35,51,57),$(t,47,2,93),$(t,68,2,93),u(t,6,11,17,12,n.CONVEYOR_E),u(t,16,15,27,16,n.CONVEYOR_W),u(t,63,9,72,15,n.SAND),u(t,80,12,90,16,n.SAND),u(t,73,3,79,8,n.MUD),u(t,75,11,79,16,n.MUD),u(t,45,34,50,37,n.OIL),u(t,1,ee.wallNorth+1,Y-2,ee.wallSouth-1,n.WATER);for(const e of[ee.wallNorth,ee.wallSouth])for(let r=1;r<Y-1;r+=1)he(r,Ye.x0,Ye.x1)||Se.some(o=>he(r,o.x0,o.x1))||(t[e][r]=n.CANAL_WALL);u(t,te.x0,te.y0,te.x1,te.y1,n.BOOST_N),u(t,J.x0,J.y0,J.x1,J.y1,n.BOOST_E),u(t,Be.x0,v.railNorth+1,Be.x1,v.railSouth-1,n.RAMP_E),u(t,Ce.x0,v.railNorth+1,Ce.x1,v.railSouth-1,n.RAMP_W),u(t,z.x0,z.y0,z.x1,z.y1,n.RAMP_E);for(const e of Se)u(t,e.x0+1,Ve.y0,e.x1-1,Ve.y1,n.RAMP_S),u(t,e.x0+1,Pe.y0,e.x1-1,Pe.y1,n.RAMP_N);return Z(t,0,0,Y-1,n.WALL),Z(t,pe-1,0,Y-1,n.WALL),F(t,0,0,pe-1,n.WALL),F(t,Y-1,0,pe-1,n.WALL),t})(),_t=(function(){const t=Xe(n.EMPTY);for(const e of ve)e.roof&&u(t,e.x0,e.y0,e.x1,e.y1,n.ROOF);u(t,v.x0,v.railNorth+1,v.x1,v.railSouth-1,n.SLAB);for(let e=v.x0;e<=v.x1;e+=1)t[v.railNorth][e]=he(e,Fe.x0,Fe.x1)?n.SLAB:n.RAILING,t[v.railSouth][e]=he(e,De.x0,De.x1)?n.SLAB:n.RAILING;u(t,60,22,62,24,n.OIL),u(t,y.x0,y.y0,y.x1,y.y1,n.SLAB),Z(t,y.y0,y.x0,y.x1,n.RAILING),Z(t,y.y1,y.x0,y.x1,n.RAILING),F(t,y.x0,y.y0,y.y1,n.RAILING),F(t,y.x1,y.y0,y.y1,n.RAILING),F(t,y.x0,z.y0,z.y1,n.SLAB),Z(t,y.y1,We.x0,We.x1,n.SLAB);for(const e of Se)u(t,e.x0+1,V.y0,e.x1-1,V.y1,n.SLAB),F(t,e.x0,V.y0,V.y1,n.RAILING),F(t,e.x1,V.y0,V.y1,n.RAILING);return t})(),gt=(t,e)=>[t*T+T/2,e*T+T/2],Oe=(t,e,r,a,o)=>({layer:3,position:[t*T+(T-r)/2,e*T+(T-a)/2],angle:0,width:r,height:a,linearDamping:6,angularDamping:14,level:0,...o}),A=(t,e)=>({...Oe(t,e,64,12,{}),position:[t*T,e*T+(T-12)/2],density:30,img:"prop_fence.png",game:{prop:"fence",imgDestroyed:"prop_fence_broken.png"}}),w=(t,e,r=0)=>Oe(t,e,32,32,{density:40,img:"prop_crate.png",level:r,game:{prop:"crate",imgDamaged:"prop_crate_damaged.png",imgDestroyed:"prop_crate_broken.png"}}),P=(t,e)=>Oe(t,e,24,24,{density:30,img:"prop_barrel.png",game:{prop:"barrel"}}),_=(t,e,r)=>[...gt(t,e),r,0],g=(t,e,r=0,a={})=>({cell:[t,e],level:r,radius:110,color:16760944,intensity:.9,head:!0,flicker:0,...a}),j=(t,e,r,a)=>{const o=[];for(let s=t;s<=e;s+=r)o.push(a(s));return o},ze=60,bt={setId:"c1",scale:.4,spriteSheet:{img:"city.png",frames:ht},layers:{1:[n.ASPHALT,n.SIDEWALK,n.LANE,n.SAND,n.MUD,n.WATER,n.OIL,n.CONVEYOR_E,n.CONVEYOR_W,n.BOOST_N,n.BOOST_E,n.RAMP_N,n.RAMP_S,n.RAMP_E,n.RAMP_W],2:[n.WALL],4:[n.CANAL_WALL]},volumes:{2:1,4:.25},step:T,physicsStatic:[n.WALL,n.CANAL_WALL],levels:{1:{map:_t,floor:[n.SLAB,n.RAILING,n.ROOF,n.OIL],walls:[n.RAILING],layers:{1:[n.SLAB,n.OIL],2:[n.ROOF],4:[n.RAILING]},volumes:{4:.35}}},ramps:[{tile:n.RAMP_E,dir:"east",from:0,to:1},{tile:n.RAMP_W,dir:"west",from:0,to:1},{tile:n.RAMP_S,dir:"south",from:0,to:1},{tile:n.RAMP_N,dir:"north",from:0,to:1}],physicsDynamic:[w(3,11),w(3,13),w(20,10),w(21,10),w(31,15),w(32,15),P(28,13),P(29,13),P(28,14),P(29,14),A(62,8),A(64,8),A(66,8),A(68,8),A(70,8),A(82,11),A(84,11),A(86,11),A(88,11),A(90,11),w(66,4),w(68,4),w(80,4),w(82,4),P(10,63),P(85,63),w(34,31,1),w(35,31,1)],respawns:{team1:[_(9,24,0),_(4,20,0),_(9,35,0),_(4,37,0),_(4,29,0),_(9,29,0),_(4,42,0),_(9,42,0)],team2:[_(86,24,180),_(91,24,180),_(86,35,180),_(91,37,180),_(91,29,180),_(86,29,180),_(91,42,180),_(86,42,180)]},game:{surfaces:{0:{[n.SAND]:"sand",[n.MUD]:"mud",[n.WATER]:"water",[n.OIL]:"oil",[n.CONVEYOR_E]:{type:"conveyor",dir:"east"},[n.CONVEYOR_W]:{type:"conveyor",dir:"west"},[n.BOOST_N]:{type:"boost",dir:"north"},[n.BOOST_E]:{type:"boost",dir:"east"}},1:{[n.OIL]:"oil"}},lighting:{night:!0,ambient:3818080,lamps:[...j(12,84,8,t=>g(t,19)),...j(16,80,8,t=>g(t,27)),g(44,33,0,{color:16767392}),g(51,33,0,{color:16767392}),g(44,38,0,{color:16767392}),g(51,38,0,{color:16767392}),...j(12,84,8,t=>g(t,45)),...j(16,80,16,t=>g(t,68,0,{flicker:.2})),g(12,32,0,{color:10537215}),g(83,32,0,{color:10537215}),g(15,9,0,{flicker:.35}),g(80,10,0,{flicker:.35}),...j(26,70,8,t=>g(t,23,1,{radius:90,color:13623551})),g(30,35,1,{radius:100}),g(29,58,1,{radius:90}),g(66,58,1,{radius:90})]},animatedTiles:{[n.WATER]:{kind:"frames",frames:[n.WATER,n.WATER_2,n.WATER_3,n.WATER_4],fps:4},[n.CONVEYOR_E]:{kind:"frames",frames:[n.CONVEYOR_E,n.CONVEYOR_E_2,n.CONVEYOR_E_3,n.CONVEYOR_E_4],speed:ze},[n.CONVEYOR_W]:{kind:"frames",frames:[n.CONVEYOR_W,n.CONVEYOR_W_2,n.CONVEYOR_W_3,n.CONVEYOR_W_4],speed:ze},[n.BOOST_N]:{kind:"frames",frames:[n.BOOST_N,n.BOOST_N_2],fps:2},[n.BOOST_E]:{kind:"frames",frames:[n.BOOST_E,n.BOOST_E_2],fps:2}},roofs:{1:[n.ROOF]},signs:[{cell:[40,30],level:1,layer:2,text:"HOTEL",color:16726736,size:18,flicker:{pulse:.15,dropouts:.1},light:{radius:80,intensity:.7}},{cell:[55,30],level:1,layer:2,text:"BAR",color:3858687,size:20,flicker:{pulse:.3,dropouts:.3},light:{radius:70,intensity:.6}},{cell:[40,41],level:1,layer:2,text:"CLUB",color:10115839,size:18,angle:-8,flicker:{pulse:.05,dropouts:0},light:{radius:80,intensity:.7}},{cell:[55,41],level:1,layer:2,text:"MOTEL",color:16734778,size:16,flicker:{pulse:.2,dropouts:.5},light:{radius:70,intensity:.6}},{cell:[5,47],level:1,layer:2,text:"GUNS",color:5963642,size:16,flicker:{pulse:.1,dropouts:.05},light:{radius:60,intensity:.5}},{cell:[90,47],level:1,layer:2,text:"GUNS",color:5963642,size:16,flicker:{pulse:.1,dropouts:.2},light:{radius:60,intensity:.5}}],decals:[{cell:[6,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:1.5},{cell:[8,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:1.1},{cell:[27,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:1.8},{cell:[29,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:.9}]},map:yt},Ke=[],re=32,I=(t,e,r,a)=>{for(let o=0;o<r;o+=1){const s=a?[t*re,(e+o)*re]:[(t+o)*re,e*re];Ke.push({density:100,layer:3,position:s,angle:0,img:"b1.png",width:32,height:32,linearDamping:5,angularDamping:14})}};I(30,2,10,!0);I(2,30,10,!1);I(30,22,9,!0);I(22,30,9,!1);const L=120,_e=30;I(L-_e-1,L-12,10,!0);I(L-12,L-_e-1,10,!1);I(L-_e-1,L-31,9,!0);I(L-31,L-_e-1,9,!1);const xt={setId:"c1",spriteSheet:{img:"tiles3.png",frames:[[96,0,32,32],[32,32,32,32],[64,32,32,32],[0,96,32,32]]},layers:{1:[0,1,2],4:[3]},step:32,physicsStatic:[2],physicsDynamic:[...Ke],respawns:{team1:[[320,320,45],[320,480,45],[320,640,45],[480,320,45],[480,480,45],[480,640,45],[640,320,45],[640,480,45],[640,640,45],[800,400,45]],team2:[[3520,3520,225],[3520,3360,225],[3520,3200,225],[3360,3520,225],[3360,3360,225],[3360,3200,225],[3200,3520,225],[3200,3360,225],[3200,3200,225],[3040,3440,225]]},map:(function(){const r={stone:0,grass:1,wall:2,water:3},a=Array.from({length:120},()=>Array(120).fill(r.grass)),o=()=>{for(let p=0;p<120;p+=1)for(let m=0;m<120;m+=1)(p===0||p===119||m===0||m===119)&&(a[p][m]=r.wall)},s=(p,m,E,ge=.5)=>{for(let D=m-E;D<=m+E;D+=1)for(let W=p-E;W<=p+E;W+=1)W>0&&W<119&&D>0&&D<119&&Math.sqrt((W-p)**2+(D-m)**2)<=E&&Math.random()<ge&&(a[D][W]=r.wall)};o();const i=Math.floor(120/2),c=Math.floor(120/2),d=22;for(let p=c-d;p<=c+d;p+=1)for(let m=i-d;m<=i+d;m+=1)Math.sqrt((m-i)**2+(p-c)**2)<=d&&(a[p][m]=r.stone);for(let p=c-10;p<=c+10;p+=1)for(let m=i-10;m<=i+10;m+=1)Math.sqrt((m-i)**2+(p-c)**2)<=10&&(a[p][m]=r.water);return s(35,85,12,.7),s(85,35,12,.7),s(20,60,8,.6),s(60,20,8,.6),s(100,60,8,.6),s(60,100,8,.6),a})()},ye=80,Te=60,N=32,h={ground:0,wall:1,slab:2,railing:3,rampNorth:4,rampSouth:5},S={railNorth:25,slabTop:26,slabBottom:30,railSouth:31,left:2,right:ye-3},U={x0:3,x1:5,y0:32,y1:34},G={x0:74,x1:76,y0:22,y1:24},Ue={x0:30,x1:33},Ge={x0:48,x1:51},Ze=t=>Array.from({length:Te},()=>Array(ye).fill(t)),ae=(t,e,r)=>t>=e&&t<=r,wt=(function(){const t=Ze(h.ground);for(let e=0;e<Te;e+=1)for(let r=0;r<ye;r+=1)(e<2||e>=Te-2||r<2||r>=ye-2)&&(t[e][r]=h.wall);for(let e=U.y0;e<=U.y1;e+=1)for(let r=U.x0;r<=U.x1;r+=1)t[e][r]=h.rampNorth;for(let e=G.y0;e<=G.y1;e+=1)for(let r=G.x0;r<=G.x1;r+=1)t[e][r]=h.rampSouth;return t})(),St=(function(){const t=Ze(0);for(let e=S.left;e<=S.right;e+=1){for(let o=S.slabTop;o<=S.slabBottom;o+=1)t[o][e]=h.slab;const r=ae(e,G.x0,G.x1)||ae(e,Ue.x0,Ue.x1),a=ae(e,U.x0,U.x1)||ae(e,Ge.x0,Ge.x1);if(t[S.railNorth][e]=r?h.slab:h.railing,t[S.railSouth][e]=a?h.slab:h.railing,e===S.left||e===S.right)for(let o=S.slabTop;o<=S.slabBottom;o+=1)t[o][e]=h.railing}return t})(),Qe=(t,e)=>[t*N+N/2,e*N+N/2],ne=(t,e,r,a=64)=>({density:40,layer:3,position:[t*N,e*N+(N-a)/2],angle:0,width:a,height:a,img:"b1.png",linearDamping:6,angularDamping:14,level:r}),b=(t,e,r)=>[...Qe(t,e),r],oe=(t,e,r,a)=>[...Qe(t,e),r,a],vt={setId:"c1",scale:.4,spriteSheet:{img:"tiles.png",frames:[[480,64,32,32],[128,224,32,32],[288,64,32,32],[352,96,32,32],[352,64,32,32],[384,64,32,32]]},layers:{1:[h.ground,h.rampNorth,h.rampSouth],2:[h.wall]},volumes:{2:1},step:N,physicsStatic:[h.wall],levels:{1:{map:St,floor:[h.slab,h.railing],walls:[h.railing],layers:{1:[h.slab],4:[h.railing]},volumes:{4:.35}}},ramps:[{tile:h.rampNorth,dir:"north",from:0,to:1},{tile:h.rampSouth,dir:"south",from:0,to:1}],physicsDynamic:[ne(20,28,0),ne(60,28,0),ne(31,S.slabTop,1,32),ne(49,S.slabBottom,1,32)],respawns:{team1:[b(3,38,270),b(9,38,0),b(6,6,0),b(12,6,0),b(6,14,0),b(12,14,0),b(6,22,0),b(12,22,0),oe(10,29,0,1),oe(16,29,0,1)],team2:[b(49,36,270),b(70,38,180),b(73,6,180),b(67,6,180),b(73,14,180),b(67,14,180),b(73,22,180),b(67,22,180),oe(69,29,180,1),oe(63,29,180,1)]},map:wt},Tt={setId:"c1",scale:.6,spriteSheet:{img:"tiles.png",frames:[[480,64,32,32],[128,224,32,32],[160,0,32,32],[0,64,32,32],[0,64,32,32]]},layers:{1:[0,2,4],2:[1],4:[3]},physicsStatic:[1],physicsDynamic:[],step:32,respawns:{team1:[[130,520,0],[130,620,0],[130,720,0],[130,820,0],[230,520,0],[230,620,0],[230,720,0],[230,820,0],[330,620,0],[330,720,0]],team2:[[1600,520,180],[1600,620,180],[1600,720,180],[1600,820,180],[1500,520,180],[1500,620,180],[1500,720,180],[1500,820,180],[1400,620,180],[1400,720,180]]},map:(function(){const t=[[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,1,1,2,2,2,1,1,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,4,4,4,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,3,3,3,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,3,3,3,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,2,2,4,3,3,3,4,2,2,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,3,3,3,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,4,4,4,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,1,1,2,2,2,1,1,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],e=[];for(const r of t){const a=[],o=[];for(const s of r)a.push(s,s),o.push(s,s);e.push(a,o)}return e})()},Ae=72,ke=48,M=32,f={ground:0,wall:1,slab1:2,railing1:3,slab2:4,railing2:5,rampLong:6,rampSide:7,rampSteep:8,rampStep:9},se={x0:14,x1:46,y0:12,y1:30},ie={x0:34,x1:52,y0:16,y1:26},me={x0:5,x1:13,y:21},fe={x:24,y0:31,y1:34},de={x0:53,x1:56,y:21},ue={x0:31,x1:33,y:21},He={x0:20,x1:22},$e={x0:40,x1:42},At=[{x0:8,x1:11,y0:14,y1:17},{x0:60,x1:63,y0:30,y1:33}],Re=t=>Array.from({length:ke},()=>Array(Ae).fill(t)),Je=(t,e,r)=>t>=e&&t<=r,kt=(function(){const t=Re(f.ground);for(let e=0;e<ke;e+=1)for(let r=0;r<Ae;r+=1)(e<2||e>=ke-2||r<2||r>=Ae-2)&&(t[e][r]=f.wall);for(const e of At)for(let r=e.y0;r<=e.y1;r+=1)for(let a=e.x0;a<=e.x1;a+=1)t[r][a]=f.wall;for(let e=me.x0;e<=me.x1;e+=1)t[me.y][e]=f.rampLong;for(let e=fe.y0;e<=fe.y1;e+=1)t[e][fe.x]=f.rampSide;for(let e=de.x0;e<=de.x1;e+=1)t[de.y][e]=f.rampSteep;return t})(),et=(t,e,r,a,o)=>{for(let s=e.y0;s<=e.y1;s+=1)for(let i=e.x0;i<=e.x1;i+=1){const c=i===e.x0||i===e.x1||s===e.y0||s===e.y1;t[s][i]=c&&!o(i,s)?a:r}},Et=(function(){const t=Re(0);et(t,se,f.slab1,f.railing1,(e,r)=>e===se.x0&&r===me.y||r===se.y1&&e===fe.x||r===se.y0&&Je(e,He.x0,He.x1));for(let e=ue.x0;e<=ue.x1;e+=1)t[ue.y][e]=f.rampStep;return t})(),Ot=(function(){const t=Re(0);return et(t,ie,f.slab2,f.railing2,(e,r)=>e===ie.x0&&r===ue.y||e===ie.x1&&r===de.y||r===ie.y1&&Je(e,$e.x0,$e.x1)),t})(),tt=(t,e)=>[t*M+M/2,e*M+M/2],le=(t,e,r,a=64)=>({density:40,layer:3,position:[t*M,e*M+(M-a)/2],angle:0,width:a,height:a,img:"b1.png",linearDamping:6,angularDamping:14,level:r}),k=(t,e,r)=>[...tt(t,e),r],C=(t,e,r,a)=>[...tt(t,e),r,a],Rt={setId:"c1",scale:.4,spriteSheet:{img:"tiles.png",frames:[[480,64,32,32],[128,224,32,32],[288,64,32,32],[352,96,32,32],[96,0,32,32],[64,32,32,32],[352,64,32,32],[384,64,32,32],[416,64,32,32],[320,64,32,32]]},layers:{1:[f.ground,f.rampLong,f.rampSide,f.rampSteep],2:[f.wall]},volumes:{2:1},step:M,physicsStatic:[f.wall],levels:{1:{map:Et,floor:[f.slab1,f.railing1,f.rampStep],walls:[f.railing1],layers:{1:[f.slab1,f.rampStep],4:[f.railing1]},volumes:{4:.35}},2:{map:Ot,floor:[f.slab2,f.railing2],walls:[f.railing2],layers:{1:[f.slab2],4:[f.railing2]},volumes:{4:.35}}},ramps:[{tile:f.rampLong,dir:"east",from:0,to:1},{tile:f.rampSide,dir:"north",from:0,to:1},{tile:f.rampSteep,dir:"west",from:0,to:2},{tile:f.rampStep,dir:"east",from:1,to:2}],physicsDynamic:[le(41,25,2,32),le(21,13,1,32),le(8,24,0),le(62,38,0)],respawns:{team1:[k(58,21,180),C(41,22,90,2),C(20,20,0,1),C(45,18,180,2),k(5,8,0),k(9,8,0),k(5,40,0),k(9,40,0)],team2:[C(24,28,90,0),k(20,33,0),C(21,15,270,1),C(50,21,180,2),C(40,28,180,1),k(60,8,180),k(64,8,180),k(60,40,180)]},map:kt},Nt=Object.fromEntries(Object.entries({canopy:dt,downtown:bt,garden:xt,overpass:vt,"pool mini":Tt,terraces:Rt}).map(([t,e])=>[t,ft(e)])),Ee={m1:{constructor:"Tank",currentWeapon:"w1",size:3,barrelHeight:2.4,turretTop:3,accelerationFactor:1e3,brakingFactor:.3,maxForwardSpeed:130,maxReverseSpeed:-65,baseTurnTorqueFactor:110,damping:{linear:3,angular:100},fixture:{density:200,friction:.5,restitution:.1},lateralGrip:20,hitResponse:{lateralFactor:1.65,idleFactor:.2,spinFactor:.03},turnSpeedThreshold:10,baseTurnFactorRatio:.8,reverseTurnMultiplier:.7,throttleIncreaseRate:2,throttleDecreaseRate:2.5,strainFactor:1.5,maxGunAngle:1.4,gunRotationSpeed:1.5,gunCenterSpeed:10}},Mt={w1:{type:"hitscan",impulseMagnitude:175e4,damage:40,range:1500,fireRate:.3,spread:0,consumption:1,cameraShake:{intensity:20,duration:200}},w2:{type:"explosive",constructor:"Bomb",time:1e3,shotOutcomeId:"w2e",size:8,fireRate:.1,damage:70,radius:50,impulseMagnitude:2e6,cameraShake:{intensity:30,duration:400}}},Lt={m1:{id:1,kind:"indexed8",class:"hot",fields:[{name:"x",ty:"f32",interp:"lerp"},{name:"y",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"gunRotation",ty:"f32",interp:"lerpAngle"},{name:"vx",ty:"f32",interp:"lerp"},{name:"vy",ty:"f32",interp:"lerp"},{name:"engineLoad",ty:"f32",interp:"lerp"},{name:"condition",ty:"u8"},{name:"size",ty:"u8"},{name:"team",ty:"u8"},{name:"angvel",ty:"f32",interp:"lerp"},{name:"z",ty:"f32",interp:"lerp"},{name:"level",ty:"u8"},{name:"vz",ty:"f32",interp:"discrete"},{name:"pitch",ty:"f32",interp:"lerp"},{name:"roll",ty:"f32",interp:"lerp"}]},w1:{id:2,kind:"list16",class:"event",fields:[{name:"startX",ty:"f32"},{name:"startY",ty:"f32"},{name:"endX",ty:"f32"},{name:"endY",ty:"f32"},{name:"bodyX",ty:"f32"},{name:"bodyY",ty:"f32"},{name:"wasHit",ty:"u8"},{name:"shooterId",ty:"u8"},{name:"startLevel",ty:"u8"},{name:"endLevel",ty:"u8"}]},w2:{id:3,kind:"indexed32",class:"event",fields:[{name:"x",ty:"f32"},{name:"y",ty:"f32"},{name:"angle",ty:"f32"},{name:"size",ty:"u8"},{name:"time",ty:"u16"},{name:"ownerId",ty:"u8"},{name:"level",ty:"u8"}]},w2e:{id:4,kind:"list16",class:"event",fields:[{name:"x",ty:"f32"},{name:"y",ty:"f32"},{name:"radius",ty:"f32"},{name:"level",ty:"u8"}]},c1:{id:5,kind:"indexedNoNull8",class:"hot",optionalFrom:6,fields:[{name:"x",ty:"f32",interp:"lerp"},{name:"y",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"z",ty:"f32",interp:"lerp",role:"z"},{name:"level",ty:"u8",role:"level"},{name:"state",ty:"u8",role:"state"},{name:"vx",ty:"f32",interp:"lerp"},{name:"vy",ty:"f32",interp:"lerp"},{name:"angvel",ty:"f32",interp:"lerp"}]},c2:{id:6,kind:"indexedNoNull8",class:"hot",optionalFrom:6,fields:[{name:"x",ty:"f32",interp:"lerp"},{name:"y",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"z",ty:"f32",interp:"lerp",role:"z"},{name:"level",ty:"u8",role:"level"},{name:"state",ty:"u8",role:"state"},{name:"vx",ty:"f32",interp:"lerp"},{name:"vy",ty:"f32",interp:"lerp"},{name:"angvel",ty:"f32",interp:"lerp"}]}},It={parts:{models:Ee,weapons:Mt,mapConstructor:"Map",hitscanService:"HitscanService",friendlyFire:!1},snapshot:Lt,soundCues:{roundStart:"roundStart",victory:"victory",defeat:"defeat",frag:"frag",death:"gameOver"},initialVote:"teamChange",maps:Nt,mapScale:.3,currentMap:"downtown",mapsInVote:4,lobbyInfo:"map",mapSetId:"c1",coreParams:{levels:{fallTime:.35,fallDamage:30,fallDamageFreeHeight:.5,maxFallDamage:100,climbGravity:500,climbMaxSpeedFactor:.5,levelAdoptFrames:8,maxSideEntryRise:.5,rampLaunchFactor:.35,minLaunchVz:.35,maxLaunchVz:3.5,jumpClearance:.45,tiltGain:2,tiltAirGain:.12,tiltResponse:12,tiltMax:.6,landingShake:{intensity:3,duration:220,minImpact:1.5,fullImpact:6}},surfaces:{trackYawGain:.004,trackSampleX:.6,trackSampleY:.75,bodyBeltCoupling:4,types:{sand:{accel:.6,maxSpeed:.55,drag:1.2,grip:1,brake:1,turn:.8},mud:{accel:.45,maxSpeed:.4,drag:2,grip:.9,brake:1,turn:.7},water:{accel:.7,maxSpeed:.6,drag:1.5,grip:.8,brake:.8,turn:.85},oil:{accel:.35,maxSpeed:1,drag:0,grip:.08,brake:.1,turn:1.6,angularDrag:-.5,slickTime:1.5},conveyor:{belt:60},boost:{boostDv:350,boostMaxSpeed:480,minEntrySpeed:20,boostTime:1.2,boostSpeedFactor:3.6}}},props:{fence:{hp:30,damagedAt:0,bulletFactor:1,blastFactor:1,ramThreshold:60,ramDamagePerSpeed:.5},crate:{hp:120,damagedAt:.5,bulletFactor:.5,blastFactor:1.5,ramThreshold:140,ramDamagePerSpeed:.6},barrel:{hp:40,damagedAt:0,bulletFactor:1,blastFactor:1,ramThreshold:150,ramDamagePerSpeed:1,chainDelay:.15,blast:{radius:70,damage:80,impulse:25e5,cameraShake:{intensity:30,duration:400}}}},bots:{skill:"easy",variance:.3,presets:{easy:{reactionTime:.55,aimError:.34,aimSettleTime:1.1,aimTremor:.05,fireTolerance:1.8,burstShots:[1,2],burstPause:[.9,1.6],shotInterval:.4,radarInterval:2,radarNoise:40,preferredRange:[100,240],aggression:.35,retreatHealth:45,retreatAdvantage:.6,steerNoise:.1,edgeRisk:.25,hesitation:.08,panicFire:.3},normal:{reactionTime:.45,aimError:.3,aimSettleTime:1,aimTremor:.04,fireTolerance:1.25,burstShots:[1,2],burstPause:[.8,1.4],shotInterval:.35,radarInterval:1.4,radarNoise:25,preferredRange:[120,300],aggression:.5,retreatHealth:35,retreatAdvantage:.5,steerNoise:.05,edgeRisk:.12,hesitation:.04,panicFire:.15},hard:{reactionTime:.28,aimError:.18,aimSettleTime:.7,aimTremor:.025,fireTolerance:.9,burstShots:[1,3],burstPause:[.7,1.2],shotInterval:.3,radarInterval:.9,radarNoise:12,preferredRange:[140,340],aggression:.65,retreatHealth:25,retreatAdvantage:.4,steerNoise:.02,edgeRisk:.04,hesitation:.01,panicFire:.05}}}},roomDefaults:{maxPlayers:8},roomForm:[{name:"maxPlayers",control:"text",label:"Max players",numeric:!0},{name:"roundTime",control:"text",label:"Round time",unit:"s",numeric:!0},{name:"mapTime",control:"text",label:"Map time",unit:"s",numeric:!0},{name:"friendlyFire",control:"checkbox",label:"Friendly fire"},{name:"map",control:"select",label:"Map",source:"maps"}],stat:{name:{key:0,bodyMethod:"=",headSync:!0,headMethod:"#"},status:{key:1,bodyMethod:"=",bodyValue:"",headValue:""},score:{key:2,bodyMethod:"+",bodyValue:0,headMethod:"+",headValue:0},deaths:{key:3,bodyMethod:"+",bodyValue:0,headMethod:"+",headValue:0},latency:{key:4,bodyMethod:"="}},playerState:{defaultState:{}},panel:{fields:{health:{key:"h",value:100},w1:{key:"w1",value:200},w2:{key:"w2",value:100}},activeKey:"wa"},scripted:{namePrefix:"Bot",defaultModel:"m1"},spectatorTeam:"spectators",teams:{team1:1,team2:2,spectators:3},playerKeys:{forward:{key:1},back:{key:2},left:{key:4},right:{key:8},gunCenter:{key:16,type:1},gunLeft:{key:32},gunRight:{key:64},fire:{key:128,type:1},nextWeapon:{key:256,type:1},prevWeapon:{key:512,type:1}}},Bt={roundStart:{file:"round-start",priority:200,volume:.35},victory:{file:"victory",priority:200,volume:.38},defeat:{file:"defeat",priority:200,volume:.5},frag:{file:"frag",priority:150,volume:.26},hit:{file:"hit",priority:150,volume:.36},gameOver:{file:"game-over",priority:150,volume:.31},shot:{file:"shot",priority:100,volume:.51},explosion:{file:"explosion",priority:100,volume:.74},tankExplosion:{file:"explosion",priority:100,volume:.6},bombHasBeenPlanted:{file:"bomb-has-been-planted",priority:90,volume:.48},propBreak:{file:"hit",priority:80,volume:.28},tankLanding:{file:"tank-landing",priority:60,volume:.7},tankEngine:{file:"tank-engine",priority:50,loop:!0,volume:.5},tankWater:{file:"tank-water",priority:55,loop:!0,volume:.3}},Ct={codecList:["webm","mp3"],path:"/sounds/",spatial:{mode:"topDown",virtualElevation:108,innerRadius:7.5},sounds:Bt},Ft={mode:"hole",radius:260,softness:.45,minAlpha:.12,layerAlpha:.4,fadeRate:6,roofMargin:0,lowerTint:11579584},Dt={shear:.22,levelZStride:100},Wt={enabled:!0,faces:!0,faceTilesPerLevel:3,faceSegments:4,faceBleedPx:2,slices:4,rampSegments:4,sideTint:10133674},Vt={scaleGain:.1,baseAlpha:.4,alphaFalloff:.12,sizeFactor:1.05,groundOffset:3,groundAlpha:.3},Pt={enabled:!0,lift:.35,vertices:6,shading:.28,lightDir:[-.7,-.7]},Yt={fullImpact:6,squash:.14,duration:260,minImpact:1.5},zt={enabled:!0,maxFps:30},je={enabled:!0,resolution:.5,maxLights:96,headlights:{length:90,spread:.55,intensity:.9,color:16773572,offset:.5,occlusion:{enabled:!0,rays:64},bounce:{intensity:.35,radius:30,maxDistance:80},wash:{height:.6,intensity:1}},rampSpill:1,tankGlow:{radius:26,intensity:.35,color:12570879},flash:{explosion:{radius:140,intensity:1,duration:260,color:16756832},shot:{radius:90,intensity:.9,duration:120,color:16773280},hit:{radius:60,intensity:.8,duration:110,color:16760944},wreck:{radius:150,intensity:1.1,duration:320,color:16752720}},wreckFire:{radius:70,intensity:.75,color:16748608,flicker:.45},glints:{enabled:!0,intensity:.8,size:1.2},shafts:{enabled:!0,rays:14,length:1.3,intensity:.35,shadows:!0,maxShadowCasters:4}},qe={radius:3,blur:1,quality:40,color:16777215},Ut={parts:{gameSets:{c1:["Map","MapRadar"],c2:["Map"],m1:["Tank","TankRadar","Smoke","Tracks","Dust","WreckFire"],w1:["ShotEffect"],w2:["Bomb"],w2e:["ExplosionEffect"]},entitiesOnCanvas:{Map:"vimp",MapRadar:"radar",TankRadar:"radar",Tank:"vimp",ShotEffect:"vimp",Bomb:"vimp",ExplosionEffect:"vimp",Smoke:"vimp",Tracks:"vimp",Dust:"vimp",WreckFire:"vimp"},bakedAssets:{vimp:[{name:"explosionTexture",component:"ExplosionEffect",params:{radius:50,blur:2,quality:40,color:16777215}},{name:"impactParticleTexture",component:"ShotEffect",params:{radius:4,blur:1,quality:10,color:16777215}},{name:"smokeTexture",component:"ShotEffect",params:qe},{name:"funnelTexture",component:"ExplosionEffect",params:{baseRadius:25,irregularity:4,blur:3,numPoints:20,colorFill:1842204,colorRim:11579568,rimWidth:4,variants:5}},{name:"smokeTexture",component:"Smoke",params:qe},{name:"tankTexture",component:"Tank",params:{colors:{teamId1:5579298,teamId2:2250018}}},{name:"tankModelTexture",component:"Tank",params:{colors:{teamId1:5579298,teamId2:2250018}}},{name:"bombTexture",component:"Bomb",params:{colorOuter:16777215,colorInner:986895}},{name:"tankShadowTexture",component:"Tank",params:{width:40,height:30,radius:6,blur:2,quality:20,color:0}},{name:"dustTexture",component:"Dust",params:{radius:4,blur:1,quality:20,color:16777215}},{name:"trackMarkTexture",component:"Tracks",params:{width:4,length:5,color:1710610}},{name:"scorchTexture",component:"Map",params:{baseRadius:20,irregularity:5,blur:4,numPoints:16,color:1315344,coreColor:328965,coreRatio:.55,variants:4}},{name:"debrisTexture",component:"Map",params:{length:8,width:3,color:16777215,variants:4}},{name:"lightRadialTexture",component:"Map",params:{radius:64,rings:32,blur:2}},{name:"lampHeadTexture",component:"Map",params:{core:3,halo:10,rings:12,blur:1}},{name:"glintTexture",component:"Map",params:{radius:32,strips:16,blur:2}},{name:"lightShaftTexture",component:"Map",params:{radius:128,rays:je.shafts.rays,width:.05,seed:7,blur:3}},{name:"headlightConeTexture",component:"Tank",params:{length:128,halfWidth:64,strips:24,blur:4}},{name:"wreckFireTexture",component:"WreckFire",params:{radius:32,rings:24,blur:2}},{name:"wreckSmokeTexture",component:"WreckFire",params:{radius:8,blur:3,quality:20,color:16777215}},{name:"wreckScorchTexture",component:"WreckFire",params:{baseRadius:20,irregularity:5,blur:4,numPoints:16,color:1380879,coreColor:394501,coreRatio:.5,variants:3}}],radar:[{name:"tankRadarTexture",component:"TankRadar",params:{radius:6,borderWidth:2,crossSize:9,crossThickness:1.5,colors:{teamId1:5579298,teamId2:2250018}}}]},componentDependencies:{renderer:["Map","Tank","Tracks","Smoke","Dust","Bomb","ShotEffect","ExplosionEffect","WreckFire"],assetsBase:["Map"],soundManager:["ExplosionEffect","ShotEffect","Bomb","Tank","Dust","Map","WreckFire"],mapDynamics:["ShotEffect"],rampRuns:["Map","ShotEffect"],surfaces:["Dust","Tracks","Tank"],volumes:["Map","ShotEffect"],shots:["ShotEffect","Tank"],blasts:["ExplosionEffect","Tank","WreckFire"],levelView:["Tank","Map","MapRadar","Smoke","Bomb","ShotEffect","ExplosionEffect","Tracks","Dust","WreckFire"],localPlayer:["Tank","ShotEffect"],lighting:["Map","Tank","ExplosionEffect","ShotEffect","WreckFire"],diagnostics:["Tank","Map"]},seeThrough:Ft,parallax:Dt,volume:Wt,shadow:Vt,tilt:Pt,landing:Yt,lighting:je,animations:zt,sounds:Ct},initIdList:["vimp","radar","panel","chat"],modules:{canvasManager:{canvases:{vimp:{width:960,height:600,aspectRatio:"16:9",baseScale:"5:1",dynamicCamera:!0,shakeCamera:!0},radar:{width:150,height:150,fixSize:"150",baseScale:"1:8"}}},controls:{keySetList:[{78:"nextPlayer",80:"prevPlayer"},{87:"forward",83:"back",65:"left",68:"right",85:"gunCenter",75:"gunLeft",76:"gunRight",74:"fire",78:"nextWeapon",80:"prevWeapon"}]},chat:{params:{messages:{s:["Team {0} is full. Your current team: {1}","Your team: {0}","Your new team: {0}","Your new status: spectator","⚔️ {0} killed {1}","⚡ {0} joined the game","👋 {0} left the game","Host changed","You are no longer the host (connection lost)","Host changed: the previous host was lagging","Host changed: the previous host went inactive","Host changed: the previous host had a poor connection"],v:["A vote has been created","Voting has started","Your vote has been accepted","Voting is temporarily unavailable","Vote passed","Vote failed","Usage: /changehost","You are the host — use “Hand over host” in the room menu","No connection to the master server","A host vote was held recently","No other player can host","A host vote is already in progress","A host vote is not possible right now","Vote to change host passed ({0}/{1})","Vote to change host failed ({0}/{1})","Host vote cancelled"],m:["Current map: {0}","Next map: {0}"],c:["Command not found","Your rank: {0}"],b:["Only active players can use /bot","Invalid bot count","Invalid team name","{0} bot(s) created for {1}","All bots removed from {0}","{0} bot(s) created","All bots removed"],t:["Time left: {0}"]}}},panel:{keys:{t:"time",h:"health",wa:"activeWeapon",w1:"bullet",w2:"bomb"},fields:[{name:"health",elem:"panel-health",type:"bar",max:100,blocks:30},{name:"bullet",elem:"panel-bullet",type:"weapon"},{name:"bomb",elem:"panel-bomb",type:"weapon"},{name:"time",elem:"panel-time",type:"time"}]},stat:{params:{columns:["names","status","score","deaths","latency"],heads:{1:"team1",2:"team2"},bodies:{1:"team1",2:"team2",3:"spectators"},sortList:{team1:[[2,!0],[3,!1]],team2:[[2,!0],[3,!1]]}}},vote:{params:{templates:{teamChange:["Choose a team","teams",!0],mapChangeBySystem:["Choose the next map"],mapChangeByUser:["{0} suggested the map: {1}",["Yes","No"]],createBotsForTeam:["{0} suggests creating {1} bot(s) to {2}. Agree?",["Yes","No"]],removeBotsForTeam:["{0} suggests removing all bots from {1}. Agree?",["Yes","No"]],createBots:["{0} suggests creating {1} bot(s) to the game. Agree?",["Yes","No"]],removeBots:["{0} suggests removing all bots from the game. Agree?",["Yes","No"]]},menu:[["teamChange",["Switch team","teams"]],["mapChange",["Suggest map","maps"]]]}}},gameInform:{list:["{0} WINS!","ROUND START!","GAME OVER!"]}},Gt={elems:{authId:"auth",errorId:"auth-error",enterId:"auth-enter",fieldsId:"auth-fields",titleId:"auth-title",informsId:"auth-informs"},texts:{title:"Tanks",sections:[{heading:"Controls",lines:[{keys:"w, a, s, d",text:"move the tank"},{keys:"k, l",text:"turn the gun"},{keys:"u",text:"center the gun"},{keys:"j",text:"fire"},{keys:"n, p",text:"switch weapon/player",last:!0},{keys:"c",text:"chat/command line"},{keys:"m",text:"menu"},{keys:"<Tab>",text:"stats",last:!0}]},{heading:"Command line",lines:[{keys:"/mapname",text:"show current map name"},{keys:"/timeleft",text:"map time left"},{separator:!0},{keys:"/bot <count>",text:"add bot(s)"},{keys:"/bot <count> <team>",text:"add to team"},{keys:"/bot 0",text:"remove all bots"},{keys:"/bot 0 <team>",text:"remove from team"}]}]},params:[{name:"model",value:"m1",options:{control:"select",label:"Model",options:Object.keys(Ee),validator:"isValidModel",storage:"model"}}],validators:{isValidModel:t=>t in Ee}};function rt(t,e,r){r?(t.scripted.removeScripted(r),e>0?(e=t.scripted.createScripted(e,r),t.chat.pushSystem("BOT_CREATED_FOR_TEAM",[e,r])):t.chat.pushSystem("BOT_REMOVED_FROM_TEAM",[r])):(t.scripted.removeScripted(),e>0?(e=t.scripted.createScripted(e,null),t.chat.pushSystem("BOT_CREATED",[e])):t.chat.pushSystem("BOT_REMOVED")),t.roundManager.initiateNewRound()}function Ht(t,e,r,a){const o=t.participants.get(e).name,s="botManagement";let i,c;if(!t.voteCoordinator.canCreateVote(s,e))return;a?r>0?(i="createBotsForTeam",c=[o,r,a]):(i="removeBotsForTeam",c=[o,a]):r>0?(i="createBots",c=[o,r]):(i="removeBots",c=[o]);const d={name:i,params:c},p=t.participants.getHumans().map(m=>m.gameId).filter(m=>m!==e);t.voteCoordinator.createVote({voteName:i,voteCategory:s,payload:d,resultFunc:m=>{m==="Yes"?(t.chat.pushSystem("VOTE_PASSED"),rt(t,r,a)):t.chat.pushSystem("VOTE_FAILED")},userList:p,gameId:e})}const $t={name:"/bot",handler(t,e,r){if(t.participants.get(e).teamId===t.spectatorId){t.chat.pushSystemByUser(e,"BOT_PLAYERS_ONLY");return}const o=parseInt(r[0],10),s=r[1]||null;if(isNaN(o)||o<0){t.chat.pushSystemByUser(e,"BOT_INVALID_COUNT");return}if(s&&(!t.teams[s]||s===t.spectatorTeam)){t.chat.pushSystemByUser(e,"BOT_INVALID_TEAM");return}if(o===0){if(s&&t.scripted.getCountForTeam(s)===0){t.chat.pushSystemByUser(e,"BOT_REMOVED_FROM_TEAM",[s]);return}if(t.scripted.getCount()===0){t.chat.pushSystemByUser(e,"BOT_REMOVED");return}}t.participants.getHumans().filter(c=>c.teamId!==t.spectatorId).length<=1?rt(t,o,s):Ht(t,e,o,s)}};function jt(t){const e=Math.floor(t/1e3),r=String(Math.floor(e/60)).padStart(2,"0"),a=String(e%60).padStart(2,"0");return`${r}:${a}`}const qt={name:"/nr",handler(t,e){t.isDevMode?t.roundManager.initiateNewRound():t.chat.pushSystemByUser(e,"COMMANDS_NOT_FOUND")}},Xt={name:"/timeleft",handler(t,e){t.chat.pushSystemByUser(e,"TIME_LEFT",[jt(t.timerManager.getMapTimeLeft())])}},Kt={name:"/mapname",handler(t,e){t.chat.pushSystemByUser(e,"MAP_CURRENT",[t.roundManager.currentMap])}},Zt={name:"/rank",handler(t,e){t.chat.pushSystemByUser(e,"RANK",[t.playerDataSync.getRank(e)])}},Qt={BOT_PLAYERS_ONLY:"b:0",BOT_INVALID_COUNT:"b:1",BOT_INVALID_TEAM:"b:2",BOT_CREATED_FOR_TEAM:"b:3",BOT_REMOVED_FROM_TEAM:"b:4",BOT_CREATED:"b:5",BOT_REMOVED:"b:6",TIME_LEFT:"t:0"};class Jt{constructor({participants:e,coreAdapter:r,panel:a,stat:o,scripted:s}){this._participants=e,this._coreAdapter=r,this._panel=a,this._stat=o,this._model=s.defaultModel,this._respawns=null}createMap(e){this._respawns=e.respawns}createScripted(e,r=null){if(!this._respawns)return 0;const a=this._participants.getPlayableTeams();let o=0;for(let s=0;s<e&&!this._participants.isFull;s+=1){let i=r;if(i||(i=a.sort((p,m)=>this._participants.getTeamSize(p)-this._participants.getTeamSize(m))[0]),!i||!this._respawns[i]||this._participants.getTeamSize(i)>=this._respawns[i].length)continue;const c=this._participants.createScripted({team:i,model:this._model}),d=this._participants.get(c);this._stat.addUser(c,d.teamId,{name:d.name,status:"dead",latency:"BOT"}),this._panel.addUser(c),o+=1}return o}removeScripted(e=null){(e?this._participants.getScripted().filter(a=>a.team===e):this._participants.getScripted()).forEach(a=>this._removeBotById(a.gameId))}removeOneForHuman(e){for(const r of this._participants.getScripted())if(r.team===e)return this._removeBotById(r.gameId),!0;return!1}_removeBotById(e){const r=this._participants.get(e);!r||!r.isScripted||(this._stat.removeUser(e,r.teamId),this._panel.removeUser(e),this._coreAdapter.removePlayer(e),this._participants.remove(e))}getBotById(e){const r=this._participants.get(e);return r&&r.isScripted?r:void 0}getBots(){return this._participants.getScripted()}getCount(){return this._participants.getScripted().length}getCountForTeam(e){return this._participants.getScripted().filter(r=>r.team===e).length}getCountsPerTeam(){const e={};for(const r of this._participants.getScripted())e[r.team]=(e[r.team]||0)+1;return e}}function er(t){return{scripted:new Jt(t)}}const tr=t=>(t??"").split(/[?#]/)[0].endsWith(".js"),rr=t=>import(t),ar={id:"tanks",engineApi:4,requires:["map.layers","map.levelsN","map.gameData","map.bodyState"],async createCore(t,{wasmUrl:e}){if(tr(e)){const r=await rr(e);return new r.GameCore(t)}return await pt({module_or_path:e}),new we(t)},onCoreEvent(t){t?.type==="mapDerivedError"&&console.warn(`[tanks] map game data: ${t.message}`)},gameConfig:It,authSchema:Gt,chatCommands:[$t,qt,Xt,Kt,Zt],systemMessages:Qt,createModules:er,buildClientGameConfig:()=>Ut};export{ar as default};
1
+ class we{__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,Ne.unregister(this),e}free(){const e=this.__destroy_into_raw();l.__wbg_gamecore_free(e,0)}abi_describe(){let e,r;try{const a=l.gamecore_abi_describe(this.__wbg_ptr);return e=a[0],r=a[1],R(a[0],a[1])}finally{l.__wbindgen_free(e,r,1)}}alive_players(){const e=l.gamecore_alive_players(this.__wbg_ptr);var r=Me(e[0],e[1]).slice();return l.__wbindgen_free(e[0],e[1]*4,4),r}apply_aim(e,r,a,o,s){l.gamecore_apply_aim(this.__wbg_ptr,e,r,a,o,s)}apply_input(e,r,a,o){const s=O(a,l.__wbindgen_malloc,l.__wbindgen_realloc),i=x,c=O(o,l.__wbindgen_malloc,l.__wbindgen_realloc),d=x;l.gamecore_apply_input(this.__wbg_ptr,e,r,s,i,c,d)}body_has_events(){return l.gamecore_body_has_events(this.__wbg_ptr)!==0}clear(){l.gamecore_clear(this.__wbg_ptr)}debug_json(){let e,r;try{const a=l.gamecore_debug_json(this.__wbg_ptr);return e=a[0],r=a[1],R(a[0],a[1])}finally{l.__wbindgen_free(e,r,1)}}deserialize_state(e){const r=Le(e,l.__wbindgen_malloc),a=x,o=l.gamecore_deserialize_state(this.__wbg_ptr,r,a);if(o[1])throw I(o[0])}dispatch(e,r){const a=O(e,l.__wbindgen_malloc,l.__wbindgen_realloc),o=x,s=Le(r,l.__wbindgen_malloc),i=x,c=l.gamecore_dispatch(this.__wbg_ptr,a,o,s,i);var d=be(c[0],c[1]).slice();return l.__wbindgen_free(c[0],c[1]*1,1),d}frame_bytes(){const e=l.gamecore_frame_bytes(this.__wbg_ptr);var r=be(e[0],e[1]).slice();return l.__wbindgen_free(e[0],e[1]*1,1),r}frame_ptr(){return l.gamecore_frame_ptr(this.__wbg_ptr)>>>0}is_alive(e){return l.gamecore_is_alive(this.__wbg_ptr,e)!==0}last_input_seq(e){return l.gamecore_last_input_seq(this.__wbg_ptr,e)>>>0}load_map(e){const r=O(e,l.__wbindgen_malloc,l.__wbindgen_realloc),a=x,o=l.gamecore_load_map(this.__wbg_ptr,r,a);if(o[1])throw I(o[0])}map_info(){let e,r;try{const a=l.gamecore_map_info(this.__wbg_ptr);return e=a[0],r=a[1],R(a[0],a[1])}finally{l.__wbindgen_free(e,r,1)}}constructor(e){const r=O(e,l.__wbindgen_malloc,l.__wbindgen_realloc),a=x,o=l.gamecore_new(r,a);if(o[2])throw I(o[1]);return this.__wbg_ptr=o[0],Ne.register(this,this.__wbg_ptr,this),this}pack_body(){const e=l.gamecore_pack_body(this.__wbg_ptr);if(e[1])throw I(e[0])}pack_frame(e,r,a,o,s,i,c,d){var p=ot(c)?0:O(c,l.__wbindgen_malloc,l.__wbindgen_realloc),m=x;return l.gamecore_pack_frame(this.__wbg_ptr,e,r,a,o,s,i,p,m,d)>>>0}players_data(){let e,r;try{const a=l.gamecore_players_data(this.__wbg_ptr);return e=a[0],r=a[1],R(a[0],a[1])}finally{l.__wbindgen_free(e,r,1)}}position_of(e){const r=l.gamecore_position_of(this.__wbg_ptr,e);var a=Me(r[0],r[1]).slice();return l.__wbindgen_free(r[0],r[1]*4,4),a}remove_actor(e){l.gamecore_remove_actor(this.__wbg_ptr,e)}remove_players_and_shots(){let e,r;try{const a=l.gamecore_remove_players_and_shots(this.__wbg_ptr);return e=a[0],r=a[1],R(a[0],a[1])}finally{l.__wbindgen_free(e,r,1)}}remove_scripted_actor(e){l.gamecore_remove_scripted_actor(this.__wbg_ptr,e)}reset_actor(e,r,a,o,s){l.gamecore_reset_actor(this.__wbg_ptr,e,r,a,o,s)}reset_all_vitals(){l.gamecore_reset_all_vitals(this.__wbg_ptr)}serialize_state(){const e=l.gamecore_serialize_state(this.__wbg_ptr);if(e[3])throw I(e[2]);var r=be(e[0],e[1]).slice();return l.__wbindgen_free(e[0],e[1]*1,1),r}set_actor_level(e,r){l.gamecore_set_actor_level(this.__wbg_ptr,e,r)}spawn_actor(e,r,a,o,s,i){const c=O(r,l.__wbindgen_malloc,l.__wbindgen_realloc),d=x,p=l.gamecore_spawn_actor(this.__wbg_ptr,e,c,d,a,o,s,i);if(p[1])throw I(p[0])}spawn_scripted_actor(e,r,a,o,s,i){const c=O(r,l.__wbindgen_malloc,l.__wbindgen_realloc),d=x,p=l.gamecore_spawn_scripted_actor(this.__wbg_ptr,e,c,d,a,o,s,i);if(p[1])throw I(p[0])}step(e){l.gamecore_step(this.__wbg_ptr,e)}take_events(){let e,r;try{const a=l.gamecore_take_events(this.__wbg_ptr);return e=a[0],r=a[1],R(a[0],a[1])}finally{l.__wbindgen_free(e,r,1)}}}Symbol.dispose&&(we.prototype[Symbol.dispose]=we.prototype.free);function at(){return{__proto__:null,"./vimp_tanks_core_bg.js":{__proto__:null,__wbg_Error_92b29b0548f8b746:function(e,r){return Error(R(e,r))},__wbg___wbindgen_throw_344f42d3211c4765:function(e,r){throw new Error(R(e,r))},__wbindgen_init_externref_table:function(){const e=l.__wbindgen_externrefs,r=e.grow(4);e.set(0,void 0),e.set(r+0,void 0),e.set(r+1,null),e.set(r+2,!0),e.set(r+3,!1)}}}}typeof FinalizationRegistry>"u"||new FinalizationRegistry(t=>l.__wbg_clientcore_free(t,1));const Ne=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>l.__wbg_gamecore_free(t,1));function Me(t,e){return t=t>>>0,nt().subarray(t/4,t/4+e)}function be(t,e){return t=t>>>0,H().subarray(t/1,t/1+e)}let q=null;function nt(){return(q===null||q.byteLength===0)&&(q=new Float32Array(l.memory.buffer)),q}function R(t,e){return it(t>>>0,e)}let X=null;function H(){return(X===null||X.byteLength===0)&&(X=new Uint8Array(l.memory.buffer)),X}function ot(t){return t==null}function Le(t,e){const r=e(t.length*1,1)>>>0;return H().set(t,r/1),x=t.length,r}function O(t,e,r){if(r===void 0){const c=K.encode(t),d=e(c.length,1)>>>0;return H().subarray(d,d+c.length).set(c),x=c.length,d}let a=t.length,o=e(a,1)>>>0;const s=H();let i=0;for(;i<a;i++){const c=t.charCodeAt(i);if(c>127)break;s[o+i]=c}if(i!==a){i!==0&&(t=t.slice(i)),o=r(o,a,a=i+t.length*3,1)>>>0;const c=H().subarray(o+i,o+a),d=K.encodeInto(t,c);i+=d.written,o=r(o,a,i,1)>>>0}return x=i,o}function I(t){const e=l.__wbindgen_externrefs.get(t);return l.__externref_table_dealloc(t),e}let ce=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});ce.decode();const st=2146435072;let xe=0;function it(t,e){return xe+=e,xe>=st&&(ce=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),ce.decode(),xe=e),ce.decode(H().subarray(t,t+e))}const K=new TextEncoder;"encodeInto"in K||(K.encodeInto=function(t,e){const r=K.encode(t);return e.set(r),{read:t.length,written:r.length}});let x=0,l;function lt(t,e){return l=t.exports,q=null,X=null,l.__wbindgen_start(),l}async function ct(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(o){if(t.ok&&r(t.type)&&t.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",o);else throw o}const a=await t.arrayBuffer();return await WebAssembly.instantiate(a,e)}else{const a=await WebAssembly.instantiate(t,e);return a instanceof WebAssembly.Instance?{instance:a,module:t}:a}function r(a){switch(a){case"basic":case"cors":case"default":return!0}return!1}}async function pt(t){if(l!==void 0)return l;t!==void 0&&(Object.getPrototypeOf(t)===Object.prototype?{module_or_path:t}=t:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),t===void 0&&(t=new URL("/assets/vimp_tanks_core_bg-DB0Ecjmc.wasm",import.meta.url));const e=at();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));const{instance:r,module:a}=await ct(await t,e);return lt(r)}function mt(t){const e={},r=(a,o={},s={})=>{for(const[i,c]of Object.entries(s))for(const d of o[i]||[]){const p=e[a]??={};p[d]=Math.max(p[d]??0,c)}};r("0",t.layers,t.volumes);for(const[a,o]of Object.entries(t.levels||{}))r(String(a),o.layers,o.volumes);return e}function ft(t){const e=mt(t);return Object.keys(e).length===0?t:{...t,game:{...t.game,wallHeights:e}}}const dt={setId:"c1",scale:.2,spriteSheet:{img:"tiles3.png",frames:[[0,64,32,32],[0,192,32,32],[96,64,32,32]]},layers:{1:[0,1],4:[2]},step:32,physicsStatic:[1],physicsDynamic:(function(){const a=[];for(let p=0;p<20;p+=1)for(let m=0;m<1;m+=1){const E=(104+m*3)*32+48,ge=(45+p*3)*32+48;a.push({density:20,layer:3,position:[E,ge],angle:0,width:96,height:96,img:"b1.png",linearDamping:8,angularDamping:16})}return a})(),respawns:{team1:[[448,1840,0],[256,2304,0],[448,2688,0],[256,3e3,0],[256,512,0],[448,832,0],[256,1152,0],[448,3648,0],[256,3968,0],[448,4288,0]],team2:[[6272,1840,180],[6464,2304,180],[6272,2688,180],[6464,3e3,180],[6464,512,180],[6272,832,180],[6464,1152,180],[6272,3648,180],[6464,3968,180],[6272,4288,180]]},map:(function(){const r={floor:0,wall:1,effect:2},a=Array.from({length:150},()=>Array(210).fill(r.floor));for(let s=0;s<150;s++)for(let i=0;i<210;i++)(s<2||s>=148||i<2||i>=208)&&(a[s][i]=r.wall);const o=(s,i,c,d)=>{for(let p=i;p<=d;p++)for(let m=s;m<=c;m++)m>=0&&m<210&&p>=0&&p<150&&(a[p][m]=r.wall)};o(50,0,51,30),o(50,119,51,149),o(158,0,159,30),o(158,119,159,149),o(80,30,130,31),o(80,118,130,119);for(let s=64;s<86;s++)for(let i=2;i<208;i++)(i+s)%2===0?a[s][i]=r.effect:a[s][i]=r.floor;return a})()},Q=32,Be=16,n={EMPTY:0,ASPHALT:1,SIDEWALK:2,LANE:3,SAND:4,MUD:5,WATER:6,OIL:7,CONVEYOR_E:8,CONVEYOR_W:9,BOOST_N:10,BOOST_E:11,WALL:12,ROOF:13,SLAB:14,RAILING:15,RAMP_N:16,RAMP_S:17,RAMP_E:18,RAMP_W:19,CANAL_WALL:20,WATER_2:21,WATER_3:22,WATER_4:23,CONVEYOR_E_2:24,CONVEYOR_E_3:25,CONVEYOR_E_4:26,CONVEYOR_W_2:27,CONVEYOR_W_3:28,CONVEYOR_W_4:29,BOOST_N_2:30,BOOST_E_2:31,FAN:32},ut=n.FAN+1,ht=Array.from({length:ut},(t,e)=>[e%Be*Q,Math.floor(e/Be)*Q,Q,Q]),Y=96,pe=72,T=32,v={x0:22,x1:73,railNorth:20,railSouth:26},Ie={x0:15,x1:21},Ce={x0:74,x1:80},Fe={x0:38,x1:40},De={x0:55,x1:57},y={x0:24,x1:36,y0:30,y1:40},J={x0:18,x1:19,y0:34,y1:36},z={x0:20,x1:23,y0:34,y1:36},We={x0:29,x1:31},ee={wallNorth:54,wallSouth:62},Se=[{x0:27,x1:31},{x0:64,x1:68}],V={y0:53,y1:63},Ve={y0:50,y1:52},Pe={y0:64,y1:66},Ye={x0:45,x1:50},te={x0:47,x1:48,y0:64,y1:65},ve=[{x0:4,x1:10,y0:3,y1:7,roof:!0},{x0:25,x1:31,y0:3,y1:7,roof:!0},{x0:37,x1:44,y0:3,y1:15},{x0:51,x1:58,y0:3,y1:15},{x0:85,x1:91,y0:3,y1:7},{x0:38,x1:43,y0:29,y1:32,roof:!0},{x0:52,x1:57,y0:29,y1:32,roof:!0},{x0:38,x1:43,y0:39,y1:42,roof:!0},{x0:52,x1:57,y0:39,y1:42,roof:!0},{x0:62,x1:70,y0:31,y1:39},{x0:3,x1:8,y0:45,y1:50,roof:!0},{x0:87,x1:92,y0:45,y1:50,roof:!0}],Xe=t=>Array.from({length:pe},()=>Array(Y).fill(t)),u=(t,e,r,a,o,s)=>{for(let i=r;i<=o;i+=1)for(let c=e;c<=a;c+=1)t[i][c]=s},Z=(t,e,r,a,o)=>u(t,r,e,a,e,o),F=(t,e,r,a,o)=>u(t,e,r,e,a,o),he=(t,e,r)=>t>=e&&t<=r,j=(t,e,r,a)=>{for(let o=r;o<=a;o+=2)t[e][o]===n.ASPHALT&&(t[e][o]=n.LANE)},yt=(function(){const t=Xe(n.ASPHALT);for(const e of ve)u(t,e.x0-1,e.y0-1,e.x1+1,e.y1+1,n.SIDEWALK);for(const e of ve)u(t,e.x0,e.y0,e.x1,e.y1,n.WALL);j(t,23,2,93),j(t,35,38,44),j(t,35,51,57),j(t,47,2,93),j(t,68,2,93),u(t,6,11,17,12,n.CONVEYOR_E),u(t,16,15,27,16,n.CONVEYOR_W),u(t,63,9,72,15,n.SAND),u(t,80,12,90,16,n.SAND),u(t,73,3,79,8,n.MUD),u(t,75,11,79,16,n.MUD),u(t,45,34,50,37,n.OIL),u(t,1,ee.wallNorth+1,Y-2,ee.wallSouth-1,n.WATER);for(const e of[ee.wallNorth,ee.wallSouth])for(let r=1;r<Y-1;r+=1)he(r,Ye.x0,Ye.x1)||Se.some(o=>he(r,o.x0,o.x1))||(t[e][r]=n.CANAL_WALL);u(t,te.x0,te.y0,te.x1,te.y1,n.BOOST_N),u(t,J.x0,J.y0,J.x1,J.y1,n.BOOST_E),u(t,Ie.x0,v.railNorth+1,Ie.x1,v.railSouth-1,n.RAMP_E),u(t,Ce.x0,v.railNorth+1,Ce.x1,v.railSouth-1,n.RAMP_W),u(t,z.x0,z.y0,z.x1,z.y1,n.RAMP_E);for(const e of Se)u(t,e.x0+1,Ve.y0,e.x1-1,Ve.y1,n.RAMP_S),u(t,e.x0+1,Pe.y0,e.x1-1,Pe.y1,n.RAMP_N);return Z(t,0,0,Y-1,n.WALL),Z(t,pe-1,0,Y-1,n.WALL),F(t,0,0,pe-1,n.WALL),F(t,Y-1,0,pe-1,n.WALL),t})(),_t=(function(){const t=Xe(n.EMPTY);for(const e of ve)e.roof&&u(t,e.x0,e.y0,e.x1,e.y1,n.ROOF);u(t,v.x0,v.railNorth+1,v.x1,v.railSouth-1,n.SLAB);for(let e=v.x0;e<=v.x1;e+=1)t[v.railNorth][e]=he(e,Fe.x0,Fe.x1)?n.SLAB:n.RAILING,t[v.railSouth][e]=he(e,De.x0,De.x1)?n.SLAB:n.RAILING;u(t,60,22,62,24,n.OIL),u(t,y.x0,y.y0,y.x1,y.y1,n.SLAB),Z(t,y.y0,y.x0,y.x1,n.RAILING),Z(t,y.y1,y.x0,y.x1,n.RAILING),F(t,y.x0,y.y0,y.y1,n.RAILING),F(t,y.x1,y.y0,y.y1,n.RAILING),F(t,y.x0,z.y0,z.y1,n.SLAB),Z(t,y.y1,We.x0,We.x1,n.SLAB);for(const e of Se)u(t,e.x0+1,V.y0,e.x1-1,V.y1,n.SLAB),F(t,e.x0,V.y0,V.y1,n.RAILING),F(t,e.x1,V.y0,V.y1,n.RAILING);return t})(),gt=(t,e)=>[t*T+T/2,e*T+T/2],Oe=(t,e,r,a,o)=>({layer:3,position:[t*T+(T-r)/2,e*T+(T-a)/2],angle:0,width:r,height:a,linearDamping:6,angularDamping:14,level:0,...o}),A=(t,e)=>({...Oe(t,e,64,12,{}),position:[t*T,e*T+(T-12)/2],density:30,img:"prop_fence.png",game:{prop:"fence",imgDestroyed:"prop_fence_broken.png"}}),w=(t,e,r=0)=>Oe(t,e,32,32,{density:40,img:"prop_crate.png",level:r,game:{prop:"crate",imgDamaged:"prop_crate_damaged.png",imgDestroyed:"prop_crate_broken.png"}}),P=(t,e)=>Oe(t,e,24,24,{density:30,img:"prop_barrel.png",game:{prop:"barrel"}}),_=(t,e,r)=>[...gt(t,e),r,0],g=(t,e,r=0,a={})=>({cell:[t,e],level:r,radius:110,color:16760944,intensity:.9,head:!0,flicker:0,...a}),$=(t,e,r,a)=>{const o=[];for(let s=t;s<=e;s+=r)o.push(a(s));return o},ze=60,bt={setId:"c1",scale:.4,spriteSheet:{img:"city.png",frames:ht},layers:{1:[n.ASPHALT,n.SIDEWALK,n.LANE,n.SAND,n.MUD,n.WATER,n.OIL,n.CONVEYOR_E,n.CONVEYOR_W,n.BOOST_N,n.BOOST_E,n.RAMP_N,n.RAMP_S,n.RAMP_E,n.RAMP_W],2:[n.WALL],4:[n.CANAL_WALL]},volumes:{2:1,4:.25},step:T,physicsStatic:[n.WALL,n.CANAL_WALL],levels:{1:{map:_t,floor:[n.SLAB,n.RAILING,n.ROOF,n.OIL],walls:[n.RAILING],layers:{1:[n.SLAB,n.OIL],2:[n.ROOF],4:[n.RAILING]},volumes:{4:.35}}},ramps:[{tile:n.RAMP_E,dir:"east",from:0,to:1},{tile:n.RAMP_W,dir:"west",from:0,to:1},{tile:n.RAMP_S,dir:"south",from:0,to:1},{tile:n.RAMP_N,dir:"north",from:0,to:1}],physicsDynamic:[w(3,11),w(3,13),w(20,10),w(21,10),w(31,15),w(32,15),P(28,13),P(29,13),P(28,14),P(29,14),A(62,8),A(64,8),A(66,8),A(68,8),A(70,8),A(82,11),A(84,11),A(86,11),A(88,11),A(90,11),w(66,4),w(68,4),w(80,4),w(82,4),P(10,63),P(85,63),w(34,31,1),w(35,31,1)],respawns:{team1:[_(9,24,0),_(4,20,0),_(9,35,0),_(4,37,0),_(4,29,0),_(9,29,0),_(4,42,0),_(9,42,0)],team2:[_(86,24,180),_(91,24,180),_(86,35,180),_(91,37,180),_(91,29,180),_(86,29,180),_(91,42,180),_(86,42,180)]},game:{surfaces:{0:{[n.SAND]:"sand",[n.MUD]:"mud",[n.WATER]:"water",[n.OIL]:"oil",[n.CONVEYOR_E]:{type:"conveyor",dir:"east"},[n.CONVEYOR_W]:{type:"conveyor",dir:"west"},[n.BOOST_N]:{type:"boost",dir:"north"},[n.BOOST_E]:{type:"boost",dir:"east"}},1:{[n.OIL]:"oil"}},lighting:{night:!0,ambient:3818080,lamps:[...$(12,84,8,t=>g(t,19)),...$(16,80,8,t=>g(t,27)),g(44,33,0,{color:16767392}),g(51,33,0,{color:16767392}),g(44,38,0,{color:16767392}),g(51,38,0,{color:16767392}),...$(12,84,8,t=>g(t,45)),...$(16,80,16,t=>g(t,68,0,{flicker:.2})),g(12,32,0,{color:10537215}),g(83,32,0,{color:10537215}),g(15,9,0,{flicker:.35}),g(80,10,0,{flicker:.35}),...$(26,70,8,t=>g(t,23,1,{radius:90,color:13623551})),g(30,35,1,{radius:100}),g(29,58,1,{radius:90}),g(66,58,1,{radius:90})]},animatedTiles:{[n.WATER]:{kind:"frames",frames:[n.WATER,n.WATER_2,n.WATER_3,n.WATER_4],fps:4},[n.CONVEYOR_E]:{kind:"frames",frames:[n.CONVEYOR_E,n.CONVEYOR_E_2,n.CONVEYOR_E_3,n.CONVEYOR_E_4],speed:ze},[n.CONVEYOR_W]:{kind:"frames",frames:[n.CONVEYOR_W,n.CONVEYOR_W_2,n.CONVEYOR_W_3,n.CONVEYOR_W_4],speed:ze},[n.BOOST_N]:{kind:"frames",frames:[n.BOOST_N,n.BOOST_N_2],fps:2},[n.BOOST_E]:{kind:"frames",frames:[n.BOOST_E,n.BOOST_E_2],fps:2}},roofs:{1:[n.ROOF]},signs:[{cell:[40,30],level:1,layer:2,text:"HOTEL",color:16726736,size:18,flicker:{pulse:.15,dropouts:.1},light:{radius:80,intensity:.7}},{cell:[55,30],level:1,layer:2,text:"BAR",color:3858687,size:20,flicker:{pulse:.3,dropouts:.3},light:{radius:70,intensity:.6}},{cell:[40,41],level:1,layer:2,text:"CLUB",color:10115839,size:18,angle:-8,flicker:{pulse:.05,dropouts:0},light:{radius:80,intensity:.7}},{cell:[55,41],level:1,layer:2,text:"MOTEL",color:16734778,size:16,flicker:{pulse:.2,dropouts:.5},light:{radius:70,intensity:.6}},{cell:[5,47],level:1,layer:2,text:"GUNS",color:5963642,size:16,flicker:{pulse:.1,dropouts:.05},light:{radius:60,intensity:.5}},{cell:[90,47],level:1,layer:2,text:"GUNS",color:5963642,size:16,flicker:{pulse:.1,dropouts:.2},light:{radius:60,intensity:.5}}],decals:[{cell:[6,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:1.5},{cell:[8,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:1.1},{cell:[27,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:1.8},{cell:[29,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:.9}]},map:yt},Ke=[],re=32,B=(t,e,r,a)=>{for(let o=0;o<r;o+=1){const s=a?[t*re,(e+o)*re]:[(t+o)*re,e*re];Ke.push({density:100,layer:3,position:s,angle:0,img:"b1.png",width:32,height:32,linearDamping:5,angularDamping:14})}};B(30,2,10,!0);B(2,30,10,!1);B(30,22,9,!0);B(22,30,9,!1);const L=120,_e=30;B(L-_e-1,L-12,10,!0);B(L-12,L-_e-1,10,!1);B(L-_e-1,L-31,9,!0);B(L-31,L-_e-1,9,!1);const xt={setId:"c1",spriteSheet:{img:"tiles3.png",frames:[[96,0,32,32],[32,32,32,32],[64,32,32,32],[0,96,32,32]]},layers:{1:[0,1,2],4:[3]},step:32,physicsStatic:[2],physicsDynamic:[...Ke],respawns:{team1:[[320,320,45],[320,480,45],[320,640,45],[480,320,45],[480,480,45],[480,640,45],[640,320,45],[640,480,45],[640,640,45],[800,400,45]],team2:[[3520,3520,225],[3520,3360,225],[3520,3200,225],[3360,3520,225],[3360,3360,225],[3360,3200,225],[3200,3520,225],[3200,3360,225],[3200,3200,225],[3040,3440,225]]},map:(function(){const r={stone:0,grass:1,wall:2,water:3},a=Array.from({length:120},()=>Array(120).fill(r.grass)),o=()=>{for(let p=0;p<120;p+=1)for(let m=0;m<120;m+=1)(p===0||p===119||m===0||m===119)&&(a[p][m]=r.wall)},s=(p,m,E,ge=.5)=>{for(let D=m-E;D<=m+E;D+=1)for(let W=p-E;W<=p+E;W+=1)W>0&&W<119&&D>0&&D<119&&Math.sqrt((W-p)**2+(D-m)**2)<=E&&Math.random()<ge&&(a[D][W]=r.wall)};o();const i=Math.floor(120/2),c=Math.floor(120/2),d=22;for(let p=c-d;p<=c+d;p+=1)for(let m=i-d;m<=i+d;m+=1)Math.sqrt((m-i)**2+(p-c)**2)<=d&&(a[p][m]=r.stone);for(let p=c-10;p<=c+10;p+=1)for(let m=i-10;m<=i+10;m+=1)Math.sqrt((m-i)**2+(p-c)**2)<=10&&(a[p][m]=r.water);return s(35,85,12,.7),s(85,35,12,.7),s(20,60,8,.6),s(60,20,8,.6),s(100,60,8,.6),s(60,100,8,.6),a})()},ye=80,Te=60,N=32,h={ground:0,wall:1,slab:2,railing:3,rampNorth:4,rampSouth:5},S={railNorth:25,slabTop:26,slabBottom:30,railSouth:31,left:2,right:ye-3},U={x0:3,x1:5,y0:32,y1:34},G={x0:74,x1:76,y0:22,y1:24},Ue={x0:30,x1:33},Ge={x0:48,x1:51},Ze=t=>Array.from({length:Te},()=>Array(ye).fill(t)),ae=(t,e,r)=>t>=e&&t<=r,wt=(function(){const t=Ze(h.ground);for(let e=0;e<Te;e+=1)for(let r=0;r<ye;r+=1)(e<2||e>=Te-2||r<2||r>=ye-2)&&(t[e][r]=h.wall);for(let e=U.y0;e<=U.y1;e+=1)for(let r=U.x0;r<=U.x1;r+=1)t[e][r]=h.rampNorth;for(let e=G.y0;e<=G.y1;e+=1)for(let r=G.x0;r<=G.x1;r+=1)t[e][r]=h.rampSouth;return t})(),St=(function(){const t=Ze(0);for(let e=S.left;e<=S.right;e+=1){for(let o=S.slabTop;o<=S.slabBottom;o+=1)t[o][e]=h.slab;const r=ae(e,G.x0,G.x1)||ae(e,Ue.x0,Ue.x1),a=ae(e,U.x0,U.x1)||ae(e,Ge.x0,Ge.x1);if(t[S.railNorth][e]=r?h.slab:h.railing,t[S.railSouth][e]=a?h.slab:h.railing,e===S.left||e===S.right)for(let o=S.slabTop;o<=S.slabBottom;o+=1)t[o][e]=h.railing}return t})(),Qe=(t,e)=>[t*N+N/2,e*N+N/2],ne=(t,e,r,a=64)=>({density:40,layer:3,position:[t*N,e*N+(N-a)/2],angle:0,width:a,height:a,img:"b1.png",linearDamping:6,angularDamping:14,level:r}),b=(t,e,r)=>[...Qe(t,e),r],oe=(t,e,r,a)=>[...Qe(t,e),r,a],vt={setId:"c1",scale:.4,spriteSheet:{img:"tiles.png",frames:[[480,64,32,32],[128,224,32,32],[288,64,32,32],[352,96,32,32],[352,64,32,32],[384,64,32,32]]},layers:{1:[h.ground,h.rampNorth,h.rampSouth],2:[h.wall]},volumes:{2:1},step:N,physicsStatic:[h.wall],levels:{1:{map:St,floor:[h.slab,h.railing],walls:[h.railing],layers:{1:[h.slab],4:[h.railing]},volumes:{4:.35}}},ramps:[{tile:h.rampNorth,dir:"north",from:0,to:1},{tile:h.rampSouth,dir:"south",from:0,to:1}],physicsDynamic:[ne(20,28,0),ne(60,28,0),ne(31,S.slabTop,1,32),ne(49,S.slabBottom,1,32)],respawns:{team1:[b(3,38,270),b(9,38,0),b(6,6,0),b(12,6,0),b(6,14,0),b(12,14,0),b(6,22,0),b(12,22,0),oe(10,29,0,1),oe(16,29,0,1)],team2:[b(49,36,270),b(70,38,180),b(73,6,180),b(67,6,180),b(73,14,180),b(67,14,180),b(73,22,180),b(67,22,180),oe(69,29,180,1),oe(63,29,180,1)]},map:wt},Tt={setId:"c1",scale:.6,spriteSheet:{img:"tiles.png",frames:[[480,64,32,32],[128,224,32,32],[160,0,32,32],[0,64,32,32],[0,64,32,32]]},layers:{1:[0,2,4],2:[1],4:[3]},physicsStatic:[1],physicsDynamic:[],step:32,respawns:{team1:[[130,520,0],[130,620,0],[130,720,0],[130,820,0],[230,520,0],[230,620,0],[230,720,0],[230,820,0],[330,620,0],[330,720,0]],team2:[[1600,520,180],[1600,620,180],[1600,720,180],[1600,820,180],[1500,520,180],[1500,620,180],[1500,720,180],[1500,820,180],[1400,620,180],[1400,720,180]]},map:(function(){const t=[[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,1,1,2,2,2,1,1,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,4,4,4,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,3,3,3,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,3,3,3,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,2,2,4,3,3,3,4,2,2,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,3,3,3,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,4,4,4,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,1,1,2,2,2,1,1,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],e=[];for(const r of t){const a=[],o=[];for(const s of r)a.push(s,s),o.push(s,s);e.push(a,o)}return e})()},Ae=72,ke=48,M=32,f={ground:0,wall:1,slab1:2,railing1:3,slab2:4,railing2:5,rampLong:6,rampSide:7,rampSteep:8,rampStep:9},se={x0:14,x1:46,y0:12,y1:30},ie={x0:34,x1:52,y0:16,y1:26},me={x0:5,x1:13,y:21},fe={x:24,y0:31,y1:34},de={x0:53,x1:56,y:21},ue={x0:31,x1:33,y:21},He={x0:20,x1:22},je={x0:40,x1:42},At=[{x0:8,x1:11,y0:14,y1:17},{x0:60,x1:63,y0:30,y1:33}],Re=t=>Array.from({length:ke},()=>Array(Ae).fill(t)),Je=(t,e,r)=>t>=e&&t<=r,kt=(function(){const t=Re(f.ground);for(let e=0;e<ke;e+=1)for(let r=0;r<Ae;r+=1)(e<2||e>=ke-2||r<2||r>=Ae-2)&&(t[e][r]=f.wall);for(const e of At)for(let r=e.y0;r<=e.y1;r+=1)for(let a=e.x0;a<=e.x1;a+=1)t[r][a]=f.wall;for(let e=me.x0;e<=me.x1;e+=1)t[me.y][e]=f.rampLong;for(let e=fe.y0;e<=fe.y1;e+=1)t[e][fe.x]=f.rampSide;for(let e=de.x0;e<=de.x1;e+=1)t[de.y][e]=f.rampSteep;return t})(),et=(t,e,r,a,o)=>{for(let s=e.y0;s<=e.y1;s+=1)for(let i=e.x0;i<=e.x1;i+=1){const c=i===e.x0||i===e.x1||s===e.y0||s===e.y1;t[s][i]=c&&!o(i,s)?a:r}},Et=(function(){const t=Re(0);et(t,se,f.slab1,f.railing1,(e,r)=>e===se.x0&&r===me.y||r===se.y1&&e===fe.x||r===se.y0&&Je(e,He.x0,He.x1));for(let e=ue.x0;e<=ue.x1;e+=1)t[ue.y][e]=f.rampStep;return t})(),Ot=(function(){const t=Re(0);return et(t,ie,f.slab2,f.railing2,(e,r)=>e===ie.x0&&r===ue.y||e===ie.x1&&r===de.y||r===ie.y1&&Je(e,je.x0,je.x1)),t})(),tt=(t,e)=>[t*M+M/2,e*M+M/2],le=(t,e,r,a=64)=>({density:40,layer:3,position:[t*M,e*M+(M-a)/2],angle:0,width:a,height:a,img:"b1.png",linearDamping:6,angularDamping:14,level:r}),k=(t,e,r)=>[...tt(t,e),r],C=(t,e,r,a)=>[...tt(t,e),r,a],Rt={setId:"c1",scale:.4,spriteSheet:{img:"tiles.png",frames:[[480,64,32,32],[128,224,32,32],[288,64,32,32],[352,96,32,32],[96,0,32,32],[64,32,32,32],[352,64,32,32],[384,64,32,32],[416,64,32,32],[320,64,32,32]]},layers:{1:[f.ground,f.rampLong,f.rampSide,f.rampSteep],2:[f.wall]},volumes:{2:1},step:M,physicsStatic:[f.wall],levels:{1:{map:Et,floor:[f.slab1,f.railing1,f.rampStep],walls:[f.railing1],layers:{1:[f.slab1,f.rampStep],4:[f.railing1]},volumes:{4:.35}},2:{map:Ot,floor:[f.slab2,f.railing2],walls:[f.railing2],layers:{1:[f.slab2],4:[f.railing2]},volumes:{4:.35}}},ramps:[{tile:f.rampLong,dir:"east",from:0,to:1},{tile:f.rampSide,dir:"north",from:0,to:1},{tile:f.rampSteep,dir:"west",from:0,to:2},{tile:f.rampStep,dir:"east",from:1,to:2}],physicsDynamic:[le(41,25,2,32),le(21,13,1,32),le(8,24,0),le(62,38,0)],respawns:{team1:[k(58,21,180),C(41,22,90,2),C(20,20,0,1),C(45,18,180,2),k(5,8,0),k(9,8,0),k(5,40,0),k(9,40,0)],team2:[C(24,28,90,0),k(20,33,0),C(21,15,270,1),C(50,21,180,2),C(40,28,180,1),k(60,8,180),k(64,8,180),k(60,40,180)]},map:kt},Nt=Object.fromEntries(Object.entries({canopy:dt,downtown:bt,garden:xt,overpass:vt,"pool mini":Tt,terraces:Rt}).map(([t,e])=>[t,ft(e)])),Ee={m1:{constructor:"Tank",currentWeapon:"w1",size:3,barrelHeight:2.4,turretTop:3,accelerationFactor:1e3,brakingFactor:.3,maxForwardSpeed:130,maxReverseSpeed:-65,baseTurnTorqueFactor:110,damping:{linear:3,angular:100},fixture:{density:200,friction:.5,restitution:.1},lateralGrip:20,hitResponse:{lateralFactor:1.65,idleFactor:.2,spinFactor:.03},turnSpeedThreshold:10,baseTurnFactorRatio:.8,reverseTurnMultiplier:.7,throttleIncreaseRate:2,throttleDecreaseRate:2.5,strainFactor:1.5,maxGunAngle:1.4,gunRotationSpeed:1.5,gunCenterSpeed:10}},Mt={w1:{type:"hitscan",impulseMagnitude:175e4,damage:40,range:1500,fireRate:.3,spread:0,consumption:1,cameraShake:{intensity:20,duration:200}},w2:{type:"explosive",constructor:"Bomb",time:1e3,shotOutcomeId:"w2e",size:8,fireRate:.1,damage:70,radius:50,impulseMagnitude:2e6,cameraShake:{intensity:30,duration:400}}},Lt={m1:{id:1,kind:"indexed8",class:"hot",fields:[{name:"x",ty:"f32",interp:"lerp"},{name:"y",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"gunRotation",ty:"f32",interp:"lerpAngle"},{name:"vx",ty:"f32",interp:"lerp"},{name:"vy",ty:"f32",interp:"lerp"},{name:"engineLoad",ty:"f32",interp:"lerp"},{name:"condition",ty:"u8"},{name:"size",ty:"u8"},{name:"team",ty:"u8"},{name:"angvel",ty:"f32",interp:"lerp"},{name:"z",ty:"f32",interp:"lerp"},{name:"level",ty:"u8"},{name:"vz",ty:"f32",interp:"discrete"},{name:"pitch",ty:"f32",interp:"lerp"},{name:"roll",ty:"f32",interp:"lerp"}]},w1:{id:2,kind:"list16",class:"event",fields:[{name:"startX",ty:"f32"},{name:"startY",ty:"f32"},{name:"endX",ty:"f32"},{name:"endY",ty:"f32"},{name:"bodyX",ty:"f32"},{name:"bodyY",ty:"f32"},{name:"wasHit",ty:"u8"},{name:"shooterId",ty:"u8"},{name:"startLevel",ty:"u8"},{name:"endLevel",ty:"u8"}]},w2:{id:3,kind:"indexed32",class:"event",fields:[{name:"x",ty:"f32"},{name:"y",ty:"f32"},{name:"angle",ty:"f32"},{name:"size",ty:"u8"},{name:"time",ty:"u16"},{name:"ownerId",ty:"u8"},{name:"level",ty:"u8"}]},w2e:{id:4,kind:"list16",class:"event",fields:[{name:"x",ty:"f32"},{name:"y",ty:"f32"},{name:"radius",ty:"f32"},{name:"level",ty:"u8"}]},c1:{id:5,kind:"indexedNoNull8",class:"hot",optionalFrom:6,fields:[{name:"x",ty:"f32",interp:"lerp"},{name:"y",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"z",ty:"f32",interp:"lerp",role:"z"},{name:"level",ty:"u8",role:"level"},{name:"state",ty:"u8",role:"state"},{name:"vx",ty:"f32",interp:"lerp"},{name:"vy",ty:"f32",interp:"lerp"},{name:"angvel",ty:"f32",interp:"lerp"}]},c2:{id:6,kind:"indexedNoNull8",class:"hot",optionalFrom:6,fields:[{name:"x",ty:"f32",interp:"lerp"},{name:"y",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"z",ty:"f32",interp:"lerp",role:"z"},{name:"level",ty:"u8",role:"level"},{name:"state",ty:"u8",role:"state"},{name:"vx",ty:"f32",interp:"lerp"},{name:"vy",ty:"f32",interp:"lerp"},{name:"angvel",ty:"f32",interp:"lerp"}]}},Bt={parts:{models:Ee,weapons:Mt,mapConstructor:"Map",hitscanService:"HitscanService",friendlyFire:!1},snapshot:Lt,soundCues:{roundStart:"roundStart",victory:"victory",defeat:"defeat",frag:"frag",death:"gameOver"},initialVote:"teamChange",maps:Nt,mapScale:.3,currentMap:"downtown",mapsInVote:4,lobbyInfo:"map",mapSetId:"c1",coreParams:{levels:{fallTime:.35,fallDamage:30,fallDamageFreeHeight:.5,maxFallDamage:100,climbGravity:500,climbMaxSpeedFactor:.5,levelAdoptFrames:8,maxSideEntryRise:.5,rampLaunchFactor:.35,minLaunchVz:.35,maxLaunchVz:3.5,jumpClearance:.45,tiltGain:2,tiltAirGain:.12,tiltResponse:12,tiltMax:.6,landingShake:{intensity:3,duration:220,minImpact:1.5,fullImpact:6}},surfaces:{trackYawGain:.004,trackSampleX:.6,trackSampleY:.75,bodyBeltCoupling:4,types:{sand:{accel:.6,maxSpeed:.55,drag:1.2,grip:1,brake:1,turn:.8},mud:{accel:.45,maxSpeed:.4,drag:2,grip:.9,brake:1,turn:.7},water:{accel:.7,maxSpeed:.6,drag:1.5,grip:.8,brake:.8,turn:.85},oil:{accel:.35,maxSpeed:1,drag:0,grip:.08,brake:.1,turn:1.6,angularDrag:-.5,slickTime:1.5},conveyor:{belt:60},boost:{boostDv:350,boostMaxSpeed:480,minEntrySpeed:20,boostTime:1.2,boostSpeedFactor:3.6}}},props:{fence:{hp:30,damagedAt:0,bulletFactor:1,blastFactor:1,ramThreshold:60,ramDamagePerSpeed:.5},crate:{hp:120,damagedAt:.5,bulletFactor:.5,blastFactor:1.5,ramThreshold:140,ramDamagePerSpeed:.6},barrel:{hp:40,damagedAt:0,bulletFactor:1,blastFactor:1,ramThreshold:150,ramDamagePerSpeed:1,chainDelay:.15,blast:{radius:70,damage:80,impulse:25e5,cameraShake:{intensity:30,duration:400}}}},bots:{skill:"easy",variance:.3,presets:{easy:{reactionTime:.55,aimError:.34,aimSettleTime:1.1,aimTremor:.05,fireTolerance:1.8,burstShots:[1,2],burstPause:[.9,1.6],shotInterval:.4,radarInterval:2,radarNoise:40,preferredRange:[100,240],aggression:.35,retreatHealth:45,retreatAdvantage:.6,steerNoise:.1,edgeRisk:.25,hesitation:.08,panicFire:.3},normal:{reactionTime:.45,aimError:.3,aimSettleTime:1,aimTremor:.04,fireTolerance:1.25,burstShots:[1,2],burstPause:[.8,1.4],shotInterval:.35,radarInterval:1.4,radarNoise:25,preferredRange:[120,300],aggression:.5,retreatHealth:35,retreatAdvantage:.5,steerNoise:.05,edgeRisk:.12,hesitation:.04,panicFire:.15},hard:{reactionTime:.28,aimError:.18,aimSettleTime:.7,aimTremor:.025,fireTolerance:.9,burstShots:[1,3],burstPause:[.7,1.2],shotInterval:.3,radarInterval:.9,radarNoise:12,preferredRange:[140,340],aggression:.65,retreatHealth:25,retreatAdvantage:.4,steerNoise:.02,edgeRisk:.04,hesitation:.01,panicFire:.05}}}},roomDefaults:{maxPlayers:8},roomForm:[{name:"maxPlayers",control:"text",label:"Max players",numeric:!0},{name:"roundTime",control:"text",label:"Round time",unit:"s",numeric:!0},{name:"mapTime",control:"text",label:"Map time",unit:"s",numeric:!0},{name:"friendlyFire",control:"checkbox",label:"Friendly fire"},{name:"map",control:"select",label:"Map",source:"maps"}],stat:{name:{key:0,bodyMethod:"=",headSync:!0,headMethod:"#"},status:{key:1,bodyMethod:"=",bodyValue:"",headValue:""},score:{key:2,bodyMethod:"+",bodyValue:0,headMethod:"+",headValue:0},deaths:{key:3,bodyMethod:"+",bodyValue:0,headMethod:"+",headValue:0},latency:{key:4,bodyMethod:"="}},playerState:{defaultState:{}},panel:{fields:{health:{key:"h",value:100},w1:{key:"w1",value:200},w2:{key:"w2",value:100}},activeKey:"wa"},scripted:{namePrefix:"Bot",defaultModel:"m1"},spectatorTeam:"spectators",teams:{team1:1,team2:2,spectators:3},playerKeys:{forward:{key:1},back:{key:2},left:{key:4},right:{key:8},gunCenter:{key:16,type:1},gunLeft:{key:32},gunRight:{key:64},fire:{key:128,type:1},nextWeapon:{key:256,type:1},prevWeapon:{key:512,type:1}}},It={roundStart:{file:"round-start",priority:200,volume:.35},victory:{file:"victory",priority:200,volume:.38},defeat:{file:"defeat",priority:200,volume:.5},frag:{file:"frag",priority:150,volume:.26},hit:{file:"hit",priority:150,volume:.36},gameOver:{file:"game-over",priority:150,volume:.31},shot:{file:"shot",priority:100,volume:.51},explosion:{file:"explosion",priority:100,volume:.74},tankExplosion:{file:"explosion",priority:100,volume:.6},bombHasBeenPlanted:{file:"bomb-has-been-planted",priority:90,volume:.48},propBreak:{file:"hit",priority:80,volume:.28},tankLanding:{file:"tank-landing",priority:60,volume:.7},tankEngine:{file:"tank-engine",priority:50,loop:!0,volume:.5},tankWater:{file:"tank-water",priority:55,loop:!0,volume:.3}},Ct={codecList:["webm","mp3"],path:"/sounds/",spatial:{mode:"topDown",virtualElevation:108,innerRadius:7.5},sounds:It},Ft={mode:"hole",radius:260,softness:.45,minAlpha:.12,layerAlpha:.4,fadeRate:6,roofMargin:0,lowerTint:11579584},Dt={shear:.22,levelZStride:100},Wt={enabled:!0,faces:!0,faceTilesPerLevel:3,faceSegments:4,faceBleedPx:2,slices:4,rampSegments:4,sideTint:10133674},Vt={scaleGain:.1,baseAlpha:.4,alphaFalloff:.12,sizeFactor:1.05,groundOffset:3,groundAlpha:.3},Pt={enabled:!0,lift:.35,vertices:6,shading:.28,lightDir:[-.7,-.7]},Yt={fullImpact:6,squash:.14,duration:260,minImpact:1.5},zt={enabled:!0,maxFps:30},$e={enabled:!0,resolution:.5,maxLights:96,headlights:{length:90,spread:.55,intensity:.9,color:16773572,offset:.5,occlusion:{enabled:!0,rays:64},bounce:{intensity:.35,radius:30,maxDistance:80},wash:{height:.6,intensity:1}},rampSpill:1,tankGlow:{radius:26,intensity:.35,color:12570879},flash:{explosion:{radius:140,intensity:1,duration:260,color:16756832},shot:{radius:90,intensity:.9,duration:120,color:16773280},hit:{radius:60,intensity:.8,duration:110,color:16760944},wreck:{radius:150,intensity:1.1,duration:320,color:16752720}},wreckFire:{radius:70,intensity:.75,color:16748608,flicker:.45},glints:{enabled:!0,intensity:.8,size:1.2},shafts:{enabled:!0,rays:14,length:1.3,intensity:.35,shadows:!0,maxShadowCasters:4}},qe={radius:3,blur:1,quality:40,color:16777215},Ut={parts:{gameSets:{c1:["Map","MapRadar"],c2:["Map"],m1:["Tank","TankRadar","Smoke","Tracks","Dust","WreckFire"],w1:["ShotEffect"],w2:["Bomb"],w2e:["ExplosionEffect"]},entitiesOnCanvas:{Map:"vimp",MapRadar:"radar",TankRadar:"radar",Tank:"vimp",ShotEffect:"vimp",Bomb:"vimp",ExplosionEffect:"vimp",Smoke:"vimp",Tracks:"vimp",Dust:"vimp",WreckFire:"vimp"},bakedAssets:{vimp:[{name:"explosionTexture",component:"ExplosionEffect",params:{radius:50,blur:2,quality:40,color:16777215}},{name:"impactParticleTexture",component:"ShotEffect",params:{radius:4,blur:1,quality:10,color:16777215}},{name:"smokeTexture",component:"ShotEffect",params:qe},{name:"funnelTexture",component:"ExplosionEffect",params:{baseRadius:25,irregularity:4,blur:3,numPoints:20,colorFill:1842204,colorRim:11579568,rimWidth:4,variants:5}},{name:"smokeTexture",component:"Smoke",params:qe},{name:"tankTexture",component:"Tank",params:{colors:{teamId1:5579298,teamId2:2250018}}},{name:"tankModelTexture",component:"Tank",params:{colors:{teamId1:5579298,teamId2:2250018}}},{name:"bombTexture",component:"Bomb",params:{colorOuter:16777215,colorInner:986895}},{name:"tankShadowTexture",component:"Tank",params:{width:40,height:30,radius:6,blur:2,quality:20,color:0}},{name:"dustTexture",component:"Dust",params:{radius:4,blur:1,quality:20,color:16777215}},{name:"trackMarkTexture",component:"Tracks",params:{width:4,length:5,color:1710610}},{name:"scorchTexture",component:"Map",params:{baseRadius:20,irregularity:5,blur:4,numPoints:16,color:1315344,coreColor:328965,coreRatio:.55,variants:4}},{name:"debrisTexture",component:"Map",params:{length:8,width:3,color:16777215,variants:4}},{name:"lightRadialTexture",component:"Map",params:{radius:64,rings:32,blur:2}},{name:"lampHeadTexture",component:"Map",params:{core:3,halo:10,rings:12,blur:1}},{name:"glintTexture",component:"Map",params:{radius:32,strips:16,blur:2}},{name:"lightShaftTexture",component:"Map",params:{radius:128,rays:$e.shafts.rays,width:.05,seed:7,blur:3}},{name:"headlightConeTexture",component:"Tank",params:{length:128,halfWidth:64,strips:24,blur:4}},{name:"wreckFireTexture",component:"WreckFire",params:{radius:32,rings:24,blur:2}},{name:"wreckSmokeTexture",component:"WreckFire",params:{radius:8,blur:3,quality:20,color:16777215}},{name:"wreckScorchTexture",component:"WreckFire",params:{baseRadius:20,irregularity:5,blur:4,numPoints:16,color:1380879,coreColor:394501,coreRatio:.5,variants:3}}],radar:[{name:"tankRadarTexture",component:"TankRadar",params:{radius:6,borderWidth:2,crossSize:9,crossThickness:1.5,colors:{teamId1:5579298,teamId2:2250018}}}]},componentDependencies:{renderer:["Map","Tank","Tracks","Smoke","Dust","Bomb","ShotEffect","ExplosionEffect","WreckFire"],assetsBase:["Map"],soundManager:["ExplosionEffect","ShotEffect","Bomb","Tank","Dust","Map","WreckFire"],mapDynamics:["ShotEffect"],rampRuns:["Map","ShotEffect"],surfaces:["Dust","Tracks","Tank"],volumes:["Map","ShotEffect"],shots:["ShotEffect","Tank"],blasts:["ExplosionEffect","Tank","WreckFire"],levelView:["Tank","Map","MapRadar","Smoke","Bomb","ShotEffect","ExplosionEffect","Tracks","Dust","WreckFire"],localPlayer:["Tank","ShotEffect"],lighting:["Map","Tank","ExplosionEffect","ShotEffect","WreckFire"],diagnostics:["Tank","Map"]},seeThrough:Ft,parallax:Dt,volume:Wt,shadow:Vt,tilt:Pt,landing:Yt,lighting:$e,animations:zt,sounds:Ct},initIdList:["vimp","radar","panel","chat"],modules:{canvasManager:{canvases:{vimp:{width:960,height:600,aspectRatio:"16:9",baseScale:"5:1",dynamicCamera:!0,shakeCamera:!0},radar:{width:150,height:150,fixSize:"150",baseScale:"1:8"}}},controls:{keySetList:[{78:"nextPlayer",80:"prevPlayer"},{87:"forward",83:"back",65:"left",68:"right",85:"gunCenter",75:"gunLeft",76:"gunRight",74:"fire",78:"nextWeapon",80:"prevWeapon"}]},chat:{params:{messages:{s:["Team {0} is full. Your current team: {1}","Your team: {0}","Your new team: {0}","Your new status: spectator","⚔️ {0} killed {1}","⚡ {0} joined the game","👋 {0} left the game","Host changed","You are no longer the host (connection lost)","Host changed: the previous host was lagging","Host changed: the previous host went inactive","Host changed: the previous host had a poor connection"],v:["A vote has been created","Voting has started","Your vote has been accepted","Voting is temporarily unavailable","Vote passed","Vote failed","Usage: /changehost","You are the host — use “Hand over host” in the room menu","No connection to the master server","A host vote was held recently","No other player can host","A host vote is already in progress","A host vote is not possible right now","Vote to change host passed ({0}/{1})","Vote to change host failed ({0}/{1})","Host vote cancelled"],m:["Current map: {0}","Next map: {0}"],c:["Command not found","Your rank: {0}"],b:["Only active players can use /bot","Invalid bot count","Invalid team name","{0} bot(s) created for {1}","All bots removed from {0}","{0} bot(s) created","All bots removed"],t:["Time left: {0}"]}}},panel:{keys:{t:"time",h:"health",wa:"activeWeapon",w1:"bullet",w2:"bomb"},fields:[{name:"health",elem:"panel-health",type:"bar",max:100,blocks:30},{name:"bullet",elem:"panel-bullet",type:"weapon"},{name:"bomb",elem:"panel-bomb",type:"weapon"},{name:"time",elem:"panel-time",type:"time"}]},stat:{params:{columns:["names","status","score","deaths","latency"],heads:{1:"team1",2:"team2"},bodies:{1:"team1",2:"team2",3:"spectators"},sortList:{team1:[[2,!0],[3,!1]],team2:[[2,!0],[3,!1]]}}},vote:{params:{templates:{teamChange:["Choose a team","teams",!0],mapChangeBySystem:["Choose the next map"],mapChangeByUser:["{0} suggested the map: {1}",["Yes","No"]],createBotsForTeam:["{0} suggests creating {1} bot(s) to {2}. Agree?",["Yes","No"]],removeBotsForTeam:["{0} suggests removing all bots from {1}. Agree?",["Yes","No"]],createBots:["{0} suggests creating {1} bot(s) to the game. Agree?",["Yes","No"]],removeBots:["{0} suggests removing all bots from the game. Agree?",["Yes","No"]]},menu:[["teamChange",["Switch team","teams"]],["mapChange",["Suggest map","maps"]]]}}},gameInform:{list:["{0} WINS!","ROUND START!","GAME OVER!"]}},Gt={elems:{authId:"auth",errorId:"auth-error",enterId:"auth-enter",fieldsId:"auth-fields",titleId:"auth-title",informsId:"auth-informs"},texts:{title:"Tanks",sections:[{heading:"Controls",lines:[{keys:"w, a, s, d",text:"move the tank"},{keys:"k, l",text:"turn the gun"},{keys:"u",text:"center the gun"},{keys:"j",text:"fire"},{keys:"n, p",text:"switch weapon/player",last:!0},{keys:"c",text:"chat/command line"},{keys:"m",text:"menu"},{keys:"<Tab>",text:"stats",last:!0}]},{heading:"Command line",lines:[{keys:"/mapname",text:"show current map name"},{keys:"/timeleft",text:"map time left"},{separator:!0},{keys:"/bot <count>",text:"add bot(s)"},{keys:"/bot <count> <team>",text:"add to team"},{keys:"/bot 0",text:"remove all bots"},{keys:"/bot 0 <team>",text:"remove from team"}]}]},params:[{name:"model",value:"m1",options:{control:"select",label:"Model",options:Object.keys(Ee),validator:"isValidModel",storage:"model"}}],validators:{isValidModel:t=>t in Ee}};function rt(t,e,r){r?(t.scripted.removeScripted(r),e>0?(e=t.scripted.createScripted(e,r),t.chat.pushSystem("BOT_CREATED_FOR_TEAM",[e,r])):t.chat.pushSystem("BOT_REMOVED_FROM_TEAM",[r])):(t.scripted.removeScripted(),e>0?(e=t.scripted.createScripted(e,null),t.chat.pushSystem("BOT_CREATED",[e])):t.chat.pushSystem("BOT_REMOVED")),t.roundManager.initiateNewRound()}function Ht(t,e,r,a){const o=t.participants.get(e).name,s="botManagement";let i,c;if(!t.voteCoordinator.canCreateVote(s,e))return;a?r>0?(i="createBotsForTeam",c=[o,r,a]):(i="removeBotsForTeam",c=[o,a]):r>0?(i="createBots",c=[o,r]):(i="removeBots",c=[o]);const d={name:i,params:c},p=t.participants.getHumans().map(m=>m.gameId).filter(m=>m!==e);t.voteCoordinator.createVote({voteName:i,voteCategory:s,payload:d,resultFunc:m=>{m==="Yes"?(t.chat.pushSystem("VOTE_PASSED"),rt(t,r,a)):t.chat.pushSystem("VOTE_FAILED")},userList:p,gameId:e})}const jt={name:"/bot",handler(t,e,r){if(t.participants.get(e).teamId===t.spectatorId){t.chat.pushSystemByUser(e,"BOT_PLAYERS_ONLY");return}const o=parseInt(r[0],10),s=r[1]||null;if(isNaN(o)||o<0){t.chat.pushSystemByUser(e,"BOT_INVALID_COUNT");return}if(s&&(!t.teams[s]||s===t.spectatorTeam)){t.chat.pushSystemByUser(e,"BOT_INVALID_TEAM");return}if(o===0){if(s&&t.scripted.getCountForTeam(s)===0){t.chat.pushSystemByUser(e,"BOT_REMOVED_FROM_TEAM",[s]);return}if(t.scripted.getCount()===0){t.chat.pushSystemByUser(e,"BOT_REMOVED");return}}t.participants.getHumans().filter(c=>c.teamId!==t.spectatorId).length<=1?rt(t,o,s):Ht(t,e,o,s)}};function $t(t){const e=Math.floor(t/1e3),r=String(Math.floor(e/60)).padStart(2,"0"),a=String(e%60).padStart(2,"0");return`${r}:${a}`}const qt={name:"/nr",handler(t,e){t.isDevMode?t.roundManager.initiateNewRound():t.chat.pushSystemByUser(e,"COMMANDS_NOT_FOUND")}},Xt={name:"/timeleft",handler(t,e){t.chat.pushSystemByUser(e,"TIME_LEFT",[$t(t.timerManager.getMapTimeLeft())])}},Kt={name:"/mapname",handler(t,e){t.chat.pushSystemByUser(e,"MAP_CURRENT",[t.roundManager.currentMap])}},Zt={name:"/rank",handler(t,e){t.chat.pushSystemByUser(e,"RANK",[t.playerDataSync.getRank(e)])}},Qt={BOT_PLAYERS_ONLY:"b:0",BOT_INVALID_COUNT:"b:1",BOT_INVALID_TEAM:"b:2",BOT_CREATED_FOR_TEAM:"b:3",BOT_REMOVED_FROM_TEAM:"b:4",BOT_CREATED:"b:5",BOT_REMOVED:"b:6",TIME_LEFT:"t:0"};class Jt{constructor({participants:e,coreAdapter:r,panel:a,stat:o,scripted:s}){this._participants=e,this._coreAdapter=r,this._panel=a,this._stat=o,this._model=s.defaultModel,this._respawns=null}createMap(e){this._respawns=e.respawns}createScripted(e,r=null){if(!this._respawns)return 0;const a=this._participants.getPlayableTeams();let o=0;for(let s=0;s<e&&!this._participants.isFull;s+=1){let i=r;if(i||(i=a.sort((p,m)=>this._participants.getTeamSize(p)-this._participants.getTeamSize(m))[0]),!i||!this._respawns[i]||this._participants.getTeamSize(i)>=this._respawns[i].length)continue;const c=this._participants.createScripted({team:i,model:this._model}),d=this._participants.get(c);this._stat.addUser(c,d.teamId,{name:d.name,status:"dead",latency:"BOT"}),this._panel.addUser(c),o+=1}return o}removeScripted(e=null){(e?this._participants.getScripted().filter(a=>a.team===e):this._participants.getScripted()).forEach(a=>this._removeBotById(a.gameId))}removeOneForHuman(e){for(const r of this._participants.getScripted())if(r.team===e)return this._removeBotById(r.gameId),!0;return!1}_removeBotById(e){const r=this._participants.get(e);!r||!r.isScripted||(this._stat.removeUser(e,r.teamId),this._panel.removeUser(e),this._coreAdapter.removePlayer(e),this._participants.remove(e))}getBotById(e){const r=this._participants.get(e);return r&&r.isScripted?r:void 0}getBots(){return this._participants.getScripted()}getCount(){return this._participants.getScripted().length}getCountForTeam(e){return this._participants.getScripted().filter(r=>r.team===e).length}getCountsPerTeam(){const e={};for(const r of this._participants.getScripted())e[r.team]=(e[r.team]||0)+1;return e}}function er(t){return{scripted:new Jt(t)}}const tr=t=>(t??"").split(/[?#]/)[0].endsWith(".js"),rr=t=>import(t),ar={id:"tanks",engineApi:4,requires:["map.layers","map.levelsN","map.gameData","map.bodyState"],async createCore(t,{wasmUrl:e}){if(tr(e)){const r=await rr(e);return new r.GameCore(t)}return await pt({module_or_path:e}),new we(t)},onCoreEvent(t){t?.type==="mapDerivedError"&&console.warn(`[tanks] map game data: ${t.message}`)},gameConfig:Bt,authSchema:Gt,chatCommands:[jt,qt,Xt,Kt,Zt],systemMessages:Qt,createModules:er,buildClientGameConfig:()=>Ut};export{ar as default};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-OMgreJFP.js","sources":["../core/pkg-web/vimp_tanks_core.js","../src/data/maps/wallHeights.js","../src/data/maps/canopy.js","../src/data/maps/city/tiles.js","../src/data/maps/downtown.js","../src/data/maps/garden.js","../src/data/maps/overpass.js","../src/data/maps/pool_mini.js","../src/data/maps/terraces.js","../src/data/maps/index.js","../src/data/models.js","../src/data/weapons.js","../src/config/snapshot.js","../src/config/game.js","../src/config/sounds.js","../src/config/render.js","../src/config/client.js","../src/config/auth.js","../src/host/botCommand.js","../src/host/metaCommands.js","../src/host/systemMessages.js","../src/host/TanksBotManager.js","../src/host/createModules.js","../src/nodeCore.js","../src/host/index.js"],"names":["GameCore","ptr","GameCoreFinalization","wasm","deferred1_0","deferred1_1","ret","getStringFromWasm0","v1","getArrayF32FromWasm0","game_id","seq","x","y","flags","action","key_name","ptr0","passStringToWasm0","len0","WASM_VECTOR_LEN","ptr1","len1","data","passArray8ToWasm0","takeFromExternrefTable0","op","payload","v3","getArrayU8FromWasm0","map_json","config_json","server_time","has_camera","camera_x","camera_y","force_reset","shake","player_id","isLikeNone","team_id","angle_deg","level","model","dt","__wbg_get_imports","arg0","arg1","table","offset","len","getFloat32ArrayMemory0","getUint8ArrayMemory0","cachedFloat32ArrayMemory0","decodeText","cachedUint8ArrayMemory0","arg","malloc","realloc","buf","cachedTextEncoder","mem","code","view","idx","value","cachedTextDecoder","MAX_SAFARI_DECODE_BYTES","numBytesDecoded","__wbg_finalize_init","instance","module","__wbg_load","imports","e","expectedResponseType","bytes","type","__wbg_init","module_or_path","wallHeightsOf","map","out","add","layers","volumes","layer","height","tile","heights","config","withWallHeights","wallHeights","canopy","generatedObjects","posX","posY","tiles","buildWall","x1","y1","x2","y2","CELL","SHEET_COLUMNS","T","FRAME_COUNT","frames","_","id","width","step","overpass","overpassRampWest","overpassRampEast","overpassLedgeNorth","overpassLedgeSouth","parking","jumpBoost","jumpRamp","parkingLedge","canal","bridges","bridgeDeck","bridgeRampNorth","bridgeRampSouth","ford","fordBoost","buildings","grid","fill","rect","x0","y0","hline","vline","inRange","from","to","dashes","level0","b","bridge","level1","at","body","w","h","extra","fence","crate","barrel","spawn","angle","lamp","every","by","make","v","belt","downtown","dynamicBaseDefenses","createDefenseLine","startX","startY","count","isVertical","i","position","end","wallPos","garden","drawBorder","placeRocks","cx","cy","radius","density","oasisCx","oasisCy","oasisRadius","rampNorth","rampSouth","ledgeNorth","ledgeSouth","openNorth","openSouth","box","size","spawnOn","poolMini","originalMap","newMap","row","newRow1","newRow2","terrace","upper","rampLong","rampSide","rampSteep","rampStep","ledgeTerrace","ledgeUpper","building","slabRect","floorTile","wallTile","isOpen","edge","level2","terraces","maps","name","models","weapons","snapshot","gameConfig","sounds","sounds$1","seeThrough","parallax","volume","shadow","tilt","landing","animations","lighting","smokeTextureParams","clientConfig","authSchema","executeBotCommand","ctx","team","initiateBotVote","gameId","userName","voteCategory","voteName","voteArgs","userList","u","result","botCommand","args","formatTime","ms","totalSeconds","minutes","seconds","newRoundCommand","timeLeftCommand","mapNameCommand","rankCommand","systemMessages","TanksBotManager","participants","coreAdapter","panel","stat","scripted","mapData","teamName","playableTeams","createdCount","targetTeam","a","participant","bot","counts","createModules","isNodeCore","wasmUrl","loadNodeCore","index","coreConfigJson","node","init"],"mappings":"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G,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,EAAG,EAAG,CACd,EACM,CACE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrE,E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"}
@@ -7,17 +7,17 @@
7
7
  "map.gameData",
8
8
  "map.bodyState"
9
9
  ],
10
- "version": "b8e3ccf9ce9be840",
10
+ "version": "149cf7131a542604",
11
11
  "title": "Tanks",
12
12
  "entries": {
13
- "client": "/games/tanks/client-BVzHQS2w.js",
14
- "host": "/games/tanks/host-ynKIS5cw.js",
15
- "wasm": "/games/tanks/assets/vimp_tanks_core_bg-Cn9Xl1tg.wasm",
13
+ "client": "/games/tanks/client-Dbk-Mk6-.js",
14
+ "host": "/games/tanks/host-OMgreJFP.js",
15
+ "wasm": "/games/tanks/assets/vimp_tanks_core_bg-DB0Ecjmc.wasm",
16
16
  "wasmNode": "./core-node/vimp_tanks_core.js"
17
17
  },
18
18
  "assetsBase": "/games/tanks/",
19
19
  "maps": {
20
- "version": "b2c6fcec3e12be43",
20
+ "version": "e22b4aee4e997127",
21
21
  "list": [
22
22
  "canopy",
23
23
  "downtown",