From d16b569052c0e753bba183158dbb5090192a2bf5 Mon Sep 17 00:00:00 2001
From: Eric Froemling
Date: Tue, 1 Feb 2022 19:16:33 -0600
Subject: [PATCH] language updates and 1.7 prep work
---
.efrocachemap | 968 +++++++++---------
.idea/dictionaries/ericf.xml | 16 +
CHANGELOG.md | 6 +-
Makefile | 4 +-
assets/.asset_manifest_public.json | 2 +
assets/Makefile | 2 +
assets/src/ba_data/python/_ba.py | 15 +-
assets/src/ba_data/python/ba/_app.py | 6 +-
assets/src/ba_data/python/ba/_coopsession.py | 3 +-
assets/src/ba_data/python/ba/_net.py | 5 +-
.../python/bastd/ui/account/__init__.py | 6 +-
.../python/bastd/ui/account/settings.py | 122 +--
.../src/ba_data/python/bastd/ui/account/v2.py | 92 ++
.../.idea/dictionaries/ericf.xml | 16 +
docs/ba_module.md | 3 +-
src/ballistica/ballistica.cc | 2 +-
src/ballistica/core/types.h | 1 +
src/ballistica/game/game.cc | 1 +
src/ballistica/graphics/text/text_graphics.cc | 9 +-
tools/batools/build.py | 40 +-
tools/batools/pcommand.py | 7 +-
21 files changed, 736 insertions(+), 590 deletions(-)
create mode 100644 assets/src/ba_data/python/bastd/ui/account/v2.py
diff --git a/.efrocachemap b/.efrocachemap
index f734b27e..8b2276a2 100644
--- a/.efrocachemap
+++ b/.efrocachemap
@@ -1,458 +1,458 @@
{
- "assets/build/ba_data/audio/achievement.ogg": "https://files.ballistica.net/cache/ba1/a8/b9/e207ce40c6cfa12bb49b75e83d50",
- "assets/build/ba_data/audio/actionHero1.ogg": "https://files.ballistica.net/cache/ba1/fb/e6/17887e6daa0efa34da9704094e97",
- "assets/build/ba_data/audio/actionHero2.ogg": "https://files.ballistica.net/cache/ba1/44/e3/919f25501ba3b44361e6f931f5d1",
- "assets/build/ba_data/audio/actionHero3.ogg": "https://files.ballistica.net/cache/ba1/cd/80/341ee72eb2f2039d2f59608e7a02",
- "assets/build/ba_data/audio/actionHero4.ogg": "https://files.ballistica.net/cache/ba1/6f/ab/8a69f0d0df5b8e8fe4ee92881c07",
- "assets/build/ba_data/audio/actionHeroDeath.ogg": "https://files.ballistica.net/cache/ba1/dd/3e/34c6ceb38d93c0c5f0c86b8d4810",
- "assets/build/ba_data/audio/actionHeroFall.ogg": "https://files.ballistica.net/cache/ba1/44/fd/05503db81eb0d7e0af6d3d83d588",
- "assets/build/ba_data/audio/actionHeroHit1.ogg": "https://files.ballistica.net/cache/ba1/3e/f4/844d49ee4e126d643d62b37d7e59",
- "assets/build/ba_data/audio/actionHeroHit2.ogg": "https://files.ballistica.net/cache/ba1/ec/8a/4c1729423399cd3cceb609405ea2",
- "assets/build/ba_data/audio/activateBeep.ogg": "https://files.ballistica.net/cache/ba1/0c/88/081372114ef1f19fe983deac3c5d",
- "assets/build/ba_data/audio/agent1.ogg": "https://files.ballistica.net/cache/ba1/28/c1/5a1ab66ca86deaba39ddc29669e6",
- "assets/build/ba_data/audio/agent2.ogg": "https://files.ballistica.net/cache/ba1/be/f3/e5736789ef33ab8b43351e413a43",
- "assets/build/ba_data/audio/agent3.ogg": "https://files.ballistica.net/cache/ba1/b1/96/2679a4d68b5300a85171a4d03237",
- "assets/build/ba_data/audio/agent4.ogg": "https://files.ballistica.net/cache/ba1/aa/58/4faec92b955e1ea371dff390fa6a",
- "assets/build/ba_data/audio/agentDeath.ogg": "https://files.ballistica.net/cache/ba1/2a/17/75287002ed54f75c909ab1c7da00",
- "assets/build/ba_data/audio/agentFall.ogg": "https://files.ballistica.net/cache/ba1/e7/73/8903e45d53ace8766036ef248167",
- "assets/build/ba_data/audio/agentHit1.ogg": "https://files.ballistica.net/cache/ba1/a4/03/2820bf5ae03a013327ab9779aa75",
- "assets/build/ba_data/audio/agentHit2.ogg": "https://files.ballistica.net/cache/ba1/f0/8c/3a8c72b99f3332ff72075b0af70b",
- "assets/build/ba_data/audio/alarm.ogg": "https://files.ballistica.net/cache/ba1/3a/38/2faa4ae6831d288a7205ea10fb8f",
- "assets/build/ba_data/audio/ali1.ogg": "https://files.ballistica.net/cache/ba1/ed/ca/db959a38313190c899cb282565c4",
- "assets/build/ba_data/audio/ali2.ogg": "https://files.ballistica.net/cache/ba1/4e/bb/75c48f84dd4be4fcc57bbcdbe9d3",
- "assets/build/ba_data/audio/ali3.ogg": "https://files.ballistica.net/cache/ba1/2b/d6/c7738cd5426dab8e67c4f8a7cc79",
- "assets/build/ba_data/audio/ali4.ogg": "https://files.ballistica.net/cache/ba1/ed/70/8dc0a140bdd77bd3ed6d5e797df4",
- "assets/build/ba_data/audio/aliDeath.ogg": "https://files.ballistica.net/cache/ba1/00/7b/ca90d5feef6f2c4d1a492b29e30b",
- "assets/build/ba_data/audio/aliFall.ogg": "https://files.ballistica.net/cache/ba1/b6/8d/2d71b13191602ad63bd039494728",
- "assets/build/ba_data/audio/aliHit1.ogg": "https://files.ballistica.net/cache/ba1/09/04/2bc5030227a3a8ac6d10713fcebe",
- "assets/build/ba_data/audio/aliHit2.ogg": "https://files.ballistica.net/cache/ba1/2e/d1/fbea61dd6e735f5feaefd90cca91",
- "assets/build/ba_data/audio/alien1.ogg": "https://files.ballistica.net/cache/ba1/ea/83/6a830cd1f81792c33ad8a7fbfc19",
- "assets/build/ba_data/audio/alien2.ogg": "https://files.ballistica.net/cache/ba1/3c/04/5b5ccfd3a1e185aa43da519f1dea",
- "assets/build/ba_data/audio/alien3.ogg": "https://files.ballistica.net/cache/ba1/81/96/a0b630adf4cb8edc30fad4fc4e3f",
- "assets/build/ba_data/audio/alien4.ogg": "https://files.ballistica.net/cache/ba1/c0/3f/5c0b9bfe6dd2b0b58ee1ac47387b",
- "assets/build/ba_data/audio/alienDeath.ogg": "https://files.ballistica.net/cache/ba1/91/7e/a81f96e9bac9e7dcc0319a49f103",
- "assets/build/ba_data/audio/alienFall.ogg": "https://files.ballistica.net/cache/ba1/08/e6/48cf7278626788f0f66d2dbb01d6",
- "assets/build/ba_data/audio/alienHit1.ogg": "https://files.ballistica.net/cache/ba1/89/36/ab46b81a6c69c37be49f547f0a45",
- "assets/build/ba_data/audio/alienHit2.ogg": "https://files.ballistica.net/cache/ba1/b5/54/2ddb1e3638baafc05d53f76d4ab5",
- "assets/build/ba_data/audio/announceEight.ogg": "https://files.ballistica.net/cache/ba1/ae/7d/59da023b4f1fa614e303000f7d88",
- "assets/build/ba_data/audio/announceFive.ogg": "https://files.ballistica.net/cache/ba1/3b/73/fa1f920e6f4737ef1e059aa75cda",
- "assets/build/ba_data/audio/announceFour.ogg": "https://files.ballistica.net/cache/ba1/8d/83/56b3e8d9d65081f3a90358dd5efe",
- "assets/build/ba_data/audio/announceNine.ogg": "https://files.ballistica.net/cache/ba1/db/5e/b20678892bc9f07b2bd67212445d",
- "assets/build/ba_data/audio/announceOne.ogg": "https://files.ballistica.net/cache/ba1/29/cc/5b72e1283fde2b77b0e73323d5be",
- "assets/build/ba_data/audio/announceSeven.ogg": "https://files.ballistica.net/cache/ba1/84/62/c4b7523316660662c284a455b157",
- "assets/build/ba_data/audio/announceSix.ogg": "https://files.ballistica.net/cache/ba1/5b/54/c4e4a20626c8fabbfc2d772ffb2e",
- "assets/build/ba_data/audio/announceTen.ogg": "https://files.ballistica.net/cache/ba1/bb/e9/e3375786a28c8d3a31e51a107e3f",
- "assets/build/ba_data/audio/announceThree.ogg": "https://files.ballistica.net/cache/ba1/c0/c2/d647a08c39468c1780f046752740",
- "assets/build/ba_data/audio/announceTwo.ogg": "https://files.ballistica.net/cache/ba1/35/98/3a1d165ef96a78c73f74320b2c31",
- "assets/build/ba_data/audio/assassin1.ogg": "https://files.ballistica.net/cache/ba1/6a/de/dc4cb1ed69c4e651cc6bf42c5173",
- "assets/build/ba_data/audio/assassin2.ogg": "https://files.ballistica.net/cache/ba1/7c/62/162c0474437e55af55635a1ad97f",
- "assets/build/ba_data/audio/assassin3.ogg": "https://files.ballistica.net/cache/ba1/2f/de/15847983325d1f1f5f8ef91e30da",
- "assets/build/ba_data/audio/assassin4.ogg": "https://files.ballistica.net/cache/ba1/65/f0/42c31c4fb55726968fd93bcf11c9",
- "assets/build/ba_data/audio/assassinDeath.ogg": "https://files.ballistica.net/cache/ba1/2d/d0/535f2def3174ed6ee0f531a57192",
- "assets/build/ba_data/audio/assassinFall.ogg": "https://files.ballistica.net/cache/ba1/aa/5a/c4d611380b73a4243f19178204f3",
- "assets/build/ba_data/audio/assassinHit1.ogg": "https://files.ballistica.net/cache/ba1/23/72/48a1d328af0b85a8fc21207e38a9",
- "assets/build/ba_data/audio/assassinHit2.ogg": "https://files.ballistica.net/cache/ba1/21/2c/04268f932078784f1e1822cfefb8",
- "assets/build/ba_data/audio/bear1.ogg": "https://files.ballistica.net/cache/ba1/67/dd/fb986d846b0c0a8999f66dd48216",
- "assets/build/ba_data/audio/bear2.ogg": "https://files.ballistica.net/cache/ba1/df/4e/0112cb8eb70ea8b412728d1c67de",
- "assets/build/ba_data/audio/bear3.ogg": "https://files.ballistica.net/cache/ba1/0e/3a/1690252272aa499b8ec83f00e14c",
- "assets/build/ba_data/audio/bear4.ogg": "https://files.ballistica.net/cache/ba1/a9/7f/935b770de89ee49c81ecc879c601",
- "assets/build/ba_data/audio/bearDeath.ogg": "https://files.ballistica.net/cache/ba1/0d/ce/22e61f9ef5090d9be31b153ec8ff",
- "assets/build/ba_data/audio/bearFall.ogg": "https://files.ballistica.net/cache/ba1/b0/13/aec779e711b479b51f50b3121727",
- "assets/build/ba_data/audio/bearHit1.ogg": "https://files.ballistica.net/cache/ba1/a3/79/bf4901b6e07c70565d0b5b104a62",
- "assets/build/ba_data/audio/bearHit2.ogg": "https://files.ballistica.net/cache/ba1/fb/66/4c7cc354f3cb8693b5e2e5ec5600",
- "assets/build/ba_data/audio/bellHigh.ogg": "https://files.ballistica.net/cache/ba1/79/30/51181031c96976c19e9d0d9d9904",
- "assets/build/ba_data/audio/bellLow.ogg": "https://files.ballistica.net/cache/ba1/db/6c/191e9b4b053e3170981b4aea8ad7",
- "assets/build/ba_data/audio/bellMed.ogg": "https://files.ballistica.net/cache/ba1/3e/8c/3bdb867de15d10be735c013760f1",
- "assets/build/ba_data/audio/bigImpact.ogg": "https://files.ballistica.net/cache/ba1/4a/f3/f753bab22c91f58a7dfae63663a4",
- "assets/build/ba_data/audio/bigImpact2.ogg": "https://files.ballistica.net/cache/ba1/ad/8c/3f8456362c16defad5215672e37b",
- "assets/build/ba_data/audio/blank.ogg": "https://files.ballistica.net/cache/ba1/88/87/8bef7f0c6cf01a2a163c859679c3",
- "assets/build/ba_data/audio/blip.ogg": "https://files.ballistica.net/cache/ba1/ad/46/9586dfc5463a2775aa2a8b2f2e64",
- "assets/build/ba_data/audio/block.ogg": "https://files.ballistica.net/cache/ba1/98/71/52eab427d7b12f26bc794ca86151",
- "assets/build/ba_data/audio/bombDrop01.ogg": "https://files.ballistica.net/cache/ba1/ce/82/eb64fdc44dfc884a74140529a49e",
- "assets/build/ba_data/audio/bombDrop02.ogg": "https://files.ballistica.net/cache/ba1/e3/cc/be5696acab3c63cc4de9f7581877",
- "assets/build/ba_data/audio/bombRoll01.ogg": "https://files.ballistica.net/cache/ba1/f0/fb/7e26cd3d8f4cc9933c5a629b2059",
- "assets/build/ba_data/audio/bones1.ogg": "https://files.ballistica.net/cache/ba1/27/99/5e57c973f29064b067f18eaff929",
- "assets/build/ba_data/audio/bones2.ogg": "https://files.ballistica.net/cache/ba1/71/25/f6bf7b0ee3cd921dfea13dbd6536",
- "assets/build/ba_data/audio/bones3.ogg": "https://files.ballistica.net/cache/ba1/aa/2d/338acc290d5974499ed3c4235893",
- "assets/build/ba_data/audio/bonesDeath.ogg": "https://files.ballistica.net/cache/ba1/04/db/632954d340043757a031a61b2e5e",
- "assets/build/ba_data/audio/bonesFall.ogg": "https://files.ballistica.net/cache/ba1/07/22/93850523f42f4a0399b91ca89155",
- "assets/build/ba_data/audio/boo.ogg": "https://files.ballistica.net/cache/ba1/e6/93/df8c542cea24ed23a404807c5517",
- "assets/build/ba_data/audio/boxDrop.ogg": "https://files.ballistica.net/cache/ba1/a3/69/75d1bbaa27f2d849f0f3d861b26d",
- "assets/build/ba_data/audio/boxingBell.ogg": "https://files.ballistica.net/cache/ba1/2f/77/f9508deb30b0a0ae53098e1e69a7",
- "assets/build/ba_data/audio/bunny1.ogg": "https://files.ballistica.net/cache/ba1/2c/85/c9c017641e9a261584b2f19b4fcc",
- "assets/build/ba_data/audio/bunny2.ogg": "https://files.ballistica.net/cache/ba1/10/9f/6f3a68c3ca6927edb2f71d1911af",
- "assets/build/ba_data/audio/bunny3.ogg": "https://files.ballistica.net/cache/ba1/51/14/fcf40a47aafaded36eb7ebb2ca59",
- "assets/build/ba_data/audio/bunny4.ogg": "https://files.ballistica.net/cache/ba1/3e/4b/29b44daaeb7780c35548435acbdd",
- "assets/build/ba_data/audio/bunnyDeath.ogg": "https://files.ballistica.net/cache/ba1/4d/6d/c7cad13971bb8c97ed84ed1f2720",
- "assets/build/ba_data/audio/bunnyFall.ogg": "https://files.ballistica.net/cache/ba1/ff/51/102b1696003060e1d49fcc552545",
- "assets/build/ba_data/audio/bunnyHit1.ogg": "https://files.ballistica.net/cache/ba1/40/1e/c67c7f4da895b161794674b8a9d3",
- "assets/build/ba_data/audio/bunnyHit2.ogg": "https://files.ballistica.net/cache/ba1/69/0f/f9f8148ec33a2ac8fc5ec733ed18",
- "assets/build/ba_data/audio/bunnyJump.ogg": "https://files.ballistica.net/cache/ba1/ef/2e/67f01df90039ab59d3e8f86f1742",
- "assets/build/ba_data/audio/cashRegister.ogg": "https://files.ballistica.net/cache/ba1/d2/c4/ad2a2ecb4d614dcd4837cd0aa780",
- "assets/build/ba_data/audio/cashRegister2.ogg": "https://files.ballistica.net/cache/ba1/ab/4d/ee8720a56ebf4853c385b10d9a2d",
- "assets/build/ba_data/audio/charSelectMusic.ogg": "https://files.ballistica.net/cache/ba1/b0/30/4430d66d12fad6585a2d1af039bf",
- "assets/build/ba_data/audio/cheer.ogg": "https://files.ballistica.net/cache/ba1/80/a6/02ed7a6bdb4ed67892586efb532f",
- "assets/build/ba_data/audio/click01.ogg": "https://files.ballistica.net/cache/ba1/e0/53/ecd6398c7848b6579afb8b51df7a",
- "assets/build/ba_data/audio/corkPop.ogg": "https://files.ballistica.net/cache/ba1/4a/b2/ce1f492068346b86686ebcea392b",
- "assets/build/ba_data/audio/cowboy1.ogg": "https://files.ballistica.net/cache/ba1/bc/cc/142300b27ca74a27c95f29230120",
- "assets/build/ba_data/audio/cowboy2.ogg": "https://files.ballistica.net/cache/ba1/22/bb/ac3515026a1e35d87652d391f947",
- "assets/build/ba_data/audio/cowboy3.ogg": "https://files.ballistica.net/cache/ba1/6e/52/5d16a011e29b45aee4f328cd354d",
- "assets/build/ba_data/audio/cowboy4.ogg": "https://files.ballistica.net/cache/ba1/f8/03/0867c123af13cbfcade74318f406",
- "assets/build/ba_data/audio/cowboyDeath.ogg": "https://files.ballistica.net/cache/ba1/e8/3c/d01e7f70b02fcabe2542bdd0c4e3",
- "assets/build/ba_data/audio/cowboyFall.ogg": "https://files.ballistica.net/cache/ba1/df/8e/c185f234ed95f426c4d98d10cc66",
- "assets/build/ba_data/audio/cowboyHit1.ogg": "https://files.ballistica.net/cache/ba1/0e/de/828f1850b1a33c11403c1a221389",
- "assets/build/ba_data/audio/cowboyHit2.ogg": "https://files.ballistica.net/cache/ba1/ac/9b/b66ec093e356469b3d55c0dcab67",
- "assets/build/ba_data/audio/crowdChant.ogg": "https://files.ballistica.net/cache/ba1/01/ca/12615954e8e9767da9513f0161a6",
- "assets/build/ba_data/audio/cyborg1.ogg": "https://files.ballistica.net/cache/ba1/29/46/dd920b03675683826c60cab68431",
- "assets/build/ba_data/audio/cyborg2.ogg": "https://files.ballistica.net/cache/ba1/d7/ba/949825f4919e8b9f24bfdf58eacb",
- "assets/build/ba_data/audio/cyborg3.ogg": "https://files.ballistica.net/cache/ba1/ce/21/d9accc6101f4558117e952e7ebad",
- "assets/build/ba_data/audio/cyborg4.ogg": "https://files.ballistica.net/cache/ba1/df/21/6b80b058be9b14dde9c41e26e044",
- "assets/build/ba_data/audio/cyborgDeath.ogg": "https://files.ballistica.net/cache/ba1/3c/75/65d8af77c45c5b6eabb861151357",
- "assets/build/ba_data/audio/cyborgFall.ogg": "https://files.ballistica.net/cache/ba1/18/36/a490e28b7118c20ca0356125c4ed",
- "assets/build/ba_data/audio/cyborgHit1.ogg": "https://files.ballistica.net/cache/ba1/69/3f/62c505ee86ec5820348cd18126d4",
- "assets/build/ba_data/audio/cyborgHit2.ogg": "https://files.ballistica.net/cache/ba1/42/ac/490a638e08e5a55e0875b73fe77b",
- "assets/build/ba_data/audio/cymbal.ogg": "https://files.ballistica.net/cache/ba1/71/20/efb28af7b28ff5bb73abb26569d2",
- "assets/build/ba_data/audio/debrisFall.ogg": "https://files.ballistica.net/cache/ba1/22/11/97924b97b98f2521da40f2ca065a",
- "assets/build/ba_data/audio/deek.ogg": "https://files.ballistica.net/cache/ba1/7d/9c/9528dfb6423d97528986df385ffb",
- "assets/build/ba_data/audio/deek2.ogg": "https://files.ballistica.net/cache/ba1/f1/b9/cf424e2d0325a160a359687a29e8",
- "assets/build/ba_data/audio/ding.ogg": "https://files.ballistica.net/cache/ba1/ea/6a/695042e9523dcfd0e0650ec6b2a6",
- "assets/build/ba_data/audio/dingSmall.ogg": "https://files.ballistica.net/cache/ba1/d8/55/fb450394e9b9ee6e30b5f72761d7",
- "assets/build/ba_data/audio/dingSmallHigh.ogg": "https://files.ballistica.net/cache/ba1/87/e1/34a485907fec55ba50b8b7011535",
- "assets/build/ba_data/audio/dripity.ogg": "https://files.ballistica.net/cache/ba1/31/8b/dfb7f781e4ba2e6e8f64a38fcce9",
- "assets/build/ba_data/audio/drumRoll.ogg": "https://files.ballistica.net/cache/ba1/f6/64/4cbd92296fb7fc0c7bc4579b44ad",
- "assets/build/ba_data/audio/error.ogg": "https://files.ballistica.net/cache/ba1/81/06/6598bd6074b4f6f6ae8dfe4d0c92",
- "assets/build/ba_data/audio/explosion01.ogg": "https://files.ballistica.net/cache/ba1/6f/5b/780b8a87afedbbe8651780b21c6e",
- "assets/build/ba_data/audio/explosion02.ogg": "https://files.ballistica.net/cache/ba1/6e/48/351670fd3c3adfa37014901c4608",
- "assets/build/ba_data/audio/explosion03.ogg": "https://files.ballistica.net/cache/ba1/50/b8/5ad4ddc862bd6e6a0c72cfbd7881",
- "assets/build/ba_data/audio/explosion04.ogg": "https://files.ballistica.net/cache/ba1/d9/3a/343fa93b612b781af7bb39f06592",
- "assets/build/ba_data/audio/explosion05.ogg": "https://files.ballistica.net/cache/ba1/20/0e/6e737d55dce712fd43a760b6ca88",
- "assets/build/ba_data/audio/fanfare.ogg": "https://files.ballistica.net/cache/ba1/ee/7c/45459639b297498cd6e57ed7aab2",
- "assets/build/ba_data/audio/flagCatcherMusic.ogg": "https://files.ballistica.net/cache/ba1/23/ca/93c5a2a4b1081d7a3843b551609c",
- "assets/build/ba_data/audio/flyingMusic.ogg": "https://files.ballistica.net/cache/ba1/c5/2d/368531f73094c0e324e880d3db29",
- "assets/build/ba_data/audio/foghorn.ogg": "https://files.ballistica.net/cache/ba1/a5/ba/c8eb0ad678a711e91d0d010b0455",
- "assets/build/ba_data/audio/footImpact01.ogg": "https://files.ballistica.net/cache/ba1/00/13/976aecf974d7f6ed22692da7895e",
- "assets/build/ba_data/audio/footImpact02.ogg": "https://files.ballistica.net/cache/ba1/28/25/1d7d94b671e1acb2bdc7ae07a0eb",
- "assets/build/ba_data/audio/footImpact03.ogg": "https://files.ballistica.net/cache/ba1/4e/b6/ef25162cd3cfe55edf0ad8b92b6b",
- "assets/build/ba_data/audio/forwardMarchMusic.ogg": "https://files.ballistica.net/cache/ba1/93/b1/e3b10157914e6ea49c02d084371c",
- "assets/build/ba_data/audio/freeze.ogg": "https://files.ballistica.net/cache/ba1/f8/0e/7c354906dcc9c0b993a7334a3406",
- "assets/build/ba_data/audio/frosty01.ogg": "https://files.ballistica.net/cache/ba1/93/11/fb3d2018b60eb89364ef5941668e",
- "assets/build/ba_data/audio/frosty02.ogg": "https://files.ballistica.net/cache/ba1/db/fa/74de772e3a87d5d823927c5bf625",
- "assets/build/ba_data/audio/frosty03.ogg": "https://files.ballistica.net/cache/ba1/9c/da/5b77a6493dadc251899adb9626dc",
- "assets/build/ba_data/audio/frosty04.ogg": "https://files.ballistica.net/cache/ba1/d9/b3/2d25791309215d5b0939f83bbe0a",
- "assets/build/ba_data/audio/frosty05.ogg": "https://files.ballistica.net/cache/ba1/f5/b1/3cb93dd1d3f7c4e80d89cbf0af21",
- "assets/build/ba_data/audio/frostyDeath.ogg": "https://files.ballistica.net/cache/ba1/69/4f/08a644c6039837b4713753218d9e",
- "assets/build/ba_data/audio/frostyFall.ogg": "https://files.ballistica.net/cache/ba1/58/17/8d8e8e19bd9714b8ced0eaf82cb4",
- "assets/build/ba_data/audio/frostyHit01.ogg": "https://files.ballistica.net/cache/ba1/28/26/2d546d2759db181a60fe58e36314",
- "assets/build/ba_data/audio/frostyHit02.ogg": "https://files.ballistica.net/cache/ba1/a8/10/e66174ceb844fdc0f641354f8057",
- "assets/build/ba_data/audio/frostyHit03.ogg": "https://files.ballistica.net/cache/ba1/b2/67/8af78acbd423615c109e3ef664ed",
- "assets/build/ba_data/audio/fuse01.ogg": "https://files.ballistica.net/cache/ba1/43/4d/b5793085eb4f781e0a0c9cfe1663",
- "assets/build/ba_data/audio/gladiator1.ogg": "https://files.ballistica.net/cache/ba1/07/bf/69fa4ea1b39f17d4027725e37778",
- "assets/build/ba_data/audio/gladiator2.ogg": "https://files.ballistica.net/cache/ba1/1d/38/445682fb79b7ce060a48c84f1b05",
- "assets/build/ba_data/audio/gladiator3.ogg": "https://files.ballistica.net/cache/ba1/35/ab/d10b1a5bc75841cb6e51e5b5467f",
- "assets/build/ba_data/audio/gladiator4.ogg": "https://files.ballistica.net/cache/ba1/ca/f8/5a70574a98ea7204fec7da080849",
- "assets/build/ba_data/audio/gladiatorDeath.ogg": "https://files.ballistica.net/cache/ba1/c2/5b/91a47747c627ef8038d0f9556276",
- "assets/build/ba_data/audio/gladiatorFall.ogg": "https://files.ballistica.net/cache/ba1/a1/d2/c0651db4f6240e84ebe189eb6583",
- "assets/build/ba_data/audio/gladiatorHit1.ogg": "https://files.ballistica.net/cache/ba1/b3/e4/66bca9f3f784e1587a6a46b8deca",
- "assets/build/ba_data/audio/gladiatorHit2.ogg": "https://files.ballistica.net/cache/ba1/fe/cf/2f5be6f003fe5fdbe4736a5048d2",
- "assets/build/ba_data/audio/gong.ogg": "https://files.ballistica.net/cache/ba1/cc/05/348ae1033d41dcef058c7a14034a",
- "assets/build/ba_data/audio/grandRompMusic.ogg": "https://files.ballistica.net/cache/ba1/61/c7/742e9da16ac27d1462ba9b0113d2",
- "assets/build/ba_data/audio/gravelSkid.ogg": "https://files.ballistica.net/cache/ba1/b9/5b/b7818e6998c5c2d1ab2f97edd17c",
- "assets/build/ba_data/audio/gunCocking.ogg": "https://files.ballistica.net/cache/ba1/8c/56/15f29e6cfc197a544131ca6e9a4e",
- "assets/build/ba_data/audio/healthPowerup.ogg": "https://files.ballistica.net/cache/ba1/98/6b/92bf086c083da0ee830a8d274029",
- "assets/build/ba_data/audio/hiss.ogg": "https://files.ballistica.net/cache/ba1/ee/6a/707f41a468ade124534c18d0e2a7",
- "assets/build/ba_data/audio/impactHard.ogg": "https://files.ballistica.net/cache/ba1/10/01/0d5c5ad9410b4901c43540abc50e",
- "assets/build/ba_data/audio/impactHard2.ogg": "https://files.ballistica.net/cache/ba1/e0/b1/51a13fe1212939407a0d200b2978",
- "assets/build/ba_data/audio/impactHard3.ogg": "https://files.ballistica.net/cache/ba1/09/47/49ed4ceec066da5141e020e52712",
- "assets/build/ba_data/audio/impactMedium.ogg": "https://files.ballistica.net/cache/ba1/fe/e1/6541f5e5cb1bf8d2137f0dcf0491",
- "assets/build/ba_data/audio/impactMedium2.ogg": "https://files.ballistica.net/cache/ba1/d4/68/3e4a258ffc851a34c4bb1c2cf2da",
- "assets/build/ba_data/audio/jack01.ogg": "https://files.ballistica.net/cache/ba1/4f/97/40447463b1fbd2472239b0f1dac7",
- "assets/build/ba_data/audio/jack02.ogg": "https://files.ballistica.net/cache/ba1/fb/a0/4d8807c6196e564e1063677f05a9",
- "assets/build/ba_data/audio/jack03.ogg": "https://files.ballistica.net/cache/ba1/c3/b1/5ff89aee55e1c38de0428d8dd12e",
- "assets/build/ba_data/audio/jack04.ogg": "https://files.ballistica.net/cache/ba1/aa/d1/38eaded5e83dd4b50ffa50a89461",
- "assets/build/ba_data/audio/jack05.ogg": "https://files.ballistica.net/cache/ba1/77/9d/a007daf16e97ac8c10d685483e2d",
- "assets/build/ba_data/audio/jack06.ogg": "https://files.ballistica.net/cache/ba1/f9/31/a81df28ff3f7192ef9027718c1d3",
- "assets/build/ba_data/audio/jackDeath01.ogg": "https://files.ballistica.net/cache/ba1/87/54/5ea610f1c9675d3065d0d3564771",
- "assets/build/ba_data/audio/jackFall01.ogg": "https://files.ballistica.net/cache/ba1/6e/57/b4db1b68d1596405db012835a7b8",
- "assets/build/ba_data/audio/jackHit01.ogg": "https://files.ballistica.net/cache/ba1/01/12/a480370ccffc19b7a523d2d5e630",
- "assets/build/ba_data/audio/jackHit02.ogg": "https://files.ballistica.net/cache/ba1/8e/95/05b3ee4088cc51888ce719a338bc",
- "assets/build/ba_data/audio/jackHit03.ogg": "https://files.ballistica.net/cache/ba1/78/0a/623ff9f863211aa136073d4503f1",
- "assets/build/ba_data/audio/jackHit04.ogg": "https://files.ballistica.net/cache/ba1/0e/54/f4afd712012622f8eb3694f96ed4",
- "assets/build/ba_data/audio/jackHit05.ogg": "https://files.ballistica.net/cache/ba1/e1/73/73dcd68223c48741e1a2a482dc71",
- "assets/build/ba_data/audio/jackHit06.ogg": "https://files.ballistica.net/cache/ba1/16/4a/860158ca4a61d0f88fa01fc2c43f",
- "assets/build/ba_data/audio/jackHit07.ogg": "https://files.ballistica.net/cache/ba1/13/3b/b3519bfe762031f85820ded9275e",
- "assets/build/ba_data/audio/jumpsuit1.ogg": "https://files.ballistica.net/cache/ba1/86/50/def5afd798a17fe393e0f980c60d",
- "assets/build/ba_data/audio/jumpsuit2.ogg": "https://files.ballistica.net/cache/ba1/39/42/8c0e5971304f7b752fee2e8aaf67",
- "assets/build/ba_data/audio/jumpsuit3.ogg": "https://files.ballistica.net/cache/ba1/4c/12/09317d95c11b5e5af186dab09104",
- "assets/build/ba_data/audio/jumpsuit4.ogg": "https://files.ballistica.net/cache/ba1/29/72/85a98b7fd45a065415cbb297176d",
- "assets/build/ba_data/audio/jumpsuitDeath.ogg": "https://files.ballistica.net/cache/ba1/f1/a6/1b0344a246b263dd26dda8af4c62",
- "assets/build/ba_data/audio/jumpsuitFall.ogg": "https://files.ballistica.net/cache/ba1/1f/45/123cd030db522a74f5fc6e722acb",
- "assets/build/ba_data/audio/jumpsuitHit1.ogg": "https://files.ballistica.net/cache/ba1/fc/4a/467ecf3f12a0ecff71146e97d3fc",
- "assets/build/ba_data/audio/jumpsuitHit2.ogg": "https://files.ballistica.net/cache/ba1/b9/be/37d7f8fec14252418cca03554360",
- "assets/build/ba_data/audio/kronk1.ogg": "https://files.ballistica.net/cache/ba1/c0/a1/016837c1561781ce1ccddc287c6d",
- "assets/build/ba_data/audio/kronk10.ogg": "https://files.ballistica.net/cache/ba1/95/a9/5bd902f3c64bc3d6d6b5035b5a40",
- "assets/build/ba_data/audio/kronk2.ogg": "https://files.ballistica.net/cache/ba1/4d/48/354c3a7841396bf8635a027402a6",
- "assets/build/ba_data/audio/kronk3.ogg": "https://files.ballistica.net/cache/ba1/78/08/033e21c2ffa7c54752868d569ad9",
- "assets/build/ba_data/audio/kronk4.ogg": "https://files.ballistica.net/cache/ba1/77/a8/70f5d77b59dd10d40bc986793e0a",
- "assets/build/ba_data/audio/kronk5.ogg": "https://files.ballistica.net/cache/ba1/9f/3b/4ac358d91c38b27d1764214b496a",
- "assets/build/ba_data/audio/kronk6.ogg": "https://files.ballistica.net/cache/ba1/e8/45/39f1da4d8137327343bfbffdf7ac",
- "assets/build/ba_data/audio/kronk7.ogg": "https://files.ballistica.net/cache/ba1/48/d3/51ceb3c945fa30582e26ecdf36d8",
- "assets/build/ba_data/audio/kronk8.ogg": "https://files.ballistica.net/cache/ba1/7c/3e/53a4213b2fde4e960d452fe33112",
- "assets/build/ba_data/audio/kronk9.ogg": "https://files.ballistica.net/cache/ba1/b6/ac/76986e6a4d83b356d38795b09f87",
- "assets/build/ba_data/audio/kronkDeath.ogg": "https://files.ballistica.net/cache/ba1/e0/d5/5ac5851c49e318672f346ac9cff4",
- "assets/build/ba_data/audio/kronkFall.ogg": "https://files.ballistica.net/cache/ba1/41/2f/eb5e4245a309408c7329e86bcc20",
- "assets/build/ba_data/audio/laser.ogg": "https://files.ballistica.net/cache/ba1/3b/47/a462d0e9f177c18352cf4c6df40d",
- "assets/build/ba_data/audio/laserReverse.ogg": "https://files.ballistica.net/cache/ba1/b4/6b/e0b25588faedd90432ec30d2a75c",
- "assets/build/ba_data/audio/mel01.ogg": "https://files.ballistica.net/cache/ba1/6a/66/a6ff483dacf401d905eca772dddd",
- "assets/build/ba_data/audio/mel02.ogg": "https://files.ballistica.net/cache/ba1/b7/3f/45a18bfe180a979fab6f3c8b237e",
- "assets/build/ba_data/audio/mel03.ogg": "https://files.ballistica.net/cache/ba1/1a/10/35f72b0377dcf87d89da570c4ee9",
- "assets/build/ba_data/audio/mel04.ogg": "https://files.ballistica.net/cache/ba1/a5/39/61b940c6cc702eefc37fb599ddf2",
- "assets/build/ba_data/audio/mel05.ogg": "https://files.ballistica.net/cache/ba1/74/df/58cb10097213f163dfa5062206c6",
- "assets/build/ba_data/audio/mel06.ogg": "https://files.ballistica.net/cache/ba1/d2/f2/6faf10b25273ffcfc5ad0469f2fa",
- "assets/build/ba_data/audio/mel07.ogg": "https://files.ballistica.net/cache/ba1/52/58/d398c4fa5c59a31d7f5dc6205b14",
- "assets/build/ba_data/audio/mel08.ogg": "https://files.ballistica.net/cache/ba1/17/19/69bfe037a45b92265d3c2081de6b",
- "assets/build/ba_data/audio/mel09.ogg": "https://files.ballistica.net/cache/ba1/10/f3/ae6c34bbc939b174a3d99462def3",
- "assets/build/ba_data/audio/mel10.ogg": "https://files.ballistica.net/cache/ba1/0e/90/da591f8250b51f4a48cead39bf24",
- "assets/build/ba_data/audio/melDeath01.ogg": "https://files.ballistica.net/cache/ba1/b7/31/552729a26af1e4823fb6939e0d12",
- "assets/build/ba_data/audio/melFall01.ogg": "https://files.ballistica.net/cache/ba1/05/e2/68f8afceeb40ef77cacb1d2f3381",
- "assets/build/ba_data/audio/menuMusic.ogg": "https://files.ballistica.net/cache/ba1/6b/4d/8248c9c9bd5e2907761504105235",
- "assets/build/ba_data/audio/metalHit.ogg": "https://files.ballistica.net/cache/ba1/c7/be/68038edc534c80f4496cc728fb4d",
- "assets/build/ba_data/audio/metalSkid.ogg": "https://files.ballistica.net/cache/ba1/0b/c5/88d6bbd542e70cfb2189c0658a62",
- "assets/build/ba_data/audio/ninjaAttack1.ogg": "https://files.ballistica.net/cache/ba1/14/ee/32dc76ad9c15555ce61508c49501",
- "assets/build/ba_data/audio/ninjaAttack2.ogg": "https://files.ballistica.net/cache/ba1/2a/6a/926b6abbdf3457f5a447b4c985d1",
- "assets/build/ba_data/audio/ninjaAttack3.ogg": "https://files.ballistica.net/cache/ba1/d4/59/d99c7d08cb5aae1502acd4451c0d",
- "assets/build/ba_data/audio/ninjaAttack4.ogg": "https://files.ballistica.net/cache/ba1/7f/8f/a02c2c3434d17d6c1b66868a6a77",
- "assets/build/ba_data/audio/ninjaAttack5.ogg": "https://files.ballistica.net/cache/ba1/02/63/28216367c3d70bd4ad825cb82148",
- "assets/build/ba_data/audio/ninjaAttack6.ogg": "https://files.ballistica.net/cache/ba1/bc/c5/7562680fc3f9d830bdcbdc9a88c9",
- "assets/build/ba_data/audio/ninjaAttack7.ogg": "https://files.ballistica.net/cache/ba1/d2/44/0b8c322730c3331ac90d5a98a141",
- "assets/build/ba_data/audio/ninjaDeath1.ogg": "https://files.ballistica.net/cache/ba1/d1/0e/b3da88e962c584d6f753435d1074",
- "assets/build/ba_data/audio/ninjaFall1.ogg": "https://files.ballistica.net/cache/ba1/5b/d9/1a215f53b78396c88f1fa1a4f080",
- "assets/build/ba_data/audio/ninjaHit1.ogg": "https://files.ballistica.net/cache/ba1/0b/a6/50edbcd553fe020abc5545063b59",
- "assets/build/ba_data/audio/ninjaHit2.ogg": "https://files.ballistica.net/cache/ba1/94/ba/b2cce8525f5d8add20edb74a74c2",
- "assets/build/ba_data/audio/ninjaHit3.ogg": "https://files.ballistica.net/cache/ba1/1f/69/81ae05f8e998e55b98a0c946e9fa",
- "assets/build/ba_data/audio/ninjaHit4.ogg": "https://files.ballistica.net/cache/ba1/19/b9/f4036f4be83194830f0821015739",
- "assets/build/ba_data/audio/ninjaHit5.ogg": "https://files.ballistica.net/cache/ba1/00/b7/4569bf348a60ffdb7de94e1bbdc8",
- "assets/build/ba_data/audio/ninjaHit6.ogg": "https://files.ballistica.net/cache/ba1/4d/61/3ddfa08307ce0d13dab64a187693",
- "assets/build/ba_data/audio/ninjaHit7.ogg": "https://files.ballistica.net/cache/ba1/04/8f/1f69d466eb89fd804a0957e989e9",
- "assets/build/ba_data/audio/ninjaHit8.ogg": "https://files.ballistica.net/cache/ba1/de/ec/8795dfb4444eb6f289ba707f8c8a",
- "assets/build/ba_data/audio/oldLady1.ogg": "https://files.ballistica.net/cache/ba1/b4/ca/17de1f1b634efdc84d247b8c381c",
- "assets/build/ba_data/audio/oldLady2.ogg": "https://files.ballistica.net/cache/ba1/74/0a/b317572e2c59c67a6cbb47cbe5cb",
- "assets/build/ba_data/audio/oldLady3.ogg": "https://files.ballistica.net/cache/ba1/89/27/62d8481958a151456ecf3e91009d",
- "assets/build/ba_data/audio/oldLady4.ogg": "https://files.ballistica.net/cache/ba1/97/3b/4867761a667f22928e505a70fe60",
- "assets/build/ba_data/audio/oldLadyDeath.ogg": "https://files.ballistica.net/cache/ba1/a8/12/96bfd3ad1c13cffb45882cbf9953",
- "assets/build/ba_data/audio/oldLadyFall.ogg": "https://files.ballistica.net/cache/ba1/a6/c2/630f4fd3f531df9600a69b7c849b",
- "assets/build/ba_data/audio/oldLadyHit1.ogg": "https://files.ballistica.net/cache/ba1/c1/8c/eea9e9380ae5c153a7ee76981f3c",
- "assets/build/ba_data/audio/oldLadyHit2.ogg": "https://files.ballistica.net/cache/ba1/2f/8f/cff721bf7d889f751827f28703fc",
- "assets/build/ba_data/audio/ooh.ogg": "https://files.ballistica.net/cache/ba1/5a/44/9c4ba513618f6c6955f144b4eb02",
- "assets/build/ba_data/audio/operaSinger1.ogg": "https://files.ballistica.net/cache/ba1/a0/63/18db988917c5c206e594fd7f21ef",
- "assets/build/ba_data/audio/operaSinger2.ogg": "https://files.ballistica.net/cache/ba1/cb/6a/8640128dd9dfd5629f1d2459afa6",
- "assets/build/ba_data/audio/operaSinger3.ogg": "https://files.ballistica.net/cache/ba1/14/28/c8ed6a18f23d520a29a4a79c0940",
- "assets/build/ba_data/audio/operaSinger4.ogg": "https://files.ballistica.net/cache/ba1/af/09/17ffccfb068ccfad1cc7b80fa3c2",
- "assets/build/ba_data/audio/operaSingerDeath.ogg": "https://files.ballistica.net/cache/ba1/18/e7/05468ac418929acc12e8a9187b7a",
- "assets/build/ba_data/audio/operaSingerFall.ogg": "https://files.ballistica.net/cache/ba1/94/13/886780231f7baaf911166b56f36b",
- "assets/build/ba_data/audio/operaSingerHit1.ogg": "https://files.ballistica.net/cache/ba1/f5/61/4ac10e5b26c985edf561a23832e9",
- "assets/build/ba_data/audio/operaSingerHit2.ogg": "https://files.ballistica.net/cache/ba1/9d/e7/68e42932d696a7eba05db2310aa9",
- "assets/build/ba_data/audio/orchestraHit.ogg": "https://files.ballistica.net/cache/ba1/e1/2d/93817e1a5ff3517c95148bf34782",
- "assets/build/ba_data/audio/orchestraHit2.ogg": "https://files.ballistica.net/cache/ba1/28/f7/58304de4fcc617d94a09eee7c68f",
- "assets/build/ba_data/audio/orchestraHit3.ogg": "https://files.ballistica.net/cache/ba1/6d/86/a184ce6c71232b69e23012616ef6",
- "assets/build/ba_data/audio/orchestraHit4.ogg": "https://files.ballistica.net/cache/ba1/0d/2d/622d4fb784a920b6dc6ad256be11",
- "assets/build/ba_data/audio/orchestraHitBig1.ogg": "https://files.ballistica.net/cache/ba1/2e/27/9030b6c336b579633e78ad2ad14d",
- "assets/build/ba_data/audio/orchestraHitBig2.ogg": "https://files.ballistica.net/cache/ba1/ce/78/e941781b3d49016d1499a9e37292",
- "assets/build/ba_data/audio/penguin1.ogg": "https://files.ballistica.net/cache/ba1/38/41/04ac98419daecaf275594beeef1a",
- "assets/build/ba_data/audio/penguin2.ogg": "https://files.ballistica.net/cache/ba1/cb/66/bce92ef74e6944aa10fcd13e6c54",
- "assets/build/ba_data/audio/penguin3.ogg": "https://files.ballistica.net/cache/ba1/15/a7/cfcea072ed10fcb5fb5570b51b12",
- "assets/build/ba_data/audio/penguin4.ogg": "https://files.ballistica.net/cache/ba1/3e/65/c041c417385e204654ba5478c31f",
- "assets/build/ba_data/audio/penguinDeath.ogg": "https://files.ballistica.net/cache/ba1/ea/18/2c45b8e81954a392bd0e5483d634",
- "assets/build/ba_data/audio/penguinFall.ogg": "https://files.ballistica.net/cache/ba1/9b/44/8db744c50073597c684712ef3c45",
- "assets/build/ba_data/audio/penguinHit1.ogg": "https://files.ballistica.net/cache/ba1/63/70/bf832414289acb1f9cb99b0b1020",
- "assets/build/ba_data/audio/penguinHit2.ogg": "https://files.ballistica.net/cache/ba1/2b/ff/de0eb850c27dc10e133953f4abab",
- "assets/build/ba_data/audio/pixie1.ogg": "https://files.ballistica.net/cache/ba1/d3/92/3034a49ed5513cd457db5419d8c7",
- "assets/build/ba_data/audio/pixie2.ogg": "https://files.ballistica.net/cache/ba1/df/e9/13a274fd1153117b7a30c489bf39",
- "assets/build/ba_data/audio/pixie3.ogg": "https://files.ballistica.net/cache/ba1/59/d4/fd90e833b88b1c5805d8cfeead6c",
- "assets/build/ba_data/audio/pixie4.ogg": "https://files.ballistica.net/cache/ba1/05/7b/0d763f7c675f172265ef3c28b713",
- "assets/build/ba_data/audio/pixieDeath.ogg": "https://files.ballistica.net/cache/ba1/f7/35/eb73e9aafe67fb72563f8c8b69ba",
- "assets/build/ba_data/audio/pixieFall.ogg": "https://files.ballistica.net/cache/ba1/9f/88/e9a8bcc621b765753668be7a5504",
- "assets/build/ba_data/audio/pixieHit1.ogg": "https://files.ballistica.net/cache/ba1/86/f5/2ca62d5c20dd7fc5111b24d1e26d",
- "assets/build/ba_data/audio/pixieHit2.ogg": "https://files.ballistica.net/cache/ba1/ce/a9/79cb6e3617be489154b27fc06976",
- "assets/build/ba_data/audio/playerDeath.ogg": "https://files.ballistica.net/cache/ba1/4d/1b/d63ed1fc17f1a4849ed9b38585aa",
- "assets/build/ba_data/audio/playerLeft.ogg": "https://files.ballistica.net/cache/ba1/ac/97/307bc69d5d36de635703ca5da481",
- "assets/build/ba_data/audio/pop01.ogg": "https://files.ballistica.net/cache/ba1/b3/1a/5d92d6fabbd1cbb6d19ba9d9beb7",
- "assets/build/ba_data/audio/powerdown01.ogg": "https://files.ballistica.net/cache/ba1/eb/e5/3030ba612a547c070d4c56d82a82",
- "assets/build/ba_data/audio/powerup01.ogg": "https://files.ballistica.net/cache/ba1/fd/62/d4e05848ef3d044b771974f046d5",
- "assets/build/ba_data/audio/punch01.ogg": "https://files.ballistica.net/cache/ba1/09/e3/328e094ea215c1400885ee1ecdba",
- "assets/build/ba_data/audio/punchStrong01.ogg": "https://files.ballistica.net/cache/ba1/bf/ff/128a1aab2493300189d5502a8bad",
- "assets/build/ba_data/audio/punchStrong02.ogg": "https://files.ballistica.net/cache/ba1/ed/3f/7b6b46b8871b55e11abfdbb4d563",
- "assets/build/ba_data/audio/punchSwish.ogg": "https://files.ballistica.net/cache/ba1/84/32/bc437bc9fbd4cc527b384e89eb28",
- "assets/build/ba_data/audio/punchWeak01.ogg": "https://files.ballistica.net/cache/ba1/8a/39/935a1251fb2b6788727448573a85",
- "assets/build/ba_data/audio/raceBeep1.ogg": "https://files.ballistica.net/cache/ba1/11/39/b960b7105d861a579af5d5972287",
- "assets/build/ba_data/audio/raceBeep2.ogg": "https://files.ballistica.net/cache/ba1/e2/5b/63a3643669172f9daa5612b02c84",
- "assets/build/ba_data/audio/refWhistle.ogg": "https://files.ballistica.net/cache/ba1/58/d5/5ce3dad840d1f36a38e8c12f6999",
- "assets/build/ba_data/audio/robot1.ogg": "https://files.ballistica.net/cache/ba1/36/b5/091620c6314cee2bbbf69e312b25",
- "assets/build/ba_data/audio/robot2.ogg": "https://files.ballistica.net/cache/ba1/13/ce/fc14fcca289457468e353b67bfb1",
- "assets/build/ba_data/audio/robot3.ogg": "https://files.ballistica.net/cache/ba1/29/1b/2408dcf0dacd2b73815dc1b42b78",
- "assets/build/ba_data/audio/robot4.ogg": "https://files.ballistica.net/cache/ba1/47/90/55dd536b98625c3ea2aad243bc49",
- "assets/build/ba_data/audio/robotDeath.ogg": "https://files.ballistica.net/cache/ba1/1a/9b/0fe3f3583bb96412127ffef07c19",
- "assets/build/ba_data/audio/robotFall.ogg": "https://files.ballistica.net/cache/ba1/8b/24/3285dbf3ffcb4dd660d7921aa601",
- "assets/build/ba_data/audio/robotHit1.ogg": "https://files.ballistica.net/cache/ba1/ae/fa/977fa665062277a0cb843bba3755",
- "assets/build/ba_data/audio/robotHit2.ogg": "https://files.ballistica.net/cache/ba1/67/7c/6af5e794a6953160494456570fc4",
- "assets/build/ba_data/audio/runAwayMusic.ogg": "https://files.ballistica.net/cache/ba1/a3/6c/e6be3f0bba073dbaabe5384b5cde",
- "assets/build/ba_data/audio/santa01.ogg": "https://files.ballistica.net/cache/ba1/74/51/caefab5d350f32263272230575ed",
- "assets/build/ba_data/audio/santa02.ogg": "https://files.ballistica.net/cache/ba1/38/ea/729b0b844250a2be918594ad12f6",
- "assets/build/ba_data/audio/santa03.ogg": "https://files.ballistica.net/cache/ba1/84/27/0c1554941d5bee75d3add8748cfc",
- "assets/build/ba_data/audio/santa04.ogg": "https://files.ballistica.net/cache/ba1/84/75/84fde245eda2368f4d6ff406d9d9",
- "assets/build/ba_data/audio/santa05.ogg": "https://files.ballistica.net/cache/ba1/bc/61/abb2490a038120d803973ca733fc",
- "assets/build/ba_data/audio/santaDeath.ogg": "https://files.ballistica.net/cache/ba1/31/d8/5c93316962032b419def8c5893a8",
- "assets/build/ba_data/audio/santaFall.ogg": "https://files.ballistica.net/cache/ba1/d8/59/92cfbf9945dc61ceaa4a2fdb1ef3",
- "assets/build/ba_data/audio/santaHit01.ogg": "https://files.ballistica.net/cache/ba1/ff/e0/f03e86dc06328818ee9a0ef73b6f",
- "assets/build/ba_data/audio/santaHit02.ogg": "https://files.ballistica.net/cache/ba1/ec/fa/4c3a3133509f71f18339fb8ce5a7",
- "assets/build/ba_data/audio/santaHit03.ogg": "https://files.ballistica.net/cache/ba1/25/d3/5a6aaa5fdf41a344f9a479ba2afd",
- "assets/build/ba_data/audio/santaHit04.ogg": "https://files.ballistica.net/cache/ba1/19/ca/7b38a5f7afa67ef6b95074110717",
- "assets/build/ba_data/audio/scamper01.ogg": "https://files.ballistica.net/cache/ba1/a8/8c/26fde437ad0badd09255e017b8bf",
- "assets/build/ba_data/audio/scaryMusic.ogg": "https://files.ballistica.net/cache/ba1/30/4d/92e9ca83957ce48b312c622509c2",
- "assets/build/ba_data/audio/score.ogg": "https://files.ballistica.net/cache/ba1/89/e8/614c6d977091b9047b9d62b90b2d",
- "assets/build/ba_data/audio/scoreHit01.ogg": "https://files.ballistica.net/cache/ba1/ac/67/fb89635853c35700d018bea36b0d",
- "assets/build/ba_data/audio/scoreHit02.ogg": "https://files.ballistica.net/cache/ba1/8b/74/6bd2ad21470176600c0fdc743aca",
- "assets/build/ba_data/audio/scoreIncrease.ogg": "https://files.ballistica.net/cache/ba1/e2/7d/df10a883be6b74738096effcf293",
- "assets/build/ba_data/audio/scoresEpicMusic.ogg": "https://files.ballistica.net/cache/ba1/2b/27/98aa83922073d1c2bbeed34755c7",
- "assets/build/ba_data/audio/shatter.ogg": "https://files.ballistica.net/cache/ba1/f0/0f/0d20497c644092fece98b16a435b",
- "assets/build/ba_data/audio/shieldDown.ogg": "https://files.ballistica.net/cache/ba1/21/db/8757444510728238c1ed872872c5",
- "assets/build/ba_data/audio/shieldHit.ogg": "https://files.ballistica.net/cache/ba1/7b/26/078112574f00ebe463eca453df1c",
- "assets/build/ba_data/audio/shieldUp.ogg": "https://files.ballistica.net/cache/ba1/c7/90/3a0910a506fd84c5530f666ef5e6",
- "assets/build/ba_data/audio/skid01.ogg": "https://files.ballistica.net/cache/ba1/9d/2e/4b5916af662f27ad7db641071ca8",
- "assets/build/ba_data/audio/slowEpicMusic.ogg": "https://files.ballistica.net/cache/ba1/b6/59/c5034e1092c4c73df117a3d262ba",
- "assets/build/ba_data/audio/sparkle01.ogg": "https://files.ballistica.net/cache/ba1/1a/c0/9b333d458b028e4742abb4395d65",
- "assets/build/ba_data/audio/sparkle02.ogg": "https://files.ballistica.net/cache/ba1/fa/55/1425a799421c150bfa1afa465a18",
- "assets/build/ba_data/audio/sparkle03.ogg": "https://files.ballistica.net/cache/ba1/54/43/2d0e3f7f52f04c002eb206a395e3",
- "assets/build/ba_data/audio/spawn.ogg": "https://files.ballistica.net/cache/ba1/41/8f/1853c79553a0ba3e077969e16d23",
- "assets/build/ba_data/audio/spazAttack01.ogg": "https://files.ballistica.net/cache/ba1/82/9b/75c48b3b3e67b7c9514ffe8c55c6",
- "assets/build/ba_data/audio/spazAttack02.ogg": "https://files.ballistica.net/cache/ba1/61/1b/18ad31b88548c92ede65d1e66086",
- "assets/build/ba_data/audio/spazAttack03.ogg": "https://files.ballistica.net/cache/ba1/21/65/92ddf4fdcbc220feb201b7b1ef3a",
- "assets/build/ba_data/audio/spazAttack04.ogg": "https://files.ballistica.net/cache/ba1/50/f8/e541d915e0f65921d56d0718911a",
- "assets/build/ba_data/audio/spazDeath01.ogg": "https://files.ballistica.net/cache/ba1/4e/a9/ed9563eef74701795861346d4d78",
- "assets/build/ba_data/audio/spazEff.ogg": "https://files.ballistica.net/cache/ba1/cf/fa/041ab2a616ccfbda7a20b063d21d",
- "assets/build/ba_data/audio/spazFall01.ogg": "https://files.ballistica.net/cache/ba1/e4/70/732f8e9f81297b87a1d24f472f9d",
- "assets/build/ba_data/audio/spazImpact01.ogg": "https://files.ballistica.net/cache/ba1/67/0e/4f3f1696bab6a98c9d04a538e992",
- "assets/build/ba_data/audio/spazImpact02.ogg": "https://files.ballistica.net/cache/ba1/8b/fd/4be7c457d02caaae7068e46b8d51",
- "assets/build/ba_data/audio/spazImpact03.ogg": "https://files.ballistica.net/cache/ba1/5c/c7/3e71ca827402a82669eba6e1855e",
- "assets/build/ba_data/audio/spazImpact04.ogg": "https://files.ballistica.net/cache/ba1/59/f4/803be0667e0e6c148fa503c47abb",
- "assets/build/ba_data/audio/spazJump01.ogg": "https://files.ballistica.net/cache/ba1/93/b3/ed7e0cdddb1dca71f4db4d5f45c3",
- "assets/build/ba_data/audio/spazJump02.ogg": "https://files.ballistica.net/cache/ba1/d6/c5/44ab5383c4456160de609f5064a9",
- "assets/build/ba_data/audio/spazJump03.ogg": "https://files.ballistica.net/cache/ba1/72/3a/5a34e05553941dcc73c49b4706d3",
- "assets/build/ba_data/audio/spazJump04.ogg": "https://files.ballistica.net/cache/ba1/57/de/604027efcd50fd96167592cafb92",
- "assets/build/ba_data/audio/spazOw.ogg": "https://files.ballistica.net/cache/ba1/98/cb/79326b00b91756474a8952ad6a4a",
- "assets/build/ba_data/audio/spazPickup01.ogg": "https://files.ballistica.net/cache/ba1/20/29/cf7bbc174089729504c16a503241",
- "assets/build/ba_data/audio/spazScream01.ogg": "https://files.ballistica.net/cache/ba1/49/a7/7f59eff3d73e473099a0cee6c735",
- "assets/build/ba_data/audio/splatter.ogg": "https://files.ballistica.net/cache/ba1/7d/76/d618e767b8fcbcf2bc580dd1adfe",
- "assets/build/ba_data/audio/sportsMusic.ogg": "https://files.ballistica.net/cache/ba1/02/f8/d3f1434bf653f88fd920d6774c43",
- "assets/build/ba_data/audio/stickyImpact.ogg": "https://files.ballistica.net/cache/ba1/ec/44/1b9bcba22df23cc7dc736d1d3b2f",
- "assets/build/ba_data/audio/superPunch.ogg": "https://files.ballistica.net/cache/ba1/e1/8c/a2979adfd1b51ef1da4b58235c97",
- "assets/build/ba_data/audio/superhero1.ogg": "https://files.ballistica.net/cache/ba1/e3/0d/54415acadfae8d1b4790463dcfb5",
- "assets/build/ba_data/audio/superhero2.ogg": "https://files.ballistica.net/cache/ba1/bb/a6/8b7316601b6bb83294fc7cf74136",
- "assets/build/ba_data/audio/superhero3.ogg": "https://files.ballistica.net/cache/ba1/42/d9/d7bc93314f767ab604101475b7a1",
- "assets/build/ba_data/audio/superhero4.ogg": "https://files.ballistica.net/cache/ba1/f7/bc/8bf4c41e66b633fa28f209e4ac8a",
- "assets/build/ba_data/audio/superheroDeath.ogg": "https://files.ballistica.net/cache/ba1/8a/6d/1fea903d0460f4b3f178ba24c5de",
- "assets/build/ba_data/audio/superheroFall.ogg": "https://files.ballistica.net/cache/ba1/22/81/e224a17278f2a58eceeb3a1d3b3f",
- "assets/build/ba_data/audio/superheroHit1.ogg": "https://files.ballistica.net/cache/ba1/5c/d9/20f22f430fe9444e7cf078c5082e",
- "assets/build/ba_data/audio/superheroHit2.ogg": "https://files.ballistica.net/cache/ba1/df/59/6d6f8483c7f5f22dcbca39125b21",
- "assets/build/ba_data/audio/survivalMusic.ogg": "https://files.ballistica.net/cache/ba1/35/3c/5fc2ecff786a077f569fc7e39da9",
- "assets/build/ba_data/audio/swip.ogg": "https://files.ballistica.net/cache/ba1/7a/e0/08ceb1586b91b8aa09de82d76261",
- "assets/build/ba_data/audio/swip2.ogg": "https://files.ballistica.net/cache/ba1/df/77/2e11ee9aa15c8b9215b0124355cf",
- "assets/build/ba_data/audio/swish.ogg": "https://files.ballistica.net/cache/ba1/45/6a/ca1b53f09837fabf68c78d02dd2c",
- "assets/build/ba_data/audio/swish2.ogg": "https://files.ballistica.net/cache/ba1/b9/ef/b00976fcffe448e5384885e8529e",
- "assets/build/ba_data/audio/swish3.ogg": "https://files.ballistica.net/cache/ba1/ae/6e/390d9c196a332d01c34e9ceb27f5",
- "assets/build/ba_data/audio/tap.ogg": "https://files.ballistica.net/cache/ba1/8c/41/63028ed2c80564fc6756f6bfaf5b",
- "assets/build/ba_data/audio/technoHit01.ogg": "https://files.ballistica.net/cache/ba1/df/4a/4c033e4fd1472ac372641d6a1ca9",
- "assets/build/ba_data/audio/tick.ogg": "https://files.ballistica.net/cache/ba1/13/ae/1bb44725b0f28ebb3c2cd751c199",
- "assets/build/ba_data/audio/ticking.ogg": "https://files.ballistica.net/cache/ba1/a9/95/d885f55213c28fec6f7da8e38246",
- "assets/build/ba_data/audio/tickingCrazy.ogg": "https://files.ballistica.net/cache/ba1/53/04/a907b8570ca0414b77f2a10473f3",
- "assets/build/ba_data/audio/toTheDeathMusic.ogg": "https://files.ballistica.net/cache/ba1/79/f0/ebad2fc308ed5393500a7fb03e2d",
- "assets/build/ba_data/audio/trashRummage.ogg": "https://files.ballistica.net/cache/ba1/77/b7/30d5cbbea547d7db43517fc563b7",
- "assets/build/ba_data/audio/victoryMusic.ogg": "https://files.ballistica.net/cache/ba1/96/e0/1e8ef79d38a1f7aca130f1c04469",
- "assets/build/ba_data/audio/warnBeep.ogg": "https://files.ballistica.net/cache/ba1/3d/5c/15bff8f468db14561499455bc891",
- "assets/build/ba_data/audio/warnBeeps.ogg": "https://files.ballistica.net/cache/ba1/c8/56/73be47b712e1dbe33137dfcf6c1c",
- "assets/build/ba_data/audio/warrior1.ogg": "https://files.ballistica.net/cache/ba1/db/df/7f9eb1bf1cc27cc40993b1b7b5fa",
- "assets/build/ba_data/audio/warrior2.ogg": "https://files.ballistica.net/cache/ba1/2d/c8/968076b4c2186257f5c58d7d5bda",
- "assets/build/ba_data/audio/warrior3.ogg": "https://files.ballistica.net/cache/ba1/a6/e0/b0ed3930b0a2a028bd26c11450d0",
- "assets/build/ba_data/audio/warrior4.ogg": "https://files.ballistica.net/cache/ba1/0e/f0/2f2a8b1a41eb5aff16db531864bb",
- "assets/build/ba_data/audio/warriorDeath.ogg": "https://files.ballistica.net/cache/ba1/40/a3/0db941201c506075a12228d5a8e1",
- "assets/build/ba_data/audio/warriorFall.ogg": "https://files.ballistica.net/cache/ba1/05/d2/a8cb6d4115d3f480903910adc680",
- "assets/build/ba_data/audio/warriorHit1.ogg": "https://files.ballistica.net/cache/ba1/cc/48/6935ef51265aedef3e213e910eaa",
- "assets/build/ba_data/audio/warriorHit2.ogg": "https://files.ballistica.net/cache/ba1/7a/7e/c270fa3a6882d355251ce8c926ea",
- "assets/build/ba_data/audio/whenJohnnyComesMarchingHomeMusic.ogg": "https://files.ballistica.net/cache/ba1/ac/c9/5a0ba4418814a5caa9a47ccac9d0",
- "assets/build/ba_data/audio/witch1.ogg": "https://files.ballistica.net/cache/ba1/1b/d2/6db47a0d11534cb7d5e9b8320794",
- "assets/build/ba_data/audio/witch2.ogg": "https://files.ballistica.net/cache/ba1/9b/79/6034146ad3cc912302abe78b4371",
- "assets/build/ba_data/audio/witch3.ogg": "https://files.ballistica.net/cache/ba1/f7/8b/418d86a472ce1fa685ba9847f6a4",
- "assets/build/ba_data/audio/witch4.ogg": "https://files.ballistica.net/cache/ba1/5f/62/df67b6772a7aef8edfc367f15fe3",
- "assets/build/ba_data/audio/witchDeath.ogg": "https://files.ballistica.net/cache/ba1/36/14/7af6e8485ecabf57dcda395ddbf2",
- "assets/build/ba_data/audio/witchFall.ogg": "https://files.ballistica.net/cache/ba1/40/6a/bddc1d1f3935fcdfcef4a064faa9",
- "assets/build/ba_data/audio/witchHit1.ogg": "https://files.ballistica.net/cache/ba1/30/5a/ed8101985e1e987eab90629e4d6a",
- "assets/build/ba_data/audio/witchHit2.ogg": "https://files.ballistica.net/cache/ba1/fc/fc/6b3ed7921be84d76fe0deacb6cdb",
- "assets/build/ba_data/audio/wizard1.ogg": "https://files.ballistica.net/cache/ba1/2c/12/bfa9d5db2a799bc02dff1ef068fe",
- "assets/build/ba_data/audio/wizard2.ogg": "https://files.ballistica.net/cache/ba1/75/b9/d5ec6f52e94e569ffdf6e6b38e08",
- "assets/build/ba_data/audio/wizard3.ogg": "https://files.ballistica.net/cache/ba1/7f/f1/11592608b05d3eef1347dbb53d07",
- "assets/build/ba_data/audio/wizard4.ogg": "https://files.ballistica.net/cache/ba1/2d/ae/d3c6056b1ca097619bc55ac79607",
- "assets/build/ba_data/audio/wizardDeath.ogg": "https://files.ballistica.net/cache/ba1/4c/d9/c2b7ad85939e0986855b6a857be0",
- "assets/build/ba_data/audio/wizardFall.ogg": "https://files.ballistica.net/cache/ba1/c8/3d/91d3d440b0ca83ffbcef1f28689c",
- "assets/build/ba_data/audio/wizardHit1.ogg": "https://files.ballistica.net/cache/ba1/74/7e/8a594f1f6d1a47257a7b734ba440",
- "assets/build/ba_data/audio/wizardHit2.ogg": "https://files.ballistica.net/cache/ba1/b3/97/1aab96de9b8d842574b1c186ff06",
- "assets/build/ba_data/audio/woodDebrisFall.ogg": "https://files.ballistica.net/cache/ba1/f3/73/e3bfc6cff633e14093cd89b45d33",
- "assets/build/ba_data/audio/wrestler1.ogg": "https://files.ballistica.net/cache/ba1/68/fb/c7141f71dbcc9ebc08f23a24f4a9",
- "assets/build/ba_data/audio/wrestler2.ogg": "https://files.ballistica.net/cache/ba1/85/a1/23a175959feadbfdc832659b2c44",
- "assets/build/ba_data/audio/wrestler3.ogg": "https://files.ballistica.net/cache/ba1/62/0b/16587195c064b18037d6272834be",
- "assets/build/ba_data/audio/wrestler4.ogg": "https://files.ballistica.net/cache/ba1/43/c3/28aaa38b495b258a775148af40d2",
- "assets/build/ba_data/audio/wrestlerDeath.ogg": "https://files.ballistica.net/cache/ba1/99/72/681647b09f104a0a40255eae6feb",
- "assets/build/ba_data/audio/wrestlerFall.ogg": "https://files.ballistica.net/cache/ba1/e5/c0/b240ea81feaa504d3debeef5a147",
- "assets/build/ba_data/audio/wrestlerHit1.ogg": "https://files.ballistica.net/cache/ba1/78/ad/27df728f70f997daa9e26ec18c4e",
- "assets/build/ba_data/audio/wrestlerHit2.ogg": "https://files.ballistica.net/cache/ba1/f2/a7/764eb08d8f39560eeccda353e83b",
- "assets/build/ba_data/audio/zoeAttack01.ogg": "https://files.ballistica.net/cache/ba1/6c/57/016cdc4c6534fe7ac0601332f37e",
- "assets/build/ba_data/audio/zoeAttack02.ogg": "https://files.ballistica.net/cache/ba1/3d/e6/57c3dde3a513a27325bfd34eecfe",
- "assets/build/ba_data/audio/zoeAttack03.ogg": "https://files.ballistica.net/cache/ba1/76/32/0a9b828efa1e9287ff225cd9ebaa",
- "assets/build/ba_data/audio/zoeAttack04.ogg": "https://files.ballistica.net/cache/ba1/64/db/ea0e20e3eec0752e982690c7826c",
- "assets/build/ba_data/audio/zoeDeath01.ogg": "https://files.ballistica.net/cache/ba1/9f/4f/dca392455b590936f058a3b692f2",
- "assets/build/ba_data/audio/zoeEff.ogg": "https://files.ballistica.net/cache/ba1/27/bb/bf9e6386f7c4b8ece66c721f5ed2",
- "assets/build/ba_data/audio/zoeFall01.ogg": "https://files.ballistica.net/cache/ba1/1b/bb/9caedbe0930474211bff8233260c",
- "assets/build/ba_data/audio/zoeImpact01.ogg": "https://files.ballistica.net/cache/ba1/e3/81/a298aed9fbd7db298fb3ca725028",
- "assets/build/ba_data/audio/zoeImpact02.ogg": "https://files.ballistica.net/cache/ba1/80/f3/169fb5885effaa0ab5e7aa6adab4",
- "assets/build/ba_data/audio/zoeImpact03.ogg": "https://files.ballistica.net/cache/ba1/43/f7/12189e43b708816f0e647ec72007",
- "assets/build/ba_data/audio/zoeImpact04.ogg": "https://files.ballistica.net/cache/ba1/ad/97/23e6e397cd7680019318023387a8",
- "assets/build/ba_data/audio/zoeJump01.ogg": "https://files.ballistica.net/cache/ba1/cd/f5/245e4a4c4cac4dbbca5ace752119",
- "assets/build/ba_data/audio/zoeJump02.ogg": "https://files.ballistica.net/cache/ba1/60/5c/7402aeecf36b94efe84b04e2281d",
- "assets/build/ba_data/audio/zoeJump03.ogg": "https://files.ballistica.net/cache/ba1/64/6a/7cce785b82977a1b7135d93c5204",
- "assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/41/a0/d7edfdeada25eb8310de177ab7f5",
- "assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/15/ba/7db3f4534699517b8bff3ffae4b6",
- "assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/6d/de/d973377a4f5f975470f958119b0b",
- "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/57/ae/9ea5a3e00bdf3a3caf76e67a577c",
+ "assets/build/ba_data/audio/achievement.ogg": "https://files.ballistica.net/cache/ba1/d2/9f/8ba4d5c258e9841dde0235d794b5",
+ "assets/build/ba_data/audio/actionHero1.ogg": "https://files.ballistica.net/cache/ba1/a9/8e/717d49c51bba6b32d3d09f0d0f2b",
+ "assets/build/ba_data/audio/actionHero2.ogg": "https://files.ballistica.net/cache/ba1/ab/c7/70d6c42e89e584e29d8e6f70638e",
+ "assets/build/ba_data/audio/actionHero3.ogg": "https://files.ballistica.net/cache/ba1/27/d5/f549caba1da9969e7f2c15fc042e",
+ "assets/build/ba_data/audio/actionHero4.ogg": "https://files.ballistica.net/cache/ba1/8e/46/24e5ea7c5d80d4f95c487996a601",
+ "assets/build/ba_data/audio/actionHeroDeath.ogg": "https://files.ballistica.net/cache/ba1/a6/4a/6ed4571f79bd42dd2a97df6a6aaa",
+ "assets/build/ba_data/audio/actionHeroFall.ogg": "https://files.ballistica.net/cache/ba1/48/19/7e6743d5e4c68b74445fc1462c6c",
+ "assets/build/ba_data/audio/actionHeroHit1.ogg": "https://files.ballistica.net/cache/ba1/3c/45/ef2b2e8e033960fdc2ebc6378cb7",
+ "assets/build/ba_data/audio/actionHeroHit2.ogg": "https://files.ballistica.net/cache/ba1/8d/ff/27b2227b0b416005cf1ad0640316",
+ "assets/build/ba_data/audio/activateBeep.ogg": "https://files.ballistica.net/cache/ba1/e3/7c/53bc57c5c7f57bb35d22bb7f696a",
+ "assets/build/ba_data/audio/agent1.ogg": "https://files.ballistica.net/cache/ba1/52/9e/f41b7d3434bb99f711fef71ba8c6",
+ "assets/build/ba_data/audio/agent2.ogg": "https://files.ballistica.net/cache/ba1/3f/df/8ad978342caf7d4888d548a25acb",
+ "assets/build/ba_data/audio/agent3.ogg": "https://files.ballistica.net/cache/ba1/82/ef/00a7f193a6b884926d2fe1e3c1ed",
+ "assets/build/ba_data/audio/agent4.ogg": "https://files.ballistica.net/cache/ba1/e5/69/f39dcf5457f635e2253152c71939",
+ "assets/build/ba_data/audio/agentDeath.ogg": "https://files.ballistica.net/cache/ba1/20/36/ea6eab558ed786afadec5ccc5313",
+ "assets/build/ba_data/audio/agentFall.ogg": "https://files.ballistica.net/cache/ba1/ba/40/7584e852d068e68120d0d9174886",
+ "assets/build/ba_data/audio/agentHit1.ogg": "https://files.ballistica.net/cache/ba1/69/90/bcf822ca886392162aa22f4dde91",
+ "assets/build/ba_data/audio/agentHit2.ogg": "https://files.ballistica.net/cache/ba1/fa/81/17dd543d7f279158f808350403a3",
+ "assets/build/ba_data/audio/alarm.ogg": "https://files.ballistica.net/cache/ba1/1f/9f/a85fbb506297c6bff299cfca7220",
+ "assets/build/ba_data/audio/ali1.ogg": "https://files.ballistica.net/cache/ba1/3f/01/449837b714e5b8f7432eaa608fda",
+ "assets/build/ba_data/audio/ali2.ogg": "https://files.ballistica.net/cache/ba1/69/ef/064006961b26d1364f5f12174de8",
+ "assets/build/ba_data/audio/ali3.ogg": "https://files.ballistica.net/cache/ba1/08/0d/a124f81887ff8a7b8165cbf37af8",
+ "assets/build/ba_data/audio/ali4.ogg": "https://files.ballistica.net/cache/ba1/4f/9f/af5ee5de7d7616e2a095464b3410",
+ "assets/build/ba_data/audio/aliDeath.ogg": "https://files.ballistica.net/cache/ba1/c9/97/d67f9f9958569253ded3cc9f680c",
+ "assets/build/ba_data/audio/aliFall.ogg": "https://files.ballistica.net/cache/ba1/cc/09/af7da183c4fbebb066e0ab7dff0f",
+ "assets/build/ba_data/audio/aliHit1.ogg": "https://files.ballistica.net/cache/ba1/38/bf/f2e585574d65b8e9296655854c29",
+ "assets/build/ba_data/audio/aliHit2.ogg": "https://files.ballistica.net/cache/ba1/90/17/d1b1bf6c5430ef90fac3412d670a",
+ "assets/build/ba_data/audio/alien1.ogg": "https://files.ballistica.net/cache/ba1/d6/84/a7e374fe5e96b4c3b8d570b9887b",
+ "assets/build/ba_data/audio/alien2.ogg": "https://files.ballistica.net/cache/ba1/bd/4e/8ff64e144bd1b1bf8235950b8c0b",
+ "assets/build/ba_data/audio/alien3.ogg": "https://files.ballistica.net/cache/ba1/f5/e1/3f028e12a15b4acfbf7103785243",
+ "assets/build/ba_data/audio/alien4.ogg": "https://files.ballistica.net/cache/ba1/ef/a3/26359db5c116a8ebd4a34e15b3fb",
+ "assets/build/ba_data/audio/alienDeath.ogg": "https://files.ballistica.net/cache/ba1/ef/e3/cb997c5fc3f053f4255c0f416ba9",
+ "assets/build/ba_data/audio/alienFall.ogg": "https://files.ballistica.net/cache/ba1/1b/ca/ed192f6dcb92330e71c93ba196b6",
+ "assets/build/ba_data/audio/alienHit1.ogg": "https://files.ballistica.net/cache/ba1/d3/07/7d7402fa5d072829e2172b413d20",
+ "assets/build/ba_data/audio/alienHit2.ogg": "https://files.ballistica.net/cache/ba1/82/98/5f941cf1bb05e5bcbc7608c587ac",
+ "assets/build/ba_data/audio/announceEight.ogg": "https://files.ballistica.net/cache/ba1/a2/e0/a61ebd8009032c3dfcd7c68a40d9",
+ "assets/build/ba_data/audio/announceFive.ogg": "https://files.ballistica.net/cache/ba1/a7/9a/1886861099d6daca53e9fca3f572",
+ "assets/build/ba_data/audio/announceFour.ogg": "https://files.ballistica.net/cache/ba1/48/16/ace4874f8babda31cecf3ff59460",
+ "assets/build/ba_data/audio/announceNine.ogg": "https://files.ballistica.net/cache/ba1/4f/c2/66ae23dea5ad0dce1e3a4e028da3",
+ "assets/build/ba_data/audio/announceOne.ogg": "https://files.ballistica.net/cache/ba1/21/89/e0953e2951346753f5b049c3878d",
+ "assets/build/ba_data/audio/announceSeven.ogg": "https://files.ballistica.net/cache/ba1/cf/cf/9c26d68440bd704945cf83a42e3f",
+ "assets/build/ba_data/audio/announceSix.ogg": "https://files.ballistica.net/cache/ba1/98/a4/ab780d080a902cef3e261770670e",
+ "assets/build/ba_data/audio/announceTen.ogg": "https://files.ballistica.net/cache/ba1/df/cb/d68c7897013a1d9e03a46e20593f",
+ "assets/build/ba_data/audio/announceThree.ogg": "https://files.ballistica.net/cache/ba1/d3/21/e9b72b1b217bee2a83ebf3de802e",
+ "assets/build/ba_data/audio/announceTwo.ogg": "https://files.ballistica.net/cache/ba1/90/d4/baa71dc6c16de135266de4417ad8",
+ "assets/build/ba_data/audio/assassin1.ogg": "https://files.ballistica.net/cache/ba1/78/c1/9f7e31c9d5fd20a1a0e58946721e",
+ "assets/build/ba_data/audio/assassin2.ogg": "https://files.ballistica.net/cache/ba1/1d/6b/dd593f245bc766f67801c07c800b",
+ "assets/build/ba_data/audio/assassin3.ogg": "https://files.ballistica.net/cache/ba1/a9/86/90ced874739d1320608fe33f696c",
+ "assets/build/ba_data/audio/assassin4.ogg": "https://files.ballistica.net/cache/ba1/84/8e/4709c67341da6877f7531d87e990",
+ "assets/build/ba_data/audio/assassinDeath.ogg": "https://files.ballistica.net/cache/ba1/31/ee/dbaeb702cb04575b8262b4a01dcc",
+ "assets/build/ba_data/audio/assassinFall.ogg": "https://files.ballistica.net/cache/ba1/49/c1/316397d0c26f5fc423bbbbd27ff0",
+ "assets/build/ba_data/audio/assassinHit1.ogg": "https://files.ballistica.net/cache/ba1/27/ff/1a300e244dde1a9087df88c39bb2",
+ "assets/build/ba_data/audio/assassinHit2.ogg": "https://files.ballistica.net/cache/ba1/49/f6/4d49e96bb9fbdbabca92a5d84921",
+ "assets/build/ba_data/audio/bear1.ogg": "https://files.ballistica.net/cache/ba1/08/da/68f8e152d186ac93c35e356d22bd",
+ "assets/build/ba_data/audio/bear2.ogg": "https://files.ballistica.net/cache/ba1/6b/8d/edc1543e80e290aa670bf7474885",
+ "assets/build/ba_data/audio/bear3.ogg": "https://files.ballistica.net/cache/ba1/34/6d/09656673977df46e96062cba9b8a",
+ "assets/build/ba_data/audio/bear4.ogg": "https://files.ballistica.net/cache/ba1/18/b6/3d7d28a8b25af86b33aa92f02a78",
+ "assets/build/ba_data/audio/bearDeath.ogg": "https://files.ballistica.net/cache/ba1/d6/4d/42a0a7f23b207095ca6d2e3fb415",
+ "assets/build/ba_data/audio/bearFall.ogg": "https://files.ballistica.net/cache/ba1/0a/f9/48efaf15321f5ab04353dbcefe3a",
+ "assets/build/ba_data/audio/bearHit1.ogg": "https://files.ballistica.net/cache/ba1/dc/dd/a59124d4ee4f068ce87dfad96a63",
+ "assets/build/ba_data/audio/bearHit2.ogg": "https://files.ballistica.net/cache/ba1/ef/c7/2fc7cbdcf4625b7015e050958eeb",
+ "assets/build/ba_data/audio/bellHigh.ogg": "https://files.ballistica.net/cache/ba1/4a/e2/1842c6aa68a0fc8db5713eb1f4d1",
+ "assets/build/ba_data/audio/bellLow.ogg": "https://files.ballistica.net/cache/ba1/70/a5/27615f255641f9bf97ba02ee610f",
+ "assets/build/ba_data/audio/bellMed.ogg": "https://files.ballistica.net/cache/ba1/b9/93/5a847d9d8476f64fa6e3a54e49e3",
+ "assets/build/ba_data/audio/bigImpact.ogg": "https://files.ballistica.net/cache/ba1/9e/6d/d386b11c201c6942eff44b2f902b",
+ "assets/build/ba_data/audio/bigImpact2.ogg": "https://files.ballistica.net/cache/ba1/ca/d7/7b1a99160176f4f984b40dc88c5c",
+ "assets/build/ba_data/audio/blank.ogg": "https://files.ballistica.net/cache/ba1/a4/bb/d564bc6b2bbce15e9413835faee3",
+ "assets/build/ba_data/audio/blip.ogg": "https://files.ballistica.net/cache/ba1/25/05/bc35e1834a8d3b6fb098b70ad559",
+ "assets/build/ba_data/audio/block.ogg": "https://files.ballistica.net/cache/ba1/1c/7d/aa6d3454431c5a6a1c9d44ee3dda",
+ "assets/build/ba_data/audio/bombDrop01.ogg": "https://files.ballistica.net/cache/ba1/10/2f/0ec5e8335e1c522d77a877808d4d",
+ "assets/build/ba_data/audio/bombDrop02.ogg": "https://files.ballistica.net/cache/ba1/82/d8/c5879ccf65062410d30e388ed550",
+ "assets/build/ba_data/audio/bombRoll01.ogg": "https://files.ballistica.net/cache/ba1/d2/92/526900582d9d19fa730d0f23f31d",
+ "assets/build/ba_data/audio/bones1.ogg": "https://files.ballistica.net/cache/ba1/c7/fd/3654fc5875828592aa2240c1a5c4",
+ "assets/build/ba_data/audio/bones2.ogg": "https://files.ballistica.net/cache/ba1/c0/bc/e2f489ed7fa5b8f29f4214f92a9b",
+ "assets/build/ba_data/audio/bones3.ogg": "https://files.ballistica.net/cache/ba1/ac/f0/67262750370df9ce2fa0ce6cf084",
+ "assets/build/ba_data/audio/bonesDeath.ogg": "https://files.ballistica.net/cache/ba1/19/3c/31d70812dc519d32b124602424e0",
+ "assets/build/ba_data/audio/bonesFall.ogg": "https://files.ballistica.net/cache/ba1/85/a7/a2231b604aa73e4f72ba93a709aa",
+ "assets/build/ba_data/audio/boo.ogg": "https://files.ballistica.net/cache/ba1/4f/61/810cac6c4dc04ce0e484b5f0ee95",
+ "assets/build/ba_data/audio/boxDrop.ogg": "https://files.ballistica.net/cache/ba1/88/73/727941acfef7a14f8448bb50c51f",
+ "assets/build/ba_data/audio/boxingBell.ogg": "https://files.ballistica.net/cache/ba1/a9/66/ae2645c9fd64011dde6f96c9b3ad",
+ "assets/build/ba_data/audio/bunny1.ogg": "https://files.ballistica.net/cache/ba1/20/a8/7fe62f74802a4a4fd13385440d0c",
+ "assets/build/ba_data/audio/bunny2.ogg": "https://files.ballistica.net/cache/ba1/0f/ea/af1163da28dd803799460d0cf75e",
+ "assets/build/ba_data/audio/bunny3.ogg": "https://files.ballistica.net/cache/ba1/f4/a6/c5bc1fe3b25108635025290b9c41",
+ "assets/build/ba_data/audio/bunny4.ogg": "https://files.ballistica.net/cache/ba1/00/4f/77facdcc2b2ba8fbf1a20cf3b273",
+ "assets/build/ba_data/audio/bunnyDeath.ogg": "https://files.ballistica.net/cache/ba1/d7/40/07e61c803b187abd0715c0e226de",
+ "assets/build/ba_data/audio/bunnyFall.ogg": "https://files.ballistica.net/cache/ba1/c9/c1/c15c0e6c8dfde62315a8c5314d30",
+ "assets/build/ba_data/audio/bunnyHit1.ogg": "https://files.ballistica.net/cache/ba1/4a/7f/903703552b19e71693ec041037ac",
+ "assets/build/ba_data/audio/bunnyHit2.ogg": "https://files.ballistica.net/cache/ba1/d0/31/cb5fd87a73ce47b9c79f87e163ab",
+ "assets/build/ba_data/audio/bunnyJump.ogg": "https://files.ballistica.net/cache/ba1/13/04/e46e6c1d7644606885e4b43800b2",
+ "assets/build/ba_data/audio/cashRegister.ogg": "https://files.ballistica.net/cache/ba1/8e/9f/8e03065e97edeaa59703120a0ed4",
+ "assets/build/ba_data/audio/cashRegister2.ogg": "https://files.ballistica.net/cache/ba1/2b/17/39e8e9bda873e09db8ab599ebd70",
+ "assets/build/ba_data/audio/charSelectMusic.ogg": "https://files.ballistica.net/cache/ba1/a5/e5/deae67f63b9be8eca28169908ce3",
+ "assets/build/ba_data/audio/cheer.ogg": "https://files.ballistica.net/cache/ba1/87/5b/7982e82c6a09d2e6f351ef665288",
+ "assets/build/ba_data/audio/click01.ogg": "https://files.ballistica.net/cache/ba1/06/2a/e91c1eb70b729731a825647cbbfb",
+ "assets/build/ba_data/audio/corkPop.ogg": "https://files.ballistica.net/cache/ba1/33/5f/58da365edf74e1b981b59891ddb4",
+ "assets/build/ba_data/audio/cowboy1.ogg": "https://files.ballistica.net/cache/ba1/a7/05/680daba00b737cb918eec632dbfe",
+ "assets/build/ba_data/audio/cowboy2.ogg": "https://files.ballistica.net/cache/ba1/2b/67/15711076f135fa638bd072a4b487",
+ "assets/build/ba_data/audio/cowboy3.ogg": "https://files.ballistica.net/cache/ba1/4b/0f/46de2edd7a264fba3a8973c078ca",
+ "assets/build/ba_data/audio/cowboy4.ogg": "https://files.ballistica.net/cache/ba1/1e/78/f8b4d4d9fd1bdcce9b79fa6f3d0c",
+ "assets/build/ba_data/audio/cowboyDeath.ogg": "https://files.ballistica.net/cache/ba1/05/1a/afae164d0e81babbacaa0eed27ea",
+ "assets/build/ba_data/audio/cowboyFall.ogg": "https://files.ballistica.net/cache/ba1/57/2f/a9c6adbe96fa94ab840be5373a44",
+ "assets/build/ba_data/audio/cowboyHit1.ogg": "https://files.ballistica.net/cache/ba1/9e/f7/4dadf69fb9e04a08871c5967a05c",
+ "assets/build/ba_data/audio/cowboyHit2.ogg": "https://files.ballistica.net/cache/ba1/d9/3c/4a4507cf25a5bf2f6fad76e6a9e1",
+ "assets/build/ba_data/audio/crowdChant.ogg": "https://files.ballistica.net/cache/ba1/36/db/f4432f85f19cce87dc8a62ba497d",
+ "assets/build/ba_data/audio/cyborg1.ogg": "https://files.ballistica.net/cache/ba1/6c/62/33a5b99062293b0a38cdf484bc58",
+ "assets/build/ba_data/audio/cyborg2.ogg": "https://files.ballistica.net/cache/ba1/b7/a3/032be02fca5b2b06e3f7d6500640",
+ "assets/build/ba_data/audio/cyborg3.ogg": "https://files.ballistica.net/cache/ba1/c3/82/1e7949473dbbdaa9688f11ad282a",
+ "assets/build/ba_data/audio/cyborg4.ogg": "https://files.ballistica.net/cache/ba1/7c/d6/2461bd28a2c40be389f3f5c5b517",
+ "assets/build/ba_data/audio/cyborgDeath.ogg": "https://files.ballistica.net/cache/ba1/d8/47/3376feef35a36db9c31da212a911",
+ "assets/build/ba_data/audio/cyborgFall.ogg": "https://files.ballistica.net/cache/ba1/2c/87/4c812fe231fcd3b77a1b63b5ae8d",
+ "assets/build/ba_data/audio/cyborgHit1.ogg": "https://files.ballistica.net/cache/ba1/e0/7f/65f0ceab26d2ec41901a7dba3367",
+ "assets/build/ba_data/audio/cyborgHit2.ogg": "https://files.ballistica.net/cache/ba1/92/8e/2735ab2817ab899c810faa3f4214",
+ "assets/build/ba_data/audio/cymbal.ogg": "https://files.ballistica.net/cache/ba1/47/bb/89f7104e8b1b58844f2b7bbea5c8",
+ "assets/build/ba_data/audio/debrisFall.ogg": "https://files.ballistica.net/cache/ba1/59/f8/793797d16965601403fbd76d7122",
+ "assets/build/ba_data/audio/deek.ogg": "https://files.ballistica.net/cache/ba1/4f/5d/2b8d74c023bd92db32a9b6abf27e",
+ "assets/build/ba_data/audio/deek2.ogg": "https://files.ballistica.net/cache/ba1/31/3e/ecc2351f4097de01b4ef19d8e4a1",
+ "assets/build/ba_data/audio/ding.ogg": "https://files.ballistica.net/cache/ba1/9f/4f/0246b0dc02d11a47a866006d364b",
+ "assets/build/ba_data/audio/dingSmall.ogg": "https://files.ballistica.net/cache/ba1/a8/f3/02a413d75105c4e789d6c62d983f",
+ "assets/build/ba_data/audio/dingSmallHigh.ogg": "https://files.ballistica.net/cache/ba1/f8/f8/fb3490eda7ca3daaff63e0415830",
+ "assets/build/ba_data/audio/dripity.ogg": "https://files.ballistica.net/cache/ba1/a1/33/f9189cdf3088e37b7af0f2da9f6c",
+ "assets/build/ba_data/audio/drumRoll.ogg": "https://files.ballistica.net/cache/ba1/e8/13/086773cd523943940cf3de806497",
+ "assets/build/ba_data/audio/error.ogg": "https://files.ballistica.net/cache/ba1/b4/ad/9dfe09980f2d6c21af2e40e3ca87",
+ "assets/build/ba_data/audio/explosion01.ogg": "https://files.ballistica.net/cache/ba1/2f/d9/97b803aa445fee5282f3a8bcdd5a",
+ "assets/build/ba_data/audio/explosion02.ogg": "https://files.ballistica.net/cache/ba1/87/88/996566f228d9473956c8c2575003",
+ "assets/build/ba_data/audio/explosion03.ogg": "https://files.ballistica.net/cache/ba1/0c/d8/68d1776fedbb89620f9d7615f634",
+ "assets/build/ba_data/audio/explosion04.ogg": "https://files.ballistica.net/cache/ba1/89/c5/70e32b94138e11275ea222882840",
+ "assets/build/ba_data/audio/explosion05.ogg": "https://files.ballistica.net/cache/ba1/01/08/43231dbc2c3630da84c446c3b57e",
+ "assets/build/ba_data/audio/fanfare.ogg": "https://files.ballistica.net/cache/ba1/16/d0/8b7d5c981390d0b71eac730a810d",
+ "assets/build/ba_data/audio/flagCatcherMusic.ogg": "https://files.ballistica.net/cache/ba1/86/e7/0e647b76c4d28b788fd80e0e2546",
+ "assets/build/ba_data/audio/flyingMusic.ogg": "https://files.ballistica.net/cache/ba1/95/cd/61d54bc3e331f0b2ec4a7dd55e37",
+ "assets/build/ba_data/audio/foghorn.ogg": "https://files.ballistica.net/cache/ba1/17/6b/58c0f2aae49f9e3dcb845a3d45f4",
+ "assets/build/ba_data/audio/footImpact01.ogg": "https://files.ballistica.net/cache/ba1/21/23/41148f46251d9fe740a9f6975bb7",
+ "assets/build/ba_data/audio/footImpact02.ogg": "https://files.ballistica.net/cache/ba1/15/0a/1bc32d46e2c5564d423c4eef2594",
+ "assets/build/ba_data/audio/footImpact03.ogg": "https://files.ballistica.net/cache/ba1/13/da/5fc81a71dfd3cf9570d5a31289e1",
+ "assets/build/ba_data/audio/forwardMarchMusic.ogg": "https://files.ballistica.net/cache/ba1/35/04/e6f29d4167b0cffed6cd95b4edaa",
+ "assets/build/ba_data/audio/freeze.ogg": "https://files.ballistica.net/cache/ba1/7c/63/c7ffc0a3748acfe48d15299433b2",
+ "assets/build/ba_data/audio/frosty01.ogg": "https://files.ballistica.net/cache/ba1/ca/f3/fbb572d011011773ef9e2cb8d517",
+ "assets/build/ba_data/audio/frosty02.ogg": "https://files.ballistica.net/cache/ba1/62/b0/31dd9e9adb86006e7cc22bcc43d5",
+ "assets/build/ba_data/audio/frosty03.ogg": "https://files.ballistica.net/cache/ba1/6d/81/bdad0ab14f5d08e4eec07b448820",
+ "assets/build/ba_data/audio/frosty04.ogg": "https://files.ballistica.net/cache/ba1/62/8a/b24b5b34ee4353a48f7a80e7d526",
+ "assets/build/ba_data/audio/frosty05.ogg": "https://files.ballistica.net/cache/ba1/e2/d8/fb46e471d4c18269e2b463d8a4d9",
+ "assets/build/ba_data/audio/frostyDeath.ogg": "https://files.ballistica.net/cache/ba1/47/1b/1c646af3b2c17ba3daf7092a2c72",
+ "assets/build/ba_data/audio/frostyFall.ogg": "https://files.ballistica.net/cache/ba1/70/1e/4276253d747e380a2de9ce4514f6",
+ "assets/build/ba_data/audio/frostyHit01.ogg": "https://files.ballistica.net/cache/ba1/2a/f6/6e2df24f49af739fedb1f7f65a6e",
+ "assets/build/ba_data/audio/frostyHit02.ogg": "https://files.ballistica.net/cache/ba1/ac/26/ef3f46f8ed9d65225c32468d71c3",
+ "assets/build/ba_data/audio/frostyHit03.ogg": "https://files.ballistica.net/cache/ba1/c1/ba/89d48c268110acec203e7f9f6fd9",
+ "assets/build/ba_data/audio/fuse01.ogg": "https://files.ballistica.net/cache/ba1/d9/ea/0e00da95a2f1e611ddb07211ebe5",
+ "assets/build/ba_data/audio/gladiator1.ogg": "https://files.ballistica.net/cache/ba1/d7/39/bd8119eae6558cc58d2024e9fd27",
+ "assets/build/ba_data/audio/gladiator2.ogg": "https://files.ballistica.net/cache/ba1/71/45/f3f027adb94077308cb1cf80e05f",
+ "assets/build/ba_data/audio/gladiator3.ogg": "https://files.ballistica.net/cache/ba1/52/95/231c534a606bd9df2cd94a0261b0",
+ "assets/build/ba_data/audio/gladiator4.ogg": "https://files.ballistica.net/cache/ba1/39/0d/17e8d36c933bc2476ddb45f1f1f8",
+ "assets/build/ba_data/audio/gladiatorDeath.ogg": "https://files.ballistica.net/cache/ba1/54/e8/9489e9cb83a6509258e53140fb3d",
+ "assets/build/ba_data/audio/gladiatorFall.ogg": "https://files.ballistica.net/cache/ba1/a5/17/ba3cdd74be5110fdaa36c9ba9f23",
+ "assets/build/ba_data/audio/gladiatorHit1.ogg": "https://files.ballistica.net/cache/ba1/bf/01/1f7363688b77a9b522c0cfb24d32",
+ "assets/build/ba_data/audio/gladiatorHit2.ogg": "https://files.ballistica.net/cache/ba1/dc/10/88a3664f6d53e0509d2393d88aa1",
+ "assets/build/ba_data/audio/gong.ogg": "https://files.ballistica.net/cache/ba1/4a/93/5f144784791eb6a9556c1608f449",
+ "assets/build/ba_data/audio/grandRompMusic.ogg": "https://files.ballistica.net/cache/ba1/fe/37/2444874e5fa5ca5b2006b1e02d5b",
+ "assets/build/ba_data/audio/gravelSkid.ogg": "https://files.ballistica.net/cache/ba1/69/c3/f342f0728fca01f5815bebc12b5e",
+ "assets/build/ba_data/audio/gunCocking.ogg": "https://files.ballistica.net/cache/ba1/ad/5d/61299a3e7e749b0820b3b14e85f8",
+ "assets/build/ba_data/audio/healthPowerup.ogg": "https://files.ballistica.net/cache/ba1/b7/f8/325609f9aeefc7c7625ee9b6fdc2",
+ "assets/build/ba_data/audio/hiss.ogg": "https://files.ballistica.net/cache/ba1/80/38/767dbf6d2be69784de415bd3242c",
+ "assets/build/ba_data/audio/impactHard.ogg": "https://files.ballistica.net/cache/ba1/da/02/d9eaa62bbb6cd2f945be58079e67",
+ "assets/build/ba_data/audio/impactHard2.ogg": "https://files.ballistica.net/cache/ba1/5f/20/e755ece22d2a9830855a4e1f6070",
+ "assets/build/ba_data/audio/impactHard3.ogg": "https://files.ballistica.net/cache/ba1/fa/96/4ad8be51f4e5be4a7816cac306d5",
+ "assets/build/ba_data/audio/impactMedium.ogg": "https://files.ballistica.net/cache/ba1/71/c2/a515223089fd7869557ff77e8fb3",
+ "assets/build/ba_data/audio/impactMedium2.ogg": "https://files.ballistica.net/cache/ba1/86/69/13a025f692a55fcbfee563ed863b",
+ "assets/build/ba_data/audio/jack01.ogg": "https://files.ballistica.net/cache/ba1/27/12/fcdce5c2534201b15ca4c2380608",
+ "assets/build/ba_data/audio/jack02.ogg": "https://files.ballistica.net/cache/ba1/33/5f/6bb0dffec14c2d3a3c601da23377",
+ "assets/build/ba_data/audio/jack03.ogg": "https://files.ballistica.net/cache/ba1/08/e3/ae5342d0fd19b90d8ae688b45fdd",
+ "assets/build/ba_data/audio/jack04.ogg": "https://files.ballistica.net/cache/ba1/fe/d4/b264d6ada9ada3bfdef372392288",
+ "assets/build/ba_data/audio/jack05.ogg": "https://files.ballistica.net/cache/ba1/a3/5f/45a42149edcad5d9e62a4dd8ad93",
+ "assets/build/ba_data/audio/jack06.ogg": "https://files.ballistica.net/cache/ba1/d0/0f/c7e91e47e838b08770c5de97246b",
+ "assets/build/ba_data/audio/jackDeath01.ogg": "https://files.ballistica.net/cache/ba1/e2/b8/02e58d71ae249544615a67c03296",
+ "assets/build/ba_data/audio/jackFall01.ogg": "https://files.ballistica.net/cache/ba1/2e/13/860f88fa2b8c4b1defa6a5fceb0a",
+ "assets/build/ba_data/audio/jackHit01.ogg": "https://files.ballistica.net/cache/ba1/b9/6b/33fffdd01b8bdccaf86855f2adbf",
+ "assets/build/ba_data/audio/jackHit02.ogg": "https://files.ballistica.net/cache/ba1/94/23/3774cac4aa2b6686744595e7bb5c",
+ "assets/build/ba_data/audio/jackHit03.ogg": "https://files.ballistica.net/cache/ba1/95/58/b37b545f984225c8b9d8c100c1ad",
+ "assets/build/ba_data/audio/jackHit04.ogg": "https://files.ballistica.net/cache/ba1/33/a2/923ee4faf663ffdcb7c4915408d7",
+ "assets/build/ba_data/audio/jackHit05.ogg": "https://files.ballistica.net/cache/ba1/91/bf/8acb25409d688f8868732a98869e",
+ "assets/build/ba_data/audio/jackHit06.ogg": "https://files.ballistica.net/cache/ba1/f1/29/079b85a50ac3227eb7580a3bcca0",
+ "assets/build/ba_data/audio/jackHit07.ogg": "https://files.ballistica.net/cache/ba1/a6/81/39bf1cd3f6829af9b14b20225907",
+ "assets/build/ba_data/audio/jumpsuit1.ogg": "https://files.ballistica.net/cache/ba1/bd/77/58cc735320dd9c8cc42f607d4b5d",
+ "assets/build/ba_data/audio/jumpsuit2.ogg": "https://files.ballistica.net/cache/ba1/e9/b4/a20e16879bd9dbb799a234b765d5",
+ "assets/build/ba_data/audio/jumpsuit3.ogg": "https://files.ballistica.net/cache/ba1/a0/c6/f7fa993a5fd278a78b46e09f9b75",
+ "assets/build/ba_data/audio/jumpsuit4.ogg": "https://files.ballistica.net/cache/ba1/a1/27/4da6a33575dbe88648dfbc8d05d7",
+ "assets/build/ba_data/audio/jumpsuitDeath.ogg": "https://files.ballistica.net/cache/ba1/80/8e/42fe43c6e622b03172ba9189d5f1",
+ "assets/build/ba_data/audio/jumpsuitFall.ogg": "https://files.ballistica.net/cache/ba1/9e/c2/05090792c71d651017d7d4a15850",
+ "assets/build/ba_data/audio/jumpsuitHit1.ogg": "https://files.ballistica.net/cache/ba1/74/14/4266a79b4a1b1f61fdc6a5c65fbe",
+ "assets/build/ba_data/audio/jumpsuitHit2.ogg": "https://files.ballistica.net/cache/ba1/32/1f/8dc55112a2cbba1921b5d6f89ac3",
+ "assets/build/ba_data/audio/kronk1.ogg": "https://files.ballistica.net/cache/ba1/4e/6f/9f55ffe6b9739371a0a810a600e5",
+ "assets/build/ba_data/audio/kronk10.ogg": "https://files.ballistica.net/cache/ba1/47/f8/51bebed376036961c88565c06c14",
+ "assets/build/ba_data/audio/kronk2.ogg": "https://files.ballistica.net/cache/ba1/09/08/a0bec68a4112cf585677afe748a4",
+ "assets/build/ba_data/audio/kronk3.ogg": "https://files.ballistica.net/cache/ba1/8e/c8/2ed9ae22042b9acf0feeec8ae1ef",
+ "assets/build/ba_data/audio/kronk4.ogg": "https://files.ballistica.net/cache/ba1/da/b1/57b26205ef88c824820d74d06453",
+ "assets/build/ba_data/audio/kronk5.ogg": "https://files.ballistica.net/cache/ba1/b2/67/a3d3ff13521f9d580c68d59b45be",
+ "assets/build/ba_data/audio/kronk6.ogg": "https://files.ballistica.net/cache/ba1/f5/43/1411aabd658621b66f85f0c48263",
+ "assets/build/ba_data/audio/kronk7.ogg": "https://files.ballistica.net/cache/ba1/31/3a/8d9c64badd6d6b5370d210348b4d",
+ "assets/build/ba_data/audio/kronk8.ogg": "https://files.ballistica.net/cache/ba1/a3/56/2e62b9e34892645d3229e8953508",
+ "assets/build/ba_data/audio/kronk9.ogg": "https://files.ballistica.net/cache/ba1/65/ef/dd4851e044c2edec0931c58261d1",
+ "assets/build/ba_data/audio/kronkDeath.ogg": "https://files.ballistica.net/cache/ba1/3b/59/8918fbbc563e2053a48708a1c5ca",
+ "assets/build/ba_data/audio/kronkFall.ogg": "https://files.ballistica.net/cache/ba1/04/d9/5c4eb21b88d943b39e2a338c93ca",
+ "assets/build/ba_data/audio/laser.ogg": "https://files.ballistica.net/cache/ba1/85/28/4870efb11aa77d4e628472ce2f62",
+ "assets/build/ba_data/audio/laserReverse.ogg": "https://files.ballistica.net/cache/ba1/98/ca/b1b23e0c21acf47876d677328493",
+ "assets/build/ba_data/audio/mel01.ogg": "https://files.ballistica.net/cache/ba1/2c/8f/36e020affbf23cbfa20dc486291e",
+ "assets/build/ba_data/audio/mel02.ogg": "https://files.ballistica.net/cache/ba1/bd/56/f5d03c1d70bb298f02ace96d0fe4",
+ "assets/build/ba_data/audio/mel03.ogg": "https://files.ballistica.net/cache/ba1/43/d6/92cf472e4fdcc62dd28d24617121",
+ "assets/build/ba_data/audio/mel04.ogg": "https://files.ballistica.net/cache/ba1/6f/4a/c729e3fa4f0bc04b9d0c86454ba0",
+ "assets/build/ba_data/audio/mel05.ogg": "https://files.ballistica.net/cache/ba1/38/d3/3b4b44646fb32c7616bbdb84943c",
+ "assets/build/ba_data/audio/mel06.ogg": "https://files.ballistica.net/cache/ba1/c1/f2/2209937359c488e2eee3ebfb0b74",
+ "assets/build/ba_data/audio/mel07.ogg": "https://files.ballistica.net/cache/ba1/c7/00/88715b50c463ec8f90aa5f5d814a",
+ "assets/build/ba_data/audio/mel08.ogg": "https://files.ballistica.net/cache/ba1/cc/18/51b007d3eda6cd03dd9ae6575161",
+ "assets/build/ba_data/audio/mel09.ogg": "https://files.ballistica.net/cache/ba1/44/aa/1edab3702912292f0ba5d25d6b29",
+ "assets/build/ba_data/audio/mel10.ogg": "https://files.ballistica.net/cache/ba1/1b/7b/2b8e2684f3b9f5eaec906d2c895b",
+ "assets/build/ba_data/audio/melDeath01.ogg": "https://files.ballistica.net/cache/ba1/4a/f8/cf3a2f5394d1a1350ce65574c217",
+ "assets/build/ba_data/audio/melFall01.ogg": "https://files.ballistica.net/cache/ba1/81/30/94cc749ec9b4f6e04d8ae0ff8891",
+ "assets/build/ba_data/audio/menuMusic.ogg": "https://files.ballistica.net/cache/ba1/bd/95/1c1d27c90cedcd3c2c466ba4af05",
+ "assets/build/ba_data/audio/metalHit.ogg": "https://files.ballistica.net/cache/ba1/f7/98/3d81888061e6821438c47987dda1",
+ "assets/build/ba_data/audio/metalSkid.ogg": "https://files.ballistica.net/cache/ba1/17/13/5029f01d8c048a58cfcbed0ddcc4",
+ "assets/build/ba_data/audio/ninjaAttack1.ogg": "https://files.ballistica.net/cache/ba1/2a/18/1f1ad3878d79efe97b408d745881",
+ "assets/build/ba_data/audio/ninjaAttack2.ogg": "https://files.ballistica.net/cache/ba1/b9/4d/3f93af21c7a073f0751e307dd4b0",
+ "assets/build/ba_data/audio/ninjaAttack3.ogg": "https://files.ballistica.net/cache/ba1/13/c3/8251857b304034ef93a9ec668381",
+ "assets/build/ba_data/audio/ninjaAttack4.ogg": "https://files.ballistica.net/cache/ba1/45/39/714130286da1a5edae376c6efd92",
+ "assets/build/ba_data/audio/ninjaAttack5.ogg": "https://files.ballistica.net/cache/ba1/ed/38/2cdcaea2bbbd84bc0fe1cb4f184a",
+ "assets/build/ba_data/audio/ninjaAttack6.ogg": "https://files.ballistica.net/cache/ba1/38/6a/df7417238bd97fc68afdc4a0d1dd",
+ "assets/build/ba_data/audio/ninjaAttack7.ogg": "https://files.ballistica.net/cache/ba1/56/f0/3b82da9e99b259c857bc269f1898",
+ "assets/build/ba_data/audio/ninjaDeath1.ogg": "https://files.ballistica.net/cache/ba1/f9/04/cadcebd5c3729926f2f50370a8e4",
+ "assets/build/ba_data/audio/ninjaFall1.ogg": "https://files.ballistica.net/cache/ba1/38/69/7179a0a5655f810f28b19af5cc1f",
+ "assets/build/ba_data/audio/ninjaHit1.ogg": "https://files.ballistica.net/cache/ba1/3d/5d/8e1fed6e0e40d7743613cdf5ef59",
+ "assets/build/ba_data/audio/ninjaHit2.ogg": "https://files.ballistica.net/cache/ba1/2c/ba/a75741ab5e5de95d7d8e88969a22",
+ "assets/build/ba_data/audio/ninjaHit3.ogg": "https://files.ballistica.net/cache/ba1/bf/5f/7265f22f04e2130c24f2a001d0c2",
+ "assets/build/ba_data/audio/ninjaHit4.ogg": "https://files.ballistica.net/cache/ba1/5f/b0/ede4fa97a9dfa27b2ca1107fee16",
+ "assets/build/ba_data/audio/ninjaHit5.ogg": "https://files.ballistica.net/cache/ba1/f0/00/ec3188103c119c1dc4781f28604b",
+ "assets/build/ba_data/audio/ninjaHit6.ogg": "https://files.ballistica.net/cache/ba1/69/34/e835f781dfa77da25124824d8aac",
+ "assets/build/ba_data/audio/ninjaHit7.ogg": "https://files.ballistica.net/cache/ba1/b0/b1/0934cf37dae8ebf9413cb619c89b",
+ "assets/build/ba_data/audio/ninjaHit8.ogg": "https://files.ballistica.net/cache/ba1/81/ea/c0b6ba9f05499d1254c80eaf56fd",
+ "assets/build/ba_data/audio/oldLady1.ogg": "https://files.ballistica.net/cache/ba1/88/8c/e63c26010c85d164adce3990f30e",
+ "assets/build/ba_data/audio/oldLady2.ogg": "https://files.ballistica.net/cache/ba1/96/af/84fa9302f076b6a6276bc99179e0",
+ "assets/build/ba_data/audio/oldLady3.ogg": "https://files.ballistica.net/cache/ba1/30/50/4d10bb83e747029460f7870e1601",
+ "assets/build/ba_data/audio/oldLady4.ogg": "https://files.ballistica.net/cache/ba1/60/f2/a38d94950cc14ee2fdfb31e00146",
+ "assets/build/ba_data/audio/oldLadyDeath.ogg": "https://files.ballistica.net/cache/ba1/09/2a/bbf7214449d1bbfbfdbac8cb11a9",
+ "assets/build/ba_data/audio/oldLadyFall.ogg": "https://files.ballistica.net/cache/ba1/63/6e/9758dc9487224d80129a17d9be04",
+ "assets/build/ba_data/audio/oldLadyHit1.ogg": "https://files.ballistica.net/cache/ba1/92/8d/c5a9d63b9bb4d72784ccbfb86bdf",
+ "assets/build/ba_data/audio/oldLadyHit2.ogg": "https://files.ballistica.net/cache/ba1/2f/ed/b0dc30ff4fbc5f024aa0cc86e6a2",
+ "assets/build/ba_data/audio/ooh.ogg": "https://files.ballistica.net/cache/ba1/ca/17/6a512761959489dd97cea66f8fb9",
+ "assets/build/ba_data/audio/operaSinger1.ogg": "https://files.ballistica.net/cache/ba1/1f/e6/5cbc1d640d779651abda6ddc2510",
+ "assets/build/ba_data/audio/operaSinger2.ogg": "https://files.ballistica.net/cache/ba1/85/82/b7fce504e3b3ab1e3a90c8ceca2a",
+ "assets/build/ba_data/audio/operaSinger3.ogg": "https://files.ballistica.net/cache/ba1/2c/3d/94c95cfb0ddbd2287aa98ff9ec52",
+ "assets/build/ba_data/audio/operaSinger4.ogg": "https://files.ballistica.net/cache/ba1/4e/ae/b918a8de6d54f072d3cd7f4d0c18",
+ "assets/build/ba_data/audio/operaSingerDeath.ogg": "https://files.ballistica.net/cache/ba1/4b/d5/46061ca14b67460493259045ea43",
+ "assets/build/ba_data/audio/operaSingerFall.ogg": "https://files.ballistica.net/cache/ba1/d8/9a/78d427405b693121c8cf18e789e1",
+ "assets/build/ba_data/audio/operaSingerHit1.ogg": "https://files.ballistica.net/cache/ba1/fb/16/007d8e2c229cbf1861021e0a0023",
+ "assets/build/ba_data/audio/operaSingerHit2.ogg": "https://files.ballistica.net/cache/ba1/8f/94/0041b1ba8cbc8155c1156a4a9d92",
+ "assets/build/ba_data/audio/orchestraHit.ogg": "https://files.ballistica.net/cache/ba1/34/39/230a50bafeb4fa7ed5b7edc73a36",
+ "assets/build/ba_data/audio/orchestraHit2.ogg": "https://files.ballistica.net/cache/ba1/08/1b/74e10d63ce851db3339352fa7d20",
+ "assets/build/ba_data/audio/orchestraHit3.ogg": "https://files.ballistica.net/cache/ba1/e1/97/bf98875661f61f733207b28d299a",
+ "assets/build/ba_data/audio/orchestraHit4.ogg": "https://files.ballistica.net/cache/ba1/7a/33/d13149b91c176002c51caacc0b04",
+ "assets/build/ba_data/audio/orchestraHitBig1.ogg": "https://files.ballistica.net/cache/ba1/1b/ad/10baf05c9348c34cd5c4333905b0",
+ "assets/build/ba_data/audio/orchestraHitBig2.ogg": "https://files.ballistica.net/cache/ba1/3e/9c/d7e6d61c713cc4bdee2116657eee",
+ "assets/build/ba_data/audio/penguin1.ogg": "https://files.ballistica.net/cache/ba1/02/52/3f09afe2ecfbf07501a93b43f3b1",
+ "assets/build/ba_data/audio/penguin2.ogg": "https://files.ballistica.net/cache/ba1/25/bf/632302bd31340b129f5945376530",
+ "assets/build/ba_data/audio/penguin3.ogg": "https://files.ballistica.net/cache/ba1/8c/20/a82230a6b246d5a46f91c791a3e7",
+ "assets/build/ba_data/audio/penguin4.ogg": "https://files.ballistica.net/cache/ba1/bb/ba/83754ebb41d4ef7b2c0fa8dd51ab",
+ "assets/build/ba_data/audio/penguinDeath.ogg": "https://files.ballistica.net/cache/ba1/fb/49/b8e0919f57a4eb021b1cb969a88a",
+ "assets/build/ba_data/audio/penguinFall.ogg": "https://files.ballistica.net/cache/ba1/1f/c3/e8f21b8b3657ffa8b86af8dacc6f",
+ "assets/build/ba_data/audio/penguinHit1.ogg": "https://files.ballistica.net/cache/ba1/15/d6/7ce277305546211e8e6aed59e5a0",
+ "assets/build/ba_data/audio/penguinHit2.ogg": "https://files.ballistica.net/cache/ba1/a3/34/e3cfa4803c4ae29788857eabb87d",
+ "assets/build/ba_data/audio/pixie1.ogg": "https://files.ballistica.net/cache/ba1/5d/e7/e3bb76e4855bab3bfa237975a8b6",
+ "assets/build/ba_data/audio/pixie2.ogg": "https://files.ballistica.net/cache/ba1/ab/39/2a73f2b59560267557d6aa9a1d94",
+ "assets/build/ba_data/audio/pixie3.ogg": "https://files.ballistica.net/cache/ba1/94/36/0e8edbfdcc0e327095c9153b7f1b",
+ "assets/build/ba_data/audio/pixie4.ogg": "https://files.ballistica.net/cache/ba1/95/ae/a33bdbdb81ad8e9739df5f96a43f",
+ "assets/build/ba_data/audio/pixieDeath.ogg": "https://files.ballistica.net/cache/ba1/5d/8c/22cab8ae2623d284b8c70dc08638",
+ "assets/build/ba_data/audio/pixieFall.ogg": "https://files.ballistica.net/cache/ba1/37/54/7c75f1660a9aa2bc5f370a1414eb",
+ "assets/build/ba_data/audio/pixieHit1.ogg": "https://files.ballistica.net/cache/ba1/d2/20/41cd9666cc82eb905391e5f09358",
+ "assets/build/ba_data/audio/pixieHit2.ogg": "https://files.ballistica.net/cache/ba1/1b/c8/436ef74c333eab1087f534d51a87",
+ "assets/build/ba_data/audio/playerDeath.ogg": "https://files.ballistica.net/cache/ba1/87/9a/d7d892c820ea7dd0398cac88ffa1",
+ "assets/build/ba_data/audio/playerLeft.ogg": "https://files.ballistica.net/cache/ba1/04/b7/16c085238f547631378195827698",
+ "assets/build/ba_data/audio/pop01.ogg": "https://files.ballistica.net/cache/ba1/98/71/28a573d9a037e568e178359bb02b",
+ "assets/build/ba_data/audio/powerdown01.ogg": "https://files.ballistica.net/cache/ba1/ed/a7/8e3a7511ab0fafbb9b52445348f4",
+ "assets/build/ba_data/audio/powerup01.ogg": "https://files.ballistica.net/cache/ba1/3d/f3/d1e6660cd061b5a1b67b0e98088b",
+ "assets/build/ba_data/audio/punch01.ogg": "https://files.ballistica.net/cache/ba1/f7/0d/22cce48b0346ec0d948b9808dff3",
+ "assets/build/ba_data/audio/punchStrong01.ogg": "https://files.ballistica.net/cache/ba1/80/4c/00f81efc80a2c68212f62fcc7b01",
+ "assets/build/ba_data/audio/punchStrong02.ogg": "https://files.ballistica.net/cache/ba1/c3/1d/eaf2396f4e9127b7a66197b4ad75",
+ "assets/build/ba_data/audio/punchSwish.ogg": "https://files.ballistica.net/cache/ba1/b4/d6/008534042a94cd99523bfcabdcbd",
+ "assets/build/ba_data/audio/punchWeak01.ogg": "https://files.ballistica.net/cache/ba1/d0/94/53212b0bf039671333388100c9aa",
+ "assets/build/ba_data/audio/raceBeep1.ogg": "https://files.ballistica.net/cache/ba1/e9/c2/22fd9db278c0a441661b7a14f398",
+ "assets/build/ba_data/audio/raceBeep2.ogg": "https://files.ballistica.net/cache/ba1/2a/86/6d59a75d7cfaaf2f5d38d55015b5",
+ "assets/build/ba_data/audio/refWhistle.ogg": "https://files.ballistica.net/cache/ba1/92/d7/d8b7b01eccf13f58aceaee05bf79",
+ "assets/build/ba_data/audio/robot1.ogg": "https://files.ballistica.net/cache/ba1/25/8a/dd1abdace3a4fc3e73586d8bb103",
+ "assets/build/ba_data/audio/robot2.ogg": "https://files.ballistica.net/cache/ba1/27/b3/ed6ccb5391bb5b0d4415e09afc37",
+ "assets/build/ba_data/audio/robot3.ogg": "https://files.ballistica.net/cache/ba1/2b/a9/2b958ed91060cd3e9ab1b657a71f",
+ "assets/build/ba_data/audio/robot4.ogg": "https://files.ballistica.net/cache/ba1/15/77/ebf9129bc8cf2428418d7484b19d",
+ "assets/build/ba_data/audio/robotDeath.ogg": "https://files.ballistica.net/cache/ba1/52/1f/578eabdd26e645f88ae7b3715d82",
+ "assets/build/ba_data/audio/robotFall.ogg": "https://files.ballistica.net/cache/ba1/61/f1/1f4bf39e3d496541f8f117128896",
+ "assets/build/ba_data/audio/robotHit1.ogg": "https://files.ballistica.net/cache/ba1/7e/e7/c8c8fc38fd68434de77eb22af479",
+ "assets/build/ba_data/audio/robotHit2.ogg": "https://files.ballistica.net/cache/ba1/a1/e4/3f07c6f8dc90781609ccf73f2bfe",
+ "assets/build/ba_data/audio/runAwayMusic.ogg": "https://files.ballistica.net/cache/ba1/ba/1c/b684591f05af402c5a77d9e78ef9",
+ "assets/build/ba_data/audio/santa01.ogg": "https://files.ballistica.net/cache/ba1/87/f7/06c8bd9468c30fc04993ce43c813",
+ "assets/build/ba_data/audio/santa02.ogg": "https://files.ballistica.net/cache/ba1/b5/86/09edb5a7df6eb3a675ca5821a91c",
+ "assets/build/ba_data/audio/santa03.ogg": "https://files.ballistica.net/cache/ba1/41/5f/4db6735c4cb1acca84e930fc05b7",
+ "assets/build/ba_data/audio/santa04.ogg": "https://files.ballistica.net/cache/ba1/f8/2a/7d03c0fa2f3277b9461963486083",
+ "assets/build/ba_data/audio/santa05.ogg": "https://files.ballistica.net/cache/ba1/4a/8a/f38d78093c9682ebe4f465f904fe",
+ "assets/build/ba_data/audio/santaDeath.ogg": "https://files.ballistica.net/cache/ba1/20/e6/ca1615ed18b55fa82d3604ee610f",
+ "assets/build/ba_data/audio/santaFall.ogg": "https://files.ballistica.net/cache/ba1/6c/e0/4fb79b714b95e304ad92bb9e90cc",
+ "assets/build/ba_data/audio/santaHit01.ogg": "https://files.ballistica.net/cache/ba1/e1/8a/f1ff4f53b6458b667463df023772",
+ "assets/build/ba_data/audio/santaHit02.ogg": "https://files.ballistica.net/cache/ba1/a2/21/15ec6792a9bfe46ede252733e2f8",
+ "assets/build/ba_data/audio/santaHit03.ogg": "https://files.ballistica.net/cache/ba1/47/51/54f71289e17b6a086997116ced97",
+ "assets/build/ba_data/audio/santaHit04.ogg": "https://files.ballistica.net/cache/ba1/e2/71/4a4b49fa9f6bc3094f63395eb11a",
+ "assets/build/ba_data/audio/scamper01.ogg": "https://files.ballistica.net/cache/ba1/91/f6/00f6677870b55037e0ca6dfa6bac",
+ "assets/build/ba_data/audio/scaryMusic.ogg": "https://files.ballistica.net/cache/ba1/af/0d/6d5c74255e2c2659ffea0a84bc18",
+ "assets/build/ba_data/audio/score.ogg": "https://files.ballistica.net/cache/ba1/f0/fe/7f33e7660c204c5d03f48c2025ee",
+ "assets/build/ba_data/audio/scoreHit01.ogg": "https://files.ballistica.net/cache/ba1/fb/06/8926f64cf5d49ebb0cf964505e51",
+ "assets/build/ba_data/audio/scoreHit02.ogg": "https://files.ballistica.net/cache/ba1/c5/5f/898fe8045c83d2c96f713ee12f88",
+ "assets/build/ba_data/audio/scoreIncrease.ogg": "https://files.ballistica.net/cache/ba1/c1/f4/2790931f749d5322e3ac094fbe79",
+ "assets/build/ba_data/audio/scoresEpicMusic.ogg": "https://files.ballistica.net/cache/ba1/dc/54/816b47036e51d5b1925eb1fe9cd4",
+ "assets/build/ba_data/audio/shatter.ogg": "https://files.ballistica.net/cache/ba1/d9/f1/18c6e5aa42b03c7933595240dd8c",
+ "assets/build/ba_data/audio/shieldDown.ogg": "https://files.ballistica.net/cache/ba1/4b/31/e3cc5bc0d8daa7c0282367e7cd4c",
+ "assets/build/ba_data/audio/shieldHit.ogg": "https://files.ballistica.net/cache/ba1/ab/8d/2092774e4b2b9dbbd512317a00cf",
+ "assets/build/ba_data/audio/shieldUp.ogg": "https://files.ballistica.net/cache/ba1/14/87/63c5e81a26d1e0ac5480e4998c7c",
+ "assets/build/ba_data/audio/skid01.ogg": "https://files.ballistica.net/cache/ba1/1d/1a/6f2f183c0d69dbf7df1b0eac35d8",
+ "assets/build/ba_data/audio/slowEpicMusic.ogg": "https://files.ballistica.net/cache/ba1/e9/13/983b62ba6759d355e7f3f364cb2f",
+ "assets/build/ba_data/audio/sparkle01.ogg": "https://files.ballistica.net/cache/ba1/4c/87/9e1d47ec1370cb56a4db96801a76",
+ "assets/build/ba_data/audio/sparkle02.ogg": "https://files.ballistica.net/cache/ba1/69/d8/3596d410738931b296ac542ac65c",
+ "assets/build/ba_data/audio/sparkle03.ogg": "https://files.ballistica.net/cache/ba1/06/c0/bed26cac2d94cff65e18b9bd6b44",
+ "assets/build/ba_data/audio/spawn.ogg": "https://files.ballistica.net/cache/ba1/f6/ca/3d7bb3f383a7c91da33df4b2f1f6",
+ "assets/build/ba_data/audio/spazAttack01.ogg": "https://files.ballistica.net/cache/ba1/d9/73/f459675f255567824a30ca1162a2",
+ "assets/build/ba_data/audio/spazAttack02.ogg": "https://files.ballistica.net/cache/ba1/f9/06/6c1b6597396aa774b9eb3ea6fd1d",
+ "assets/build/ba_data/audio/spazAttack03.ogg": "https://files.ballistica.net/cache/ba1/89/d0/ead2cd4a0a604caa3f47d4e79228",
+ "assets/build/ba_data/audio/spazAttack04.ogg": "https://files.ballistica.net/cache/ba1/e3/74/ada09133a2b21ad6f8755a63cad8",
+ "assets/build/ba_data/audio/spazDeath01.ogg": "https://files.ballistica.net/cache/ba1/0f/08/739bfc0e87d84a95ef839520cdd7",
+ "assets/build/ba_data/audio/spazEff.ogg": "https://files.ballistica.net/cache/ba1/3f/a0/c1003a34f7c31292a62cc97d4184",
+ "assets/build/ba_data/audio/spazFall01.ogg": "https://files.ballistica.net/cache/ba1/11/78/0f80bb08c63bbf075158c45d8aa3",
+ "assets/build/ba_data/audio/spazImpact01.ogg": "https://files.ballistica.net/cache/ba1/8c/35/68667339c031f5783e7017915ed6",
+ "assets/build/ba_data/audio/spazImpact02.ogg": "https://files.ballistica.net/cache/ba1/73/e0/9be5bfface94706af3cc2c164f4a",
+ "assets/build/ba_data/audio/spazImpact03.ogg": "https://files.ballistica.net/cache/ba1/f3/38/3e7ad049b5600a38f7fe4e3550f0",
+ "assets/build/ba_data/audio/spazImpact04.ogg": "https://files.ballistica.net/cache/ba1/98/ac/4569ac759052dcf171c14a6674e8",
+ "assets/build/ba_data/audio/spazJump01.ogg": "https://files.ballistica.net/cache/ba1/71/c4/123f2024c16151c89802f07803a9",
+ "assets/build/ba_data/audio/spazJump02.ogg": "https://files.ballistica.net/cache/ba1/e2/eb/96b4de3dd6df94bb1f39b8a12e4d",
+ "assets/build/ba_data/audio/spazJump03.ogg": "https://files.ballistica.net/cache/ba1/7e/42/5e2841e5d426ae0dcde40b59003b",
+ "assets/build/ba_data/audio/spazJump04.ogg": "https://files.ballistica.net/cache/ba1/88/48/c41610cc9a1b42300686301f69f0",
+ "assets/build/ba_data/audio/spazOw.ogg": "https://files.ballistica.net/cache/ba1/05/1c/f52026ff9cdd7f99c25d048b8418",
+ "assets/build/ba_data/audio/spazPickup01.ogg": "https://files.ballistica.net/cache/ba1/17/53/7f0e82a5fef9c2ab8ab0a11da06c",
+ "assets/build/ba_data/audio/spazScream01.ogg": "https://files.ballistica.net/cache/ba1/5b/8a/d754cdd0d89fef49c0ab8fba67e4",
+ "assets/build/ba_data/audio/splatter.ogg": "https://files.ballistica.net/cache/ba1/35/3b/2986b53483b342bda57a84bd9e25",
+ "assets/build/ba_data/audio/sportsMusic.ogg": "https://files.ballistica.net/cache/ba1/0a/c7/04ddd16a99f3b71850053c4931ba",
+ "assets/build/ba_data/audio/stickyImpact.ogg": "https://files.ballistica.net/cache/ba1/7c/97/b784f6e54ced9b9e7084747b4efc",
+ "assets/build/ba_data/audio/superPunch.ogg": "https://files.ballistica.net/cache/ba1/e7/6a/21e2dd4fe3a12d4f9db10e5647bd",
+ "assets/build/ba_data/audio/superhero1.ogg": "https://files.ballistica.net/cache/ba1/c1/dd/dee32573a58ffd83cc00689ccfb4",
+ "assets/build/ba_data/audio/superhero2.ogg": "https://files.ballistica.net/cache/ba1/00/fd/d2d3bd1ad913b7159873b58706f8",
+ "assets/build/ba_data/audio/superhero3.ogg": "https://files.ballistica.net/cache/ba1/aa/1c/67e2a563354aff2460cbe2eccf52",
+ "assets/build/ba_data/audio/superhero4.ogg": "https://files.ballistica.net/cache/ba1/81/96/7bb011d80de9182b56f0a4872d0d",
+ "assets/build/ba_data/audio/superheroDeath.ogg": "https://files.ballistica.net/cache/ba1/85/d0/f061401183a4f6f5fc91995b6f76",
+ "assets/build/ba_data/audio/superheroFall.ogg": "https://files.ballistica.net/cache/ba1/cc/f5/a2cf691726deb992081aecafb1bc",
+ "assets/build/ba_data/audio/superheroHit1.ogg": "https://files.ballistica.net/cache/ba1/d4/e9/8d6126156d834c8ae84afdb28c33",
+ "assets/build/ba_data/audio/superheroHit2.ogg": "https://files.ballistica.net/cache/ba1/46/68/dedbd03193754b3f937324f5d3c4",
+ "assets/build/ba_data/audio/survivalMusic.ogg": "https://files.ballistica.net/cache/ba1/47/fc/601d034cf62aba583cac5521b627",
+ "assets/build/ba_data/audio/swip.ogg": "https://files.ballistica.net/cache/ba1/7b/8a/998711379e489600665c5116d2b6",
+ "assets/build/ba_data/audio/swip2.ogg": "https://files.ballistica.net/cache/ba1/2a/fc/e47bedc09e64e4d5c51ddaa2b18c",
+ "assets/build/ba_data/audio/swish.ogg": "https://files.ballistica.net/cache/ba1/6e/6c/6ffd6f7c142bd7cf05c98df1cd5a",
+ "assets/build/ba_data/audio/swish2.ogg": "https://files.ballistica.net/cache/ba1/a9/6c/bb02b87eeafb72b88c2b17c7f443",
+ "assets/build/ba_data/audio/swish3.ogg": "https://files.ballistica.net/cache/ba1/a2/72/fdde40e2eedde9647467a272e39f",
+ "assets/build/ba_data/audio/tap.ogg": "https://files.ballistica.net/cache/ba1/3b/3f/b5dd305b652fbd817a5c8a9c09d1",
+ "assets/build/ba_data/audio/technoHit01.ogg": "https://files.ballistica.net/cache/ba1/65/20/06100b2ec255563927c0185c3199",
+ "assets/build/ba_data/audio/tick.ogg": "https://files.ballistica.net/cache/ba1/97/57/dbfc82a25ba4153be0a85e420d3f",
+ "assets/build/ba_data/audio/ticking.ogg": "https://files.ballistica.net/cache/ba1/f0/fc/9697c52a8298000f63b8d0d9fc3c",
+ "assets/build/ba_data/audio/tickingCrazy.ogg": "https://files.ballistica.net/cache/ba1/13/be/cb51602790cee789598ee4ba237c",
+ "assets/build/ba_data/audio/toTheDeathMusic.ogg": "https://files.ballistica.net/cache/ba1/ad/f3/f1219e2e320c1bca00dc7be034fd",
+ "assets/build/ba_data/audio/trashRummage.ogg": "https://files.ballistica.net/cache/ba1/b6/40/b42ee407cb6460ab45bcfd0eb707",
+ "assets/build/ba_data/audio/victoryMusic.ogg": "https://files.ballistica.net/cache/ba1/45/69/89e1f27a004507a98a63a72f8632",
+ "assets/build/ba_data/audio/warnBeep.ogg": "https://files.ballistica.net/cache/ba1/6e/e1/d2384fdc2987710aa24a8cb8248d",
+ "assets/build/ba_data/audio/warnBeeps.ogg": "https://files.ballistica.net/cache/ba1/48/ac/c12870dbac3d12e705f9354aec72",
+ "assets/build/ba_data/audio/warrior1.ogg": "https://files.ballistica.net/cache/ba1/42/d7/6fde00abcddcc7469436820f9155",
+ "assets/build/ba_data/audio/warrior2.ogg": "https://files.ballistica.net/cache/ba1/66/13/daec33822de45d32c50dda7a9db0",
+ "assets/build/ba_data/audio/warrior3.ogg": "https://files.ballistica.net/cache/ba1/59/8d/d97ea49d6f0422da11823e18c3df",
+ "assets/build/ba_data/audio/warrior4.ogg": "https://files.ballistica.net/cache/ba1/ac/dc/7f7682b4a5603ef27650b2456ac7",
+ "assets/build/ba_data/audio/warriorDeath.ogg": "https://files.ballistica.net/cache/ba1/88/71/76555d9b53b029d9d973c311c450",
+ "assets/build/ba_data/audio/warriorFall.ogg": "https://files.ballistica.net/cache/ba1/78/93/654e954bf52df964ba69ffe5dc5a",
+ "assets/build/ba_data/audio/warriorHit1.ogg": "https://files.ballistica.net/cache/ba1/b9/00/1dea8f4393e71d373051f7d6e83b",
+ "assets/build/ba_data/audio/warriorHit2.ogg": "https://files.ballistica.net/cache/ba1/b7/6c/dd05e76055fc57f9d19fd232f3e2",
+ "assets/build/ba_data/audio/whenJohnnyComesMarchingHomeMusic.ogg": "https://files.ballistica.net/cache/ba1/80/18/2e9f72069cebbc4fd4f66009f686",
+ "assets/build/ba_data/audio/witch1.ogg": "https://files.ballistica.net/cache/ba1/d9/29/d859837ebe122cb682973be4f8f8",
+ "assets/build/ba_data/audio/witch2.ogg": "https://files.ballistica.net/cache/ba1/90/e2/f1c1dde870e74de9953991ee3ae9",
+ "assets/build/ba_data/audio/witch3.ogg": "https://files.ballistica.net/cache/ba1/bd/22/85eef9e2d2495518d0736110a95b",
+ "assets/build/ba_data/audio/witch4.ogg": "https://files.ballistica.net/cache/ba1/54/ae/a2428af20c6085636f85a0f2a140",
+ "assets/build/ba_data/audio/witchDeath.ogg": "https://files.ballistica.net/cache/ba1/09/a4/6ba2c6ff8ca85d7016962d0947fa",
+ "assets/build/ba_data/audio/witchFall.ogg": "https://files.ballistica.net/cache/ba1/94/9d/8497f02c50a0756a87a2f4b78fa5",
+ "assets/build/ba_data/audio/witchHit1.ogg": "https://files.ballistica.net/cache/ba1/fc/47/d650d4a82529f11502861723f13e",
+ "assets/build/ba_data/audio/witchHit2.ogg": "https://files.ballistica.net/cache/ba1/50/45/b8809360598df3f0203f62e788b0",
+ "assets/build/ba_data/audio/wizard1.ogg": "https://files.ballistica.net/cache/ba1/9c/38/0c6a42cd90025cad61c43c7abc8a",
+ "assets/build/ba_data/audio/wizard2.ogg": "https://files.ballistica.net/cache/ba1/12/56/4cb851ee7ebc308ae1a50771cf8f",
+ "assets/build/ba_data/audio/wizard3.ogg": "https://files.ballistica.net/cache/ba1/e6/8f/5094937a979dbcc509713d2f4366",
+ "assets/build/ba_data/audio/wizard4.ogg": "https://files.ballistica.net/cache/ba1/ed/60/d29dc09f12486e9ac0abd95b1270",
+ "assets/build/ba_data/audio/wizardDeath.ogg": "https://files.ballistica.net/cache/ba1/45/c3/f9c6f78915a06787cbbb3750521c",
+ "assets/build/ba_data/audio/wizardFall.ogg": "https://files.ballistica.net/cache/ba1/7d/8d/a6769c6a8f66d17a1417de4ed09f",
+ "assets/build/ba_data/audio/wizardHit1.ogg": "https://files.ballistica.net/cache/ba1/9f/c2/5025c9fe242b84e3ada693fa835f",
+ "assets/build/ba_data/audio/wizardHit2.ogg": "https://files.ballistica.net/cache/ba1/b9/04/c83d85abe1aed831c025e664bb80",
+ "assets/build/ba_data/audio/woodDebrisFall.ogg": "https://files.ballistica.net/cache/ba1/90/f0/9c1b3cc64bc841f128075dc3d4b1",
+ "assets/build/ba_data/audio/wrestler1.ogg": "https://files.ballistica.net/cache/ba1/bb/d1/907e03fae0606f3d26e1b8872e4c",
+ "assets/build/ba_data/audio/wrestler2.ogg": "https://files.ballistica.net/cache/ba1/c8/2d/62f5f4cea7ad690a9a675d27eb42",
+ "assets/build/ba_data/audio/wrestler3.ogg": "https://files.ballistica.net/cache/ba1/f8/15/686b9d131de8e70841bf449bbf76",
+ "assets/build/ba_data/audio/wrestler4.ogg": "https://files.ballistica.net/cache/ba1/e2/2b/0e029172c72f1164813ec3f883be",
+ "assets/build/ba_data/audio/wrestlerDeath.ogg": "https://files.ballistica.net/cache/ba1/ec/ea/2c38a9feadd86c2468a0e26a3871",
+ "assets/build/ba_data/audio/wrestlerFall.ogg": "https://files.ballistica.net/cache/ba1/f8/68/a86da4d0fa832d29d558ec3bf925",
+ "assets/build/ba_data/audio/wrestlerHit1.ogg": "https://files.ballistica.net/cache/ba1/40/7e/9ed1d178e0b312277caaba2971d5",
+ "assets/build/ba_data/audio/wrestlerHit2.ogg": "https://files.ballistica.net/cache/ba1/e0/66/f8b3b030d5d4d1c54d9b40959665",
+ "assets/build/ba_data/audio/zoeAttack01.ogg": "https://files.ballistica.net/cache/ba1/30/ee/c1222e9cbed55980b40127ba14ff",
+ "assets/build/ba_data/audio/zoeAttack02.ogg": "https://files.ballistica.net/cache/ba1/dc/fd/d6ecaa6e91b94c1a0b604bd437f4",
+ "assets/build/ba_data/audio/zoeAttack03.ogg": "https://files.ballistica.net/cache/ba1/5d/9c/27defeed77fbf787151b89955d2f",
+ "assets/build/ba_data/audio/zoeAttack04.ogg": "https://files.ballistica.net/cache/ba1/f8/0c/acd7cde5c8e1e01d92c63b70a644",
+ "assets/build/ba_data/audio/zoeDeath01.ogg": "https://files.ballistica.net/cache/ba1/ff/90/ebfcd5852f95e6f3d2f8b6c8c9ce",
+ "assets/build/ba_data/audio/zoeEff.ogg": "https://files.ballistica.net/cache/ba1/ee/0c/bfd0f105580f41ec43c14e1a4d26",
+ "assets/build/ba_data/audio/zoeFall01.ogg": "https://files.ballistica.net/cache/ba1/cf/7c/9b8e9f1d0387c7fed639511c882b",
+ "assets/build/ba_data/audio/zoeImpact01.ogg": "https://files.ballistica.net/cache/ba1/17/3d/7a8c78e0aa6db9aabff2851fa7f7",
+ "assets/build/ba_data/audio/zoeImpact02.ogg": "https://files.ballistica.net/cache/ba1/c1/bd/b54f9081b11bd5ec04cf4a56013a",
+ "assets/build/ba_data/audio/zoeImpact03.ogg": "https://files.ballistica.net/cache/ba1/02/02/008abd88c1deeac85ed88d25b42d",
+ "assets/build/ba_data/audio/zoeImpact04.ogg": "https://files.ballistica.net/cache/ba1/6f/b2/a1a774e466433f0c5326ffdfcb61",
+ "assets/build/ba_data/audio/zoeJump01.ogg": "https://files.ballistica.net/cache/ba1/77/9c/e0529c9dd0a732b4b195676e14f2",
+ "assets/build/ba_data/audio/zoeJump02.ogg": "https://files.ballistica.net/cache/ba1/88/d8/88ec7aa0c8c1b5219658f78ac2d3",
+ "assets/build/ba_data/audio/zoeJump03.ogg": "https://files.ballistica.net/cache/ba1/8c/2a/caa5b929b32aa5226d96df5733a9",
+ "assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/51/eb/0a567253cc08c94c5d315a64d9af",
+ "assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/bc/8f/a9c51a09c418136e386b7fdf21c7",
+ "assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/02/e5/84916e123f47ccf11ddda380d699",
+ "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/d6/7e/598e11bd8dfc90de5edb9151cfc8",
"assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/68/6d/7a251c216dda7550ca871871e2d1",
"assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/55/8c/8d0a0585e434b94865ae4befc090",
- "assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/29/0a/2a796246ae05dbf316a3551b8970",
+ "assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/fc/a4/813e4ef8c4204d8616aa68a80891",
"assets/build/ba_data/data/languages/chinesetraditional.json": "https://files.ballistica.net/cache/ba1/ff/7c/3bcab4ae1f39977434acb0d6f795",
"assets/build/ba_data/data/languages/croatian.json": "https://files.ballistica.net/cache/ba1/66/bf/6e98398016da261296b8c306560e",
- "assets/build/ba_data/data/languages/czech.json": "https://files.ballistica.net/cache/ba1/f1/be/7b998f990a40c8d94003fa954853",
+ "assets/build/ba_data/data/languages/czech.json": "https://files.ballistica.net/cache/ba1/19/c5/2b1ae9e2b622892ff8c0beaad25b",
"assets/build/ba_data/data/languages/danish.json": "https://files.ballistica.net/cache/ba1/3f/46/e4da3c1d2b0ebf916df55c608b28",
- "assets/build/ba_data/data/languages/dutch.json": "https://files.ballistica.net/cache/ba1/d1/07/37b7adc3dbec7328d26c5325f212",
- "assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/00/a6/3563b95117cad093c9e56a27ba24",
+ "assets/build/ba_data/data/languages/dutch.json": "https://files.ballistica.net/cache/ba1/97/90/39ba65c2ad714429aec82ea1ae3e",
+ "assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/d6/9d/4c4f878cc2ea5a6ecfca48a6ea02",
"assets/build/ba_data/data/languages/esperanto.json": "https://files.ballistica.net/cache/ba1/4c/c7/0184b8178869d1a3827a1bfcd5bb",
"assets/build/ba_data/data/languages/french.json": "https://files.ballistica.net/cache/ba1/94/66/31892eb13c227d10562b1af3e0ac",
- "assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/86/69/bba214c3bf4f9cdd4732ea331ac7",
- "assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/19/a6/47fd52b8890573fd0e54b9f7b7fd",
+ "assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/f2/5a/c68991b1c36c9341bc2dac73269d",
+ "assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/de/57/e732c7bb0b70fe90bcb8529f6f0b",
"assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/01/ea/cd9dac4a24a5c92495c37cd98371",
"assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/40/d7/84b6bc5eaef05145af3bef5e5e1c",
"assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/2d/e5/3737c6c3979cf381321c5472bea5",
- "assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/69/80/7fb8313fee506801754937a92bd2",
- "assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/6a/89/696e26d4372ccde4a9b30e04ff62",
+ "assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/b1/81/d99fb5b8c368430944b357aa15fe",
+ "assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/cc/5d/94c4004b798e74922830280bc8bc",
"assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/7f/57/fd4b9a63be0207ba2ad49e19253c",
- "assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/99/04/90b3005df45d258406caa4d439f8",
+ "assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/f1/49/a7a94c6a662f65de4d8e9d5303f4",
"assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/04/fa/b24dd48bfbf3c2d67ee5ad1269c3",
- "assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/7c/34/8fefa40f6b2d59d1b3755e5aa715",
+ "assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/d5/f0/b5015710dfdc0e48f3e0a9d75332",
"assets/build/ba_data/data/languages/romanian.json": "https://files.ballistica.net/cache/ba1/82/12/57bf144e12be229a9b70da9c45cb",
- "assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/22/ae/7398a74f9d86248169a675a7f2bd",
+ "assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/97/38/c8ae1079059dd6b6579c89802ed8",
"assets/build/ba_data/data/languages/serbian.json": "https://files.ballistica.net/cache/ba1/38/d6/376433fa66f1798c64035efc1371",
"assets/build/ba_data/data/languages/slovak.json": "https://files.ballistica.net/cache/ba1/9f/a6/a2c9d7f3f90a2320aa45ccfd65cd",
- "assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/66/9e/df12c6325c503f8eaef4a83259c4",
+ "assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/6d/25/745fec991d43eadfbde149d897bf",
"assets/build/ba_data/data/languages/swedish.json": "https://files.ballistica.net/cache/ba1/50/9f/be006ba19be6a69a57837eb6dca0",
- "assets/build/ba_data/data/languages/tamil.json": "https://files.ballistica.net/cache/ba1/31/b0/957a09affb9ea8e0fefb1d447a6e",
+ "assets/build/ba_data/data/languages/tamil.json": "https://files.ballistica.net/cache/ba1/6a/ab/e5321ab73beb56d58948bbee6f0d",
"assets/build/ba_data/data/languages/thai.json": "https://files.ballistica.net/cache/ba1/74/3d/c3d40a1e5ee1edf82555da05eda9",
- "assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/65/e4/b9308f15437972209b4d3fce7abd",
- "assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/8f/42/56f3ebcc6005f382449c1c2422fd",
+ "assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/e8/0b/6825043ce101a831732eb9c97e4f",
+ "assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/87/20/259904441097b886b841d7c4d09a",
"assets/build/ba_data/data/languages/venetian.json": "https://files.ballistica.net/cache/ba1/ff/a7/d74151ee6fa1d228cafb52e52f04",
"assets/build/ba_data/data/languages/vietnamese.json": "https://files.ballistica.net/cache/ba1/0b/24/3cc2b5a6ebe4bca1e01b40f8ed09",
"assets/build/ba_data/data/maps/big_g.json": "https://files.ballistica.net/cache/ba1/47/0a/a617cc85d927b576c4e6fc1091ed",
@@ -1532,10 +1532,10 @@
"assets/build/ba_data/textures/fontExtras3.ktx": "https://files.ballistica.net/cache/ba1/e4/b7/bd74b3f7e1c0d36524d979531557",
"assets/build/ba_data/textures/fontExtras3.pvr": "https://files.ballistica.net/cache/ba1/1a/bb/1523d014c9179f4c1774699ac5c5",
"assets/build/ba_data/textures/fontExtras3_preview.png": "https://files.ballistica.net/cache/ba1/42/da/9519da17994c22d3558a3cdddd6f",
- "assets/build/ba_data/textures/fontExtras4.dds": "https://files.ballistica.net/cache/ba1/2b/60/7354b4c8f96d1ee2470250bced1b",
- "assets/build/ba_data/textures/fontExtras4.ktx": "https://files.ballistica.net/cache/ba1/78/14/ebe30586737433eb9c7246a92826",
- "assets/build/ba_data/textures/fontExtras4.pvr": "https://files.ballistica.net/cache/ba1/78/3a/4535344758dfac75b2a9338cb641",
- "assets/build/ba_data/textures/fontExtras4_preview.png": "https://files.ballistica.net/cache/ba1/72/60/1abcd7c9316c9a3a61b687a26182",
+ "assets/build/ba_data/textures/fontExtras4.dds": "https://files.ballistica.net/cache/ba1/56/48/053ec471cc9628c24480d5c70b8b",
+ "assets/build/ba_data/textures/fontExtras4.ktx": "https://files.ballistica.net/cache/ba1/07/be/fe8e0dc0109813b69b564ccff2b7",
+ "assets/build/ba_data/textures/fontExtras4.pvr": "https://files.ballistica.net/cache/ba1/54/18/67d0b2bb733df19c7a46797552b0",
+ "assets/build/ba_data/textures/fontExtras4_preview.png": "https://files.ballistica.net/cache/ba1/2f/6d/0c490d3a8ffacb3f901bf7041bf6",
"assets/build/ba_data/textures/fontExtras_preview.png": "https://files.ballistica.net/cache/ba1/72/44/13f75510e9979f56c78e35f3b983",
"assets/build/ba_data/textures/fontSmall0.dds": "https://files.ballistica.net/cache/ba1/b8/40/2c95a5004a333f0b364dae081d78",
"assets/build/ba_data/textures/fontSmall0.ktx": "https://files.ballistica.net/cache/ba1/ea/7b/7a23fa7856a2712b408869113d3a",
@@ -3964,52 +3964,52 @@
"assets/build/windows/Win32/vc_redist.x86.exe": "https://files.ballistica.net/cache/ba1/1c/e1/4a1a2eddda2f4aebd5f8b64ab08e",
"assets/build/windows/Win32/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/50/8d/bc2600ac9491f1b14d659709451f",
"assets/src/ba_data/python/ba/_generated/__init__.py": "https://files.ballistica.net/cache/ba1/ee/e8/cad05aa531c7faf7ff7b96db7f6e",
- "assets/src/ba_data/python/ba/_generated/enums.py": "https://files.ballistica.net/cache/ba1/72/82/86956fae909ac2fe2a1abd84a361",
+ "assets/src/ba_data/python/ba/_generated/enums.py": "https://files.ballistica.net/cache/ba1/b2/e5/0ee0561e16257a32830645239f34",
"ballisticacore-windows/Generic/BallisticaCore.ico": "https://files.ballistica.net/cache/ba1/89/c0/e32c7d2a35dc9aef57cc73b0911a",
- "build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/15/fe/006539c400523428bb45ce4da9b2",
+ "build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/79/7f/b35e110c2414ed3e9c2a63a5edb8",
"build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/74/1d/fc9e33e565475daaac80da5252f0",
- "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/51/6f/40639d4d24908fbd9c32dd781818",
- "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/60/8f/996fdf4a1f1e26b566b5e0b4f54b",
- "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/bc/75/418515fb999d524564ba485e3643",
+ "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c9/9d/8cf082284a49571f791b90d9106b",
+ "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/2a/7d/e5fc72327db6442b8eff92084a86",
+ "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/9d/d0/27123ab8460edbe2b81e2fbe26f4",
"build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9c/7b/ac1a200be0f37078af0991faca3b",
- "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/47/d4/1d346b91ebcaa1215954d9a2bb71",
- "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b0/c3/7c1cb5a0f96212ceafc08f71369a",
- "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/5b/c9/3397972da39e948b812bc809e0c1",
- "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/32/51/ff535d9b0f91f0defc7f9aee2bc4",
- "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ca/01/ecda0f5771d5008da48e7328da34",
- "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/6c/6d/93aa177977ed7d0c529f4bcaa212",
- "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/68/3d/d25cb717747c1f41a64c3dc2b353",
- "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/c4/3a/64a33f5f837c435fd61bc34621de",
- "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/20/0f/157782b569ef6dfbe23e5f435aeb",
- "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a6/f6/f1a09d846273291efcdebc32384c",
- "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/e1/23/154b39f6ce4017f694b9bc50b4e5",
- "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/19/42/ffe1fbc5277708393c96ae1556b2",
- "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/c2/81/1445b40155e83482fe8629fc4659",
- "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/09/88/cc1f4f48e2c3f98bd9140507aca4",
- "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/95/51/acefa044dba77f3adada7115f487",
- "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ca/18/846e182605d341b8225865c8646c",
- "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/71/61/f81984085eb141f9ea1e6abca272",
- "build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f0/3c/2820206454ed96ae7317eb3ff31f",
- "build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/52/68/e27ec9c0b2253213dd24cd49701c",
- "build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/83/f5/9c21b5431f1f22bad111b0872301",
- "build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/80/82/6af017a24c9de0e67d1702b538e6",
- "build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ad/00/be95b2212c2b2555c4c5130a0cd0",
- "build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/8c/e2/5c704673f29a89445eee67248f84",
- "build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/cc/1c/91c9f1ddf9c159f63a45175596eb",
- "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/36/3b/250d4aaaccfcb8d60c4fbf3f083d",
- "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/3d/2b/59466f90e18c090c8a9154b38b7e",
- "build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d7/6d/f22ddf7ee877b50c3010506bff49",
- "build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d9/b2/34b5f247b3952323e4ffde3d4a2d",
- "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ad/fb/5ccdb9da44706867aa56cb0c6316",
- "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d9/02/36ab4592b9a994e9be386c79d2df",
- "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/af/1a/85c3b9a25c3cabe0cf05892b34ee",
- "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/3e/6a/a12f9aad3dc9de538d7f99751709",
- "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/01/c5/fe63c070acfd6592a41a0a1f6480",
- "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/2d/0a/9594864542e84204caba36de407c",
- "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/ae/42/17489667000e866dfa319d84cb04",
- "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/1a/c4/a5ad68b0e99db6f802b7bdb3cb04",
- "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/e2/70/bff2f5ab3526af5a39e6ac4a65cd",
- "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/3b/7c/d9e5ae045c3347812a30f75273e5",
+ "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/f6/f3/097b3f57775872ce2cb1a5056a1f",
+ "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b0/8d/3950a671608e034d98873d296d79",
+ "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/3e/d7/98b17fd0a2c9fbe165e3305545c8",
+ "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/e8/14/16e4569e8ba8d81add5185d093d5",
+ "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/03/11/be7f105d7fa6481ee733fa27e395",
+ "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4e/ca/37f1978ef5964519797bc7c86c85",
+ "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/ae/27/2159c832c5cfbb0bd6377d53c51a",
+ "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/68/ca/02d14e37337c724d9e81c2c07042",
+ "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/13/ea/5dbca074d091cb18ba66d69396f5",
+ "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4a/2d/3eb7994b464507b25d402c911981",
+ "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/d3/63/cfc5b59bcca871bc90cbca08d135",
+ "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/7c/6f/1d4b4b019d85acc2bbe22ac61f66",
+ "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/57/7e/bbc31eed5601c189ea3b45c5aa30",
+ "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/85/02/03b08c4bd892da2f364e747cbc7d",
+ "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d5/9e/9ba956c3fab76d0d078abfa1da58",
+ "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/94/5c/d2328912be397d0c47c94de88600",
+ "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c6/b4/d2bcc9d5e3ed7c6e0ebf952c7e8c",
+ "build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0d/fb/4e30bf2f94a1d7952033c95751dc",
+ "build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/52/24/1317c155820a39aa1f8e6355f30a",
+ "build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/59/e0/d31d41a094422aa0e76aa0720016",
+ "build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/5d/e5/9c6d67f911ee6bbf83e6be8471f9",
+ "build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/94/bb/8e22dfe10d8caf5c69705bdeee5c",
+ "build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/1d/a1/1eae4803fdc5817b339639484050",
+ "build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/7c/6b/51ccdd8d9b1543a4ecbec5d86283",
+ "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/bb/78/8b75f03d6dbc1f8a52b6f474d805",
+ "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/37/51/31e9201bcdc1c7ee64629b03651f",
+ "build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/db/7a/2e01ec9f3b9bb73344664ee77531",
+ "build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/60/10/6076b395d00cba9af31a23f23088",
+ "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/62/db/263a5fd8732b884cefb225eb0152",
+ "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/3f/69/4a6b0e32ccad4a175c3ce81965d6",
+ "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/8a/ad/a1d95af5a8a0fc7432b7d18424ce",
+ "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/64/0f/417d7d670cb537a2c33c34413ab0",
+ "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/8f/7f/2a543aedbeda4415c7d6a133446c",
+ "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/2c/29/9881e42f274b27a2267e0fcbf2c4",
+ "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/a9/14/628cfc0a73eb6bd115c12b910e16",
+ "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/9f/d5/a133e0b5f1b7ee494b6e848164fe",
+ "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/8a/85/a3b4ca183c808225b08562e2ad32",
+ "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/01/28/06fe724ed0a007ddc4806e4cfee2",
"src/ballistica/generated/python_embedded/binding.inc": "https://files.ballistica.net/cache/ba1/c5/18/29d9fe8e483ce222d3263336f7e6",
"src/ballistica/generated/python_embedded/bootstrap.inc": "https://files.ballistica.net/cache/ba1/65/ac/d5c4162a71028c1bfa73ebc1f881"
}
\ No newline at end of file
diff --git a/.idea/dictionaries/ericf.xml b/.idea/dictionaries/ericf.xml
index ed2a14df..b820759c 100644
--- a/.idea/dictionaries/ericf.xml
+++ b/.idea/dictionaries/ericf.xml
@@ -868,6 +868,7 @@
fstab
fstat
fstrs
+ fsum
ftime
ftmp
ftplib
@@ -935,6 +936,7 @@
getcwd
getdata
gethostbyname
+ getifaddr
getinputdevice
getkillerplayer
getlevel
@@ -1018,6 +1020,7 @@
hattach
hcalc
hcfg
+ hdiutil
hdpi
headercheckline
headerregistry
@@ -1308,6 +1311,7 @@
locktype
locs
logcat
+ logincode
logintoken
logitech
logput
@@ -1338,6 +1342,7 @@
macbuild
macmusicapp
macos
+ macpackage
macpath
mailcap
mainmenu
@@ -1365,6 +1370,7 @@
masktexstorename
masterhash
masterver
+ mastervers
mathmodule
mathnode
mathutils
@@ -1546,7 +1552,10 @@
nosyncfiles
nosynctool
nosynctools
+ notarytool
notdir
+ notorize
+ notorized
nowtickets
npos
nprocessors
@@ -1843,6 +1852,7 @@
pvval
pybee
pybuild
+ pybuildapple
pycache
pycharm's
pycharmbin
@@ -1888,6 +1898,7 @@
pyver
qrcode
qrencode
+ qroffs
qual
qualname
quoprimime
@@ -2083,6 +2094,7 @@
sharedctypes
sharedobj
sharedobjs
+ shasum
shellapi
shiftdelay
shiftposition
@@ -2160,6 +2172,7 @@
srcattr
srcdata
srcdir
+ srcfolder
srcjson
srcnode
srcpath
@@ -2440,6 +2453,8 @@
uadfc
uber
ucrtbased
+ udbz
+ udif
ugrade
uibounds
uicleanup
@@ -2602,6 +2617,7 @@
xcodebuild
xcpretty
xcprojpath
+ xcrun
xcscheme
xcsettings
xcworkspacedata
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6d79c1fc..0ed83c21 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
-### 1.6.7 (20394)
+### 1.6.7 (20435)
- Fixed a vulnerability which could expose device-account uuids.
+- Now generating Linux Arm64 server and test builds (currently built against Ubuntu 20).
+- Mac test builds are now Universal binaries (Arm64 & x86-64 versions bundled together).
+- Mac test builds are now notarized and distributed via a snazzy .dmg instead of a zip file, so the OS should no longer try to prevent you from running them.
+- Now, when pushing new builds to https://files.ballistica.net/bombsquad/builds , corresponding checksums are written to a different server and can be accessed via https://tools.ballistica.net/checksums
### 1.6.6 (20394)
- Beginning work on moving to new asset system.
diff --git a/Makefile b/Makefile
index 4fa5706a..3326bdc5 100644
--- a/Makefile
+++ b/Makefile
@@ -897,8 +897,8 @@ clion-staging: assets-cmake resources meta
# if using this on other platforms.
CPUS = $(shell getconf _NPROCESSORS_ONLN || echo 8)
PROJ_DIR = ${abspath ${CURDIR}}
-VERSION = $(shell tools/pcommand version_utils version)
-BUILD_NUMBER = $(shell tools/pcommand version_utils build)
+VERSION = $(shell tools/pcommand version version)
+BUILD_NUMBER = $(shell tools/pcommand version build)
BUILD_DIR = ${PROJ_DIR}/build
LAZYBUILDDIR = .cache/lazybuild
STAGE_ASSETS = ${PROJ_DIR}/tools/pcommand stage_assets
diff --git a/assets/.asset_manifest_public.json b/assets/.asset_manifest_public.json
index 2fe16361..6431ecdd 100644
--- a/assets/.asset_manifest_public.json
+++ b/assets/.asset_manifest_public.json
@@ -340,10 +340,12 @@
"ba_data/python/bastd/ui/account/__pycache__/link.cpython-39.opt-1.pyc",
"ba_data/python/bastd/ui/account/__pycache__/settings.cpython-39.opt-1.pyc",
"ba_data/python/bastd/ui/account/__pycache__/unlink.cpython-39.opt-1.pyc",
+ "ba_data/python/bastd/ui/account/__pycache__/v2.cpython-39.opt-1.pyc",
"ba_data/python/bastd/ui/account/__pycache__/viewer.cpython-39.opt-1.pyc",
"ba_data/python/bastd/ui/account/link.py",
"ba_data/python/bastd/ui/account/settings.py",
"ba_data/python/bastd/ui/account/unlink.py",
+ "ba_data/python/bastd/ui/account/v2.py",
"ba_data/python/bastd/ui/account/viewer.py",
"ba_data/python/bastd/ui/achievements.py",
"ba_data/python/bastd/ui/appinvite.py",
diff --git a/assets/Makefile b/assets/Makefile
index fc10a0e5..1129328a 100644
--- a/assets/Makefile
+++ b/assets/Makefile
@@ -279,6 +279,7 @@ SCRIPT_TARGETS_PY_PUBLIC = \
build/ba_data/python/bastd/ui/account/link.py \
build/ba_data/python/bastd/ui/account/settings.py \
build/ba_data/python/bastd/ui/account/unlink.py \
+ build/ba_data/python/bastd/ui/account/v2.py \
build/ba_data/python/bastd/ui/account/viewer.py \
build/ba_data/python/bastd/ui/achievements.py \
build/ba_data/python/bastd/ui/appinvite.py \
@@ -525,6 +526,7 @@ SCRIPT_TARGETS_PYC_PUBLIC = \
build/ba_data/python/bastd/ui/account/__pycache__/link.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/account/__pycache__/settings.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/account/__pycache__/unlink.cpython-39.opt-1.pyc \
+ build/ba_data/python/bastd/ui/account/__pycache__/v2.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/account/__pycache__/viewer.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/__pycache__/achievements.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/__pycache__/appinvite.cpython-39.opt-1.pyc \
diff --git a/assets/src/ba_data/python/_ba.py b/assets/src/ba_data/python/_ba.py
index 1aa28701..f67d9196 100644
--- a/assets/src/ba_data/python/_ba.py
+++ b/assets/src/ba_data/python/_ba.py
@@ -2170,8 +2170,11 @@ def get_low_level_config_value(key: str, default_value: int) -> int:
return int()
-def get_master_server_address(source: int = -1, version: int = 1) -> str:
- """get_master_server_address(source: int = -1, version: int = 1) -> str
+def get_master_server_address(source: int = -1,
+ version: int = 1,
+ internal: bool = False) -> str:
+ """get_master_server_address(source: int = -1, version: int = 1,
+ internal: bool = False) -> str
(internal)
@@ -2392,6 +2395,14 @@ def get_ui_input_device() -> ba.InputDevice:
return ba.InputDevice()
+def get_v2_fleet() -> str:
+ """get_v2_fleet() -> str
+
+ (internal)
+ """
+ return str()
+
+
# Show that our return type varies based on "doraise" value:
@overload
def getactivity(doraise: Literal[True] = True) -> ba.Activity:
diff --git a/assets/src/ba_data/python/ba/_app.py b/assets/src/ba_data/python/ba/_app.py
index 2ae720f6..27b3597d 100644
--- a/assets/src/ba_data/python/ba/_app.py
+++ b/assets/src/ba_data/python/ba/_app.py
@@ -348,7 +348,7 @@ class App:
# Debugging - make note if we're using the local test server so we
# don't accidentally leave it on in a release.
- # FIXME - should move this to the native layer.
+ # FIXME - should move these sort of warnings to the C++ layer.
server_addr = _ba.get_master_server_address()
if 'localhost' in server_addr:
_ba.timer(2.0,
@@ -391,6 +391,8 @@ class App:
# from ba._dependency import test_depset
# test_depset()
+ if bool(False):
+ self._test_https()
def on_app_pause(self) -> None:
"""Called when the app goes to a suspended state."""
@@ -584,6 +586,8 @@ class App:
try:
with urllib.request.urlopen('https://example.com') as url:
val = url.read()
+ _ba.screenmessage('HTTPS SUCCESS!')
print('HTTPS TEST SUCCESS', len(val))
except Exception as exc:
+ _ba.screenmessage('HTTPS FAIL.')
print('HTTPS TEST FAIL:', exc)
diff --git a/assets/src/ba_data/python/ba/_coopsession.py b/assets/src/ba_data/python/ba/_coopsession.py
index 1dab1e1b..15259ea2 100644
--- a/assets/src/ba_data/python/ba/_coopsession.py
+++ b/assets/src/ba_data/python/ba/_coopsession.py
@@ -364,7 +364,8 @@ class CoopSession(Session):
raise RuntimeError('FIXME')
else:
if results.scoretype is not ScoreType.POINTS:
- print(f'Unknown ScoreType:' f' "{results.scoretype}"')
+ print(f'Unknown ScoreType:'
+ f' "{results.scoretype}"')
scoretype = 'points'
# Old coop-game-specific results; should migrate away from these.
diff --git a/assets/src/ba_data/python/ba/_net.py b/assets/src/ba_data/python/ba/_net.py
index c27f3dbb..ccbfc558 100644
--- a/assets/src/ba_data/python/ba/_net.py
+++ b/assets/src/ba_data/python/ba/_net.py
@@ -111,14 +111,15 @@ class MasterServerCallThread(threading.Thread):
if self._request_type == 'get':
response = urllib.request.urlopen(
urllib.request.Request(
- (_ba.get_master_server_address() + '/' +
+ (_ba.get_master_server_address(internal=True) + '/' +
self._request + '?' + parse.urlencode(self._data)),
None, {'User-Agent': _ba.app.user_agent_string}),
timeout=DEFAULT_REQUEST_TIMEOUT_SECONDS)
elif self._request_type == 'post':
response = urllib.request.urlopen(
urllib.request.Request(
- _ba.get_master_server_address() + '/' + self._request,
+ _ba.get_master_server_address(internal=True) + '/' +
+ self._request,
parse.urlencode(self._data).encode(),
{'User-Agent': _ba.app.user_agent_string}),
timeout=DEFAULT_REQUEST_TIMEOUT_SECONDS)
diff --git a/assets/src/ba_data/python/bastd/ui/account/__init__.py b/assets/src/ba_data/python/bastd/ui/account/__init__.py
index 9b1c446b..7bf7c132 100644
--- a/assets/src/ba_data/python/bastd/ui/account/__init__.py
+++ b/assets/src/ba_data/python/bastd/ui/account/__init__.py
@@ -10,17 +10,17 @@ import ba
def show_sign_in_prompt(account_type: str = None) -> None:
"""Bring up a prompt telling the user they must sign in."""
- from bastd.ui import confirm
+ from bastd.ui.confirm import ConfirmWindow
from bastd.ui.account import settings
if account_type == 'Google Play':
- confirm.ConfirmWindow(
+ ConfirmWindow(
ba.Lstr(resource='notSignedInGooglePlayErrorText'),
lambda: _ba.sign_in('Google Play'),
ok_text=ba.Lstr(resource='accountSettingsWindow.signInText'),
width=460,
height=130)
else:
- confirm.ConfirmWindow(
+ ConfirmWindow(
ba.Lstr(resource='notSignedInErrorText'),
lambda: settings.AccountSettingsWindow(modal=True,
close_once_signed_in=True),
diff --git a/assets/src/ba_data/python/bastd/ui/account/settings.py b/assets/src/ba_data/python/bastd/ui/account/settings.py
index 3e517b1b..1a7d2641 100644
--- a/assets/src/ba_data/python/bastd/ui/account/settings.py
+++ b/assets/src/ba_data/python/bastd/ui/account/settings.py
@@ -25,6 +25,10 @@ class AccountSettingsWindow(ba.Window):
close_once_signed_in: bool = False):
# pylint: disable=too-many-statements
+ self._sign_in_game_circle_button: Optional[ba.Widget] = None
+ self._sign_in_v2_button: Optional[ba.Widget] = None
+ self._sign_in_device_button: Optional[ba.Widget] = None
+
self._close_once_signed_in = close_once_signed_in
ba.set_analytics_screen('Account Window')
@@ -86,6 +90,10 @@ class AccountSettingsWindow(ba.Window):
# exceptions.
self._show_sign_in_buttons.append('Local')
+ # Ditto with shiny new V2 ones.
+ if bool(False):
+ self._show_sign_in_buttons.append('V2')
+
top_extra = 15 if uiscale is ba.UIScale.SMALL else 0
super().__init__(root_widget=ba.containerwidget(
size=(self._width, self._height + top_extra),
@@ -206,12 +214,10 @@ class AccountSettingsWindow(ba.Window):
show_game_circle_sign_in_button = (account_state == 'signed_out'
and 'Game Circle'
in self._show_sign_in_buttons)
- show_ali_sign_in_button = (account_state == 'signed_out'
- and 'Ali' in self._show_sign_in_buttons)
- show_test_sign_in_button = (account_state == 'signed_out'
- and 'Test' in self._show_sign_in_buttons)
show_device_sign_in_button = (account_state == 'signed_out' and 'Local'
in self._show_sign_in_buttons)
+ show_v2_sign_in_button = (account_state == 'signed_out'
+ and 'V2' in self._show_sign_in_buttons)
sign_in_button_space = 70.0
show_game_service_button = (self._signed_in and account_type
@@ -223,9 +229,9 @@ class AccountSettingsWindow(ba.Window):
'allowAccountLinking2', False))
linked_accounts_text_space = 60.0
- show_achievements_button = (self._signed_in and account_type
- in ('Google Play', 'Alibaba', 'Local',
- 'OUYA', 'Test'))
+ show_achievements_button = (
+ self._signed_in
+ and account_type in ('Google Play', 'Alibaba', 'Local', 'OUYA'))
achievements_button_space = 60.0
show_achievements_text = (self._signed_in
@@ -255,8 +261,8 @@ class AccountSettingsWindow(ba.Window):
show_unlink_accounts_button = show_link_accounts_button
unlink_accounts_button_space = 90.0
- show_sign_out_button = (self._signed_in and account_type
- in ['Test', 'Local', 'Google Play'])
+ show_sign_out_button = (self._signed_in
+ and account_type in ['Local', 'Google Play'])
sign_out_button_space = 70.0
if self._subcontainer is not None:
@@ -272,12 +278,10 @@ class AccountSettingsWindow(ba.Window):
self._sub_height += sign_in_button_space
if show_game_circle_sign_in_button:
self._sub_height += sign_in_button_space
- if show_ali_sign_in_button:
- self._sub_height += sign_in_button_space
- if show_test_sign_in_button:
- self._sub_height += sign_in_button_space
if show_device_sign_in_button:
self._sub_height += sign_in_button_space
+ if show_v2_sign_in_button:
+ self._sub_height += sign_in_button_space
if show_game_service_button:
self._sub_height += game_service_button_space
if show_linked_accounts_text:
@@ -462,21 +466,42 @@ class AccountSettingsWindow(ba.Window):
ba.widget(edit=btn, show_buffer_bottom=40, show_buffer_top=100)
self._sign_in_text = None
- if show_ali_sign_in_button:
+ if show_v2_sign_in_button:
button_width = 350
v -= sign_in_button_space
- self._sign_in_ali_button = btn = ba.buttonwidget(
+ self._sign_in_v2_button = btn = ba.buttonwidget(
parent=self._subcontainer,
position=((self._sub_width - button_width) * 0.5, v - 20),
autoselect=True,
size=(button_width, 60),
- label=ba.Lstr(value='${A}${B}',
- subs=[('${A}',
- ba.charstr(ba.SpecialChar.ALIBABA_LOGO)),
- ('${B}',
- ba.Lstr(resource=self._r + '.signInText'))
- ]),
- on_activate_call=lambda: self._sign_in_press('Ali'))
+ label='',
+ on_activate_call=self._v2_sign_in_press)
+ ba.textwidget(
+ parent=self._subcontainer,
+ draw_controller=btn,
+ h_align='center',
+ v_align='center',
+ size=(0, 0),
+ position=(self._sub_width * 0.5, v + 17),
+ text=ba.Lstr(
+ value='${A}${B}',
+ subs=[('${A}', ba.charstr(ba.SpecialChar.V2_LOGO)),
+ ('${B}',
+ ba.Lstr(resource=self._r + '.signInWithV2Text'))]),
+ maxwidth=button_width * 0.8,
+ color=(0.75, 1.0, 0.7))
+ ba.textwidget(parent=self._subcontainer,
+ draw_controller=btn,
+ h_align='center',
+ v_align='center',
+ size=(0, 0),
+ position=(self._sub_width * 0.5, v - 4),
+ text=ba.Lstr(resource=self._r +
+ '.signInWithV2InfoText'),
+ flatness=1.0,
+ scale=0.57,
+ maxwidth=button_width * 0.9,
+ color=(0.55, 0.8, 0.5))
if first_selectable is None:
first_selectable = btn
if ba.app.ui.use_toolbars:
@@ -532,53 +557,6 @@ class AccountSettingsWindow(ba.Window):
ba.widget(edit=btn, show_buffer_bottom=40, show_buffer_top=100)
self._sign_in_text = None
- # Old test-account option.
- if show_test_sign_in_button:
- button_width = 350
- v -= sign_in_button_space
- self._sign_in_test_button = btn = ba.buttonwidget(
- parent=self._subcontainer,
- position=((self._sub_width - button_width) * 0.5, v - 20),
- autoselect=True,
- size=(button_width, 60),
- label='',
- on_activate_call=lambda: self._sign_in_press('Test'))
- ba.textwidget(parent=self._subcontainer,
- draw_controller=btn,
- h_align='center',
- v_align='center',
- size=(0, 0),
- position=(self._sub_width * 0.5, v + 17),
- text=ba.Lstr(
- value='${A}${B}',
- subs=[('${A}',
- ba.charstr(ba.SpecialChar.TEST_ACCOUNT)),
- ('${B}',
- ba.Lstr(resource=self._r +
- '.signInWithTestAccountText'))]),
- maxwidth=button_width * 0.8,
- color=(0.75, 1.0, 0.7))
- ba.textwidget(parent=self._subcontainer,
- draw_controller=btn,
- h_align='center',
- v_align='center',
- size=(0, 0),
- position=(self._sub_width * 0.5, v - 4),
- text=ba.Lstr(resource=self._r +
- '.signInWithTestAccountInfoText'),
- flatness=1.0,
- scale=0.57,
- maxwidth=button_width * 0.9,
- color=(0.55, 0.8, 0.5))
- if first_selectable is None:
- first_selectable = btn
- if ba.app.ui.use_toolbars:
- ba.widget(edit=btn,
- right_widget=_ba.get_special_widget('party_button'))
- ba.widget(edit=btn, left_widget=bbtn)
- ba.widget(edit=btn, show_buffer_bottom=40, show_buffer_top=100)
- self._sign_in_text = None
-
if show_player_profiles_button:
button_width = 300
v -= player_profiles_button_space
@@ -1051,6 +1029,12 @@ class AccountSettingsWindow(ba.Window):
self._needs_refresh = True
ba.timer(0.1, ba.WeakCall(self._update), timetype=ba.TimeType.REAL)
+ def _v2_sign_in_press(self) -> None:
+ # pylint: disable=cyclic-import
+ from bastd.ui.account.v2 import V2SignInWindow
+ assert self._sign_in_v2_button is not None
+ V2SignInWindow(origin_widget=self._sign_in_v2_button)
+
def _reset_progress(self) -> None:
try:
from ba.internal import getcampaign
diff --git a/assets/src/ba_data/python/bastd/ui/account/v2.py b/assets/src/ba_data/python/bastd/ui/account/v2.py
new file mode 100644
index 00000000..739edd4f
--- /dev/null
+++ b/assets/src/ba_data/python/bastd/ui/account/v2.py
@@ -0,0 +1,92 @@
+# Released under the MIT License. See LICENSE for details.
+#
+"""V2 account ui bits."""
+
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+import ba
+import _ba
+
+if TYPE_CHECKING:
+ from typing import Any, Optional
+
+
+class V2SignInWindow(ba.Window):
+ """A window allowing signing in to a v2 account."""
+
+ def __init__(self, origin_widget: ba.Widget):
+ from ba.internal import is_browser_likely_available
+ logincode = '1412345'
+ address = (
+ f'{_ba.get_master_server_address(version=2)}?login={logincode}')
+ self._width = 600
+ self._height = 500
+ uiscale = ba.app.ui.uiscale
+ super().__init__(root_widget=ba.containerwidget(
+ size=(self._width, self._height),
+ transition='in_scale',
+ scale_origin_stack_offset=origin_widget.get_screen_space_center(),
+ scale=(1.25 if uiscale is ba.UIScale.SMALL else
+ 1.0 if uiscale is ba.UIScale.MEDIUM else 0.85)))
+
+ ba.textwidget(
+ parent=self._root_widget,
+ position=(self._width * 0.5, self._height - 85),
+ size=(0, 0),
+ text=ba.Lstr(
+ resource='accountSettingsWindow.v2LinkInstructionsText'),
+ color=ba.app.ui.title_color,
+ maxwidth=self._width * 0.9,
+ h_align='center',
+ v_align='center')
+ button_width = 450
+ if is_browser_likely_available():
+ ba.buttonwidget(parent=self._root_widget,
+ position=((self._width * 0.5 - button_width * 0.5),
+ self._height - 175),
+ autoselect=True,
+ size=(button_width, 60),
+ label=ba.Lstr(value=address),
+ color=(0.55, 0.5, 0.6),
+ textcolor=(0.75, 0.7, 0.8),
+ on_activate_call=lambda: ba.open_url(address))
+ qroffs = 0.0
+ else:
+ ba.textwidget(parent=self._root_widget,
+ position=(self._width * 0.5, self._height - 135),
+ size=(0, 0),
+ text=ba.Lstr(value=address),
+ flatness=1.0,
+ maxwidth=self._width,
+ scale=0.75,
+ h_align='center',
+ v_align='center')
+ qroffs = 20.0
+
+ self._cancel_button = ba.buttonwidget(
+ parent=self._root_widget,
+ position=(30, self._height - 55),
+ size=(130, 50),
+ scale=0.8,
+ label=ba.Lstr(resource='cancelText'),
+ # color=(0.6, 0.5, 0.6),
+ on_activate_call=self._done,
+ autoselect=True,
+ textcolor=(0.75, 0.7, 0.8),
+ # icon=ba.gettexture('crossOut'),
+ # iconscale=1.2
+ )
+ ba.containerwidget(edit=self._root_widget,
+ cancel_button=self._cancel_button)
+
+ qr_size = 270
+ ba.imagewidget(parent=self._root_widget,
+ position=(self._width * 0.5 - qr_size * 0.5,
+ self._height * 0.34 + qroffs - qr_size * 0.5),
+ size=(qr_size, qr_size),
+ texture=_ba.get_qrcode_texture(address))
+
+ def _done(self) -> None:
+ ba.containerwidget(edit=self._root_widget, transition='out_scale')
diff --git a/ballisticacore-cmake/.idea/dictionaries/ericf.xml b/ballisticacore-cmake/.idea/dictionaries/ericf.xml
index 905d9005..ba5b65d9 100644
--- a/ballisticacore-cmake/.idea/dictionaries/ericf.xml
+++ b/ballisticacore-cmake/.idea/dictionaries/ericf.xml
@@ -409,6 +409,7 @@
fromini
frompos
frontmost
+ fsum
ftos
ftou
fullpath
@@ -437,6 +438,7 @@
getcollidemodel
getdata
gethostbyname
+ getifaddr
getifaddrs
getinputdevice
getline
@@ -482,6 +484,7 @@
haveint
havn't
havnt
+ hdiutil
healthcare
hexval
highp
@@ -599,6 +602,7 @@
lockpath
lockstr
locktype
+ logincode
logmsg
logpath
logprefix
@@ -627,6 +631,7 @@
macmusicappsetvolume
macmusicappstop
macos
+ macpackage
magoogan
magua
mainmenu
@@ -639,6 +644,7 @@
maskhigh
maskuv
masterver
+ mastervers
maximus
maxtries
maxwidth
@@ -728,7 +734,10 @@
noninteractively
nonlint
noone
+ notarytool
nothin
+ notorize
+ notorized
nowtickets
nptr
nsize
@@ -868,6 +877,7 @@
pver
pverraw
pvrtc
+ pybuildapple
pycommand
pyconfig
pycontext
@@ -883,6 +893,7 @@
qrel
qrencode
qrinput
+ qroffs
qrspec
quadtreespace
qual
@@ -990,6 +1001,7 @@
setsockopt
sgis
sharedobj
+ shasum
shhh
shifthigh
shouldnt
@@ -1017,6 +1029,7 @@
spinup
spivak
srcattr
+ srcfolder
srcpath
srcsz
sresult
@@ -1138,6 +1151,8 @@
typestr
tzpath
uber
+ udbz
+ udif
uibounds
uiid
unblessed
@@ -1221,6 +1236,7 @@
wunused
wvmpth
xclamped
+ xcrun
xdiff
xdist
xinput
diff --git a/docs/ba_module.md b/docs/ba_module.md
index 48598500..f5036fd3 100644
--- a/docs/ba_module.md
+++ b/docs/ba_module.md
@@ -1,5 +1,5 @@
-last updated on 2022-01-25 for Ballistica version 1.6.7 build 20427
+last updated on 2022-02-01 for Ballistica version 1.6.7 build 20436
This page documents the Python classes and functions in the 'ba' module,
which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please let me know. Happy modding!
@@ -5633,6 +5633,7 @@ of the session.
FLAG_PHILIPPINES
FLAG_CHILE
MIKIROG
+V2_LOGO
ba.StandLocation
diff --git a/src/ballistica/ballistica.cc b/src/ballistica/ballistica.cc
index 3d16e60d..6a089a83 100644
--- a/src/ballistica/ballistica.cc
+++ b/src/ballistica/ballistica.cc
@@ -21,7 +21,7 @@
namespace ballistica {
// These are set automatically via script; don't modify them here.
-const int kAppBuildNumber = 20427;
+const int kAppBuildNumber = 20436;
const char* kAppVersion = "1.6.7";
// Our standalone globals.
diff --git a/src/ballistica/core/types.h b/src/ballistica/core/types.h
index 5ad44dfb..ffff71ba 100644
--- a/src/ballistica/core/types.h
+++ b/src/ballistica/core/types.h
@@ -398,6 +398,7 @@ enum class SpecialChar {
kFlagPhilippines,
kFlagChile,
kMikirog,
+ kV2Logo,
kLast // Sentinel
};
diff --git a/src/ballistica/game/game.cc b/src/ballistica/game/game.cc
index 8613f760..6f5d111b 100644
--- a/src/ballistica/game/game.cc
+++ b/src/ballistica/game/game.cc
@@ -224,6 +224,7 @@ void Game::InitSpecialChars() {
special_char_strings_[SpecialChar::kFlagChile] = "\xee\x81\xA1";
special_char_strings_[SpecialChar::kMikirog] = "\xee\x81\xA2";
+ special_char_strings_[SpecialChar::kV2Logo] = "\xee\x81\xA3";
}
void Game::SetGameRoster(cJSON* r) {
diff --git a/src/ballistica/graphics/text/text_graphics.cc b/src/ballistica/graphics/text/text_graphics.cc
index b4de0aa2..1ff4efde 100644
--- a/src/ballistica/graphics/text/text_graphics.cc
+++ b/src/ballistica/graphics/text/text_graphics.cc
@@ -63,7 +63,7 @@ TextGraphics::TextGraphics() {
}
// Same with the logo and all the icons on sheets 3 and 4.
- if (index == 30 || (index >= 50 && index < 100)) {
+ if (index == 30 || (index >= 50 && index < 99)) {
// A few are *extra* big
if (index == 67 || index == 65 || index == 70 || index == 72
|| index == 73 || index == 75 || index == 76 || index == 78
@@ -80,6 +80,13 @@ TextGraphics::TextGraphics() {
g.y_size *= 0.55f;
}
}
+ // Special case for v2 logo.
+ if (index == 99) {
+ g.pen_offset_y += 0.25f;
+ extra_advance += 0.12f;
+ g.x_size *= 0.75f;
+ g.y_size *= 0.75f;
+ }
g.advance = g.x_size - 0.09f + extra_advance;
// Ticket overlay should be big and shouldn't advance us at all.
diff --git a/tools/batools/build.py b/tools/batools/build.py
index c72bf3a4..f6c5df0a 100644
--- a/tools/batools/build.py
+++ b/tools/batools/build.py
@@ -31,20 +31,20 @@ class PipRequirement:
# Note: we look directly for modules when possible instead of just pip
# entries; this accounts for manual installations or other nonstandard setups.
PIP_REQUIREMENTS = [
- PipRequirement(modulename='pylint', minversion=[2, 12, 1]),
- PipRequirement(modulename='mypy', minversion=[0, 930]),
- PipRequirement(modulename='yapf', minversion=[0, 31, 0]),
+ PipRequirement(modulename='pylint', minversion=[2, 12, 2]),
+ PipRequirement(modulename='mypy', minversion=[0, 931]),
+ PipRequirement(modulename='yapf', minversion=[0, 32, 0]),
PipRequirement(modulename='cpplint', minversion=[1, 5, 5]),
- PipRequirement(modulename='pytest', minversion=[6, 2, 4]),
+ PipRequirement(modulename='pytest', minversion=[6, 2, 5]),
PipRequirement(modulename='pytz'),
PipRequirement(modulename='ansiwrap'),
PipRequirement(modulename='yaml', pipname='PyYAML'),
PipRequirement(modulename='requests'),
- PipRequirement(pipname='typing_extensions', minversion=[4, 0, 0]),
- PipRequirement(pipname='types-filelock', minversion=[0, 1, 5]),
- PipRequirement(pipname='types-requests', minversion=[2, 25, 6]),
- PipRequirement(pipname='types-pytz', minversion=[2021, 1, 2]),
- PipRequirement(pipname='types-PyYAML', minversion=[5, 4, 6]),
+ PipRequirement(pipname='typing_extensions', minversion=[4, 0, 1]),
+ PipRequirement(pipname='types-filelock', minversion=[3, 2, 5]),
+ PipRequirement(pipname='types-requests', minversion=[2, 27, 7]),
+ PipRequirement(pipname='types-pytz', minversion=[2021, 3, 4]),
+ PipRequirement(pipname='types-PyYAML', minversion=[6, 0, 3]),
]
# Parts of full-tests suite we only run on particular days.
@@ -178,7 +178,7 @@ def lazybuild(target: str, category: SourceCategory, command: str) -> None:
'Makefile', 'tools/batoolsinternal/meta.py',
'tools/batoolsinternal/pcommand.py', 'tools/batools/meta.py',
'tools/batools/pcommand.py', 'src/meta',
- 'tools/batools/pythonenumsmodule.py'
+ 'tools/batools/pythonenumsmodule.py', 'src/ballistica/core/types.h'
]
# Everything possibly affecting asset builds.
@@ -398,6 +398,10 @@ def gen_fulltest_buildfile_apple() -> None:
# noinspection PyListCreation
lines = []
+ # pybuildapple = 'tools/pcommand python_build_apple'
+ pybuildapple = ('tools/cloudshell --env tools fromini -- '
+ 'tools/pcommand python_build_apple')
+
# iOS stuff
lines.append('make ios-build')
lines.append('make ios-new-build')
@@ -406,9 +410,9 @@ def gen_fulltest_buildfile_apple() -> None:
extras = [e for e in extras if e.startswith('ios.')]
for extra in extras:
if extra == 'ios.pylibs':
- lines.append('tools/pcommand python_build_apple ios')
+ lines.append(f'{pybuildapple} ios')
elif extra == 'ios.pylibs.debug':
- lines.append('tools/pcommand python_build_apple_debug ios')
+ lines.append(f'{pybuildapple}_debug ios')
else:
raise RuntimeError(f'Unknown extra: {extra}')
@@ -419,9 +423,9 @@ def gen_fulltest_buildfile_apple() -> None:
extras = [e for e in extras if e.startswith('tvos.')]
for extra in extras:
if extra == 'tvos.pylibs':
- lines.append('tools/pcommand python_build_apple tvos')
+ lines.append(f'{pybuildapple} tvos')
elif extra == 'tvos.pylibs.debug':
- lines.append('tools/pcommand python_build_apple_debug tvos')
+ lines.append(f'{pybuildapple}_debug tvos')
else:
raise RuntimeError(f'Unknown extra: {extra}')
@@ -439,13 +443,13 @@ def gen_fulltest_buildfile_apple() -> None:
if extra == 'mac.package':
lines.append('make mac-package')
elif extra == 'mac.package.server.x86_64':
- lines.append('make mac-cloud-server-package-x86-64')
+ lines.append('make mac-server-package-x86-64')
elif extra == 'mac.package.server.arm64':
- lines.append('make mac-cloud-server-package-arm64')
+ lines.append('make mac-server-package-arm64')
elif extra == 'mac.pylibs':
- lines.append('tools/pcommand python_build_apple mac')
+ lines.append(f'{pybuildapple} mac')
elif extra == 'mac.pylibs.debug':
- lines.append('tools/pcommand python_build_apple_debug mac')
+ lines.append(f'{pybuildapple}_debug mac')
else:
raise RuntimeError(f'Unknown extra: {extra}')
diff --git a/tools/batools/pcommand.py b/tools/batools/pcommand.py
index 53423b78..74e2ccd1 100644
--- a/tools/batools/pcommand.py
+++ b/tools/batools/pcommand.py
@@ -171,9 +171,8 @@ def lazy_increment_build() -> None:
if not update_hash_only:
# Just go ahead and bless; this will increment the build as needed.
# subprocess.run(['make', 'bless'], check=True)
- subprocess.run(
- ['tools/pcommand', 'version_utils', 'incrementbuild'],
- check=True)
+ subprocess.run(['tools/pcommand', 'version', 'incrementbuild'],
+ check=True)
# We probably just changed code, so we need to re-calc the hash.
codehash = get_files_hash(codefiles)
@@ -187,7 +186,7 @@ def get_master_asset_src_dir() -> None:
import subprocess
import os
- master_assets_dir = '/Users/ericf/Dropbox/ballisticacore_master_assets'
+ master_assets_dir = '/Users/ericf/Documents/ballisticacore_master_assets'
dummy_dir = '/__DUMMY_MASTER_SRC_DISABLED_PATH__'
# Only apply this on my setup