@vimp-games/tanks 0.22.23 → 0.22.24

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.
Files changed (88) hide show
  1. package/dist/assets/vimp_tanks_core_bg-CI0QeU9I.wasm +0 -0
  2. package/dist/client-CsTbNQIQ.js +136 -0
  3. package/dist/client-CsTbNQIQ.js.map +1 -0
  4. package/dist/core-node/vimp_tanks_core.d.ts +32 -7
  5. package/dist/core-node/vimp_tanks_core.js +63 -10
  6. package/dist/core-node/vimp_tanks_core_bg.wasm +0 -0
  7. package/dist/core-node/vimp_tanks_core_bg.wasm.d.ts +5 -1
  8. package/dist/host-BTwPEd7Q.js +1 -0
  9. package/dist/host-BTwPEd7Q.js.map +1 -0
  10. package/dist/manifest.json +14 -10
  11. package/dist/maps/canopy.json +1 -1
  12. package/dist/maps/downtown.json +1 -1
  13. package/dist/maps/overpass.json +1 -1
  14. package/dist/sounds/bomb-has-been-planted.mp3 +0 -0
  15. package/dist/sounds/bomb-has-been-planted.webm +0 -0
  16. package/dist/sounds/bomb-has-been-planted2.mp3 +0 -0
  17. package/dist/sounds/bomb-has-been-planted2.webm +0 -0
  18. package/dist/sounds/bottle-break.mp3 +0 -0
  19. package/dist/sounds/bottle-break.webm +0 -0
  20. package/dist/sounds/buy.mp3 +0 -0
  21. package/dist/sounds/buy.webm +0 -0
  22. package/dist/sounds/defeat.mp3 +0 -0
  23. package/dist/sounds/defeat.webm +0 -0
  24. package/dist/sounds/empty-bullet.mp3 +0 -0
  25. package/dist/sounds/empty-bullet.webm +0 -0
  26. package/dist/sounds/explosion.mp3 +0 -0
  27. package/dist/sounds/explosion.webm +0 -0
  28. package/dist/sounds/flamethrower.mp3 +0 -0
  29. package/dist/sounds/flamethrower.webm +0 -0
  30. package/dist/sounds/frag.mp3 +0 -0
  31. package/dist/sounds/frag.webm +0 -0
  32. package/dist/sounds/game-over.mp3 +0 -0
  33. package/dist/sounds/game-over.webm +0 -0
  34. package/dist/sounds/hit.mp3 +0 -0
  35. package/dist/sounds/hit.webm +0 -0
  36. package/dist/sounds/machinegun.mp3 +0 -0
  37. package/dist/sounds/machinegun.webm +0 -0
  38. package/dist/sounds/missile-beep.mp3 +0 -0
  39. package/dist/sounds/missile-beep.webm +0 -0
  40. package/dist/sounds/missile-flight.mp3 +0 -0
  41. package/dist/sounds/missile-flight.webm +0 -0
  42. package/dist/sounds/missile-launch.mp3 +0 -0
  43. package/dist/sounds/missile-launch.webm +0 -0
  44. package/dist/sounds/own-hit.mp3 +0 -0
  45. package/dist/sounds/own-hit.webm +0 -0
  46. package/dist/sounds/reload.mp3 +0 -0
  47. package/dist/sounds/reload.webm +0 -0
  48. package/dist/sounds/ricochet-1.mp3 +0 -0
  49. package/dist/sounds/ricochet-1.webm +0 -0
  50. package/dist/sounds/ricochet-2.mp3 +0 -0
  51. package/dist/sounds/ricochet-2.webm +0 -0
  52. package/dist/sounds/ricochet-3.mp3 +0 -0
  53. package/dist/sounds/ricochet-3.webm +0 -0
  54. package/dist/sounds/ricochet-4.mp3 +0 -0
  55. package/dist/sounds/ricochet-4.webm +0 -0
  56. package/dist/sounds/round-start.mp3 +0 -0
  57. package/dist/sounds/round-start.webm +0 -0
  58. package/dist/sounds/shot.mp3 +0 -0
  59. package/dist/sounds/shot.webm +0 -0
  60. package/dist/sounds/shotgun.mp3 +0 -0
  61. package/dist/sounds/shotgun.webm +0 -0
  62. package/dist/sounds/tank-blast.mp3 +0 -0
  63. package/dist/sounds/tank-blast.webm +0 -0
  64. package/dist/sounds/tank-burning.mp3 +0 -0
  65. package/dist/sounds/tank-burning.webm +0 -0
  66. package/dist/sounds/tank-crash.mp3 +0 -0
  67. package/dist/sounds/tank-crash.webm +0 -0
  68. package/dist/sounds/tank-engine.mp3 +0 -0
  69. package/dist/sounds/tank-engine.webm +0 -0
  70. package/dist/sounds/tank-landing.mp3 +0 -0
  71. package/dist/sounds/tank-landing.webm +0 -0
  72. package/dist/sounds/tank-scream.mp3 +0 -0
  73. package/dist/sounds/tank-scream.webm +0 -0
  74. package/dist/sounds/tank-water.mp3 +0 -0
  75. package/dist/sounds/tank-water.webm +0 -0
  76. package/dist/sounds/victory.mp3 +0 -0
  77. package/dist/sounds/victory.webm +0 -0
  78. package/dist/sounds/weapon-switch.mp3 +0 -0
  79. package/dist/sounds/weapon-switch.webm +0 -0
  80. package/package.json +2 -2
  81. package/dist/assets/vimp_tanks_core_bg-ic8olTsk.wasm +0 -0
  82. package/dist/client-D4aVwbrD.js +0 -210
  83. package/dist/client-D4aVwbrD.js.map +0 -1
  84. package/dist/host-f7fdEnd_.js +0 -1
  85. package/dist/host-f7fdEnd_.js.map +0 -1
  86. package/dist/maps/garden.json +0 -1
  87. package/dist/maps/pool mini.json +0 -1
  88. package/dist/maps/terraces.json +0 -1
@@ -24,10 +24,6 @@ export class ClientCore {
24
24
  * предикта.
25
25
  */
26
26
  apply_input(action: string, key_name: string, local_now: number): void;
27
- /**
28
- * Локальный цикл смены оружия (авторитетное подтверждение — панелью).
29
- */
30
- cycle_weapon(back: boolean): void;
31
27
  /**
32
28
  * Дамп клиентского состояния для отладки: сетевой буфер
33
29
  * (глубина, окно seq, оффсет, последний кадр), свой gameId,
@@ -44,6 +40,11 @@ export class ClientCore {
44
40
  * Зеркало `dispatch` игрового ядра (см. игровой макрос).
45
41
  */
46
42
  dispatch(op: string, payload: Uint8Array): Uint8Array;
43
+ /**
44
+ * `true`, если нажатие `fire` упирается в пустое активное оружие
45
+ * (клиент играет щелчок): опустевший активный слот secondary/grenade.
46
+ */
47
+ empty_fire(local_now: number): boolean;
47
48
  /**
48
49
  * Уровень пола под мировой точкой для пули, летящей на уровне `level`:
49
50
  * сам `level`, если там его плита (у земли — всегда), иначе уровень
@@ -117,6 +118,11 @@ export class ClientCore {
117
118
  * Полный сброс (порт CLEAR).
118
119
  */
119
120
  reset(): void;
121
+ /**
122
+ * Поколение сброса: растёт на каждом CLEAR. По нему рендер снимает
123
+ * следы на стенах в новом раунде (сервис `wallMarks`).
124
+ */
125
+ reset_generation(): number;
120
126
  /**
121
127
  * Ресинк часов после долгой паузы вкладки: сброс сетевого
122
128
  * буфера и очереди кадров без обнуления предикта.
@@ -155,6 +161,11 @@ export class ClientCore {
155
161
  * сегмент уровня 0, как у хоста.
156
162
  */
157
163
  shot_segments(x: number, y: number, dx: number, dy: number, range: number, level: number): Float32Array;
164
+ /**
165
+ * Счётчик смен активного слота клавишами `1`/`2`/`3` у живого своего
166
+ * танка: рост — смена оружия (клиент играет её звук).
167
+ */
168
+ slot_switches(): number;
158
169
  /**
159
170
  * Индекс типа поверхности под мировой точкой уровня (порядок
160
171
  * `surface_types`); `-1` — карты нет, поверхностей она не объявила или
@@ -175,7 +186,7 @@ export class ClientCore {
175
186
  */
176
187
  surface_types(): string;
177
188
  /**
178
- * Авторитетное состояние панели (PANEL_DATA): патроны/активное оружие.
189
+ * Авторитетное состояние панели (PANEL_DATA): магазин, перезарядка, слоты.
179
190
  */
180
191
  sync_panel(panel_json: string): void;
181
192
  /**
@@ -192,8 +203,22 @@ export class ClientCore {
192
203
  */
193
204
  take_frames(): string;
194
205
  /**
195
- * Локальный визуальный выстрел: гейты (кулдаун/патроны/pending-бомба/
196
- * жив/активен) внутри. JSON спавна для applyGameData либо None.
206
+ * Прицел броска зажигательной гранаты своего танка: `[дальность, радиус
207
+ * лужи, доля заряда]` либо пустой массив (бросок не заряжается).
208
+ */
209
+ throw_aim(): Float32Array;
210
+ /**
211
+ * Где бутылка молотова, брошенная с уровня `level` из `(x, y)` по
212
+ * единичному `(dx, dy)` на `range`, разобьётся о стену — та же проверка,
213
+ * что у хоста (`shot_height::throw_wall`): дистанция до точки разбития
214
+ * либо пустой массив (стены нет или карты нет). По ней прицел броска
215
+ * упирается в стену.
216
+ */
217
+ throw_wall(x: number, y: number, dx: number, dy: number, range: number, level: number): Float32Array;
218
+ /**
219
+ * Локальный визуальный выстрел активного слота: гейты
220
+ * (кулдаун/магазин/перезарядка/заряд/жив/активен) внутри. JSON спавна
221
+ * для applyGameData либо None.
197
222
  */
198
223
  try_fire(local_now: number): string | undefined;
199
224
  }
