diff --git a/.efrocachemap b/.efrocachemap index 7206fa65..8a51eada 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -1,425 +1,425 @@ { - "assets/build/ba_data/audio/achievement.ogg": "https://files.ballistica.net/cache/ba1/cb/ab/2d6ea35efc25d60a438e7ece17da", - "assets/build/ba_data/audio/actionHero1.ogg": "https://files.ballistica.net/cache/ba1/5f/f8/e28c70dae7478253a593055b7f39", - "assets/build/ba_data/audio/actionHero2.ogg": "https://files.ballistica.net/cache/ba1/a2/9c/1e5d37cc7f17faa51b8687bdfbdd", - "assets/build/ba_data/audio/actionHero3.ogg": "https://files.ballistica.net/cache/ba1/83/c6/af98a7f49372ee42ae4e13b94c1f", - "assets/build/ba_data/audio/actionHero4.ogg": "https://files.ballistica.net/cache/ba1/a1/ec/92187fe07c7104ecb95d592745ce", - "assets/build/ba_data/audio/actionHeroDeath.ogg": "https://files.ballistica.net/cache/ba1/b5/40/f13df4e9759bf6a07d16126ad209", - "assets/build/ba_data/audio/actionHeroFall.ogg": "https://files.ballistica.net/cache/ba1/f6/e2/e79abf259be67f747227f703897b", - "assets/build/ba_data/audio/actionHeroHit1.ogg": "https://files.ballistica.net/cache/ba1/5e/86/aad0e972ecd05cbb47c0d763ed94", - "assets/build/ba_data/audio/actionHeroHit2.ogg": "https://files.ballistica.net/cache/ba1/b3/3b/061719631d7b6456007fee1ea7cb", - "assets/build/ba_data/audio/activateBeep.ogg": "https://files.ballistica.net/cache/ba1/78/5e/925c8c553299727135831a57b70e", - "assets/build/ba_data/audio/agent1.ogg": "https://files.ballistica.net/cache/ba1/19/73/5845fb4cb3452a4e7cc406d6c308", - "assets/build/ba_data/audio/agent2.ogg": "https://files.ballistica.net/cache/ba1/32/7f/ca537f1df01d03a883edd3e56465", - "assets/build/ba_data/audio/agent3.ogg": "https://files.ballistica.net/cache/ba1/bb/8a/543d0f44b6c7e7435f309db67830", - "assets/build/ba_data/audio/agent4.ogg": "https://files.ballistica.net/cache/ba1/64/f7/968ec161fbd4664dcb02adad36bc", - "assets/build/ba_data/audio/agentDeath.ogg": "https://files.ballistica.net/cache/ba1/cc/eb/0f4fb1f08488b983696f9bae1f04", - "assets/build/ba_data/audio/agentFall.ogg": "https://files.ballistica.net/cache/ba1/2b/07/8147ad5e3ed939b20917bca07ce7", - "assets/build/ba_data/audio/agentHit1.ogg": "https://files.ballistica.net/cache/ba1/28/97/81c2486a7f2a21b01c0c37897851", - "assets/build/ba_data/audio/agentHit2.ogg": "https://files.ballistica.net/cache/ba1/97/5b/68d5e47bcc38b41c1c021fca6734", - "assets/build/ba_data/audio/alarm.ogg": "https://files.ballistica.net/cache/ba1/e6/c7/494a9ab00fcbefcafc5708b965fc", - "assets/build/ba_data/audio/ali1.ogg": "https://files.ballistica.net/cache/ba1/ab/06/a5101ba8bf3ece607dcab63f638c", - "assets/build/ba_data/audio/ali2.ogg": "https://files.ballistica.net/cache/ba1/eb/30/68ed4470cd99fd9d5e92da402e79", - "assets/build/ba_data/audio/ali3.ogg": "https://files.ballistica.net/cache/ba1/08/45/fd48e69b43ad0c407a3c6538187d", - "assets/build/ba_data/audio/ali4.ogg": "https://files.ballistica.net/cache/ba1/64/82/010bfa0a8c42b16590fd3567a5d3", - "assets/build/ba_data/audio/aliDeath.ogg": "https://files.ballistica.net/cache/ba1/61/45/bc437757318afdaafcd939295257", - "assets/build/ba_data/audio/aliFall.ogg": "https://files.ballistica.net/cache/ba1/f1/35/4e5c372963c6151bf8c4e330add0", - "assets/build/ba_data/audio/aliHit1.ogg": "https://files.ballistica.net/cache/ba1/a1/bf/236d797fefd739a0faca9d43a05e", - "assets/build/ba_data/audio/aliHit2.ogg": "https://files.ballistica.net/cache/ba1/3e/63/dcb20edee20a60d5a1ed442aaeb9", - "assets/build/ba_data/audio/alien1.ogg": "https://files.ballistica.net/cache/ba1/92/1d/ecbba63b9a4f09362fdae312bbed", - "assets/build/ba_data/audio/alien2.ogg": "https://files.ballistica.net/cache/ba1/d6/47/894134eeb6d969d2ccd62325d54f", - "assets/build/ba_data/audio/alien3.ogg": "https://files.ballistica.net/cache/ba1/6d/14/2f5afc9cab01c13d4101014497cb", - "assets/build/ba_data/audio/alien4.ogg": "https://files.ballistica.net/cache/ba1/31/9e/cf4924e83b1295ac46e3ef6b3200", - "assets/build/ba_data/audio/alienDeath.ogg": "https://files.ballistica.net/cache/ba1/5c/06/88114cbc4523a6967fb068a31d72", - "assets/build/ba_data/audio/alienFall.ogg": "https://files.ballistica.net/cache/ba1/50/e6/19e2c76c858a0062e23630d2a739", - "assets/build/ba_data/audio/alienHit1.ogg": "https://files.ballistica.net/cache/ba1/67/62/a4501475b13c36e3cd20c08535a1", - "assets/build/ba_data/audio/alienHit2.ogg": "https://files.ballistica.net/cache/ba1/d5/c3/c4616a4d3a68a972bd53944839bb", - "assets/build/ba_data/audio/announceEight.ogg": "https://files.ballistica.net/cache/ba1/42/b1/e686feb97d65eaae220f8fcadfef", - "assets/build/ba_data/audio/announceFive.ogg": "https://files.ballistica.net/cache/ba1/61/a4/7436a7c49e99630ff02d342399c3", - "assets/build/ba_data/audio/announceFour.ogg": "https://files.ballistica.net/cache/ba1/3e/48/20584897c0b9a834dec42da0abbd", - "assets/build/ba_data/audio/announceNine.ogg": "https://files.ballistica.net/cache/ba1/53/e0/6e3980f8662d57259735a1ba74a9", - "assets/build/ba_data/audio/announceOne.ogg": "https://files.ballistica.net/cache/ba1/bb/d8/23d80294d743605ffe300bc13c67", - "assets/build/ba_data/audio/announceSeven.ogg": "https://files.ballistica.net/cache/ba1/c0/70/32a7f0985cb4da92ab54a353434f", - "assets/build/ba_data/audio/announceSix.ogg": "https://files.ballistica.net/cache/ba1/81/8d/a4adf86b22c56301e775eb5ec7c8", - "assets/build/ba_data/audio/announceTen.ogg": "https://files.ballistica.net/cache/ba1/e1/fa/14a0e93ab607c0d0cb59e44d2595", - "assets/build/ba_data/audio/announceThree.ogg": "https://files.ballistica.net/cache/ba1/82/c4/9a3f54546bb67069d4eb28e14bb7", - "assets/build/ba_data/audio/announceTwo.ogg": "https://files.ballistica.net/cache/ba1/75/41/888c7b22351424e71527792c9e2f", - "assets/build/ba_data/audio/assassin1.ogg": "https://files.ballistica.net/cache/ba1/65/d9/1f1d586e426935f4e42d613bf229", - "assets/build/ba_data/audio/assassin2.ogg": "https://files.ballistica.net/cache/ba1/c2/1a/46720c6613b6aa32ece147707383", - "assets/build/ba_data/audio/assassin3.ogg": "https://files.ballistica.net/cache/ba1/e9/4a/42a2dc60b7b889b8ac446fa2bca5", - "assets/build/ba_data/audio/assassin4.ogg": "https://files.ballistica.net/cache/ba1/56/5c/fc77452f83d8f37b2dac7d1b429c", - "assets/build/ba_data/audio/assassinDeath.ogg": "https://files.ballistica.net/cache/ba1/bd/ee/e9e36b97abf7b59e20bacc1cfb06", - "assets/build/ba_data/audio/assassinFall.ogg": "https://files.ballistica.net/cache/ba1/18/a6/613c0cdc89266d007e30942cf933", - "assets/build/ba_data/audio/assassinHit1.ogg": "https://files.ballistica.net/cache/ba1/ed/c5/288fd1d3b1f046e54fe15bfbb0cb", - "assets/build/ba_data/audio/assassinHit2.ogg": "https://files.ballistica.net/cache/ba1/9e/3a/6599fd2c5b164e323f0c1520cd54", - "assets/build/ba_data/audio/bear1.ogg": "https://files.ballistica.net/cache/ba1/4f/56/abd87a1509aae2fe2a916a838738", - "assets/build/ba_data/audio/bear2.ogg": "https://files.ballistica.net/cache/ba1/5a/79/e3d5eb66dad4419a444ef9e78800", - "assets/build/ba_data/audio/bear3.ogg": "https://files.ballistica.net/cache/ba1/40/41/fc30bda6d0512c65f0f5c2af5fd6", - "assets/build/ba_data/audio/bear4.ogg": "https://files.ballistica.net/cache/ba1/11/d0/2098ad6707eb3990ebfa247ed2aa", - "assets/build/ba_data/audio/bearDeath.ogg": "https://files.ballistica.net/cache/ba1/43/7d/f55df97e3ece6d0a35131a7cbd8e", - "assets/build/ba_data/audio/bearFall.ogg": "https://files.ballistica.net/cache/ba1/b8/11/a8fc8e12c61284355395b66f1208", - "assets/build/ba_data/audio/bearHit1.ogg": "https://files.ballistica.net/cache/ba1/d5/5c/401deb576e2b33abecce9f11a1c3", - "assets/build/ba_data/audio/bearHit2.ogg": "https://files.ballistica.net/cache/ba1/f5/c3/f9045d531d4f6a94345f23eef7c2", - "assets/build/ba_data/audio/bellHigh.ogg": "https://files.ballistica.net/cache/ba1/83/12/2563f760c5708d07131b62a3205c", - "assets/build/ba_data/audio/bellLow.ogg": "https://files.ballistica.net/cache/ba1/0c/e7/0b7f120498c93f4b73d9605a9c05", - "assets/build/ba_data/audio/bellMed.ogg": "https://files.ballistica.net/cache/ba1/3c/86/0ffdef9573bed45f5c02b16a0a9c", - "assets/build/ba_data/audio/bigImpact.ogg": "https://files.ballistica.net/cache/ba1/a9/33/6d6856fce790ea58725968ee994f", - "assets/build/ba_data/audio/bigImpact2.ogg": "https://files.ballistica.net/cache/ba1/79/78/c5ae3896392876024d0dc5b09abe", - "assets/build/ba_data/audio/blank.ogg": "https://files.ballistica.net/cache/ba1/36/34/1091be93fc4de625b349619e5d4a", - "assets/build/ba_data/audio/blip.ogg": "https://files.ballistica.net/cache/ba1/56/6a/0a9ce1a16ff567346b5274d4d3fc", - "assets/build/ba_data/audio/block.ogg": "https://files.ballistica.net/cache/ba1/94/8b/612f7219dda2ab10bc915826bc1d", - "assets/build/ba_data/audio/bombDrop01.ogg": "https://files.ballistica.net/cache/ba1/48/e4/7059abf02828e2b2028ece33d4fb", - "assets/build/ba_data/audio/bombDrop02.ogg": "https://files.ballistica.net/cache/ba1/c4/09/667eaeab8e953e266b2590174392", - "assets/build/ba_data/audio/bombRoll01.ogg": "https://files.ballistica.net/cache/ba1/eb/e6/449ff777ac20f3dde1dbc8fcbae5", - "assets/build/ba_data/audio/bones1.ogg": "https://files.ballistica.net/cache/ba1/86/9e/cdc4cc56d18de403c997721c296e", - "assets/build/ba_data/audio/bones2.ogg": "https://files.ballistica.net/cache/ba1/a4/27/84d4389613cb70e6b6b01c518342", - "assets/build/ba_data/audio/bones3.ogg": "https://files.ballistica.net/cache/ba1/b5/75/8fc4027848a6b070d8a5d738c46f", - "assets/build/ba_data/audio/bonesDeath.ogg": "https://files.ballistica.net/cache/ba1/6b/b6/0297afbded9af2527b42229a8594", - "assets/build/ba_data/audio/bonesFall.ogg": "https://files.ballistica.net/cache/ba1/fc/6c/83feba62ebdefa5c54fab3e1ff7f", - "assets/build/ba_data/audio/boo.ogg": "https://files.ballistica.net/cache/ba1/ec/db/582d0730aa22e1f96329e7b5bd22", - "assets/build/ba_data/audio/boxDrop.ogg": "https://files.ballistica.net/cache/ba1/ca/32/f71e4e7c6c821fe3cedf729ceda6", - "assets/build/ba_data/audio/boxingBell.ogg": "https://files.ballistica.net/cache/ba1/d9/f6/a76ab7158580e9900cf8b09dc5c7", - "assets/build/ba_data/audio/bunny1.ogg": "https://files.ballistica.net/cache/ba1/50/3d/ded806bbb47d207d85487989ef75", - "assets/build/ba_data/audio/bunny2.ogg": "https://files.ballistica.net/cache/ba1/6c/0c/1a7063168bb67d625f095409ba22", - "assets/build/ba_data/audio/bunny3.ogg": "https://files.ballistica.net/cache/ba1/77/40/5c29e993c896e5aac26173c297bc", - "assets/build/ba_data/audio/bunny4.ogg": "https://files.ballistica.net/cache/ba1/b9/8e/2c3a9bc55c140bea8b22bfc74e05", - "assets/build/ba_data/audio/bunnyDeath.ogg": "https://files.ballistica.net/cache/ba1/c8/b6/0fae511916818a5d2e96f997bd53", - "assets/build/ba_data/audio/bunnyFall.ogg": "https://files.ballistica.net/cache/ba1/16/42/f56c2241fc379d4fed2e859de91d", - "assets/build/ba_data/audio/bunnyHit1.ogg": "https://files.ballistica.net/cache/ba1/ed/19/4c7adb273ecd9a4daeb0aa1871e7", - "assets/build/ba_data/audio/bunnyHit2.ogg": "https://files.ballistica.net/cache/ba1/56/46/6089ad88b17cc7b54cb8278e0827", - "assets/build/ba_data/audio/bunnyJump.ogg": "https://files.ballistica.net/cache/ba1/51/89/51bf0ef263ce6e93fe4952053ee2", - "assets/build/ba_data/audio/cashRegister.ogg": "https://files.ballistica.net/cache/ba1/19/ba/474d5016013849089bd53fea405b", - "assets/build/ba_data/audio/cashRegister2.ogg": "https://files.ballistica.net/cache/ba1/57/2a/9f46332bf8fec2f9edeb1e2b41d0", - "assets/build/ba_data/audio/charSelectMusic.ogg": "https://files.ballistica.net/cache/ba1/88/43/ca42428df5ddd98afcdc230d3bfa", - "assets/build/ba_data/audio/cheer.ogg": "https://files.ballistica.net/cache/ba1/88/d3/7c4a6ce953e32bea70f2a960aa2d", - "assets/build/ba_data/audio/click01.ogg": "https://files.ballistica.net/cache/ba1/46/52/58ade1fd15a5b105156d94435dc7", - "assets/build/ba_data/audio/corkPop.ogg": "https://files.ballistica.net/cache/ba1/bb/64/00f03c3c8dc1a4de948135d0313b", - "assets/build/ba_data/audio/cowboy1.ogg": "https://files.ballistica.net/cache/ba1/68/13/107eb7b0ab45fe2c97c20d0aa0d1", - "assets/build/ba_data/audio/cowboy2.ogg": "https://files.ballistica.net/cache/ba1/4e/20/d14b17a7c7dfd6c1e7a581ab7c13", - "assets/build/ba_data/audio/cowboy3.ogg": "https://files.ballistica.net/cache/ba1/b3/13/24d779bccb5d629232bad9561696", - "assets/build/ba_data/audio/cowboy4.ogg": "https://files.ballistica.net/cache/ba1/45/4f/e74a3a2af2266f6cb84634794b43", - "assets/build/ba_data/audio/cowboyDeath.ogg": "https://files.ballistica.net/cache/ba1/32/60/f8f038fd6051536073aeb3afc8f6", - "assets/build/ba_data/audio/cowboyFall.ogg": "https://files.ballistica.net/cache/ba1/1a/7b/40760c8cf56f49cfd5f50ebeb1b8", - "assets/build/ba_data/audio/cowboyHit1.ogg": "https://files.ballistica.net/cache/ba1/a3/11/ed69e9bf10790291bdc4ff58c4f3", - "assets/build/ba_data/audio/cowboyHit2.ogg": "https://files.ballistica.net/cache/ba1/c6/50/1fd260288b18d4713de3953ff80b", - "assets/build/ba_data/audio/crowdChant.ogg": "https://files.ballistica.net/cache/ba1/0a/84/2866198cedd9f6d6130cb1c515b4", - "assets/build/ba_data/audio/cyborg1.ogg": "https://files.ballistica.net/cache/ba1/e3/9f/471f6a84f196ed866b2174bf9c92", - "assets/build/ba_data/audio/cyborg2.ogg": "https://files.ballistica.net/cache/ba1/43/58/d8eaf3477f352bf2639f6bc69338", - "assets/build/ba_data/audio/cyborg3.ogg": "https://files.ballistica.net/cache/ba1/91/71/6eca76defc42c58c0e4d3a563cce", - "assets/build/ba_data/audio/cyborg4.ogg": "https://files.ballistica.net/cache/ba1/34/62/4ff3eafad0116710a8b43167899d", - "assets/build/ba_data/audio/cyborgDeath.ogg": "https://files.ballistica.net/cache/ba1/39/15/2b868c62b7e57871f86456702e2d", - "assets/build/ba_data/audio/cyborgFall.ogg": "https://files.ballistica.net/cache/ba1/5e/03/a97150ab79c3c5f6949f257f0d05", - "assets/build/ba_data/audio/cyborgHit1.ogg": "https://files.ballistica.net/cache/ba1/e9/2a/c2ceda9d5108ec9da01f6eaf6d66", - "assets/build/ba_data/audio/cyborgHit2.ogg": "https://files.ballistica.net/cache/ba1/f2/4a/57ca0f7f061c81894ae31240fb68", - "assets/build/ba_data/audio/cymbal.ogg": "https://files.ballistica.net/cache/ba1/65/3d/096ba6468a191c2bb0841715cf0e", - "assets/build/ba_data/audio/debrisFall.ogg": "https://files.ballistica.net/cache/ba1/c5/2c/daeea5fe8ee17bb98fccd964294d", - "assets/build/ba_data/audio/deek.ogg": "https://files.ballistica.net/cache/ba1/30/8c/7443bed085ff0142cf02a1212bd5", - "assets/build/ba_data/audio/deek2.ogg": "https://files.ballistica.net/cache/ba1/02/9b/d82898d809fcdc31536434c4664f", - "assets/build/ba_data/audio/ding.ogg": "https://files.ballistica.net/cache/ba1/a6/05/8d63d138a3def941a5fa3e9d29d8", - "assets/build/ba_data/audio/dingSmall.ogg": "https://files.ballistica.net/cache/ba1/2e/99/c2bbeb7ad34af7cdc2e5bdc0162e", - "assets/build/ba_data/audio/dingSmallHigh.ogg": "https://files.ballistica.net/cache/ba1/56/34/44a17eb4a03b0af4cda2635e6f9f", - "assets/build/ba_data/audio/dripity.ogg": "https://files.ballistica.net/cache/ba1/25/2c/a0c8f8b402266692fc619caecee9", - "assets/build/ba_data/audio/drumRoll.ogg": "https://files.ballistica.net/cache/ba1/77/1e/35b3f6e0536006c7cb49f0cb10df", - "assets/build/ba_data/audio/error.ogg": "https://files.ballistica.net/cache/ba1/66/94/51b1f7f236d527e5c6b7aaa38df4", - "assets/build/ba_data/audio/explosion01.ogg": "https://files.ballistica.net/cache/ba1/28/8b/354d177513c116e8ffe8c4a33170", - "assets/build/ba_data/audio/explosion02.ogg": "https://files.ballistica.net/cache/ba1/a2/85/7e036bfe7ca05f71d32da98c5f97", - "assets/build/ba_data/audio/explosion03.ogg": "https://files.ballistica.net/cache/ba1/a8/79/bece5fe5fd9f4e7d51efa1dc1456", - "assets/build/ba_data/audio/explosion04.ogg": "https://files.ballistica.net/cache/ba1/cb/21/360b3d69ad2f26ccba5357e39e1a", - "assets/build/ba_data/audio/explosion05.ogg": "https://files.ballistica.net/cache/ba1/ca/48/22180176ef8ca975c15dc0fe8fdf", - "assets/build/ba_data/audio/fanfare.ogg": "https://files.ballistica.net/cache/ba1/e9/08/ca9f982446c394120e8b1087c839", - "assets/build/ba_data/audio/flagCatcherMusic.ogg": "https://files.ballistica.net/cache/ba1/f8/4a/e6e9f5e1748fc0f5da61b4270051", - "assets/build/ba_data/audio/flyingMusic.ogg": "https://files.ballistica.net/cache/ba1/e0/50/ac8414bb072b1003689d2e25aa55", - "assets/build/ba_data/audio/foghorn.ogg": "https://files.ballistica.net/cache/ba1/ad/81/f239c532e098a75ec31b0ea1be18", - "assets/build/ba_data/audio/footImpact01.ogg": "https://files.ballistica.net/cache/ba1/95/cd/b1cdf4f368f181485364c4523e1f", - "assets/build/ba_data/audio/footImpact02.ogg": "https://files.ballistica.net/cache/ba1/cb/62/1aa42e0ffd1fc6a2d903d41c2ffb", - "assets/build/ba_data/audio/footImpact03.ogg": "https://files.ballistica.net/cache/ba1/1d/1e/51ac91bcb961f6919c239de832db", - "assets/build/ba_data/audio/forwardMarchMusic.ogg": "https://files.ballistica.net/cache/ba1/ae/e2/f126bdf270f6e0e0df8960d47e62", - "assets/build/ba_data/audio/freeze.ogg": "https://files.ballistica.net/cache/ba1/aa/09/04cfd6bd13c85d4fea0c1ea64cd2", - "assets/build/ba_data/audio/frosty01.ogg": "https://files.ballistica.net/cache/ba1/fe/2c/523d70333081c5a601754af177b8", - "assets/build/ba_data/audio/frosty02.ogg": "https://files.ballistica.net/cache/ba1/7e/31/ef9b158f59f7c2ba999d6e7ab659", - "assets/build/ba_data/audio/frosty03.ogg": "https://files.ballistica.net/cache/ba1/85/b0/c0af5d2822fb8b16d54547de91e0", - "assets/build/ba_data/audio/frosty04.ogg": "https://files.ballistica.net/cache/ba1/a5/30/8df73c185bfdea6ff68ade0cc1fd", - "assets/build/ba_data/audio/frosty05.ogg": "https://files.ballistica.net/cache/ba1/3d/51/8cdde58436dbf07811e17960530c", - "assets/build/ba_data/audio/frostyDeath.ogg": "https://files.ballistica.net/cache/ba1/81/4f/94d1d3a0a0d4d76ec157c9e62f5d", - "assets/build/ba_data/audio/frostyFall.ogg": "https://files.ballistica.net/cache/ba1/66/f1/189455d59d83befc748023eb5a3b", - "assets/build/ba_data/audio/frostyHit01.ogg": "https://files.ballistica.net/cache/ba1/93/b9/efb726844982629e84436eff6b70", - "assets/build/ba_data/audio/frostyHit02.ogg": "https://files.ballistica.net/cache/ba1/5a/c6/f5468203e6a1e7a88cd1df36cddb", - "assets/build/ba_data/audio/frostyHit03.ogg": "https://files.ballistica.net/cache/ba1/11/a7/10058c88ae6c0616c242a81225cb", - "assets/build/ba_data/audio/fuse01.ogg": "https://files.ballistica.net/cache/ba1/c0/6d/cea041c63d5e6c2673a155ef3b5e", - "assets/build/ba_data/audio/gladiator1.ogg": "https://files.ballistica.net/cache/ba1/83/c3/7f27a72348692a28f3d934721a70", - "assets/build/ba_data/audio/gladiator2.ogg": "https://files.ballistica.net/cache/ba1/c6/25/9f7e88466aa35312b576671efcb9", - "assets/build/ba_data/audio/gladiator3.ogg": "https://files.ballistica.net/cache/ba1/9a/a0/dd97f411483f32e9ca28e97978ec", - "assets/build/ba_data/audio/gladiator4.ogg": "https://files.ballistica.net/cache/ba1/e9/0b/1037b4fd77a0609a731421142069", - "assets/build/ba_data/audio/gladiatorDeath.ogg": "https://files.ballistica.net/cache/ba1/58/dc/242c3c9db9ea287a7ca84d4b58f2", - "assets/build/ba_data/audio/gladiatorFall.ogg": "https://files.ballistica.net/cache/ba1/9e/b4/e97cb15384b43bc44848a9940fcd", - "assets/build/ba_data/audio/gladiatorHit1.ogg": "https://files.ballistica.net/cache/ba1/78/1c/2c14f09c156faaf53bc97f1fa4ab", - "assets/build/ba_data/audio/gladiatorHit2.ogg": "https://files.ballistica.net/cache/ba1/ee/0b/724da82d345acce6d24f1f78aebe", - "assets/build/ba_data/audio/gong.ogg": "https://files.ballistica.net/cache/ba1/9d/98/fe9e5e31712035f2f821732fa426", - "assets/build/ba_data/audio/grandRompMusic.ogg": "https://files.ballistica.net/cache/ba1/44/9c/820f7ee74ad55c985a41824b629f", - "assets/build/ba_data/audio/gravelSkid.ogg": "https://files.ballistica.net/cache/ba1/91/a5/103c0131a043b57271a7dd498de1", - "assets/build/ba_data/audio/gunCocking.ogg": "https://files.ballistica.net/cache/ba1/8c/f3/c5e91220d25f23cbf61e8c2de65e", - "assets/build/ba_data/audio/healthPowerup.ogg": "https://files.ballistica.net/cache/ba1/21/79/faae5fb678a77a4514479213c5d2", - "assets/build/ba_data/audio/hiss.ogg": "https://files.ballistica.net/cache/ba1/14/a2/ad09926d21069aad7b56a55bb2b4", - "assets/build/ba_data/audio/impactHard.ogg": "https://files.ballistica.net/cache/ba1/7d/8b/8121a2270a1ba3efa3709a07c17a", - "assets/build/ba_data/audio/impactHard2.ogg": "https://files.ballistica.net/cache/ba1/08/1f/df44f42082c6f465ff5a78a832cc", - "assets/build/ba_data/audio/impactHard3.ogg": "https://files.ballistica.net/cache/ba1/78/6f/765aaeff1cd83131ebda60a2ed28", - "assets/build/ba_data/audio/impactMedium.ogg": "https://files.ballistica.net/cache/ba1/93/44/fc428d21a3e9a748389b78657ed0", - "assets/build/ba_data/audio/impactMedium2.ogg": "https://files.ballistica.net/cache/ba1/67/e0/6a5ba28a3750d940cfc85df9a48c", - "assets/build/ba_data/audio/jack01.ogg": "https://files.ballistica.net/cache/ba1/6f/d4/d026538f3457f2551e2b32f8a04e", - "assets/build/ba_data/audio/jack02.ogg": "https://files.ballistica.net/cache/ba1/b1/bb/f521552e2d5563d0002471f4934e", - "assets/build/ba_data/audio/jack03.ogg": "https://files.ballistica.net/cache/ba1/d8/27/5a3eb6f846ad3e1baf8f8bd180ab", - "assets/build/ba_data/audio/jack04.ogg": "https://files.ballistica.net/cache/ba1/82/e3/22c30cbca677c1146fd7e2a44402", - "assets/build/ba_data/audio/jack05.ogg": "https://files.ballistica.net/cache/ba1/03/88/f8a5726e7f05ca77fcb11458b84d", - "assets/build/ba_data/audio/jack06.ogg": "https://files.ballistica.net/cache/ba1/96/0f/3a11156fd9e49625ef93e5f1837c", - "assets/build/ba_data/audio/jackDeath01.ogg": "https://files.ballistica.net/cache/ba1/57/bd/dd8f71ede748e5b816fa0edacf2a", - "assets/build/ba_data/audio/jackFall01.ogg": "https://files.ballistica.net/cache/ba1/cd/da/511c6b136af4e42325894a17c974", - "assets/build/ba_data/audio/jackHit01.ogg": "https://files.ballistica.net/cache/ba1/10/17/301e483f642387bcf5b9a6cac455", - "assets/build/ba_data/audio/jackHit02.ogg": "https://files.ballistica.net/cache/ba1/a5/cb/47ed0c7ad9f1239fc0292eada391", - "assets/build/ba_data/audio/jackHit03.ogg": "https://files.ballistica.net/cache/ba1/bd/9c/dabb062bb53f6889324ed4e2648c", - "assets/build/ba_data/audio/jackHit04.ogg": "https://files.ballistica.net/cache/ba1/0f/66/4969ee4ffd6f93f8091d7e3c460e", - "assets/build/ba_data/audio/jackHit05.ogg": "https://files.ballistica.net/cache/ba1/e8/1e/f9df352de2a81c2c8e7cbb9d53f8", - "assets/build/ba_data/audio/jackHit06.ogg": "https://files.ballistica.net/cache/ba1/36/11/7f08ed2a79c0357346544a378b97", - "assets/build/ba_data/audio/jackHit07.ogg": "https://files.ballistica.net/cache/ba1/34/6b/d0de6621336d8a2dbac0b5a9cc64", - "assets/build/ba_data/audio/jumpsuit1.ogg": "https://files.ballistica.net/cache/ba1/2e/ba/5251d92cfc50e05891f49266a58c", - "assets/build/ba_data/audio/jumpsuit2.ogg": "https://files.ballistica.net/cache/ba1/85/ad/6318e0d7dfb4c562f0796d752ca1", - "assets/build/ba_data/audio/jumpsuit3.ogg": "https://files.ballistica.net/cache/ba1/b0/3a/b493714bed82a8447adcc12a305c", - "assets/build/ba_data/audio/jumpsuit4.ogg": "https://files.ballistica.net/cache/ba1/61/f6/07faf71815cc86137d4b0ee873bc", - "assets/build/ba_data/audio/jumpsuitDeath.ogg": "https://files.ballistica.net/cache/ba1/a0/ca/91cab7d426036018c9f695056001", - "assets/build/ba_data/audio/jumpsuitFall.ogg": "https://files.ballistica.net/cache/ba1/2e/89/3b4f798016588c8787598ba28104", - "assets/build/ba_data/audio/jumpsuitHit1.ogg": "https://files.ballistica.net/cache/ba1/54/3e/eabd980699d6a30c4f4a0d6ef239", - "assets/build/ba_data/audio/jumpsuitHit2.ogg": "https://files.ballistica.net/cache/ba1/19/e9/2077741fb34eeff9aa71f83dd098", - "assets/build/ba_data/audio/kronk1.ogg": "https://files.ballistica.net/cache/ba1/39/e8/d2b97739d30bb8933ee3fadbcbdd", - "assets/build/ba_data/audio/kronk10.ogg": "https://files.ballistica.net/cache/ba1/2e/f6/e062133061984ce247db1148235a", - "assets/build/ba_data/audio/kronk2.ogg": "https://files.ballistica.net/cache/ba1/59/47/70f7400429b641ff159b9be3bd68", - "assets/build/ba_data/audio/kronk3.ogg": "https://files.ballistica.net/cache/ba1/90/98/b950d293de08669c5eb37cf5b089", - "assets/build/ba_data/audio/kronk4.ogg": "https://files.ballistica.net/cache/ba1/1d/f4/47454ddc187e9c28f09b5f2641dd", - "assets/build/ba_data/audio/kronk5.ogg": "https://files.ballistica.net/cache/ba1/c9/0f/efacd82b0a3a1f7b7b0fa611ab24", - "assets/build/ba_data/audio/kronk6.ogg": "https://files.ballistica.net/cache/ba1/76/d6/8cd1f0b55d4297e24d94d86b27f9", - "assets/build/ba_data/audio/kronk7.ogg": "https://files.ballistica.net/cache/ba1/87/88/0cc4e3afd6735e62009a1b7a559f", - "assets/build/ba_data/audio/kronk8.ogg": "https://files.ballistica.net/cache/ba1/03/43/00789923ce5d554b1fc59dc29efe", - "assets/build/ba_data/audio/kronk9.ogg": "https://files.ballistica.net/cache/ba1/9e/37/905f2b0bf9b62aac66370e22171a", - "assets/build/ba_data/audio/kronkDeath.ogg": "https://files.ballistica.net/cache/ba1/84/93/9d86402d4c414f7f8e5cbb84e7da", - "assets/build/ba_data/audio/kronkFall.ogg": "https://files.ballistica.net/cache/ba1/39/5e/bee74f268c641c327fe574ff96a1", - "assets/build/ba_data/audio/laser.ogg": "https://files.ballistica.net/cache/ba1/ba/11/d9ea29ec409d58ef9933051f00a3", - "assets/build/ba_data/audio/laserReverse.ogg": "https://files.ballistica.net/cache/ba1/4d/6c/ea540847197dd3817f00836b7c47", - "assets/build/ba_data/audio/mel01.ogg": "https://files.ballistica.net/cache/ba1/65/1f/f146b8e3a3854caf4d3e9dfb5907", - "assets/build/ba_data/audio/mel02.ogg": "https://files.ballistica.net/cache/ba1/a9/06/26c796767095b7cae2b822807736", - "assets/build/ba_data/audio/mel03.ogg": "https://files.ballistica.net/cache/ba1/fe/d5/6f54d408cc2a4c9e875d72a2471f", - "assets/build/ba_data/audio/mel04.ogg": "https://files.ballistica.net/cache/ba1/6c/70/91661316e90b2fc681b248196415", - "assets/build/ba_data/audio/mel05.ogg": "https://files.ballistica.net/cache/ba1/aa/c2/2d1a6e91f87196ab0e0582b34f4d", - "assets/build/ba_data/audio/mel06.ogg": "https://files.ballistica.net/cache/ba1/90/a4/cfcf8f764e5e6f63869f01e9240b", - "assets/build/ba_data/audio/mel07.ogg": "https://files.ballistica.net/cache/ba1/1c/7b/c8a607b89f95e7c3c91a9a6dbd1f", - "assets/build/ba_data/audio/mel08.ogg": "https://files.ballistica.net/cache/ba1/d3/fb/ec4085912068c8890bfdaf5f6f41", - "assets/build/ba_data/audio/mel09.ogg": "https://files.ballistica.net/cache/ba1/99/60/1ba62554da26788072721151c7ca", - "assets/build/ba_data/audio/mel10.ogg": "https://files.ballistica.net/cache/ba1/38/ed/d131624611fd8bf12faf95ad1bfe", - "assets/build/ba_data/audio/melDeath01.ogg": "https://files.ballistica.net/cache/ba1/56/55/cfcbc1b20f357843d1efa62bdc17", - "assets/build/ba_data/audio/melFall01.ogg": "https://files.ballistica.net/cache/ba1/82/e6/9ce3ae6f486f6f951e97c9eac869", - "assets/build/ba_data/audio/menuMusic.ogg": "https://files.ballistica.net/cache/ba1/2f/04/3b69056ee929761c7e7e702db2c1", - "assets/build/ba_data/audio/metalHit.ogg": "https://files.ballistica.net/cache/ba1/9c/30/a61de1a6d1787ab90b2647e6d8e2", - "assets/build/ba_data/audio/metalSkid.ogg": "https://files.ballistica.net/cache/ba1/03/77/fe701a38c7c448b6c29c44df1be3", - "assets/build/ba_data/audio/ninjaAttack1.ogg": "https://files.ballistica.net/cache/ba1/3e/f6/b245f532ead500368f0b413177ce", - "assets/build/ba_data/audio/ninjaAttack2.ogg": "https://files.ballistica.net/cache/ba1/7b/a9/47dfcb386fc92e07af0badffebe2", - "assets/build/ba_data/audio/ninjaAttack3.ogg": "https://files.ballistica.net/cache/ba1/8c/87/d4e6698efa137c523ffe9843d46f", - "assets/build/ba_data/audio/ninjaAttack4.ogg": "https://files.ballistica.net/cache/ba1/a3/35/5f1533eef06b6e0c6d4cce1bb437", - "assets/build/ba_data/audio/ninjaAttack5.ogg": "https://files.ballistica.net/cache/ba1/98/72/c5ff77cf253c0141531c791b2fd3", - "assets/build/ba_data/audio/ninjaAttack6.ogg": "https://files.ballistica.net/cache/ba1/87/ef/abcb38ba5f79212d975f1e8660f3", - "assets/build/ba_data/audio/ninjaAttack7.ogg": "https://files.ballistica.net/cache/ba1/3f/6f/94d48a93f1ecb66f786c27a9fd63", - "assets/build/ba_data/audio/ninjaDeath1.ogg": "https://files.ballistica.net/cache/ba1/62/63/10c7a4204a1383b8330bae91af14", - "assets/build/ba_data/audio/ninjaFall1.ogg": "https://files.ballistica.net/cache/ba1/6d/38/7067e8b67e42646f0a3f6fea0b25", - "assets/build/ba_data/audio/ninjaHit1.ogg": "https://files.ballistica.net/cache/ba1/52/dd/c411d8585d17f542075f279e1b83", - "assets/build/ba_data/audio/ninjaHit2.ogg": "https://files.ballistica.net/cache/ba1/18/ef/e6df5814069eb171a43014dda531", - "assets/build/ba_data/audio/ninjaHit3.ogg": "https://files.ballistica.net/cache/ba1/8d/94/751982314c25413ab46b4ba4552c", - "assets/build/ba_data/audio/ninjaHit4.ogg": "https://files.ballistica.net/cache/ba1/fc/45/513450f5f446ce5c256828b79785", - "assets/build/ba_data/audio/ninjaHit5.ogg": "https://files.ballistica.net/cache/ba1/13/35/a55d46a38eacd2ceb43ee8703b73", - "assets/build/ba_data/audio/ninjaHit6.ogg": "https://files.ballistica.net/cache/ba1/49/27/eb032a6501af3b4d95d3fa1f8dda", - "assets/build/ba_data/audio/ninjaHit7.ogg": "https://files.ballistica.net/cache/ba1/e9/ed/bde7ba9d85250298b1002f23fa9e", - "assets/build/ba_data/audio/ninjaHit8.ogg": "https://files.ballistica.net/cache/ba1/c4/0f/b4be18ea1ccd5c8d9a2bc784f19f", - "assets/build/ba_data/audio/oldLady1.ogg": "https://files.ballistica.net/cache/ba1/01/d5/d07ff67ffc9ed9c30433a57a722d", - "assets/build/ba_data/audio/oldLady2.ogg": "https://files.ballistica.net/cache/ba1/8b/2a/2c0c10526294afbac2ed5fdbe7d5", - "assets/build/ba_data/audio/oldLady3.ogg": "https://files.ballistica.net/cache/ba1/46/d7/a64bb5019b01a9bf8a3a71c32d85", - "assets/build/ba_data/audio/oldLady4.ogg": "https://files.ballistica.net/cache/ba1/63/64/a98e6bbeffe5a8947a7320ca06c5", - "assets/build/ba_data/audio/oldLadyDeath.ogg": "https://files.ballistica.net/cache/ba1/a0/ca/4a4c7cc453d0f254dfeffdaad436", - "assets/build/ba_data/audio/oldLadyFall.ogg": "https://files.ballistica.net/cache/ba1/92/41/b3d47aa08e285a464ab1d81e02b5", - "assets/build/ba_data/audio/oldLadyHit1.ogg": "https://files.ballistica.net/cache/ba1/68/74/6019b76e9d36f153ead330ebbdee", - "assets/build/ba_data/audio/oldLadyHit2.ogg": "https://files.ballistica.net/cache/ba1/06/2c/3807ed553aacf8ffcac05bc334a9", - "assets/build/ba_data/audio/ooh.ogg": "https://files.ballistica.net/cache/ba1/75/78/b05997e40ea9327283bfbcd73d0f", - "assets/build/ba_data/audio/operaSinger1.ogg": "https://files.ballistica.net/cache/ba1/67/b4/456ca84157861e1a01552f1bbb60", - "assets/build/ba_data/audio/operaSinger2.ogg": "https://files.ballistica.net/cache/ba1/7f/e1/aa3e383b835e6caabc52e92c0f2e", - "assets/build/ba_data/audio/operaSinger3.ogg": "https://files.ballistica.net/cache/ba1/2f/3b/8f41cca76f4d874df8c418a14844", - "assets/build/ba_data/audio/operaSinger4.ogg": "https://files.ballistica.net/cache/ba1/86/0c/4814731188a54fc6829eb3d4987e", - "assets/build/ba_data/audio/operaSingerDeath.ogg": "https://files.ballistica.net/cache/ba1/37/6f/82c8fe95d70eccacd9c5d95f54a5", - "assets/build/ba_data/audio/operaSingerFall.ogg": "https://files.ballistica.net/cache/ba1/c0/d4/6f960ef15bbded8ce6f2b5b6657f", - "assets/build/ba_data/audio/operaSingerHit1.ogg": "https://files.ballistica.net/cache/ba1/a8/c0/c1aea91573c7902322105d920502", - "assets/build/ba_data/audio/operaSingerHit2.ogg": "https://files.ballistica.net/cache/ba1/6a/b8/0ed146abd109205008d9badea4ae", - "assets/build/ba_data/audio/orchestraHit.ogg": "https://files.ballistica.net/cache/ba1/e2/1f/ece696b97992ca2193c352f3da84", - "assets/build/ba_data/audio/orchestraHit2.ogg": "https://files.ballistica.net/cache/ba1/93/23/089101e0936aa2f05a3aaee20f8e", - "assets/build/ba_data/audio/orchestraHit3.ogg": "https://files.ballistica.net/cache/ba1/6f/88/41a8b64754c979c2f608558b2205", - "assets/build/ba_data/audio/orchestraHit4.ogg": "https://files.ballistica.net/cache/ba1/0d/52/4396bd2e95954bbc3c88aba19f5f", - "assets/build/ba_data/audio/orchestraHitBig1.ogg": "https://files.ballistica.net/cache/ba1/cb/48/deb5a4eeeaa0e9c14456f66d2fe8", - "assets/build/ba_data/audio/orchestraHitBig2.ogg": "https://files.ballistica.net/cache/ba1/2a/c4/84c2e64feffba098cd1dacb59c1c", - "assets/build/ba_data/audio/penguin1.ogg": "https://files.ballistica.net/cache/ba1/66/e4/d940e0bcae6a7a658aacf15ee8c6", - "assets/build/ba_data/audio/penguin2.ogg": "https://files.ballistica.net/cache/ba1/5e/dc/54dd8785e0236478f219e15a2b32", - "assets/build/ba_data/audio/penguin3.ogg": "https://files.ballistica.net/cache/ba1/d7/6e/fab15b63c2e8dafef1f523af9448", - "assets/build/ba_data/audio/penguin4.ogg": "https://files.ballistica.net/cache/ba1/df/72/f49eb5520e1275556a309925ca2f", - "assets/build/ba_data/audio/penguinDeath.ogg": "https://files.ballistica.net/cache/ba1/31/a8/f414335a2e8f2f7f11d927740993", - "assets/build/ba_data/audio/penguinFall.ogg": "https://files.ballistica.net/cache/ba1/75/ac/6673cf05b554f93e4f80e5a1f032", - "assets/build/ba_data/audio/penguinHit1.ogg": "https://files.ballistica.net/cache/ba1/fb/80/d751a93245e5a81f2d7122b10601", - "assets/build/ba_data/audio/penguinHit2.ogg": "https://files.ballistica.net/cache/ba1/37/07/219f073f5e8042795662c37e27c2", - "assets/build/ba_data/audio/pixie1.ogg": "https://files.ballistica.net/cache/ba1/a1/ba/0e576188e12d5d3d90dbe2ba4aa2", - "assets/build/ba_data/audio/pixie2.ogg": "https://files.ballistica.net/cache/ba1/a2/a8/df2edb0fcddee0a292b116f6511a", - "assets/build/ba_data/audio/pixie3.ogg": "https://files.ballistica.net/cache/ba1/4e/f6/74bc253a5cc01d681e4ad8d38337", - "assets/build/ba_data/audio/pixie4.ogg": "https://files.ballistica.net/cache/ba1/da/7e/bf6c1a336eab325cc602a1876a23", - "assets/build/ba_data/audio/pixieDeath.ogg": "https://files.ballistica.net/cache/ba1/62/46/e12933d09d0d589c7c122c9b8fa8", - "assets/build/ba_data/audio/pixieFall.ogg": "https://files.ballistica.net/cache/ba1/0c/e1/b1a37fc2a365f693aa40a756c235", - "assets/build/ba_data/audio/pixieHit1.ogg": "https://files.ballistica.net/cache/ba1/2a/7a/12e4dafb36ffef321e55f943a12c", - "assets/build/ba_data/audio/pixieHit2.ogg": "https://files.ballistica.net/cache/ba1/61/1c/93fb0399ad2bcab8ccdb5e145633", - "assets/build/ba_data/audio/playerDeath.ogg": "https://files.ballistica.net/cache/ba1/26/47/b948161697a84fb0bce339f3ad71", - "assets/build/ba_data/audio/playerLeft.ogg": "https://files.ballistica.net/cache/ba1/bc/9d/da4df4b55e84fe9eb05509049f21", - "assets/build/ba_data/audio/pop01.ogg": "https://files.ballistica.net/cache/ba1/e0/ca/fc13159fce5ef09dc2ad1db9645d", - "assets/build/ba_data/audio/powerdown01.ogg": "https://files.ballistica.net/cache/ba1/ac/8f/4d4e570ab6238879232242bd2367", - "assets/build/ba_data/audio/powerup01.ogg": "https://files.ballistica.net/cache/ba1/16/7a/93da7e6859d880331e589732cf70", - "assets/build/ba_data/audio/punch01.ogg": "https://files.ballistica.net/cache/ba1/bb/fd/85fbab1939dea07583aae2c9f43b", - "assets/build/ba_data/audio/punchStrong01.ogg": "https://files.ballistica.net/cache/ba1/46/1b/62bc8d51c3672bacb9c2b99ce66f", - "assets/build/ba_data/audio/punchStrong02.ogg": "https://files.ballistica.net/cache/ba1/d5/f7/feb06da4c021a2c81a505593a7f4", - "assets/build/ba_data/audio/punchSwish.ogg": "https://files.ballistica.net/cache/ba1/fa/47/9494fe756a1f7cde27deab651a2d", - "assets/build/ba_data/audio/punchWeak01.ogg": "https://files.ballistica.net/cache/ba1/8c/ac/4055d2df143632938148dd369b40", - "assets/build/ba_data/audio/raceBeep1.ogg": "https://files.ballistica.net/cache/ba1/1c/52/61b720a805db063223eb5f9572f4", - "assets/build/ba_data/audio/raceBeep2.ogg": "https://files.ballistica.net/cache/ba1/c7/b3/7c33fec0f23065a56d7bdd082af8", - "assets/build/ba_data/audio/refWhistle.ogg": "https://files.ballistica.net/cache/ba1/9b/dd/da98b9d3efafaf2655407f64a09c", - "assets/build/ba_data/audio/robot1.ogg": "https://files.ballistica.net/cache/ba1/c4/f3/46c5b5a8d60f1ee7e5836ddf3baf", - "assets/build/ba_data/audio/robot2.ogg": "https://files.ballistica.net/cache/ba1/6c/d5/59c4c07ec9edec23590bcc9aa7d7", - "assets/build/ba_data/audio/robot3.ogg": "https://files.ballistica.net/cache/ba1/10/98/27748b76c889f5b21def4c702341", - "assets/build/ba_data/audio/robot4.ogg": "https://files.ballistica.net/cache/ba1/b4/32/0bf631e348c14b41a64190e8376a", - "assets/build/ba_data/audio/robotDeath.ogg": "https://files.ballistica.net/cache/ba1/65/3e/599289f5b9d08d02607f26f9c42c", - "assets/build/ba_data/audio/robotFall.ogg": "https://files.ballistica.net/cache/ba1/35/cc/9693e8fa39a5ad2a245f3a848e72", - "assets/build/ba_data/audio/robotHit1.ogg": "https://files.ballistica.net/cache/ba1/70/a9/07a5eb870bfd24143a5a1dae6b11", - "assets/build/ba_data/audio/robotHit2.ogg": "https://files.ballistica.net/cache/ba1/60/79/490c8f75cce45183a66357d30a85", - "assets/build/ba_data/audio/runAwayMusic.ogg": "https://files.ballistica.net/cache/ba1/28/8d/db39413af847b4aba765938a439c", - "assets/build/ba_data/audio/santa01.ogg": "https://files.ballistica.net/cache/ba1/8f/25/7b73c6cb3a67dd4d0c537a8ff486", - "assets/build/ba_data/audio/santa02.ogg": "https://files.ballistica.net/cache/ba1/6b/62/d9acb101fc2ae91cce4ebf21dea7", - "assets/build/ba_data/audio/santa03.ogg": "https://files.ballistica.net/cache/ba1/1c/ed/a69839caf83c6f2678b194aa5bb2", - "assets/build/ba_data/audio/santa04.ogg": "https://files.ballistica.net/cache/ba1/c9/46/1e88517f694e317b2e19574c6817", - "assets/build/ba_data/audio/santa05.ogg": "https://files.ballistica.net/cache/ba1/90/5f/dcb00f73be3f7ba6a3d2253f29db", - "assets/build/ba_data/audio/santaDeath.ogg": "https://files.ballistica.net/cache/ba1/64/4b/3d8d95da0c30e91db75a67726e8b", - "assets/build/ba_data/audio/santaFall.ogg": "https://files.ballistica.net/cache/ba1/13/45/ec999a23e68ad3b3ca731e8ee004", - "assets/build/ba_data/audio/santaHit01.ogg": "https://files.ballistica.net/cache/ba1/7c/35/1c404fe708f33b7ff8fa9aaf1d6b", - "assets/build/ba_data/audio/santaHit02.ogg": "https://files.ballistica.net/cache/ba1/b7/7c/05b6af01635a185c7ef6eda204ef", - "assets/build/ba_data/audio/santaHit03.ogg": "https://files.ballistica.net/cache/ba1/bb/3a/faf8638851148f5a1c6759afd9f7", - "assets/build/ba_data/audio/santaHit04.ogg": "https://files.ballistica.net/cache/ba1/cd/49/6722b707a2863cb28f18e4e4d359", - "assets/build/ba_data/audio/scamper01.ogg": "https://files.ballistica.net/cache/ba1/3a/50/6874379b5acfa4333fac8374f388", - "assets/build/ba_data/audio/scaryMusic.ogg": "https://files.ballistica.net/cache/ba1/de/62/d51342211c0ee9ffc15753a0dc38", - "assets/build/ba_data/audio/score.ogg": "https://files.ballistica.net/cache/ba1/35/63/59c439ce3ae53448b69e65b12f01", - "assets/build/ba_data/audio/scoreHit01.ogg": "https://files.ballistica.net/cache/ba1/ae/3d/4817efe2e3397780a333b75df614", - "assets/build/ba_data/audio/scoreHit02.ogg": "https://files.ballistica.net/cache/ba1/66/3e/db8772a6b9f0fd0f56072fa1ec65", - "assets/build/ba_data/audio/scoreIncrease.ogg": "https://files.ballistica.net/cache/ba1/a3/d4/2d4f01ac1e805a91f2f6232a0047", - "assets/build/ba_data/audio/scoresEpicMusic.ogg": "https://files.ballistica.net/cache/ba1/7a/dd/61fb2430a8f22259f2cbe4558766", - "assets/build/ba_data/audio/shatter.ogg": "https://files.ballistica.net/cache/ba1/d1/d6/50f5299a21f7f88e35871be01342", - "assets/build/ba_data/audio/shieldDown.ogg": "https://files.ballistica.net/cache/ba1/4f/31/da9f37085fa732a001dc23eeb32b", - "assets/build/ba_data/audio/shieldHit.ogg": "https://files.ballistica.net/cache/ba1/c1/16/915c9c8ea1d8996fd8fb7d18ab9d", - "assets/build/ba_data/audio/shieldUp.ogg": "https://files.ballistica.net/cache/ba1/3f/d1/096975c0e59df14948b0a3595c3a", - "assets/build/ba_data/audio/skid01.ogg": "https://files.ballistica.net/cache/ba1/f0/f8/9e6e4378363b6e8eec747cd592e6", - "assets/build/ba_data/audio/slowEpicMusic.ogg": "https://files.ballistica.net/cache/ba1/e0/76/3d356a9f7c2ecf52144adcd93c3e", - "assets/build/ba_data/audio/sparkle01.ogg": "https://files.ballistica.net/cache/ba1/00/23/d33bc638bb97885470d8d1dceff4", - "assets/build/ba_data/audio/sparkle02.ogg": "https://files.ballistica.net/cache/ba1/0f/97/6bf234b8297dacb24d16f3fc6835", - "assets/build/ba_data/audio/sparkle03.ogg": "https://files.ballistica.net/cache/ba1/7b/67/f32943885c7b4e42cd71c950c094", - "assets/build/ba_data/audio/spawn.ogg": "https://files.ballistica.net/cache/ba1/5b/e1/7976a3409551f06b465dbf9afc92", - "assets/build/ba_data/audio/spazAttack01.ogg": "https://files.ballistica.net/cache/ba1/ce/c1/a0fe34d38d134a260e8215117be5", - "assets/build/ba_data/audio/spazAttack02.ogg": "https://files.ballistica.net/cache/ba1/5b/ab/f5708a7196cd7c1d3c5856c49077", - "assets/build/ba_data/audio/spazAttack03.ogg": "https://files.ballistica.net/cache/ba1/02/b9/ced762c00a80b55f85e5a537694d", - "assets/build/ba_data/audio/spazAttack04.ogg": "https://files.ballistica.net/cache/ba1/58/09/ffc7f2269fccb7d6ba3a2d4fa70e", - "assets/build/ba_data/audio/spazDeath01.ogg": "https://files.ballistica.net/cache/ba1/64/75/818509a97557a1efed0d391c7d26", - "assets/build/ba_data/audio/spazEff.ogg": "https://files.ballistica.net/cache/ba1/bd/70/525e9bd572821a59886d89790f48", - "assets/build/ba_data/audio/spazFall01.ogg": "https://files.ballistica.net/cache/ba1/f0/4b/07e339002b262a7ffe2427a749e3", - "assets/build/ba_data/audio/spazImpact01.ogg": "https://files.ballistica.net/cache/ba1/0e/33/de9d8f2006bdfba05d4daa4c43bc", - "assets/build/ba_data/audio/spazImpact02.ogg": "https://files.ballistica.net/cache/ba1/19/ea/6d27a7931ed4b60f6de393422046", - "assets/build/ba_data/audio/spazImpact03.ogg": "https://files.ballistica.net/cache/ba1/fd/7c/abc4d0b8350f263675fce1719815", - "assets/build/ba_data/audio/spazImpact04.ogg": "https://files.ballistica.net/cache/ba1/0e/04/29b57759816c1dc80f0fcc8dbdf5", - "assets/build/ba_data/audio/spazJump01.ogg": "https://files.ballistica.net/cache/ba1/0a/74/02bcb3ccfdc45548d2d6328d5762", - "assets/build/ba_data/audio/spazJump02.ogg": "https://files.ballistica.net/cache/ba1/87/ae/f80c533dedc2a5048c31c7fd05a5", - "assets/build/ba_data/audio/spazJump03.ogg": "https://files.ballistica.net/cache/ba1/8d/f3/d89923c4894e8fe5a144f3dac2b8", - "assets/build/ba_data/audio/spazJump04.ogg": "https://files.ballistica.net/cache/ba1/01/76/c82cf77f0ea683ced0dce96a6590", - "assets/build/ba_data/audio/spazOw.ogg": "https://files.ballistica.net/cache/ba1/81/30/c272cef86432c32683fff2b6a856", - "assets/build/ba_data/audio/spazPickup01.ogg": "https://files.ballistica.net/cache/ba1/0f/3f/49392c99fe3f5029086a1cc80d8a", - "assets/build/ba_data/audio/spazScream01.ogg": "https://files.ballistica.net/cache/ba1/ac/99/e38ffb38dcac926ebc9666e6687a", - "assets/build/ba_data/audio/splatter.ogg": "https://files.ballistica.net/cache/ba1/65/0e/95216b45b9fb7e1fcf29753a3b86", - "assets/build/ba_data/audio/sportsMusic.ogg": "https://files.ballistica.net/cache/ba1/b8/be/bded110195557ffeb9928f8f35a8", - "assets/build/ba_data/audio/stickyImpact.ogg": "https://files.ballistica.net/cache/ba1/7f/96/aca2db315454d319400d505c84bd", - "assets/build/ba_data/audio/superPunch.ogg": "https://files.ballistica.net/cache/ba1/68/b1/3857d2b85c2137dfc71c59d99866", - "assets/build/ba_data/audio/superhero1.ogg": "https://files.ballistica.net/cache/ba1/f8/be/d5ddef17888c0f0918a6ca5f9fed", - "assets/build/ba_data/audio/superhero2.ogg": "https://files.ballistica.net/cache/ba1/c5/88/fa61647f14b026cdb0c710a6a241", - "assets/build/ba_data/audio/superhero3.ogg": "https://files.ballistica.net/cache/ba1/a6/1a/a0fa6c752ceacbc3d581191bea79", - "assets/build/ba_data/audio/superhero4.ogg": "https://files.ballistica.net/cache/ba1/e8/a8/ffc0743aa669e24bb7c856359ff1", - "assets/build/ba_data/audio/superheroDeath.ogg": "https://files.ballistica.net/cache/ba1/98/00/7fa8feb367547d7b4053d6d6f8e8", - "assets/build/ba_data/audio/superheroFall.ogg": "https://files.ballistica.net/cache/ba1/38/46/dd8019ab7a705500e32609f8d240", - "assets/build/ba_data/audio/superheroHit1.ogg": "https://files.ballistica.net/cache/ba1/d7/64/04ae978100fa9d92f94b3e474c36", - "assets/build/ba_data/audio/superheroHit2.ogg": "https://files.ballistica.net/cache/ba1/71/d2/d20bcca0587ea75ec510b9e9d9a3", - "assets/build/ba_data/audio/survivalMusic.ogg": "https://files.ballistica.net/cache/ba1/7b/3a/afefd67ab21251571721a84d5631", - "assets/build/ba_data/audio/swip.ogg": "https://files.ballistica.net/cache/ba1/a5/fc/7c9573cac08082db1eb1a1780be6", - "assets/build/ba_data/audio/swip2.ogg": "https://files.ballistica.net/cache/ba1/c0/8a/f4acc9197c51dd87bdcd649979f7", - "assets/build/ba_data/audio/swish.ogg": "https://files.ballistica.net/cache/ba1/5e/ef/8085f12f781b3fd1a83e7a3f9ec1", - "assets/build/ba_data/audio/swish2.ogg": "https://files.ballistica.net/cache/ba1/e2/42/6242489e58bd314faddbc2cdfa39", - "assets/build/ba_data/audio/swish3.ogg": "https://files.ballistica.net/cache/ba1/cd/00/dc59c4e85428742a3219d790862c", - "assets/build/ba_data/audio/tap.ogg": "https://files.ballistica.net/cache/ba1/07/fb/512704ee3acc4f54dbbe335a0b92", - "assets/build/ba_data/audio/technoHit01.ogg": "https://files.ballistica.net/cache/ba1/d7/3d/c4bd72b56365c29c2ff7eaf237f7", - "assets/build/ba_data/audio/tick.ogg": "https://files.ballistica.net/cache/ba1/e7/22/9effe1e9201ca6f787536c2cc7d1", - "assets/build/ba_data/audio/ticking.ogg": "https://files.ballistica.net/cache/ba1/01/a7/e9b2614da4bb07ad3c54d81284fe", - "assets/build/ba_data/audio/tickingCrazy.ogg": "https://files.ballistica.net/cache/ba1/49/b1/b258d1b3223fe5c2f76590cc3609", - "assets/build/ba_data/audio/toTheDeathMusic.ogg": "https://files.ballistica.net/cache/ba1/5d/e8/f388a2c241952af159074ec131a5", - "assets/build/ba_data/audio/trashRummage.ogg": "https://files.ballistica.net/cache/ba1/9e/a1/56f36558300299849f1141bbe313", - "assets/build/ba_data/audio/victoryMusic.ogg": "https://files.ballistica.net/cache/ba1/b4/3f/3910943af8d4303708c75cbfe621", - "assets/build/ba_data/audio/warnBeep.ogg": "https://files.ballistica.net/cache/ba1/dc/37/9c623b28aae041ca19ba3dc97f6a", - "assets/build/ba_data/audio/warnBeeps.ogg": "https://files.ballistica.net/cache/ba1/0e/6c/ebc2183df283709a0198849fd7c0", - "assets/build/ba_data/audio/warrior1.ogg": "https://files.ballistica.net/cache/ba1/ab/cb/7e57a8733470f535142015d9582f", - "assets/build/ba_data/audio/warrior2.ogg": "https://files.ballistica.net/cache/ba1/35/65/14173145d20eaf84ad79fb0f1a69", - "assets/build/ba_data/audio/warrior3.ogg": "https://files.ballistica.net/cache/ba1/6a/1c/4d238beefe81e1d44ef8eef00de0", - "assets/build/ba_data/audio/warrior4.ogg": "https://files.ballistica.net/cache/ba1/42/07/6d08d278a613b85adde7b2c8b8f8", - "assets/build/ba_data/audio/warriorDeath.ogg": "https://files.ballistica.net/cache/ba1/62/18/36598cfbd77bc73bd6bb4b02d0ac", - "assets/build/ba_data/audio/warriorFall.ogg": "https://files.ballistica.net/cache/ba1/b8/f1/c9b2fe1babd2c3027c2c6b955dd9", - "assets/build/ba_data/audio/warriorHit1.ogg": "https://files.ballistica.net/cache/ba1/66/88/1aba5328534ea0b21db7e0c35a97", - "assets/build/ba_data/audio/warriorHit2.ogg": "https://files.ballistica.net/cache/ba1/ff/cb/42e31f8089ad1760d7aad0d7ff7f", - "assets/build/ba_data/audio/whenJohnnyComesMarchingHomeMusic.ogg": "https://files.ballistica.net/cache/ba1/fb/d9/c6925d7fb50c229857c172478bc3", - "assets/build/ba_data/audio/witch1.ogg": "https://files.ballistica.net/cache/ba1/5c/03/9f32f1bda3d7fa8ded269938d5fc", - "assets/build/ba_data/audio/witch2.ogg": "https://files.ballistica.net/cache/ba1/3e/f6/3eb43eba873b08f776cd54ba4ecd", - "assets/build/ba_data/audio/witch3.ogg": "https://files.ballistica.net/cache/ba1/fc/38/74f15bb395ecd29b50ef4cacbd3b", - "assets/build/ba_data/audio/witch4.ogg": "https://files.ballistica.net/cache/ba1/8f/71/87c58a955524e8f7ef19db0b2c19", - "assets/build/ba_data/audio/witchDeath.ogg": "https://files.ballistica.net/cache/ba1/63/b7/34d892c9382fcca2143f47360681", - "assets/build/ba_data/audio/witchFall.ogg": "https://files.ballistica.net/cache/ba1/ca/21/e880c95abe23462d31027d396d17", - "assets/build/ba_data/audio/witchHit1.ogg": "https://files.ballistica.net/cache/ba1/28/ff/eda01ba4d712ed8f87ad41689eb5", - "assets/build/ba_data/audio/witchHit2.ogg": "https://files.ballistica.net/cache/ba1/7f/9b/9ae61751b71e2b3cd6e380351afe", - "assets/build/ba_data/audio/wizard1.ogg": "https://files.ballistica.net/cache/ba1/1d/54/3f31d7d0e0b9c0e7514c8d7b07d6", - "assets/build/ba_data/audio/wizard2.ogg": "https://files.ballistica.net/cache/ba1/fc/c5/02945950ad0e595983b9042a7fd2", - "assets/build/ba_data/audio/wizard3.ogg": "https://files.ballistica.net/cache/ba1/c3/64/86c3743515757904d14676aecadc", - "assets/build/ba_data/audio/wizard4.ogg": "https://files.ballistica.net/cache/ba1/92/6e/1274261230bf73320ac2b8ea32a2", - "assets/build/ba_data/audio/wizardDeath.ogg": "https://files.ballistica.net/cache/ba1/68/57/dfa7a98252eeb017ba95022a71d4", - "assets/build/ba_data/audio/wizardFall.ogg": "https://files.ballistica.net/cache/ba1/72/7a/6fd39cfd7cf25152fe267061b6e6", - "assets/build/ba_data/audio/wizardHit1.ogg": "https://files.ballistica.net/cache/ba1/d8/47/8774de373d5716f8b1def11323ba", - "assets/build/ba_data/audio/wizardHit2.ogg": "https://files.ballistica.net/cache/ba1/6e/6d/14771c5d4885856765fef6668ffd", - "assets/build/ba_data/audio/woodDebrisFall.ogg": "https://files.ballistica.net/cache/ba1/79/94/e96e205a438bcf6ea27829616eeb", - "assets/build/ba_data/audio/wrestler1.ogg": "https://files.ballistica.net/cache/ba1/2f/eb/15d8e43ce34d1677a25bf3870d30", - "assets/build/ba_data/audio/wrestler2.ogg": "https://files.ballistica.net/cache/ba1/f7/9a/27c12f0bc136c5ff5d361a855b54", - "assets/build/ba_data/audio/wrestler3.ogg": "https://files.ballistica.net/cache/ba1/22/cb/8a7866702f5e95d18287ad3a3b3c", - "assets/build/ba_data/audio/wrestler4.ogg": "https://files.ballistica.net/cache/ba1/08/9f/90516d853c3e62ecd1dcb1d9f0ff", - "assets/build/ba_data/audio/wrestlerDeath.ogg": "https://files.ballistica.net/cache/ba1/dc/a6/8019396b91152cab4db09b0a7ec8", - "assets/build/ba_data/audio/wrestlerFall.ogg": "https://files.ballistica.net/cache/ba1/49/16/5edc44a1ed74fc37b57c7473b1f6", - "assets/build/ba_data/audio/wrestlerHit1.ogg": "https://files.ballistica.net/cache/ba1/3d/fb/6b2741940714e3f5a564c55ccd6a", - "assets/build/ba_data/audio/wrestlerHit2.ogg": "https://files.ballistica.net/cache/ba1/4c/e3/f398eae1b37afbec4b42cd88c90c", - "assets/build/ba_data/audio/zoeAttack01.ogg": "https://files.ballistica.net/cache/ba1/37/04/5a12395a7df33f69d7bf874f5054", - "assets/build/ba_data/audio/zoeAttack02.ogg": "https://files.ballistica.net/cache/ba1/f3/b1/ac78bfad015ebdc003a408bbf1c0", - "assets/build/ba_data/audio/zoeAttack03.ogg": "https://files.ballistica.net/cache/ba1/97/e0/2f82bf9878472e3e5535a29f6b57", - "assets/build/ba_data/audio/zoeAttack04.ogg": "https://files.ballistica.net/cache/ba1/2c/6a/da814c4c37dd0b5d0ff3564be852", - "assets/build/ba_data/audio/zoeDeath01.ogg": "https://files.ballistica.net/cache/ba1/0b/3f/d197dafe8e65bc9ad44227d76595", - "assets/build/ba_data/audio/zoeEff.ogg": "https://files.ballistica.net/cache/ba1/d0/63/161c6c7139a432a6548657b2cbf8", - "assets/build/ba_data/audio/zoeFall01.ogg": "https://files.ballistica.net/cache/ba1/15/9b/bc1e6d1c46984ff15d8c7c7be553", - "assets/build/ba_data/audio/zoeImpact01.ogg": "https://files.ballistica.net/cache/ba1/14/ab/e0ffc2ee28d047d498e7fb9d9a29", - "assets/build/ba_data/audio/zoeImpact02.ogg": "https://files.ballistica.net/cache/ba1/46/06/2da242b286aa30d24b1a51c48a1e", - "assets/build/ba_data/audio/zoeImpact03.ogg": "https://files.ballistica.net/cache/ba1/5b/bb/820dca4d4ebd863aacab96739197", - "assets/build/ba_data/audio/zoeImpact04.ogg": "https://files.ballistica.net/cache/ba1/2e/83/10966e237b36b0726962e7511789", - "assets/build/ba_data/audio/zoeJump01.ogg": "https://files.ballistica.net/cache/ba1/51/b0/6912fe028eb5e787e8b2e2451aa7", - "assets/build/ba_data/audio/zoeJump02.ogg": "https://files.ballistica.net/cache/ba1/ad/3b/1ea95c528b3ac203407c71b6c250", - "assets/build/ba_data/audio/zoeJump03.ogg": "https://files.ballistica.net/cache/ba1/88/2d/857625213c26f31ca53625228ac5", - "assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/dc/d2/160fc27fcaff10793327ac2c70fd", - "assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/11/7a/87d6bca0acfb877fd4fd8fe3a598", - "assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/44/f5/c943c9075abb3e1835d2408a1ef8", + "assets/build/ba_data/audio/achievement.ogg": "https://files.ballistica.net/cache/ba1/0a/68/217f0217608cf4a222fc9eee4c61", + "assets/build/ba_data/audio/actionHero1.ogg": "https://files.ballistica.net/cache/ba1/85/64/f0a0fca97ff0a3b3eea73fad4d90", + "assets/build/ba_data/audio/actionHero2.ogg": "https://files.ballistica.net/cache/ba1/9a/af/42a29027e4634dd83ae1acd67bee", + "assets/build/ba_data/audio/actionHero3.ogg": "https://files.ballistica.net/cache/ba1/ff/11/0292bcf5fc1b1b969af6bf700c51", + "assets/build/ba_data/audio/actionHero4.ogg": "https://files.ballistica.net/cache/ba1/c3/25/95113251a5e90feaa532a2d2d75e", + "assets/build/ba_data/audio/actionHeroDeath.ogg": "https://files.ballistica.net/cache/ba1/eb/f1/199af4bc736a3b9739a206712f65", + "assets/build/ba_data/audio/actionHeroFall.ogg": "https://files.ballistica.net/cache/ba1/21/3a/2de6098db80a069d0984f85d4c22", + "assets/build/ba_data/audio/actionHeroHit1.ogg": "https://files.ballistica.net/cache/ba1/31/af/6a16322ec8719966c2a338357ee0", + "assets/build/ba_data/audio/actionHeroHit2.ogg": "https://files.ballistica.net/cache/ba1/8a/13/a4186b24ffeb374d03028ef24ecd", + "assets/build/ba_data/audio/activateBeep.ogg": "https://files.ballistica.net/cache/ba1/d7/a8/b18ed43be241200c9876057c1a42", + "assets/build/ba_data/audio/agent1.ogg": "https://files.ballistica.net/cache/ba1/e3/de/9965b5acd5d083f493db7a408b58", + "assets/build/ba_data/audio/agent2.ogg": "https://files.ballistica.net/cache/ba1/78/6f/cf56862475a7bd86fbc73ca1c494", + "assets/build/ba_data/audio/agent3.ogg": "https://files.ballistica.net/cache/ba1/d1/fa/0f52bb5f094ba46774c9ca24c659", + "assets/build/ba_data/audio/agent4.ogg": "https://files.ballistica.net/cache/ba1/b8/62/ce3dfde3658d00435ba61ab1e7d7", + "assets/build/ba_data/audio/agentDeath.ogg": "https://files.ballistica.net/cache/ba1/76/08/67dc0ea61546959a509717418361", + "assets/build/ba_data/audio/agentFall.ogg": "https://files.ballistica.net/cache/ba1/8b/20/651b5e1988be5f01104c07e93327", + "assets/build/ba_data/audio/agentHit1.ogg": "https://files.ballistica.net/cache/ba1/82/f6/2e8ec79e09a5326b4ca991b3f070", + "assets/build/ba_data/audio/agentHit2.ogg": "https://files.ballistica.net/cache/ba1/e9/e7/d164d89824cb6575c17e0284bf42", + "assets/build/ba_data/audio/alarm.ogg": "https://files.ballistica.net/cache/ba1/13/93/28999304b8286925018dd50a3319", + "assets/build/ba_data/audio/ali1.ogg": "https://files.ballistica.net/cache/ba1/83/d1/4e4dc2fe02cf61721a71d1bf102b", + "assets/build/ba_data/audio/ali2.ogg": "https://files.ballistica.net/cache/ba1/43/99/10b9d046af9150ee6eedd667d178", + "assets/build/ba_data/audio/ali3.ogg": "https://files.ballistica.net/cache/ba1/89/49/0860ebeb8d3def51c54da2c96e70", + "assets/build/ba_data/audio/ali4.ogg": "https://files.ballistica.net/cache/ba1/e2/24/0bec29c4575f638189fdcafa65f7", + "assets/build/ba_data/audio/aliDeath.ogg": "https://files.ballistica.net/cache/ba1/2f/cb/ed02a2d320a02b69b93b78312c83", + "assets/build/ba_data/audio/aliFall.ogg": "https://files.ballistica.net/cache/ba1/55/ca/cc6391e940e46defe2fe67a342f1", + "assets/build/ba_data/audio/aliHit1.ogg": "https://files.ballistica.net/cache/ba1/ed/2e/3a510d5dd2f0dcbaa20d2db82bdd", + "assets/build/ba_data/audio/aliHit2.ogg": "https://files.ballistica.net/cache/ba1/3f/cc/66f352d5975b851aa3ad32df916c", + "assets/build/ba_data/audio/alien1.ogg": "https://files.ballistica.net/cache/ba1/fd/59/7bb59081017057754f55f035d0c5", + "assets/build/ba_data/audio/alien2.ogg": "https://files.ballistica.net/cache/ba1/5b/11/030a9724f1de959363ba17f1d59f", + "assets/build/ba_data/audio/alien3.ogg": "https://files.ballistica.net/cache/ba1/b6/ef/7257b932ceba2fd6e8138b7bfea3", + "assets/build/ba_data/audio/alien4.ogg": "https://files.ballistica.net/cache/ba1/1b/60/793dd7f1da8c240411acd685e22d", + "assets/build/ba_data/audio/alienDeath.ogg": "https://files.ballistica.net/cache/ba1/fd/f9/e4fd8e9413eba5deb740c93b82e8", + "assets/build/ba_data/audio/alienFall.ogg": "https://files.ballistica.net/cache/ba1/66/af/ab8b2e81555a88a775844991ade2", + "assets/build/ba_data/audio/alienHit1.ogg": "https://files.ballistica.net/cache/ba1/0c/00/0349f977c443136276d1c2efd8aa", + "assets/build/ba_data/audio/alienHit2.ogg": "https://files.ballistica.net/cache/ba1/ba/13/fc0e2e0e4c2cfb2d15d556ae8fac", + "assets/build/ba_data/audio/announceEight.ogg": "https://files.ballistica.net/cache/ba1/ef/bb/b39f3ab0f6242acb2e1b3c20e580", + "assets/build/ba_data/audio/announceFive.ogg": "https://files.ballistica.net/cache/ba1/d2/af/910284371f563826b9a3430a7806", + "assets/build/ba_data/audio/announceFour.ogg": "https://files.ballistica.net/cache/ba1/04/bf/e5f857dbc51715545c04e8e26661", + "assets/build/ba_data/audio/announceNine.ogg": "https://files.ballistica.net/cache/ba1/54/68/c703fe2dcc4de4c14c01d75485ab", + "assets/build/ba_data/audio/announceOne.ogg": "https://files.ballistica.net/cache/ba1/69/3a/3f1c240b37dbe0f0c70337295456", + "assets/build/ba_data/audio/announceSeven.ogg": "https://files.ballistica.net/cache/ba1/39/b2/f68a38a8d9026d8eb5cdef4c3d0b", + "assets/build/ba_data/audio/announceSix.ogg": "https://files.ballistica.net/cache/ba1/3e/d2/c3f92979ee852f8a61fb99b6426b", + "assets/build/ba_data/audio/announceTen.ogg": "https://files.ballistica.net/cache/ba1/15/6b/d93db740348d51f6c5d55675a6d6", + "assets/build/ba_data/audio/announceThree.ogg": "https://files.ballistica.net/cache/ba1/10/ef/d30208968f7216c3baba9868ca84", + "assets/build/ba_data/audio/announceTwo.ogg": "https://files.ballistica.net/cache/ba1/fa/6c/6cd92cdd682df006c0c3ed24742a", + "assets/build/ba_data/audio/assassin1.ogg": "https://files.ballistica.net/cache/ba1/38/4f/680374a978ed25698b4fc9217f75", + "assets/build/ba_data/audio/assassin2.ogg": "https://files.ballistica.net/cache/ba1/af/f6/c6fe5dcb7a9ca7e61cae3a4b8ed2", + "assets/build/ba_data/audio/assassin3.ogg": "https://files.ballistica.net/cache/ba1/cc/ff/477b013c6eedebddaa7211daf7d9", + "assets/build/ba_data/audio/assassin4.ogg": "https://files.ballistica.net/cache/ba1/b6/16/86f4ba5613d093c44760c019fe82", + "assets/build/ba_data/audio/assassinDeath.ogg": "https://files.ballistica.net/cache/ba1/71/17/66fa6669e86bdca6240f1fbaf0c7", + "assets/build/ba_data/audio/assassinFall.ogg": "https://files.ballistica.net/cache/ba1/57/76/980dc478a1f237d9215271aff93a", + "assets/build/ba_data/audio/assassinHit1.ogg": "https://files.ballistica.net/cache/ba1/22/3c/b16509338f7acedf88e942cde851", + "assets/build/ba_data/audio/assassinHit2.ogg": "https://files.ballistica.net/cache/ba1/e4/a8/9e3c35af89d6646b1f6057efdb04", + "assets/build/ba_data/audio/bear1.ogg": "https://files.ballistica.net/cache/ba1/d9/43/90301c8f79ca8fc7bf9d46debe8b", + "assets/build/ba_data/audio/bear2.ogg": "https://files.ballistica.net/cache/ba1/06/09/2e0b901d67e637daebfb127633a8", + "assets/build/ba_data/audio/bear3.ogg": "https://files.ballistica.net/cache/ba1/30/72/9c65d8b677ad9c7835a4d8564e61", + "assets/build/ba_data/audio/bear4.ogg": "https://files.ballistica.net/cache/ba1/95/75/f741993d1324b07428daa763a9dd", + "assets/build/ba_data/audio/bearDeath.ogg": "https://files.ballistica.net/cache/ba1/67/13/dadd79d161bc2631f2c042c99a0c", + "assets/build/ba_data/audio/bearFall.ogg": "https://files.ballistica.net/cache/ba1/2a/28/0296bdae09a10107adefe10efc4a", + "assets/build/ba_data/audio/bearHit1.ogg": "https://files.ballistica.net/cache/ba1/40/f7/7c8710bcd59b6985559c46dc77dd", + "assets/build/ba_data/audio/bearHit2.ogg": "https://files.ballistica.net/cache/ba1/03/6a/773d51c38135a560991cc9bfd00e", + "assets/build/ba_data/audio/bellHigh.ogg": "https://files.ballistica.net/cache/ba1/71/d2/22d1f17c9b3b2096717d05ca6abf", + "assets/build/ba_data/audio/bellLow.ogg": "https://files.ballistica.net/cache/ba1/3e/e9/39cf8b93495275f65e6366635a04", + "assets/build/ba_data/audio/bellMed.ogg": "https://files.ballistica.net/cache/ba1/fd/03/158b893534c37bf3fe175f35658a", + "assets/build/ba_data/audio/bigImpact.ogg": "https://files.ballistica.net/cache/ba1/b8/c0/c32a1e9f48b0b930523610a80421", + "assets/build/ba_data/audio/bigImpact2.ogg": "https://files.ballistica.net/cache/ba1/76/a1/98a76f85ba7b82b93a407185c4b4", + "assets/build/ba_data/audio/blank.ogg": "https://files.ballistica.net/cache/ba1/d9/76/0804ca388dfc99bfc59f96995885", + "assets/build/ba_data/audio/blip.ogg": "https://files.ballistica.net/cache/ba1/3e/7b/7202c689b52d6013d039100569b1", + "assets/build/ba_data/audio/block.ogg": "https://files.ballistica.net/cache/ba1/bd/9b/e8562a2ac698ec0134161fbb00ab", + "assets/build/ba_data/audio/bombDrop01.ogg": "https://files.ballistica.net/cache/ba1/f5/98/f2228e345715984d30fc0972f122", + "assets/build/ba_data/audio/bombDrop02.ogg": "https://files.ballistica.net/cache/ba1/31/b1/929d3d8392287b24e7f13d506346", + "assets/build/ba_data/audio/bombRoll01.ogg": "https://files.ballistica.net/cache/ba1/ed/7d/7b854c9fe4cd31256b31d595001b", + "assets/build/ba_data/audio/bones1.ogg": "https://files.ballistica.net/cache/ba1/85/81/74dc1408dd2caa790ac56e79fd72", + "assets/build/ba_data/audio/bones2.ogg": "https://files.ballistica.net/cache/ba1/99/b7/e4f72eee3f7d470454517ccf8db9", + "assets/build/ba_data/audio/bones3.ogg": "https://files.ballistica.net/cache/ba1/4d/ac/91d42d50db70c1680e3939792211", + "assets/build/ba_data/audio/bonesDeath.ogg": "https://files.ballistica.net/cache/ba1/26/fe/f1e83a4625209cc4b731df64d23b", + "assets/build/ba_data/audio/bonesFall.ogg": "https://files.ballistica.net/cache/ba1/36/68/36b1e4ebec91246ff59596265121", + "assets/build/ba_data/audio/boo.ogg": "https://files.ballistica.net/cache/ba1/46/6d/7153999fd341b2d929d92f12d300", + "assets/build/ba_data/audio/boxDrop.ogg": "https://files.ballistica.net/cache/ba1/cb/01/68c7de734ec2904d69a19be3df9a", + "assets/build/ba_data/audio/boxingBell.ogg": "https://files.ballistica.net/cache/ba1/f2/4e/0fdb572eec4ec1d1503b1d28e038", + "assets/build/ba_data/audio/bunny1.ogg": "https://files.ballistica.net/cache/ba1/f8/ea/8d075f42f0bf17b92a95fb44bead", + "assets/build/ba_data/audio/bunny2.ogg": "https://files.ballistica.net/cache/ba1/1a/c6/b5afc0ebcaa7bc52579c218c512a", + "assets/build/ba_data/audio/bunny3.ogg": "https://files.ballistica.net/cache/ba1/05/98/7f644f767c2941dd3945bff39982", + "assets/build/ba_data/audio/bunny4.ogg": "https://files.ballistica.net/cache/ba1/e2/3c/9057dcf62b0e4cd8ec47a5a8f2ff", + "assets/build/ba_data/audio/bunnyDeath.ogg": "https://files.ballistica.net/cache/ba1/f8/e0/bb3cdf44d95b4ff0fd6f309064ca", + "assets/build/ba_data/audio/bunnyFall.ogg": "https://files.ballistica.net/cache/ba1/5a/4d/e493a554ea7924992ee80ee874b8", + "assets/build/ba_data/audio/bunnyHit1.ogg": "https://files.ballistica.net/cache/ba1/37/8a/1403fd21f6b6977a3e9bca899e8e", + "assets/build/ba_data/audio/bunnyHit2.ogg": "https://files.ballistica.net/cache/ba1/d2/45/32b28f2b80da230e19373f24fe72", + "assets/build/ba_data/audio/bunnyJump.ogg": "https://files.ballistica.net/cache/ba1/22/e1/87cd1162f9c12c277337d4db858d", + "assets/build/ba_data/audio/cashRegister.ogg": "https://files.ballistica.net/cache/ba1/7f/6c/fe7fe79bf50d805f715e857e35c1", + "assets/build/ba_data/audio/cashRegister2.ogg": "https://files.ballistica.net/cache/ba1/49/7e/479f0086092c26bea84951b02c65", + "assets/build/ba_data/audio/charSelectMusic.ogg": "https://files.ballistica.net/cache/ba1/8f/60/cad028618fc7a96a57d3e0607ced", + "assets/build/ba_data/audio/cheer.ogg": "https://files.ballistica.net/cache/ba1/10/fc/f5db81aa1f8c88b616f81f0c06d6", + "assets/build/ba_data/audio/click01.ogg": "https://files.ballistica.net/cache/ba1/51/9b/a44d857e14a52b5d4c08fc4cea21", + "assets/build/ba_data/audio/corkPop.ogg": "https://files.ballistica.net/cache/ba1/ba/3b/cbaccb2a2f2faccecc2295fe6eb7", + "assets/build/ba_data/audio/cowboy1.ogg": "https://files.ballistica.net/cache/ba1/d0/97/652e140e26e078e7f999502dccc0", + "assets/build/ba_data/audio/cowboy2.ogg": "https://files.ballistica.net/cache/ba1/ad/e8/1c9180456e93674a9e5cf0bcf316", + "assets/build/ba_data/audio/cowboy3.ogg": "https://files.ballistica.net/cache/ba1/a9/e2/3837dd4a54605278413892bbb1b3", + "assets/build/ba_data/audio/cowboy4.ogg": "https://files.ballistica.net/cache/ba1/5c/23/d092d238c8dc6b984b564acb741e", + "assets/build/ba_data/audio/cowboyDeath.ogg": "https://files.ballistica.net/cache/ba1/92/30/505b35679973265c77aec1879918", + "assets/build/ba_data/audio/cowboyFall.ogg": "https://files.ballistica.net/cache/ba1/e9/73/79acef733ca545471f8ad41ddb70", + "assets/build/ba_data/audio/cowboyHit1.ogg": "https://files.ballistica.net/cache/ba1/48/ca/deae1b1c80d04b2460ce31009cc0", + "assets/build/ba_data/audio/cowboyHit2.ogg": "https://files.ballistica.net/cache/ba1/04/80/09b6ea92633e1fed60761dc09b49", + "assets/build/ba_data/audio/crowdChant.ogg": "https://files.ballistica.net/cache/ba1/40/ed/c9de5de485a4004c331251b0e47a", + "assets/build/ba_data/audio/cyborg1.ogg": "https://files.ballistica.net/cache/ba1/cb/76/ab5d8bdf5171ec6d01c69a0c6f6b", + "assets/build/ba_data/audio/cyborg2.ogg": "https://files.ballistica.net/cache/ba1/0b/47/b5d02aea0b9f87d7f21090d886f5", + "assets/build/ba_data/audio/cyborg3.ogg": "https://files.ballistica.net/cache/ba1/fd/c0/271def6b971461e61b08fb7cb45e", + "assets/build/ba_data/audio/cyborg4.ogg": "https://files.ballistica.net/cache/ba1/6d/21/103490ce2916f176221af16cd203", + "assets/build/ba_data/audio/cyborgDeath.ogg": "https://files.ballistica.net/cache/ba1/e3/d3/34dfd0cc263f6ad90f3dea0f1585", + "assets/build/ba_data/audio/cyborgFall.ogg": "https://files.ballistica.net/cache/ba1/69/57/f82b6830a246d77222155920802d", + "assets/build/ba_data/audio/cyborgHit1.ogg": "https://files.ballistica.net/cache/ba1/8a/44/73888a76aea298601345d7630d22", + "assets/build/ba_data/audio/cyborgHit2.ogg": "https://files.ballistica.net/cache/ba1/54/78/2336a2c02ce7c8e5886c81c9db21", + "assets/build/ba_data/audio/cymbal.ogg": "https://files.ballistica.net/cache/ba1/fe/42/05a8ebd48833c0d9dc759b2b009b", + "assets/build/ba_data/audio/debrisFall.ogg": "https://files.ballistica.net/cache/ba1/24/8c/d4048dbe06b7df22295157896476", + "assets/build/ba_data/audio/deek.ogg": "https://files.ballistica.net/cache/ba1/d3/c6/3eb603673a58aba669d9913d7165", + "assets/build/ba_data/audio/deek2.ogg": "https://files.ballistica.net/cache/ba1/26/e9/d8b78b4485ffa71564fae35c8525", + "assets/build/ba_data/audio/ding.ogg": "https://files.ballistica.net/cache/ba1/f2/27/35f6bb6afdf1888232be7433fdea", + "assets/build/ba_data/audio/dingSmall.ogg": "https://files.ballistica.net/cache/ba1/07/2b/660cc90ea49fe2321bb4e0660e65", + "assets/build/ba_data/audio/dingSmallHigh.ogg": "https://files.ballistica.net/cache/ba1/74/20/68790ee05e2a2ad4ac6e41ce2b23", + "assets/build/ba_data/audio/dripity.ogg": "https://files.ballistica.net/cache/ba1/09/10/a0ca0893396b096d7484a300796e", + "assets/build/ba_data/audio/drumRoll.ogg": "https://files.ballistica.net/cache/ba1/0c/d8/f9a591ed0f9e2144e321c23c0b31", + "assets/build/ba_data/audio/error.ogg": "https://files.ballistica.net/cache/ba1/14/92/b4d09408b166dc26f3f2b4ef7f95", + "assets/build/ba_data/audio/explosion01.ogg": "https://files.ballistica.net/cache/ba1/d2/87/26eab8d87272008bc864dea3b3f2", + "assets/build/ba_data/audio/explosion02.ogg": "https://files.ballistica.net/cache/ba1/a0/54/15d8efb734b3d738a67d7b615be0", + "assets/build/ba_data/audio/explosion03.ogg": "https://files.ballistica.net/cache/ba1/48/09/54c2fdb0c81c195adcceb14bf3ed", + "assets/build/ba_data/audio/explosion04.ogg": "https://files.ballistica.net/cache/ba1/06/31/5eabf40d5de5331c7c3a98736523", + "assets/build/ba_data/audio/explosion05.ogg": "https://files.ballistica.net/cache/ba1/f9/79/7a855a0ee59a5d7b9a4054951170", + "assets/build/ba_data/audio/fanfare.ogg": "https://files.ballistica.net/cache/ba1/3a/24/dfef21fc7086aa10501e7932fd5f", + "assets/build/ba_data/audio/flagCatcherMusic.ogg": "https://files.ballistica.net/cache/ba1/bd/b9/d8f470548312b759a594e61a6547", + "assets/build/ba_data/audio/flyingMusic.ogg": "https://files.ballistica.net/cache/ba1/a3/f3/36f02fe509a69cd3ef93434bf5bb", + "assets/build/ba_data/audio/foghorn.ogg": "https://files.ballistica.net/cache/ba1/c4/d7/69f880ee863c405931d209e1a6fb", + "assets/build/ba_data/audio/footImpact01.ogg": "https://files.ballistica.net/cache/ba1/6a/07/687c4cf9bd3c0689b3ba981b2413", + "assets/build/ba_data/audio/footImpact02.ogg": "https://files.ballistica.net/cache/ba1/aa/d2/185699752a0e588356ec32c01798", + "assets/build/ba_data/audio/footImpact03.ogg": "https://files.ballistica.net/cache/ba1/48/5e/a414bd8f60aae584ef6c232118db", + "assets/build/ba_data/audio/forwardMarchMusic.ogg": "https://files.ballistica.net/cache/ba1/9a/05/d6545c0544aae3cf5b66bd6d592f", + "assets/build/ba_data/audio/freeze.ogg": "https://files.ballistica.net/cache/ba1/20/40/f8df119ec438f26a2ce7272b813c", + "assets/build/ba_data/audio/frosty01.ogg": "https://files.ballistica.net/cache/ba1/4e/e3/3900cffb0982629c4b852c7af08d", + "assets/build/ba_data/audio/frosty02.ogg": "https://files.ballistica.net/cache/ba1/77/23/a38bb0cf56705fda65e28564011f", + "assets/build/ba_data/audio/frosty03.ogg": "https://files.ballistica.net/cache/ba1/4c/25/0c561d18089b5258fd82326cd1ca", + "assets/build/ba_data/audio/frosty04.ogg": "https://files.ballistica.net/cache/ba1/1a/0d/f1a6526db70a1ec72cce3b40c116", + "assets/build/ba_data/audio/frosty05.ogg": "https://files.ballistica.net/cache/ba1/0f/b0/66ad212e837ebf391b99677fcdf6", + "assets/build/ba_data/audio/frostyDeath.ogg": "https://files.ballistica.net/cache/ba1/25/0e/c885a49c36796f108d0c0d119056", + "assets/build/ba_data/audio/frostyFall.ogg": "https://files.ballistica.net/cache/ba1/21/90/eefff7985a66f117b2f054b58e55", + "assets/build/ba_data/audio/frostyHit01.ogg": "https://files.ballistica.net/cache/ba1/b8/f0/6b261ca09a74d265a281a12a3ec7", + "assets/build/ba_data/audio/frostyHit02.ogg": "https://files.ballistica.net/cache/ba1/b4/a2/63af2e0c0171f8af3114537c468e", + "assets/build/ba_data/audio/frostyHit03.ogg": "https://files.ballistica.net/cache/ba1/d6/52/74ab1f9569db7c321b3fc5ce377e", + "assets/build/ba_data/audio/fuse01.ogg": "https://files.ballistica.net/cache/ba1/43/90/d08e1c92f549f36017e149b55a86", + "assets/build/ba_data/audio/gladiator1.ogg": "https://files.ballistica.net/cache/ba1/f5/87/636e940bfa0e145286f0dfe8333d", + "assets/build/ba_data/audio/gladiator2.ogg": "https://files.ballistica.net/cache/ba1/ee/d1/5448ef6a3577079ef5edf14051bf", + "assets/build/ba_data/audio/gladiator3.ogg": "https://files.ballistica.net/cache/ba1/ad/fe/9ee7fd34457375c5bd03d982f513", + "assets/build/ba_data/audio/gladiator4.ogg": "https://files.ballistica.net/cache/ba1/1d/d0/45434851db9c23b445e5b5582ebe", + "assets/build/ba_data/audio/gladiatorDeath.ogg": "https://files.ballistica.net/cache/ba1/51/f5/bff1b5b647f107e2cfdb1160522f", + "assets/build/ba_data/audio/gladiatorFall.ogg": "https://files.ballistica.net/cache/ba1/6f/fb/94d366edc7f7450ccf1ccb0646a4", + "assets/build/ba_data/audio/gladiatorHit1.ogg": "https://files.ballistica.net/cache/ba1/fd/f7/0ea8e9de001d6672bef84a85052a", + "assets/build/ba_data/audio/gladiatorHit2.ogg": "https://files.ballistica.net/cache/ba1/60/dc/ca2b8c97e4d4be7abb4cd8d7a965", + "assets/build/ba_data/audio/gong.ogg": "https://files.ballistica.net/cache/ba1/4e/1d/4fe6dc99d3ae2bc0a7535b0a7de8", + "assets/build/ba_data/audio/grandRompMusic.ogg": "https://files.ballistica.net/cache/ba1/e4/0d/ed53d243edff086373ef8ba3fe31", + "assets/build/ba_data/audio/gravelSkid.ogg": "https://files.ballistica.net/cache/ba1/b6/8b/58b7d422bccb11166f0bf3171aab", + "assets/build/ba_data/audio/gunCocking.ogg": "https://files.ballistica.net/cache/ba1/14/3f/eafa05c127495e6bc3c84e632ce0", + "assets/build/ba_data/audio/healthPowerup.ogg": "https://files.ballistica.net/cache/ba1/02/13/aaae3af392f998a1cdd0875de995", + "assets/build/ba_data/audio/hiss.ogg": "https://files.ballistica.net/cache/ba1/27/6c/d4f59706325bcf457bab6d58fa29", + "assets/build/ba_data/audio/impactHard.ogg": "https://files.ballistica.net/cache/ba1/95/c0/f8eee544bb59d3d2edcec38631f1", + "assets/build/ba_data/audio/impactHard2.ogg": "https://files.ballistica.net/cache/ba1/3c/30/5a0392d264aba976eaf4bff54a46", + "assets/build/ba_data/audio/impactHard3.ogg": "https://files.ballistica.net/cache/ba1/98/d1/86f127f805946f73f4c76aa2cb1d", + "assets/build/ba_data/audio/impactMedium.ogg": "https://files.ballistica.net/cache/ba1/db/ff/25dabed832b64709713bd94db23b", + "assets/build/ba_data/audio/impactMedium2.ogg": "https://files.ballistica.net/cache/ba1/27/68/d1634b8121357cef61aa4a9e70c6", + "assets/build/ba_data/audio/jack01.ogg": "https://files.ballistica.net/cache/ba1/bf/d2/3d9567c8643d184004f3227d616f", + "assets/build/ba_data/audio/jack02.ogg": "https://files.ballistica.net/cache/ba1/5c/66/87ce7724585ee2c96c6c3c44b03a", + "assets/build/ba_data/audio/jack03.ogg": "https://files.ballistica.net/cache/ba1/51/1a/8fd6c69e6dab8d8623d2f929494d", + "assets/build/ba_data/audio/jack04.ogg": "https://files.ballistica.net/cache/ba1/51/27/2ac65eff8450fa022cfb6d1750c3", + "assets/build/ba_data/audio/jack05.ogg": "https://files.ballistica.net/cache/ba1/59/e0/33a7e8f0db571b32a904d15cbf08", + "assets/build/ba_data/audio/jack06.ogg": "https://files.ballistica.net/cache/ba1/f1/64/09fb6cdb1fed5570bbbb4e7c4fb8", + "assets/build/ba_data/audio/jackDeath01.ogg": "https://files.ballistica.net/cache/ba1/5e/1d/2b2e0cd4cd0f6b2fa2ab6b6759f9", + "assets/build/ba_data/audio/jackFall01.ogg": "https://files.ballistica.net/cache/ba1/46/e6/9ea02050fc672ffb325e79108e22", + "assets/build/ba_data/audio/jackHit01.ogg": "https://files.ballistica.net/cache/ba1/05/19/240edaaf38549ec6fe660f10c03e", + "assets/build/ba_data/audio/jackHit02.ogg": "https://files.ballistica.net/cache/ba1/bd/4a/072c239adb19d0964563ad50d788", + "assets/build/ba_data/audio/jackHit03.ogg": "https://files.ballistica.net/cache/ba1/af/a3/810685c06b7458143d903ab6a429", + "assets/build/ba_data/audio/jackHit04.ogg": "https://files.ballistica.net/cache/ba1/c2/15/c38a691562682fde7c6a76e58efc", + "assets/build/ba_data/audio/jackHit05.ogg": "https://files.ballistica.net/cache/ba1/72/c3/def655e1744d2184519bdd64d82c", + "assets/build/ba_data/audio/jackHit06.ogg": "https://files.ballistica.net/cache/ba1/80/d2/ed95168a62421ef432e56b131855", + "assets/build/ba_data/audio/jackHit07.ogg": "https://files.ballistica.net/cache/ba1/50/c5/f189dadd6138127499c8672a6240", + "assets/build/ba_data/audio/jumpsuit1.ogg": "https://files.ballistica.net/cache/ba1/5a/32/ff15c66cddbca09cee47c6b56531", + "assets/build/ba_data/audio/jumpsuit2.ogg": "https://files.ballistica.net/cache/ba1/4d/f0/d5e9747e59bd8aaf976340727cd5", + "assets/build/ba_data/audio/jumpsuit3.ogg": "https://files.ballistica.net/cache/ba1/d6/1a/92a5757591b3cea495e86e86fb61", + "assets/build/ba_data/audio/jumpsuit4.ogg": "https://files.ballistica.net/cache/ba1/8d/64/fe184b240ac15ccd655df29817ae", + "assets/build/ba_data/audio/jumpsuitDeath.ogg": "https://files.ballistica.net/cache/ba1/2d/d2/f5ca729b0bc64906b8077ab1ed24", + "assets/build/ba_data/audio/jumpsuitFall.ogg": "https://files.ballistica.net/cache/ba1/4f/7e/10d644a66c1394d0d49d8602b9a1", + "assets/build/ba_data/audio/jumpsuitHit1.ogg": "https://files.ballistica.net/cache/ba1/6e/19/bab0d0caf87a12d1e17a25284b66", + "assets/build/ba_data/audio/jumpsuitHit2.ogg": "https://files.ballistica.net/cache/ba1/51/02/969e4f6c881f5b824d8e551fe271", + "assets/build/ba_data/audio/kronk1.ogg": "https://files.ballistica.net/cache/ba1/a9/61/1dccd3357fc2d5b018e601feed91", + "assets/build/ba_data/audio/kronk10.ogg": "https://files.ballistica.net/cache/ba1/9f/3b/72a2ee3fcba979e262383598799f", + "assets/build/ba_data/audio/kronk2.ogg": "https://files.ballistica.net/cache/ba1/d2/ed/203a359909d9c0e1ac45857b8e74", + "assets/build/ba_data/audio/kronk3.ogg": "https://files.ballistica.net/cache/ba1/a8/3c/cf3b065c9aeaa2f8b50a5f9f8148", + "assets/build/ba_data/audio/kronk4.ogg": "https://files.ballistica.net/cache/ba1/47/b6/7bef9e6740b2b2ea5cd36b214ebf", + "assets/build/ba_data/audio/kronk5.ogg": "https://files.ballistica.net/cache/ba1/21/35/f016ea1c890091815cdd2ea861fd", + "assets/build/ba_data/audio/kronk6.ogg": "https://files.ballistica.net/cache/ba1/12/a4/3917f77bd8b5582c74368de4aa99", + "assets/build/ba_data/audio/kronk7.ogg": "https://files.ballistica.net/cache/ba1/7e/38/1a243e435cba6fa9a09e72ebe028", + "assets/build/ba_data/audio/kronk8.ogg": "https://files.ballistica.net/cache/ba1/06/71/14bff8e7bb70c7f658a8f383e172", + "assets/build/ba_data/audio/kronk9.ogg": "https://files.ballistica.net/cache/ba1/c5/45/21d042958f41044a1e5f2b21e8b7", + "assets/build/ba_data/audio/kronkDeath.ogg": "https://files.ballistica.net/cache/ba1/3f/d0/c186a2d33aa506d5070d705fc641", + "assets/build/ba_data/audio/kronkFall.ogg": "https://files.ballistica.net/cache/ba1/6c/8a/f805ef2fb55059a5d2dd3890c74d", + "assets/build/ba_data/audio/laser.ogg": "https://files.ballistica.net/cache/ba1/ef/dc/8e0e6949e4e8c78c339fb4575d50", + "assets/build/ba_data/audio/laserReverse.ogg": "https://files.ballistica.net/cache/ba1/f3/79/93b34c76018d124032c2e754b36d", + "assets/build/ba_data/audio/mel01.ogg": "https://files.ballistica.net/cache/ba1/55/3d/9c36e4d21b55f8c0322bfd4290be", + "assets/build/ba_data/audio/mel02.ogg": "https://files.ballistica.net/cache/ba1/96/7f/7d5c30801c38dbdbcf155c2ee273", + "assets/build/ba_data/audio/mel03.ogg": "https://files.ballistica.net/cache/ba1/28/82/6d63e036dfdd8d5965f1218651f7", + "assets/build/ba_data/audio/mel04.ogg": "https://files.ballistica.net/cache/ba1/bd/01/b2f32e88d481782a005d78680d24", + "assets/build/ba_data/audio/mel05.ogg": "https://files.ballistica.net/cache/ba1/7c/2b/94ab4f2c97d5c5552eec345403c1", + "assets/build/ba_data/audio/mel06.ogg": "https://files.ballistica.net/cache/ba1/42/aa/cb28f95d435a80f45ba854e18a43", + "assets/build/ba_data/audio/mel07.ogg": "https://files.ballistica.net/cache/ba1/00/aa/aa1a0cc52828a04725db7b9340ad", + "assets/build/ba_data/audio/mel08.ogg": "https://files.ballistica.net/cache/ba1/d9/44/48c0c4b5709224e541e4bee9ef2a", + "assets/build/ba_data/audio/mel09.ogg": "https://files.ballistica.net/cache/ba1/44/9e/d21685907d9a74e87170012b2236", + "assets/build/ba_data/audio/mel10.ogg": "https://files.ballistica.net/cache/ba1/fc/06/b2243194927b8234f000a8be9ba1", + "assets/build/ba_data/audio/melDeath01.ogg": "https://files.ballistica.net/cache/ba1/70/98/828f9b9b5cbc7267d8d395c501e9", + "assets/build/ba_data/audio/melFall01.ogg": "https://files.ballistica.net/cache/ba1/38/ad/eac309a412a7647d303e72f25552", + "assets/build/ba_data/audio/menuMusic.ogg": "https://files.ballistica.net/cache/ba1/ab/4b/bccc6bc6f012ee7f54dcfe0a5a6c", + "assets/build/ba_data/audio/metalHit.ogg": "https://files.ballistica.net/cache/ba1/a1/6c/4290e1a92ab6f041c443cbd937f9", + "assets/build/ba_data/audio/metalSkid.ogg": "https://files.ballistica.net/cache/ba1/fc/50/4bbff0c0ce85ca86caabbc6d6ee9", + "assets/build/ba_data/audio/ninjaAttack1.ogg": "https://files.ballistica.net/cache/ba1/ca/37/cc9c5422e75c7f3f1a17656d9694", + "assets/build/ba_data/audio/ninjaAttack2.ogg": "https://files.ballistica.net/cache/ba1/44/df/e2a26d752ed0e43e67201bfc4550", + "assets/build/ba_data/audio/ninjaAttack3.ogg": "https://files.ballistica.net/cache/ba1/7a/f6/487acb624f70665498ea74184f7d", + "assets/build/ba_data/audio/ninjaAttack4.ogg": "https://files.ballistica.net/cache/ba1/df/a2/5ff0a991b482c467bcc7955531e6", + "assets/build/ba_data/audio/ninjaAttack5.ogg": "https://files.ballistica.net/cache/ba1/23/28/5cdbe35e5a22c8c33ba10a2b4a00", + "assets/build/ba_data/audio/ninjaAttack6.ogg": "https://files.ballistica.net/cache/ba1/fd/c3/e5f31b1e6612d5c9e605cfe31ecf", + "assets/build/ba_data/audio/ninjaAttack7.ogg": "https://files.ballistica.net/cache/ba1/d9/0a/88eb0c01b87e8656a19c0a67adaa", + "assets/build/ba_data/audio/ninjaDeath1.ogg": "https://files.ballistica.net/cache/ba1/2c/29/3a722832bb0fd8761c5620d0827a", + "assets/build/ba_data/audio/ninjaFall1.ogg": "https://files.ballistica.net/cache/ba1/08/35/6bc7d2bbbf39725d62288ef11ca5", + "assets/build/ba_data/audio/ninjaHit1.ogg": "https://files.ballistica.net/cache/ba1/8c/14/294ef00400c30419aae3cc41631f", + "assets/build/ba_data/audio/ninjaHit2.ogg": "https://files.ballistica.net/cache/ba1/1d/38/fe15621fca654933213fa3274f96", + "assets/build/ba_data/audio/ninjaHit3.ogg": "https://files.ballistica.net/cache/ba1/0d/ae/5c85d617f8e147126463dd8e5163", + "assets/build/ba_data/audio/ninjaHit4.ogg": "https://files.ballistica.net/cache/ba1/90/24/0ef9be3dd5d3b5145af5527c0dc1", + "assets/build/ba_data/audio/ninjaHit5.ogg": "https://files.ballistica.net/cache/ba1/f1/bd/953051dc708cc3f33d9ca121db42", + "assets/build/ba_data/audio/ninjaHit6.ogg": "https://files.ballistica.net/cache/ba1/48/72/cf2ebaab2c8b52b4bb494b686273", + "assets/build/ba_data/audio/ninjaHit7.ogg": "https://files.ballistica.net/cache/ba1/87/31/56b83292e8201726fb0a4c9cbab4", + "assets/build/ba_data/audio/ninjaHit8.ogg": "https://files.ballistica.net/cache/ba1/f6/ef/cca1cb76a4e41508954b73de6308", + "assets/build/ba_data/audio/oldLady1.ogg": "https://files.ballistica.net/cache/ba1/34/3b/433e750cb7036ab83f8b7084c283", + "assets/build/ba_data/audio/oldLady2.ogg": "https://files.ballistica.net/cache/ba1/76/f2/964f13d179283046c5d3b1edfd13", + "assets/build/ba_data/audio/oldLady3.ogg": "https://files.ballistica.net/cache/ba1/3c/08/4d97a1f3b0f5e4d99df9ddad4f30", + "assets/build/ba_data/audio/oldLady4.ogg": "https://files.ballistica.net/cache/ba1/8c/74/b6312c863f55d4ff554463fd3ed9", + "assets/build/ba_data/audio/oldLadyDeath.ogg": "https://files.ballistica.net/cache/ba1/d3/8d/b71638aaef9288e07657f4513c87", + "assets/build/ba_data/audio/oldLadyFall.ogg": "https://files.ballistica.net/cache/ba1/43/d2/fec2d0452691293f426aa03be4dc", + "assets/build/ba_data/audio/oldLadyHit1.ogg": "https://files.ballistica.net/cache/ba1/02/39/f1fe700db605bd8e797508776688", + "assets/build/ba_data/audio/oldLadyHit2.ogg": "https://files.ballistica.net/cache/ba1/54/79/fb42c97d42b8293a85a75e8b33be", + "assets/build/ba_data/audio/ooh.ogg": "https://files.ballistica.net/cache/ba1/23/0c/7e1fcd7e3aeff4ed21801d0b9ba3", + "assets/build/ba_data/audio/operaSinger1.ogg": "https://files.ballistica.net/cache/ba1/d5/61/ad21f3901822f2ec68af0eea84c1", + "assets/build/ba_data/audio/operaSinger2.ogg": "https://files.ballistica.net/cache/ba1/a7/12/7ff05d2e3e9f68f66c4c6eb071af", + "assets/build/ba_data/audio/operaSinger3.ogg": "https://files.ballistica.net/cache/ba1/46/d6/224b0d02b74bfdea302dfea7ed15", + "assets/build/ba_data/audio/operaSinger4.ogg": "https://files.ballistica.net/cache/ba1/28/7c/832b55bb96758a42001c7cf68215", + "assets/build/ba_data/audio/operaSingerDeath.ogg": "https://files.ballistica.net/cache/ba1/e7/a8/804bb741d4d2fcc0c60e8e9fd335", + "assets/build/ba_data/audio/operaSingerFall.ogg": "https://files.ballistica.net/cache/ba1/c5/5a/4569654f579a21398b50bdab3f92", + "assets/build/ba_data/audio/operaSingerHit1.ogg": "https://files.ballistica.net/cache/ba1/fc/3d/f7672ed3203a91ccca65ca49a0c8", + "assets/build/ba_data/audio/operaSingerHit2.ogg": "https://files.ballistica.net/cache/ba1/1b/b0/69b941acf395ddd100326a23eea8", + "assets/build/ba_data/audio/orchestraHit.ogg": "https://files.ballistica.net/cache/ba1/2f/91/41b6588da3ec7866f74b919beb44", + "assets/build/ba_data/audio/orchestraHit2.ogg": "https://files.ballistica.net/cache/ba1/3b/f4/786587cb2e9c1ecec09e54624f85", + "assets/build/ba_data/audio/orchestraHit3.ogg": "https://files.ballistica.net/cache/ba1/db/ae/b8732b553140f72e6006b00846ae", + "assets/build/ba_data/audio/orchestraHit4.ogg": "https://files.ballistica.net/cache/ba1/95/1f/043f24e7bce9a47d6114a170de6b", + "assets/build/ba_data/audio/orchestraHitBig1.ogg": "https://files.ballistica.net/cache/ba1/4b/96/735af33d2bdb86c62527bda009ee", + "assets/build/ba_data/audio/orchestraHitBig2.ogg": "https://files.ballistica.net/cache/ba1/50/8e/ce4a93e35749c030656892f10c84", + "assets/build/ba_data/audio/penguin1.ogg": "https://files.ballistica.net/cache/ba1/a1/56/cccc174b7d01e304205c07278d4a", + "assets/build/ba_data/audio/penguin2.ogg": "https://files.ballistica.net/cache/ba1/8a/2d/c569e669bfda1ccca8c41a332d3b", + "assets/build/ba_data/audio/penguin3.ogg": "https://files.ballistica.net/cache/ba1/de/7e/b6126ac0de242102dce5cc68f6b5", + "assets/build/ba_data/audio/penguin4.ogg": "https://files.ballistica.net/cache/ba1/55/f8/5abeb1e85580a0ea1156625ff4ba", + "assets/build/ba_data/audio/penguinDeath.ogg": "https://files.ballistica.net/cache/ba1/b6/f2/2ff4bd85c6d13d550d9e4b25334e", + "assets/build/ba_data/audio/penguinFall.ogg": "https://files.ballistica.net/cache/ba1/2f/e5/3af6a27a526c648c21cd150745c2", + "assets/build/ba_data/audio/penguinHit1.ogg": "https://files.ballistica.net/cache/ba1/47/fb/e8828f69f05025c63f9b9603a097", + "assets/build/ba_data/audio/penguinHit2.ogg": "https://files.ballistica.net/cache/ba1/60/02/30e129de220ff963c45412783fb7", + "assets/build/ba_data/audio/pixie1.ogg": "https://files.ballistica.net/cache/ba1/d0/7e/0a85b9ac15240c8f087b69805e23", + "assets/build/ba_data/audio/pixie2.ogg": "https://files.ballistica.net/cache/ba1/0e/29/7aceddc028e159d1c023db535e36", + "assets/build/ba_data/audio/pixie3.ogg": "https://files.ballistica.net/cache/ba1/e2/cc/64f79c3f9cbbf027127b20b32fb6", + "assets/build/ba_data/audio/pixie4.ogg": "https://files.ballistica.net/cache/ba1/20/1d/39e0752f7c1231ccb27bcb054b26", + "assets/build/ba_data/audio/pixieDeath.ogg": "https://files.ballistica.net/cache/ba1/3e/d0/ef9860763cfe49e7e9db020b1b1b", + "assets/build/ba_data/audio/pixieFall.ogg": "https://files.ballistica.net/cache/ba1/09/ee/c44fcfab934b45cef56139996047", + "assets/build/ba_data/audio/pixieHit1.ogg": "https://files.ballistica.net/cache/ba1/78/15/0e6e98db0ef3f0be3d86d950d895", + "assets/build/ba_data/audio/pixieHit2.ogg": "https://files.ballistica.net/cache/ba1/7b/b8/656ed2801c5a76ea74f61f13ab10", + "assets/build/ba_data/audio/playerDeath.ogg": "https://files.ballistica.net/cache/ba1/01/73/b91c9eb89e1a80915143c562b35b", + "assets/build/ba_data/audio/playerLeft.ogg": "https://files.ballistica.net/cache/ba1/aa/9c/7b9a90d7cb03d0035f82e35f242a", + "assets/build/ba_data/audio/pop01.ogg": "https://files.ballistica.net/cache/ba1/ed/86/fc3dd7d0fa21457b1e7a1628e682", + "assets/build/ba_data/audio/powerdown01.ogg": "https://files.ballistica.net/cache/ba1/bb/8b/2b583a10252b0c35a8d0d94d155e", + "assets/build/ba_data/audio/powerup01.ogg": "https://files.ballistica.net/cache/ba1/76/11/c1ae47a3da790bb5cff24a7ab4d8", + "assets/build/ba_data/audio/punch01.ogg": "https://files.ballistica.net/cache/ba1/4f/78/c482335129ed447b9d724d3beaa2", + "assets/build/ba_data/audio/punchStrong01.ogg": "https://files.ballistica.net/cache/ba1/a9/5f/fe87867511123094372a5475b226", + "assets/build/ba_data/audio/punchStrong02.ogg": "https://files.ballistica.net/cache/ba1/9e/eb/9db7d3ed9dddf86675cace3b11f2", + "assets/build/ba_data/audio/punchSwish.ogg": "https://files.ballistica.net/cache/ba1/0c/26/8c32ebffa2ecfa5392e1dd4185b3", + "assets/build/ba_data/audio/punchWeak01.ogg": "https://files.ballistica.net/cache/ba1/17/9f/d4fd7800628a4aa92004045425a8", + "assets/build/ba_data/audio/raceBeep1.ogg": "https://files.ballistica.net/cache/ba1/c6/d5/a6b10c5aaea3deb7f4e4d9e321b5", + "assets/build/ba_data/audio/raceBeep2.ogg": "https://files.ballistica.net/cache/ba1/4b/52/774d1d69680f5a40e6c80fc931ed", + "assets/build/ba_data/audio/refWhistle.ogg": "https://files.ballistica.net/cache/ba1/5c/7f/65d1eaae5188084e40a8e36e10ae", + "assets/build/ba_data/audio/robot1.ogg": "https://files.ballistica.net/cache/ba1/2b/7d/ba2578be63ef419a648fc0811bd0", + "assets/build/ba_data/audio/robot2.ogg": "https://files.ballistica.net/cache/ba1/bd/a1/7916ed96d4fed53ba277e7ee2595", + "assets/build/ba_data/audio/robot3.ogg": "https://files.ballistica.net/cache/ba1/f0/fd/f03c5b9b4c123ac826740842775d", + "assets/build/ba_data/audio/robot4.ogg": "https://files.ballistica.net/cache/ba1/5b/e3/844433786561eb13d11d055f99e5", + "assets/build/ba_data/audio/robotDeath.ogg": "https://files.ballistica.net/cache/ba1/bc/a0/4d220d10ca9d4e7d72598bee4d8d", + "assets/build/ba_data/audio/robotFall.ogg": "https://files.ballistica.net/cache/ba1/5b/ff/560d3441f7feb2a08ed3af6d3f64", + "assets/build/ba_data/audio/robotHit1.ogg": "https://files.ballistica.net/cache/ba1/d7/17/a7cda9a0fe0f80f432bc11c5eac1", + "assets/build/ba_data/audio/robotHit2.ogg": "https://files.ballistica.net/cache/ba1/0d/7d/814b4863fe9892fba623d4e0d617", + "assets/build/ba_data/audio/runAwayMusic.ogg": "https://files.ballistica.net/cache/ba1/66/08/98c1524b0600bb80cbc87af072d2", + "assets/build/ba_data/audio/santa01.ogg": "https://files.ballistica.net/cache/ba1/c9/19/82588da97c4ce959f7bb60966ed7", + "assets/build/ba_data/audio/santa02.ogg": "https://files.ballistica.net/cache/ba1/9d/ef/51d0c125428148be91fac4421970", + "assets/build/ba_data/audio/santa03.ogg": "https://files.ballistica.net/cache/ba1/29/ec/2a632082a2643ca3d93042412b4f", + "assets/build/ba_data/audio/santa04.ogg": "https://files.ballistica.net/cache/ba1/31/55/f18e7197c3c95a3ad42650c23c53", + "assets/build/ba_data/audio/santa05.ogg": "https://files.ballistica.net/cache/ba1/61/b6/dbba826ef7a45da86498c07b1011", + "assets/build/ba_data/audio/santaDeath.ogg": "https://files.ballistica.net/cache/ba1/47/37/caa73b64d58866ba34594ca6b2e7", + "assets/build/ba_data/audio/santaFall.ogg": "https://files.ballistica.net/cache/ba1/94/4a/234a39ae524069dfb71af1a3b234", + "assets/build/ba_data/audio/santaHit01.ogg": "https://files.ballistica.net/cache/ba1/1b/df/0743b9cb9a220820c3d6c7b81e01", + "assets/build/ba_data/audio/santaHit02.ogg": "https://files.ballistica.net/cache/ba1/ae/83/92ff894aac5ef18ba73948a8af48", + "assets/build/ba_data/audio/santaHit03.ogg": "https://files.ballistica.net/cache/ba1/e9/55/ae36656682b2b4087cccea278326", + "assets/build/ba_data/audio/santaHit04.ogg": "https://files.ballistica.net/cache/ba1/4f/fa/24028c09a765d80071282fd6aada", + "assets/build/ba_data/audio/scamper01.ogg": "https://files.ballistica.net/cache/ba1/94/42/46eda264db7e181099f35e6cc69c", + "assets/build/ba_data/audio/scaryMusic.ogg": "https://files.ballistica.net/cache/ba1/98/4c/e47ffb3e1ebf9ced1d294543d4f6", + "assets/build/ba_data/audio/score.ogg": "https://files.ballistica.net/cache/ba1/0d/20/8d717d57b960e9b210cd4786ca1b", + "assets/build/ba_data/audio/scoreHit01.ogg": "https://files.ballistica.net/cache/ba1/bf/17/08fb27b75beacb78ce2eb70f7ac8", + "assets/build/ba_data/audio/scoreHit02.ogg": "https://files.ballistica.net/cache/ba1/4b/73/b6f64f95bbad8092feb750d0293d", + "assets/build/ba_data/audio/scoreIncrease.ogg": "https://files.ballistica.net/cache/ba1/ed/79/e4db6933f8219e6f47096dd99c9c", + "assets/build/ba_data/audio/scoresEpicMusic.ogg": "https://files.ballistica.net/cache/ba1/58/92/fbb2eb1d729efd6c727d3401f95d", + "assets/build/ba_data/audio/shatter.ogg": "https://files.ballistica.net/cache/ba1/99/96/d5fe6b4ee382a956b7ab66252e8c", + "assets/build/ba_data/audio/shieldDown.ogg": "https://files.ballistica.net/cache/ba1/37/e1/13c7bf43e8bb2a70118e68294df0", + "assets/build/ba_data/audio/shieldHit.ogg": "https://files.ballistica.net/cache/ba1/53/01/872df7fb82b2ad6df01ee3482ecd", + "assets/build/ba_data/audio/shieldUp.ogg": "https://files.ballistica.net/cache/ba1/fc/27/095cf6373e8c2d49bb3f3b2244c8", + "assets/build/ba_data/audio/skid01.ogg": "https://files.ballistica.net/cache/ba1/14/19/d43dcce5b9a9f71ab7f2f8aa4913", + "assets/build/ba_data/audio/slowEpicMusic.ogg": "https://files.ballistica.net/cache/ba1/22/cf/c9211a2f313cb478c397e6f740c2", + "assets/build/ba_data/audio/sparkle01.ogg": "https://files.ballistica.net/cache/ba1/56/3f/5428ef7501a08cd19ef685ff298c", + "assets/build/ba_data/audio/sparkle02.ogg": "https://files.ballistica.net/cache/ba1/14/07/1d78f055f07244c63e83aafc39e4", + "assets/build/ba_data/audio/sparkle03.ogg": "https://files.ballistica.net/cache/ba1/26/e2/a9e5427679856c3f915e217fd08b", + "assets/build/ba_data/audio/spawn.ogg": "https://files.ballistica.net/cache/ba1/0c/86/d493edf56032bb3290ac4c171df9", + "assets/build/ba_data/audio/spazAttack01.ogg": "https://files.ballistica.net/cache/ba1/5f/ec/fd918fcd0b8d82810ea3553609e2", + "assets/build/ba_data/audio/spazAttack02.ogg": "https://files.ballistica.net/cache/ba1/73/f6/d904bcd83d0bcbec47fa79001bd4", + "assets/build/ba_data/audio/spazAttack03.ogg": "https://files.ballistica.net/cache/ba1/f1/8a/0b038156f892adc34874ef6eef67", + "assets/build/ba_data/audio/spazAttack04.ogg": "https://files.ballistica.net/cache/ba1/bb/48/0785d392e57dfcfa09027ab4a303", + "assets/build/ba_data/audio/spazDeath01.ogg": "https://files.ballistica.net/cache/ba1/b2/5f/63d88d289580df60729b32626699", + "assets/build/ba_data/audio/spazEff.ogg": "https://files.ballistica.net/cache/ba1/38/0a/5a56fd9d1df359482d2d6f2c8d37", + "assets/build/ba_data/audio/spazFall01.ogg": "https://files.ballistica.net/cache/ba1/7c/60/9c47495b6af5c601b39ae90e481d", + "assets/build/ba_data/audio/spazImpact01.ogg": "https://files.ballistica.net/cache/ba1/34/b7/c0f0515e0ab65b575da2af952431", + "assets/build/ba_data/audio/spazImpact02.ogg": "https://files.ballistica.net/cache/ba1/83/49/1db0bb58dd0b050214781591a385", + "assets/build/ba_data/audio/spazImpact03.ogg": "https://files.ballistica.net/cache/ba1/6a/2b/ac5ecd7c292e3d9ce4f68638583f", + "assets/build/ba_data/audio/spazImpact04.ogg": "https://files.ballistica.net/cache/ba1/28/15/bcfee01705a7b4e0dba4fc73034f", + "assets/build/ba_data/audio/spazJump01.ogg": "https://files.ballistica.net/cache/ba1/ff/87/e1e020f6cbf4ba670610b17b904a", + "assets/build/ba_data/audio/spazJump02.ogg": "https://files.ballistica.net/cache/ba1/4f/41/5b5668d853a32fce5a6b411942de", + "assets/build/ba_data/audio/spazJump03.ogg": "https://files.ballistica.net/cache/ba1/56/5e/6ba676555042e089adea8b93973e", + "assets/build/ba_data/audio/spazJump04.ogg": "https://files.ballistica.net/cache/ba1/69/69/ff506664e234e228a6c08c74eed7", + "assets/build/ba_data/audio/spazOw.ogg": "https://files.ballistica.net/cache/ba1/1c/0c/b334c03933c3a87d046f555f5ce5", + "assets/build/ba_data/audio/spazPickup01.ogg": "https://files.ballistica.net/cache/ba1/4c/d2/1967c799bf1a39878de5aaa3cfdc", + "assets/build/ba_data/audio/spazScream01.ogg": "https://files.ballistica.net/cache/ba1/bf/ff/3490d32b6e4158c43844450bf802", + "assets/build/ba_data/audio/splatter.ogg": "https://files.ballistica.net/cache/ba1/64/64/9d254c22c8ff301f9681f6b6b1a2", + "assets/build/ba_data/audio/sportsMusic.ogg": "https://files.ballistica.net/cache/ba1/53/4a/d881d3cd8a345d5cc8cbf0fe0e05", + "assets/build/ba_data/audio/stickyImpact.ogg": "https://files.ballistica.net/cache/ba1/f5/cf/7f26696fe44601727a34ed978ebc", + "assets/build/ba_data/audio/superPunch.ogg": "https://files.ballistica.net/cache/ba1/88/50/8e1ae48999c8accf8ddd43388117", + "assets/build/ba_data/audio/superhero1.ogg": "https://files.ballistica.net/cache/ba1/e0/8e/e0a31ae553e27f6f65ae39d26299", + "assets/build/ba_data/audio/superhero2.ogg": "https://files.ballistica.net/cache/ba1/7e/59/68f9a38cbd10ea9715caef250311", + "assets/build/ba_data/audio/superhero3.ogg": "https://files.ballistica.net/cache/ba1/21/1b/083a951747aab159ce936c9cace2", + "assets/build/ba_data/audio/superhero4.ogg": "https://files.ballistica.net/cache/ba1/39/06/9708e4b46da177f9bee0bb52c22e", + "assets/build/ba_data/audio/superheroDeath.ogg": "https://files.ballistica.net/cache/ba1/a9/2d/bdc87c195976a1a0f3734947abc7", + "assets/build/ba_data/audio/superheroFall.ogg": "https://files.ballistica.net/cache/ba1/ba/ad/8c177322ef9e2ff8a41b088c723f", + "assets/build/ba_data/audio/superheroHit1.ogg": "https://files.ballistica.net/cache/ba1/ce/25/f5564f377f19c56ff23c98daf5ef", + "assets/build/ba_data/audio/superheroHit2.ogg": "https://files.ballistica.net/cache/ba1/84/64/babfb59a5f4d833872109ba6b072", + "assets/build/ba_data/audio/survivalMusic.ogg": "https://files.ballistica.net/cache/ba1/70/55/69e84aec4d40a240456f3d0a6c35", + "assets/build/ba_data/audio/swip.ogg": "https://files.ballistica.net/cache/ba1/06/a2/b97619467c1f5009d7625265f876", + "assets/build/ba_data/audio/swip2.ogg": "https://files.ballistica.net/cache/ba1/02/4a/2dc47f9183d771c7a51e2a685e86", + "assets/build/ba_data/audio/swish.ogg": "https://files.ballistica.net/cache/ba1/d1/2f/6567abf1b0c7ce24a4cbb71ba6ac", + "assets/build/ba_data/audio/swish2.ogg": "https://files.ballistica.net/cache/ba1/ed/2d/d86b2e5bc5bd68cd27b66192a643", + "assets/build/ba_data/audio/swish3.ogg": "https://files.ballistica.net/cache/ba1/21/0b/c9cc9a85fd48eeedf77a500ddb46", + "assets/build/ba_data/audio/tap.ogg": "https://files.ballistica.net/cache/ba1/76/1e/1db1020fe29cbd7fae4ba6afe15e", + "assets/build/ba_data/audio/technoHit01.ogg": "https://files.ballistica.net/cache/ba1/96/2e/506a75ccb5a3413b061866d3ad93", + "assets/build/ba_data/audio/tick.ogg": "https://files.ballistica.net/cache/ba1/29/e7/ded4aafe85d66da06295d2c31b77", + "assets/build/ba_data/audio/ticking.ogg": "https://files.ballistica.net/cache/ba1/2d/6d/007f2dae91fded99cf04e0b41d49", + "assets/build/ba_data/audio/tickingCrazy.ogg": "https://files.ballistica.net/cache/ba1/64/d8/dbc824fe73b7a15d0ed365254de1", + "assets/build/ba_data/audio/toTheDeathMusic.ogg": "https://files.ballistica.net/cache/ba1/99/b7/d28b47c5eff5d7168ff8fdb54725", + "assets/build/ba_data/audio/trashRummage.ogg": "https://files.ballistica.net/cache/ba1/3a/16/551f189f459216ec5567cde03be8", + "assets/build/ba_data/audio/victoryMusic.ogg": "https://files.ballistica.net/cache/ba1/43/58/535c929b38d6b9f2301bac7f1d0f", + "assets/build/ba_data/audio/warnBeep.ogg": "https://files.ballistica.net/cache/ba1/78/ba/ff620c7e4155589bd3fdec204fe9", + "assets/build/ba_data/audio/warnBeeps.ogg": "https://files.ballistica.net/cache/ba1/cd/4b/e0fc659ea8f386e60032e0d2f187", + "assets/build/ba_data/audio/warrior1.ogg": "https://files.ballistica.net/cache/ba1/3b/4e/99f657c939841416ab10705e2f0f", + "assets/build/ba_data/audio/warrior2.ogg": "https://files.ballistica.net/cache/ba1/cf/af/e163e2623b582695c6ef1fee7de6", + "assets/build/ba_data/audio/warrior3.ogg": "https://files.ballistica.net/cache/ba1/9d/67/4153af13d3ca485a1da80d7bfc73", + "assets/build/ba_data/audio/warrior4.ogg": "https://files.ballistica.net/cache/ba1/55/47/77e46614fbbe4124a9e2776d73fa", + "assets/build/ba_data/audio/warriorDeath.ogg": "https://files.ballistica.net/cache/ba1/c7/5a/78b83b2c2f20ee68865126444ea0", + "assets/build/ba_data/audio/warriorFall.ogg": "https://files.ballistica.net/cache/ba1/cf/f3/7fa5b0e061a151e606d0838a5011", + "assets/build/ba_data/audio/warriorHit1.ogg": "https://files.ballistica.net/cache/ba1/14/17/d834c78b06953345b6b914f57c78", + "assets/build/ba_data/audio/warriorHit2.ogg": "https://files.ballistica.net/cache/ba1/99/c9/53c4ab9e87a099e8a327011b6c74", + "assets/build/ba_data/audio/whenJohnnyComesMarchingHomeMusic.ogg": "https://files.ballistica.net/cache/ba1/81/c5/0f20ab2032736ff7a3f1c413d358", + "assets/build/ba_data/audio/witch1.ogg": "https://files.ballistica.net/cache/ba1/54/27/803ace97bef46592461e38f0efeb", + "assets/build/ba_data/audio/witch2.ogg": "https://files.ballistica.net/cache/ba1/97/ad/986af5fccff5a9ee0810c741bd14", + "assets/build/ba_data/audio/witch3.ogg": "https://files.ballistica.net/cache/ba1/d3/09/d274e22491e94a339f50dbe36df2", + "assets/build/ba_data/audio/witch4.ogg": "https://files.ballistica.net/cache/ba1/1d/c0/25666bade6399ec48d42bccf1705", + "assets/build/ba_data/audio/witchDeath.ogg": "https://files.ballistica.net/cache/ba1/e4/b9/df51c74b9acd74b73a42747515ec", + "assets/build/ba_data/audio/witchFall.ogg": "https://files.ballistica.net/cache/ba1/87/a0/9b60db4e4d3244c754596f9810a6", + "assets/build/ba_data/audio/witchHit1.ogg": "https://files.ballistica.net/cache/ba1/d4/bc/90a8fba8d7d950d8d8be589cec1b", + "assets/build/ba_data/audio/witchHit2.ogg": "https://files.ballistica.net/cache/ba1/6a/91/f9d58a9502bee9ec980b36484695", + "assets/build/ba_data/audio/wizard1.ogg": "https://files.ballistica.net/cache/ba1/1a/af/593fdc90435f06f8dac346ede775", + "assets/build/ba_data/audio/wizard2.ogg": "https://files.ballistica.net/cache/ba1/59/0f/08135d11dc6a829c641b56b99375", + "assets/build/ba_data/audio/wizard3.ogg": "https://files.ballistica.net/cache/ba1/9b/c7/1862004a61c07368d9bf9a3b9cbe", + "assets/build/ba_data/audio/wizard4.ogg": "https://files.ballistica.net/cache/ba1/97/9b/71b9b8bbf34334686388d4ebca9f", + "assets/build/ba_data/audio/wizardDeath.ogg": "https://files.ballistica.net/cache/ba1/c3/74/d3e39365c1ef81a3eec0ca21b48e", + "assets/build/ba_data/audio/wizardFall.ogg": "https://files.ballistica.net/cache/ba1/9e/b8/b27b01bb4f9a3b5a7145f92a2f61", + "assets/build/ba_data/audio/wizardHit1.ogg": "https://files.ballistica.net/cache/ba1/9b/60/4a301083a3513101329c6d2dc2f5", + "assets/build/ba_data/audio/wizardHit2.ogg": "https://files.ballistica.net/cache/ba1/69/af/ec859bd88cb98ef3d9f7a59959de", + "assets/build/ba_data/audio/woodDebrisFall.ogg": "https://files.ballistica.net/cache/ba1/a5/4a/92dae35ddef9dc360775e30383f5", + "assets/build/ba_data/audio/wrestler1.ogg": "https://files.ballistica.net/cache/ba1/a0/6a/c44f925a476f89a1ccb0f04ac18d", + "assets/build/ba_data/audio/wrestler2.ogg": "https://files.ballistica.net/cache/ba1/31/75/f2f2417279808ccf6d0110b3307a", + "assets/build/ba_data/audio/wrestler3.ogg": "https://files.ballistica.net/cache/ba1/ac/02/9265798623cb289a6f29ce07d840", + "assets/build/ba_data/audio/wrestler4.ogg": "https://files.ballistica.net/cache/ba1/b3/26/a1c54a9b771616bae9b64f7c1a83", + "assets/build/ba_data/audio/wrestlerDeath.ogg": "https://files.ballistica.net/cache/ba1/76/49/ca56d58cb9e2911dddbb9f8c7f2c", + "assets/build/ba_data/audio/wrestlerFall.ogg": "https://files.ballistica.net/cache/ba1/1a/15/b80123a7fdf63f7583200555f7e0", + "assets/build/ba_data/audio/wrestlerHit1.ogg": "https://files.ballistica.net/cache/ba1/da/88/ff0255b3a88419b60bf818326389", + "assets/build/ba_data/audio/wrestlerHit2.ogg": "https://files.ballistica.net/cache/ba1/83/50/6182cd93dafbf826a27440c77903", + "assets/build/ba_data/audio/zoeAttack01.ogg": "https://files.ballistica.net/cache/ba1/b0/0c/f13584fba6b3c187734260847142", + "assets/build/ba_data/audio/zoeAttack02.ogg": "https://files.ballistica.net/cache/ba1/a2/5b/88ef15998d4d021bbb91f3cf6412", + "assets/build/ba_data/audio/zoeAttack03.ogg": "https://files.ballistica.net/cache/ba1/98/46/233b085adbcb62cfcd2219741bc8", + "assets/build/ba_data/audio/zoeAttack04.ogg": "https://files.ballistica.net/cache/ba1/d2/16/b43c829bf35e6f274d6bbb5362df", + "assets/build/ba_data/audio/zoeDeath01.ogg": "https://files.ballistica.net/cache/ba1/70/db/53d06c54f20ed0c7415f8b2a268c", + "assets/build/ba_data/audio/zoeEff.ogg": "https://files.ballistica.net/cache/ba1/91/28/35b8c180eceefc74976b2031d627", + "assets/build/ba_data/audio/zoeFall01.ogg": "https://files.ballistica.net/cache/ba1/93/85/202aa54ee53dfddc9f4b224f87ae", + "assets/build/ba_data/audio/zoeImpact01.ogg": "https://files.ballistica.net/cache/ba1/20/c0/36b904a3c2dd6e6bdf940bc47f5e", + "assets/build/ba_data/audio/zoeImpact02.ogg": "https://files.ballistica.net/cache/ba1/1d/c2/54d7b87a6bcbea9492d6e2b26b83", + "assets/build/ba_data/audio/zoeImpact03.ogg": "https://files.ballistica.net/cache/ba1/69/39/fc740f0342d796ceeb0a53e239a3", + "assets/build/ba_data/audio/zoeImpact04.ogg": "https://files.ballistica.net/cache/ba1/b0/d9/144192c9b533ab09ed35fabaa2af", + "assets/build/ba_data/audio/zoeJump01.ogg": "https://files.ballistica.net/cache/ba1/b9/e9/a20d4a89805318c49b06c98c1d20", + "assets/build/ba_data/audio/zoeJump02.ogg": "https://files.ballistica.net/cache/ba1/d4/2e/f73de8f7ffd4b91251f8383aeaba", + "assets/build/ba_data/audio/zoeJump03.ogg": "https://files.ballistica.net/cache/ba1/8c/13/17780b788fb9d15c0c6a60f38a89", + "assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/d5/f8/de3b22ac60d0caee44369117c8db", + "assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/c7/37/660e2ceca8b9b2db2cfce5a9f6f0", + "assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/d9/82/92157cb4f21fdd8c911eec910ad4", "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/d2/3b/8570014ea8623a9acd11cff77b51", "assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/45/70/91f386517fa3dc7322e1345ee1ab", "assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/61/03/89070ca765e06da3a419a579f503", @@ -1073,7 +1073,7 @@ "assets/build/ba_data/textures/actionHeroColor.dds": "https://files.ballistica.net/cache/ba1/62/91/355fa26219c26750e46ad358dbc7", "assets/build/ba_data/textures/actionHeroColor.ktx": "https://files.ballistica.net/cache/ba1/01/ce/95415b6b29f60015900b2f33db42", "assets/build/ba_data/textures/actionHeroColor.pvr": "https://files.ballistica.net/cache/ba1/0d/03/832309d85531d4be991b6f7a9107", - "assets/build/ba_data/textures/actionHeroColorMask.dds": "https://files.ballistica.net/cache/ba1/7d/8d/5b94b6e589f7f67ecc310e2cfa3c", + "assets/build/ba_data/textures/actionHeroColorMask.dds": "https://files.ballistica.net/cache/ba1/5c/c0/7f52de795a1f08ffa72030cf9178", "assets/build/ba_data/textures/actionHeroColorMask.ktx": "https://files.ballistica.net/cache/ba1/07/ed/6791e01ac69bb61cdffade59808f", "assets/build/ba_data/textures/actionHeroColorMask.pvr": "https://files.ballistica.net/cache/ba1/22/40/d50cbe4fa13a3294638bb1b42c72", "assets/build/ba_data/textures/actionHeroColorMask_preview.png": "https://files.ballistica.net/cache/ba1/83/2f/9a009e8f2cc9b956043511db105c", @@ -1090,15 +1090,15 @@ "assets/build/ba_data/textures/advancedIcon.ktx": "https://files.ballistica.net/cache/ba1/87/6d/1758aaf14120f6c418e2ecdb410f", "assets/build/ba_data/textures/advancedIcon.pvr": "https://files.ballistica.net/cache/ba1/39/00/237c07cd4a239ca69f90ba571e07", "assets/build/ba_data/textures/advancedIcon_preview.png": "https://files.ballistica.net/cache/ba1/21/d5/3a3a834112b84befe910c15df2b6", - "assets/build/ba_data/textures/agentColor.dds": "https://files.ballistica.net/cache/ba1/17/c2/2a9cc0d3c88e048cce4e75880328", + "assets/build/ba_data/textures/agentColor.dds": "https://files.ballistica.net/cache/ba1/05/19/15d35284e062e8d037dfece71af5", "assets/build/ba_data/textures/agentColor.ktx": "https://files.ballistica.net/cache/ba1/ff/8a/3e375971f932cba1e4c8800129e8", "assets/build/ba_data/textures/agentColor.pvr": "https://files.ballistica.net/cache/ba1/f8/3a/438fae77e7ad607345ff883c272d", - "assets/build/ba_data/textures/agentColorMask.dds": "https://files.ballistica.net/cache/ba1/4f/ab/db5c3baed96dbec309c33ca13258", + "assets/build/ba_data/textures/agentColorMask.dds": "https://files.ballistica.net/cache/ba1/dc/b1/a5a98e27864377a91452abcfba66", "assets/build/ba_data/textures/agentColorMask.ktx": "https://files.ballistica.net/cache/ba1/64/9a/255eeabf2f4a5626d478b41f2268", "assets/build/ba_data/textures/agentColorMask.pvr": "https://files.ballistica.net/cache/ba1/6a/d2/7a311a8525c02f7c8edb974e9651", "assets/build/ba_data/textures/agentColorMask_preview.png": "https://files.ballistica.net/cache/ba1/78/ec/c4ddf22b95d893fa467412334ff5", "assets/build/ba_data/textures/agentColor_preview.png": "https://files.ballistica.net/cache/ba1/9f/1b/1c128a69900d438c220ca7885dc7", - "assets/build/ba_data/textures/agentIcon.dds": "https://files.ballistica.net/cache/ba1/64/37/c020b7e02cf7a7b90eec2e094395", + "assets/build/ba_data/textures/agentIcon.dds": "https://files.ballistica.net/cache/ba1/b4/ea/bc2ed456f6536711e03d292121fa", "assets/build/ba_data/textures/agentIcon.ktx": "https://files.ballistica.net/cache/ba1/eb/1e/e73199f7c33e9002e92fe363a23b", "assets/build/ba_data/textures/agentIcon.pvr": "https://files.ballistica.net/cache/ba1/5e/2d/e18e2133517fdcc8cb7ac28b31a8", "assets/build/ba_data/textures/agentIconColorMask.dds": "https://files.ballistica.net/cache/ba1/b1/9a/ecb2300afababd460ca4bae36d96", @@ -1106,11 +1106,11 @@ "assets/build/ba_data/textures/agentIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/22/24/8aadc852761e3f2c0fbf9d2f025a", "assets/build/ba_data/textures/agentIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/e2/02/85032b1257accbb85ad1904018ef", "assets/build/ba_data/textures/agentIcon_preview.png": "https://files.ballistica.net/cache/ba1/49/70/68d243aeff2de4e474e9a22ee6ef", - "assets/build/ba_data/textures/aliBSRemoteIOSQR.dds": "https://files.ballistica.net/cache/ba1/32/c7/d95e248a28236f7495f285a9e65f", + "assets/build/ba_data/textures/aliBSRemoteIOSQR.dds": "https://files.ballistica.net/cache/ba1/b7/69/9c4a96ceb3f84c6670355cac136d", "assets/build/ba_data/textures/aliBSRemoteIOSQR.ktx": "https://files.ballistica.net/cache/ba1/10/a6/2cc21c0bae6eb45208974d8b1f60", "assets/build/ba_data/textures/aliBSRemoteIOSQR.pvr": "https://files.ballistica.net/cache/ba1/56/8f/3f31426a93b70d4c1c7c54050473", "assets/build/ba_data/textures/aliBSRemoteIOSQR_preview.png": "https://files.ballistica.net/cache/ba1/96/d8/d37b845efc618616a8e1fd0dd04b", - "assets/build/ba_data/textures/aliColor.dds": "https://files.ballistica.net/cache/ba1/d8/6d/edff4cac631ca75db279ccfb1399", + "assets/build/ba_data/textures/aliColor.dds": "https://files.ballistica.net/cache/ba1/54/17/1d3b7c4d9577908ed773ad11dad2", "assets/build/ba_data/textures/aliColor.ktx": "https://files.ballistica.net/cache/ba1/ed/f3/3005b276e2b231be8170102c1cd7", "assets/build/ba_data/textures/aliColor.pvr": "https://files.ballistica.net/cache/ba1/f3/bd/2c82648f6ef242ca4b34fd278629", "assets/build/ba_data/textures/aliColorMask.dds": "https://files.ballistica.net/cache/ba1/68/bb/c7db9f1886a6d3fd5cdb308f3cef", @@ -1118,14 +1118,14 @@ "assets/build/ba_data/textures/aliColorMask.pvr": "https://files.ballistica.net/cache/ba1/31/2a/ddb2a68bdfb3b175be2d3d6bcade", "assets/build/ba_data/textures/aliColorMask_preview.png": "https://files.ballistica.net/cache/ba1/3b/05/0dd47cdf3a3ac437e5e276f5fd86", "assets/build/ba_data/textures/aliColor_preview.png": "https://files.ballistica.net/cache/ba1/cb/93/d9230bee0324b2eec4bb8519dae3", - "assets/build/ba_data/textures/aliControllerQR.dds": "https://files.ballistica.net/cache/ba1/68/f4/742194ee422ce66e9c0c4c7a2c66", + "assets/build/ba_data/textures/aliControllerQR.dds": "https://files.ballistica.net/cache/ba1/55/0a/44ecb9f5cf4e5c02b83089d0d13b", "assets/build/ba_data/textures/aliControllerQR.ktx": "https://files.ballistica.net/cache/ba1/56/50/6d84e5b788b25b4e7275d20ce635", "assets/build/ba_data/textures/aliControllerQR.pvr": "https://files.ballistica.net/cache/ba1/22/8d/34c3d66662866cc806c81ee13517", "assets/build/ba_data/textures/aliControllerQR_preview.png": "https://files.ballistica.net/cache/ba1/59/83/a2dce8f9ec55f87cf450813a31c1", - "assets/build/ba_data/textures/aliIcon.dds": "https://files.ballistica.net/cache/ba1/a0/a6/f4fc06a5e3967f1cfc35eb627706", + "assets/build/ba_data/textures/aliIcon.dds": "https://files.ballistica.net/cache/ba1/bf/c9/ad39ef333825bbd5d6f5462d1a11", "assets/build/ba_data/textures/aliIcon.ktx": "https://files.ballistica.net/cache/ba1/d1/ee/7c1c37d57cdb70d854ecdfb235ed", "assets/build/ba_data/textures/aliIcon.pvr": "https://files.ballistica.net/cache/ba1/b6/04/931fbed4b2a9c75ae7745a88ed40", - "assets/build/ba_data/textures/aliIconColorMask.dds": "https://files.ballistica.net/cache/ba1/64/09/2fdf334c8cb3661bdbecdd2d2dd4", + "assets/build/ba_data/textures/aliIconColorMask.dds": "https://files.ballistica.net/cache/ba1/58/bc/04f52451d42f051acb8409ab965b", "assets/build/ba_data/textures/aliIconColorMask.ktx": "https://files.ballistica.net/cache/ba1/78/89/c3e95a7c3794e4c86ece540aa3a3", "assets/build/ba_data/textures/aliIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/7a/81/d269ece740203c2e1a9a3c9523af", "assets/build/ba_data/textures/aliIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/0f/8d/203f6ec0ff5a8dd380330a0f3853", @@ -1137,7 +1137,7 @@ "assets/build/ba_data/textures/alienColor.dds": "https://files.ballistica.net/cache/ba1/b3/63/1ec79e210306f871f4d24b7a005e", "assets/build/ba_data/textures/alienColor.ktx": "https://files.ballistica.net/cache/ba1/97/fe/96c9ab440866a08d2510109eaaff", "assets/build/ba_data/textures/alienColor.pvr": "https://files.ballistica.net/cache/ba1/39/dc/bb457bc12cd61482e2c7edfa457c", - "assets/build/ba_data/textures/alienColorMask.dds": "https://files.ballistica.net/cache/ba1/12/8c/4b32a6cb77e2d4b840b7fd19ec8a", + "assets/build/ba_data/textures/alienColorMask.dds": "https://files.ballistica.net/cache/ba1/ce/51/a41c4af1205bd33dc8647898e4b6", "assets/build/ba_data/textures/alienColorMask.ktx": "https://files.ballistica.net/cache/ba1/a7/3e/7759a1566e2dacd35c0a23304fc7", "assets/build/ba_data/textures/alienColorMask.pvr": "https://files.ballistica.net/cache/ba1/70/70/49e327a70992f6f2cd57a69e182b", "assets/build/ba_data/textures/alienColorMask_preview.png": "https://files.ballistica.net/cache/ba1/6a/7c/7e2fe077f46778b639b58d533ef8", @@ -1150,15 +1150,15 @@ "assets/build/ba_data/textures/alienIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/0b/8a/54fa4a11a7d066ff0cbc6c741451", "assets/build/ba_data/textures/alienIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/55/bc/686e349c8557f232c6404bc22371", "assets/build/ba_data/textures/alienIcon_preview.png": "https://files.ballistica.net/cache/ba1/4c/c9/12ab7e3cf9f1af93c608ce1bcefb", - "assets/build/ba_data/textures/alwaysLandBGColor.dds": "https://files.ballistica.net/cache/ba1/3e/1e/ee38b7626761d3ead1f2fec82070", + "assets/build/ba_data/textures/alwaysLandBGColor.dds": "https://files.ballistica.net/cache/ba1/88/d6/3afdd31b573a08eb0cf3771f86bb", "assets/build/ba_data/textures/alwaysLandBGColor.ktx": "https://files.ballistica.net/cache/ba1/5a/80/c2ff48e9f0f3e549f105e926dd3d", "assets/build/ba_data/textures/alwaysLandBGColor.pvr": "https://files.ballistica.net/cache/ba1/2d/c0/c236df146c22606a3d290139e5b3", "assets/build/ba_data/textures/alwaysLandBGColor_preview.png": "https://files.ballistica.net/cache/ba1/59/9c/933c8322bf93c02968e6f440ae59", - "assets/build/ba_data/textures/alwaysLandLevelColor.dds": "https://files.ballistica.net/cache/ba1/8a/5e/a2d2c01be327dd3fc34e46706b43", + "assets/build/ba_data/textures/alwaysLandLevelColor.dds": "https://files.ballistica.net/cache/ba1/1e/da/7e0f8f4f82a9728a9996fe4b76bc", "assets/build/ba_data/textures/alwaysLandLevelColor.ktx": "https://files.ballistica.net/cache/ba1/13/bd/5458fc8068b06a20ec00d2e35c2e", "assets/build/ba_data/textures/alwaysLandLevelColor.pvr": "https://files.ballistica.net/cache/ba1/29/12/7c1b247f977a20c2d70069f95787", "assets/build/ba_data/textures/alwaysLandLevelColor_preview.png": "https://files.ballistica.net/cache/ba1/4a/61/15580dd303e1682c7c2f63e890da", - "assets/build/ba_data/textures/alwaysLandPreview.dds": "https://files.ballistica.net/cache/ba1/36/6c/c1c4fcc4464359de5403244d3e30", + "assets/build/ba_data/textures/alwaysLandPreview.dds": "https://files.ballistica.net/cache/ba1/de/5e/62854d25f37a4f2151716dcbb5e0", "assets/build/ba_data/textures/alwaysLandPreview.ktx": "https://files.ballistica.net/cache/ba1/44/1b/8985da2a7c0670089ec086237de2", "assets/build/ba_data/textures/alwaysLandPreview.pvr": "https://files.ballistica.net/cache/ba1/8b/bb/db84d43e0acd251940d39ad52622", "assets/build/ba_data/textures/alwaysLandPreview_preview.png": "https://files.ballistica.net/cache/ba1/c7/6d/d633bbe5ad1fb1478a49cc51f702", @@ -1173,7 +1173,7 @@ "assets/build/ba_data/textures/assassinColor.dds": "https://files.ballistica.net/cache/ba1/74/4c/15d8400e13ddef0e6712bf52dd6e", "assets/build/ba_data/textures/assassinColor.ktx": "https://files.ballistica.net/cache/ba1/77/1e/340bae7b1759427c0cf4ef6f200a", "assets/build/ba_data/textures/assassinColor.pvr": "https://files.ballistica.net/cache/ba1/88/27/2a6734a37b350a8fe9d4313169ae", - "assets/build/ba_data/textures/assassinColorMask.dds": "https://files.ballistica.net/cache/ba1/e2/e5/dc0bcae56faf7203eda79a9397d0", + "assets/build/ba_data/textures/assassinColorMask.dds": "https://files.ballistica.net/cache/ba1/b9/72/87c5ff1b72de68f5751140508d0e", "assets/build/ba_data/textures/assassinColorMask.ktx": "https://files.ballistica.net/cache/ba1/52/6b/126ba01cd6e6f883e0a6695aec9c", "assets/build/ba_data/textures/assassinColorMask.pvr": "https://files.ballistica.net/cache/ba1/c0/2c/5b137a905b0719022101f82f581d", "assets/build/ba_data/textures/assassinColorMask_preview.png": "https://files.ballistica.net/cache/ba1/b0/c5/cb9321a0aca799d83159479d602c", @@ -1198,7 +1198,7 @@ "assets/build/ba_data/textures/bar.ktx": "https://files.ballistica.net/cache/ba1/69/25/7c811b9c7e77e6c7d1df1a047991", "assets/build/ba_data/textures/bar.pvr": "https://files.ballistica.net/cache/ba1/1c/b7/605cdb8193d4190f3a90a173cc90", "assets/build/ba_data/textures/bar_preview.png": "https://files.ballistica.net/cache/ba1/b6/63/94b82a98ae1305b0f6b57fe32e8b", - "assets/build/ba_data/textures/bearColor.dds": "https://files.ballistica.net/cache/ba1/8d/13/f83d6f1249673ad7ba10996d0ac8", + "assets/build/ba_data/textures/bearColor.dds": "https://files.ballistica.net/cache/ba1/e3/9a/f6b129a0fe2933fb23643e71d9ef", "assets/build/ba_data/textures/bearColor.ktx": "https://files.ballistica.net/cache/ba1/62/fc/be9341da4cfa66a8ce63807a3a8e", "assets/build/ba_data/textures/bearColor.pvr": "https://files.ballistica.net/cache/ba1/c3/f7/1773a5033ab0a6689d01e0683a63", "assets/build/ba_data/textures/bearColorMask.dds": "https://files.ballistica.net/cache/ba1/38/04/166ea3d73ed0af9b285db1b7e6c0", @@ -1209,19 +1209,19 @@ "assets/build/ba_data/textures/bearIcon.dds": "https://files.ballistica.net/cache/ba1/cd/80/163ac24028fd5d8ce484040d4176", "assets/build/ba_data/textures/bearIcon.ktx": "https://files.ballistica.net/cache/ba1/01/f7/c2ef1c82862e74f74386c6341cb8", "assets/build/ba_data/textures/bearIcon.pvr": "https://files.ballistica.net/cache/ba1/87/83/c856c8fb48ba9d7a7fd9869746f2", - "assets/build/ba_data/textures/bearIconColorMask.dds": "https://files.ballistica.net/cache/ba1/60/b8/634304bf7f29d239d63dd89ce96b", + "assets/build/ba_data/textures/bearIconColorMask.dds": "https://files.ballistica.net/cache/ba1/78/c9/123f72ce037631bb8f1906b8fd92", "assets/build/ba_data/textures/bearIconColorMask.ktx": "https://files.ballistica.net/cache/ba1/ad/75/804e6901f09e75348f1d480c5ae8", "assets/build/ba_data/textures/bearIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/ce/23/1fd7ce03b72db0dc6b3903d8146f", "assets/build/ba_data/textures/bearIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/72/1c/9775c5e7acec13a491299b998703", "assets/build/ba_data/textures/bearIcon_preview.png": "https://files.ballistica.net/cache/ba1/d9/d2/b74a4de7ca068c378d78c745331b", - "assets/build/ba_data/textures/bg.dds": "https://files.ballistica.net/cache/ba1/2e/60/a4e78e526ace713727738e3a5587", + "assets/build/ba_data/textures/bg.dds": "https://files.ballistica.net/cache/ba1/92/e3/7beb6a9b50408b92e02a94965664", "assets/build/ba_data/textures/bg.ktx": "https://files.ballistica.net/cache/ba1/97/6c/b965850bfa25cf9db805b921d291", "assets/build/ba_data/textures/bg.pvr": "https://files.ballistica.net/cache/ba1/11/84/be878cc8fbe77a3ffdb4cd4ce125", "assets/build/ba_data/textures/bg_preview.png": "https://files.ballistica.net/cache/ba1/6a/77/7613140be4610b02dcb0372111ed", - "assets/build/ba_data/textures/bigG.dds": "https://files.ballistica.net/cache/ba1/2e/74/5d1c4fe9f920a291846c62c7d65e", + "assets/build/ba_data/textures/bigG.dds": "https://files.ballistica.net/cache/ba1/49/34/fe6162a12af04927e4c3489dcfff", "assets/build/ba_data/textures/bigG.ktx": "https://files.ballistica.net/cache/ba1/df/1c/526de060409ebbd5235592943e94", "assets/build/ba_data/textures/bigG.pvr": "https://files.ballistica.net/cache/ba1/41/82/532ef83baefbde887504c11ce140", - "assets/build/ba_data/textures/bigGPreview.dds": "https://files.ballistica.net/cache/ba1/93/0e/842e2e3a11f71802c81a5de450a6", + "assets/build/ba_data/textures/bigGPreview.dds": "https://files.ballistica.net/cache/ba1/2b/1c/8fb6a40e7e08419473d22e23cfcc", "assets/build/ba_data/textures/bigGPreview.ktx": "https://files.ballistica.net/cache/ba1/4a/28/d3c6f8ad9f0c65cd7a422d9177dd", "assets/build/ba_data/textures/bigGPreview.pvr": "https://files.ballistica.net/cache/ba1/4f/b4/9b4069351815040b2af7c4c9b498", "assets/build/ba_data/textures/bigGPreview_preview.png": "https://files.ballistica.net/cache/ba1/4b/24/f4b442bc8ed68d6f3f740ffb19fd", @@ -1237,16 +1237,16 @@ "assets/build/ba_data/textures/bombColor.dds": "https://files.ballistica.net/cache/ba1/5e/2b/492e68d77e6be9d6399e49435a8d", "assets/build/ba_data/textures/bombColor.ktx": "https://files.ballistica.net/cache/ba1/bc/9f/c7a76334cf56bb0bb93d1f720b40", "assets/build/ba_data/textures/bombColor.pvr": "https://files.ballistica.net/cache/ba1/c7/bb/89159008de3b624bcb90b3c25568", - "assets/build/ba_data/textures/bombColorIce.dds": "https://files.ballistica.net/cache/ba1/27/d6/7790056abb3e73e7ffd01920dfb8", + "assets/build/ba_data/textures/bombColorIce.dds": "https://files.ballistica.net/cache/ba1/ab/ed/3f5a8f9f2fb8d1e60f34f1f1701b", "assets/build/ba_data/textures/bombColorIce.ktx": "https://files.ballistica.net/cache/ba1/4b/2d/c8cfa1990fa1f211de36679a3665", "assets/build/ba_data/textures/bombColorIce.pvr": "https://files.ballistica.net/cache/ba1/71/aa/3127d32782835de9fa0fab8c7395", "assets/build/ba_data/textures/bombColorIce_preview.png": "https://files.ballistica.net/cache/ba1/ec/3a/96b5191c5e7662be273c311fa826", "assets/build/ba_data/textures/bombColor_preview.png": "https://files.ballistica.net/cache/ba1/a5/65/878c8aa7876031426f5adf3aeb79", - "assets/build/ba_data/textures/bombStickyColor.dds": "https://files.ballistica.net/cache/ba1/b9/54/8e1dc631ecdb5a045441e96ea2e9", + "assets/build/ba_data/textures/bombStickyColor.dds": "https://files.ballistica.net/cache/ba1/c2/2d/cf8b630173546f03926c56258724", "assets/build/ba_data/textures/bombStickyColor.ktx": "https://files.ballistica.net/cache/ba1/be/83/f3b7ca04ca377e2df7359784d6cf", "assets/build/ba_data/textures/bombStickyColor.pvr": "https://files.ballistica.net/cache/ba1/14/a3/90a633e9edd9f826d89d2f610a0d", "assets/build/ba_data/textures/bombStickyColor_preview.png": "https://files.ballistica.net/cache/ba1/c0/98/05587d954ce791ba5caa41af943f", - "assets/build/ba_data/textures/bonesColor.dds": "https://files.ballistica.net/cache/ba1/31/d5/90d0088aa8435ff2eb9c3b79ebc0", + "assets/build/ba_data/textures/bonesColor.dds": "https://files.ballistica.net/cache/ba1/02/23/f9f6293644faaff5d3fe2f49408f", "assets/build/ba_data/textures/bonesColor.ktx": "https://files.ballistica.net/cache/ba1/51/24/beed81e702c15d04b4f94388a328", "assets/build/ba_data/textures/bonesColor.pvr": "https://files.ballistica.net/cache/ba1/84/85/d3822cbf93732d312b64dd0d2b26", "assets/build/ba_data/textures/bonesColorMask.dds": "https://files.ballistica.net/cache/ba1/9e/57/bc0c41cf259d94e11814170d0137", @@ -1266,7 +1266,7 @@ "assets/build/ba_data/textures/boxingGlovesColor.ktx": "https://files.ballistica.net/cache/ba1/9c/c1/fcb445a18de7bb2adb9c93644840", "assets/build/ba_data/textures/boxingGlovesColor.pvr": "https://files.ballistica.net/cache/ba1/93/a9/c6d48979dc6c72c70f5c39ccabff", "assets/build/ba_data/textures/boxingGlovesColor_preview.png": "https://files.ballistica.net/cache/ba1/75/d2/6056b445e3c8da206f4d7574c623", - "assets/build/ba_data/textures/bridgitLevelColor.dds": "https://files.ballistica.net/cache/ba1/04/af/6c34a515c1e52a5f9c4303683853", + "assets/build/ba_data/textures/bridgitLevelColor.dds": "https://files.ballistica.net/cache/ba1/91/ab/184a0bbeba1c1bb79d28168709be", "assets/build/ba_data/textures/bridgitLevelColor.ktx": "https://files.ballistica.net/cache/ba1/30/08/4f5fec91381abc98c3382763cad9", "assets/build/ba_data/textures/bridgitLevelColor.pvr": "https://files.ballistica.net/cache/ba1/6f/89/65a75daf364c9f3aec77c73bc343", "assets/build/ba_data/textures/bridgitLevelColor_preview.png": "https://files.ballistica.net/cache/ba1/c9/fd/7e9daa40ebce9e08d2daf07aef49", @@ -1274,7 +1274,7 @@ "assets/build/ba_data/textures/bridgitPreview.ktx": "https://files.ballistica.net/cache/ba1/d4/d9/6f936f48e988e335ee1949c2219d", "assets/build/ba_data/textures/bridgitPreview.pvr": "https://files.ballistica.net/cache/ba1/51/18/4716016fd0d40a0bb94cdac9c627", "assets/build/ba_data/textures/bridgitPreview_preview.png": "https://files.ballistica.net/cache/ba1/c8/77/01fcaf507ca7c4575a76bff62ff0", - "assets/build/ba_data/textures/bunnyColor.dds": "https://files.ballistica.net/cache/ba1/9e/30/d07e0031093130e6cbc23a135e45", + "assets/build/ba_data/textures/bunnyColor.dds": "https://files.ballistica.net/cache/ba1/fc/32/5452de45237f804355667a2584ba", "assets/build/ba_data/textures/bunnyColor.ktx": "https://files.ballistica.net/cache/ba1/52/88/9b31fa2ce14ef7b98631cb36e769", "assets/build/ba_data/textures/bunnyColor.pvr": "https://files.ballistica.net/cache/ba1/6b/33/e48393656bbbf7a146d4e246fdc9", "assets/build/ba_data/textures/bunnyColorMask.dds": "https://files.ballistica.net/cache/ba1/b8/f2/7570c919e1f06c66c7236524d53f", @@ -1282,7 +1282,7 @@ "assets/build/ba_data/textures/bunnyColorMask.pvr": "https://files.ballistica.net/cache/ba1/db/91/d3ad07cabd17cffa0d9591532477", "assets/build/ba_data/textures/bunnyColorMask_preview.png": "https://files.ballistica.net/cache/ba1/72/b8/27c36d27c73d19f496f955fa50e2", "assets/build/ba_data/textures/bunnyColor_preview.png": "https://files.ballistica.net/cache/ba1/cb/f2/861b06f9154cd59a8e20802a0875", - "assets/build/ba_data/textures/bunnyIcon.dds": "https://files.ballistica.net/cache/ba1/3a/8c/c4615ce15d075e64da5768272ee7", + "assets/build/ba_data/textures/bunnyIcon.dds": "https://files.ballistica.net/cache/ba1/ca/2e/0352302668a840b50cf83b7d69b3", "assets/build/ba_data/textures/bunnyIcon.ktx": "https://files.ballistica.net/cache/ba1/da/92/e1ce1ba464ffc9ce57bfe87dd792", "assets/build/ba_data/textures/bunnyIcon.pvr": "https://files.ballistica.net/cache/ba1/6e/03/4848e2435ac4f9938a98a7adaf25", "assets/build/ba_data/textures/bunnyIconColorMask.dds": "https://files.ballistica.net/cache/ba1/d2/5d/7427e249e21960ab7f5e738f833d", @@ -1353,14 +1353,14 @@ "assets/build/ba_data/textures/circle.dds": "https://files.ballistica.net/cache/ba1/88/a6/c2e3db7c1c6aab2ad9b05d7074b4", "assets/build/ba_data/textures/circle.ktx": "https://files.ballistica.net/cache/ba1/85/cd/0d9bd306a8f91a9ed661f99529b2", "assets/build/ba_data/textures/circle.pvr": "https://files.ballistica.net/cache/ba1/3a/a2/d61927bc0770e37848ddd6712876", - "assets/build/ba_data/textures/circleNoAlpha.dds": "https://files.ballistica.net/cache/ba1/e9/c1/6af34d954867f725dbb7c63026f1", + "assets/build/ba_data/textures/circleNoAlpha.dds": "https://files.ballistica.net/cache/ba1/90/8b/7c1942e8bd58a3f2f20fc4be7173", "assets/build/ba_data/textures/circleNoAlpha.ktx": "https://files.ballistica.net/cache/ba1/e4/83/17f847e9f832201929a30f1ea535", "assets/build/ba_data/textures/circleNoAlpha.pvr": "https://files.ballistica.net/cache/ba1/23/d1/6d053de8f4ab7871c3275920cf18", "assets/build/ba_data/textures/circleNoAlpha_preview.png": "https://files.ballistica.net/cache/ba1/5c/9d/0ffc70edd5440cea9d5b22810aa2", "assets/build/ba_data/textures/circleOutline.dds": "https://files.ballistica.net/cache/ba1/a4/c2/e0a5bf011be78509dbef899b8f28", "assets/build/ba_data/textures/circleOutline.ktx": "https://files.ballistica.net/cache/ba1/ce/91/5fe4f6f2ade655564632f78ddb32", "assets/build/ba_data/textures/circleOutline.pvr": "https://files.ballistica.net/cache/ba1/df/7a/6de156c06892d833f7ebd264e772", - "assets/build/ba_data/textures/circleOutlineNoAlpha.dds": "https://files.ballistica.net/cache/ba1/86/32/c8fe0fbf2003b7883216b19984fa", + "assets/build/ba_data/textures/circleOutlineNoAlpha.dds": "https://files.ballistica.net/cache/ba1/60/0e/c7d019fe5cd651e26967c97c4969", "assets/build/ba_data/textures/circleOutlineNoAlpha.ktx": "https://files.ballistica.net/cache/ba1/3d/19/19c290ceb02d8d41740c864e7793", "assets/build/ba_data/textures/circleOutlineNoAlpha.pvr": "https://files.ballistica.net/cache/ba1/b0/56/02950e983c0fb55e9bc491b8860c", "assets/build/ba_data/textures/circleOutlineNoAlpha_preview.png": "https://files.ballistica.net/cache/ba1/fc/b5/7d4368c1ff5655ecd7b22234cf54", @@ -1382,18 +1382,18 @@ "assets/build/ba_data/textures/controllerIcon.ktx": "https://files.ballistica.net/cache/ba1/14/16/a15ad29481944559f81f54fdfe20", "assets/build/ba_data/textures/controllerIcon.pvr": "https://files.ballistica.net/cache/ba1/fe/01/befdbde27b052c35d3b12d80e80f", "assets/build/ba_data/textures/controllerIcon_preview.png": "https://files.ballistica.net/cache/ba1/59/a5/1465197ee1267ba0e0b25c43d80f", - "assets/build/ba_data/textures/courtyardLevelColor.dds": "https://files.ballistica.net/cache/ba1/46/f5/b4e9bdd3e30776884339293408eb", + "assets/build/ba_data/textures/courtyardLevelColor.dds": "https://files.ballistica.net/cache/ba1/b2/e1/fb40e54fac2969cbaa71682af9ce", "assets/build/ba_data/textures/courtyardLevelColor.ktx": "https://files.ballistica.net/cache/ba1/bd/56/4b6d7c0144fc37f99f35c52ab009", "assets/build/ba_data/textures/courtyardLevelColor.pvr": "https://files.ballistica.net/cache/ba1/77/97/bf195499e7e18777f02bb87061d7", "assets/build/ba_data/textures/courtyardLevelColor_preview.png": "https://files.ballistica.net/cache/ba1/91/bf/617c0d77529aa079200fdf75173d", - "assets/build/ba_data/textures/courtyardPreview.dds": "https://files.ballistica.net/cache/ba1/52/e5/cfdaab9a05d3f5706c7e5be114a1", + "assets/build/ba_data/textures/courtyardPreview.dds": "https://files.ballistica.net/cache/ba1/cf/c7/5e5a25f7b6b1c0840d66d203e030", "assets/build/ba_data/textures/courtyardPreview.ktx": "https://files.ballistica.net/cache/ba1/58/1c/ceeccf17dd5f3f1beb9af1ab720a", "assets/build/ba_data/textures/courtyardPreview.pvr": "https://files.ballistica.net/cache/ba1/a4/e8/9f1afe13ee2ebb9f6754a5f00f26", "assets/build/ba_data/textures/courtyardPreview_preview.png": "https://files.ballistica.net/cache/ba1/cb/40/06faf314dd35177a6d0e2a041bb7", "assets/build/ba_data/textures/cowboyColor.dds": "https://files.ballistica.net/cache/ba1/a4/49/f004e03fe36543d89dd8d1a6ed7f", "assets/build/ba_data/textures/cowboyColor.ktx": "https://files.ballistica.net/cache/ba1/00/30/f2ae84970bd0697725b821f2f152", "assets/build/ba_data/textures/cowboyColor.pvr": "https://files.ballistica.net/cache/ba1/45/1a/5bbcf702a33fd48e2b9a7016323f", - "assets/build/ba_data/textures/cowboyColorMask.dds": "https://files.ballistica.net/cache/ba1/bd/6a/6158fd65af4641bcd936045005a2", + "assets/build/ba_data/textures/cowboyColorMask.dds": "https://files.ballistica.net/cache/ba1/52/2f/874896a060d55f6498656cb8ba1d", "assets/build/ba_data/textures/cowboyColorMask.ktx": "https://files.ballistica.net/cache/ba1/51/68/9145727dc989afded72318e673c7", "assets/build/ba_data/textures/cowboyColorMask.pvr": "https://files.ballistica.net/cache/ba1/69/44/41ab993ebfc0a1aa32e431582fb4", "assets/build/ba_data/textures/cowboyColorMask_preview.png": "https://files.ballistica.net/cache/ba1/93/43/7bb7d6df6b89daa507ead29d4f2a", @@ -1406,11 +1406,11 @@ "assets/build/ba_data/textures/cowboyIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/b9/bf/be1704729e7714781060d58d65c2", "assets/build/ba_data/textures/cowboyIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/ca/e7/0bc54a6b3fd60923c951fc97d790", "assets/build/ba_data/textures/cowboyIcon_preview.png": "https://files.ballistica.net/cache/ba1/1c/67/f2c47c042d89c220e78e7ebce5ed", - "assets/build/ba_data/textures/cragCastleLevelColor.dds": "https://files.ballistica.net/cache/ba1/89/88/9723a3035d39ef69cf3f3c7bda03", + "assets/build/ba_data/textures/cragCastleLevelColor.dds": "https://files.ballistica.net/cache/ba1/fe/9a/3d8efc6b02fe3f071b832d41dacb", "assets/build/ba_data/textures/cragCastleLevelColor.ktx": "https://files.ballistica.net/cache/ba1/ea/44/3b99b25e09c05fc6e85583866694", "assets/build/ba_data/textures/cragCastleLevelColor.pvr": "https://files.ballistica.net/cache/ba1/1e/9a/9b5125e165f5ebaecc8f1934a2c1", "assets/build/ba_data/textures/cragCastleLevelColor_preview.png": "https://files.ballistica.net/cache/ba1/b4/6c/6b8f525be822459dd4bd6548b2a8", - "assets/build/ba_data/textures/cragCastlePreview.dds": "https://files.ballistica.net/cache/ba1/87/12/9abc61fcd67f230597f166220d60", + "assets/build/ba_data/textures/cragCastlePreview.dds": "https://files.ballistica.net/cache/ba1/fb/22/e6c8a874a13b94a688ba5421141a", "assets/build/ba_data/textures/cragCastlePreview.ktx": "https://files.ballistica.net/cache/ba1/0c/b2/890cb8167c41cd2c220daa3db7a9", "assets/build/ba_data/textures/cragCastlePreview.pvr": "https://files.ballistica.net/cache/ba1/c9/61/1c57e31b464b26c5e6c125d38944", "assets/build/ba_data/textures/cragCastlePreview_preview.png": "https://files.ballistica.net/cache/ba1/b1/b2/d49537dbba63c3cbc25b3989a2e2", @@ -1430,31 +1430,31 @@ "assets/build/ba_data/textures/cuteSpaz.ktx": "https://files.ballistica.net/cache/ba1/9a/65/5bfc1d1ef2bb7ac9b767e70d6015", "assets/build/ba_data/textures/cuteSpaz.pvr": "https://files.ballistica.net/cache/ba1/ff/ec/9172f64f96803393de8da58f7566", "assets/build/ba_data/textures/cuteSpaz_preview.png": "https://files.ballistica.net/cache/ba1/e9/74/364547fef623e7bbbbc8a92a9efa", - "assets/build/ba_data/textures/cyborgColor.dds": "https://files.ballistica.net/cache/ba1/35/94/7e5c288cb0f17bd904f3a66ee6f7", + "assets/build/ba_data/textures/cyborgColor.dds": "https://files.ballistica.net/cache/ba1/93/d4/75c140eff1c3cc45e1766fc0e95c", "assets/build/ba_data/textures/cyborgColor.ktx": "https://files.ballistica.net/cache/ba1/d0/d6/e611760948207bebc5cec40721ee", "assets/build/ba_data/textures/cyborgColor.pvr": "https://files.ballistica.net/cache/ba1/3b/b4/14499682862c916ba7e6df183445", - "assets/build/ba_data/textures/cyborgColorMask.dds": "https://files.ballistica.net/cache/ba1/28/57/0bd64f9f7d5573a9e1fd1c5f422d", + "assets/build/ba_data/textures/cyborgColorMask.dds": "https://files.ballistica.net/cache/ba1/34/e0/24881a8cabf3b48f1e68635b0096", "assets/build/ba_data/textures/cyborgColorMask.ktx": "https://files.ballistica.net/cache/ba1/09/49/64a4b4bd11d7f43ee3e3b4557ccb", "assets/build/ba_data/textures/cyborgColorMask.pvr": "https://files.ballistica.net/cache/ba1/aa/8f/2017c219d46766b0a8a58b12ef80", "assets/build/ba_data/textures/cyborgColorMask_preview.png": "https://files.ballistica.net/cache/ba1/b2/c8/1ca1bb73d93dd93169977aef26eb", "assets/build/ba_data/textures/cyborgColor_preview.png": "https://files.ballistica.net/cache/ba1/23/68/de2999bc4db759030c77dd372e23", - "assets/build/ba_data/textures/cyborgIcon.dds": "https://files.ballistica.net/cache/ba1/99/c3/8eed2f236f66aef901d452cdb98b", + "assets/build/ba_data/textures/cyborgIcon.dds": "https://files.ballistica.net/cache/ba1/5a/55/c63bdf0b63c76da7b387b4bebecb", "assets/build/ba_data/textures/cyborgIcon.ktx": "https://files.ballistica.net/cache/ba1/de/ab/4d5b2163047d3fb9b05d43c9183d", "assets/build/ba_data/textures/cyborgIcon.pvr": "https://files.ballistica.net/cache/ba1/0c/7b/b47a4bfbbfd8607ea06375963485", - "assets/build/ba_data/textures/cyborgIconColorMask.dds": "https://files.ballistica.net/cache/ba1/9d/2a/1852d636d06de05bff2ffac52d9c", + "assets/build/ba_data/textures/cyborgIconColorMask.dds": "https://files.ballistica.net/cache/ba1/ad/20/71a5de426d081b99c1abe672474a", "assets/build/ba_data/textures/cyborgIconColorMask.ktx": "https://files.ballistica.net/cache/ba1/20/95/85096b550149fb17500c673a9589", "assets/build/ba_data/textures/cyborgIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/1f/70/35e302e1a91d78ab23cb3e936bde", "assets/build/ba_data/textures/cyborgIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/09/bb/e6563f614b2cda0ca5da89b80b2a", "assets/build/ba_data/textures/cyborgIcon_preview.png": "https://files.ballistica.net/cache/ba1/4e/af/0d54cad1089f73c91ed766519d77", - "assets/build/ba_data/textures/doomShroomBGColor.dds": "https://files.ballistica.net/cache/ba1/12/cc/3fa62b5809176403776958657571", + "assets/build/ba_data/textures/doomShroomBGColor.dds": "https://files.ballistica.net/cache/ba1/5c/2b/88deea7de0cf4b7e3250ca76bcc1", "assets/build/ba_data/textures/doomShroomBGColor.ktx": "https://files.ballistica.net/cache/ba1/db/35/7f5884df9de36467179b45e8e241", "assets/build/ba_data/textures/doomShroomBGColor.pvr": "https://files.ballistica.net/cache/ba1/65/5d/fc508d48f3703e91cfbfce0187ed", "assets/build/ba_data/textures/doomShroomBGColor_preview.png": "https://files.ballistica.net/cache/ba1/b5/7e/995e3c648eb68d4c72c4e50be7e6", - "assets/build/ba_data/textures/doomShroomLevelColor.dds": "https://files.ballistica.net/cache/ba1/ac/a4/03513b905d7379ee44e6e686056d", + "assets/build/ba_data/textures/doomShroomLevelColor.dds": "https://files.ballistica.net/cache/ba1/cd/1e/f297f1c37249810e7aaffca591a4", "assets/build/ba_data/textures/doomShroomLevelColor.ktx": "https://files.ballistica.net/cache/ba1/6c/96/d887b3d3cf79d2264ad2e601193d", "assets/build/ba_data/textures/doomShroomLevelColor.pvr": "https://files.ballistica.net/cache/ba1/e2/15/8303117a33a96a61376dad6f5e9d", "assets/build/ba_data/textures/doomShroomLevelColor_preview.png": "https://files.ballistica.net/cache/ba1/61/cf/327dd838ebab6875b92ee28c3bcd", - "assets/build/ba_data/textures/doomShroomPreview.dds": "https://files.ballistica.net/cache/ba1/f5/68/bd828096f33579d65a44c5357933", + "assets/build/ba_data/textures/doomShroomPreview.dds": "https://files.ballistica.net/cache/ba1/d7/c7/888bb15afe907f3a37006e76b3af", "assets/build/ba_data/textures/doomShroomPreview.ktx": "https://files.ballistica.net/cache/ba1/f6/3c/20abd773a8502a0954d62c0917c7", "assets/build/ba_data/textures/doomShroomPreview.pvr": "https://files.ballistica.net/cache/ba1/d3/92/aca35e87cb29f4da683e88859a21", "assets/build/ba_data/textures/doomShroomPreview_preview.png": "https://files.ballistica.net/cache/ba1/19/85/7ec1b3b28c5bc564fd0a106d2423", @@ -1494,7 +1494,7 @@ "assets/build/ba_data/textures/empty.ktx": "https://files.ballistica.net/cache/ba1/1c/1a/c944b4615540bebbd2337f37a36e", "assets/build/ba_data/textures/empty.pvr": "https://files.ballistica.net/cache/ba1/e1/85/0e5d594e57336cf14b4914ebb37c", "assets/build/ba_data/textures/empty_preview.png": "https://files.ballistica.net/cache/ba1/27/1d/936488a18c78f387f2f4ec562545", - "assets/build/ba_data/textures/explosion.dds": "https://files.ballistica.net/cache/ba1/da/1f/fac45c02f2f889b62335f3f85d77", + "assets/build/ba_data/textures/explosion.dds": "https://files.ballistica.net/cache/ba1/e7/95/a6d20541c8ffff02583799ab77ba", "assets/build/ba_data/textures/explosion.ktx": "https://files.ballistica.net/cache/ba1/72/e7/7db06c8ab6f0dd8dfc48162824b1", "assets/build/ba_data/textures/explosion.pvr": "https://files.ballistica.net/cache/ba1/38/42/e4de72086e36187dcb5e4005f4e9", "assets/build/ba_data/textures/explosion_preview.png": "https://files.ballistica.net/cache/ba1/6f/01/8a6cf54d2e9b24c87c00ea2ca9c3", @@ -1510,11 +1510,11 @@ "assets/build/ba_data/textures/file.ktx": "https://files.ballistica.net/cache/ba1/d5/f6/a80ff58c84435b33a05a1e61016e", "assets/build/ba_data/textures/file.pvr": "https://files.ballistica.net/cache/ba1/5f/25/e6079cc54364d95d6101fc74bdba", "assets/build/ba_data/textures/file_preview.png": "https://files.ballistica.net/cache/ba1/ef/c6/71a8f503449908b15a40ce3b5b03", - "assets/build/ba_data/textures/flagColor.dds": "https://files.ballistica.net/cache/ba1/ee/84/655bd471f8265bc7d61f95beda16", + "assets/build/ba_data/textures/flagColor.dds": "https://files.ballistica.net/cache/ba1/4a/ce/2682d3720bff14ec43bdfcaca346", "assets/build/ba_data/textures/flagColor.ktx": "https://files.ballistica.net/cache/ba1/81/3c/f16914e9d68d64ce59a1f7681bff", "assets/build/ba_data/textures/flagColor.pvr": "https://files.ballistica.net/cache/ba1/e0/b0/06fd752a0f3563252d6dee64dcb3", "assets/build/ba_data/textures/flagColor_preview.png": "https://files.ballistica.net/cache/ba1/0b/33/50db4a9487b0ef8d65f2628776e5", - "assets/build/ba_data/textures/flagPoleColor.dds": "https://files.ballistica.net/cache/ba1/ba/7a/25e2cd1d33d4f323682716489099", + "assets/build/ba_data/textures/flagPoleColor.dds": "https://files.ballistica.net/cache/ba1/22/e0/43555f1a8a4bff7088c33ccd179e", "assets/build/ba_data/textures/flagPoleColor.ktx": "https://files.ballistica.net/cache/ba1/0f/56/7d16d9b2af848d004da2012c2cf7", "assets/build/ba_data/textures/flagPoleColor.pvr": "https://files.ballistica.net/cache/ba1/7b/63/e163c96ff68bb242e8b9ef339711", "assets/build/ba_data/textures/flagPoleColor_preview.png": "https://files.ballistica.net/cache/ba1/e0/e4/6c41b0bfd6796344ba60d0bdf189", @@ -1574,10 +1574,10 @@ "assets/build/ba_data/textures/fontSmall7.ktx": "https://files.ballistica.net/cache/ba1/14/d0/23e59a31103533757dea7ffae94e", "assets/build/ba_data/textures/fontSmall7.pvr": "https://files.ballistica.net/cache/ba1/48/b5/26321b2643219162a713170ab9b8", "assets/build/ba_data/textures/fontSmall7_preview.png": "https://files.ballistica.net/cache/ba1/70/56/13b940fb6d0ba48023e7fac6f184", - "assets/build/ba_data/textures/footballStadium.dds": "https://files.ballistica.net/cache/ba1/37/98/82cd29605606ef50ec7f7f1a2b38", + "assets/build/ba_data/textures/footballStadium.dds": "https://files.ballistica.net/cache/ba1/c6/f3/1906912b8e4d923a0ec975de5e8f", "assets/build/ba_data/textures/footballStadium.ktx": "https://files.ballistica.net/cache/ba1/00/bf/6b8e37071ad1d6e33f30f1998bed", "assets/build/ba_data/textures/footballStadium.pvr": "https://files.ballistica.net/cache/ba1/92/69/f2c5577a1de103343ddcb01d6104", - "assets/build/ba_data/textures/footballStadiumPreview.dds": "https://files.ballistica.net/cache/ba1/f6/f3/032deefbd09bdb75806d9ed813c2", + "assets/build/ba_data/textures/footballStadiumPreview.dds": "https://files.ballistica.net/cache/ba1/d9/7f/b42a16567ea5ae5a85faa027e4ce", "assets/build/ba_data/textures/footballStadiumPreview.ktx": "https://files.ballistica.net/cache/ba1/96/f2/6cf9b95e27aeca2d8be08feedaef", "assets/build/ba_data/textures/footballStadiumPreview.pvr": "https://files.ballistica.net/cache/ba1/3f/1b/ce5faa6a8678c3b7d0a461c9509b", "assets/build/ba_data/textures/footballStadiumPreview_preview.png": "https://files.ballistica.net/cache/ba1/a7/c8/393d085e92e185e6c43ab28cd5ee", @@ -1586,15 +1586,15 @@ "assets/build/ba_data/textures/frameInset.ktx": "https://files.ballistica.net/cache/ba1/61/d7/264cfcdd0d07d67ac90827969caa", "assets/build/ba_data/textures/frameInset.pvr": "https://files.ballistica.net/cache/ba1/d1/ef/b0dd66aab3c8cf21933dc53f0c8f", "assets/build/ba_data/textures/frameInset_preview.png": "https://files.ballistica.net/cache/ba1/51/2f/a18329872f0d0b71f0a333c0db81", - "assets/build/ba_data/textures/frostyColor.dds": "https://files.ballistica.net/cache/ba1/8c/ae/6ca51f72866944ce9691c8a1a7d5", + "assets/build/ba_data/textures/frostyColor.dds": "https://files.ballistica.net/cache/ba1/6d/c6/2a49a0ec7810e7431c35752d3d37", "assets/build/ba_data/textures/frostyColor.ktx": "https://files.ballistica.net/cache/ba1/17/6c/fe178ee04831b332ff771bade627", "assets/build/ba_data/textures/frostyColor.pvr": "https://files.ballistica.net/cache/ba1/f8/fb/83779ec75b8113a47b9368ad6992", - "assets/build/ba_data/textures/frostyColorMask.dds": "https://files.ballistica.net/cache/ba1/f0/aa/0c7c2dfc831bb96d76b2c1719597", + "assets/build/ba_data/textures/frostyColorMask.dds": "https://files.ballistica.net/cache/ba1/7c/a3/3cd619ea33d9e222af6da8ce7ccc", "assets/build/ba_data/textures/frostyColorMask.ktx": "https://files.ballistica.net/cache/ba1/5d/ff/5a82bf1855c957357d277dec18c7", "assets/build/ba_data/textures/frostyColorMask.pvr": "https://files.ballistica.net/cache/ba1/d2/e3/5ccf3bc21b48180ef890cfd1ebab", "assets/build/ba_data/textures/frostyColorMask_preview.png": "https://files.ballistica.net/cache/ba1/44/6f/795803f91fbf1628e708a6a293a4", "assets/build/ba_data/textures/frostyColor_preview.png": "https://files.ballistica.net/cache/ba1/cd/3c/f7e49e7cf8164f754c2384f35e55", - "assets/build/ba_data/textures/frostyIcon.dds": "https://files.ballistica.net/cache/ba1/52/39/1044bf10f62219a9c804efec91ea", + "assets/build/ba_data/textures/frostyIcon.dds": "https://files.ballistica.net/cache/ba1/17/76/45c5a0a3d416259aab598bad0303", "assets/build/ba_data/textures/frostyIcon.ktx": "https://files.ballistica.net/cache/ba1/74/b4/d498eb65a6a3b562e9eb6195131b", "assets/build/ba_data/textures/frostyIcon.pvr": "https://files.ballistica.net/cache/ba1/a2/a6/589107d7ab94e8ba9dec5895ba6d", "assets/build/ba_data/textures/frostyIconColorMask.dds": "https://files.ballistica.net/cache/ba1/af/d5/5421823e52ef7bb86d1e24a610c4", @@ -1602,7 +1602,7 @@ "assets/build/ba_data/textures/frostyIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/8e/98/89e07ef5493074a2c4cbb7aa1592", "assets/build/ba_data/textures/frostyIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/ef/77/6b17bc9b8d8d3fa37760ed4d96ac", "assets/build/ba_data/textures/frostyIcon_preview.png": "https://files.ballistica.net/cache/ba1/3e/dd/9cc6d8f3f494b586237b050a4e06", - "assets/build/ba_data/textures/fuse.dds": "https://files.ballistica.net/cache/ba1/4b/72/e7709195c5903f968c33209dc1ed", + "assets/build/ba_data/textures/fuse.dds": "https://files.ballistica.net/cache/ba1/9a/72/5eb4b3235d38ec3f69c61fdb0445", "assets/build/ba_data/textures/fuse.ktx": "https://files.ballistica.net/cache/ba1/49/ea/71c5c7dcbdcb213c036460d59117", "assets/build/ba_data/textures/fuse.pvr": "https://files.ballistica.net/cache/ba1/48/3a/710945756ee605974820d4c98e49", "assets/build/ba_data/textures/fuse_preview.png": "https://files.ballistica.net/cache/ba1/f1/69/975f7d19d7db9a01d78ecb33bfe2", @@ -1617,7 +1617,7 @@ "assets/build/ba_data/textures/gladiatorColor.dds": "https://files.ballistica.net/cache/ba1/a8/6a/2b8eb1e0f4c15993e98be5395e4c", "assets/build/ba_data/textures/gladiatorColor.ktx": "https://files.ballistica.net/cache/ba1/20/13/e491823b8cc38a52400f9d74a209", "assets/build/ba_data/textures/gladiatorColor.pvr": "https://files.ballistica.net/cache/ba1/14/60/1d4a45b0036538368348613ad01f", - "assets/build/ba_data/textures/gladiatorColorMask.dds": "https://files.ballistica.net/cache/ba1/05/7f/ee686ec23643b388502639d98879", + "assets/build/ba_data/textures/gladiatorColorMask.dds": "https://files.ballistica.net/cache/ba1/d2/ac/02d7c9a4320ed6a8b416d48f2665", "assets/build/ba_data/textures/gladiatorColorMask.ktx": "https://files.ballistica.net/cache/ba1/1e/ae/f91222e92e938c0fc8be66103cb5", "assets/build/ba_data/textures/gladiatorColorMask.pvr": "https://files.ballistica.net/cache/ba1/46/18/4ad8171ff791a86b03160648afcf", "assets/build/ba_data/textures/gladiatorColorMask_preview.png": "https://files.ballistica.net/cache/ba1/87/45/0621a7a40782a938a8f66f8985ae", @@ -1662,10 +1662,10 @@ "assets/build/ba_data/textures/heart.ktx": "https://files.ballistica.net/cache/ba1/b7/b1/8db1d5e585578b16ad0e7dac922e", "assets/build/ba_data/textures/heart.pvr": "https://files.ballistica.net/cache/ba1/b1/78/46eb38e941aa94b7a8c654c1ef38", "assets/build/ba_data/textures/heart_preview.png": "https://files.ballistica.net/cache/ba1/3c/d8/bc7b73e6920382202f1bf27b7b40", - "assets/build/ba_data/textures/hockeyStadium.dds": "https://files.ballistica.net/cache/ba1/8e/19/703679fb5ac0e07d577d2727ab27", + "assets/build/ba_data/textures/hockeyStadium.dds": "https://files.ballistica.net/cache/ba1/bc/a0/0ddbb1707aab5481582f40b5042c", "assets/build/ba_data/textures/hockeyStadium.ktx": "https://files.ballistica.net/cache/ba1/57/14/4a768367b5a3ada80b8b866320ae", "assets/build/ba_data/textures/hockeyStadium.pvr": "https://files.ballistica.net/cache/ba1/f4/e4/65792658b9ef354781472d5f82ba", - "assets/build/ba_data/textures/hockeyStadiumPreview.dds": "https://files.ballistica.net/cache/ba1/e0/84/38b2f0294f016bf122dcbfa226d2", + "assets/build/ba_data/textures/hockeyStadiumPreview.dds": "https://files.ballistica.net/cache/ba1/3c/d6/a0f39559e614781ef7590cf98826", "assets/build/ba_data/textures/hockeyStadiumPreview.ktx": "https://files.ballistica.net/cache/ba1/af/05/69b7f2c83e332b6ec410163a59fd", "assets/build/ba_data/textures/hockeyStadiumPreview.pvr": "https://files.ballistica.net/cache/ba1/4c/fb/7bcd3e1d5f830558cd01206c57e6", "assets/build/ba_data/textures/hockeyStadiumPreview_preview.png": "https://files.ballistica.net/cache/ba1/d8/99/5d6922a337009674a13b647e06c5", @@ -1682,7 +1682,7 @@ "assets/build/ba_data/textures/iircadeLogo.ktx": "https://files.ballistica.net/cache/ba1/58/b9/848fbac7a1c7ad6a9b2efd758ff1", "assets/build/ba_data/textures/iircadeLogo.pvr": "https://files.ballistica.net/cache/ba1/19/ba/66f832c978d9cf46f991e4811401", "assets/build/ba_data/textures/iircadeLogo_preview.png": "https://files.ballistica.net/cache/ba1/c7/d6/0740136951cbc17907f6192357b2", - "assets/build/ba_data/textures/impactBombColor.dds": "https://files.ballistica.net/cache/ba1/59/f6/810262f238679951f7702f2ed1a5", + "assets/build/ba_data/textures/impactBombColor.dds": "https://files.ballistica.net/cache/ba1/a6/70/8486c52fb904e18e9b13f4850b5e", "assets/build/ba_data/textures/impactBombColor.ktx": "https://files.ballistica.net/cache/ba1/fc/3b/e1051061b1ed03bcbfdc6b9f8c79", "assets/build/ba_data/textures/impactBombColor.pvr": "https://files.ballistica.net/cache/ba1/d6/d9/0f81193db5aa44780ee8bb0943b9", "assets/build/ba_data/textures/impactBombColorLit.dds": "https://files.ballistica.net/cache/ba1/fe/65/a55aba9c983239516c96f28fd4b2", @@ -1694,15 +1694,15 @@ "assets/build/ba_data/textures/inventoryIcon.ktx": "https://files.ballistica.net/cache/ba1/3c/ca/1a61ddc33fbae07060b3ffe24531", "assets/build/ba_data/textures/inventoryIcon.pvr": "https://files.ballistica.net/cache/ba1/a7/e3/6fe1d29dd307067b5b42aa1e78ca", "assets/build/ba_data/textures/inventoryIcon_preview.png": "https://files.ballistica.net/cache/ba1/5d/95/fc2f9cf29120f6e5714a82b49762", - "assets/build/ba_data/textures/jackColor.dds": "https://files.ballistica.net/cache/ba1/3e/bb/562defe30cd5860a6648aa8c3127", + "assets/build/ba_data/textures/jackColor.dds": "https://files.ballistica.net/cache/ba1/9c/16/c4c568eec16b4ac15110e2213107", "assets/build/ba_data/textures/jackColor.ktx": "https://files.ballistica.net/cache/ba1/b4/92/c66d4bd99efdd17578c1ab40eb38", "assets/build/ba_data/textures/jackColor.pvr": "https://files.ballistica.net/cache/ba1/93/f0/b67389b8a52446f9d60119b4e4b0", - "assets/build/ba_data/textures/jackColorMask.dds": "https://files.ballistica.net/cache/ba1/74/c3/18ed606a334e8096ab0f9a6b6045", + "assets/build/ba_data/textures/jackColorMask.dds": "https://files.ballistica.net/cache/ba1/33/86/4e8b48b1274373302fed850899f3", "assets/build/ba_data/textures/jackColorMask.ktx": "https://files.ballistica.net/cache/ba1/c9/40/a44ca36c9fcb3ca51fb61dbaa2cf", "assets/build/ba_data/textures/jackColorMask.pvr": "https://files.ballistica.net/cache/ba1/32/89/9243f17fdd9d8c3d7c9cc8a26191", "assets/build/ba_data/textures/jackColorMask_preview.png": "https://files.ballistica.net/cache/ba1/71/92/54cc17903955e0b923f64bb746a7", "assets/build/ba_data/textures/jackColor_preview.png": "https://files.ballistica.net/cache/ba1/83/f8/daf0dc5014e0220a8e4bc8d1113a", - "assets/build/ba_data/textures/jackIcon.dds": "https://files.ballistica.net/cache/ba1/0c/1f/ec2d1e00f2b409df11b485667334", + "assets/build/ba_data/textures/jackIcon.dds": "https://files.ballistica.net/cache/ba1/42/a1/c6f5a537e23a509a22a13870470f", "assets/build/ba_data/textures/jackIcon.ktx": "https://files.ballistica.net/cache/ba1/e8/5d/e5e222130b790f5239089333fd92", "assets/build/ba_data/textures/jackIcon.pvr": "https://files.ballistica.net/cache/ba1/da/f9/29d46bb6b052d5aad5a81efa994e", "assets/build/ba_data/textures/jackIconColorMask.dds": "https://files.ballistica.net/cache/ba1/1e/8e/395cb09dbe9ca002ad0d5532f6bd", @@ -1713,7 +1713,7 @@ "assets/build/ba_data/textures/jumpsuitColor.dds": "https://files.ballistica.net/cache/ba1/5b/9c/4761afb2e6fc3e0f8ef028d317be", "assets/build/ba_data/textures/jumpsuitColor.ktx": "https://files.ballistica.net/cache/ba1/45/25/6084698fbdd038fbd750fc72dd28", "assets/build/ba_data/textures/jumpsuitColor.pvr": "https://files.ballistica.net/cache/ba1/6c/77/39fe91748b79f2aabc640f38fd2a", - "assets/build/ba_data/textures/jumpsuitColorMask.dds": "https://files.ballistica.net/cache/ba1/c3/3c/5ad8f955187c9825ea9871fa3c3c", + "assets/build/ba_data/textures/jumpsuitColorMask.dds": "https://files.ballistica.net/cache/ba1/04/00/8fbe70c2d5bc499f842e76b6a71d", "assets/build/ba_data/textures/jumpsuitColorMask.ktx": "https://files.ballistica.net/cache/ba1/50/c2/79341c7081f28d70de09cb6db116", "assets/build/ba_data/textures/jumpsuitColorMask.pvr": "https://files.ballistica.net/cache/ba1/51/1e/5f4580d17068abebb0f8d2609c3c", "assets/build/ba_data/textures/jumpsuitColorMask_preview.png": "https://files.ballistica.net/cache/ba1/6f/05/15f3184259761adc208e2dd659ca", @@ -1726,26 +1726,26 @@ "assets/build/ba_data/textures/jumpsuitIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/77/e0/1326a95629aec5d0a447f4694dc8", "assets/build/ba_data/textures/jumpsuitIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/d0/81/c975a77166d8bac47d63340960b4", "assets/build/ba_data/textures/jumpsuitIcon_preview.png": "https://files.ballistica.net/cache/ba1/06/1f/0f16b73da3b140ae91a645ad3920", - "assets/build/ba_data/textures/kronk.dds": "https://files.ballistica.net/cache/ba1/41/b3/1173def9511feb2ebc516e070ed6", + "assets/build/ba_data/textures/kronk.dds": "https://files.ballistica.net/cache/ba1/79/99/217e4d40c7107337bf4ff402e020", "assets/build/ba_data/textures/kronk.ktx": "https://files.ballistica.net/cache/ba1/80/d7/0f40cc83961456cca52f50d87657", "assets/build/ba_data/textures/kronk.pvr": "https://files.ballistica.net/cache/ba1/4d/74/fb56c0df66aa36551ae4ac73a141", - "assets/build/ba_data/textures/kronkColorMask.dds": "https://files.ballistica.net/cache/ba1/fa/9c/bba4cffffd4d7e7bdc53bd27819b", + "assets/build/ba_data/textures/kronkColorMask.dds": "https://files.ballistica.net/cache/ba1/f7/e2/92c6c2179b0ea3dcaa85f357e3d7", "assets/build/ba_data/textures/kronkColorMask.ktx": "https://files.ballistica.net/cache/ba1/de/23/7ab48fef2af0a1253b2eb6a083ab", "assets/build/ba_data/textures/kronkColorMask.pvr": "https://files.ballistica.net/cache/ba1/d4/ab/0df43e24f6aa11608a2f9b2bda6d", "assets/build/ba_data/textures/kronkColorMask_preview.png": "https://files.ballistica.net/cache/ba1/5c/14/80f2148210e89e8ca6b3b03b6e10", "assets/build/ba_data/textures/kronkIcon.dds": "https://files.ballistica.net/cache/ba1/d2/66/367fb5a09d45419be710683f0b8a", "assets/build/ba_data/textures/kronkIcon.ktx": "https://files.ballistica.net/cache/ba1/0b/23/ca03de39efd26cc2ca53a46f70b4", "assets/build/ba_data/textures/kronkIcon.pvr": "https://files.ballistica.net/cache/ba1/d7/2c/17a833f010265c66243ec90fcf09", - "assets/build/ba_data/textures/kronkIconColorMask.dds": "https://files.ballistica.net/cache/ba1/8b/b1/d2f52c09816856963fa41e1e8b83", + "assets/build/ba_data/textures/kronkIconColorMask.dds": "https://files.ballistica.net/cache/ba1/ec/4f/d9c86c700f2feaf28767f666a836", "assets/build/ba_data/textures/kronkIconColorMask.ktx": "https://files.ballistica.net/cache/ba1/41/41/5c76cd5af36248308d96cf1b4bcd", "assets/build/ba_data/textures/kronkIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/4c/0c/41d95110ecda25e0e66a3876cce4", "assets/build/ba_data/textures/kronkIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/a3/24/7b66c17a8bae4ef0f9f3ca4a95ca", "assets/build/ba_data/textures/kronkIcon_preview.png": "https://files.ballistica.net/cache/ba1/5f/28/4ca750d54dcb57ad82f3bbacd2e5", "assets/build/ba_data/textures/kronk_preview.png": "https://files.ballistica.net/cache/ba1/0b/2e/083f0a0c74bec4b4f629e2bdd2a0", - "assets/build/ba_data/textures/lakeFrigid.dds": "https://files.ballistica.net/cache/ba1/52/fb/3df33cd21b7e6cfa4e4f9b03add5", + "assets/build/ba_data/textures/lakeFrigid.dds": "https://files.ballistica.net/cache/ba1/de/16/41f8895b19d81123ab48ad72f38d", "assets/build/ba_data/textures/lakeFrigid.ktx": "https://files.ballistica.net/cache/ba1/d2/ad/c28e092d9eeea2c5643d1d89613f", "assets/build/ba_data/textures/lakeFrigid.pvr": "https://files.ballistica.net/cache/ba1/f8/c0/53f0c6ec9f5ec37514b07d0c3506", - "assets/build/ba_data/textures/lakeFrigidPreview.dds": "https://files.ballistica.net/cache/ba1/23/9b/b65965dc2da90a77737df299527f", + "assets/build/ba_data/textures/lakeFrigidPreview.dds": "https://files.ballistica.net/cache/ba1/eb/fd/9d832e847a72de6f62a02403abc5", "assets/build/ba_data/textures/lakeFrigidPreview.ktx": "https://files.ballistica.net/cache/ba1/8f/d5/185af314124e8ca312475205704e", "assets/build/ba_data/textures/lakeFrigidPreview.pvr": "https://files.ballistica.net/cache/ba1/9b/2d/8b05ecb7e85b4dd42613e3e0ff89", "assets/build/ba_data/textures/lakeFrigidPreview_preview.png": "https://files.ballistica.net/cache/ba1/80/ef/8283d6c6c7f144b1dd187262b661", @@ -1822,10 +1822,10 @@ "assets/build/ba_data/textures/medalSilver.ktx": "https://files.ballistica.net/cache/ba1/68/84/934ab97c1014e98ffd6bbb24ad89", "assets/build/ba_data/textures/medalSilver.pvr": "https://files.ballistica.net/cache/ba1/37/e8/0f2d99b80e98d8388cbb1fb81aed", "assets/build/ba_data/textures/medalSilver_preview.png": "https://files.ballistica.net/cache/ba1/1c/38/7e840a4f3b6f7c15e21b22628603", - "assets/build/ba_data/textures/melColor.dds": "https://files.ballistica.net/cache/ba1/bd/29/6743f3197828fb39a9f424788023", + "assets/build/ba_data/textures/melColor.dds": "https://files.ballistica.net/cache/ba1/c6/f1/ef8f3740635ec2b601f73afe0424", "assets/build/ba_data/textures/melColor.ktx": "https://files.ballistica.net/cache/ba1/fa/a1/645eb759ffd7b046fe91ff4f9f8b", "assets/build/ba_data/textures/melColor.pvr": "https://files.ballistica.net/cache/ba1/b1/90/45696ef2a4717ce5f3e1838e31f1", - "assets/build/ba_data/textures/melColorMask.dds": "https://files.ballistica.net/cache/ba1/0c/95/4cce7a44347eef0356dd96dbae60", + "assets/build/ba_data/textures/melColorMask.dds": "https://files.ballistica.net/cache/ba1/b7/64/9ae23dc4897fd612952d3193c023", "assets/build/ba_data/textures/melColorMask.ktx": "https://files.ballistica.net/cache/ba1/bb/ed/2e666f6e2d647b45874645084028", "assets/build/ba_data/textures/melColorMask.pvr": "https://files.ballistica.net/cache/ba1/af/a4/002bc32b803774a668ce8953014e", "assets/build/ba_data/textures/melColorMask_preview.png": "https://files.ballistica.net/cache/ba1/58/ee/347860a4fc2faf37f1fa3013ce18", @@ -1833,12 +1833,12 @@ "assets/build/ba_data/textures/melIcon.dds": "https://files.ballistica.net/cache/ba1/0e/b2/683438456569eacf65b24f18b66f", "assets/build/ba_data/textures/melIcon.ktx": "https://files.ballistica.net/cache/ba1/a6/fb/e0f4945bea0edf83729dadf52f24", "assets/build/ba_data/textures/melIcon.pvr": "https://files.ballistica.net/cache/ba1/b6/ec/ed46dda142a62f35c28720878c8f", - "assets/build/ba_data/textures/melIconColorMask.dds": "https://files.ballistica.net/cache/ba1/5a/db/4439edcfbbef9ea932fb7d56e26a", + "assets/build/ba_data/textures/melIconColorMask.dds": "https://files.ballistica.net/cache/ba1/61/b4/637cf663cd1df1d6adacfcbc148c", "assets/build/ba_data/textures/melIconColorMask.ktx": "https://files.ballistica.net/cache/ba1/64/e0/2f0de4aca98350b0cecbaea53cda", "assets/build/ba_data/textures/melIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/ba/94/c1955a495fcb9156ef4415105fa3", "assets/build/ba_data/textures/melIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/60/9b/38b259d63b5b8c17e0e8f4a09682", "assets/build/ba_data/textures/melIcon_preview.png": "https://files.ballistica.net/cache/ba1/cf/1d/5fd4405703e177ab90cc331e2809", - "assets/build/ba_data/textures/menuBG.dds": "https://files.ballistica.net/cache/ba1/7c/60/840dbf0ae2e0273c5553a81a9613", + "assets/build/ba_data/textures/menuBG.dds": "https://files.ballistica.net/cache/ba1/66/38/e19d5d26e0c3b7750ad612288f51", "assets/build/ba_data/textures/menuBG.ktx": "https://files.ballistica.net/cache/ba1/f9/f7/a09f825ab514e1a57fcf67149798", "assets/build/ba_data/textures/menuBG.pvr": "https://files.ballistica.net/cache/ba1/2e/8a/11960533b874cb081c384a521710", "assets/build/ba_data/textures/menuBG_preview.png": "https://files.ballistica.net/cache/ba1/03/1c/9a07cf577bdf39e58effdbc2e242", @@ -1854,11 +1854,11 @@ "assets/build/ba_data/textures/meter.ktx": "https://files.ballistica.net/cache/ba1/b5/e7/3ba3d4c7c7e05081eb033ae5da8f", "assets/build/ba_data/textures/meter.pvr": "https://files.ballistica.net/cache/ba1/58/de/ab83ad9e0d9b434ca42811030ef9", "assets/build/ba_data/textures/meter_preview.png": "https://files.ballistica.net/cache/ba1/09/b7/40a1a187d7b057defa6f32c6b372", - "assets/build/ba_data/textures/monkeyFaceLevelColor.dds": "https://files.ballistica.net/cache/ba1/c6/29/e07d5663f90bec057f4c0a175baa", + "assets/build/ba_data/textures/monkeyFaceLevelColor.dds": "https://files.ballistica.net/cache/ba1/e8/41/cfcdc67b1adbf50621ae9ebdafef", "assets/build/ba_data/textures/monkeyFaceLevelColor.ktx": "https://files.ballistica.net/cache/ba1/33/d0/e2600748ebab847b7a146350a3c9", "assets/build/ba_data/textures/monkeyFaceLevelColor.pvr": "https://files.ballistica.net/cache/ba1/09/98/9491294da842980b75739e8d1c59", "assets/build/ba_data/textures/monkeyFaceLevelColor_preview.png": "https://files.ballistica.net/cache/ba1/2f/84/fd142ba957ead4acb7b4081a3771", - "assets/build/ba_data/textures/monkeyFacePreview.dds": "https://files.ballistica.net/cache/ba1/3d/14/795c5ec8cf2e1b5c49e1dba05341", + "assets/build/ba_data/textures/monkeyFacePreview.dds": "https://files.ballistica.net/cache/ba1/7d/53/6c90a28662f70e03ae967a63151c", "assets/build/ba_data/textures/monkeyFacePreview.ktx": "https://files.ballistica.net/cache/ba1/ff/83/d340f1495861ebb97bd7f766ccbb", "assets/build/ba_data/textures/monkeyFacePreview.pvr": "https://files.ballistica.net/cache/ba1/85/e7/807edc04137ee1a3b7767e90d692", "assets/build/ba_data/textures/monkeyFacePreview_preview.png": "https://files.ballistica.net/cache/ba1/5c/62/929429eb7fd47b21edf6dd8d8f63", @@ -1866,19 +1866,19 @@ "assets/build/ba_data/textures/multiplayerExamples.ktx": "https://files.ballistica.net/cache/ba1/48/2c/081cf255b138824720c0b49d2e1e", "assets/build/ba_data/textures/multiplayerExamples.pvr": "https://files.ballistica.net/cache/ba1/d1/db/8902cdbf501bf919e5f9f0ada2b4", "assets/build/ba_data/textures/multiplayerExamples_preview.png": "https://files.ballistica.net/cache/ba1/ea/7c/acf4240ca1fa313126060a8258f0", - "assets/build/ba_data/textures/natureBackgroundColor.dds": "https://files.ballistica.net/cache/ba1/78/ff/45c52ff0f98ffabcd472e68e3a04", + "assets/build/ba_data/textures/natureBackgroundColor.dds": "https://files.ballistica.net/cache/ba1/41/5a/2821b371bfb514531fd617be39cd", "assets/build/ba_data/textures/natureBackgroundColor.ktx": "https://files.ballistica.net/cache/ba1/60/09/50676eca6d0599eabf895f18aa21", "assets/build/ba_data/textures/natureBackgroundColor.pvr": "https://files.ballistica.net/cache/ba1/1f/37/b4950cf37311fc39f53235adb190", "assets/build/ba_data/textures/natureBackgroundColor_preview.png": "https://files.ballistica.net/cache/ba1/61/91/2af689aba61ee35bc281a8c2fc88", - "assets/build/ba_data/textures/neoSpazColor.dds": "https://files.ballistica.net/cache/ba1/91/44/f06dba5c1cb7fda6d62e2c0c5484", + "assets/build/ba_data/textures/neoSpazColor.dds": "https://files.ballistica.net/cache/ba1/e7/77/ba83d0d9a1472d495d3ebaa182c4", "assets/build/ba_data/textures/neoSpazColor.ktx": "https://files.ballistica.net/cache/ba1/d1/d7/797152df3d1260338405ea0ea59f", "assets/build/ba_data/textures/neoSpazColor.pvr": "https://files.ballistica.net/cache/ba1/8b/68/60b1e0bc0c6295fba84e493c313d", - "assets/build/ba_data/textures/neoSpazColorMask.dds": "https://files.ballistica.net/cache/ba1/72/05/774cf76faed583a54d1658e17402", + "assets/build/ba_data/textures/neoSpazColorMask.dds": "https://files.ballistica.net/cache/ba1/05/ff/08bba0e201d0eea3ead5746ca96f", "assets/build/ba_data/textures/neoSpazColorMask.ktx": "https://files.ballistica.net/cache/ba1/ef/f6/84779b7eb27ccbbcdb77f3b6f2fb", "assets/build/ba_data/textures/neoSpazColorMask.pvr": "https://files.ballistica.net/cache/ba1/a2/a8/4aa145599bd4b8c53d87624553e2", "assets/build/ba_data/textures/neoSpazColorMask_preview.png": "https://files.ballistica.net/cache/ba1/62/88/1239b81fe081de88c08ac7434bc3", "assets/build/ba_data/textures/neoSpazColor_preview.png": "https://files.ballistica.net/cache/ba1/23/2c/b541bf04f85d1aa5de3b475b82d2", - "assets/build/ba_data/textures/neoSpazIcon.dds": "https://files.ballistica.net/cache/ba1/d9/ef/2e3e5cb4151c3ac209c0774dea79", + "assets/build/ba_data/textures/neoSpazIcon.dds": "https://files.ballistica.net/cache/ba1/e0/6e/59525196623212ac76d96d9cd3bb", "assets/build/ba_data/textures/neoSpazIcon.ktx": "https://files.ballistica.net/cache/ba1/d2/b5/f7c3badf697bc9dd82cffd17352c", "assets/build/ba_data/textures/neoSpazIcon.pvr": "https://files.ballistica.net/cache/ba1/47/c1/5ee2e1475e142aa8468b2d50c752", "assets/build/ba_data/textures/neoSpazIconColorMask.dds": "https://files.ballistica.net/cache/ba1/60/46/4e61726cb5e2c81b0e0af5a7cd5e", @@ -1890,15 +1890,15 @@ "assets/build/ba_data/textures/nextLevelIcon.ktx": "https://files.ballistica.net/cache/ba1/b2/84/0bb105ab76cc15c66f52ecbefcf7", "assets/build/ba_data/textures/nextLevelIcon.pvr": "https://files.ballistica.net/cache/ba1/0b/8d/087ad0de136250c54e42f4dca92f", "assets/build/ba_data/textures/nextLevelIcon_preview.png": "https://files.ballistica.net/cache/ba1/76/5f/ffae5ff97775780301b96a1a3f52", - "assets/build/ba_data/textures/ninjaColor.dds": "https://files.ballistica.net/cache/ba1/d3/5c/67af280eab6793195bb039488ce1", + "assets/build/ba_data/textures/ninjaColor.dds": "https://files.ballistica.net/cache/ba1/e7/25/60195fddd30365324328f09e1230", "assets/build/ba_data/textures/ninjaColor.ktx": "https://files.ballistica.net/cache/ba1/2a/a1/22d137826995da608c2e3898083e", "assets/build/ba_data/textures/ninjaColor.pvr": "https://files.ballistica.net/cache/ba1/2d/0c/6a9364e38112591a5f77de741ca2", - "assets/build/ba_data/textures/ninjaColorMask.dds": "https://files.ballistica.net/cache/ba1/02/06/3c07252b18ba88964bba62b8a656", + "assets/build/ba_data/textures/ninjaColorMask.dds": "https://files.ballistica.net/cache/ba1/db/da/51021e6f1482e5664af808b29b00", "assets/build/ba_data/textures/ninjaColorMask.ktx": "https://files.ballistica.net/cache/ba1/1d/68/ee8c4f656d583b49638f3cb40b4e", "assets/build/ba_data/textures/ninjaColorMask.pvr": "https://files.ballistica.net/cache/ba1/06/0a/58e0e29f5b9f503afcfc1a93f052", "assets/build/ba_data/textures/ninjaColorMask_preview.png": "https://files.ballistica.net/cache/ba1/8c/22/0103111a22390dd49615eaf2a4c3", "assets/build/ba_data/textures/ninjaColor_preview.png": "https://files.ballistica.net/cache/ba1/d9/d9/52cf79858329ee664417fa86325a", - "assets/build/ba_data/textures/ninjaIcon.dds": "https://files.ballistica.net/cache/ba1/38/30/a7b91f95d0d38b8d31558ca83680", + "assets/build/ba_data/textures/ninjaIcon.dds": "https://files.ballistica.net/cache/ba1/a4/34/ac0523aa0d224b5668966a1ce6cd", "assets/build/ba_data/textures/ninjaIcon.ktx": "https://files.ballistica.net/cache/ba1/fb/be/7acdbf4b9e212c3a20bf7b7ffe1a", "assets/build/ba_data/textures/ninjaIcon.pvr": "https://files.ballistica.net/cache/ba1/1a/c3/a5843f74115717fcbeb44cb792df", "assets/build/ba_data/textures/ninjaIconColorMask.dds": "https://files.ballistica.net/cache/ba1/b8/eb/6b4811f664e79059a8604db820d6", @@ -1917,7 +1917,7 @@ "assets/build/ba_data/textures/oldLadyColor.dds": "https://files.ballistica.net/cache/ba1/9c/9a/7b82b343061f5b2f8f2b281abf07", "assets/build/ba_data/textures/oldLadyColor.ktx": "https://files.ballistica.net/cache/ba1/e9/a6/b2c434cba993f176a1fbce5e017c", "assets/build/ba_data/textures/oldLadyColor.pvr": "https://files.ballistica.net/cache/ba1/49/6e/5d95e58db32fafff298781d3c379", - "assets/build/ba_data/textures/oldLadyColorMask.dds": "https://files.ballistica.net/cache/ba1/e3/9e/dc76d3799d4e1900d605745f71e6", + "assets/build/ba_data/textures/oldLadyColorMask.dds": "https://files.ballistica.net/cache/ba1/e5/91/354e94e932df33f458ee0bf6e1a0", "assets/build/ba_data/textures/oldLadyColorMask.ktx": "https://files.ballistica.net/cache/ba1/81/da/80cd97c5f4c228ea585d4c6b1906", "assets/build/ba_data/textures/oldLadyColorMask.pvr": "https://files.ballistica.net/cache/ba1/b7/fc/328a89dfc0578184d0cd9be05e5f", "assets/build/ba_data/textures/oldLadyColorMask_preview.png": "https://files.ballistica.net/cache/ba1/f7/23/f290703d2c69f7f115151907afdd", @@ -1933,7 +1933,7 @@ "assets/build/ba_data/textures/operaSingerColor.dds": "https://files.ballistica.net/cache/ba1/06/40/1d46db18bbf308f1e8e88ed25c7d", "assets/build/ba_data/textures/operaSingerColor.ktx": "https://files.ballistica.net/cache/ba1/a9/34/bac2cb5bfa5cfac1b5a209e77a36", "assets/build/ba_data/textures/operaSingerColor.pvr": "https://files.ballistica.net/cache/ba1/1b/e3/4a871e36791bf302c0ecb68426a7", - "assets/build/ba_data/textures/operaSingerColorMask.dds": "https://files.ballistica.net/cache/ba1/e4/57/7f6534987c17b43ac14da7aa15cc", + "assets/build/ba_data/textures/operaSingerColorMask.dds": "https://files.ballistica.net/cache/ba1/a6/c8/eb903a977a1c83792b5a9485357a", "assets/build/ba_data/textures/operaSingerColorMask.ktx": "https://files.ballistica.net/cache/ba1/ad/76/24839951a638bcdbd2f399e26b96", "assets/build/ba_data/textures/operaSingerColorMask.pvr": "https://files.ballistica.net/cache/ba1/1e/56/ce51acda0e9f77cf8450c4871503", "assets/build/ba_data/textures/operaSingerColorMask_preview.png": "https://files.ballistica.net/cache/ba1/99/5e/a20ff9e112ae711dff9d9b0602c0", @@ -1966,34 +1966,34 @@ "assets/build/ba_data/textures/ouyaYButton.ktx": "https://files.ballistica.net/cache/ba1/dd/99/0a8364d55243d59174e449445c40", "assets/build/ba_data/textures/ouyaYButton.pvr": "https://files.ballistica.net/cache/ba1/2d/f8/ebd32f8ca2f65f450641eda0e4b3", "assets/build/ba_data/textures/ouyaYButton_preview.png": "https://files.ballistica.net/cache/ba1/a0/39/27eb09f33ca04d133a2c86d30f87", - "assets/build/ba_data/textures/penguinColor.dds": "https://files.ballistica.net/cache/ba1/b0/90/b5e0f65db8428e7f58a677fc8712", + "assets/build/ba_data/textures/penguinColor.dds": "https://files.ballistica.net/cache/ba1/46/06/98a0d4e3a61c17eabca8a5addac9", "assets/build/ba_data/textures/penguinColor.ktx": "https://files.ballistica.net/cache/ba1/e8/a4/4bebf5671504129dd5daa25a8eaf", "assets/build/ba_data/textures/penguinColor.pvr": "https://files.ballistica.net/cache/ba1/5c/7b/af36d581b9c5e920609861c4fab0", - "assets/build/ba_data/textures/penguinColorMask.dds": "https://files.ballistica.net/cache/ba1/70/9c/9b96ade9b7231f07ae0580e4f60f", + "assets/build/ba_data/textures/penguinColorMask.dds": "https://files.ballistica.net/cache/ba1/ea/71/c0d2e8b03f5e02a17e884c332691", "assets/build/ba_data/textures/penguinColorMask.ktx": "https://files.ballistica.net/cache/ba1/8a/10/60999fce550b8de1444f1d05f263", "assets/build/ba_data/textures/penguinColorMask.pvr": "https://files.ballistica.net/cache/ba1/46/27/d3978fdfac00e02373d9298e755f", "assets/build/ba_data/textures/penguinColorMask_preview.png": "https://files.ballistica.net/cache/ba1/a9/f6/99954cafdabea10227ac0943a206", "assets/build/ba_data/textures/penguinColor_preview.png": "https://files.ballistica.net/cache/ba1/d5/4d/bb509ed353b4dd0e1e5231ddb59d", - "assets/build/ba_data/textures/penguinIcon.dds": "https://files.ballistica.net/cache/ba1/2c/07/d519ac490eec7432713ce7b85473", + "assets/build/ba_data/textures/penguinIcon.dds": "https://files.ballistica.net/cache/ba1/8b/01/d805bef78053a8bc2980fa9e987d", "assets/build/ba_data/textures/penguinIcon.ktx": "https://files.ballistica.net/cache/ba1/5a/d8/daadfc2654dd77d31caf4e0796d0", "assets/build/ba_data/textures/penguinIcon.pvr": "https://files.ballistica.net/cache/ba1/87/1c/dcbc92cc2fe862c43e81d587b1fe", - "assets/build/ba_data/textures/penguinIconColorMask.dds": "https://files.ballistica.net/cache/ba1/b7/be/a11bb4ae3d7535c43ca02afd0ee3", + "assets/build/ba_data/textures/penguinIconColorMask.dds": "https://files.ballistica.net/cache/ba1/f0/0d/71a45142684d98ec7004eab7cfcd", "assets/build/ba_data/textures/penguinIconColorMask.ktx": "https://files.ballistica.net/cache/ba1/b2/10/73b6efac0d2df908570c53ded344", "assets/build/ba_data/textures/penguinIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/25/26/0551afc2a52c6a6426ff3c21e4f4", "assets/build/ba_data/textures/penguinIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/7c/0e/7df9e0157fd40450e0b5935cdc41", "assets/build/ba_data/textures/penguinIcon_preview.png": "https://files.ballistica.net/cache/ba1/db/bf/98796d0f0d33bc200c896ba82109", - "assets/build/ba_data/textures/pixieColor.dds": "https://files.ballistica.net/cache/ba1/f0/f6/90a78ac8b17c8b3b6cb258f078ed", + "assets/build/ba_data/textures/pixieColor.dds": "https://files.ballistica.net/cache/ba1/75/cc/389a63b73cfcbae4aed11b8b710a", "assets/build/ba_data/textures/pixieColor.ktx": "https://files.ballistica.net/cache/ba1/23/90/c836828f9342e6bd21612ff78938", "assets/build/ba_data/textures/pixieColor.pvr": "https://files.ballistica.net/cache/ba1/3d/ce/acca60b5cde2111bd62d90adc41e", - "assets/build/ba_data/textures/pixieColorMask.dds": "https://files.ballistica.net/cache/ba1/7f/8f/4eaddebfa9dfb7909c7cdad4b576", + "assets/build/ba_data/textures/pixieColorMask.dds": "https://files.ballistica.net/cache/ba1/82/27/8c1fe9eec5b984f42fca3d3e9381", "assets/build/ba_data/textures/pixieColorMask.ktx": "https://files.ballistica.net/cache/ba1/59/fe/138ccc612be62ef4a30b9adfbcf9", "assets/build/ba_data/textures/pixieColorMask.pvr": "https://files.ballistica.net/cache/ba1/57/84/72b8fc64aad487d406fc876b1b42", "assets/build/ba_data/textures/pixieColorMask_preview.png": "https://files.ballistica.net/cache/ba1/8a/7e/51ba798eac9278727df8a804ba35", "assets/build/ba_data/textures/pixieColor_preview.png": "https://files.ballistica.net/cache/ba1/07/86/d9bab7a777b2e38107403edfcd50", - "assets/build/ba_data/textures/pixieIcon.dds": "https://files.ballistica.net/cache/ba1/b7/f4/fd43b64dacef89608c5ab6db0377", + "assets/build/ba_data/textures/pixieIcon.dds": "https://files.ballistica.net/cache/ba1/68/32/7d731f50bf51e633df18254034a3", "assets/build/ba_data/textures/pixieIcon.ktx": "https://files.ballistica.net/cache/ba1/e8/25/576bf3a4e9e2dba964c5f18b6622", "assets/build/ba_data/textures/pixieIcon.pvr": "https://files.ballistica.net/cache/ba1/21/72/ba1ca96c4f017c11cffaec11d788", - "assets/build/ba_data/textures/pixieIconColorMask.dds": "https://files.ballistica.net/cache/ba1/1d/8c/bcfcc534447ae4a5eb33effa157c", + "assets/build/ba_data/textures/pixieIconColorMask.dds": "https://files.ballistica.net/cache/ba1/3c/25/1f57bdf36447463ad1065a614c7f", "assets/build/ba_data/textures/pixieIconColorMask.ktx": "https://files.ballistica.net/cache/ba1/76/3f/caf7f06633052fa327db6eaa39d6", "assets/build/ba_data/textures/pixieIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/1f/1e/da8a3c0f1a42acbe09140e29609d", "assets/build/ba_data/textures/pixieIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/18/f4/e96160f142153a37f9e0919c883e", @@ -2006,7 +2006,7 @@ "assets/build/ba_data/textures/powerupBomb.ktx": "https://files.ballistica.net/cache/ba1/1b/bc/5bf3f52c9f880476221d63a41ee1", "assets/build/ba_data/textures/powerupBomb.pvr": "https://files.ballistica.net/cache/ba1/99/05/7144537430a306d45efbd75f733f", "assets/build/ba_data/textures/powerupBomb_preview.png": "https://files.ballistica.net/cache/ba1/75/17/31e7f1997e0f3304b597a062efa7", - "assets/build/ba_data/textures/powerupCurse.dds": "https://files.ballistica.net/cache/ba1/2e/ff/9c66e6f7c1a973155e68ab5560a8", + "assets/build/ba_data/textures/powerupCurse.dds": "https://files.ballistica.net/cache/ba1/6f/cd/50c78074de3f655afe1d029ffce8", "assets/build/ba_data/textures/powerupCurse.ktx": "https://files.ballistica.net/cache/ba1/40/4f/0648e5b36ad56442fdba6e07ce6c", "assets/build/ba_data/textures/powerupCurse.pvr": "https://files.ballistica.net/cache/ba1/31/2b/01f49d263a0915691651ae6b8196", "assets/build/ba_data/textures/powerupCurse_preview.png": "https://files.ballistica.net/cache/ba1/07/21/962169962af41bec8c43cf3d01a1", @@ -2014,7 +2014,7 @@ "assets/build/ba_data/textures/powerupHealth.ktx": "https://files.ballistica.net/cache/ba1/be/3e/5bd4f2ac8d7bf972571f89992264", "assets/build/ba_data/textures/powerupHealth.pvr": "https://files.ballistica.net/cache/ba1/64/ec/f1507c9ed94d0bd4b0c9ab8569da", "assets/build/ba_data/textures/powerupHealth_preview.png": "https://files.ballistica.net/cache/ba1/42/11/e09c9daf2dadf44be3b9249e3fa4", - "assets/build/ba_data/textures/powerupIceBombs.dds": "https://files.ballistica.net/cache/ba1/03/8e/96c1d4ef593ea45528f2dda9853c", + "assets/build/ba_data/textures/powerupIceBombs.dds": "https://files.ballistica.net/cache/ba1/9f/4d/af9b3707142271e4b6090c19f330", "assets/build/ba_data/textures/powerupIceBombs.ktx": "https://files.ballistica.net/cache/ba1/27/6e/3b2b5fa2e68a073db9ed5c67da39", "assets/build/ba_data/textures/powerupIceBombs.pvr": "https://files.ballistica.net/cache/ba1/b3/32/b9c0df53502d4402b36b8bdba951", "assets/build/ba_data/textures/powerupIceBombs_preview.png": "https://files.ballistica.net/cache/ba1/61/8b/7f43a09b4ca30edef5099cecbbb1", @@ -2022,7 +2022,7 @@ "assets/build/ba_data/textures/powerupImpactBombs.ktx": "https://files.ballistica.net/cache/ba1/49/0c/df4b313585f897592ccee9d5c542", "assets/build/ba_data/textures/powerupImpactBombs.pvr": "https://files.ballistica.net/cache/ba1/f2/1b/8b6c447613d2bbec20cff630b1f1", "assets/build/ba_data/textures/powerupImpactBombs_preview.png": "https://files.ballistica.net/cache/ba1/0c/33/5d041471446792bb5da31291b869", - "assets/build/ba_data/textures/powerupLandMines.dds": "https://files.ballistica.net/cache/ba1/8b/96/2731079019cf1688415831619c76", + "assets/build/ba_data/textures/powerupLandMines.dds": "https://files.ballistica.net/cache/ba1/99/f8/ea06e3d99018797fe82841988cce", "assets/build/ba_data/textures/powerupLandMines.ktx": "https://files.ballistica.net/cache/ba1/79/ac/333130d040444c03fbcf7302e35b", "assets/build/ba_data/textures/powerupLandMines.pvr": "https://files.ballistica.net/cache/ba1/2b/7a/4ac9f04cfa3a59e19fd3ddd72b2e", "assets/build/ba_data/textures/powerupLandMines_preview.png": "https://files.ballistica.net/cache/ba1/21/bc/b619e59db015ed4cc8020972a336", @@ -2038,31 +2038,31 @@ "assets/build/ba_data/textures/powerupSpeed.ktx": "https://files.ballistica.net/cache/ba1/2e/fc/63e2a260e55d0d33ed0dc4400cb0", "assets/build/ba_data/textures/powerupSpeed.pvr": "https://files.ballistica.net/cache/ba1/35/c1/657cc9772d575786c21d2575034d", "assets/build/ba_data/textures/powerupSpeed_preview.png": "https://files.ballistica.net/cache/ba1/f1/2a/278da1921f939809afad254fbb03", - "assets/build/ba_data/textures/powerupStickyBombs.dds": "https://files.ballistica.net/cache/ba1/eb/e0/0191d68d9daf896e9d2298c57941", + "assets/build/ba_data/textures/powerupStickyBombs.dds": "https://files.ballistica.net/cache/ba1/02/93/92f9be86367f44404b8257bdbf6c", "assets/build/ba_data/textures/powerupStickyBombs.ktx": "https://files.ballistica.net/cache/ba1/fd/1b/0a64a4e0149e6c9acc3bd5710283", "assets/build/ba_data/textures/powerupStickyBombs.pvr": "https://files.ballistica.net/cache/ba1/f5/44/ea00c858e1fdd2c73ae953b6fbe5", "assets/build/ba_data/textures/powerupStickyBombs_preview.png": "https://files.ballistica.net/cache/ba1/76/67/7e11feb9a7f94a68be36128e9afd", - "assets/build/ba_data/textures/puckColor.dds": "https://files.ballistica.net/cache/ba1/55/0f/0ad93b23a0a4d86ce4799135b26d", + "assets/build/ba_data/textures/puckColor.dds": "https://files.ballistica.net/cache/ba1/14/5f/893c54c1ccb320272450c24d232b", "assets/build/ba_data/textures/puckColor.ktx": "https://files.ballistica.net/cache/ba1/91/a8/49adfe0386637b17fd0d5df798d5", "assets/build/ba_data/textures/puckColor.pvr": "https://files.ballistica.net/cache/ba1/00/54/b9d50d210bfba69387909e6e91de", "assets/build/ba_data/textures/puckColor_preview.png": "https://files.ballistica.net/cache/ba1/bd/c4/4a3a3dcb8c1084a34479d43dcaed", - "assets/build/ba_data/textures/rampageBGColor.dds": "https://files.ballistica.net/cache/ba1/34/2b/e98df914e71d6789e771ea70a264", + "assets/build/ba_data/textures/rampageBGColor.dds": "https://files.ballistica.net/cache/ba1/37/a1/a11281d3002afc84c3d28db58395", "assets/build/ba_data/textures/rampageBGColor.ktx": "https://files.ballistica.net/cache/ba1/b0/39/acaf74037621c74a29a72576ee20", "assets/build/ba_data/textures/rampageBGColor.pvr": "https://files.ballistica.net/cache/ba1/6b/9d/54521c22a5e2de98eabfb985fa85", - "assets/build/ba_data/textures/rampageBGColor2.dds": "https://files.ballistica.net/cache/ba1/22/94/8c49d6e549a2f08076d48417fb40", + "assets/build/ba_data/textures/rampageBGColor2.dds": "https://files.ballistica.net/cache/ba1/08/35/b2aca6e05626aaf870cceb35ba8e", "assets/build/ba_data/textures/rampageBGColor2.ktx": "https://files.ballistica.net/cache/ba1/60/23/d866c382fc22fdea03bf2527d147", "assets/build/ba_data/textures/rampageBGColor2.pvr": "https://files.ballistica.net/cache/ba1/3e/69/d3c1a9d7f8910199598f010efd8a", "assets/build/ba_data/textures/rampageBGColor2_preview.png": "https://files.ballistica.net/cache/ba1/79/f6/068a9185d32b580a4e73806d8d12", "assets/build/ba_data/textures/rampageBGColor_preview.png": "https://files.ballistica.net/cache/ba1/38/39/0a2366c421eacc7c5a051c430e15", - "assets/build/ba_data/textures/rampageLevelColor.dds": "https://files.ballistica.net/cache/ba1/81/69/f4b28c3c4713d96e3cb208bcfbce", + "assets/build/ba_data/textures/rampageLevelColor.dds": "https://files.ballistica.net/cache/ba1/fe/40/41c878b5db3ebe47686d8a605cf6", "assets/build/ba_data/textures/rampageLevelColor.ktx": "https://files.ballistica.net/cache/ba1/ef/06/d2ac2ec0f775180b62e341a5890f", "assets/build/ba_data/textures/rampageLevelColor.pvr": "https://files.ballistica.net/cache/ba1/8a/74/ff813c81875c81cd8ccd345c5a27", "assets/build/ba_data/textures/rampageLevelColor_preview.png": "https://files.ballistica.net/cache/ba1/b9/db/0920892160b677dac33844acb9e3", - "assets/build/ba_data/textures/rampagePreview.dds": "https://files.ballistica.net/cache/ba1/09/56/67a073d1abfec5e861e3412bca94", + "assets/build/ba_data/textures/rampagePreview.dds": "https://files.ballistica.net/cache/ba1/15/af/3089f17f4e969b3780c92ef1ba58", "assets/build/ba_data/textures/rampagePreview.ktx": "https://files.ballistica.net/cache/ba1/b3/80/783d2507b45af55ebe7d9e4aa7b1", "assets/build/ba_data/textures/rampagePreview.pvr": "https://files.ballistica.net/cache/ba1/97/d2/99028f0da86ef4d61a70da709c29", "assets/build/ba_data/textures/rampagePreview_preview.png": "https://files.ballistica.net/cache/ba1/4f/64/6469bc8cfe52cdd9590c1edbc89c", - "assets/build/ba_data/textures/reflectionChar_+x.dds": "https://files.ballistica.net/cache/ba1/2c/ec/82270cbcd6f3fc72aa1c69036163", + "assets/build/ba_data/textures/reflectionChar_+x.dds": "https://files.ballistica.net/cache/ba1/5b/6d/76948a60ad687d91d4db8696ff35", "assets/build/ba_data/textures/reflectionChar_+x.ktx": "https://files.ballistica.net/cache/ba1/d2/31/6eb2af3d54a5a9b194f5fd5a0cd7", "assets/build/ba_data/textures/reflectionChar_+x.pvr": "https://files.ballistica.net/cache/ba1/45/72/1bf60fc63ee6024e2c62026e1d13", "assets/build/ba_data/textures/reflectionChar_+x_preview.png": "https://files.ballistica.net/cache/ba1/3e/19/1545732b54357b959468baeadb05", @@ -2078,7 +2078,7 @@ "assets/build/ba_data/textures/reflectionChar_-x.ktx": "https://files.ballistica.net/cache/ba1/7b/a7/6592e876e7c31687e11e019a305d", "assets/build/ba_data/textures/reflectionChar_-x.pvr": "https://files.ballistica.net/cache/ba1/88/fb/372bde1b68e238da396a7576088f", "assets/build/ba_data/textures/reflectionChar_-x_preview.png": "https://files.ballistica.net/cache/ba1/81/8f/422c1c54b3021abc70a4aa64b3fd", - "assets/build/ba_data/textures/reflectionChar_-y.dds": "https://files.ballistica.net/cache/ba1/45/c3/d1f2ffdb624d2236eb41e93b79cc", + "assets/build/ba_data/textures/reflectionChar_-y.dds": "https://files.ballistica.net/cache/ba1/25/03/628a5da0305261041300f75ef756", "assets/build/ba_data/textures/reflectionChar_-y.ktx": "https://files.ballistica.net/cache/ba1/25/1f/4e5b9240dcf6ea6639fb81f3579a", "assets/build/ba_data/textures/reflectionChar_-y.pvr": "https://files.ballistica.net/cache/ba1/4e/ee/7cdca1ae6b1458a443262c5a4e9c", "assets/build/ba_data/textures/reflectionChar_-y_preview.png": "https://files.ballistica.net/cache/ba1/ba/70/f2f188b95e2735467e823c94504a", @@ -2086,7 +2086,7 @@ "assets/build/ba_data/textures/reflectionChar_-z.ktx": "https://files.ballistica.net/cache/ba1/96/56/0f9aef42c876c3d2832ba570de79", "assets/build/ba_data/textures/reflectionChar_-z.pvr": "https://files.ballistica.net/cache/ba1/60/68/cb7fefc89119f14265c58200afde", "assets/build/ba_data/textures/reflectionChar_-z_preview.png": "https://files.ballistica.net/cache/ba1/b5/10/70b59c9cd551b44f8422867a38c2", - "assets/build/ba_data/textures/reflectionPowerup_+x.dds": "https://files.ballistica.net/cache/ba1/aa/16/e46748f64851d1f0fd6c3b0bab9a", + "assets/build/ba_data/textures/reflectionPowerup_+x.dds": "https://files.ballistica.net/cache/ba1/4b/3d/76538e3f18edb2a373bb3b591314", "assets/build/ba_data/textures/reflectionPowerup_+x.ktx": "https://files.ballistica.net/cache/ba1/a6/9b/682e676c993ae660475b4467fa6a", "assets/build/ba_data/textures/reflectionPowerup_+x.pvr": "https://files.ballistica.net/cache/ba1/f9/45/2b58be3bf14314607a25143fb477", "assets/build/ba_data/textures/reflectionPowerup_+x_preview.png": "https://files.ballistica.net/cache/ba1/66/cc/5021c0239527286f8c8f63aad21a", @@ -2118,11 +2118,11 @@ "assets/build/ba_data/textures/reflectionSharp_+y.ktx": "https://files.ballistica.net/cache/ba1/2c/a5/141e266b590226ee4a3474ac874e", "assets/build/ba_data/textures/reflectionSharp_+y.pvr": "https://files.ballistica.net/cache/ba1/a5/10/cdd96a99404584f090032ca60e62", "assets/build/ba_data/textures/reflectionSharp_+y_preview.png": "https://files.ballistica.net/cache/ba1/0f/58/f04fac2b705b92c8b0e11036a8ff", - "assets/build/ba_data/textures/reflectionSharp_+z.dds": "https://files.ballistica.net/cache/ba1/ac/4b/db6e2bf52594a0cb882d17579bec", + "assets/build/ba_data/textures/reflectionSharp_+z.dds": "https://files.ballistica.net/cache/ba1/2a/be/a4ec2fb348452797276aa8a7ea52", "assets/build/ba_data/textures/reflectionSharp_+z.ktx": "https://files.ballistica.net/cache/ba1/21/2c/51df5254932dac26b7068bc1e044", "assets/build/ba_data/textures/reflectionSharp_+z.pvr": "https://files.ballistica.net/cache/ba1/e4/87/2eaf17f6a15512b4326c7a2ae395", "assets/build/ba_data/textures/reflectionSharp_+z_preview.png": "https://files.ballistica.net/cache/ba1/1f/14/cd9fa509c22fea0f73a5eb76ac54", - "assets/build/ba_data/textures/reflectionSharp_-x.dds": "https://files.ballistica.net/cache/ba1/d7/b4/19de232b288604ffd66e48b182cf", + "assets/build/ba_data/textures/reflectionSharp_-x.dds": "https://files.ballistica.net/cache/ba1/8f/2f/def7cd6049055701946f6ba7efcb", "assets/build/ba_data/textures/reflectionSharp_-x.ktx": "https://files.ballistica.net/cache/ba1/04/cf/03b8b252c6d0a14b4a74df1697b2", "assets/build/ba_data/textures/reflectionSharp_-x.pvr": "https://files.ballistica.net/cache/ba1/f3/5b/36f37a9ca99d555c8950524ca118", "assets/build/ba_data/textures/reflectionSharp_-x_preview.png": "https://files.ballistica.net/cache/ba1/80/18/f2f8c9ce1f0dc8f297e0b29def1b", @@ -2134,7 +2134,7 @@ "assets/build/ba_data/textures/reflectionSharp_-z.ktx": "https://files.ballistica.net/cache/ba1/09/79/7c34e93c1453fa653098644dc902", "assets/build/ba_data/textures/reflectionSharp_-z.pvr": "https://files.ballistica.net/cache/ba1/08/d2/fa84664b3558ce68269581d52ab3", "assets/build/ba_data/textures/reflectionSharp_-z_preview.png": "https://files.ballistica.net/cache/ba1/e0/6e/de9a4cfdcb483bf92a63ac64e435", - "assets/build/ba_data/textures/reflectionSharper_+x.dds": "https://files.ballistica.net/cache/ba1/86/21/0ed2cff91343e7d697e3fdbc9d15", + "assets/build/ba_data/textures/reflectionSharper_+x.dds": "https://files.ballistica.net/cache/ba1/ed/05/68ad6e013833ba230bee61037591", "assets/build/ba_data/textures/reflectionSharper_+x.ktx": "https://files.ballistica.net/cache/ba1/ab/9b/243e80e52d6f837f206472054489", "assets/build/ba_data/textures/reflectionSharper_+x.pvr": "https://files.ballistica.net/cache/ba1/70/29/f1847b9d9c4892e3d383c8136b28", "assets/build/ba_data/textures/reflectionSharper_+x_preview.png": "https://files.ballistica.net/cache/ba1/22/db/1afb62440951a98fcf57663d5884", @@ -2202,7 +2202,7 @@ "assets/build/ba_data/textures/reflectionSoft_-y.ktx": "https://files.ballistica.net/cache/ba1/c7/af/7e09853ae6f0487e3a4122ac31d5", "assets/build/ba_data/textures/reflectionSoft_-y.pvr": "https://files.ballistica.net/cache/ba1/80/81/e5428d62dd5a31f708a68b258366", "assets/build/ba_data/textures/reflectionSoft_-y_preview.png": "https://files.ballistica.net/cache/ba1/2f/e1/b0cee0f161188752abcba04c9291", - "assets/build/ba_data/textures/reflectionSoft_-z.dds": "https://files.ballistica.net/cache/ba1/35/65/f84fc0c302b96ffde8d816c118c4", + "assets/build/ba_data/textures/reflectionSoft_-z.dds": "https://files.ballistica.net/cache/ba1/14/be/6bab80deb23a5105dd1ddd57740b", "assets/build/ba_data/textures/reflectionSoft_-z.ktx": "https://files.ballistica.net/cache/ba1/55/b2/45ec181ec07cd28be1a089b6bb79", "assets/build/ba_data/textures/reflectionSoft_-z.pvr": "https://files.ballistica.net/cache/ba1/67/6e/271b323497b797718b7d9bd3f939", "assets/build/ba_data/textures/reflectionSoft_-z_preview.png": "https://files.ballistica.net/cache/ba1/6f/38/dce6d5c26bc45005b9355b030c94", @@ -2221,7 +2221,7 @@ "assets/build/ba_data/textures/robotColor.dds": "https://files.ballistica.net/cache/ba1/a3/c0/2f7089d363c3e22b4ab10cd1c589", "assets/build/ba_data/textures/robotColor.ktx": "https://files.ballistica.net/cache/ba1/9a/9d/dbdec15776fd014e03eb1808ad28", "assets/build/ba_data/textures/robotColor.pvr": "https://files.ballistica.net/cache/ba1/9d/24/cc381a8ff6e80947618a97d36107", - "assets/build/ba_data/textures/robotColorMask.dds": "https://files.ballistica.net/cache/ba1/9f/89/248c558b1f019a7e37c24c6f2c74", + "assets/build/ba_data/textures/robotColorMask.dds": "https://files.ballistica.net/cache/ba1/ec/0e/d1b4b152415679464cd0bf773b94", "assets/build/ba_data/textures/robotColorMask.ktx": "https://files.ballistica.net/cache/ba1/19/4e/6bf15a0ac4ba4ad3bedd5eb3a3f3", "assets/build/ba_data/textures/robotColorMask.pvr": "https://files.ballistica.net/cache/ba1/ee/88/47d89b21335c4ba8916ff4eb11fd", "assets/build/ba_data/textures/robotColorMask_preview.png": "https://files.ballistica.net/cache/ba1/03/fd/c13045e5beed778e19f9a70f81ea", @@ -2234,18 +2234,18 @@ "assets/build/ba_data/textures/robotIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/b8/65/40642024959c225ce4704b954f8f", "assets/build/ba_data/textures/robotIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/3a/c2/771b5f4aa159f61383b8bbefa291", "assets/build/ba_data/textures/robotIcon_preview.png": "https://files.ballistica.net/cache/ba1/7a/b8/1dad64c97fa4655f70490004cedc", - "assets/build/ba_data/textures/roundaboutLevelColor.dds": "https://files.ballistica.net/cache/ba1/b6/df/cc3d90cdccfc1e07c99a4a5a5851", + "assets/build/ba_data/textures/roundaboutLevelColor.dds": "https://files.ballistica.net/cache/ba1/69/bd/5a0e33f022abb454eebf4b9668ab", "assets/build/ba_data/textures/roundaboutLevelColor.ktx": "https://files.ballistica.net/cache/ba1/19/f8/d8ea41097c6dfe7bec255d85ea0a", "assets/build/ba_data/textures/roundaboutLevelColor.pvr": "https://files.ballistica.net/cache/ba1/0a/5a/19e1f33492b7ae2a9f100cf26fff", "assets/build/ba_data/textures/roundaboutLevelColor_preview.png": "https://files.ballistica.net/cache/ba1/18/c7/7dbe95a06d9e877fbe848f415141", - "assets/build/ba_data/textures/roundaboutPreview.dds": "https://files.ballistica.net/cache/ba1/c5/62/00e8ad165d2350b7136784bc0dc7", + "assets/build/ba_data/textures/roundaboutPreview.dds": "https://files.ballistica.net/cache/ba1/a8/c2/d800722b8b7e172fcf19227abf05", "assets/build/ba_data/textures/roundaboutPreview.ktx": "https://files.ballistica.net/cache/ba1/1f/63/e4776ec44e00a0d736aec31f1dfb", "assets/build/ba_data/textures/roundaboutPreview.pvr": "https://files.ballistica.net/cache/ba1/65/1a/019c03931b513047b9a5fcb7e8af", "assets/build/ba_data/textures/roundaboutPreview_preview.png": "https://files.ballistica.net/cache/ba1/d4/df/d26e050aac7285a6f453185f0046", - "assets/build/ba_data/textures/santaColor.dds": "https://files.ballistica.net/cache/ba1/26/e6/febe3c69537cb30d8f1988cd405d", + "assets/build/ba_data/textures/santaColor.dds": "https://files.ballistica.net/cache/ba1/5f/a1/91e228dda47c28f430ec2ff226b8", "assets/build/ba_data/textures/santaColor.ktx": "https://files.ballistica.net/cache/ba1/cc/f4/de2aaaf8cc855afaaceb1e618409", "assets/build/ba_data/textures/santaColor.pvr": "https://files.ballistica.net/cache/ba1/b6/22/85dfce13ccc2a531a42a91d4dd89", - "assets/build/ba_data/textures/santaColorMask.dds": "https://files.ballistica.net/cache/ba1/5e/5f/6c47e8aa0cdfc92d06bfd3a23b6d", + "assets/build/ba_data/textures/santaColorMask.dds": "https://files.ballistica.net/cache/ba1/8a/9c/db332211cdc1deb5d60ce035d5a8", "assets/build/ba_data/textures/santaColorMask.ktx": "https://files.ballistica.net/cache/ba1/b7/b0/9ebd903f0d9e491fa6a65181de19", "assets/build/ba_data/textures/santaColorMask.pvr": "https://files.ballistica.net/cache/ba1/a8/8c/6ab8ad9a2ea2e907635286163e57", "assets/build/ba_data/textures/santaColorMask_preview.png": "https://files.ballistica.net/cache/ba1/01/c4/436aca37ae86e73db9b7c856056a", @@ -2253,7 +2253,7 @@ "assets/build/ba_data/textures/santaIcon.dds": "https://files.ballistica.net/cache/ba1/50/10/67dc3f02df57883342cc345cf72e", "assets/build/ba_data/textures/santaIcon.ktx": "https://files.ballistica.net/cache/ba1/b7/6c/f22cde80b89403aeb4e950d8e2d2", "assets/build/ba_data/textures/santaIcon.pvr": "https://files.ballistica.net/cache/ba1/a0/4c/24e260da5e86b10a86049503b986", - "assets/build/ba_data/textures/santaIconColorMask.dds": "https://files.ballistica.net/cache/ba1/6c/54/c155cd9278a8411441fe9f68f09b", + "assets/build/ba_data/textures/santaIconColorMask.dds": "https://files.ballistica.net/cache/ba1/9e/36/dbeba27f8008aa3404864070f5bc", "assets/build/ba_data/textures/santaIconColorMask.ktx": "https://files.ballistica.net/cache/ba1/32/7a/c2d2cc16c7be82dbcff72a376f70", "assets/build/ba_data/textures/santaIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/25/db/3dfff995ae0b87511a6bb7cc8b79", "assets/build/ba_data/textures/santaIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/ca/f2/a9f44952811c708bd50525d4da30", @@ -2302,7 +2302,7 @@ "assets/build/ba_data/textures/slash.ktx": "https://files.ballistica.net/cache/ba1/54/cb/a35780a274f021fc1044b45daf99", "assets/build/ba_data/textures/slash.pvr": "https://files.ballistica.net/cache/ba1/b6/d2/fa0617f78a81fc0eacb962484729", "assets/build/ba_data/textures/slash_preview.png": "https://files.ballistica.net/cache/ba1/33/2f/060dad5afdba8162d7a3ad082df0", - "assets/build/ba_data/textures/smoke.dds": "https://files.ballistica.net/cache/ba1/66/a6/714c50394e08e6709f9470f2f02d", + "assets/build/ba_data/textures/smoke.dds": "https://files.ballistica.net/cache/ba1/c1/b5/f1c19535edd6f9abc74b85a9673a", "assets/build/ba_data/textures/smoke.ktx": "https://files.ballistica.net/cache/ba1/8c/d8/74ac19c7930bbd695f533ec09fa3", "assets/build/ba_data/textures/smoke.pvr": "https://files.ballistica.net/cache/ba1/d7/a5/014c007053212e96096b545626ea", "assets/build/ba_data/textures/smoke_preview.png": "https://files.ballistica.net/cache/ba1/b1/c6/52443210c0229920389219868dcc", @@ -2318,7 +2318,7 @@ "assets/build/ba_data/textures/softRectVertical.pvr": "https://files.ballistica.net/cache/ba1/4d/19/857d457d9b5a0279a80dceea2cd3", "assets/build/ba_data/textures/softRectVertical_preview.png": "https://files.ballistica.net/cache/ba1/56/0f/524a88de51160a96224fb40249c1", "assets/build/ba_data/textures/softRect_preview.png": "https://files.ballistica.net/cache/ba1/5e/31/512ca0d886a0d866f194f875c3db", - "assets/build/ba_data/textures/sparks.dds": "https://files.ballistica.net/cache/ba1/0a/c4/0514ac00c5978979f65fbdf1b56e", + "assets/build/ba_data/textures/sparks.dds": "https://files.ballistica.net/cache/ba1/89/77/00c8ba51a9cf06bfc0a0a427efc3", "assets/build/ba_data/textures/sparks.ktx": "https://files.ballistica.net/cache/ba1/3d/6d/beee025480e5711ecd52bc5f6b07", "assets/build/ba_data/textures/sparks.pvr": "https://files.ballistica.net/cache/ba1/39/af/5b9e1081c0973f5e853c11fa06bc", "assets/build/ba_data/textures/sparks_preview.png": "https://files.ballistica.net/cache/ba1/19/fc/4a53d76b56ea0f0c3d5eaeed93b4", @@ -2330,11 +2330,11 @@ "assets/build/ba_data/textures/startButton.ktx": "https://files.ballistica.net/cache/ba1/ef/9a/9323a447cb7cf8fa119bbeadbf7c", "assets/build/ba_data/textures/startButton.pvr": "https://files.ballistica.net/cache/ba1/a8/25/74bd9ee857764fba362a0ecdc9b3", "assets/build/ba_data/textures/startButton_preview.png": "https://files.ballistica.net/cache/ba1/ba/d5/48858f0b1a1e0e4043762d4b0216", - "assets/build/ba_data/textures/stepRightUpLevelColor.dds": "https://files.ballistica.net/cache/ba1/58/51/eec340a570c3797198bcd9c7c205", + "assets/build/ba_data/textures/stepRightUpLevelColor.dds": "https://files.ballistica.net/cache/ba1/aa/27/277f7741294d367810f01ef150f8", "assets/build/ba_data/textures/stepRightUpLevelColor.ktx": "https://files.ballistica.net/cache/ba1/6f/35/3380ac50585bce22311666d28782", "assets/build/ba_data/textures/stepRightUpLevelColor.pvr": "https://files.ballistica.net/cache/ba1/8b/fb/eba3c0faa304123c784c888d0c65", "assets/build/ba_data/textures/stepRightUpLevelColor_preview.png": "https://files.ballistica.net/cache/ba1/5d/b9/bcdca38ad1d808b541b8008d5555", - "assets/build/ba_data/textures/stepRightUpPreview.dds": "https://files.ballistica.net/cache/ba1/26/45/d61d7173f3875fb5a8e7a748b2df", + "assets/build/ba_data/textures/stepRightUpPreview.dds": "https://files.ballistica.net/cache/ba1/ce/8f/8843ebbc561cf5dd44eb657b797d", "assets/build/ba_data/textures/stepRightUpPreview.ktx": "https://files.ballistica.net/cache/ba1/bd/75/7b19bfb14c8a73ae9a42156d70f2", "assets/build/ba_data/textures/stepRightUpPreview.pvr": "https://files.ballistica.net/cache/ba1/fe/44/e09c5a523cb3e8576709256c79a9", "assets/build/ba_data/textures/stepRightUpPreview_preview.png": "https://files.ballistica.net/cache/ba1/ad/ff/086bca9f87fdc17bae4bd55e904f", @@ -2357,7 +2357,7 @@ "assets/build/ba_data/textures/superheroColor.dds": "https://files.ballistica.net/cache/ba1/20/22/1e1f70c67cdbf49ce120b454f76a", "assets/build/ba_data/textures/superheroColor.ktx": "https://files.ballistica.net/cache/ba1/6d/7c/bc6c4f9b237301fefea90f27f9a0", "assets/build/ba_data/textures/superheroColor.pvr": "https://files.ballistica.net/cache/ba1/48/12/34feeaf8bb9724e3d084b96cda3b", - "assets/build/ba_data/textures/superheroColorMask.dds": "https://files.ballistica.net/cache/ba1/3b/2f/c7890bc048477e15698c7663b3d4", + "assets/build/ba_data/textures/superheroColorMask.dds": "https://files.ballistica.net/cache/ba1/68/a5/b09635c375edc462cf4b102c3236", "assets/build/ba_data/textures/superheroColorMask.ktx": "https://files.ballistica.net/cache/ba1/a5/19/f7169d492c759f9f3416887df9d5", "assets/build/ba_data/textures/superheroColorMask.pvr": "https://files.ballistica.net/cache/ba1/39/dc/256d7b9203f90032bbe21cec3a03", "assets/build/ba_data/textures/superheroColorMask_preview.png": "https://files.ballistica.net/cache/ba1/7d/f0/d05466477b420b25ff7dd881c87b", @@ -2374,11 +2374,11 @@ "assets/build/ba_data/textures/textClearButton.ktx": "https://files.ballistica.net/cache/ba1/05/60/2ae6636eb10907f2973342229949", "assets/build/ba_data/textures/textClearButton.pvr": "https://files.ballistica.net/cache/ba1/b1/32/dc45a735786df68c442b16a62a57", "assets/build/ba_data/textures/textClearButton_preview.png": "https://files.ballistica.net/cache/ba1/12/64/67e74f9e5d77ba1230304ea40497", - "assets/build/ba_data/textures/thePadLevelColor.dds": "https://files.ballistica.net/cache/ba1/7c/0d/09d84d8de458a7bcc7343b65ab9f", + "assets/build/ba_data/textures/thePadLevelColor.dds": "https://files.ballistica.net/cache/ba1/61/17/6fb9d7fef2499c9ef5e3eb7ac928", "assets/build/ba_data/textures/thePadLevelColor.ktx": "https://files.ballistica.net/cache/ba1/4e/34/bf0d6a8b0e64cf7fef14b1ec9da5", "assets/build/ba_data/textures/thePadLevelColor.pvr": "https://files.ballistica.net/cache/ba1/27/ad/471ab1086db8d6669040fc48742a", "assets/build/ba_data/textures/thePadLevelColor_preview.png": "https://files.ballistica.net/cache/ba1/88/1d/42616ff95265cb0d0db6c353a044", - "assets/build/ba_data/textures/thePadPreview.dds": "https://files.ballistica.net/cache/ba1/cd/ee/a4e2f05ada77eab50013534e46fc", + "assets/build/ba_data/textures/thePadPreview.dds": "https://files.ballistica.net/cache/ba1/12/67/c64f2c3a5726712453400859e0f3", "assets/build/ba_data/textures/thePadPreview.ktx": "https://files.ballistica.net/cache/ba1/5e/11/ff9caf9657a7c439b2e0fab39049", "assets/build/ba_data/textures/thePadPreview.pvr": "https://files.ballistica.net/cache/ba1/5a/8f/4061a1deafca6ba331738f6c9db8", "assets/build/ba_data/textures/thePadPreview_preview.png": "https://files.ballistica.net/cache/ba1/94/12/ec4cc8f0378cf62f811122e6faec", @@ -2402,11 +2402,11 @@ "assets/build/ba_data/textures/ticketsMore.pvr": "https://files.ballistica.net/cache/ba1/59/1a/73c4109d96e85316c2c46ff2c025", "assets/build/ba_data/textures/ticketsMore_preview.png": "https://files.ballistica.net/cache/ba1/24/01/32ba85edd6394dd56562f64eee09", "assets/build/ba_data/textures/tickets_preview.png": "https://files.ballistica.net/cache/ba1/90/ce/b693dd116e50d1b0eff488cfdd98", - "assets/build/ba_data/textures/tipTopBGColor.dds": "https://files.ballistica.net/cache/ba1/ac/31/d9009e21104f4131117610ba03a0", + "assets/build/ba_data/textures/tipTopBGColor.dds": "https://files.ballistica.net/cache/ba1/19/bf/258c624e1b3e3e3efabeefe3dd20", "assets/build/ba_data/textures/tipTopBGColor.ktx": "https://files.ballistica.net/cache/ba1/39/8c/a9f1ba489b23f5d899bb3f9941b1", "assets/build/ba_data/textures/tipTopBGColor.pvr": "https://files.ballistica.net/cache/ba1/1b/0d/89ecc99bc58aa985f00f7097177a", "assets/build/ba_data/textures/tipTopBGColor_preview.png": "https://files.ballistica.net/cache/ba1/54/0b/9978639a58e703cece49de6523b7", - "assets/build/ba_data/textures/tipTopLevelColor.dds": "https://files.ballistica.net/cache/ba1/5f/d8/d29d224f0fcdcbf04ce625945baf", + "assets/build/ba_data/textures/tipTopLevelColor.dds": "https://files.ballistica.net/cache/ba1/d9/9d/5887220819a9bceaf547349cc1f3", "assets/build/ba_data/textures/tipTopLevelColor.ktx": "https://files.ballistica.net/cache/ba1/4f/77/17f60fceaa239805af2bb7a169be", "assets/build/ba_data/textures/tipTopLevelColor.pvr": "https://files.ballistica.net/cache/ba1/8b/20/240ddac5158fb481ce41c50a86ce", "assets/build/ba_data/textures/tipTopLevelColor_preview.png": "https://files.ballistica.net/cache/ba1/75/88/019f15db873f836c5651b1b12130", @@ -2426,15 +2426,15 @@ "assets/build/ba_data/textures/touchArrowsActions.pvr": "https://files.ballistica.net/cache/ba1/74/1b/7642cfb899d1337073b10855d01d", "assets/build/ba_data/textures/touchArrowsActions_preview.png": "https://files.ballistica.net/cache/ba1/3c/21/1933b01847e20ed77164097aaea5", "assets/build/ba_data/textures/touchArrows_preview.png": "https://files.ballistica.net/cache/ba1/14/bd/595019a7e3b87bd844f8a60bf04c", - "assets/build/ba_data/textures/towerDLevelColor.dds": "https://files.ballistica.net/cache/ba1/08/c1/8925800c38503c077829f7b3fa96", + "assets/build/ba_data/textures/towerDLevelColor.dds": "https://files.ballistica.net/cache/ba1/8a/1f/997dafb004fe5b2122c66ae66302", "assets/build/ba_data/textures/towerDLevelColor.ktx": "https://files.ballistica.net/cache/ba1/8d/42/47252953095838210efdf6abc37d", "assets/build/ba_data/textures/towerDLevelColor.pvr": "https://files.ballistica.net/cache/ba1/9f/18/de2d35f9737871b3a1a914561428", "assets/build/ba_data/textures/towerDLevelColor_preview.png": "https://files.ballistica.net/cache/ba1/d4/e2/96ed47c7c856cf772a74f7385fab", - "assets/build/ba_data/textures/towerDPreview.dds": "https://files.ballistica.net/cache/ba1/de/cc/3810b38d96b849375c4d9a416665", + "assets/build/ba_data/textures/towerDPreview.dds": "https://files.ballistica.net/cache/ba1/4f/91/7de86add4cdc30060477c93e2aa6", "assets/build/ba_data/textures/towerDPreview.ktx": "https://files.ballistica.net/cache/ba1/e9/3a/d62eb672f3f26757b59f4d6d9e48", "assets/build/ba_data/textures/towerDPreview.pvr": "https://files.ballistica.net/cache/ba1/be/40/cc2ad06c0c08a1b937a2165f3bdb", "assets/build/ba_data/textures/towerDPreview_preview.png": "https://files.ballistica.net/cache/ba1/20/80/2314d36626f44f2ded99773ce267", - "assets/build/ba_data/textures/treesColor.dds": "https://files.ballistica.net/cache/ba1/ff/c9/f24bda9787c79435fea19b8ff647", + "assets/build/ba_data/textures/treesColor.dds": "https://files.ballistica.net/cache/ba1/a9/c6/e78e8aecedb379288c5a2d6e41f0", "assets/build/ba_data/textures/treesColor.ktx": "https://files.ballistica.net/cache/ba1/e7/19/2b8b0c8cfd26839ebd1d514354b7", "assets/build/ba_data/textures/treesColor.pvr": "https://files.ballistica.net/cache/ba1/03/b2/159518817084766a2cc464ba0a1b", "assets/build/ba_data/textures/treesColor_preview.png": "https://files.ballistica.net/cache/ba1/72/2b/7addb4861a6a8cd09748248e4de4", @@ -2462,14 +2462,14 @@ "assets/build/ba_data/textures/usersButton.ktx": "https://files.ballistica.net/cache/ba1/5b/e6/34fb5d6f905c30b3a2b9aa9e5734", "assets/build/ba_data/textures/usersButton.pvr": "https://files.ballistica.net/cache/ba1/0a/de/0f45f12e34557fb1141d7a266a0d", "assets/build/ba_data/textures/usersButton_preview.png": "https://files.ballistica.net/cache/ba1/1a/fc/7d74541cd06ad5db3de119418f81", - "assets/build/ba_data/textures/vrFillMound.dds": "https://files.ballistica.net/cache/ba1/03/2e/06c7ee248c6adef3fde077f4e4e1", + "assets/build/ba_data/textures/vrFillMound.dds": "https://files.ballistica.net/cache/ba1/bc/b3/8e14500bb766cf3639ea003cd9af", "assets/build/ba_data/textures/vrFillMound.ktx": "https://files.ballistica.net/cache/ba1/5d/1e/e86c34fd33355e21955d3d48bfe6", "assets/build/ba_data/textures/vrFillMound.pvr": "https://files.ballistica.net/cache/ba1/e8/da/46ed26badb88b6fd10abc37f35f6", "assets/build/ba_data/textures/vrFillMound_preview.png": "https://files.ballistica.net/cache/ba1/fd/33/4f817cfe06d2f8a04c395a9dc960", "assets/build/ba_data/textures/warriorColor.dds": "https://files.ballistica.net/cache/ba1/f2/51/d42750c9df1f55f39c134c925c7f", "assets/build/ba_data/textures/warriorColor.ktx": "https://files.ballistica.net/cache/ba1/e7/72/6f9a3314300c12b5ffd99a4d0000", "assets/build/ba_data/textures/warriorColor.pvr": "https://files.ballistica.net/cache/ba1/f2/63/d8bf3ba74b47932b4465847ef133", - "assets/build/ba_data/textures/warriorColorMask.dds": "https://files.ballistica.net/cache/ba1/9f/d5/4787b04a7004e2b830f37cea8f2d", + "assets/build/ba_data/textures/warriorColorMask.dds": "https://files.ballistica.net/cache/ba1/e4/4c/e0ccd356704be279c55ad5d7bc68", "assets/build/ba_data/textures/warriorColorMask.ktx": "https://files.ballistica.net/cache/ba1/d4/22/c8c01a12e9ec10f214659ce9faa4", "assets/build/ba_data/textures/warriorColorMask.pvr": "https://files.ballistica.net/cache/ba1/17/c5/87586c89935377cb8d4336713094", "assets/build/ba_data/textures/warriorColorMask_preview.png": "https://files.ballistica.net/cache/ba1/d9/97/16b01e9e4bf3bdc8c57672526158", @@ -2501,7 +2501,7 @@ "assets/build/ba_data/textures/witchColor.dds": "https://files.ballistica.net/cache/ba1/41/36/4b562ef0323d0b3ad88fea31bec8", "assets/build/ba_data/textures/witchColor.ktx": "https://files.ballistica.net/cache/ba1/f2/32/d61ee331287b1c4e508a1f6ea317", "assets/build/ba_data/textures/witchColor.pvr": "https://files.ballistica.net/cache/ba1/e5/f4/1ae61921f42efa27ed72120337a1", - "assets/build/ba_data/textures/witchColorMask.dds": "https://files.ballistica.net/cache/ba1/39/b4/db14abde641fa3b63447936f2f9b", + "assets/build/ba_data/textures/witchColorMask.dds": "https://files.ballistica.net/cache/ba1/85/13/5d498983b93a3b27565525e60e03", "assets/build/ba_data/textures/witchColorMask.ktx": "https://files.ballistica.net/cache/ba1/e0/23/4fb45223a969626489041af0de9f", "assets/build/ba_data/textures/witchColorMask.pvr": "https://files.ballistica.net/cache/ba1/ab/d9/d03a2366b07854e7c82cd0e1e443", "assets/build/ba_data/textures/witchColorMask_preview.png": "https://files.ballistica.net/cache/ba1/49/7f/61faa30b3b091c142c1212a85019", @@ -2514,18 +2514,18 @@ "assets/build/ba_data/textures/witchIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/2e/76/a2b8bfd7868a47c11b2c5fd1660b", "assets/build/ba_data/textures/witchIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/49/bc/8479175256d1e62e607b2c392f2d", "assets/build/ba_data/textures/witchIcon_preview.png": "https://files.ballistica.net/cache/ba1/5f/96/cb2eb1c3a9fb0240f5748c5c1da5", - "assets/build/ba_data/textures/wizardColor.dds": "https://files.ballistica.net/cache/ba1/91/1b/af0d8cd18532d766b4b129317ed4", + "assets/build/ba_data/textures/wizardColor.dds": "https://files.ballistica.net/cache/ba1/ec/e9/fcbc0fc4d1fc397f8ec5b498337f", "assets/build/ba_data/textures/wizardColor.ktx": "https://files.ballistica.net/cache/ba1/50/da/d0569142ec7924ca40eccf82a930", "assets/build/ba_data/textures/wizardColor.pvr": "https://files.ballistica.net/cache/ba1/11/dc/b7f4a083ef2a93d7834b3d841443", - "assets/build/ba_data/textures/wizardColorMask.dds": "https://files.ballistica.net/cache/ba1/ad/cc/a104746ef03fa4a788e118424fc4", + "assets/build/ba_data/textures/wizardColorMask.dds": "https://files.ballistica.net/cache/ba1/b4/32/3d46d2e5920e7530b384d7626617", "assets/build/ba_data/textures/wizardColorMask.ktx": "https://files.ballistica.net/cache/ba1/0d/0d/80e2b947ebd3dbde1330682f62a4", "assets/build/ba_data/textures/wizardColorMask.pvr": "https://files.ballistica.net/cache/ba1/5a/7c/9933e396902aca69b786468d1c38", "assets/build/ba_data/textures/wizardColorMask_preview.png": "https://files.ballistica.net/cache/ba1/44/93/65a9e806485cd757e6a05655916a", "assets/build/ba_data/textures/wizardColor_preview.png": "https://files.ballistica.net/cache/ba1/cf/3c/3db3b3f5b6dab73f8b8a5353fe1a", - "assets/build/ba_data/textures/wizardIcon.dds": "https://files.ballistica.net/cache/ba1/0a/79/2ccd8ee9c225bf6a969f8f29d5d9", + "assets/build/ba_data/textures/wizardIcon.dds": "https://files.ballistica.net/cache/ba1/e6/2f/74df3fe2e97c960ff1ca64aed588", "assets/build/ba_data/textures/wizardIcon.ktx": "https://files.ballistica.net/cache/ba1/b9/3d/2c10de406177de22b8e89c9cb3b3", "assets/build/ba_data/textures/wizardIcon.pvr": "https://files.ballistica.net/cache/ba1/e3/c0/7d62f35ec06d5c4442a92b175cc0", - "assets/build/ba_data/textures/wizardIconColorMask.dds": "https://files.ballistica.net/cache/ba1/f1/aa/65c24f94a227616f5ef7d1f77bb8", + "assets/build/ba_data/textures/wizardIconColorMask.dds": "https://files.ballistica.net/cache/ba1/b5/16/7f556e4b852a94400388b4c96db4", "assets/build/ba_data/textures/wizardIconColorMask.ktx": "https://files.ballistica.net/cache/ba1/91/17/307bfa8af7dc435aa92dd38158f6", "assets/build/ba_data/textures/wizardIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/3e/31/19cb4995ec02f1884bd35b29a464", "assets/build/ba_data/textures/wizardIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/20/24/700221546a08f3bc9c31e751ebcc", @@ -2533,7 +2533,7 @@ "assets/build/ba_data/textures/wrestlerColor.dds": "https://files.ballistica.net/cache/ba1/1f/d5/d21adac8982ad713b0bbdbb7ee6c", "assets/build/ba_data/textures/wrestlerColor.ktx": "https://files.ballistica.net/cache/ba1/d7/22/bf15886b227531620eec6462be2d", "assets/build/ba_data/textures/wrestlerColor.pvr": "https://files.ballistica.net/cache/ba1/ab/76/9f573919ed6b9e635f4a014584ba", - "assets/build/ba_data/textures/wrestlerColorMask.dds": "https://files.ballistica.net/cache/ba1/9f/98/98d3c41b83875f850abc3b2c31df", + "assets/build/ba_data/textures/wrestlerColorMask.dds": "https://files.ballistica.net/cache/ba1/fb/a5/472ae89a40a52d189c9337c179fa", "assets/build/ba_data/textures/wrestlerColorMask.ktx": "https://files.ballistica.net/cache/ba1/21/1f/eebe5e1fe740412aad15026d21b5", "assets/build/ba_data/textures/wrestlerColorMask.pvr": "https://files.ballistica.net/cache/ba1/36/43/ef6da6107379ac3f74204a34c529", "assets/build/ba_data/textures/wrestlerColorMask_preview.png": "https://files.ballistica.net/cache/ba1/0c/5f/8619903636053dc0ff1858bf3451", @@ -2546,26 +2546,26 @@ "assets/build/ba_data/textures/wrestlerIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/7b/5d/83a1a0f4d7b06303d5da137e5847", "assets/build/ba_data/textures/wrestlerIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/b5/74/774b56f03e583df47388c552c63e", "assets/build/ba_data/textures/wrestlerIcon_preview.png": "https://files.ballistica.net/cache/ba1/38/71/8b5f4d69dde24101ce0d69747486", - "assets/build/ba_data/textures/zigZagLevelColor.dds": "https://files.ballistica.net/cache/ba1/ea/cf/a59f7ca3b2f0d7a08e3ad42d83ab", + "assets/build/ba_data/textures/zigZagLevelColor.dds": "https://files.ballistica.net/cache/ba1/df/17/9994816ad67f481800bae16f2db2", "assets/build/ba_data/textures/zigZagLevelColor.ktx": "https://files.ballistica.net/cache/ba1/c1/1e/82884d1423ce4a7d641003e84bfb", "assets/build/ba_data/textures/zigZagLevelColor.pvr": "https://files.ballistica.net/cache/ba1/56/df/c53d264147677138e47799ea990e", "assets/build/ba_data/textures/zigZagLevelColor_preview.png": "https://files.ballistica.net/cache/ba1/cd/d7/b45e95db0117c4fe5d957136b4bb", - "assets/build/ba_data/textures/zigzagPreview.dds": "https://files.ballistica.net/cache/ba1/00/3b/3a7f2ab4aed12f4d911e94093002", + "assets/build/ba_data/textures/zigzagPreview.dds": "https://files.ballistica.net/cache/ba1/6c/13/64e4a3570343f8a8965b8c6bb318", "assets/build/ba_data/textures/zigzagPreview.ktx": "https://files.ballistica.net/cache/ba1/33/ca/b022d38b1306d8382c2ecdb270b9", "assets/build/ba_data/textures/zigzagPreview.pvr": "https://files.ballistica.net/cache/ba1/0e/21/4f296b4440f8467c904221d18400", "assets/build/ba_data/textures/zigzagPreview_preview.png": "https://files.ballistica.net/cache/ba1/f4/32/1f69e507893d054aca0371c31248", - "assets/build/ba_data/textures/zoeColor.dds": "https://files.ballistica.net/cache/ba1/82/6e/c531db13a3eff5a2e37c32af79c1", + "assets/build/ba_data/textures/zoeColor.dds": "https://files.ballistica.net/cache/ba1/05/e4/93016a653b2bb3433138594c9c0e", "assets/build/ba_data/textures/zoeColor.ktx": "https://files.ballistica.net/cache/ba1/8d/80/906fb08660e1fcde3f5997108abf", "assets/build/ba_data/textures/zoeColor.pvr": "https://files.ballistica.net/cache/ba1/4a/74/8ca47effb87502b7334398e967be", - "assets/build/ba_data/textures/zoeColorMask.dds": "https://files.ballistica.net/cache/ba1/eb/a5/a71bc5739b02d7101dbd29e6b81b", + "assets/build/ba_data/textures/zoeColorMask.dds": "https://files.ballistica.net/cache/ba1/b6/06/e4086e65b697d7de1c8864f49029", "assets/build/ba_data/textures/zoeColorMask.ktx": "https://files.ballistica.net/cache/ba1/b9/32/91c389da7403df50125cddc37575", "assets/build/ba_data/textures/zoeColorMask.pvr": "https://files.ballistica.net/cache/ba1/f4/6a/4cbdbcf47abdb7f8fdc8d283451e", "assets/build/ba_data/textures/zoeColorMask_preview.png": "https://files.ballistica.net/cache/ba1/ca/0e/66481610316607e9adcb456467d1", "assets/build/ba_data/textures/zoeColor_preview.png": "https://files.ballistica.net/cache/ba1/3b/3e/91abd548d271a97df63b327a1f82", - "assets/build/ba_data/textures/zoeIcon.dds": "https://files.ballistica.net/cache/ba1/23/d4/d1b9a5a9fd790beb494b823f7a35", + "assets/build/ba_data/textures/zoeIcon.dds": "https://files.ballistica.net/cache/ba1/da/63/063fc70b4a22b7a0f32ca8e9f8b4", "assets/build/ba_data/textures/zoeIcon.ktx": "https://files.ballistica.net/cache/ba1/fd/75/88d1a4355980906272cf904bd722", "assets/build/ba_data/textures/zoeIcon.pvr": "https://files.ballistica.net/cache/ba1/7c/66/7959cdfaa884068bdb11db1ef330", - "assets/build/ba_data/textures/zoeIconColorMask.dds": "https://files.ballistica.net/cache/ba1/0b/61/f5e3848c72b5359e129ed7fd9ee0", + "assets/build/ba_data/textures/zoeIconColorMask.dds": "https://files.ballistica.net/cache/ba1/75/06/c186a1ad6e54ba6d8862b23c2136", "assets/build/ba_data/textures/zoeIconColorMask.ktx": "https://files.ballistica.net/cache/ba1/bd/eb/deb5899cffa81a665248e3062363", "assets/build/ba_data/textures/zoeIconColorMask.pvr": "https://files.ballistica.net/cache/ba1/2b/dc/22df1ef245a7f368060d2eecb839", "assets/build/ba_data/textures/zoeIconColorMask_preview.png": "https://files.ballistica.net/cache/ba1/d5/08/7d5e28abf51591fb4923892f43dd", @@ -3992,50 +3992,50 @@ "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/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/91/42/40d3d68a023907931bd0607bda85", - "build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/32/63/c4e986eabc1ea23c5c1cdd6461ab", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/7d/ae/75e71403860e67cbc3b0facf0667", - "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ee/37/67886cc96bb5685d74c25dfd1861", - "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/c5/ab/3bf790e91bb62f0813eb36068b23", - "build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/42/a2/912b3d7c1c3dd5962c21c6308707", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/7b/a5/5312559793a768b3112145f921cd", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/9e/dc/6b4b77c9719790a1b7b13613bcb7", - "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a8/3b/21a81d94f9fdcb14c6ebc965e1bb", - "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/a0/17/837cd62e5cc754326483feeee145", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/34/34/8c88b65847fcaf0ee784f7e4d3fc", - "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/f6/e1/af0184b03b3ce6277f08d6f96a96", - "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/7e/f2/8d3b9bae2bfd0cd7d58162861d14", - "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/06/32/361440b616c5af4edc44ed059d92", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/9e/b3/7431daff15c5f777e9bf5be8fe3d", - "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/74/0e/e3f9c2c7c8762e1e1b0b78b04233", - "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/3c/9f/ce3edd8f8a9d08dead66dd251bcf", - "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/3d/58/7c91da27a573425a1ff759866502", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/fd/39/93180659dab22ad061c9881f1132", - "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/bb/43/92b705d488ea4a60b7062bc5f0cb", - "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/6d/55/43cb804fe2b6b591e8c4713a1f4f", - "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/fe/61/9eaaa15072167c2928db497e8d36", - "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/99/f1/ac4818ad69cfe75f7091ee08231b", - "build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/19/93/20ef44fccd2fbec462e75eaebb94", - "build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f5/21/0b5914e203834307064814157891", - "build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/9b/ec/39c43dc87aa884935ebd41c51a65", - "build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0f/47/7cdadc48b80922a35fef02954f55", - "build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b5/1a/9237a45253d7fb78caa61dda705d", - "build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/76/67/9e81120039eaa5dd2fdea8158920", - "build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/9c/f0/b700bcf9f82f3569ff65cec8195c", - "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/83/b6/5e554b5077bd5fe5f539250c11e9", - "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/04/24/505ea85abe32bb75db13d76d7b0d", - "build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/52/b6/f0ef528479230a231ad44afd0644", - "build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/8b/4a/df2e8786ef7c5594d57bdd50f753", - "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/27/a2/2b5dc6f6be53b109294ce735f59f", - "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/87/e1/2d4766493963104e82f0eaa2b5e9", - "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/2d/e3/c2b5c1268c972b9de6c0c61619dd", - "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/e2/c3/a14f3d7f26b44e17dc86be06bb2c", - "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/78/15/9e17e9a4b29c1a41276a958f369f", - "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/52/b5/9a129b8efd0596b6d610a6ae8cf4", - "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/81/07/bee5edbf61365c47a62c002e54bc", - "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/1a/3b/7303e08773e9ab5beaadd8524d32", - "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/72/a0/3f4d952782ea386ff85c6f5c8001", - "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/f4/56/d9e62b10d6c64e7c539505ed6c43", + "build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/1a/39/acfbc22a3b5c42fc8d7041c39d69", + "build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/32/13/b2fb8f259bbd899789108036bae9", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c0/82/b986c8348b474e3299d4aac7bc32", + "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/48/39/3978b186f6db8e0fd01c250868b7", + "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/4f/1e/17ffb859868e36203dc9286a4434", + "build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/77/77/6671c0637457b48041711daf27da", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/18/82/776af0c81fb17839b7b8bc264012", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/1c/cf/75b00bce2ce670a5c95af086d9a0", + "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/b3/d3/4c0fc4960a1fd06fc0f86f6d5777", + "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9b/5f/904c100c7c5646c7331cb26b8db6", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/86/4f/087dedb270ea874623e3da1a7c3e", + "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/5c/ea/0f158f114b2b3d0a534aebfeaebf", + "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/ba/c2/b590f6860f465fa2a9803204124c", + "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/72/4a/de64093c85f32f5dbba5389da90c", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/73/4c/5aa3525b583998c2e0f4f8493c94", + "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/7c/39/05b1d3873ca9f1d6a7b904732630", + "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/a0/28/15fff103cb8ee86ce62c9d09c12c", + "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/fb/bc/0279767aab40958a8912d18d924b", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/60/8b/9bd45d3d3ecb9430d9f4e54f061c", + "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/ad/13/a9aa8f24b210a75ee22f4db0c386", + "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/95/cf/7c343cd320548f535b75b5993275", + "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/a5/ee/8c89b68c2b26464768335e4c3361", + "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/18/93/76a49888f17ea1677b9b49244416", + "build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/35/1a/0f4d7ba4b2ef0ef560561e5bf12e", + "build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e1/c4/0779774d7bfd3785a6a72f5ad9b3", + "build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ef/56/16ef6ac991d22b2b7a4e84d9d63f", + "build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/2c/de/bc6f000b410cec07e221381a7a08", + "build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b7/25/5e4c27c79a9d7d5ed115a7d9e522", + "build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/3e/a7/906d0c23c59e5088524a61589e9e", + "build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d4/c7/5e17ad8698cb25751509b038f23f", + "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f1/fb/7d8fcfeb8c28a7f8c83599433fd8", + "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/7e/4a/b22dbbc69a1d7f707ecbad6eb3a0", + "build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/20/13/9bb2efeb5925d0c8e981076a149f", + "build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ae/bb/4a015a49120e908a6d17f302d0d8", + "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e2/ff/1b0c530cbba73a0ea895a56626b6", + "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/9c/8e/53fdfaf4f5113970e2aefcb6a06e", + "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/91/30/b88dfadbd2c03ee3324ee331120c", + "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/6a/5f/d9c21a29c24bae4fe234eec09981", + "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/4a/1c/df6e06fdf2028fa206c7dce2e405", + "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/8f/b9/054894bdc040b2b2013c1cbc31ab", + "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/e3/d6/6724c587d81bfd4ebbea313a5388", + "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/e4/6b/7ddca5ca6ba5ac1a59c7e193ceb5", + "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/53/ac/0f8c81b9f6ee4d2006bd3096b355", + "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/57/56/31132df71eecafd491785a791d88", "src/ballistica/generated/python_embedded/binding.inc": "https://files.ballistica.net/cache/ba1/6e/6f/004b696e9a13b083069374e4bb6a", "src/ballistica/generated/python_embedded/bootstrap.inc": "https://files.ballistica.net/cache/ba1/d3/db/e73d4dcf1280d5f677c3cf8b47c3" } \ No newline at end of file diff --git a/.idea/dictionaries/ericf.xml b/.idea/dictionaries/ericf.xml index 34da2077..fdd708f3 100644 --- a/.idea/dictionaries/ericf.xml +++ b/.idea/dictionaries/ericf.xml @@ -2153,6 +2153,7 @@ sbwht sbylw sbytes + scanresults scenefile scenefiles scenename @@ -2567,6 +2568,7 @@ totalwaves totype touchpad + tournamentbutton tournamententry tournamentscores tpartial diff --git a/CHANGELOG.md b/CHANGELOG.md index 593d8ea3..833ddb9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ -### 1.7.4 (20637, 2022-07-07) +### 1.7.4 (20638, 2022-07-07) - Fixed the trophies list showing an incorrect total (Thanks itsre3!) +- ba.app.meta.metascan is now ba.app.meta.scanresults ### 1.7.3 (20634, 2022-07-06) - Fixed an issue with King of the Hill flag regions not working when players entered them (Thanks itsre3!) diff --git a/assets/.asset_manifest_public.json b/assets/.asset_manifest_public.json index 1a14f289..306022cc 100644 --- a/assets/.asset_manifest_public.json +++ b/assets/.asset_manifest_public.json @@ -374,9 +374,11 @@ "ba_data/python/bastd/ui/coop/__pycache__/browser.cpython-310.opt-1.pyc", "ba_data/python/bastd/ui/coop/__pycache__/gamebutton.cpython-310.opt-1.pyc", "ba_data/python/bastd/ui/coop/__pycache__/level.cpython-310.opt-1.pyc", + "ba_data/python/bastd/ui/coop/__pycache__/tournamentbutton.cpython-310.opt-1.pyc", "ba_data/python/bastd/ui/coop/browser.py", "ba_data/python/bastd/ui/coop/gamebutton.py", "ba_data/python/bastd/ui/coop/level.py", + "ba_data/python/bastd/ui/coop/tournamentbutton.py", "ba_data/python/bastd/ui/creditslist.py", "ba_data/python/bastd/ui/debug.py", "ba_data/python/bastd/ui/feedback.py", diff --git a/assets/Makefile b/assets/Makefile index 1a0f7880..b24095fd 100644 --- a/assets/Makefile +++ b/assets/Makefile @@ -298,6 +298,7 @@ SCRIPT_TARGETS_PY_PUBLIC = \ build/ba_data/python/bastd/ui/coop/browser.py \ build/ba_data/python/bastd/ui/coop/gamebutton.py \ build/ba_data/python/bastd/ui/coop/level.py \ + build/ba_data/python/bastd/ui/coop/tournamentbutton.py \ build/ba_data/python/bastd/ui/creditslist.py \ build/ba_data/python/bastd/ui/debug.py \ build/ba_data/python/bastd/ui/feedback.py \ @@ -546,6 +547,7 @@ SCRIPT_TARGETS_PYC_PUBLIC = \ build/ba_data/python/bastd/ui/coop/__pycache__/browser.cpython-310.opt-1.pyc \ build/ba_data/python/bastd/ui/coop/__pycache__/gamebutton.cpython-310.opt-1.pyc \ build/ba_data/python/bastd/ui/coop/__pycache__/level.cpython-310.opt-1.pyc \ + build/ba_data/python/bastd/ui/coop/__pycache__/tournamentbutton.cpython-310.opt-1.pyc \ build/ba_data/python/bastd/ui/__pycache__/creditslist.cpython-310.opt-1.pyc \ build/ba_data/python/bastd/ui/__pycache__/debug.cpython-310.opt-1.pyc \ build/ba_data/python/bastd/ui/__pycache__/feedback.cpython-310.opt-1.pyc \ diff --git a/assets/src/ba_data/python/ba/_campaign.py b/assets/src/ba_data/python/ba/_campaign.py index 915fc4cd..fff28fe2 100644 --- a/assets/src/ba_data/python/ba/_campaign.py +++ b/assets/src/ba_data/python/ba/_campaign.py @@ -28,10 +28,16 @@ class Campaign: Category: **App Classes** """ - def __init__(self, name: str, sequential: bool = True): + def __init__(self, + name: str, + sequential: bool = True, + levels: list[ba.Level] | None = None): self._name = name - self._levels: list[ba.Level] = [] self._sequential = sequential + self._levels: list[ba.Level] = [] + if levels is not None: + for level in levels: + self.addlevel(level) @property def name(self) -> str: @@ -91,9 +97,8 @@ class Campaign: def init_campaigns() -> None: """Fill out initial default Campaigns.""" - # pylint: disable=too-many-statements # pylint: disable=cyclic-import - from ba import _level + from ba._level import Level from bastd.game.onslaught import OnslaughtGame from bastd.game.football import FootballCoopGame from bastd.game.runaround import RunaroundGame @@ -109,244 +114,218 @@ def init_campaigns() -> None: # FIXME: Once translations catch up, we can convert these to use the # generic display-name '${GAME} Training' type stuff. - campaign = Campaign('Easy') - campaign.addlevel( - _level.Level('Onslaught Training', - gametype=OnslaughtGame, - settings={'preset': 'training_easy'}, - preview_texture_name='doomShroomPreview')) - campaign.addlevel( - _level.Level('Rookie Onslaught', - gametype=OnslaughtGame, - settings={'preset': 'rookie_easy'}, - preview_texture_name='courtyardPreview')) - campaign.addlevel( - _level.Level('Rookie Football', - gametype=FootballCoopGame, - settings={'preset': 'rookie_easy'}, - preview_texture_name='footballStadiumPreview')) - campaign.addlevel( - _level.Level('Pro Onslaught', - gametype=OnslaughtGame, - settings={'preset': 'pro_easy'}, - preview_texture_name='doomShroomPreview')) - campaign.addlevel( - _level.Level('Pro Football', - gametype=FootballCoopGame, - settings={'preset': 'pro_easy'}, - preview_texture_name='footballStadiumPreview')) - campaign.addlevel( - _level.Level('Pro Runaround', - gametype=RunaroundGame, - settings={'preset': 'pro_easy'}, - preview_texture_name='towerDPreview')) - campaign.addlevel( - _level.Level('Uber Onslaught', - gametype=OnslaughtGame, - settings={'preset': 'uber_easy'}, - preview_texture_name='courtyardPreview')) - campaign.addlevel( - _level.Level('Uber Football', - gametype=FootballCoopGame, - settings={'preset': 'uber_easy'}, - preview_texture_name='footballStadiumPreview')) - campaign.addlevel( - _level.Level('Uber Runaround', - gametype=RunaroundGame, - settings={'preset': 'uber_easy'}, - preview_texture_name='towerDPreview')) - register_campaign(campaign) + register_campaign( + Campaign( + 'Easy', + levels=[ + Level('Onslaught Training', + gametype=OnslaughtGame, + settings={'preset': 'training_easy'}, + preview_texture_name='doomShroomPreview'), + Level('Rookie Onslaught', + gametype=OnslaughtGame, + settings={'preset': 'rookie_easy'}, + preview_texture_name='courtyardPreview'), + Level('Rookie Football', + gametype=FootballCoopGame, + settings={'preset': 'rookie_easy'}, + preview_texture_name='footballStadiumPreview'), + Level('Pro Onslaught', + gametype=OnslaughtGame, + settings={'preset': 'pro_easy'}, + preview_texture_name='doomShroomPreview'), + Level('Pro Football', + gametype=FootballCoopGame, + settings={'preset': 'pro_easy'}, + preview_texture_name='footballStadiumPreview'), + Level('Pro Runaround', + gametype=RunaroundGame, + settings={'preset': 'pro_easy'}, + preview_texture_name='towerDPreview'), + Level('Uber Onslaught', + gametype=OnslaughtGame, + settings={'preset': 'uber_easy'}, + preview_texture_name='courtyardPreview'), + Level('Uber Football', + gametype=FootballCoopGame, + settings={'preset': 'uber_easy'}, + preview_texture_name='footballStadiumPreview'), + Level('Uber Runaround', + gametype=RunaroundGame, + settings={'preset': 'uber_easy'}, + preview_texture_name='towerDPreview') + ], + )) # "hard" mode - campaign = Campaign('Default') - campaign.addlevel( - _level.Level('Onslaught Training', - gametype=OnslaughtGame, - settings={'preset': 'training'}, - preview_texture_name='doomShroomPreview')) - campaign.addlevel( - _level.Level('Rookie Onslaught', - gametype=OnslaughtGame, - settings={'preset': 'rookie'}, - preview_texture_name='courtyardPreview')) - campaign.addlevel( - _level.Level('Rookie Football', - gametype=FootballCoopGame, - settings={'preset': 'rookie'}, - preview_texture_name='footballStadiumPreview')) - campaign.addlevel( - _level.Level('Pro Onslaught', - gametype=OnslaughtGame, - settings={'preset': 'pro'}, - preview_texture_name='doomShroomPreview')) - campaign.addlevel( - _level.Level('Pro Football', - gametype=FootballCoopGame, - settings={'preset': 'pro'}, - preview_texture_name='footballStadiumPreview')) - campaign.addlevel( - _level.Level('Pro Runaround', - gametype=RunaroundGame, - settings={'preset': 'pro'}, - preview_texture_name='towerDPreview')) - campaign.addlevel( - _level.Level('Uber Onslaught', - gametype=OnslaughtGame, - settings={'preset': 'uber'}, - preview_texture_name='courtyardPreview')) - campaign.addlevel( - _level.Level('Uber Football', - gametype=FootballCoopGame, - settings={'preset': 'uber'}, - preview_texture_name='footballStadiumPreview')) - campaign.addlevel( - _level.Level('Uber Runaround', - gametype=RunaroundGame, - settings={'preset': 'uber'}, - preview_texture_name='towerDPreview')) - campaign.addlevel( - _level.Level('The Last Stand', - gametype=TheLastStandGame, - settings={}, - preview_texture_name='rampagePreview')) - register_campaign(campaign) + register_campaign( + Campaign( + 'Default', + levels=[ + Level('Onslaught Training', + gametype=OnslaughtGame, + settings={'preset': 'training'}, + preview_texture_name='doomShroomPreview'), + Level('Rookie Onslaught', + gametype=OnslaughtGame, + settings={'preset': 'rookie'}, + preview_texture_name='courtyardPreview'), + Level('Rookie Football', + gametype=FootballCoopGame, + settings={'preset': 'rookie'}, + preview_texture_name='footballStadiumPreview'), + Level('Pro Onslaught', + gametype=OnslaughtGame, + settings={'preset': 'pro'}, + preview_texture_name='doomShroomPreview'), + Level('Pro Football', + gametype=FootballCoopGame, + settings={'preset': 'pro'}, + preview_texture_name='footballStadiumPreview'), + Level('Pro Runaround', + gametype=RunaroundGame, + settings={'preset': 'pro'}, + preview_texture_name='towerDPreview'), + Level('Uber Onslaught', + gametype=OnslaughtGame, + settings={'preset': 'uber'}, + preview_texture_name='courtyardPreview'), + Level('Uber Football', + gametype=FootballCoopGame, + settings={'preset': 'uber'}, + preview_texture_name='footballStadiumPreview'), + Level('Uber Runaround', + gametype=RunaroundGame, + settings={'preset': 'uber'}, + preview_texture_name='towerDPreview'), + Level('The Last Stand', + gametype=TheLastStandGame, + settings={}, + preview_texture_name='rampagePreview') + ], + )) # challenges: our 'official' random extra co-op levels - campaign = Campaign('Challenges', sequential=False) - campaign.addlevel( - _level.Level('Infinite Onslaught', - gametype=OnslaughtGame, - settings={'preset': 'endless'}, - preview_texture_name='doomShroomPreview')) - campaign.addlevel( - _level.Level('Infinite Runaround', - gametype=RunaroundGame, - settings={'preset': 'endless'}, - preview_texture_name='towerDPreview')) - campaign.addlevel( - _level.Level('Race', - displayname='${GAME}', - gametype=RaceGame, - settings={ - 'map': 'Big G', - 'Laps': 3, - 'Bomb Spawning': 0 - }, - preview_texture_name='bigGPreview')) - campaign.addlevel( - _level.Level('Pro Race', - displayname='Pro ${GAME}', - gametype=RaceGame, - settings={ - 'map': 'Big G', - 'Laps': 3, - 'Bomb Spawning': 1000 - }, - preview_texture_name='bigGPreview')) - campaign.addlevel( - _level.Level('Lake Frigid Race', - displayname='${GAME}', - gametype=RaceGame, - settings={ - 'map': 'Lake Frigid', - 'Laps': 6, - 'Mine Spawning': 2000, - 'Bomb Spawning': 0 - }, - preview_texture_name='lakeFrigidPreview')) - campaign.addlevel( - _level.Level('Football', - displayname='${GAME}', - gametype=FootballCoopGame, - settings={'preset': 'tournament'}, - preview_texture_name='footballStadiumPreview')) - campaign.addlevel( - _level.Level('Pro Football', - displayname='Pro ${GAME}', - gametype=FootballCoopGame, - settings={'preset': 'tournament_pro'}, - preview_texture_name='footballStadiumPreview')) - campaign.addlevel( - _level.Level('Runaround', - displayname='${GAME}', - gametype=RunaroundGame, - settings={'preset': 'tournament'}, - preview_texture_name='towerDPreview')) - campaign.addlevel( - _level.Level('Uber Runaround', - displayname='Uber ${GAME}', - gametype=RunaroundGame, - settings={'preset': 'tournament_uber'}, - preview_texture_name='towerDPreview')) - campaign.addlevel( - _level.Level('The Last Stand', - displayname='${GAME}', - gametype=TheLastStandGame, - settings={'preset': 'tournament'}, - preview_texture_name='rampagePreview')) - campaign.addlevel( - _level.Level('Tournament Infinite Onslaught', - displayname='Infinite Onslaught', - gametype=OnslaughtGame, - settings={'preset': 'endless_tournament'}, - preview_texture_name='doomShroomPreview')) - campaign.addlevel( - _level.Level('Tournament Infinite Runaround', - displayname='Infinite Runaround', - gametype=RunaroundGame, - settings={'preset': 'endless_tournament'}, - preview_texture_name='towerDPreview')) - campaign.addlevel( - _level.Level('Target Practice', - displayname='Pro ${GAME}', - gametype=TargetPracticeGame, - settings={}, - preview_texture_name='doomShroomPreview')) - campaign.addlevel( - _level.Level('Target Practice B', - displayname='${GAME}', - gametype=TargetPracticeGame, - settings={ - 'Target Count': 2, - 'Enable Impact Bombs': False, - 'Enable Triple Bombs': False - }, - preview_texture_name='doomShroomPreview')) - campaign.addlevel( - _level.Level('Meteor Shower', - displayname='${GAME}', - gametype=MeteorShowerGame, - settings={}, - preview_texture_name='rampagePreview')) - campaign.addlevel( - _level.Level('Epic Meteor Shower', - displayname='${GAME}', - gametype=MeteorShowerGame, - settings={'Epic Mode': True}, - preview_texture_name='rampagePreview')) - campaign.addlevel( - _level.Level('Easter Egg Hunt', - displayname='${GAME}', - gametype=EasterEggHuntGame, - settings={}, - preview_texture_name='towerDPreview')) - campaign.addlevel( - _level.Level('Pro Easter Egg Hunt', - displayname='Pro ${GAME}', - gametype=EasterEggHuntGame, - settings={'Pro Mode': True}, - preview_texture_name='towerDPreview')) - campaign.addlevel( - _level.Level( - name='Ninja Fight', # (unique id not seen by player) - displayname='${GAME}', # (readable name seen by player) - gametype=NinjaFightGame, - settings={'preset': 'regular'}, - preview_texture_name='courtyardPreview')) - campaign.addlevel( - _level.Level(name='Pro Ninja Fight', - displayname='Pro ${GAME}', - gametype=NinjaFightGame, - settings={'preset': 'pro'}, - preview_texture_name='courtyardPreview')) - register_campaign(campaign) + register_campaign( + Campaign( + 'Challenges', + sequential=False, + levels=[ + Level('Infinite Onslaught', + gametype=OnslaughtGame, + settings={'preset': 'endless'}, + preview_texture_name='doomShroomPreview'), + Level('Infinite Runaround', + gametype=RunaroundGame, + settings={'preset': 'endless'}, + preview_texture_name='towerDPreview'), + Level('Race', + displayname='${GAME}', + gametype=RaceGame, + settings={ + 'map': 'Big G', + 'Laps': 3, + 'Bomb Spawning': 0 + }, + preview_texture_name='bigGPreview'), + Level('Pro Race', + displayname='Pro ${GAME}', + gametype=RaceGame, + settings={ + 'map': 'Big G', + 'Laps': 3, + 'Bomb Spawning': 1000 + }, + preview_texture_name='bigGPreview'), + Level('Lake Frigid Race', + displayname='${GAME}', + gametype=RaceGame, + settings={ + 'map': 'Lake Frigid', + 'Laps': 6, + 'Mine Spawning': 2000, + 'Bomb Spawning': 0 + }, + preview_texture_name='lakeFrigidPreview'), + Level('Football', + displayname='${GAME}', + gametype=FootballCoopGame, + settings={'preset': 'tournament'}, + preview_texture_name='footballStadiumPreview'), + Level('Pro Football', + displayname='Pro ${GAME}', + gametype=FootballCoopGame, + settings={'preset': 'tournament_pro'}, + preview_texture_name='footballStadiumPreview'), + Level('Runaround', + displayname='${GAME}', + gametype=RunaroundGame, + settings={'preset': 'tournament'}, + preview_texture_name='towerDPreview'), + Level('Uber Runaround', + displayname='Uber ${GAME}', + gametype=RunaroundGame, + settings={'preset': 'tournament_uber'}, + preview_texture_name='towerDPreview'), + Level('The Last Stand', + displayname='${GAME}', + gametype=TheLastStandGame, + settings={'preset': 'tournament'}, + preview_texture_name='rampagePreview'), + Level('Tournament Infinite Onslaught', + displayname='Infinite Onslaught', + gametype=OnslaughtGame, + settings={'preset': 'endless_tournament'}, + preview_texture_name='doomShroomPreview'), + Level('Tournament Infinite Runaround', + displayname='Infinite Runaround', + gametype=RunaroundGame, + settings={'preset': 'endless_tournament'}, + preview_texture_name='towerDPreview'), + Level('Target Practice', + displayname='Pro ${GAME}', + gametype=TargetPracticeGame, + settings={}, + preview_texture_name='doomShroomPreview'), + Level('Target Practice B', + displayname='${GAME}', + gametype=TargetPracticeGame, + settings={ + 'Target Count': 2, + 'Enable Impact Bombs': False, + 'Enable Triple Bombs': False + }, + preview_texture_name='doomShroomPreview'), + Level('Meteor Shower', + displayname='${GAME}', + gametype=MeteorShowerGame, + settings={}, + preview_texture_name='rampagePreview'), + Level('Epic Meteor Shower', + displayname='${GAME}', + gametype=MeteorShowerGame, + settings={'Epic Mode': True}, + preview_texture_name='rampagePreview'), + Level('Easter Egg Hunt', + displayname='${GAME}', + gametype=EasterEggHuntGame, + settings={}, + preview_texture_name='towerDPreview'), + Level('Pro Easter Egg Hunt', + displayname='Pro ${GAME}', + gametype=EasterEggHuntGame, + settings={'Pro Mode': True}, + preview_texture_name='towerDPreview'), + Level( + name='Ninja Fight', # (unique id not seen by player) + displayname='${GAME}', # (readable name seen by player) + gametype=NinjaFightGame, + settings={'preset': 'regular'}, + preview_texture_name='courtyardPreview'), + Level(name='Pro Ninja Fight', + displayname='Pro ${GAME}', + gametype=NinjaFightGame, + settings={'preset': 'pro'}, + preview_texture_name='courtyardPreview') + ], + )) diff --git a/assets/src/ba_data/python/ba/_meta.py b/assets/src/ba_data/python/ba/_meta.py index 6fde0598..8b29f9e3 100644 --- a/assets/src/ba_data/python/ba/_meta.py +++ b/assets/src/ba_data/python/ba/_meta.py @@ -42,7 +42,7 @@ class MetadataSubsystem: """ def __init__(self) -> None: - self.metascan: ScanResults | None = None + self.scanresults: ScanResults | None = None self.extra_scan_dirs: list[str] = [] def on_app_running(self) -> None: @@ -56,7 +56,7 @@ class MetadataSubsystem: Should be called only once at launch.""" app = _ba.app - if self.metascan is not None: + if self.scanresults is not None: print('WARNING: meta scan run more than once.') pythondirs = ([app.python_directory_app, app.python_directory_user] + self.extra_scan_dirs) @@ -131,7 +131,7 @@ class MetadataSubsystem: def get_scan_results(self) -> ScanResults: """Return meta scan results; block if the scan is not yet complete.""" - if self.metascan is None: + if self.scanresults is None: print('WARNING: ba.meta.get_scan_results()' ' called before scan completed.' ' This can cause hitches.') @@ -139,12 +139,12 @@ class MetadataSubsystem: # Now wait a bit for the scan to complete. # Eventually error though if it doesn't. starttime = time.time() - while self.metascan is None: + while self.scanresults is None: time.sleep(0.05) if time.time() - starttime > 10.0: raise TimeoutError( 'timeout waiting for meta scan to complete.') - return self.metascan + return self.scanresults def get_game_types(self) -> list[type[ba.GameActivity]]: """Return available game types.""" @@ -204,7 +204,7 @@ class ScanThread(threading.Thread): # We also, however, immediately make results available. # This is because the game thread may be blocked waiting # for them so we can't push a call or we'd get deadlock. - _ba.app.meta.metascan = results + _ba.app.meta.scanresults = results class DirectoryScan: diff --git a/assets/src/ba_data/python/bastd/ui/coop/browser.py b/assets/src/ba_data/python/bastd/ui/coop/browser.py index 9ea7a9d9..90e35fe8 100644 --- a/assets/src/ba_data/python/bastd/ui/coop/browser.py +++ b/assets/src/ba_data/python/bastd/ui/coop/browser.py @@ -6,7 +6,6 @@ from __future__ import annotations -import copy from typing import TYPE_CHECKING import _ba @@ -18,6 +17,8 @@ from bastd.ui.store.browser import StoreBrowserWindow if TYPE_CHECKING: from typing import Any + from bastd.ui.coop.tournamentbutton import TournamentButton + class CoopBrowserWindow(ba.Window): """Window for browsing co-op levels/games/etc.""" @@ -175,8 +176,6 @@ class CoopBrowserWindow(ba.Window): 'Selected Coop Campaign Level', None)) self._selected_custom_level = (cfg.get('Selected Coop Custom Level', None)) - self._selected_challenge_level = (cfg.get( - 'Selected Coop Challenge Level', None)) # Don't want initial construction affecting our last-selected. self._do_selection_callbacks = False @@ -283,6 +282,7 @@ class CoopBrowserWindow(ba.Window): import bastd.ui.tournamentscores as _unused8 import bastd.ui.tournamententry as _unused9 import bastd.ui.play as _unused10 + import bastd.ui.coop.tournamentbutton as _unused11 def _update(self) -> None: # Do nothing if we've somehow outlived our actual UI. @@ -335,21 +335,21 @@ class CoopBrowserWindow(ba.Window): # Decrement time on our tournament buttons. ads_enabled = _ba.have_incentivized_ad() for tbtn in self._tournament_buttons: - tbtn['time_remaining'] = max(0, tbtn['time_remaining'] - 1) - if tbtn['time_remaining_value_text'] is not None: + tbtn.time_remaining = max(0, tbtn.time_remaining - 1) + if tbtn.time_remaining_value_text is not None: ba.textwidget( - edit=tbtn['time_remaining_value_text'], - text=ba.timestring(tbtn['time_remaining'], + edit=tbtn.time_remaining_value_text, + text=ba.timestring(tbtn.time_remaining, centi=False, suppress_format_warning=True) if - (tbtn['has_time_remaining'] + (tbtn.has_time_remaining and self._tourney_data_up_to_date) else '-') # Also adjust the ad icon visibility. - if tbtn.get('allow_ads', False) and _ba.has_video_ads(): - ba.imagewidget(edit=tbtn['entry_fee_ad_image'], + if tbtn.allow_ads and _ba.has_video_ads(): + ba.imagewidget(edit=tbtn.entry_fee_ad_image, opacity=1.0 if ads_enabled else 0.25) - ba.textwidget(edit=tbtn['entry_fee_text_remaining'], + ba.textwidget(edit=tbtn.entry_fee_text_remaining, color=(0.6, 0.6, 0.6, 1 if ads_enabled else 0.2)) self._update_hard_mode_lock_image() @@ -363,232 +363,21 @@ class CoopBrowserWindow(ba.Window): ba.print_exception('Error updating campaign lock.') def _update_for_data(self, data: list[dict[str, Any]] | None) -> None: - # pylint: disable=too-many-statements - # pylint: disable=too-many-locals - # pylint: disable=too-many-branches - from ba.internal import getcampaign, get_tournament_prize_strings # If the number of tournaments or challenges in the data differs from # our current arrangement, refresh with the new number. if ((data is None and self._tournament_button_count != 0) or (data is not None and (len(data) != self._tournament_button_count))): - self._tournament_button_count = len( - data) if data is not None else 0 + self._tournament_button_count = (len(data) + if data is not None else 0) ba.app.config['Tournament Rows'] = self._tournament_button_count self._refresh() # Update all of our tourney buttons based on whats in data. for i, tbtn in enumerate(self._tournament_buttons): assert data is not None - entry: dict[str, Any] = data[i] - prize_y_offs = (34 if 'prizeRange3' in entry else - 20 if 'prizeRange2' in entry else 12) - x_offs = 90 - - # This seems to be a false alarm. - # pylint: disable=unbalanced-tuple-unpacking - pr1, pv1, pr2, pv2, pr3, pv3 = ( - get_tournament_prize_strings(entry)) - # pylint: enable=unbalanced-tuple-unpacking - enabled = 'requiredLeague' not in entry - ba.buttonwidget(edit=tbtn['button'], - color=(0.5, 0.7, 0.2) if enabled else - (0.5, 0.5, 0.5)) - ba.imagewidget(edit=tbtn['lock_image'], - opacity=0.0 if enabled else 1.0) - ba.textwidget(edit=tbtn['prize_range_1_text'], - text='-' if pr1 == '' else pr1, - position=(tbtn['button_x'] + 365 + x_offs, - tbtn['button_y'] + tbtn['button_scale_y'] - - 93 + prize_y_offs)) - - # We want to draw values containing tickets a bit smaller - # (scratch that; we now draw medals a bit bigger). - ticket_char = ba.charstr(ba.SpecialChar.TICKET_BACKING) - prize_value_scale_large = 1.0 - prize_value_scale_small = 1.0 - - ba.textwidget(edit=tbtn['prize_value_1_text'], - text='-' if pv1 == '' else pv1, - scale=prize_value_scale_large if ticket_char - not in pv1 else prize_value_scale_small, - position=(tbtn['button_x'] + 380 + x_offs, - tbtn['button_y'] + tbtn['button_scale_y'] - - 93 + prize_y_offs)) - - ba.textwidget(edit=tbtn['prize_range_2_text'], - text=pr2, - position=(tbtn['button_x'] + 365 + x_offs, - tbtn['button_y'] + tbtn['button_scale_y'] - - 93 - 45 + prize_y_offs)) - ba.textwidget(edit=tbtn['prize_value_2_text'], - text=pv2, - scale=prize_value_scale_large if ticket_char - not in pv2 else prize_value_scale_small, - position=(tbtn['button_x'] + 380 + x_offs, - tbtn['button_y'] + tbtn['button_scale_y'] - - 93 - 45 + prize_y_offs)) - - ba.textwidget(edit=tbtn['prize_range_3_text'], - text=pr3, - position=(tbtn['button_x'] + 365 + x_offs, - tbtn['button_y'] + tbtn['button_scale_y'] - - 93 - 90 + prize_y_offs)) - ba.textwidget(edit=tbtn['prize_value_3_text'], - text=pv3, - scale=prize_value_scale_large if ticket_char - not in pv3 else prize_value_scale_small, - position=(tbtn['button_x'] + 380 + x_offs, - tbtn['button_y'] + tbtn['button_scale_y'] - - 93 - 90 + prize_y_offs)) - - leader_name = '-' - leader_score: str | ba.Lstr = '-' - if entry['scores']: - score = tbtn['leader'] = copy.deepcopy(entry['scores'][0]) - leader_name = score[1] - leader_score = (ba.timestring( - score[0] * 10, - centi=True, - timeformat=ba.TimeFormat.MILLISECONDS, - suppress_format_warning=True) if entry['scoreType'] - == 'time' else str(score[0])) - else: - tbtn['leader'] = None - - ba.textwidget(edit=tbtn['current_leader_name_text'], - text=ba.Lstr(value=leader_name)) - self._tournament_leader_score_type = (entry['scoreType']) - ba.textwidget(edit=tbtn['current_leader_score_text'], - text=leader_score) - ba.buttonwidget(edit=tbtn['more_scores_button'], - label=ba.Lstr(resource=self._r + '.seeMoreText')) - out_of_time_text: str | ba.Lstr = ( - '-' if 'totalTime' not in entry else ba.Lstr( - resource=self._r + '.ofTotalTimeText', - subs=[('${TOTAL}', - ba.timestring(entry['totalTime'], - centi=False, - suppress_format_warning=True))])) - ba.textwidget(edit=tbtn['time_remaining_out_of_text'], - text=out_of_time_text) - - tbtn['time_remaining'] = entry['timeRemaining'] - tbtn['has_time_remaining'] = entry is not None - tbtn['tournament_id'] = entry['tournamentID'] - tbtn['required_league'] = (None if 'requiredLeague' not in entry - else entry['requiredLeague']) - - game = ba.app.accounts_v1.tournament_info[ - tbtn['tournament_id']]['game'] - - if game is None: - ba.textwidget(edit=tbtn['button_text'], text='-') - ba.imagewidget(edit=tbtn['image'], - texture=ba.gettexture('black'), - opacity=0.2) - else: - campaignname, levelname = game.split(':') - campaign = getcampaign(campaignname) - max_players = ba.app.accounts_v1.tournament_info[ - tbtn['tournament_id']]['maxPlayers'] - txt = ba.Lstr( - value='${A} ${B}', - subs=[('${A}', campaign.getlevel(levelname).displayname), - ('${B}', - ba.Lstr(resource='playerCountAbbreviatedText', - subs=[('${COUNT}', str(max_players))]))]) - ba.textwidget(edit=tbtn['button_text'], text=txt) - ba.imagewidget( - edit=tbtn['image'], - texture=campaign.getlevel(levelname).get_preview_texture(), - opacity=1.0 if enabled else 0.5) - - fee = entry['fee'] - - if fee is None: - fee_var = None - elif fee == 4: - fee_var = 'price.tournament_entry_4' - elif fee == 3: - fee_var = 'price.tournament_entry_3' - elif fee == 2: - fee_var = 'price.tournament_entry_2' - elif fee == 1: - fee_var = 'price.tournament_entry_1' - else: - if fee != 0: - print('Unknown fee value:', fee) - fee_var = 'price.tournament_entry_0' - - tbtn['allow_ads'] = allow_ads = entry['allowAds'] - - final_fee: int | None = (None if fee_var is None else - _ba.get_v1_account_misc_read_val( - fee_var, '?')) - - final_fee_str: str | ba.Lstr - if fee_var is None: - final_fee_str = '' - else: - if final_fee == 0: - final_fee_str = ba.Lstr( - resource='getTicketsWindow.freeText') - else: - final_fee_str = ( - ba.charstr(ba.SpecialChar.TICKET_BACKING) + - str(final_fee)) - - ad_tries_remaining = ba.app.accounts_v1.tournament_info[ - tbtn['tournament_id']]['adTriesRemaining'] - free_tries_remaining = ba.app.accounts_v1.tournament_info[ - tbtn['tournament_id']]['freeTriesRemaining'] - - # Now, if this fee allows ads and we support video ads, show - # the 'or ad' version. - if allow_ads and _ba.has_video_ads(): - ads_enabled = _ba.have_incentivized_ad() - ba.imagewidget(edit=tbtn['entry_fee_ad_image'], - opacity=1.0 if ads_enabled else 0.25) - or_text = ba.Lstr(resource='orText', - subs=[('${A}', ''), - ('${B}', '')]).evaluate().strip() - ba.textwidget(edit=tbtn['entry_fee_text_or'], text=or_text) - ba.textwidget( - edit=tbtn['entry_fee_text_top'], - position=(tbtn['button_x'] + 360, - tbtn['button_y'] + tbtn['button_scale_y'] - 60), - scale=1.3, - text=final_fee_str) - - # Possibly show number of ad-plays remaining. - ba.textwidget( - edit=tbtn['entry_fee_text_remaining'], - position=(tbtn['button_x'] + 360, - tbtn['button_y'] + tbtn['button_scale_y'] - 146), - text='' if ad_tries_remaining in [None, 0] else - ('' + str(ad_tries_remaining)), - color=(0.6, 0.6, 0.6, 1 if ads_enabled else 0.2)) - else: - ba.imagewidget(edit=tbtn['entry_fee_ad_image'], opacity=0.0) - ba.textwidget(edit=tbtn['entry_fee_text_or'], text='') - ba.textwidget( - edit=tbtn['entry_fee_text_top'], - position=(tbtn['button_x'] + 360, - tbtn['button_y'] + tbtn['button_scale_y'] - 80), - scale=1.3, - text=final_fee_str) - - # Possibly show number of free-plays remaining. - ba.textwidget( - edit=tbtn['entry_fee_text_remaining'], - position=(tbtn['button_x'] + 360, - tbtn['button_y'] + tbtn['button_scale_y'] - 100), - text=('' if (free_tries_remaining in [None, 0] - or final_fee != 0) else - ('' + str(free_tries_remaining))), - color=(0.6, 0.6, 0.6, 1)) + tbtn.update_for_data(data[i]) def _on_tournament_query_response(self, data: dict[str, Any] | None) -> None: @@ -715,10 +504,13 @@ class CoopBrowserWindow(ba.Window): items = [ campaignname + ':Onslaught Training', campaignname + ':Rookie Onslaught', - campaignname + ':Rookie Football', campaignname + ':Pro Onslaught', - campaignname + ':Pro Football', campaignname + ':Pro Runaround', - campaignname + ':Uber Onslaught', campaignname + ':Uber Football', - campaignname + ':Uber Runaround' + campaignname + ':Rookie Football', + campaignname + ':Pro Onslaught', + campaignname + ':Pro Football', + campaignname + ':Pro Runaround', + campaignname + ':Uber Onslaught', + campaignname + ':Uber Football', + campaignname + ':Uber Runaround', ] items += [campaignname + ':The Last Stand'] if self._selected_campaign_level is None: @@ -772,6 +564,7 @@ class CoopBrowserWindow(ba.Window): # pylint: disable=too-many-locals # pylint: disable=cyclic-import from bastd.ui.coop.gamebutton import GameButton + from bastd.ui.coop.tournamentbutton import TournamentButton # (Re)create the sub-container if need be. if self._subcontainer is not None: @@ -839,7 +632,7 @@ class CoopBrowserWindow(ba.Window): # Tournaments - self._tournament_buttons: list[dict[str, Any]] = [] + self._tournament_buttons: list[TournamentButton] = [] v -= 53 # FIXME shouldn't use hard-coded strings here. @@ -919,7 +712,12 @@ class CoopBrowserWindow(ba.Window): v2 = -2 is_last_sel = True self._tournament_buttons.append( - self._tournament_button(sc2, h, v2, is_last_sel)) + TournamentButton(sc2, + h, + v2, + is_last_sel, + on_pressed=ba.WeakCall( + self.run_tournament))) v -= 200 # Custom Games. @@ -949,7 +747,8 @@ class CoopBrowserWindow(ba.Window): if _ba.get_v1_account_misc_read_val( 'easter', False) or _ba.get_purchased('games.easter_egg_hunt'): items = [ - 'Challenges:Easter Egg Hunt', 'Challenges:Pro Easter Egg Hunt' + 'Challenges:Easter Egg Hunt', + 'Challenges:Pro Easter Egg Hunt', ] + items # add all custom user levels here.. @@ -995,19 +794,19 @@ class CoopBrowserWindow(ba.Window): for i, tbutton in enumerate(self._tournament_buttons): ba.widget( - edit=tbutton['button'], + edit=tbutton.button, up_widget=self._tournament_info_button - if i == 0 else self._tournament_buttons[i - 1]['button'], - down_widget=self._tournament_buttons[(i + 1)]['button'] + if i == 0 else self._tournament_buttons[i - 1].button, + down_widget=self._tournament_buttons[(i + 1)].button if i + 1 < len(self._tournament_buttons) else custom_h_scroll) ba.widget( - edit=tbutton['more_scores_button'], + edit=tbutton.more_scores_button, down_widget=self._tournament_buttons[( - i + 1)]['current_leader_name_text'] + i + 1)].current_leader_name_text if i + 1 < len(self._tournament_buttons) else custom_h_scroll) - ba.widget(edit=tbutton['current_leader_name_text'], + ba.widget(edit=tbutton.current_leader_name_text, up_widget=self._tournament_info_button if i == 0 else - self._tournament_buttons[i - 1]['more_scores_button']) + self._tournament_buttons[i - 1].more_scores_button) for btn in self._custom_buttons: try: @@ -1037,314 +836,6 @@ class CoopBrowserWindow(ba.Window): def _enable_selectable_callback(self) -> None: self._do_selection_callbacks = True - def _tournament_button(self, parent: ba.Widget, x: float, y: float, - select: bool) -> dict[str, Any]: - sclx = 300 - scly = 195.0 - data: dict[str, Any] = { - 'tournament_id': None, - 'time_remaining': 0, - 'has_time_remaining': False, - 'leader': None - } - data['button'] = btn = ba.buttonwidget( - parent=parent, - position=(x + 23, y + 4), - size=(sclx, scly), - label='', - button_type='square', - autoselect=True, - on_activate_call=lambda: self.run(None, tournament_button=data)) - ba.widget(edit=btn, - show_buffer_bottom=50, - show_buffer_top=50, - show_buffer_left=400, - show_buffer_right=200) - if select: - ba.containerwidget(edit=parent, - selected_child=btn, - visible_child=btn) - image_width = sclx * 0.85 * 0.75 - - data['image'] = ba.imagewidget( - parent=parent, - draw_controller=btn, - position=(x + 21 + sclx * 0.5 - image_width * 0.5, y + scly - 150), - size=(image_width, image_width * 0.5), - model_transparent=self.lsbt, - model_opaque=self.lsbo, - texture=ba.gettexture('black'), - opacity=0.2, - mask_texture=ba.gettexture('mapPreviewMask')) - - data['lock_image'] = ba.imagewidget( - parent=parent, - draw_controller=btn, - position=(x + 21 + sclx * 0.5 - image_width * 0.25, - y + scly - 150), - size=(image_width * 0.5, image_width * 0.5), - texture=ba.gettexture('lock'), - opacity=0.0) - - data['button_text'] = ba.textwidget(parent=parent, - draw_controller=btn, - position=(x + 20 + sclx * 0.5, - y + scly - 35), - size=(0, 0), - h_align='center', - text='-', - v_align='center', - maxwidth=sclx * 0.76, - scale=0.85, - color=(0.8, 1.0, 0.8, 1.0)) - - header_color = (0.43, 0.4, 0.5, 1) - value_color = (0.6, 0.6, 0.6, 1) - - x_offs = 0 - ba.textwidget(parent=parent, - draw_controller=btn, - position=(x + 360, y + scly - 20), - size=(0, 0), - h_align='center', - text=ba.Lstr(resource=self._r + '.entryFeeText'), - v_align='center', - maxwidth=100, - scale=0.9, - color=header_color, - flatness=1.0) - - data['entry_fee_text_top'] = ba.textwidget(parent=parent, - draw_controller=btn, - position=(x + 360, - y + scly - 60), - size=(0, 0), - h_align='center', - text='-', - v_align='center', - maxwidth=60, - scale=1.3, - color=value_color, - flatness=1.0) - data['entry_fee_text_or'] = ba.textwidget(parent=parent, - draw_controller=btn, - position=(x + 360, - y + scly - 90), - size=(0, 0), - h_align='center', - text='', - v_align='center', - maxwidth=60, - scale=0.5, - color=value_color, - flatness=1.0) - data['entry_fee_text_remaining'] = ba.textwidget(parent=parent, - draw_controller=btn, - position=(x + 360, y + - scly - 90), - size=(0, 0), - h_align='center', - text='', - v_align='center', - maxwidth=60, - scale=0.5, - color=value_color, - flatness=1.0) - - data['entry_fee_ad_image'] = ba.imagewidget( - parent=parent, - size=(40, 40), - draw_controller=btn, - position=(x + 360 - 20, y + scly - 140), - opacity=0.0, - texture=ba.gettexture('tv')) - - x_offs += 50 - - ba.textwidget(parent=parent, - draw_controller=btn, - position=(x + 447 + x_offs, y + scly - 20), - size=(0, 0), - h_align='center', - text=ba.Lstr(resource=self._r + '.prizesText'), - v_align='center', - maxwidth=130, - scale=0.9, - color=header_color, - flatness=1.0) - - data['button_x'] = x - data['button_y'] = y - data['button_scale_y'] = scly - - xo2 = 0 - prize_value_scale = 1.5 - - data['prize_range_1_text'] = ba.textwidget( - parent=parent, - draw_controller=btn, - position=(x + 355 + xo2 + x_offs, y + scly - 93), - size=(0, 0), - h_align='right', - v_align='center', - maxwidth=50, - text='-', - scale=0.8, - color=header_color, - flatness=1.0) - data['prize_value_1_text'] = ba.textwidget( - parent=parent, - draw_controller=btn, - position=(x + 380 + xo2 + x_offs, y + scly - 93), - size=(0, 0), - h_align='left', - text='-', - v_align='center', - maxwidth=100, - scale=prize_value_scale, - color=value_color, - flatness=1.0) - - data['prize_range_2_text'] = ba.textwidget( - parent=parent, - draw_controller=btn, - position=(x + 355 + xo2 + x_offs, y + scly - 93), - size=(0, 0), - h_align='right', - v_align='center', - maxwidth=50, - scale=0.8, - color=header_color, - flatness=1.0) - data['prize_value_2_text'] = ba.textwidget( - parent=parent, - draw_controller=btn, - position=(x + 380 + xo2 + x_offs, y + scly - 93), - size=(0, 0), - h_align='left', - text='', - v_align='center', - maxwidth=100, - scale=prize_value_scale, - color=value_color, - flatness=1.0) - - data['prize_range_3_text'] = ba.textwidget( - parent=parent, - draw_controller=btn, - position=(x + 355 + xo2 + x_offs, y + scly - 93), - size=(0, 0), - h_align='right', - v_align='center', - maxwidth=50, - scale=0.8, - color=header_color, - flatness=1.0) - data['prize_value_3_text'] = ba.textwidget( - parent=parent, - draw_controller=btn, - position=(x + 380 + xo2 + x_offs, y + scly - 93), - size=(0, 0), - h_align='left', - text='', - v_align='center', - maxwidth=100, - scale=prize_value_scale, - color=value_color, - flatness=1.0) - - ba.textwidget(parent=parent, - draw_controller=btn, - position=(x + 620 + x_offs, y + scly - 20), - size=(0, 0), - h_align='center', - text=ba.Lstr(resource=self._r + '.currentBestText'), - v_align='center', - maxwidth=180, - scale=0.9, - color=header_color, - flatness=1.0) - data['current_leader_name_text'] = ba.textwidget( - parent=parent, - draw_controller=btn, - position=(x + 620 + x_offs - (170 / 1.4) * 0.5, - y + scly - 60 - 40 * 0.5), - selectable=True, - click_activate=True, - autoselect=True, - on_activate_call=lambda: self._show_leader(tournament_button=data), - size=(170 / 1.4, 40), - h_align='center', - text='-', - v_align='center', - maxwidth=170, - scale=1.4, - color=value_color, - flatness=1.0) - data['current_leader_score_text'] = ba.textwidget( - parent=parent, - draw_controller=btn, - position=(x + 620 + x_offs, y + scly - 113 + 10), - size=(0, 0), - h_align='center', - text='-', - v_align='center', - maxwidth=170, - scale=1.8, - color=value_color, - flatness=1.0) - - data['more_scores_button'] = ba.buttonwidget( - parent=parent, - position=(x + 620 + x_offs - 60, y + scly - 50 - 125), - color=(0.5, 0.5, 0.6), - textcolor=(0.7, 0.7, 0.8), - label='-', - size=(120, 40), - autoselect=True, - up_widget=data['current_leader_name_text'], - text_scale=0.6, - on_activate_call=lambda: self._show_scores(tournament_button=data)) - ba.widget(edit=data['current_leader_name_text'], - down_widget=data['more_scores_button']) - - ba.textwidget(parent=parent, - draw_controller=btn, - position=(x + 820 + x_offs, y + scly - 20), - size=(0, 0), - h_align='center', - text=ba.Lstr(resource=self._r + '.timeRemainingText'), - v_align='center', - maxwidth=180, - scale=0.9, - color=header_color, - flatness=1.0) - data['time_remaining_value_text'] = ba.textwidget( - parent=parent, - draw_controller=btn, - position=(x + 820 + x_offs, y + scly - 68), - size=(0, 0), - h_align='center', - text='-', - v_align='center', - maxwidth=180, - scale=2.0, - color=value_color, - flatness=1.0) - data['time_remaining_out_of_text'] = ba.textwidget( - parent=parent, - draw_controller=btn, - position=(x + 820 + x_offs, y + scly - 110), - size=(0, 0), - h_align='center', - text='-', - v_align='center', - maxwidth=120, - scale=0.72, - color=(0.4, 0.4, 0.5), - flatness=1.0) - return data - def _switch_to_league_rankings(self) -> None: # pylint: disable=cyclic-import from bastd.ui.account import show_sign_in_prompt @@ -1378,100 +869,20 @@ class CoopBrowserWindow(ba.Window): show_tab=show_tab, back_location='CoopBrowserWindow').get_root_widget()) - def _show_leader(self, tournament_button: dict[str, Any]) -> None: - # pylint: disable=cyclic-import - from bastd.ui.account.viewer import AccountViewerWindow - tournament_id = tournament_button['tournament_id'] - - # FIXME: This assumes a single player entry in leader; should expand - # this to work with multiple. - if tournament_id is None or tournament_button['leader'] is None or len( - tournament_button['leader'][2]) != 1: - ba.playsound(ba.getsound('error')) - return - ba.playsound(ba.getsound('swish')) - AccountViewerWindow( - account_id=tournament_button['leader'][2][0].get('a', None), - profile_id=tournament_button['leader'][2][0].get('p', None), - position=tournament_button['current_leader_name_text']. - get_screen_space_center()) - - def _show_scores(self, tournament_button: dict[str, Any]) -> None: - # pylint: disable=cyclic-import - from bastd.ui.tournamentscores import TournamentScoresWindow - tournament_id = tournament_button['tournament_id'] - if tournament_id is None: - ba.playsound(ba.getsound('error')) - return - - TournamentScoresWindow( - tournament_id=tournament_id, - position=tournament_button['more_scores_button']. - get_screen_space_center()) - def is_tourney_data_up_to_date(self) -> bool: """Return whether our tourney data is up to date.""" return self._tourney_data_up_to_date - def run(self, - game: str | None, - tournament_button: dict[str, Any] | None = None) -> None: + def run_game(self, game: str) -> None: """Run the provided game.""" # pylint: disable=too-many-branches - # pylint: disable=too-many-statements - # pylint: disable=too-many-return-statements # pylint: disable=cyclic-import from bastd.ui.confirm import ConfirmWindow - from bastd.ui.tournamententry import TournamentEntryWindow from bastd.ui.purchase import PurchaseWindow from bastd.ui.account import show_sign_in_prompt args: dict[str, Any] = {} - # Do a bit of pre-flight for tournament options. - if tournament_button is not None: - - if _ba.get_v1_account_state() != 'signed_in': - show_sign_in_prompt() - return - - if not self._tourney_data_up_to_date: - ba.screenmessage( - ba.Lstr(resource='tournamentCheckingStateText'), - color=(1, 1, 0)) - ba.playsound(ba.getsound('error')) - return - - if tournament_button['tournament_id'] is None: - ba.screenmessage( - ba.Lstr(resource='internal.unavailableNoConnectionText'), - color=(1, 0, 0)) - ba.playsound(ba.getsound('error')) - return - - if tournament_button['required_league'] is not None: - ba.screenmessage(ba.Lstr( - resource='league.tournamentLeagueText', - subs=[ - ('${NAME}', - ba.Lstr( - translate=('leagueNames', - tournament_button['required_league']))) - ]), - color=(1, 0, 0)) - ba.playsound(ba.getsound('error')) - return - - if tournament_button['time_remaining'] <= 0: - ba.screenmessage(ba.Lstr(resource='tournamentEndedText'), - color=(1, 0, 0)) - ba.playsound(ba.getsound('error')) - return - - # Game is whatever the tournament tells us it is. - game = ba.app.accounts_v1.tournament_info[ - tournament_button['tournament_id']]['game'] - - if tournament_button is None and game == 'Easy:The Last Stand': + if game == 'Easy:The Last Stand': ConfirmWindow(ba.Lstr(resource='difficultyHardUnlockOnlyText', fallback_resource='difficultyHardOnlyText'), cancel_button=False, @@ -1479,12 +890,11 @@ class CoopBrowserWindow(ba.Window): height=130) return - # Infinite onslaught/runaround require pro; bring up a store link if - # need be. - if tournament_button is None and game in ( - 'Challenges:Infinite Runaround', - 'Challenges:Infinite Onslaught' - ) and not ba.app.accounts_v1.have_pro(): + # Infinite onslaught/runaround require pro; bring up a store link + # if need be. + if game in ('Challenges:Infinite Runaround', + 'Challenges:Infinite Onslaught' + ) and not ba.app.accounts_v1.have_pro(): if _ba.get_v1_account_state() != 'signed_in': show_sign_in_prompt() else: @@ -1495,7 +905,8 @@ class CoopBrowserWindow(ba.Window): if game in ['Challenges:Meteor Shower']: required_purchase = 'games.meteor_shower' elif game in [ - 'Challenges:Target Practice', 'Challenges:Target Practice B' + 'Challenges:Target Practice', + 'Challenges:Target Practice B', ]: required_purchase = 'games.target_practice' elif game in ['Challenges:Ninja Fight']: @@ -1503,13 +914,14 @@ class CoopBrowserWindow(ba.Window): elif game in ['Challenges:Pro Ninja Fight']: required_purchase = 'games.ninja_fight' elif game in [ - 'Challenges:Easter Egg Hunt', 'Challenges:Pro Easter Egg Hunt' + 'Challenges:Easter Egg Hunt', + 'Challenges:Pro Easter Egg Hunt', ]: required_purchase = 'games.easter_egg_hunt' else: required_purchase = None - if (tournament_button is None and required_purchase is not None + if (required_purchase is not None and not _ba.get_purchased(required_purchase)): if _ba.get_v1_account_state() != 'signed_in': show_sign_in_prompt() @@ -1519,17 +931,57 @@ class CoopBrowserWindow(ba.Window): self._save_state() - # For tournaments, we pop up the entry window. - if tournament_button is not None: - TournamentEntryWindow( - tournament_id=tournament_button['tournament_id'], - position=tournament_button['button'].get_screen_space_center()) - else: - # Otherwise just dive right in. - assert game is not None - if ba.app.launch_coop_game(game, args=args): - ba.containerwidget(edit=self._root_widget, - transition='out_left') + if ba.app.launch_coop_game(game, args=args): + ba.containerwidget(edit=self._root_widget, transition='out_left') + + def run_tournament(self, tournament_button: TournamentButton) -> None: + """Run the provided tournament game.""" + from bastd.ui.account import show_sign_in_prompt + from bastd.ui.tournamententry import TournamentEntryWindow + + if _ba.get_v1_account_state() != 'signed_in': + show_sign_in_prompt() + return + + if not self._tourney_data_up_to_date: + ba.screenmessage(ba.Lstr(resource='tournamentCheckingStateText'), + color=(1, 1, 0)) + ba.playsound(ba.getsound('error')) + return + + if tournament_button.tournament_id is None: + ba.screenmessage( + ba.Lstr(resource='internal.unavailableNoConnectionText'), + color=(1, 0, 0)) + ba.playsound(ba.getsound('error')) + return + + if tournament_button.required_league is not None: + ba.screenmessage( + ba.Lstr( + resource='league.tournamentLeagueText', + subs=[('${NAME}', + ba.Lstr( + translate=('leagueNames', + tournament_button.required_league))) + ]), + color=(1, 0, 0), + ) + ba.playsound(ba.getsound('error')) + return + + if tournament_button.time_remaining <= 0: + ba.screenmessage(ba.Lstr(resource='tournamentEndedText'), + color=(1, 0, 0)) + ba.playsound(ba.getsound('error')) + return + + self._save_state() + + assert tournament_button.tournament_id is not None + TournamentEntryWindow( + tournament_id=tournament_button.tournament_id, + position=tournament_button.button.get_screen_space_center()) def _back(self) -> None: # pylint: disable=cyclic-import @@ -1542,24 +994,6 @@ class CoopBrowserWindow(ba.Window): ba.app.ui.set_main_menu_window( PlayWindow(transition='in_left').get_root_widget()) - def _restore_state(self) -> None: - try: - sel_name = ba.app.ui.window_states.get(type(self), - {}).get('sel_name') - if sel_name == 'Back': - sel = self._back_button - elif sel_name == 'Scroll': - sel = self._scrollwidget - elif sel_name == 'PowerRanking': - sel = self._league_rank_button_widget - elif sel_name == 'Store': - sel = self._store_button_widget - else: - sel = self._scrollwidget - ba.containerwidget(edit=self._root_widget, selected_child=sel) - except Exception: - ba.print_exception(f'Error restoring state for {self}.') - def _save_state(self) -> None: cfg = ba.app.config try: @@ -1580,16 +1014,31 @@ class CoopBrowserWindow(ba.Window): cfg['Selected Coop Row'] = self._selected_row cfg['Selected Coop Custom Level'] = self._selected_custom_level - cfg['Selected Coop Challenge Level'] = self._selected_challenge_level cfg['Selected Coop Campaign Level'] = self._selected_campaign_level cfg.commit() + def _restore_state(self) -> None: + try: + sel_name = ba.app.ui.window_states.get(type(self), + {}).get('sel_name') + if sel_name == 'Back': + sel = self._back_button + elif sel_name == 'Scroll': + sel = self._scrollwidget + elif sel_name == 'PowerRanking': + sel = self._league_rank_button_widget + elif sel_name == 'Store': + sel = self._store_button_widget + else: + sel = self._scrollwidget + ba.containerwidget(edit=self._root_widget, selected_child=sel) + except Exception: + ba.print_exception(f'Error restoring state for {self}.') + def sel_change(self, row: str, game: str) -> None: """(internal)""" if self._do_selection_callbacks: if row == 'custom': self._selected_custom_level = game - if row == 'challenges': - self._selected_challenge_level = game elif row == 'campaign': self._selected_campaign_level = game diff --git a/assets/src/ba_data/python/bastd/ui/coop/gamebutton.py b/assets/src/ba_data/python/bastd/ui/coop/gamebutton.py index 40ff1cff..fb819f32 100644 --- a/assets/src/ba_data/python/bastd/ui/coop/gamebutton.py +++ b/assets/src/ba_data/python/bastd/ui/coop/gamebutton.py @@ -55,7 +55,7 @@ class GameButton: position=(x + 23, y + 4), size=(sclx, scly), label='', - on_activate_call=ba.Call(window.run, game), + on_activate_call=ba.Call(window.run_game, game), button_type='square', autoselect=True, on_select_call=ba.Call(window.sel_change, row, game)) diff --git a/assets/src/ba_data/python/bastd/ui/coop/tournamentbutton.py b/assets/src/ba_data/python/bastd/ui/coop/tournamentbutton.py new file mode 100644 index 00000000..f443ef23 --- /dev/null +++ b/assets/src/ba_data/python/bastd/ui/coop/tournamentbutton.py @@ -0,0 +1,561 @@ +# Released under the MIT License. See LICENSE for details. +# +"""Defines button for co-op games.""" + +from __future__ import annotations + +from typing import TYPE_CHECKING +import copy + +import ba +import _ba + +if TYPE_CHECKING: + from typing import Any, Callable + + +class TournamentButton: + """Button showing a tournament in coop window.""" + + def __init__(self, parent: ba.Widget, x: float, y: float, select: bool, + on_pressed: Callable[[TournamentButton], None]) -> None: + self._r = 'coopSelectWindow' + sclx = 300 + scly = 195.0 + self.on_pressed = on_pressed + self.lsbt = ba.getmodel('level_select_button_transparent') + self.lsbo = ba.getmodel('level_select_button_opaque') + self.allow_ads = False + self.tournament_id: str | None = None + self.time_remaining: int = 0 + self.has_time_remaining: bool = False + self.leader: Any = None + self.required_league: str | None = None + self.button = btn = ba.buttonwidget( + parent=parent, + position=(x + 23, y + 4), + size=(sclx, scly), + label='', + button_type='square', + autoselect=True, + # on_activate_call=lambda: self.run(None, tournament_button=data) + on_activate_call=ba.WeakCall(self._pressed)) + ba.widget(edit=btn, + show_buffer_bottom=50, + show_buffer_top=50, + show_buffer_left=400, + show_buffer_right=200) + if select: + ba.containerwidget(edit=parent, + selected_child=btn, + visible_child=btn) + image_width = sclx * 0.85 * 0.75 + + self.image = ba.imagewidget( + parent=parent, + draw_controller=btn, + position=(x + 21 + sclx * 0.5 - image_width * 0.5, y + scly - 150), + size=(image_width, image_width * 0.5), + model_transparent=self.lsbt, + model_opaque=self.lsbo, + texture=ba.gettexture('black'), + opacity=0.2, + mask_texture=ba.gettexture('mapPreviewMask')) + + self.lock_image = ba.imagewidget( + parent=parent, + draw_controller=btn, + position=(x + 21 + sclx * 0.5 - image_width * 0.25, + y + scly - 150), + size=(image_width * 0.5, image_width * 0.5), + texture=ba.gettexture('lock'), + opacity=0.0) + + self.button_text = ba.textwidget(parent=parent, + draw_controller=btn, + position=(x + 20 + sclx * 0.5, + y + scly - 35), + size=(0, 0), + h_align='center', + text='-', + v_align='center', + maxwidth=sclx * 0.76, + scale=0.85, + color=(0.8, 1.0, 0.8, 1.0)) + + header_color = (0.43, 0.4, 0.5, 1) + value_color = (0.6, 0.6, 0.6, 1) + + x_offs = 0 + ba.textwidget(parent=parent, + draw_controller=btn, + position=(x + 360, y + scly - 20), + size=(0, 0), + h_align='center', + text=ba.Lstr(resource=self._r + '.entryFeeText'), + v_align='center', + maxwidth=100, + scale=0.9, + color=header_color, + flatness=1.0) + + self.entry_fee_text_top = ba.textwidget(parent=parent, + draw_controller=btn, + position=(x + 360, + y + scly - 60), + size=(0, 0), + h_align='center', + text='-', + v_align='center', + maxwidth=60, + scale=1.3, + color=value_color, + flatness=1.0) + self.entry_fee_text_or = ba.textwidget(parent=parent, + draw_controller=btn, + position=(x + 360, + y + scly - 90), + size=(0, 0), + h_align='center', + text='', + v_align='center', + maxwidth=60, + scale=0.5, + color=value_color, + flatness=1.0) + self.entry_fee_text_remaining = ba.textwidget(parent=parent, + draw_controller=btn, + position=(x + 360, + y + scly - 90), + size=(0, 0), + h_align='center', + text='', + v_align='center', + maxwidth=60, + scale=0.5, + color=value_color, + flatness=1.0) + + self.entry_fee_ad_image = ba.imagewidget(parent=parent, + size=(40, 40), + draw_controller=btn, + position=(x + 360 - 20, + y + scly - 140), + opacity=0.0, + texture=ba.gettexture('tv')) + + x_offs += 50 + + ba.textwidget(parent=parent, + draw_controller=btn, + position=(x + 447 + x_offs, y + scly - 20), + size=(0, 0), + h_align='center', + text=ba.Lstr(resource=self._r + '.prizesText'), + v_align='center', + maxwidth=130, + scale=0.9, + color=header_color, + flatness=1.0) + + self.button_x = x + self.button_y = y + self.button_scale_y = scly + + xo2 = 0 + prize_value_scale = 1.5 + + self.prize_range_1_text = ba.textwidget( + parent=parent, + draw_controller=btn, + position=(x + 355 + xo2 + x_offs, y + scly - 93), + size=(0, 0), + h_align='right', + v_align='center', + maxwidth=50, + text='-', + scale=0.8, + color=header_color, + flatness=1.0) + self.prize_value_1_text = ba.textwidget( + parent=parent, + draw_controller=btn, + position=(x + 380 + xo2 + x_offs, y + scly - 93), + size=(0, 0), + h_align='left', + text='-', + v_align='center', + maxwidth=100, + scale=prize_value_scale, + color=value_color, + flatness=1.0) + + self.prize_range_2_text = ba.textwidget( + parent=parent, + draw_controller=btn, + position=(x + 355 + xo2 + x_offs, y + scly - 93), + size=(0, 0), + h_align='right', + v_align='center', + maxwidth=50, + scale=0.8, + color=header_color, + flatness=1.0) + self.prize_value_2_text = ba.textwidget( + parent=parent, + draw_controller=btn, + position=(x + 380 + xo2 + x_offs, y + scly - 93), + size=(0, 0), + h_align='left', + text='', + v_align='center', + maxwidth=100, + scale=prize_value_scale, + color=value_color, + flatness=1.0) + + self.prize_range_3_text = ba.textwidget( + parent=parent, + draw_controller=btn, + position=(x + 355 + xo2 + x_offs, y + scly - 93), + size=(0, 0), + h_align='right', + v_align='center', + maxwidth=50, + scale=0.8, + color=header_color, + flatness=1.0) + self.prize_value_3_text = ba.textwidget( + parent=parent, + draw_controller=btn, + position=(x + 380 + xo2 + x_offs, y + scly - 93), + size=(0, 0), + h_align='left', + text='', + v_align='center', + maxwidth=100, + scale=prize_value_scale, + color=value_color, + flatness=1.0) + + ba.textwidget(parent=parent, + draw_controller=btn, + position=(x + 620 + x_offs, y + scly - 20), + size=(0, 0), + h_align='center', + text=ba.Lstr(resource=self._r + '.currentBestText'), + v_align='center', + maxwidth=180, + scale=0.9, + color=header_color, + flatness=1.0) + self.current_leader_name_text = ba.textwidget( + parent=parent, + draw_controller=btn, + position=(x + 620 + x_offs - (170 / 1.4) * 0.5, + y + scly - 60 - 40 * 0.5), + selectable=True, + click_activate=True, + autoselect=True, + on_activate_call=ba.WeakCall(self._show_leader), + size=(170 / 1.4, 40), + h_align='center', + text='-', + v_align='center', + maxwidth=170, + scale=1.4, + color=value_color, + flatness=1.0) + self.current_leader_score_text = ba.textwidget( + parent=parent, + draw_controller=btn, + position=(x + 620 + x_offs, y + scly - 113 + 10), + size=(0, 0), + h_align='center', + text='-', + v_align='center', + maxwidth=170, + scale=1.8, + color=value_color, + flatness=1.0) + + self.more_scores_button = ba.buttonwidget( + parent=parent, + position=(x + 620 + x_offs - 60, y + scly - 50 - 125), + color=(0.5, 0.5, 0.6), + textcolor=(0.7, 0.7, 0.8), + label='-', + size=(120, 40), + autoselect=True, + up_widget=self.current_leader_name_text, + text_scale=0.6, + on_activate_call=ba.WeakCall(self._show_scores)) + ba.widget(edit=self.current_leader_name_text, + down_widget=self.more_scores_button) + + ba.textwidget(parent=parent, + draw_controller=btn, + position=(x + 820 + x_offs, y + scly - 20), + size=(0, 0), + h_align='center', + text=ba.Lstr(resource=self._r + '.timeRemainingText'), + v_align='center', + maxwidth=180, + scale=0.9, + color=header_color, + flatness=1.0) + self.time_remaining_value_text = ba.textwidget( + parent=parent, + draw_controller=btn, + position=(x + 820 + x_offs, y + scly - 68), + size=(0, 0), + h_align='center', + text='-', + v_align='center', + maxwidth=180, + scale=2.0, + color=value_color, + flatness=1.0) + self.time_remaining_out_of_text = ba.textwidget( + parent=parent, + draw_controller=btn, + position=(x + 820 + x_offs, y + scly - 110), + size=(0, 0), + h_align='center', + text='-', + v_align='center', + maxwidth=120, + scale=0.72, + color=(0.4, 0.4, 0.5), + flatness=1.0) + + def _pressed(self) -> None: + self.on_pressed(self) + + def _show_leader(self) -> None: + # pylint: disable=cyclic-import + from bastd.ui.account.viewer import AccountViewerWindow + tournament_id = self.tournament_id + + # FIXME: This assumes a single player entry in leader; should expand + # this to work with multiple. + if tournament_id is None or self.leader is None or len( + self.leader[2]) != 1: + ba.playsound(ba.getsound('error')) + return + ba.playsound(ba.getsound('swish')) + AccountViewerWindow( + account_id=self.leader[2][0].get('a', None), + profile_id=self.leader[2][0].get('p', None), + position=self.current_leader_name_text.get_screen_space_center()) + + def _show_scores(self) -> None: + # pylint: disable=cyclic-import + from bastd.ui.tournamentscores import TournamentScoresWindow + tournament_id = self.tournament_id + if tournament_id is None: + ba.playsound(ba.getsound('error')) + return + + TournamentScoresWindow( + tournament_id=tournament_id, + position=self.more_scores_button.get_screen_space_center()) + + def update_for_data(self, entry: dict[str, Any]) -> None: + """Update for new incoming data.""" + # pylint: disable=too-many-statements + # pylint: disable=too-many-locals + # pylint: disable=too-many-branches + from ba.internal import getcampaign, get_tournament_prize_strings + prize_y_offs = (34 if 'prizeRange3' in entry else + 20 if 'prizeRange2' in entry else 12) + x_offs = 90 + + # This seems to be a false alarm. + # pylint: disable=unbalanced-tuple-unpacking + pr1, pv1, pr2, pv2, pr3, pv3 = (get_tournament_prize_strings(entry)) + # pylint: enable=unbalanced-tuple-unpacking + enabled = 'requiredLeague' not in entry + ba.buttonwidget(edit=self.button, + color=(0.5, 0.7, 0.2) if enabled else (0.5, 0.5, 0.5)) + ba.imagewidget(edit=self.lock_image, opacity=0.0 if enabled else 1.0) + ba.textwidget(edit=self.prize_range_1_text, + text='-' if pr1 == '' else pr1, + position=(self.button_x + 365 + x_offs, self.button_y + + self.button_scale_y - 93 + prize_y_offs)) + + # We want to draw values containing tickets a bit smaller + # (scratch that; we now draw medals a bit bigger). + ticket_char = ba.charstr(ba.SpecialChar.TICKET_BACKING) + prize_value_scale_large = 1.0 + prize_value_scale_small = 1.0 + + ba.textwidget(edit=self.prize_value_1_text, + text='-' if pv1 == '' else pv1, + scale=prize_value_scale_large + if ticket_char not in pv1 else prize_value_scale_small, + position=(self.button_x + 380 + x_offs, self.button_y + + self.button_scale_y - 93 + prize_y_offs)) + + ba.textwidget(edit=self.prize_range_2_text, + text=pr2, + position=(self.button_x + 365 + x_offs, self.button_y + + self.button_scale_y - 93 - 45 + prize_y_offs)) + ba.textwidget(edit=self.prize_value_2_text, + text=pv2, + scale=prize_value_scale_large + if ticket_char not in pv2 else prize_value_scale_small, + position=(self.button_x + 380 + x_offs, self.button_y + + self.button_scale_y - 93 - 45 + prize_y_offs)) + + ba.textwidget(edit=self.prize_range_3_text, + text=pr3, + position=(self.button_x + 365 + x_offs, self.button_y + + self.button_scale_y - 93 - 90 + prize_y_offs)) + ba.textwidget(edit=self.prize_value_3_text, + text=pv3, + scale=prize_value_scale_large + if ticket_char not in pv3 else prize_value_scale_small, + position=(self.button_x + 380 + x_offs, self.button_y + + self.button_scale_y - 93 - 90 + prize_y_offs)) + + leader_name = '-' + leader_score: str | ba.Lstr = '-' + if entry['scores']: + score = self.leader = copy.deepcopy(entry['scores'][0]) + leader_name = score[1] + leader_score = (ba.timestring( + score[0] * 10, + centi=True, + timeformat=ba.TimeFormat.MILLISECONDS, + suppress_format_warning=True) + if entry['scoreType'] == 'time' else str(score[0])) + else: + self.leader = None + + ba.textwidget(edit=self.current_leader_name_text, + text=ba.Lstr(value=leader_name)) + ba.textwidget(edit=self.current_leader_score_text, text=leader_score) + ba.buttonwidget(edit=self.more_scores_button, + label=ba.Lstr(resource=self._r + '.seeMoreText')) + out_of_time_text: str | ba.Lstr = ( + '-' if 'totalTime' not in entry else ba.Lstr( + resource=self._r + '.ofTotalTimeText', + subs=[('${TOTAL}', + ba.timestring(entry['totalTime'], + centi=False, + suppress_format_warning=True))])) + ba.textwidget(edit=self.time_remaining_out_of_text, + text=out_of_time_text) + + self.time_remaining = entry['timeRemaining'] + self.has_time_remaining = entry is not None + self.tournament_id = entry['tournamentID'] + self.required_league = (None if 'requiredLeague' not in entry else + entry['requiredLeague']) + + game = ba.app.accounts_v1.tournament_info[self.tournament_id]['game'] + + if game is None: + ba.textwidget(edit=self.button_text, text='-') + ba.imagewidget(edit=self.image, + texture=ba.gettexture('black'), + opacity=0.2) + else: + campaignname, levelname = game.split(':') + campaign = getcampaign(campaignname) + max_players = ba.app.accounts_v1.tournament_info[ + self.tournament_id]['maxPlayers'] + txt = ba.Lstr(value='${A} ${B}', + subs=[('${A}', + campaign.getlevel(levelname).displayname), + ('${B}', + ba.Lstr(resource='playerCountAbbreviatedText', + subs=[('${COUNT}', str(max_players)) + ]))]) + ba.textwidget(edit=self.button_text, text=txt) + ba.imagewidget( + edit=self.image, + texture=campaign.getlevel(levelname).get_preview_texture(), + opacity=1.0 if enabled else 0.5) + + fee = entry['fee'] + + if fee is None: + fee_var = None + elif fee == 4: + fee_var = 'price.tournament_entry_4' + elif fee == 3: + fee_var = 'price.tournament_entry_3' + elif fee == 2: + fee_var = 'price.tournament_entry_2' + elif fee == 1: + fee_var = 'price.tournament_entry_1' + else: + if fee != 0: + print('Unknown fee value:', fee) + fee_var = 'price.tournament_entry_0' + + self.allow_ads = allow_ads = entry['allowAds'] + + final_fee: int | None = (None if fee_var is None else + _ba.get_v1_account_misc_read_val( + fee_var, '?')) + + final_fee_str: str | ba.Lstr + if fee_var is None: + final_fee_str = '' + else: + if final_fee == 0: + final_fee_str = ba.Lstr(resource='getTicketsWindow.freeText') + else: + final_fee_str = (ba.charstr(ba.SpecialChar.TICKET_BACKING) + + str(final_fee)) + + ad_tries_remaining = ba.app.accounts_v1.tournament_info[ + self.tournament_id]['adTriesRemaining'] + free_tries_remaining = ba.app.accounts_v1.tournament_info[ + self.tournament_id]['freeTriesRemaining'] + + # Now, if this fee allows ads and we support video ads, show + # the 'or ad' version. + if allow_ads and _ba.has_video_ads(): + ads_enabled = _ba.have_incentivized_ad() + ba.imagewidget(edit=self.entry_fee_ad_image, + opacity=1.0 if ads_enabled else 0.25) + or_text = ba.Lstr(resource='orText', + subs=[('${A}', ''), + ('${B}', '')]).evaluate().strip() + ba.textwidget(edit=self.entry_fee_text_or, text=or_text) + ba.textwidget(edit=self.entry_fee_text_top, + position=(self.button_x + 360, + self.button_y + self.button_scale_y - 60), + scale=1.3, + text=final_fee_str) + + # Possibly show number of ad-plays remaining. + ba.textwidget(edit=self.entry_fee_text_remaining, + position=(self.button_x + 360, + self.button_y + self.button_scale_y - 146), + text='' if ad_tries_remaining in [None, 0] else + ('' + str(ad_tries_remaining)), + color=(0.6, 0.6, 0.6, 1 if ads_enabled else 0.2)) + else: + ba.imagewidget(edit=self.entry_fee_ad_image, opacity=0.0) + ba.textwidget(edit=self.entry_fee_text_or, text='') + ba.textwidget(edit=self.entry_fee_text_top, + position=(self.button_x + 360, + self.button_y + self.button_scale_y - 80), + scale=1.3, + text=final_fee_str) + + # Possibly show number of free-plays remaining. + ba.textwidget( + edit=self.entry_fee_text_remaining, + position=(self.button_x + 360, + self.button_y + self.button_scale_y - 100), + text=('' if (free_tries_remaining in [None, 0] + or final_fee != 0) else + ('' + str(free_tries_remaining))), + color=(0.6, 0.6, 0.6, 1), + ) diff --git a/assets/src/ba_data/python/bastd/ui/onscreenkeyboard.py b/assets/src/ba_data/python/bastd/ui/onscreenkeyboard.py index c55917fb..69d2303a 100644 --- a/assets/src/ba_data/python/bastd/ui/onscreenkeyboard.py +++ b/assets/src/ba_data/python/bastd/ui/onscreenkeyboard.py @@ -213,8 +213,8 @@ class OnScreenKeyboardWindow(ba.Window): # Show change instructions only if we have more than one # keyboard option. - if (ba.app.meta.metascan is not None - and len(ba.app.meta.metascan.keyboards) > 1): + if (ba.app.meta.scanresults is not None + and len(ba.app.meta.scanresults.keyboards) > 1): ba.textwidget( parent=self._root_widget, h_align='center', @@ -238,8 +238,8 @@ class OnScreenKeyboardWindow(ba.Window): self._refresh() def _get_keyboard(self) -> ba.Keyboard: - assert ba.app.meta.metascan is not None - classname = ba.app.meta.metascan.keyboards[self._keyboard_index] + assert ba.app.meta.scanresults is not None + classname = ba.app.meta.scanresults.keyboards[self._keyboard_index] kbclass = ba.getclass(classname, ba.Keyboard) return kbclass() @@ -317,11 +317,11 @@ class OnScreenKeyboardWindow(ba.Window): self._refresh() def _next_keyboard(self) -> None: - assert ba.app.meta.metascan is not None + assert ba.app.meta.scanresults is not None self._keyboard_index = (self._keyboard_index + 1) % len( - ba.app.meta.metascan.keyboards) + ba.app.meta.scanresults.keyboards) self._load_keyboard() - if len(ba.app.meta.metascan.keyboards) < 2: + if len(ba.app.meta.scanresults.keyboards) < 2: ba.playsound(ba.getsound('error')) ba.screenmessage(ba.Lstr(resource='keyboardNoOthersAvailableText'), color=(1, 0, 0)) diff --git a/assets/src/ba_data/python/bastd/ui/settings/plugins.py b/assets/src/ba_data/python/bastd/ui/settings/plugins.py index f4eb5d8c..c90b73d4 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/plugins.py +++ b/assets/src/ba_data/python/bastd/ui/settings/plugins.py @@ -93,7 +93,7 @@ class PluginSettingsWindow(ba.Window): self._subcontainer = ba.columnwidget(parent=self._scrollwidget, selection_loops_to_parent=True) - if ba.app.meta.metascan is None: + if ba.app.meta.scanresults is None: ba.screenmessage('Still scanning plugins; please try again.', color=(1, 0, 0)) ba.playsound(ba.getsound('error')) diff --git a/ballisticacore-cmake/.idea/dictionaries/ericf.xml b/ballisticacore-cmake/.idea/dictionaries/ericf.xml index 4cb8ba44..041f5d77 100644 --- a/ballisticacore-cmake/.idea/dictionaries/ericf.xml +++ b/ballisticacore-cmake/.idea/dictionaries/ericf.xml @@ -1101,6 +1101,7 @@ savebutton sbytes scancode + scanresults scenetime screenmessage scrollwidget @@ -1287,6 +1288,7 @@ topos touchpad toucs + tournamentbutton toutf tpartial tpimport diff --git a/src/ballistica/ballistica.cc b/src/ballistica/ballistica.cc index ae5023f5..9126f0f4 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 = 20637; +const int kAppBuildNumber = 20638; const char* kAppVersion = "1.7.4"; // Our standalone globals. diff --git a/tools/batools/assetsmakefile.py b/tools/batools/assetsmakefile.py index 0a87ea2b..53d7d50a 100755 --- a/tools/batools/assetsmakefile.py +++ b/tools/batools/assetsmakefile.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python3.10 # Released under the MIT License. See LICENSE for details. # """Updates assets/Makefile based on source assets present.""" diff --git a/tools/batools/assetstaging.py b/tools/batools/assetstaging.py index d174c39f..49f62f63 100755 --- a/tools/batools/assetstaging.py +++ b/tools/batools/assetstaging.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python3.10 # Released under the MIT License. See LICENSE for details. # """Stage assets for a build.""" diff --git a/tools/batools/project.py b/tools/batools/project.py index ee6df9e6..8d8dcf3d 100755 --- a/tools/batools/project.py +++ b/tools/batools/project.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python3.10 # Released under the MIT License. See LICENSE for details. # """General project related functionality."""