@@ -58,13 +58,6 @@ class ClientCore {
58
58
  const len1 = WASM_VECTOR_LEN;
59
59
  wasm.clientcore_apply_input(this.__wbg_ptr, ptr0, len0, ptr1, len1, local_now);
60
60
  }
61
- /**
62
- * Локальный цикл смены оружия (авторитетное подтверждение — панелью).
63
- * @param {boolean} back
64
- */
65
- cycle_weapon(back) {
66
- wasm.clientcore_cycle_weapon(this.__wbg_ptr, back);
67
- }
68
61
  /**
69
62
  * Дамп клиентского состояния для отладки: сетевой буфер
70
63
  * (глубина, окно seq, оффсет, последний кадр), свой gameId,
@@ -120,6 +113,16 @@ class ClientCore {
120
113
  wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
121
114
  return v3;
122
115
  }
116
+ /**
117
+ * `true`, если нажатие `fire` упирается в пустое активное оружие
118
+ * (клиент играет щелчок): опустевший активный слот secondary/grenade.
119
+ * @param {number} local_now
120
+ * @returns {boolean}
121
+ */
122
+ empty_fire(local_now) {
123
+ const ret = wasm.clientcore_empty_fire(this.__wbg_ptr, local_now);
124
+ return ret !== 0;
125
+ }
123
126
  /**
124
127
  * Уровень пола под мировой точкой для пули, летящей на уровне `level`:
125
128
  * сам `level`, если там его плита (у земли — всегда), иначе уровень
@@ -266,6 +269,15 @@ class ClientCore {
266
269
  reset() {
267
270
  wasm.clientcore_reset(this.__wbg_ptr);
268
271
  }
272
+ /**
273
+ * Поколение сброса: растёт на каждом CLEAR. По нему рендер снимает
274
+ * следы на стенах в новом раунде (сервис `wallMarks`).
275
+ * @returns {number}
276
+ */
277
+ reset_generation() {
278
+ const ret = wasm.clientcore_reset_generation(this.__wbg_ptr);
279
+ return ret >>> 0;
280
+ }
269
281
  /**
270
282
  * Ресинк часов после долгой паузы вкладки: сброс сетевого
271
283
  * буфера и очереди кадров без обнуления предикта.
@@ -339,6 +351,15 @@ class ClientCore {
339
351
  wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
340
352
  return v1;
341
353
  }
354
+ /**
355
+ * Счётчик смен активного слота клавишами `1`/`2`/`3` у живого своего
356
+ * танка: рост — смена оружия (клиент играет её звук).
357
+ * @returns {number}
358
+ */
359
+ slot_switches() {
360
+ const ret = wasm.clientcore_slot_switches(this.__wbg_ptr);
361
+ return ret >>> 0;
362
+ }
342
363
  /**
343
364
  * Индекс типа поверхности под мировой точкой уровня (порядок
344
365
  * `surface_types`); `-1` — карты нет, поверхностей она не объявила или
@@ -385,7 +406,7 @@ class ClientCore {
385
406
  }
386
407
  }
387
408
  /**
388
- * Авторитетное состояние панели (PANEL_DATA): патроны/активное оружие.
409
+ * Авторитетное состояние панели (PANEL_DATA): магазин, перезарядка, слоты.
389
410
  * @param {string} panel_json
390
411
  */
391
412
  sync_panel(panel_json) {
@@ -431,8 +452,40 @@ class ClientCore {
431
452
  }
432
453
  }
433
454
  /**
434
- * Локальный визуальный выстрел: гейты (кулдаун/патроны/pending-бомба/
435
- * жив/активен) внутри. JSON спавна для applyGameData либо None.
455
+ * Прицел броска зажигательной гранаты своего танка: `[дальность, радиус
456
+ * лужи, доля заряда]` либо пустой массив (бросок не заряжается).
457
+ * @returns {Float32Array}
458
+ */
459
+ throw_aim() {
460
+ const ret = wasm.clientcore_throw_aim(this.__wbg_ptr);
461
+ var v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
462
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
463
+ return v1;
464
+ }
465
+ /**
466
+ * Где бутылка молотова, брошенная с уровня `level` из `(x, y)` по
467
+ * единичному `(dx, dy)` на `range`, разобьётся о стену — та же проверка,
468
+ * что у хоста (`shot_height::throw_wall`): дистанция до точки разбития
469
+ * либо пустой массив (стены нет или карты нет). По ней прицел броска
470
+ * упирается в стену.
471
+ * @param {number} x
472
+ * @param {number} y
473
+ * @param {number} dx
474
+ * @param {number} dy
475
+ * @param {number} range
476
+ * @param {number} level
477
+ * @returns {Float32Array}
478
+ */
479
+ throw_wall(x, y, dx, dy, range, level) {
480
+ const ret = wasm.clientcore_throw_wall(this.__wbg_ptr, x, y, dx, dy, range, level);
481
+ var v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
482
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
483
+ return v1;
484
+ }
485
+ /**
486
+ * Локальный визуальный выстрел активного слота: гейты
487
+ * (кулдаун/магазин/перезарядка/заряд/жив/активен) внутри. JSON спавна
488
+ * для applyGameData либо None.
436
489
  * @param {number} local_now
437
490
  * @returns {string | undefined}
438
491
  */
@@ -6,10 +6,10 @@ export const __wbg_gamecore_free: (a: number, b: number) => void;
6
6
  export const clientcore_abi_describe: (a: number) => [number, number];
7
7
  export const clientcore_apply_aim: (a: number, b: number, c: number, d: number, e: number) => void;
8
8
  export const clientcore_apply_input: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
9
- export const clientcore_cycle_weapon: (a: number, b: number) => void;
10
9
  export const clientcore_debug_json: (a: number) => [number, number];
11
10
  export const clientcore_decode_frame: (a: number, b: number, c: number) => [number, number];
12
11
  export const clientcore_dispatch: (a: number, b: number, c: number, d: number, e: number) => [number, number];
12
+ export const clientcore_empty_fire: (a: number, b: number) => number;
13
13
  export const clientcore_floor_level: (a: number, b: number, c: number, d: number) => number;
14
14
  export const clientcore_hot_ptr: (a: number) => number;
15
15
  export const clientcore_hot_values: (a: number) => [number, number];
@@ -21,18 +21,22 @@ export const clientcore_offset: (a: number) => number;
21
21
  export const clientcore_push_frame: (a: number, b: number, c: number, d: number) => number;
22
22
  export const clientcore_ramp_runs: (a: number) => [number, number];
23
23
  export const clientcore_reset: (a: number) => void;
24
+ export const clientcore_reset_generation: (a: number) => number;
24
25
  export const clientcore_resync: (a: number) => void;
25
26
  export const clientcore_sample: (a: number, b: number) => number;
26
27
  export const clientcore_set_active: (a: number, b: number) => void;
27
28
  export const clientcore_set_map: (a: number, b: number, c: number) => [number, number];
28
29
  export const clientcore_set_model: (a: number, b: number, c: number) => void;
29
30
  export const clientcore_shot_segments: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
31
+ export const clientcore_slot_switches: (a: number) => number;
30
32
  export const clientcore_surface_at: (a: number, b: number, c: number, d: number) => number;
31
33
  export const clientcore_surface_dir_at: (a: number, b: number, c: number, d: number) => number;
32
34
  export const clientcore_surface_types: (a: number) => [number, number];
33
35
  export const clientcore_sync_panel: (a: number, b: number, c: number) => void;
34
36
  export const clientcore_take_divergence: (a: number) => [number, number];
35
37
  export const clientcore_take_frames: (a: number) => [number, number];
38
+ export const clientcore_throw_aim: (a: number) => [number, number];
39
+ export const clientcore_throw_wall: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
36
40
  export const clientcore_try_fire: (a: number, b: number) => [number, number];
37
41
  export const gamecore_abi_describe: (a: number) => [number, number];
38
42
  export const gamecore_alive_players: (a: number) => [number, number];
@@ -0,0 +1 @@
1
+ class ce{__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,ge.unregister(this),e}free(){const e=this.__destroy_into_raw();s.__wbg_gamecore_free(e,0)}abi_describe(){let e,a;try{const r=s.gamecore_abi_describe(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{s.__wbindgen_free(e,a,1)}}alive_players(){const e=s.gamecore_alive_players(this.__wbg_ptr);var a=_e(e[0],e[1]).slice();return s.__wbindgen_free(e[0],e[1]*4,4),a}apply_aim(e,a,r,n,l){s.gamecore_apply_aim(this.__wbg_ptr,e,a,r,n,l)}apply_input(e,a,r,n){const l=E(r,s.__wbindgen_malloc,s.__wbindgen_realloc),i=w,c=E(n,s.__wbindgen_malloc,s.__wbindgen_realloc),m=w;s.gamecore_apply_input(this.__wbg_ptr,e,a,l,i,c,m)}body_has_events(){return s.gamecore_body_has_events(this.__wbg_ptr)!==0}clear(){s.gamecore_clear(this.__wbg_ptr)}debug_json(){let e,a;try{const r=s.gamecore_debug_json(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{s.__wbindgen_free(e,a,1)}}deserialize_state(e){const a=be(e,s.__wbindgen_malloc),r=w,n=s.gamecore_deserialize_state(this.__wbg_ptr,a,r);if(n[1])throw M(n[0])}dispatch(e,a){const r=E(e,s.__wbindgen_malloc,s.__wbindgen_realloc),n=w,l=be(a,s.__wbindgen_malloc),i=w,c=s.gamecore_dispatch(this.__wbg_ptr,r,n,l,i);var m=oe(c[0],c[1]).slice();return s.__wbindgen_free(c[0],c[1]*1,1),m}frame_bytes(){const e=s.gamecore_frame_bytes(this.__wbg_ptr);var a=oe(e[0],e[1]).slice();return s.__wbindgen_free(e[0],e[1]*1,1),a}frame_ptr(){return s.gamecore_frame_ptr(this.__wbg_ptr)>>>0}is_alive(e){return s.gamecore_is_alive(this.__wbg_ptr,e)!==0}last_input_seq(e){return s.gamecore_last_input_seq(this.__wbg_ptr,e)>>>0}load_map(e){const a=E(e,s.__wbindgen_malloc,s.__wbindgen_realloc),r=w,n=s.gamecore_load_map(this.__wbg_ptr,a,r);if(n[1])throw M(n[0])}map_info(){let e,a;try{const r=s.gamecore_map_info(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{s.__wbindgen_free(e,a,1)}}constructor(e){const a=E(e,s.__wbindgen_malloc,s.__wbindgen_realloc),r=w,n=s.gamecore_new(a,r);if(n[2])throw M(n[1]);return this.__wbg_ptr=n[0],ge.register(this,this.__wbg_ptr,this),this}pack_body(){const e=s.gamecore_pack_body(this.__wbg_ptr);if(e[1])throw M(e[0])}pack_frame(e,a,r,n,l,i,c,m){var u=je(c)?0:E(c,s.__wbindgen_malloc,s.__wbindgen_realloc),f=w;return s.gamecore_pack_frame(this.__wbg_ptr,e,a,r,n,l,i,u,f,m)>>>0}players_data(){let e,a;try{const r=s.gamecore_players_data(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{s.__wbindgen_free(e,a,1)}}position_of(e){const a=s.gamecore_position_of(this.__wbg_ptr,e);var r=_e(a[0],a[1]).slice();return s.__wbindgen_free(a[0],a[1]*4,4),r}remove_actor(e){s.gamecore_remove_actor(this.__wbg_ptr,e)}remove_players_and_shots(){let e,a;try{const r=s.gamecore_remove_players_and_shots(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{s.__wbindgen_free(e,a,1)}}remove_scripted_actor(e){s.gamecore_remove_scripted_actor(this.__wbg_ptr,e)}reset_actor(e,a,r,n,l){s.gamecore_reset_actor(this.__wbg_ptr,e,a,r,n,l)}reset_all_vitals(){s.gamecore_reset_all_vitals(this.__wbg_ptr)}serialize_state(){const e=s.gamecore_serialize_state(this.__wbg_ptr);if(e[3])throw M(e[2]);var a=oe(e[0],e[1]).slice();return s.__wbindgen_free(e[0],e[1]*1,1),a}set_actor_level(e,a){s.gamecore_set_actor_level(this.__wbg_ptr,e,a)}spawn_actor(e,a,r,n,l,i){const c=E(a,s.__wbindgen_malloc,s.__wbindgen_realloc),m=w,u=s.gamecore_spawn_actor(this.__wbg_ptr,e,c,m,r,n,l,i);if(u[1])throw M(u[0])}spawn_scripted_actor(e,a,r,n,l,i){const c=E(a,s.__wbindgen_malloc,s.__wbindgen_realloc),m=w,u=s.gamecore_spawn_scripted_actor(this.__wbg_ptr,e,c,m,r,n,l,i);if(u[1])throw M(u[0])}step(e){s.gamecore_step(this.__wbg_ptr,e)}take_events(){let e,a;try{const r=s.gamecore_take_events(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{s.__wbindgen_free(e,a,1)}}}Symbol.dispose&&(ce.prototype[Symbol.dispose]=ce.prototype.free);function Ue(){return{__proto__:null,"./vimp_tanks_core_bg.js":{__proto__:null,__wbg_Error_92b29b0548f8b746:function(e,a){return Error(R(e,a))},__wbg___wbindgen_throw_344f42d3211c4765:function(e,a){throw new Error(R(e,a))},__wbindgen_init_externref_table:function(){const e=s.__wbindgen_externrefs,a=e.grow(4);e.set(0,void 0),e.set(a+0,void 0),e.set(a+1,null),e.set(a+2,!0),e.set(a+3,!1)}}}}typeof FinalizationRegistry>"u"||new FinalizationRegistry(t=>s.__wbg_clientcore_free(t,1));const ge=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>s.__wbg_gamecore_free(t,1));function _e(t,e){return t=t>>>0,Ge().subarray(t/4,t/4+e)}function oe(t,e){return t=t>>>0,W().subarray(t/1,t/1+e)}let z=null;function Ge(){return(z===null||z.byteLength===0)&&(z=new Float32Array(s.memory.buffer)),z}function R(t,e){return qe(t>>>0,e)}let Y=null;function W(){return(Y===null||Y.byteLength===0)&&(Y=new Uint8Array(s.memory.buffer)),Y}function je(t){return t==null}function be(t,e){const a=e(t.length*1,1)>>>0;return W().set(t,a/1),w=t.length,a}function E(t,e,a){if(a===void 0){const c=H.encode(t),m=e(c.length,1)>>>0;return W().subarray(m,m+c.length).set(c),w=c.length,m}let r=t.length,n=e(r,1)>>>0;const l=W();let i=0;for(;i<r;i++){const c=t.charCodeAt(i);if(c>127)break;l[n+i]=c}if(i!==r){i!==0&&(t=t.slice(i)),n=a(n,r,r=i+t.length*3,1)>>>0;const c=W().subarray(n+i,n+r),m=H.encodeInto(t,c);i+=m.written,n=a(n,r,i,1)>>>0}return w=i,n}function M(t){const e=s.__wbindgen_externrefs.get(t);return s.__externref_table_dealloc(t),e}let J=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});J.decode();const $e=2146435072;let ne=0;function qe(t,e){return ne+=e,ne>=$e&&(J=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),J.decode(),ne=e),J.decode(W().subarray(t,t+e))}const H=new TextEncoder;"encodeInto"in H||(H.encodeInto=function(t,e){const a=H.encode(t);return e.set(a),{read:t.length,written:a.length}});let w=0,s;function Xe(t,e){return s=t.exports,z=null,Y=null,s.__wbindgen_start(),s}async function Ke(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(n){if(t.ok&&a(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",n);else throw n}const r=await t.arrayBuffer();return await WebAssembly.instantiate(r,e)}else{const r=await WebAssembly.instantiate(t,e);return r instanceof WebAssembly.Instance?{instance:r,module:t}:r}function a(r){switch(r){case"basic":case"cors":case"default":return!0}return!1}}async function Ze(t){if(s!==void 0)return s;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-CI0QeU9I.wasm",import.meta.url));const e=Ue();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));const{instance:a,module:r}=await Ke(await t,e);return Xe(a)}function Qe(t){const e={},a=(r,n={},l={})=>{for(const[i,c]of Object.entries(l))for(const m of n[i]||[]){const u=e[r]??={};u[m]=Math.max(u[m]??0,c)}};a("0",t.layers,t.volumes);for(const[r,n]of Object.entries(t.levels||{}))a(String(r),n.layers,n.volumes);return e}function Je(t){const e=Qe(t);return Object.keys(e).length===0?t:{...t,game:{...t.game,wallHeights:e}}}const et=3.4,De=t=>Math.round(t*1e3)/1e3,y=t=>De(t*et),se=([t,e])=>[y(t),y(e)],A={hull:{length:6.1,width:3},turret:{axisU:.6,roof:{w:2.45},loaderHatch:{u:-.55,v:.4}},gunAxisW:1.95,guns:{cannon:{reach:4.2},shotgun:{reach:2.9},machinegun:{reach:4}}},We={flame:{origin:[1.33,1.12]},missile:{nose:{u:[.8,1.1]},rails:[{name:"roof",u:-1.08,v:0,w:2.95,pylon:{u:[-1.57,-1.5],v:[-.12,.12],w:[2.45,2.74]}},{name:"right",u:0,v:1.24,w:2.08,bracket:{u:[-.1,.2],v:[.78,1.2],w:[1.84,1.94]}},{name:"left",u:0,v:-1.24,w:2.08,bracket:{u:[-.1,.2],v:[-1.2,-.78],w:[1.84,1.94]}}]}},tt=[A.turret.loaderHatch.u,A.turret.loaderHatch.v],at={setId:"c1",scale:.2,levelHeight:64,spriteSheet:{img:"tiles3.png",frames:[[0,64,32,32],[0,192,32,32],[96,64,32,32],[0,192,32,32]]},layers:{1:[0],2:[3],4:[1],6:[2]},volumes:{2:1.5,4:.95},step:32,physicsStatic:[1,3],physicsDynamic:(function(){const r=[];for(let u=0;u<20;u+=1)for(let f=0;f<1;f+=1){const ye=(104+f*3)*32+48,He=(45+u*3)*32+48;r.push({density:20,layer:3,position:[ye,He],angle:0,width:96,height:96,img:"b1.png",linearDamping:8,angularDamping:16,game:{height:y(1.4)}})}return r})(),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 a={floor:0,wall:1,effect:2,outerWall:3},r=Array.from({length:150},()=>Array(210).fill(a.floor));for(let l=0;l<150;l++)for(let i=0;i<210;i++)(l<2||l>=148||i<2||i>=208)&&(r[l][i]=a.outerWall);const n=(l,i,c,m)=>{for(let u=i;u<=m;u++)for(let f=l;f<=c;f++)r[u]?.[f]===a.floor&&(r[u][f]=a.wall)};n(50,0,51,30),n(50,119,51,149),n(158,0,159,30),n(158,119,159,149),n(80,30,130,31),n(80,118,130,119);for(let l=64;l<86;l++)for(let i=2;i<208;i++)(i+l)%2===0?r[l][i]=a.effect:r[l][i]=a.floor;return r})()},G=32,we=16,o={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},rt=o.FAN+1,ot=Array.from({length:rt},(t,e)=>[e%we*G,Math.floor(e/we)*G,G,G]),F=96,ee=72,S=32,k={x0:22,x1:73,railNorth:20,railSouth:26},xe={x0:15,x1:21},ve={x0:74,x1:80},ke={x0:38,x1:40},Se={x0:55,x1:57},h={x0:24,x1:36,y0:30,y1:40},j={x0:18,x1:19,y0:34,y1:36},L={x0:20,x1:23,y0:34,y1:36},Te={x0:29,x1:31},$={wallNorth:54,wallSouth:62},me=[{x0:27,x1:31},{x0:64,x1:68}],C={y0:53,y1:63},Ae={y0:50,y1:52},Ee={y0:64,y1:66},Re={x0:45,x1:50},q={x0:47,x1:48,y0:64,y1:65},pe=[{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}],Pe=t=>Array.from({length:ee},()=>Array(F).fill(t)),p=(t,e,a,r,n,l)=>{for(let i=a;i<=n;i+=1)for(let c=e;c<=r;c+=1)t[i][c]=l},U=(t,e,a,r,n)=>p(t,a,e,r,e,n),N=(t,e,a,r,n)=>p(t,e,a,e,r,n),te=(t,e,a)=>t>=e&&t<=a,P=(t,e,a,r)=>{for(let n=a;n<=r;n+=2)t[e][n]===o.ASPHALT&&(t[e][n]=o.LANE)},nt=(function(){const t=Pe(o.ASPHALT);for(const e of pe)p(t,e.x0-1,e.y0-1,e.x1+1,e.y1+1,o.SIDEWALK);for(const e of pe)p(t,e.x0,e.y0,e.x1,e.y1,o.WALL);P(t,23,2,93),P(t,35,38,44),P(t,35,51,57),P(t,47,2,93),P(t,68,2,93),p(t,6,11,17,12,o.CONVEYOR_E),p(t,16,15,27,16,o.CONVEYOR_W),p(t,63,9,72,15,o.SAND),p(t,80,12,90,16,o.SAND),p(t,73,3,79,8,o.MUD),p(t,75,11,79,16,o.MUD),p(t,45,34,50,37,o.OIL),p(t,1,$.wallNorth+1,F-2,$.wallSouth-1,o.WATER);for(const e of[$.wallNorth,$.wallSouth])for(let a=1;a<F-1;a+=1)te(a,Re.x0,Re.x1)||me.some(n=>te(a,n.x0,n.x1))||(t[e][a]=o.CANAL_WALL);p(t,q.x0,q.y0,q.x1,q.y1,o.BOOST_N),p(t,j.x0,j.y0,j.x1,j.y1,o.BOOST_E),p(t,xe.x0,k.railNorth+1,xe.x1,k.railSouth-1,o.RAMP_E),p(t,ve.x0,k.railNorth+1,ve.x1,k.railSouth-1,o.RAMP_W),p(t,L.x0,L.y0,L.x1,L.y1,o.RAMP_E);for(const e of me)p(t,e.x0+1,Ae.y0,e.x1-1,Ae.y1,o.RAMP_S),p(t,e.x0+1,Ee.y0,e.x1-1,Ee.y1,o.RAMP_N);return U(t,0,0,F-1,o.WALL),U(t,ee-1,0,F-1,o.WALL),N(t,0,0,ee-1,o.WALL),N(t,F-1,0,ee-1,o.WALL),t})(),st=(function(){const t=Pe(o.EMPTY);for(const e of pe)e.roof&&p(t,e.x0,e.y0,e.x1,e.y1,o.ROOF);p(t,k.x0,k.railNorth+1,k.x1,k.railSouth-1,o.SLAB);for(let e=k.x0;e<=k.x1;e+=1)t[k.railNorth][e]=te(e,ke.x0,ke.x1)?o.SLAB:o.RAILING,t[k.railSouth][e]=te(e,Se.x0,Se.x1)?o.SLAB:o.RAILING;p(t,60,22,62,24,o.OIL),p(t,h.x0,h.y0,h.x1,h.y1,o.SLAB),U(t,h.y0,h.x0,h.x1,o.RAILING),U(t,h.y1,h.x0,h.x1,o.RAILING),N(t,h.x0,h.y0,h.y1,o.RAILING),N(t,h.x1,h.y0,h.y1,o.RAILING),N(t,h.x0,L.y0,L.y1,o.SLAB),U(t,h.y1,Te.x0,Te.x1,o.SLAB);for(const e of me)p(t,e.x0+1,C.y0,e.x1-1,C.y1,o.SLAB),N(t,e.x0,C.y0,C.y1,o.RAILING),N(t,e.x1,C.y0,C.y1,o.RAILING);return t})(),it=(t,e)=>[t*S+S/2,e*S+S/2],he=(t,e,a,r,n)=>({layer:3,position:[t*S+(S-a)/2,e*S+(S-r)/2],angle:0,width:a,height:r,linearDamping:6,angularDamping:14,level:0,...n}),T=(t,e)=>({...he(t,e,64,12,{}),position:[t*S,e*S+(S-12)/2],density:30,img:"prop_fence.png",game:{prop:"fence",imgDestroyed:"prop_fence_broken.png"}}),x=(t,e,a=0)=>he(t,e,32,32,{density:40,img:"prop_crate.png",level:a,game:{prop:"crate",imgDamaged:"prop_crate_damaged.png",imgDestroyed:"prop_crate_broken.png"}}),B=(t,e)=>he(t,e,24,24,{density:30,img:"prop_barrel.png",game:{prop:"barrel"}}),g=(t,e,a)=>[...it(t,e),a,0],_=(t,e,a=0,r={})=>({cell:[t,e],level:a,radius:110,color:16760944,intensity:.9,head:!0,flicker:0,...r}),V=(t,e,a,r)=>{const n=[];for(let l=t;l<=e;l+=a)n.push(r(l));return n},Oe=60,lt={setId:"c1",scale:.4,spriteSheet:{img:"city.png",frames:ot},layers:{1:[o.ASPHALT,o.SIDEWALK,o.LANE,o.SAND,o.MUD,o.WATER,o.OIL,o.CONVEYOR_E,o.CONVEYOR_W,o.BOOST_N,o.BOOST_E,o.RAMP_N,o.RAMP_S,o.RAMP_E,o.RAMP_W],2:[o.WALL],4:[o.CANAL_WALL]},volumes:{2:1,4:.65},step:S,physicsStatic:[o.WALL,o.CANAL_WALL],levels:{1:{map:st,floor:[o.SLAB,o.RAILING,o.ROOF,o.OIL],walls:[o.RAILING],layers:{1:[o.SLAB,o.OIL],2:[o.ROOF],4:[o.RAILING]},volumes:{4:.65}}},ramps:[{tile:o.RAMP_E,dir:"east",from:0,to:1},{tile:o.RAMP_W,dir:"west",from:0,to:1},{tile:o.RAMP_S,dir:"south",from:0,to:1},{tile:o.RAMP_N,dir:"north",from:0,to:1}],physicsDynamic:[x(3,11),x(3,13),x(20,10),x(21,10),x(31,15),x(32,15),B(28,13),B(29,13),B(28,14),B(29,14),T(62,8),T(64,8),T(66,8),T(68,8),T(70,8),T(82,11),T(84,11),T(86,11),T(88,11),T(90,11),x(66,4),x(68,4),x(80,4),x(82,4),B(10,63),B(85,63),x(34,31,1),x(35,31,1)],respawns:{team1:[g(9,24,0),g(4,20,0),g(9,35,0),g(4,37,0),g(4,29,0),g(9,29,0),g(4,42,0),g(9,42,0)],team2:[g(86,24,180),g(91,24,180),g(86,35,180),g(91,37,180),g(91,29,180),g(86,29,180),g(91,42,180),g(86,42,180)]},game:{surfaces:{0:{[o.SAND]:"sand",[o.MUD]:"mud",[o.WATER]:"water",[o.OIL]:"oil",[o.CONVEYOR_E]:{type:"conveyor",dir:"east"},[o.CONVEYOR_W]:{type:"conveyor",dir:"west"},[o.BOOST_N]:{type:"boost",dir:"north"},[o.BOOST_E]:{type:"boost",dir:"east"}},1:{[o.OIL]:"oil"}},lighting:{night:!0,ambient:3818080,lamps:[...V(12,84,8,t=>_(t,19)),...V(16,80,8,t=>_(t,27)),_(44,33,0,{color:16767392}),_(51,33,0,{color:16767392}),_(44,38,0,{color:16767392}),_(51,38,0,{color:16767392}),...V(12,84,8,t=>_(t,45)),...V(16,80,16,t=>_(t,68,0,{flicker:.2})),_(12,32,0,{color:10537215}),_(83,32,0,{color:10537215}),_(15,9,0,{flicker:.35}),_(80,10,0,{flicker:.35}),...V(26,70,8,t=>_(t,23,1,{radius:90,color:13623551})),_(30,35,1,{radius:100}),_(29,58,1,{radius:90}),_(66,58,1,{radius:90})]},animatedTiles:{[o.WATER]:{kind:"frames",frames:[o.WATER,o.WATER_2,o.WATER_3,o.WATER_4],fps:4},[o.CONVEYOR_E]:{kind:"frames",frames:[o.CONVEYOR_E,o.CONVEYOR_E_2,o.CONVEYOR_E_3,o.CONVEYOR_E_4],speed:Oe},[o.CONVEYOR_W]:{kind:"frames",frames:[o.CONVEYOR_W,o.CONVEYOR_W_2,o.CONVEYOR_W_3,o.CONVEYOR_W_4],speed:Oe},[o.BOOST_N]:{kind:"frames",frames:[o.BOOST_N,o.BOOST_N_2],fps:2},[o.BOOST_E]:{kind:"frames",frames:[o.BOOST_E,o.BOOST_E_2],fps:2}},roofs:{1:[o.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:o.FAN,kind:"rotate",rps:1.5},{cell:[8,5],level:1,layer:2,frame:o.FAN,kind:"rotate",rps:1.1},{cell:[27,5],level:1,layer:2,frame:o.FAN,kind:"rotate",rps:1.8},{cell:[29,5],level:1,layer:2,frame:o.FAN,kind:"rotate",rps:.9}]},map:nt},ae=80,ue=60,O=32,d={ground:0,wall:1,slab:2,railing:3,rampNorth:4,rampSouth:5},v={railNorth:25,slabTop:26,slabBottom:30,railSouth:31,left:2,right:ae-3},I={x0:3,x1:5,y0:32,y1:34},D={x0:74,x1:76,y0:22,y1:24},Me={x0:30,x1:33},Ne={x0:48,x1:51},Ve=t=>Array.from({length:ue},()=>Array(ae).fill(t)),X=(t,e,a)=>t>=e&&t<=a,ct=(function(){const t=Ve(d.ground);for(let e=0;e<ue;e+=1)for(let a=0;a<ae;a+=1)(e<2||e>=ue-2||a<2||a>=ae-2)&&(t[e][a]=d.wall);for(let e=I.y0;e<=I.y1;e+=1)for(let a=I.x0;a<=I.x1;a+=1)t[e][a]=d.rampNorth;for(let e=D.y0;e<=D.y1;e+=1)for(let a=D.x0;a<=D.x1;a+=1)t[e][a]=d.rampSouth;return t})(),mt=(function(){const t=Ve(0);for(let e=v.left;e<=v.right;e+=1){for(let n=v.slabTop;n<=v.slabBottom;n+=1)t[n][e]=d.slab;const a=X(e,D.x0,D.x1)||X(e,Me.x0,Me.x1),r=X(e,I.x0,I.x1)||X(e,Ne.x0,Ne.x1);if(t[v.railNorth][e]=a?d.slab:d.railing,t[v.railSouth][e]=r?d.slab:d.railing,e===v.left||e===v.right)for(let n=v.slabTop;n<=v.slabBottom;n+=1)t[n][e]=d.railing}return t})(),ze=(t,e)=>[t*O+O/2,e*O+O/2],K=(t,e,a,r=64)=>({density:40,layer:3,position:[t*O,e*O+(O-r)/2],angle:0,width:r,height:r,img:"b1.png",linearDamping:6,angularDamping:14,level:a,game:{height:y(1.4)}}),b=(t,e,a)=>[...ze(t,e),a],Z=(t,e,a,r)=>[...ze(t,e),a,r],pt={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:[d.ground,d.rampNorth,d.rampSouth],2:[d.wall]},volumes:{2:1},step:O,physicsStatic:[d.wall],levels:{1:{map:mt,floor:[d.slab,d.railing],walls:[d.railing],layers:{1:[d.slab],4:[d.railing]},volumes:{4:.65}}},ramps:[{tile:d.rampNorth,dir:"north",from:0,to:1},{tile:d.rampSouth,dir:"south",from:0,to:1}],physicsDynamic:[K(20,28,0),K(60,28,0),K(31,v.slabTop,1,32),K(49,v.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),Z(10,29,0,1),Z(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),Z(69,29,180,1),Z(63,29,180,1)]},map:ct},ut=Object.fromEntries(Object.entries({canopy:at,downtown:lt,overpass:pt}).map(([t,e])=>[t,Je(e)])),dt=2400*9,Ce=y(A.hull.length),Be=y(A.hull.width),de={m1:{constructor:"Tank",length:Ce,width:Be,turretAxis:y(A.turret.axisU),barrelHeight:y(A.gunAxisW),turretTop:y(A.turret.roof.w),accelerationFactor:1e3,brakingFactor:.3,maxForwardSpeed:130,maxReverseSpeed:-65,baseTurnTorqueFactor:150,damping:{linear:3,angular:100},fixture:{density:De(dt/(Ce*Be)),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}},{missile:Fe}=We,re={w1:{type:"hitscan",slot:"primary",code:1,title:"Pistol",price:0,magazine:12,reload:2.2,auto:!1,impulseMagnitude:175e4,damage:40,range:1500,fireRate:.3,spread:0,pellets:1,muzzle:{reach:y(A.guns.cannon.reach)},cameraShake:{intensity:20,duration:200}},w2:{type:"explosive",slot:"grenade",code:2,title:"Bomb",price:250,unit:"count",pack:1,maxCharge:3,auto:!1,constructor:"Bomb",time:1e3,shotOutcomeId:"w2e",size:8,fireRate:.1,damage:110,radius:70,impulseMagnitude:25e5,cameraShake:{intensity:40,duration:500}},w3:{type:"hitscan",slot:"primary",code:3,title:"Shotgun",price:1200,magazine:6,reload:2.8,auto:!1,fireRate:.9,pellets:8,spread:.07,spreadHeight:y(.9),muzzle:{reach:y(A.guns.shotgun.reach)},damage:18,range:450,falloff:{start:.35,minFactor:.4},impulseMagnitude:175e4,cameraShake:{intensity:25,duration:220}},w4:{type:"hitscan",slot:"primary",code:4,title:"Machine gun",price:1800,magazine:40,reload:2.6,auto:!0,fireRate:.08,pellets:1,spread:.05,spreadHeight:y(.5),spreadGrowth:{max:.14,time:1.5,maxHeight:y(1.4)},muzzle:{reach:y(A.guns.machinegun.reach)},damage:12,range:1100,impulseMagnitude:6e5,cameraShake:{intensity:8,duration:80}},w5:{type:"beam",slot:"secondary",code:5,title:"Flamethrower",price:400,unit:"seconds",pack:5,maxCharge:20,auto:!0,beam:{range:96,width:10,dps:{base:25,max:60},rampTime:2,dwellGrace:.25,ignite:{time:4,dps:8},propFactor:1},impulseMagnitude:0,origin:se(We.flame.origin)},w6:{type:"molotov",slot:"grenade",code:6,title:"Molotov",price:300,unit:"count",pack:1,maxCharge:3,auto:!1,constructor:"Molotov",time:600,size:6,fireRate:.8,shotOutcomeId:"w6e",molotov:{range:130,minRange:40,chargeTime:1.2,radius:40,duration:6,ignite:{time:4,dps:8},misfire:.1,dudHitRadius:3,spin:14,roll:{share:.15,time:.8}},origin:se(tt)},w7:{type:"missile",slot:"secondary",code:7,title:"Guided missile",price:500,unit:"count",pack:1,maxCharge:3,auto:!1,fireRate:1,missile:{speed:200,turnRate:2.2,lifetime:10,hp:100,hitRadius:5,hitCapPerShot:35,sourceFactor:{bullet:1,pellet:.5,beam:.5,blast:1},ignoreOwnerTime:.35,cameraHang:.6},damage:90,radius:60,impulseMagnitude:2e6,time:0,rails:Fe.rails.map(t=>se([t.u+Fe.nose.u[1],t.v])),shotOutcomeId:"w2e",cameraShake:{intensity:35,duration:450}}},ft={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:"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"},{name:"reload",ty:"u8"},{name:"burn",ty:"u8"},{name:"primaryCode",ty:"u8"},{name:"secondaryCode",ty:"u8"},{name:"secondaryAmount",ty:"u8"},{name:"grenadeCode",ty:"u8"},{name:"grenadeAmount",ty:"u8"},{name:"deathCause",ty:"u8"}]},bm:{id:7,kind:"indexed8",class:"hot",fields:[{name:"startX",ty:"f32",interp:"lerp"},{name:"startY",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"length",ty:"f32",interp:"lerp"},{name:"weapon",ty:"u8"},{name:"level",ty:"u8"},{name:"power",ty:"u8"},{name:"normal",ty:"u8"},{name:"ownerId",ty:"u8"}]},w7:{id:8,kind:"indexed8",class:"hot",fields:[{name:"x",ty:"f32",interp:"lerp"},{name:"y",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"ownerId",ty:"u8"},{name:"controlled",ty:"u8"},{name:"timeLeft",ty:"u8"},{name:"level",ty:"u8"},{name:"hp",ty:"u8"}]},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"},{name:"weapon",ty:"u8"},{name:"pellet",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"}]},w6:{id:9,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"},{name:"startX",ty:"f32"},{name:"startY",ty:"f32"}]},w6d:{id:11,kind:"indexed8",class:"hot",fields:[{name:"x",ty:"f32",interp:"lerp"},{name:"y",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"level",ty:"u8"}]},w6e:{id:10,kind:"list16",class:"event",fields:[{name:"x",ty:"f32"},{name:"y",ty:"f32"},{name:"radius",ty:"f32"},{name:"level",ty:"u8"},{name:"duration",ty:"u16"}]},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"}]}},Le=15,ht={parts:{models:de,weapons:re,mapConstructor:"Map",hitscanService:"HitscanService",friendlyFire:!1},voteHoldTime:Le*1e3,snapshot:ft,soundCues:{roundStart:"roundStart",victory:"victory",defeat:"defeat",frag:"frag",death:"gameOver"},voice:{enabled:!0,scope:"team",hotkey:86,maxDurationMs:5e3,cooldownMs:1500,bitrate:16e3,texts:{unavailable:"Radio unavailable",unsupported:"Radio not supported"}},initialVote:"teamChange",maps:ut,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,height:y(2.3),damagedAt:0,bulletFactor:1,blastFactor:1,ramThreshold:60,ramDamagePerSpeed:.5},crate:{hp:120,height:y(1.4),damagedAt:.5,bulletFactor:.5,blastFactor:1.5,ramThreshold:140,ramDamagePerSpeed:.6},barrel:{hp:40,height:y(2.3),damagedAt:0,bulletFactor:1,blastFactor:1,ramThreshold:150,ramDamagePerSpeed:1,chainDelay:.15,blast:{radius:70,damage:80,impulse:25e5,cameraShake:{intensity:30,duration:400}}}},shop:{startMoney:800,moneyCap:6e3,windowTime:Le,respawnRadius:64,income:{base:500,perKill:250,win:700,loss:300,lossStreakStep:150,lossStreakMax:4,draw:400,survive:200}},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,shopNoise:.35,missileReaction:.35,missileDetonateReaction:.14,missileAimError:.08,missileCooldown:5,safeGap:200,flameApproach:.8,reloadCalm:1.5},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,shopNoise:.15,missileReaction:.2,missileDetonateReaction:.07,missileAimError:.05,missileCooldown:5,safeGap:200,flameApproach:.8,reloadCalm:1.5},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,shopNoise:0,missileReaction:.1,missileDetonateReaction:.03,missileAimError:.02,missileCooldown:5,safeGap:200,flameApproach:.8,reloadCalm:1.5}},shop:{ecoMoneyShare:.85,tightRadius:3,tightShare:.45,shopDelay:[.4,2.5],weights:{w7:1,w5:.5,w3:.3,w4:.3,w2:.2},utility:{assault:{tight:{w3:{value:1.6},w4:{value:1.2},w5:{value:.9,amount:10},w2:{value:.3,amount:1}},open:{w4:{value:2},w3:{value:1.1},w2:{value:.3,amount:1}}},support:{tight:{w7:{value:.9,amount:1},w2:{value:.3,amount:1}},open:{w4:{value:1.9},w3:{value:1},w7:{value:.9,amount:1},w2:{value:.3,amount:1}}},flanker:{tight:{w3:{value:1.5},w4:{value:1.1},w7:{value:.95,amount:2},w2:{value:.3,amount:1}},open:{w3:{value:1.5},w4:{value:1.1},w7:{value:.95,amount:2},w2:{value:.3,amount:1}}},defender:{tight:{w4:{value:1.9},w3:{value:1},w5:{value:.9,amount:15},w2:{value:.35,amount:2}},open:{w4:{value:1.9},w3:{value:1},w2:{value:.35,amount:2}}}}}}},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:{activeKey:"wa",fields:{health:{key:"h",value:100},money:{key:"mo",value:0},primaryCode:{key:"pc",value:1},primaryAmmo:{key:"pa",value:12},reload:{key:"rl",value:0},secondaryCode:{key:"sc",value:0},secondaryAmount:{key:"sa",value:0},grenadeCode:{key:"gc",value:0},grenadeAmount:{key:"ga",value:0},buy:{key:"bu",value:0}}},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},slot1:{key:256,type:1},slot2:{key:2048,type:1},slot3:{key:4096,type:1},shop:{key:512,type:1},reload:{key:1024,type:1}}},yt={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},shotgun:{file:"shotgun",priority:100,volume:.7},machinegun:{file:"machinegun",priority:90,volume:.45},reload:{file:"reload",priority:70,volume:.4,maxDuration:1.9},buy:{file:"buy",priority:120,volume:.5},emptyClick:{file:"empty-bullet",priority:110,volume:.5},weaponSwitch:{file:"weapon-switch",priority:110,volume:.5},ownHit:{file:"own-hit",priority:110,volume:.5},ricochet1:{file:"ricochet-1",priority:70,volume:.35},ricochet2:{file:"ricochet-2",priority:70,volume:.35},ricochet3:{file:"ricochet-3",priority:70,volume:.35},ricochet4:{file:"ricochet-4",priority:70,volume:.35},tankBurning:{file:"tank-burning",priority:60,loop:!0,volume:.35},bottleBreak:{file:"bottle-break",priority:90,volume:.5},missileLaunch:{file:"missile-launch",priority:95,volume:.5,maxDuration:1.5},flamethrower:{file:"flamethrower",priority:80,loop:!0,volume:.5},missileFlight:{file:"missile-flight",priority:85,loop:!0,volume:.5},missileBeep:{file:"missile-beep",priority:85,volume:.15},explosion:{file:"explosion",priority:100,volume:.74},tankExplosion:{file:"explosion",priority:100,volume:.6},tankScream:{file:"tank-scream",priority:100,volume:.6},tankCrash:{file:"tank-crash",priority:100,volume:.6},tankBlast:{file:"tank-blast",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}},gt={codecList:["webm","mp3"],path:"/sounds/",spatial:{mode:"topDown",virtualElevation:108,innerRadius:11.6},sounds:yt},_t=["primary","secondary","grenade"],bt="—",wt=(t,e)=>{const a={};for(const r of Object.values(e))r.slot===t&&(t==="primary"?a[r.code]={text:r.title,max:r.magazine}:r.unit==="seconds"?a[r.code]={text:r.title,format:"tenths",suffix:" s"}:a[r.code]={text:r.title,format:"int",prefix:"×"});return t!=="primary"&&(a[0]=bt),a},ie=(t,e,a)=>{const n={name:`${t}${t==="primary"?"Ammo":"Amount"}`,elem:`panel-${t}-${t==="primary"?"ammo":"amount"}`,type:"weapon",label:`[${e+1}]`,labelFrom:{field:`${t}Code`,labels:wt(t,a)}};return t==="primary"?n.format="fraction":n.emptyWhen=0,n},le=t=>({name:t,elem:`panel-${t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}`,type:"value",hidden:!0}),xt=(t=re)=>[{name:"health",elem:"panel-health",type:"bar",max:100,blocks:30},ie("primary",0,t),{...le("reload"),countdown:{for:"primaryAmmo"}},ie("secondary",1,t),ie("grenade",2,t),{name:"money",elem:"panel-money",type:"value",format:"money",flashOnChange:!0},{name:"time",elem:"panel-time",type:"time"},..._t.map(e=>le(`${e}Code`)),le("buy")],fe={1:{flag:"#CD0000",text:"#FF6B5E",paint:14886428,light:16738901,shade:9309962},2:{flag:"#0A3161",text:"#7FB2FF",paint:3111154,light:8368383,shade:1195142}},vt={mode:"hole",radius:260,softness:.45,minAlpha:.12,layerAlpha:.4,fadeRate:6,roofMargin:0,lowerTint:11579584},kt={shear:.22,levelZStride:100},St={enabled:!0,faces:!0,faceTilesPerLevel:3,faceSegments:4,faceBleedPx:2,slices:4,rampSegments:4,sideTint:10133674},Tt={baseAlpha:.4,alphaFalloff:.12,groundAlpha:.3},At={enabled:!0,lightDir:[-.7,-.7]},Et={fullImpact:6,squash:.14,duration:260,minImpact:1.5},Rt={enabled:!0,maxFps:30},Ie={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}},Ot={color:3854699};re.w5.beam.range;re.w7.missile.cameraHang;const Q={radius:3,blur:1,quality:40,color:16777215},Mt={radius:12,rise:2.6,irregularity:3,color:855050,alpha:.7,layers:4,blur:3,variants:3},Nt={teamId1:fe[1].paint,teamId2:fe[2].paint},Ct={parts:{gameSets:{c1:["Map","MapRadar"],c2:["Map"],m1:["Tank","TankRadar","Smoke","Tracks","Dust","WreckFire","TankFire"],w1:["ShotEffect"],w2:["Bomb"],w2e:["ExplosionEffect"],w6:["Molotov"],w6d:["DudBottle"],w6e:["FirePool"],w7:["Missile"],bm:["BeamEffect"]},entitiesOnCanvas:{Map:"vimp",MapRadar:"radar",TankRadar:"radar",Tank:"vimp",ShotEffect:"vimp",Bomb:"vimp",Missile:"vimp",ExplosionEffect:"vimp",Smoke:"vimp",Molotov:"vimp",DudBottle:"vimp",FirePool:"vimp",Tracks:"vimp",Dust:"vimp",WreckFire:"vimp",TankFire:"vimp",BeamEffect:"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:Q},{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:Q},{name:"smokeTexture",component:"FirePool",params:Q},{name:"bottleTexture",component:"Molotov",params:{length:32}},{name:"bottleTexture",component:"DudBottle",params:{length:32}},{name:"tankModelTexture",component:"Tank",params:{palette:fe}},{name:"bombTexture",component:"Bomb",params:{colorOuter:16777215,colorInner:986895}},{name:"missileTexture",component:"Missile",params:{length:28,width:10,colorBody:12105912,colorNose:13647920,colorFin:7368816}},{name:"smokeTexture",component:"Missile",params:Q},{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:"bulletHoleTexture",component:"ShotEffect",params:{radius:4,irregularity:1,haloRatio:2.1,color:1775892,coreColor:526086,haloColor:12169891,haloAlpha:.45,blur:.6,variants:3}},...["BeamEffect","FirePool","ExplosionEffect"].map(t=>({name:"wallSootTexture",component:t,params:Mt})),{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:Ie.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:"flameTexture",component:"BeamEffect",params:{radius:32,rings:24,blur:2}},{name:"flameTexture",component:"TankFire",params:{radius:32,rings:24,blur:2}},{name:"radioBadgeTexture",component:"Tank",params:{color:Ot.color,pixelSize:64}},{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:"radarPingTexture",component:"TankRadar",params:{radius:6,width:1.5}},{name:"tankRadarTexture",component:"TankRadar",params:{radius:6,borderWidth:2,crossSize:9,crossThickness:1.5,colors:Nt}}]},componentDependencies:{renderer:["Map","Tank","Tracks","Smoke","Molotov","FirePool","Dust","Bomb","Missile","ShotEffect","ExplosionEffect","WreckFire","TankFire","BeamEffect"],assetsBase:["Map"],soundManager:["ExplosionEffect","ShotEffect","Bomb","Tank","Dust","Map","WreckFire","BeamEffect","Missile","FirePool"],mapDynamics:["ShotEffect"],rampRuns:["Map","ShotEffect"],surfaces:["Dust","Tracks","Tank"],volumes:["Map","ShotEffect","BeamEffect","FirePool","ExplosionEffect"],wallMarks:["ShotEffect","ExplosionEffect","BeamEffect","FirePool"],shots:["ShotEffect","Tank"],blasts:["ExplosionEffect","Tank","WreckFire"],levelView:["Tank","Map","MapRadar","Smoke","Molotov","FirePool","Bomb","Missile","ShotEffect","ExplosionEffect","Tracks","Dust","WreckFire"],localPlayer:["Tank","ShotEffect","BeamEffect","Missile"],muzzles:["Tank","BeamEffect"],shopSounds:["Tank"],throwAim:["Tank"],lighting:["Map","Tank","ExplosionEffect","ShotEffect","WreckFire","TankFire","FirePool","BeamEffect","Missile"],diagnostics:["Tank","Map"],voice:["Tank","TankRadar"]},seeThrough:vt,parallax:kt,volume:St,shadow:Tt,tilt:At,landing:Et,lighting:Ie,animations:Rt,sounds:gt},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",49:"slot1",50:"slot2",51:"slot3",66:"shop",82:"reload"}]},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",mo:"money",pc:"primaryCode",pa:"primaryAmmo",rl:"reload",sc:"secondaryCode",sa:"secondaryAmount",gc:"grenadeCode",ga:"grenadeAmount",wa:"activeWeapon",bu:"buy"},fields:xt()},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!"]}},Bt={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 the selected weapon"},{keys:"1, 2, 3",text:"select primary / secondary / grenade weapon"},{keys:"r",text:"reload the primary weapon"},{keys:"a, d",text:"steer the guided missile in flight"},{keys:"j (again)",text:"detonate the guided missile"},{keys:"b",text:"open the shop (round start, near your spawn)"},{keys:"n, p",text:"switch the watched player (spectator)",last:!0},{separator:!0},{keys:"c",text:"chat/command line"},{keys:"v",text:"team radio (hold to talk)"},{keys:"m",text:"menu"},{keys:"<Tab>",text:"stats",last:!0}]},{heading:"Shop",lines:[{keys:"b",text:"open the shop; it also opens by itself when the round starts, while the cart icon is lit (first 15 s, near your spawn)"},{keys:"1–4",text:"choose in the menu, one purchase per opening"},{keys:"4",text:"rebuy your last purchase"},{keys:"b (again)",text:"back to the weapon groups"},{keys:"0",text:"close the menu"},{keys:"$",text:"money carries over between rounds; bought weapons are lost on death",last:!0}]},{heading:"Command line",lines:[{keys:"/mapname",text:"show current map name"},{keys:"/timeleft",text:"map time left",last:!0},{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",last:!0}]}]},params:[{name:"model",value:"m1",options:{control:"select",label:"Model",options:Object.keys(de),validator:"isValidModel",storage:"model"}}],validators:{isValidModel:t=>t in de}};function Ye(t,e,a){a?(t.scripted.removeScripted(a),e>0?(e=t.scripted.createScripted(e,a),t.chat.pushSystem("BOT_CREATED_FOR_TEAM",[e,a])):t.chat.pushSystem("BOT_REMOVED_FROM_TEAM",[a])):(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 Ft(t,e,a,r){const n=t.participants.get(e).name,l="botManagement";let i,c;if(!t.voteCoordinator.canCreateVote(l,e))return;r?a>0?(i="createBotsForTeam",c=[n,a,r]):(i="removeBotsForTeam",c=[n,r]):a>0?(i="createBots",c=[n,a]):(i="removeBots",c=[n]);const m={name:i,params:c},u=t.participants.getHumans().map(f=>f.gameId).filter(f=>f!==e);t.voteCoordinator.createVote({voteName:i,voteCategory:l,payload:m,resultFunc:f=>{f==="Yes"?(t.chat.pushSystem("VOTE_PASSED"),Ye(t,a,r)):t.chat.pushSystem("VOTE_FAILED")},userList:u,gameId:e})}const Lt={name:"/bot",handler(t,e,a){if(t.participants.get(e).teamId===t.spectatorId){t.chat.pushSystemByUser(e,"BOT_PLAYERS_ONLY");return}const n=parseInt(a[0],10),l=a[1]||null;if(isNaN(n)||n<0){t.chat.pushSystemByUser(e,"BOT_INVALID_COUNT");return}if(l&&(!t.teams[l]||l===t.spectatorTeam)){t.chat.pushSystemByUser(e,"BOT_INVALID_TEAM");return}if(n===0){if(l&&t.scripted.getCountForTeam(l)===0){t.chat.pushSystemByUser(e,"BOT_REMOVED_FROM_TEAM",[l]);return}if(t.scripted.getCount()===0){t.chat.pushSystemByUser(e,"BOT_REMOVED");return}}t.participants.getHumans().filter(c=>c.teamId!==t.spectatorId).length<=1?Ye(t,n,l):Ft(t,e,n,l)}};function It(t){const e=Math.floor(t/1e3),a=String(Math.floor(e/60)).padStart(2,"0"),r=String(e%60).padStart(2,"0");return`${a}:${r}`}const Dt={name:"/nr",handler(t,e){t.isDevMode?t.roundManager.initiateNewRound():t.chat.pushSystemByUser(e,"COMMANDS_NOT_FOUND")}},Wt={name:"/timeleft",handler(t,e){t.chat.pushSystemByUser(e,"TIME_LEFT",[It(t.timerManager.getMapTimeLeft())])}},Pt={name:"/mapname",handler(t,e){t.chat.pushSystemByUser(e,"MAP_CURRENT",[t.roundManager.currentMap])}},Vt={name:"/rank",handler(t,e){t.chat.pushSystemByUser(e,"RANK",[t.playerDataSync.getRank(e)])}},zt={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 Yt{constructor({participants:e,coreAdapter:a,panel:r,stat:n,scripted:l}){this._participants=e,this._coreAdapter=a,this._panel=r,this._stat=n,this._model=l.defaultModel,this._respawns=null}createMap(e){this._respawns=e.respawns}createScripted(e,a=null){if(!this._respawns)return 0;const r=this._participants.getPlayableTeams();let n=0;for(let l=0;l<e&&!this._participants.isFull;l+=1){let i=a;if(i||(i=r.sort((u,f)=>this._participants.getTeamSize(u)-this._participants.getTeamSize(f))[0]),!i||!this._respawns[i]||this._participants.getTeamSize(i)>=this._respawns[i].length)continue;const c=this._participants.createScripted({team:i,model:this._model}),m=this._participants.get(c);this._stat.addUser(c,m.teamId,{name:m.name,status:"dead",latency:"BOT"}),this._panel.addUser(c),n+=1}return n}removeScripted(e=null){(e?this._participants.getScripted().filter(r=>r.team===e):this._participants.getScripted()).forEach(r=>this._removeBotById(r.gameId))}removeOneForHuman(e){for(const a of this._participants.getScripted())if(a.team===e)return this._removeBotById(a.gameId),!0;return!1}_removeBotById(e){const a=this._participants.get(e);!a||!a.isScripted||(this._stat.removeUser(e,a.teamId),this._panel.removeUser(e),this._coreAdapter.removePlayer(e),this._participants.remove(e))}getBotById(e){const a=this._participants.get(e);return a&&a.isScripted?a:void 0}getBots(){return this._participants.getScripted()}getCount(){return this._participants.getScripted().length}getCountForTeam(e){return this._participants.getScripted().filter(a=>a.team===e).length}getCountsPerTeam(){const e={};for(const a of this._participants.getScripted())e[a.team]=(e[a.team]||0)+1;return e}}function Ht(t){return{scripted:new Yt(t)}}const Ut=t=>(t??"").split(/[?#]/)[0].endsWith(".js"),Gt=t=>import(t),jt={id:"tanks",engineApi:4,requires:["map.layers","map.levelsN","map.levelHeight","map.gameData","map.bodyState","menu.personal","actor.forget","match.reset","state.persist","vote.hold","panel.cells"],async createCore(t,{wasmUrl:e}){if(Ut(e)){const a=await Gt(e);return new a.GameCore(t)}return await Ze({module_or_path:e}),new ce(t)},onCoreEvent(t){t?.type==="mapDerivedError"&&console.warn(`[tanks] map game data: ${t.message}`)},gameConfig:ht,authSchema:Bt,chatCommands:[Lt,Dt,Wt,Pt,Vt],systemMessages:zt,createModules:Ht,buildClientGameConfig:()=>Ct};export{jt as default};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-BTwPEd7Q.js","sources":["../core/pkg-web/vimp_tanks_core.js","../src/data/maps/wallHeights.js","../src/data/t34.js","../src/data/maps/canopy.js","../src/data/maps/city/tiles.js","../src/data/maps/downtown.js","../src/data/maps/overpass.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/panelFields.js","../src/config/teamPalette.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","METERS_TO_UNITS","round3","toUnits","meters","pointToUnits","u","v","T34","T34_MOUNTS","T34_THROW_FROM","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","belt","downtown","rampNorth","rampSouth","ledgeNorth","ledgeSouth","openNorth","openSouth","box","size","spawnOn","maps","name","HULL_MASS","length","models","missile","weapons","rail","snapshot","SHOP_WINDOW_TIME","gameConfig","sounds","sounds$1","SLOT_ORDER","EMPTY_LABEL","labelsFor","slot","labels","weapon","slotField","index","field","hiddenField","c","buildPanelFields","teamPalette","seeThrough","parallax","volume","shadow","tilt","landing","animations","lighting","radioBadge","smokeTextureParams","wallSootTextureParams","teamColors","clientConfig","component","authSchema","executeBotCommand","ctx","count","team","initiateBotVote","gameId","userName","voteCategory","voteName","voteArgs","userList","result","botCommand","args","formatTime","ms","totalSeconds","minutes","seconds","newRoundCommand","timeLeftCommand","mapNameCommand","rankCommand","systemMessages","TanksBotManager","participants","coreAdapter","panel","stat","scripted","mapData","teamName","playableTeams","createdCount","i","targetTeam","a","participant","bot","counts","createModules","isNodeCore","wasmUrl","loadNodeCore","coreConfigJson","node","init"],"mappings":"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"}
@@ -4,27 +4,31 @@
4
4
  "requires": [
5
5
  "map.layers",
6
6
  "map.levelsN",
7
+ "map.levelHeight",
7
8
  "map.gameData",
8
- "map.bodyState"
9
+ "map.bodyState",
10
+ "menu.personal",
11
+ "actor.forget",
12
+ "match.reset",
13
+ "state.persist",
14
+ "vote.hold",
15
+ "panel.cells"
9
16
  ],
10
- "version": "7b2159a20630a96f",
17
+ "version": "ae9c5884f3c80212",
11
18
  "title": "Tanks",
12
19
  "entries": {
13
- "client": "/games/tanks/client-D4aVwbrD.js",
14
- "host": "/games/tanks/host-f7fdEnd_.js",
15
- "wasm": "/games/tanks/assets/vimp_tanks_core_bg-ic8olTsk.wasm",
20
+ "client": "/games/tanks/client-CsTbNQIQ.js",
21
+ "host": "/games/tanks/host-BTwPEd7Q.js",
22
+ "wasm": "/games/tanks/assets/vimp_tanks_core_bg-CI0QeU9I.wasm",
16
23
  "wasmNode": "./core-node/vimp_tanks_core.js"
17
24
  },
18
25
  "assetsBase": "/games/tanks/",
19
26
  "maps": {
20
- "version": "10e7e8ac02465cb1",
27
+ "version": "d66d1e35f9246372",
21
28
  "list": [
22
29
  "canopy",
23
30
  "downtown",
24
- "garden",
25
- "overpass",
26
- "pool mini",
27
- "terraces"
31
+ "overpass"
28
32
  ]
29
33
  },
30
34
  "roomDefaults": {