diff --git a/Maps/allMapsInOne/allMapsInOne.py b/Maps/allMapsInOne/allMapsInOne.py new file mode 100644 index 0000000..ad60a1d --- /dev/null +++ b/Maps/allMapsInOne/allMapsInOne.py @@ -0,0 +1,3027 @@ +from __future__ import annotations + + +## Map Credits: byANG3L ## +## Modpack Credits: BSWorld (https://youtu.be/1TN56NLlShE) ## +## Plugin by: Jinx (https://github.com/JinxBs/BombSquad-Community-Plugin-Manager/blob/main/plugins/allMapsInOne.py) ## + + +# was modified for "Freaku Maps" server by me ## + + + +# ba_meta require api 6 + +import os, ssl, threading, urllib.request +from hashlib import md5 +from typing import TYPE_CHECKING + +import _ba, ba +from ba import _map +from bastd.gameutils import SharedObjects + +ssl._create_default_https_context = ssl._create_unverified_context + +if TYPE_CHECKING: + from typing import Any + + +file_naam = __name__ + '.py' +file_location = _ba.env()['python_directory_user'] + '/' + file_naam +my_version = 5 +ur_version = 5 + + +package_name = "Maps for \ue048Freaku's server" + +package_files = { + # arena mini gore map + "arenaminigoreMapCob.cob": { + "md5": "fde6e6c61ffe5201dc814eeb97a84418", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/arenaminigoreMap/arenaminigoreMapCob.cob", + "target": "ba_data/models/arenaminigoreMapCob.cob" + }, + "arenaminigoreMapColor.dds": { + "md5": "5380f35794ade00de4cc68de0d6e29ad", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/arenaminigoreMap/arenaminigoreMapColor.dds", + "target": "ba_data/textures/arenaminigoreMapColor.dds" + }, + "arenaminigoreMapColor.ktx": { + "md5": "8588a0ae308f6e04f000eea6ffbdc00c", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/arenaminigoreMap/arenaminigoreMapColor.ktx", + "target": "ba_data/textures/arenaminigoreMapColor.ktx" + }, + "arenaminigoreMap.bob": { + "md5": "42be9c3b8bf3f595d53b8b0223723194", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/arenaminigoreMap/arenaminigoreMap.bob", + "target": "ba_data/models/arenaminigoreMap.bob" + }, + "arenaMinigorePreview.dds": { + "md5": "9eed3b7c488d0ef3738d63445b5ae7e3", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/arenaminigoreMap/arenaMinigorePreview.dds", + "target": "ba_data/textures/arenaMinigorePreview.dds" + }, + "arenaMinigorePreview.ktx": { + "md5": "ad72dd59ac437f0dd3cd89ad073dd185", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/arenaminigoreMap/arenaMinigorePreview.ktx", + "target": "ba_data/textures/arenaMinigorePreview.ktx" + }, + + # bikini bottom map + "bikiniBottomMapBG.bob": { + "md5": "05313e78a62302fe2791ad8fd3ef24bc", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bikiniBottomMap/bikiniBottomMapBG.bob", + "target": "ba_data/models/bikiniBottomMapBG.bob" + }, + "bikiniBottomMapBGColor.ktx": { + "md5": "6c06dfc088b8edd54fab7a745b60061c", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bikiniBottomMap/bikiniBottomMapBGColor.ktx", + "target": "ba_data/textures/bikiniBottomMapBGColor.ktx" + }, + "cangremovilColor.ktx": { + "md5": "43301ff824cd1d485509674e6e49ed62", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bikiniBottomMap/cangremovilColor.ktx", + "target": "ba_data/textures/cangremovilColor.ktx" + }, + "bikiniBottomMapColor.ktx": { + "md5": "91f764531b63faa1c15753c4cfb9f299", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bikiniBottomMap/bikiniBottomMapColor.ktx", + "target": "ba_data/textures/bikiniBottomMapColor.ktx" + }, + "bikiniBottomMapColor.dds": { + "md5": "e499bfec39d793b0bf40424b99057e09", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bikiniBottomMap/bikiniBottomMapColor.dds", + "target": "ba_data/textures/bikiniBottomMapColor.dds" + }, + "bikiniBottomMapCob.cob": { + "md5": "1c5662b93973e69c63e449ee17fd523f", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bikiniBottomMap/bikiniBottomMapCob.cob", + "target": "ba_data/models/bikiniBottomMapCob.cob" + }, + "cangremovilColor.dds": { + "md5": "948f7a83275db17451c6b6ed862a5cd0", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bikiniBottomMap/cangremovilColor.dds", + "target": "ba_data/textures/cangremovilColor.dds" + }, + "bikiniBottomMapBGColor.dds": { + "md5": "33c0f36dad26b4ac904b3e2b8b53b913", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bikiniBottomMap/bikiniBottomMapBGColor.dds", + "target": "ba_data/textures/bikiniBottomMapBGColor.dds" + }, + "bikiniBottomPreview.dds": { + "md5": "93b19b85f00ebee9932da09f22bb4b15", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bikiniBottomMap/bikiniBottomPreview.dds", + "target": "ba_data/textures/bikiniBottomPreview.dds" + }, + "bikiniBottomPreview.ktx": { + "md5": "d9275a66db9dff147a50b0b769e21aea", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bikiniBottomMap/bikiniBottomPreview.ktx", + "target": "ba_data/textures/bikiniBottomPreview.ktx" + }, + "cangremovilModel.bob": { + "md5": "986d4699e7bfe3bf55db008634a503bf", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bikiniBottomMap/cangremovilModel.bob", + "target": "ba_data/models/cangremovilModel.bob" + }, + "bikiniBottomMap.bob": { + "md5": "bb10c4aedaa7fa0f82ac6a9b25d3dd53", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bikiniBottomMap/bikiniBottomMap.bob", + "target": "ba_data/models/bikiniBottomMap.bob" + }, + + # bomberman map + "bombermanMapColor.dds": { + "md5": "ed7911ea9b23cea1c2044b27bc8a413c", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bombermanMap/bombermanMapColor.dds", + "target": "ba_data/textures/bombermanMapColor.dds" + }, + "bombermanMapPreview.ktx": { + "md5": "0d8579bcf5169588f23ff18b6d0c2338", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bombermanMap/bombermanMapPreview.ktx", + "target": "ba_data/textures/bombermanMapPreview.ktx" + }, + "bombermanMapPreview.dds": { + "md5": "297df338402bea9c49c4b7ff5ba0c593", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bombermanMap/bombermanMapPreview.dds", + "target": "ba_data/textures/bombermanMapPreview.dds" + }, + "bombermanMapCob.cob": { + "md5": "7a0ce7caf64821e04fbebdd32075ebc0", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bombermanMap/bombermanMapCob.cob", + "target": "ba_data/models/bombermanMapCob.cob" + }, + "bombermanMapColor.ktx": { + "md5": "9475047324957a7270143a173f71d2a9", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bombermanMap/bombermanMapColor.ktx", + "target": "ba_data/textures/bombermanMapColor.ktx" + }, + "bombermanMap.bob": { + "md5": "b1e809656e200056a1f5df9fbcac1c6f", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/bombermanMap/bombermanMap.bob", + "target": "ba_data/models/bombermanMap.bob" + }, + + # courage map + "courageBGColor.ktx": { + "md5": "f8b40a6652e3c4676c9a5a993e3da888", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/courageMap/courageBGColor.ktx", + "target": "ba_data/textures/courageBGColor.ktx" + }, + "courageMapColor.ktx": { + "md5": "55d4cb427671307b3f079c6f17970e7f", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/courageMap/courageMapColor.ktx", + "target": "ba_data/textures/courageMapColor.ktx" + }, + "courageMap.bob": { + "md5": "d4e13d0902a6bc94a5ec4582e685f432", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/courageMap/courageMap.bob", + "target": "ba_data/models/courageMap.bob" + }, + "courageMapPreview.dds": { + "md5": "302a82c26f15d76d41a021b503cfbed4", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/courageMap/courageMapPreview.dds", + "target": "ba_data/textures/courageMapPreview.dds" + }, + "courageMapPreview.ktx": { + "md5": "82ce6089d43c51bc49b70c1a2ec0410b", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/courageMap/courageMapPreview.ktx", + "target": "ba_data/textures/courageMapPreview.ktx" + }, + "courageBGColor.dds": { + "md5": "7a1f36e515db763dbbc4dd964862c85b", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/courageMap/courageBGColor.dds", + "target": "ba_data/textures/courageBGColor.dds" + }, + "courageMapColor.dds": { + "md5": "bab38b7ec1008e18e4725f80eec55010", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/courageMap/courageMapColor.dds", + "target": "ba_data/textures/courageMapColor.dds" + }, + "courageMapCob.cob": { + "md5": "855b2aed970c961d11614e2445ad49b9", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/courageMap/courageMapCob.cob", + "target": "ba_data/models/courageMapCob.cob" + }, + + # cragcatle map + "cragCastleBigPreview.ktx": { + "md5": "85235ee6e75074c3b8dfd77fc8c84fe3", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/cragcastleMap/cragCastleBigPreview.ktx", + "target": "ba_data/textures/cragCastleBigPreview.ktx" + }, + "cragCastleLevelBig.bob": { + "md5": "10975567481e02de6c13f01dd94942c3", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/cragcastleMap/cragCastleLevelBig.bob", + "target": "ba_data/models/cragCastleLevelBig.bob" + }, + "cragCastleLevelBottomBig.bob": { + "md5": "39d5313854efb10054cf26bc9be09919", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/cragcastleMap/cragCastleLevelBottomBig.bob", + "target": "ba_data/models/cragCastleLevelBottomBig.bob" + }, + "cragCastleLevelBumperBig.cob": { + "md5": "37427fc882b0c842f0457a17fb1c2bba", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/cragcastleMap/cragCastleLevelBumperBig.cob", + "target": "ba_data/models/cragCastleLevelBumperBig.cob" + }, + "cragCastleBigPreview.dds": { + "md5": "682fcde82d682f2dabfdad36eca455e2", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/cragcastleMap/cragCastleBigPreview.dds", + "target": "ba_data/textures/cragCastleBigPreview.dds" + }, + "cragCastleLevelCollideBig.cob": { + "md5": "5981bafc0a936e779c0e668af6739327", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/cragcastleMap/cragCastleLevelCollideBig.cob", + "target": "ba_data/models/cragCastleLevelCollideBig.cob" + }, + + # dreamland map + "dreamlandMapColor.dds": { + "md5": "bda203e2cfe909878652727ab2f210b1", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/dreamlandMap/dreamlandMapColor.dds", + "target": "ba_data/textures/dreamlandMapColor.dds" + }, + "dreamlandMapNPreview.ktx": { + "md5": "a3b4332a4746b38cc537d67260cebc27", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/dreamlandMap/dreamlandMapNPreview.ktx", + "target": "ba_data/textures/dreamlandMapNPreview.ktx" + }, + "dreamlandMapBottomCob.cob": { + "md5": "34fbf6c50e8ca999abb16d424d89fde8", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/dreamlandMap/dreamlandMapBottomCob.cob", + "target": "ba_data/models/dreamlandMapBottomCob.cob" + }, + "dreamlandMapPreview.ktx": { + "md5": "994a4fd3f9225876e8b7136150e34bab", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/dreamlandMap/dreamlandMapPreview.ktx", + "target": "ba_data/textures/dreamlandMapPreview.ktx" + }, + "dreamlandMapPreview.dds": { + "md5": "f58dbc7c8ccc68e7f157d8728192584f", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/dreamlandMap/dreamlandMapPreview.dds", + "target": "ba_data/textures/dreamlandMapPreview.dds" + }, + "dreamlandMapCob.cob": { + "md5": "2c08f895e2792185092842f6099b80b9", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/dreamlandMap/dreamlandMapCob.cob", + "target": "ba_data/models/dreamlandMapCob.cob" + }, + "dreamlandMapColor.ktx": { + "md5": "05314980d146b6fcebb46d57a6b7719c", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/dreamlandMap/dreamlandMapColor.ktx", + "target": "ba_data/textures/dreamlandMapColor.ktx" + }, + "dreamlandMapNPreview.dds": { + "md5": "373683cae6db67f8652dc3ef7ccab59d", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/dreamlandMap/dreamlandMapNPreview.dds", + "target": "ba_data/textures/dreamlandMapNPreview.dds" + }, + "uknucklesBGColor.ktx": { + "md5": "6556f72533b6e9c8ee0836a0c0c1a0fc", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/dreamlandMap/uknucklesBGColor.ktx", + "target": "ba_data/textures/uknucklesBGColor.ktx" + }, + "dreamlandMapBottom.bob": { + "md5": "58a31fe6c07a42e25cb77d4c182dbf68", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/dreamlandMap/dreamlandMapBottom.bob", + "target": "ba_data/models/dreamlandMapBottom.bob" + }, + "uknucklesBGColor.dds": { + "md5": "6850d4a1cf9018a9ca43a2ca07fb8bec", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/dreamlandMap/uknucklesBGColor.dds", + "target": "ba_data/textures/uknucklesBGColor.dds" + }, + "dreamlandMap.bob": { + "md5": "0884957ab480c97f36652d082d280f96", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/dreamlandMap/dreamlandMap.bob", + "target": "ba_data/models/dreamlandMap.bob" + }, + + # elimination chamber raw + "ecMapColor.dds": { + "md5": "0d7345db0bda49b6d2ab80d5e1b71f0b", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberRaw/ecMapColor.dds", + "target": "ba_data/textures/ecMapColor.dds" + }, + "ecBGMap.bob": { + "md5": "a5bd0d85133a86c06bf74a6bbfdc1c34", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberRaw/ecBGMap.bob", + "target": "ba_data/models/ecBGMap.bob" + }, + "ecGlassMapCob.cob": { + "md5": "755b6838f3d4bbfe0447659878b437d5", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberRaw/ecGlassMapCob.cob", + "target": "ba_data/models/ecGlassMapCob.cob" + }, + "ecRawMapPreview.dds": { + "md5": "160cdf0558238e15de168a3ec178da89", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberRaw/ecRawMapPreview.dds", + "target": "ba_data/textures/ecRawMapPreview.dds" + }, + "ecRawNLMap.bob": { + "md5": "1616ad9e25600473cdb75954aaa3037a", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberRaw/ecRawNLMap.bob", + "target": "ba_data/models/ecRawNLMap.bob" + }, + "ecRawMapPreview.ktx": { + "md5": "2096ea7ccc79b5634b210b67fa4f254d", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberRaw/ecRawMapPreview.ktx", + "target": "ba_data/textures/ecRawMapPreview.ktx" + }, + "ecRawInvMap.bob": { + "md5": "54a556e9e62c185c03c65acb41e4b31d", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberRaw/ecRawInvMap.bob", + "target": "ba_data/models/ecRawInvMap.bob" + }, + "ecMapColor.ktx": { + "md5": "01e33af58c380fef2b840ed9ce23073b", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberRaw/ecMapColor.ktx", + "target": "ba_data/textures/ecMapColor.ktx" + }, + "ecMapCob.cob": { + "md5": "86d05e5a6a2c7ee168372a5779961051", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberRaw/ecMapCob.cob", + "target": "ba_data/models/ecMapCob.cob" + }, + "ecRawMap.bob": { + "md5": "8fc840ea238849d53f761a0a2ddd7d20", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberRaw/ecRawMap.bob", + "target": "ba_data/models/ecRawMap.bob" + }, + "ecExtMap.bob": { + "md5": "224b883703dc352fd550a8139e650c51", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberRaw/ecExtMap.bob", + "target": "ba_data/models/ecExtMap.bob" + }, + "ecRawGlassMap.bob": { + "md5": "3f943556b4f9691c5ca182ee394735cc", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberRaw/ecRawGlassMap.bob", + "target": "ba_data/models/ecRawGlassMap.bob" + }, + "ecExtMapCob.cob": { + "md5": "389a191ae68cabcc63886f05cec4c2d0", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberRaw/ecExtMapCob.cob", + "target": "ba_data/models/ecExtMapCob.cob" + }, + + # elimination chamber sd + "ecSDMap.bob": { + "md5": "0a1cafe8222ceb919243d6bd2e328dc9", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberSD/ecSDMap.bob", + "target": "ba_data/models/ecSDMap.bob" + }, + "ecSDMapPreview.ktx": { + "md5": "5591a97277653d35effdf86c5b948dda", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberSD/ecSDMapPreview.ktx", + "target": "ba_data/textures/ecSDMapPreview.ktx" + }, + "ecMapColor.dds": { + "md5": "0d7345db0bda49b6d2ab80d5e1b71f0b", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberSD/ecMapColor.dds", + "target": "ba_data/textures/ecMapColor.dds" + }, + "ecBGMap.bob": { + "md5": "a5bd0d85133a86c06bf74a6bbfdc1c34", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberSD/ecBGMap.bob", + "target": "ba_data/models/ecBGMap.bob" + }, + "ecGlassMapCob.cob": { + "md5": "755b6838f3d4bbfe0447659878b437d5", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberSD/ecGlassMapCob.cob", + "target": "ba_data/models/ecGlassMapCob.cob" + }, + "ecMapColor.ktx": { + "md5": "01e33af58c380fef2b840ed9ce23073b", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberSD/ecMapColor.ktx", + "target": "ba_data/textures/ecMapColor.ktx" + }, + "ecMapCob.cob": { + "md5": "86d05e5a6a2c7ee168372a5779961051", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberSD/ecMapCob.cob", + "target": "ba_data/models/ecMapCob.cob" + }, + "ecSDMapPreview.dds": { + "md5": "09669b93fefbeca963cea00bf84ac95d", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberSD/ecSDMapPreview.dds", + "target": "ba_data/textures/ecSDMapPreview.dds" + }, + "ecSDNLMap.bob": { + "md5": "6e68e754cfc213b492c7e26fb673d9bd", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberSD/ecSDNLMap.bob", + "target": "ba_data/models/ecSDNLMap.bob" + }, + "ecExtMap.bob": { + "md5": "224b883703dc352fd550a8139e650c51", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberSD/ecExtMap.bob", + "target": "ba_data/models/ecExtMap.bob" + }, + "ecSDInvMap.bob": { + "md5": "a7842a820221353f9bedddbd335cc696", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberSD/ecSDInvMap.bob", + "target": "ba_data/models/ecSDInvMap.bob" + }, + "ecSDGlassMap.bob": { + "md5": "a9b01db08d5a5df894b51614c7399710", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberSD/ecSDGlassMap.bob", + "target": "ba_data/models/ecSDGlassMap.bob" + }, + "ecExtMapCob.cob": { + "md5": "389a191ae68cabcc63886f05cec4c2d0", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/eliminationChamberSD/ecExtMapCob.cob", + "target": "ba_data/models/ecExtMapCob.cob" + }, + + # gotcha map + "gotchaMapColor.dds": { + "md5": "9dbc9cf5f2e8ea488102ba75253b4c8a", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gotchaMap/gotchaMapColor.dds", + "target": "ba_data/textures/gotchaMapColor.dds" + }, + "gotchaMap.bob": { + "md5": "3415e902a77ffa579fd825da877c51f2", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gotchaMap/gotchaMap.bob", + "target": "ba_data/models/gotchaMap.bob" + }, + "gotchaMapColor.ktx": { + "md5": "f8ff1a19e1f994572ec7fe0b53098d74", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gotchaMap/gotchaMapColor.ktx", + "target": "ba_data/textures/gotchaMapColor.ktx" + }, + "gotchaMapRailing.cob": { + "md5": "4e99322da9ffb84a95acfdc451f67750", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gotchaMap/gotchaMapRailing.cob", + "target": "ba_data/models/gotchaMapRailing.cob" + }, + "gotchaMapBG.bob": { + "md5": "1903f42c0edc8403c9d1fbfb10a9cf7d", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gotchaMap/gotchaMapBG.bob", + "target": "ba_data/models/gotchaMapBG.bob" + }, + "gotchaMapCob.cob": { + "md5": "4196e66d85f35ae5ec3fe4004a2ef3f9", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gotchaMap/gotchaMapCob.cob", + "target": "ba_data/models/gotchaMapCob.cob" + }, + "gotchaMapPreview.ktx": { + "md5": "f17bc3d3eb68c43eec28e4ea20097810", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gotchaMap/gotchaMapPreview.ktx", + "target": "ba_data/textures/gotchaMapPreview.ktx" + }, + "gotchaMapPreview.dds": { + "md5": "20cf9237d3f49fa65f8790e832cd5342", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gotchaMap/gotchaMapPreview.dds", + "target": "ba_data/textures/gotchaMapPreview.dds" + }, + + # gravity falls map + "gravityFallsMap.bob": { + "md5": "8835ac3225f7f79fd239d55968f52dc1", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gravityFallsMap/gravityFallsMap.bob", + "target": "ba_data/models/gravityFallsMap.bob" + }, + "gravityFallsMapCob.cob": { + "md5": "eab0568aff3978e0c79bcc0b4e5d4462", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gravityFallsMap/gravityFallsMapCob.cob", + "target": "ba_data/models/gravityFallsMapCob.cob" + }, + "gravityFallsMapD.bob": { + "md5": "d280b120b35af472e163a4d7a054c2aa", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gravityFallsMap/gravityFallsMapD.bob", + "target": "ba_data/models/gravityFallsMapD.bob" + }, + "gravityFallsMapColor.ktx": { + "md5": "0cfddb31c4c4834d982b56e33e6b6e1b", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gravityFallsMap/gravityFallsMapColor.ktx", + "target": "ba_data/textures/gravityFallsMapColor.ktx" + }, + "gravityFallsMapPreview.dds": { + "md5": "8d1be1942ef3f01b90ee2932ac757151", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gravityFallsMap/gravityFallsMapPreview.dds", + "target": "ba_data/textures/gravityFallsMapPreview.dds" + }, + "gravityFallsMapColor.dds": { + "md5": "adfc0b76353a860bc8352d709c4f116a", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gravityFallsMap/gravityFallsMapColor.dds", + "target": "ba_data/textures/gravityFallsMapColor.dds" + }, + "gravityFallsMapPreview.ktx": { + "md5": "b225a5dac315a2c9e68b444659f0bc64", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/gravityFallsMap/gravityFallsMapPreview.ktx", + "target": "ba_data/textures/gravityFallsMapPreview.ktx" + }, + + # guardian map + "skyGlassBG.ktx": { + "md5": "d0e0dcbcdc1a1a0ac2ee135a3deabd44", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/guardianMap/skyGlassBG.ktx", + "target": "ba_data/textures/skyGlassBG.ktx" + }, + "guardianMapCob.cob": { + "md5": "648a46324ddb883ab66ee9e1f5578fb1", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/guardianMap/guardianMapCob.cob", + "target": "ba_data/models/guardianMapCob.cob" + }, + "guardianMapPreview.dds": { + "md5": "6c93e078f2267f1fad9b893c5c27a9c0", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/guardianMap/guardianMapPreview.dds", + "target": "ba_data/textures/guardianMapPreview.dds" + }, + "guardianMap.bob": { + "md5": "862cb7c9c1aa9bc02e343e82a2f32887", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/guardianMap/guardianMap.bob", + "target": "ba_data/models/guardianMap.bob" + }, + "guardianMapColor.ktx": { + "md5": "ba9cf86e182e621e06e6b70b304b6eb2", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/guardianMap/guardianMapColor.ktx", + "target": "ba_data/textures/guardianMapColor.ktx" + }, + "guardianMapColor.dds": { + "md5": "7f0b6ca414ae3b28aabc33994acf9f27", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/guardianMap/guardianMapColor.dds", + "target": "ba_data/textures/guardianMapColor.dds" + }, + "skyGlassBG.dds": { + "md5": "3ec0945c5c188ec7d4989020fc414eb6", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/guardianMap/skyGlassBG.dds", + "target": "ba_data/textures/skyGlassBG.dds" + }, + "guardianMapPreview.ktx": { + "md5": "7ac123c93e088f5df3f5f7738d9af421", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/guardianMap/guardianMapPreview.ktx", + "target": "ba_data/textures/guardianMapPreview.ktx" + }, + + # halloween map + "hwMap.bob": { + "md5": "bcd81762eaae80061dfe8655b3e779be", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/hwMap/hwMap.bob", + "target": "ba_data/models/hwMap.bob" + }, + "hwMapColor.ktx": { + "md5": "f51257bf0ceb9a86fd604475a99ff197", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/hwMap/hwMapColor.ktx", + "target": "ba_data/textures/hwMapColor.ktx" + }, + "hwMapCob.cob": { + "md5": "85c3a8957a74b4ec01686ce763a62787", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/hwMap/hwMapCob.cob", + "target": "ba_data/models/hwMapCob.cob" + }, + "hwMapPreview.dds": { + "md5": "42fdcfb32000277ab05ab59ae26c6ffc", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/hwMap/hwMapPreview.dds", + "target": "ba_data/textures/hwMapPreview.dds" + }, + "hwMapColor.dds": { + "md5": "c54b4d09c9e3b9fab95f8ce1fc0ee62d", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/hwMap/hwMapColor.dds", + "target": "ba_data/textures/hwMapColor.dds" + }, + "hwMapPreview.ktx": { + "md5": "d2b1daeb416f96907c65c5cd0518fdb9", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/hwMap/hwMapPreview.ktx", + "target": "ba_data/textures/hwMapPreview.ktx" + }, + + # ice map + "iceMapColor.dds": { + "md5": "61dadb6e68eab0e69abcb891500aa0d5", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/iceMap/iceMapColor.dds", + "target": "ba_data/textures/iceMapColor.dds" + }, + "iceMapTopCob.cob": { + "md5": "420edc2422d4a75253d1d372718eaa92", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/iceMap/iceMapTopCob.cob", + "target": "ba_data/models/iceMapTopCob.cob" + }, + "iceMapTop.bob": { + "md5": "1c2afc3f7b17d1e788150945fb19af7c", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/iceMap/iceMapTop.bob", + "target": "ba_data/models/iceMapTop.bob" + }, + "iceMapPreview.ktx": { + "md5": "39146f2246341c7036d044bb54fdb788", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/iceMap/iceMapPreview.ktx", + "target": "ba_data/textures/iceMapPreview.ktx" + }, + "iceMapIce.bob": { + "md5": "b89807481e96f854b97b37f38709831d", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/iceMap/iceMapIce.bob", + "target": "ba_data/models/iceMapIce.bob" + }, + "natureBackgroundNColor.dds": { + "md5": "2a0e93248cd284ec5875c2fd005ca8e3", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/iceMap/natureBackgroundNColor.dds", + "target": "ba_data/textures/natureBackgroundNColor.dds" + }, + "iceMapPreview.dds": { + "md5": "d874e09943d502b689e92a3c32bfe3cc", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/iceMap/iceMapPreview.dds", + "target": "ba_data/textures/iceMapPreview.dds" + }, + "iceMapBottom.bob": { + "md5": "c61b7d717399565a6320a3278da9b827", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/iceMap/iceMapBottom.bob", + "target": "ba_data/models/iceMapBottom.bob" + }, + "iceMapIceCob.cob": { + "md5": "6b1ab014d59932666e59923132b658ca", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/iceMap/iceMapIceCob.cob", + "target": "ba_data/models/iceMapIceCob.cob" + }, + "iceMapColor.ktx": { + "md5": "29cca7526a8c928505913e89d8e6136b", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/iceMap/iceMapColor.ktx", + "target": "ba_data/textures/iceMapColor.ktx" + }, + "iceMapBottomCob.cob": { + "md5": "76185914f2f3a86771d4781116ec4933", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/iceMap/iceMapBottomCob.cob", + "target": "ba_data/models/iceMapBottomCob.cob" + }, + "natureBackgroundNColor.ktx": { + "md5": "e00ec03bee7ad98e704cc361ed11882f", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/iceMap/natureBackgroundNColor.ktx", + "target": "ba_data/textures/natureBackgroundNColor.ktx" + }, + + # krusty krab map + "krustyKrabBGMapColor.ktx": { + "md5": "33715489d4cc5754d2e91521df0be6f4", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/krustyKrabMap/krustyKrabBGMapColor.ktx", + "target": "ba_data/textures/krustyKrabBGMapColor.ktx" + }, + "krustyKrabMap.bob": { + "md5": "4c46a9d561c5dced7aed232c72dfcc05", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/krustyKrabMap/krustyKrabMap.bob", + "target": "ba_data/models/krustyKrabMap.bob" + }, + "krustyKrabBGMapColor.dds": { + "md5": "2b461c1f4156c489220fad1100cd909b", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/krustyKrabMap/krustyKrabBGMapColor.dds", + "target": "ba_data/textures/krustyKrabBGMapColor.dds" + }, + "krustyKrabMapColor.ktx": { + "md5": "4574504d09c683871c7ad36b55a80f7e", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/krustyKrabMap/krustyKrabMapColor.ktx", + "target": "ba_data/textures/krustyKrabMapColor.ktx" + }, + "krustyKrabBGMap.bob": { + "md5": "85f20afe5b8d6b8dd6c1b668d26ab3b3", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/krustyKrabMap/krustyKrabBGMap.bob", + "target": "ba_data/models/krustyKrabBGMap.bob" + }, + "krustyKrabMapPreview.ktx": { + "md5": "fdb37b5db63f2018c55fd72a9e98009e", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/krustyKrabMap/krustyKrabMapPreview.ktx", + "target": "ba_data/textures/krustyKrabMapPreview.ktx" + }, + "krustyKrabMapPreview.dds": { + "md5": "171854a77bf1ae688cc6d3f5d01d4114", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/krustyKrabMap/krustyKrabMapPreview.dds", + "target": "ba_data/textures/krustyKrabMapPreview.dds" + }, + "krustyKrabMapColor.dds": { + "md5": "ce0a8641a8ecd248ffd6b03f1e606638", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/krustyKrabMap/krustyKrabMapColor.dds", + "target": "ba_data/textures/krustyKrabMapColor.dds" + }, + "krustyKrabMapCob.cob": { + "md5": "d5087aa84f1aff77302d9da64d59a049", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/krustyKrabMap/krustyKrabMapCob.cob", + "target": "ba_data/models/krustyKrabMapCob.cob" + }, + + # picnic map + "mapPicnicPreview.ktx": { + "md5": "77b8b0ac74f0cdd05f81bb7024f120dc", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mapPicnic/mapPicnicPreview.ktx", + "target": "ba_data/textures/mapPicnicPreview.ktx" + }, + "mapPicnic.bob": { + "md5": "7d5f423039ff8158ee66c8238b4d5ef8", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mapPicnic/mapPicnic.bob", + "target": "ba_data/models/mapPicnic.bob" + }, + "mapPicnicCob.cob": { + "md5": "0f6de05dbfeb0ed5b32ec14fbdbc8c4a", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mapPicnic/mapPicnicCob.cob", + "target": "ba_data/models/mapPicnicCob.cob" + }, + "mapPicnicDeathCob.cob": { + "md5": "4ca617e5900561452e2a1451e61f596a", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mapPicnic/mapPicnicDeathCob.cob", + "target": "ba_data/models/mapPicnicDeathCob.cob" + }, + "mapPicnicTransparent.bob": { + "md5": "8590631c1a0e40a549c955541ece7375", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mapPicnic/mapPicnicTransparent.bob", + "target": "ba_data/models/mapPicnicTransparent.bob" + }, + "mapPicnicColor.ktx": { + "md5": "8d680a695c4b3c646a1d868e448e5f08", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mapPicnic/mapPicnicColor.ktx", + "target": "ba_data/textures/mapPicnicColor.ktx" + }, + "mapPicnicTransparentCob.cob": { + "md5": "fce6f383c3e1c123577f584edb1395cd", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mapPicnic/mapPicnicTransparentCob.cob", + "target": "ba_data/models/mapPicnicTransparentCob.cob" + }, + "mapPicnicColor.dds": { + "md5": "5819ab98ba94437477162044ee2a7b8f", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mapPicnic/mapPicnicColor.dds", + "target": "ba_data/textures/mapPicnicColor.dds" + }, + "mapPicnicPreview.dds": { + "md5": "2c843812693868eaaa3b675650cf4f9c", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mapPicnic/mapPicnicPreview.dds", + "target": "ba_data/textures/mapPicnicPreview.dds" + }, + + # mario world map + "mbwMapPreview.dds": { + "md5": "6c6d7062799de2b898a2c674e3ffb314", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mbwMap/mbwMapPreview.dds", + "target": "ba_data/textures/mbwMapPreview.dds" + }, + "mbw.bob": { + "md5": "9e691e5f440fda84ca62337d39e55fba", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mbwMap/mbw.bob", + "target": "ba_data/models/mbw.bob" + }, + "mbwColor.ktx": { + "md5": "5278e9c816df915c26ade9e8385689ed", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mbwMap/mbwColor.ktx", + "target": "ba_data/textures/mbwColor.ktx" + }, + "mbwMapPreview.ktx": { + "md5": "77b9229478fce80db42a095eb8006b41", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mbwMap/mbwMapPreview.ktx", + "target": "ba_data/textures/mbwMapPreview.ktx" + }, + "mbwCob.cob": { + "md5": "2d043b3b0f79d8702db2a4e2c4207895", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mbwMap/mbwCob.cob", + "target": "ba_data/models/mbwCob.cob" + }, + "mbwColor.dds": { + "md5": "cf23e23848984494b2bf66e72687a5ff", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/mbwMap/mbwColor.dds", + "target": "ba_data/textures/mbwColor.dds" + }, + + # pacman map + "pacmanMapPreview.dds": { + "md5": "b5b99904392f574f7f799e8d64c3b7c6", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/pacmanMap/pacmanMapPreview.dds", + "target": "ba_data/textures/pacmanMapPreview.dds" + }, + "pacmanMap.bob": { + "md5": "c3123b22e06547968b6ec5d6c6986a0f", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/pacmanMap/pacmanMap.bob", + "target": "ba_data/models/pacmanMap.bob" + }, + "pacmanMapColor.ktx": { + "md5": "4c622b279250158afcfe9137a8d8b11a", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/pacmanMap/pacmanMapColor.ktx", + "target": "ba_data/textures/pacmanMapColor.ktx" + }, + "pacmanMapColor.dds": { + "md5": "4c797309320a6d8e6426ae5534e7a140", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/pacmanMap/pacmanMapColor.dds", + "target": "ba_data/textures/pacmanMapColor.dds" + }, + "pacmanMapPreview.ktx": { + "md5": "1c2bf698b76cd05157b75d14cd84d6ac", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/pacmanMap/pacmanMapPreview.ktx", + "target": "ba_data/textures/pacmanMapPreview.ktx" + }, + "pacmanMapCob.cob": { + "md5": "47843aac9f607568e9cb087302984088", + "url": "https://raw.githubusercontent.com/JinxBs/BombSquad-Community-Plugin-Manager/main/Maps/pacmanMap/pacmanMapCob.cob", + "target": "ba_data/models/pacmanMapCob.cob" + }, + + # geom map + "geomArcoMap.bob": { + "md5": "37dbfb68c13bbeeba708e4b6039f8f12", + "url": "https://github.com/Freaku17/BombSquad-Mods-byFreaku/blob/main/Maps/Geometry2D/geomArcoMap.bob?raw=true", + "target": "ba_data/models/geomArcoMap.bob" + }, + "geomExtraMap.bob": { + "md5": "29ec1b79df4c66bb79c61b42305e1be5", + "url": "https://github.com/Freaku17/BombSquad-Mods-byFreaku/blob/main/Maps/Geometry2D/geomExtraMap.bob?raw=true", + "target": "ba_data/models/geomExtraMap.bob" + }, + "geomMap.bob": { + "md5": "1229805f9511ce739badd87da1b7dae9", + "url": "https://github.com/Freaku17/BombSquad-Mods-byFreaku/blob/main/Maps/Geometry2D/geomMap.bob?raw=true", + "target": "ba_data/models/geomMap.bob" + }, + "geomMapBG.bob": { + "md5": "84a5bcd0405b1c8f03634af6f5ee2bb6", + "url": "https://github.com/Freaku17/BombSquad-Mods-byFreaku/blob/main/Maps/Geometry2D/geomMapBG.bob?raw=true", + "target": "ba_data/models/geomMapBG.bob" + }, + "geomMapBGColor.dds": { + "md5": "9f5cfdb9ade877c3557308d467d6fa74", + "url": "https://github.com/Freaku17/BombSquad-Mods-byFreaku/blob/main/Maps/Geometry2D/geomMapBGColor.dds?raw=true", + "target": "ba_data/textures/geomMapBGColor.dds" + }, + "geomMapBGColor.ktx": { + "md5": "2de2a3390e3ddea36178f8197ffefabb", + "url": "https://github.com/Freaku17/BombSquad-Mods-byFreaku/blob/main/Maps/Geometry2D/geomMapBGColor.ktx?raw=true", + "target": "ba_data/textures/geomMapBGColor.ktx" + }, + "geomMapColor.dds": { + "md5": "3b64295efd44a3ee5dc6ec0606aa43dc", + "url": "https://github.com/Freaku17/BombSquad-Mods-byFreaku/blob/main/Maps/Geometry2D/geomMapColor.dds?raw=true", + "target": "ba_data/textures/geomMapColor.dds" + }, + "geomMapColor.ktx": { + "md5": "09c37e28d613112977b9de01d548354c", + "url": "https://github.com/Freaku17/BombSquad-Mods-byFreaku/blob/main/Maps/Geometry2D/geomMapColor.ktx?raw=true", + "target": "ba_data/textures/geomMapColor.ktx" + }, + "geomMapDeathCob.cob": { + "md5": "f6cfb43bccc522c461dd700cfd41ee57", + "url": "https://github.com/Freaku17/BombSquad-Mods-byFreaku/blob/main/Maps/Geometry2D/geomMapDeathCob.cob?raw=true", + "target": "ba_data/models/geomMapDeathCob.cob" + }, + "geomMapPreview.dds": { + "md5": "7f6feb2c7c413cc572c987e37d2b3147", + "url": "https://github.com/Freaku17/BombSquad-Mods-byFreaku/blob/main/Maps/Geometry2D/geomMapPreview.dds?raw=true", + "target": "ba_data/textures/geomMapPreview.dds" + }, + "geomMapPreview.ktx": { + "md5": "bdf84c5f279e9fce5b6beac924bc09bf", + "url": "https://github.com/Freaku17/BombSquad-Mods-byFreaku/blob/main/Maps/Geometry2D/geomMapPreview.ktx?raw=true", + "target": "ba_data/textures/geomMapPreview.ktx" + }, + "geomMapCob.cob": { + "md5": "ac62d729bb62bb98081c816814e390d3", + "url": "https://github.com/Freaku17/BombSquad-Mods-byFreaku/blob/main/Maps/Geometry2D/geomMapCob.cob?raw=true", + "target": "ba_data/models/geomMapCob.cob" + }, + + # lava map + "washMap.bob": { + "md5": "f6d1537b7a4a6c4ae2ed258d44ba51a0", + "url": "https://raw.githubusercontent.com/Freaku17/BombSquad-Mods-byFreaku/main/Maps/LavaMap/washMap.bob", + "target": "ba_data/models/washMap.bob" + }, + "washMapBG.bob": { + "md5": "7943b3d5133742aad663d96404e8b6ff", + "url": "https://raw.githubusercontent.com/Freaku17/BombSquad-Mods-byFreaku/main/Maps/LavaMap/washMapBG.bob", + "target": "ba_data/models/washMapBG.bob" + }, + "washMapCob.cob": { + "md5": "e7b32899e5a2517dc8e4616ea38a48ea", + "url": "https://raw.githubusercontent.com/Freaku17/BombSquad-Mods-byFreaku/main/Maps/LavaMap/washMapCob.cob", + "target": "ba_data/models/washMapCob.cob" + }, + "washMapColor.dds": { + "md5": "ba2ff0a35404e591e4bada4eada7fb80", + "url": "https://raw.githubusercontent.com/Freaku17/BombSquad-Mods-byFreaku/main/Maps/LavaMap/washMapColor.dds", + "target": "ba_data/textures/washMapColor.dds" + }, + "washMapColor.ktx": { + "md5": "1340f62ffcd0385045894d2513d67969", + "url": "https://raw.githubusercontent.com/Freaku17/BombSquad-Mods-byFreaku/main/Maps/LavaMap/washMapColor.ktx", + "target": "ba_data/textures/washMapColor.ktx" + }, + "washMapDeath.bob": { + "md5": "6731144ddfc55b08c03c3c48462e7df0", + "url": "https://raw.githubusercontent.com/Freaku17/BombSquad-Mods-byFreaku/main/Maps/LavaMap/washMapDeath.bob", + "target": "ba_data/models/washMapDeath.bob" + }, + "washMapDeathCob.cob": { + "md5": "70daadd2374198bd5d71dadc1828c96b", + "url": "https://raw.githubusercontent.com/Freaku17/BombSquad-Mods-byFreaku/main/Maps/LavaMap/washMapDeathCob.cob", + "target": "ba_data/models/washMapDeathCob.cob" + }, + "washMapPreview.ktx": { + "md5": "35090e1fad9b5344ca152312d51bb65d", + "url": "https://raw.githubusercontent.com/Freaku17/BombSquad-Mods-byFreaku/main/Maps/LavaMap/washMapPreview.ktx", + "target": "ba_data/textures/washMapPreview.ktx" + }, + "washMapPreview.dds": { + "md5": "91bc3dccd1cbf95c6ddf75702024a991", + "url": "https://raw.githubusercontent.com/Freaku17/BombSquad-Mods-byFreaku/main/Maps/LavaMap/washMapPreview.dds", + "target": "ba_data/textures/washMapPreview.dds" + } +} + + +def Install_msg(): + ba.screenmessage(f"Installing: {package_name}", color=(1, 1, 0)) + +def Update_msg(): + ba.screenmessage(f"Updating: {package_name}", color=(1,1,0)) + +def Update_success(): + ba.screenmessage(f"Update Success, please restart game :)", color=(1,1,0)) + +class PackInstaller: + def __init__(self, name, package_files): + self.name = name + self.package_files = package_files + self.give_update_popup = False + self.give_update_success = False + if self._installed(): + threading.Thread(target=self.check_update).start() + ba.timer(3, self.get_update_clue) + ba.timer(5, self.update_success_clue) + return + try: + ba.timer(1, Install_msg) + download = threading.Thread(target=self.download) + download.start() + except: + ba.print_exception() + + def check_update(self): + check_url = "https://raw.githubusercontent.com/Freaku17/BombSquad-Mods-byFreaku/main/Maps/allMapsInOne/url_version.txt" + try: + response = urllib.request.urlopen(check_url) + if response.getcode() == 200: + ur_version = response.read().decode() + except Exception as e: + print(e) + ur_version = my_version + if int(ur_version) > my_version: + self.give_update_popup = True + self.updateit() + else: return + + def updateit(self): + update_url = "https://raw.githubusercontent.com/Freaku17/BombSquad-Mods-byFreaku/main/Maps/allMapsInOne/allMapsInOne.py" + updated_file = "" + try: + response = urllib.request.urlopen(update_url) + if response.getcode() == 200: + updated_file = response.read().decode() + with open(file_location, 'w+') as f: + f.write(updated_file) + f.close() + self.give_update_success = True + except Exception as e: + print(e) + + def get_update_clue(self): + if self.give_update_popup: Update_msg() + + def update_success_clue(self): + if self.give_update_success: Update_success() + + def _get_md5(self, file): + with open(file, 'rb') as f: + data = f.read() + return md5(data).hexdigest() + + def _installed(self): + for info in self.package_files.values(): + if not os.path.exists(info['target']): + return False + if check_md5: + if self._get_md5(info['target']) != info['md5']: + return False + return True + + def download(self): + for info in self.package_files.values(): + + # download only if file isnt present + if os.path.exists(info['target']) and self._get_md5(info['target']) == info['md5']: + continue + request = info['url'] + try: + response = urllib.request.urlopen(request) + if response.getcode() == 200: + data = response.read() + with open(info['target'], 'wb') as f: + f.write(data) + except: + ba.print_exception() + +class geomMapDefs: +# This file was automatically generated from "alwaysLandLevel.ma" + points= {} + boxes = {} + points['ffa_spawn1'] = (-12.0422, 14.94395, -5.44451) + (1.55584, 0.05, 0.11656) + points['ffa_spawn2'] = (8.44448, 14.94068, -5.61448) + (1.55386, 0.05, 0.0442) + points['ffa_spawn3'] = (-7.23133, 12.23867, -5.61448) + (1.33793, 0.05, 0.0442) + points['ffa_spawn4'] = (3.96227, 12.25704, -5.61448) + (1.33793, 0.05, 0.0442) + points['ffa_spawn5'] = (-12.97798, 7.37773, -5.61448) + (0.90462, 0.05, 0.0442) + points['ffa_spawn6'] = (5.83325, 7.69005, -5.52167) + (0.97071, 0.05, 0.00758) + points['flag1'] = (-13.02317, 7.59685, -5.52) + points['flag2'] = (10.71013, 6.72526, -5.52) + points['flag3'] = (-12.12348, 15.19512, -5.52) + points['flag4'] = (8.56178, 15.09921, -5.52) + points['flag_default'] = (-1.91162, 10.61648, -5.52) + points['powerup_spawn1'] = (-13.62341, 15.21751, -5.46911) + points['powerup_spawn2'] = (10.21625, 15.23359, -5.50572) + points['powerup_spawn3'] = (-7.79082, 6.81023, -5.57623) + points['powerup_spawn4'] = (0.64672, 6.66186, -5.57623) + points['spawn1'] = (-12.96446, 7.35024, -5.44451) + (0.92773, 0.05, 0.11656) + points['spawn2'] = (10.77293, 6.6801, -5.61448) + (0.81303, 0.05, 0.0442) + points['spawn_by_flag1'] = (-13.01779, 7.34912, -5.44451) + (0.80423, 0.05, 0.11656) + points['spawn_by_flag2'] = (10.76989, 6.67741, -5.61448) + (0.70346, 0.05, 0.0442) + points['spawn_by_flag3'] = (-12.23744, 14.93243, -5.53528) + (0.95164, 0.05, 0.08607) + points['spawn_by_flag4'] = (8.6825, 14.95201, -5.59898) + (0.69982, 0.05, 0.01941) + boxes['area_of_interest_bounds'] = (-1.04586, 12.67723, -5.40154) + (0, 0, 0) + (34.46157, 20.94045, 0.69316) + boxes['map_bounds'] = (-0.87483, 9.21294, -5.72954) + (0, 0, 0) + (36.09666, 26.1995, 7.89541) + +class GeomMap(ba.Map): + defs = geomMapDefs() + name = 'Geometrical Dominator' + + @classmethod + def get_play_types(cls) -> List[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'conquest', 'king_of_the_hill'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'geomMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: Dict[str, Any] = { + 'model': ba.getmodel('geomMap'), + 'model_arco': ba.getmodel('geomArcoMap'), + 'model_extra': ba.getmodel('geomExtraMap'), + 'collide_model': ba.getcollidemodel('geomMapCob'), + 'collide_death': ba.getcollidemodel('geomMapDeathCob'), + 'tex': ba.gettexture('geomMapColor'), + 'bg_tex': ba.gettexture('geomMapBGColor'), + 'bg_model': ba.getmodel('alwaysLandBG'), + 'bg_model2': ba.getmodel('geomMapBG'), + 'bg_material': ba.Material() + } + data['bg_material'].add_actions(actions=('modify_part_collision', + 'friction', 10.0)) + return data + + @classmethod + def get_music_type(cls) -> ba.MusicType: + return ba.MusicType.FLYING + + def __init__(self) -> None: + super().__init__(vr_overlay_offset=(0, -3.7, 2.5)) + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.nodeArco = ba.newnode('terrain', delegate=self, attrs={ + 'model': self.preloaddata['model_arco'], + 'lighting': False, + 'color_texture': self.preloaddata['tex'] + }) + self.nodeExtra = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'model': self.preloaddata['model_extra'], + 'lighting': False, + 'color_texture': self.preloaddata['tex'] + }) + self.death = ba.newnode('terrain', delegate=self, attrs={ + 'collide_model':self.preloaddata['collide_death'], + 'materials':[shared.footing_material, shared.death_material]}) + self.foo = ba.newnode('terrain', attrs={ + 'model':self.preloaddata['bg_model'], + 'lighting':False, + 'background':True, + 'color_texture':self.preloaddata['bg_tex']}) + self.bg = ba.newnode('terrain', attrs={ + 'model':self.preloaddata['bg_model2'], + 'lighting':False, + 'background':True, + 'color_texture':self.preloaddata['bg_tex']}) + gnode = ba.getactivity().globalsnode + gnode.happy_thoughts_mode = True + gnode.shadow_offset = (0.0, 8.0, 5.0) + gnode.tint = (1.3, 1.23, 1.0) + gnode.ambient_color = (1.3, 1.23, 1.0) + gnode.vignette_outer = (0.64, 0.59, 0.69) + gnode.vignette_inner = (0.95, 0.95, 0.93) + gnode.vr_near_clip = 1.0 + self.is_flying = True + + # throw out some tips on flying + txt = ba.newnode('text', + attrs={ + 'text': ba.Lstr(resource='pressJumpToFlyText'), + 'scale': 1.2, + 'maxwidth': 800, + 'position': (0, 200), + 'shadow': 0.5, + 'flatness': 0.5, + 'h_align': 'center', + 'v_attach': 'bottom' + }) + cmb = ba.newnode('combine', + owner=txt, + attrs={ + 'size': 4, + 'input0': 0.3, + 'input1': 0.9, + 'input2': 0.0 + }) + ba.animate(cmb, 'input3', {3.0: 0, 4.0: 1, 9.0: 1, 10.0: 0}) + cmb.connectattr('output', txt, 'color') + ba.timer(10.0, txt.delete) + + +class washMapDefs: +# pylint: disable=all + points = {} +# noinspection PyDictCreation + boxes = {} + points['ffa_spawn1'] = (-0.04757, 1.09686, -3.89173) + (3.8064, 0.05, 0.44435) + points['ffa_spawn2'] = (-0.04757, 1.08571, 3.37578) + (3.8064, 0.05, 0.44435) + points['flag_default'] = (-0.10014, 1.44659, -0.47588) + points['powerup_spawn1'] = (-0.30229, 1.50386, -7.7884) + points['powerup_spawn2'] = (-7.553, 1.50386, -0.3482) + points['powerup_spawn3'] = (-0.3006, 1.50386, 7.01017) + points['powerup_spawn4'] = (7.23978, 1.50386, -0.35983) + points['spawn1'] = (-3.48876, 1.09929, -0.24436) + (0.5, 0.05, 4.0) + points['spawn2'] = (3.40264, 1.1049, -0.27694) + (0.5, 0.05, 4.0) + boxes['area_of_interest_bounds'] = (0.0, 1.18575,0.43262) + (0.0, 0.0, 0.0) + (29.81803, 17.99181, 18.89134) + boxes['edge_box'] = (-0.10387, 0.41333, 0.42947) + (0.0, 0.0, 0.0) + (22.48296, 1.29024, 8.99025) + boxes['map_bounds'] = (0.0, 1.18575, 0.43262) + (0.0, 0.0, 0.0) + (42.09507, 35.46551, 29.76723) + +class WashMap(ba.Map): + defs = washMapDefs() + name = 'Wash Map' + + @classmethod + def get_play_types(cls) -> List[str]: + """Return valid play types for this map.""" + return ['melee', 'king_of_the_hill', 'keep_away'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'washMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: Dict[str, Any] = { + 'model': ba.getmodel('washMap'), + 'collide_model': ba.getcollidemodel('washMapCob'), + 'model_death': ba.getmodel('washMapDeath'), + 'collide_death': ba.getcollidemodel('washMapDeathCob'), + 'tex': ba.gettexture('washMapColor'), + 'model_bg': ba.getmodel('washMapBG'), + 'bg_material': ba.Material() + } + data['bg_material'].add_actions(actions=('modify_part_collision', + 'friction', 10.0)) + return data + + def __init__(self): + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.death = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_death'], + 'model': self.preloaddata['model_death'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material, + shared.death_material] + }) + self.background = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'model': self.preloaddata['model_bg'], + 'lighting': False, + 'background': True, + 'color_texture': self.preloaddata['tex'] + }) + gnode = ba.getactivity().globalsnode + gnode.tint = (1.1, 1.1, 1.0) + gnode.ambient_color = (1.1, 1.1, 1.0) + gnode.vignette_outer = (0.7, 0.65, 0.75) + gnode.vignette_inner = (0.95, 0.95, 0.93) + +class ArenaminigoremapDefs: + # This file was automatically generated from "thePadLevel.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (-4.42149, 3.1618, -7.59045) + (3.13882, 0.05, 2.58941) + points['ffa_spawn2'] = (4.89134, 3.18797, -7.59754) + (3.13385, 0.05, 2.56661) + points['ffa_spawn3'] = (4.87849, 3.16192, 1.10463) + (3.11134, 0.05, 2.49891) + points['ffa_spawn4'] = (-4.42791, 3.16192, 1.10463) + (3.12373, 0.05, 2.57577) + points['flag1'] = (-8.85376, 3.08991, -3.21865) + points['flag2'] = (9.53636, 3.14715, -3.35611) + points['flag_default'] = (0.30888, 3.16322, -3.28703) + points['powerup_spawn1'] = (-4.16659, 3.42372, -6.42749) + points['powerup_spawn2'] = (4.42687, 3.48435, -6.32974) + points['powerup_spawn3'] = (-4.20169, 3.26527, 0.44007) + points['powerup_spawn4'] = (4.75892, 3.26527, 0.34941) + points['spawn1'] = (-8.35908, 3.1618, -3.16719) + (0.42967, 0.05, 2.68171) + points['spawn2'] = (8.96465, 3.18797, -3.18894) + (0.42967, 0.05, 2.68171) + points['tnt1'] = (-7.91677, 3.55083, -10.26691) + points['tnt2'] = (8.8223, 3.55083, -10.26691) + points['tnt3'] = (-7.91677, 3.55083, 3.94815) + points['tnt4'] = (8.8223, 3.55083, 3.94815) + boxes['area_of_interest_bounds'] = (0.35634, 4.49356, -2.2642) + (0, 0, 0) + (17.33594, 12.05851, 18.50299) + boxes['map_bounds'] = (0.25894, 4.89966, -3.79786) + (0, 0, 0) + (30.44458, 21.24073, 29.92689) + + +class ArenaMinigore(ba.Map): + defs = ArenaminigoremapDefs() + name = 'Hardland Arena' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'arenaMinigorePreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('arenaminigoreMap'), + 'collide_model': ba.getcollidemodel('arenaminigoreMapCob'), + 'tex': ba.gettexture('arenaminigoreMapColor') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + + gnode = ba.getactivity().globalsnode + gnode.tint = (1.1, 1.1, 1.0) + gnode.ambient_color = (1.1, 1.1, 1.0) + gnode.vignette_outer = (0.7, 0.65, 0.75) + gnode.vignette_inner = (0.95, 0.95, 0.93) + + +class BikiniBottomDefs: + # This file was automatically generated from "thePadLevel.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (-12.941, 0.49259, 0.40543) + (0.4868, 0.05, 1.25935) + points['ffa_spawn2'] = (10.01692, 0.53469, -5.54644) + (2.14841, 0.05, 0.69308) + points['ffa_spawn3'] = (12.65346, 0.5398, 0.32502) + (0.41375, 0.05, 1.32322) + points['ffa_spawn4'] = (-9.92497, 0.54031, -5.55539) + (2.1591, 0.05, 0.65578) + points['flag1'] = (-10.10481, 0.81866, 5.65734) + points['flag2'] = (9.64363, 0.7631, 5.65322) + points['flag_default'] = (0.20325, 3.43438, -4.75406) + points['powerup_spawn1'] = (-7.33996, 0.7924, 1.15642) + points['powerup_spawn2'] = (-2.61051, 0.7562, 1.13188) + points['powerup_spawn3'] = (2.95595, 0.75344, 1.11008) + points['powerup_spawn4'] = (7.01624, 0.77552, 1.14522) + points['spawn1'] = (-9.92708, 0.52016, -5.56546) + (2.30817, 0.05, 0.69569) + points['spawn2'] = (10.03658, 0.50706, -5.54186) + (2.35914, 0.05, 0.71615) + points['tnt1'] = (0.0365, 0.87095, 5.72216) + boxes['area_of_interest_bounds'] = (-0.01839, 1.30799, 0.46229) + (0, 0, 0) + (38.48324, 21.2151, 14.40626) + boxes['map_bounds'] = (0.47584, 4.09931, 0.09103) + (0, 0, 0) + (59.82487, 27.42716, 23.30082) + + +class Cangremovil(ba.Actor): + def __init__(self, + position: Sequence[float] = (0.0, 1.0, 0.0), + position2: Sequence[float] = (0.0, 1.0, 0.0), + time: float = 5.0): + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'prop', + delegate=self, + attrs={ + 'position': position, + 'model': ba.getmodel('cangremovilModel'), + 'body': 'crate', + 'body_scale': 3.0, + 'density': 999999999999999999999, + 'damping': 999999999999999999999, + 'gravity_scale': 0.0, + 'reflection': 'powerup', + 'reflection_scale': [0.3], + 'color_texture': ba.gettexture('cangremovilColor'), + 'materials': [shared.footing_material] + } + ) + ba.animate_array(self.node, + 'position', + 3, + {0.0: position, time: position2}, loop=True) + + +class BikiniBottomMap(ba.Map): + defs = BikiniBottomDefs() + name = 'Bikini Bottom' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'bikiniBottomPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('bikiniBottomMap'), + 'collide_model': ba.getcollidemodel('bikiniBottomMapCob'), + 'tex': ba.gettexture('bikiniBottomMapColor'), + 'bgtex': ba.gettexture('bikiniBottomMapBGColor'), + 'bgmodel': ba.getmodel('bikiniBottomMapBG') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + Cangremovil(position=(-30.10481, 0.81866, 3.05734), + position2=(30.10481, 0.81866, 3.05734), + time=3.0).autoretain() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + + self.background = ba.newnode( + 'terrain', + attrs={ + 'model': self.preloaddata['bgmodel'], + 'lighting': False, + 'materials': [shared.footing_material], + 'color_texture': self.preloaddata['bgtex'] + }) + gnode = ba.getactivity().globalsnode + gnode.tint = (1.1, 1.1, 1.0) + gnode.ambient_color = (1.1, 1.1, 1.0) + gnode.vignette_outer = (0.7, 0.65, 0.75) + gnode.vignette_inner = (0.95, 0.95, 0.93) + + +class BombermanDefs: + # This file was automatically generated from "thePadLevel.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (-6.67542, 3.68439, -5.53375) + (0.36007, 0.02575, 0.9315) + points['ffa_spawn2'] = (-7.2624, 3.71553, -0.03071) + (0.51265, 0.02934, 1.58911) + points['ffa_spawn3'] = (7.19605, 3.71931, -5.43993) + (0.30604, 0.05, 0.97874) + points['ffa_spawn4'] = (7.7071, 3.71969, -0.02085) + (0.48506, 0.05, 1.59702) + points['flag1'] = (-5.53975, 4.90844, -1.29316) + points['flag2'] = (6.03798, 4.86734, -1.2541) + points['flag_default'] = (0.25697, 4.91175, -1.23932) + points['powerup_spawn1'] = (-4.26423, 4.15187, -2.68368) + points['powerup_spawn2'] = (4.7916, 4.12509, -2.73491) + points['powerup_spawn3'] = (-4.29883, 4.12305, 0.08537) + points['powerup_spawn4'] = (4.8075, 4.13938, 0.12609) + points['spawn1'] = (-7.28662, 3.70478, -1.38929) + (0.51458, 0.05, 1.70728) + points['spawn2'] = (7.72787, 3.75089, -0.76991) + (0.52971, 0.05, 2.20823) + points['tnt1'] = (0.32876, 3.96425, -6.16745) + boxes['area_of_interest_bounds'] = (0.64605, 8.43146, 1.88631) + (0, 0, 0) + (12.56183, 9.47264, 10.65585) + boxes['map_bounds'] = (0.56149, 10.49611, -2.47924) + (0, 0, 0) + (22.0605, 16.68579, 17.23487) + + +class BombermanMap(ba.Map): + defs = BombermanDefs() + name = 'BombermanMap' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'bombermanMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('bombermanMap'), + 'collide_model': ba.getcollidemodel('bombermanMapCob'), + 'tex': ba.gettexture('bombermanMapColor') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + + gnode = ba.getactivity().globalsnode + gnode.tint = (1.1, 1.1, 1.0) + gnode.ambient_color = (1.1, 1.1, 1.0) + gnode.vignette_outer = (0.7, 0.65, 0.75) + gnode.vignette_inner = (0.95, 0.95, 0.93) + + +class CouragemapDefs: + # This file was automatically generated from "thePadLevel.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (-6.5205, 1.13883, 4.19109) + (0.4868, 0.05, 1.25935) + points['ffa_spawn2'] = (8.78868, 1.18093, -2.49017) + (0.69308, 0.05, 2.14841) + points['ffa_spawn3'] = (8.22231, 1.18604, 4.1369) + (0.41375, 0.05, 1.32322) + points['ffa_spawn4'] = (-6.39927, 1.18655, -2.2972) + (0.65578, 0.05, 2.1591) + points['flag1'] = (-6.40246, 1.4649, -0.18825) + points['flag2'] = (8.6688, 1.40934, -0.34307) + points['flag_default'] = (1.10226, 1.46938, 3.37262) + points['powerup_spawn1'] = (-2.72635, 1.43864, -2.69105) + points['powerup_spawn2'] = (4.57531, 1.40244, -2.55269) + points['powerup_spawn3'] = (-2.5655, 1.39968, 5.91099) + points['powerup_spawn4'] = (4.63833, 1.42176, 5.88299) + points['spawn1'] = (-6.43877, 1.1664, -2.26988) + (0.69569, 0.05, 2.30817) + points['spawn2'] = (8.71112, 1.1533, -2.47063) + (0.71615, 0.05, 2.35914) + points['tnt1'] = (-7.47936, 1.51719, 1.60992) + points['tnt2'] = (9.08903, 1.52706, 1.56156) + boxes['area_of_interest_bounds'] = (0.59016, 0.74947, 3.06926) + (0, 0, 0) + (16.98306, 12.80661, 14.40626) + boxes['edge_box'] = (1.01079, 3.81195, -0.03497) + (0, 0, 0) + (9.46205, 7.07351, 5.54318) + boxes['map_bounds'] = (0.47584, 3.54079, -2.83278) + (0, 0, 0) + (29.82487, 22.55849, 23.30082) + + +class CourageMap(ba.Map): + defs = CouragemapDefs() + name = 'Courage' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'courageMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('courageMap'), + 'collide_model': ba.getcollidemodel('courageMapCob'), + 'tex': ba.gettexture('courageMapColor'), + 'bgtex': ba.gettexture('courageBGColor'), + 'bgmodel': ba.getmodel('thePadBG') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + + self.background = ba.newnode( + 'terrain', + attrs={ + 'model': self.preloaddata['bgmodel'], + 'lighting': False, + 'background': True, + 'color_texture': self.preloaddata['bgtex'] + }) + gnode = ba.getactivity().globalsnode + gnode.tint = (0.8, 0.9, 1.3) + gnode.ambient_color = (0.8, 0.9, 1.3) + gnode.vignette_outer = (0.79, 0.79, 0.69) + gnode.vignette_inner = (0.97, 0.97, 0.99) + + def is_point_near_edge(self, + point: ba.Vec3, + running: bool = False) -> bool: + # count anything off our ground level as safe (for our platforms) + # see if we're within edge_box + box_position = self.defs.boxes['edge_box'][0:3] + box_scale = self.defs.boxes['edge_box'][6:9] + xpos = (point.x - box_position[0]) / box_scale[0] + zpos = (point.z - box_position[2]) / box_scale[2] + return xpos < -0.5 or xpos > 0.5 or zpos < -0.5 or zpos > 0.5 + + +class CragcastlemapDefs: + # This file generated from "cragCastleBig.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (-2.22659, 14.63751, 11.52419) + (1.55044, 0.03137, 0.1124) + points['ffa_spawn2'] = (3.71513, 14.66076, 11.55282) + (1.51546, 0.03137, 0.11228) + points['ffa_spawn3'] = (3.35989, 15.7454, 9.97398) + (1.01492, 0.03137, 0.11228) + points['ffa_spawn4'] = (-1.9671, 15.7454, 9.97398) + (1.01492, 0.03137, 0.11228) + points['ffa_spawn5'] = (-1.20575, 13.62445, 13.76571) + (1.01492, 0.03137, 0.11228) + points['ffa_spawn6'] = (2.51764, 13.62445, 13.76571) + (1.01492, 0.03137, 0.11228) + points['flag1'] = (-0.88318, 15.77746, 9.70605) + points['flag2'] = (2.34138, 15.74996, 9.73634) + points['flag3'] = (-4.00945, 14.59352, 13.8783) + points['flag4'] = (5.4491, 14.59501, 13.84305) + points['flag_default'] = (0.70381, 13.80694, 13.71932) + points['powerup_spawn1'] = (5.27504, 14.8211, 9.98847) + points['powerup_spawn2'] = (-0.12894, 14.84951, 9.9409) + points['powerup_spawn3'] = (1.47447, 14.8553, 9.93446) + points['powerup_spawn4'] = (-3.87666, 14.91756, 9.90655) + points['spawn1'] = (-2.93425, 14.63751, 11.52419) + (0.66332, 0.03137, 0.1124) + points['spawn2'] = (4.20019, 14.66076, 11.55282) + (0.63351, 0.03137, 0.11228) + points['spawn_by_flag1'] = (-1.49292, 15.77746, 9.95693) + points['spawn_by_flag2'] = (3.01471, 15.77746, 9.95693) + points['spawn_by_flag3'] = (-3.85287, 14.61411, 13.37536) + points['spawn_by_flag4'] = (5.2451, 14.61411, 13.37536) + points['tnt1'] = (-2.85167, 16.18561, 9.88324) + points['tnt2'] = (4.20036, 16.18561, 9.88324) + boxes['area_of_interest_bounds'] = (0.75009, 14.01822, 11.76844) + (0, 0, 0) + (10.49919, 9.37717, 7.27735) + boxes['map_bounds'] = (0.44951, 15.90257, 11.61652) + (0, 0, 0) + (14.40166, 6.21587, 8.89543) + + +class CragCastleBigMap(ba.Map): + defs = CragcastlemapDefs() + name = 'Crag Castle Big' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'conquest'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'cragCastleBigPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('cragCastleLevelBig'), + 'bottom_model': ba.getmodel('cragCastleLevelBottomBig'), + 'collide_model': ba.getcollidemodel('cragCastleLevelCollideBig'), + 'tex': ba.gettexture('cragCastleLevelColor'), + 'bgtex': ba.gettexture('menuBG'), + 'bgmodel': ba.getmodel('thePadBG'), + 'railing_collide_model': + (ba.getcollidemodel('cragCastleLevelBumperBig')), + 'vr_fill_mound_model': ba.getmodel('cragCastleVRFillMound'), + 'vr_fill_mound_tex': ba.gettexture('vrFillMound') + } + # fixme should chop this into vr/non-vr sections + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.bottom = ba.newnode('terrain', + attrs={ + 'model': self.preloaddata['bottom_model'], + 'lighting': False, + 'color_texture': self.preloaddata['tex'] + }) + self.background = ba.newnode( + 'terrain', + attrs={ + 'model': self.preloaddata['bgmodel'], + 'lighting': False, + 'background': True, + 'color_texture': self.preloaddata['bgtex'] + }) + self.railing = ba.newnode( + 'terrain', + attrs={ + 'collide_model': self.preloaddata['railing_collide_model'], + 'materials': [shared.railing_material], + 'bumper': True + }) + ba.newnode('terrain', + attrs={ + 'model': self.preloaddata['vr_fill_mound_model'], + 'lighting': False, + 'vr_only': True, + 'color': (0.2, 0.25, 0.2), + 'background': True, + 'color_texture': self.preloaddata['vr_fill_mound_tex'] + }) + gnode = ba.getactivity().globalsnode + gnode.shadow_ortho = True + gnode.shadow_offset = (0, 0, -5.0) + gnode.tint = (1.15, 1.05, 0.75) + gnode.ambient_color = (1.15, 1.05, 0.75) + gnode.vignette_outer = (0.6, 0.65, 0.6) + gnode.vignette_inner = (0.95, 0.95, 0.95) + gnode.vr_near_clip = 1.0 + + +class DreamlandmapDefs: + # This file generated from "torneo.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (-6.69624, 2.85039, -4.10288) + (0.77236, 0.05, 0.87378) + points['ffa_spawn2'] = (-10.40827, 2.85039, -1.56054) + (0.77236, 0.05, 0.87378) + points['ffa_spawn3'] = (-8.65731, 2.85039, 2.62386) + (0.77236, 0.05, 0.87378) + points['ffa_spawn4'] = (-2.02022, 2.85039, 4.61688) + (0.77236, 0.05, 0.87378) + points['ffa_spawn5'] = (1.86972, 2.85039, 4.72121) + (0.77236, 0.05, 0.87378) + points['ffa_spawn6'] = (8.4577, 2.85039, 2.62079) + (0.77236, 0.05, 0.87378) + points['ffa_spawn7'] = (10.39531, 2.85039, -1.52552) + (0.77236, 0.05, 0.87378) + points['ffa_spawn8'] = (6.67172, 2.85039, -4.13483) + (0.77236, 0.05, 0.87378) + points['flag1'] = (-11.02499, 3.17053, 0.88749) + points['flag2'] = (11.10934, 3.17053, 0.88885) + points['flag3'] = (-8.37111, 3.25837, -4.26217) + points['flag4'] = (8.32579, 3.3096, -4.23468) + points['flag5'] = (-2.36192, 3.21392, 4.21456) + points['flag6'] = (2.24404, 3.21392, 4.31202) + points['flag_default'] = (-0.16211, 3.663, -0.46622) + points['powerup_spawn1'] = (-8.08751, 3.11164, -6.17346) + points['powerup_spawn2'] = (-6.24881, 3.0105, -0.35762) + points['powerup_spawn3'] = (-2.07277, 3.11164, 6.74271) + points['powerup_spawn4'] = (1.84842, 3.11164, 6.75979) + points['powerup_spawn5'] = (6.08678, 3.0105, -0.38878) + points['powerup_spawn6'] = (8.08131, 3.11164, -6.15938) + points['spawn1'] = (-9.46633, 2.84651, 0.25554) + (0.87378, 0.05, 1.6634) + points['spawn2'] = (9.38817, 2.84651, 0.21746) + (0.87378, 0.05, 1.6634) + points['spawn_by_flag1'] = (-10.01502, 2.85596, 1.81426) + (0.84416, 0.05, 0.84945) + points['spawn_by_flag2'] = (10.15712, 3.12542, 1.82582) + (0.85053, 0.05, 0.83403) + points['spawn_by_flag3'] = (-7.454, 2.95629, -3.34154) + (0.8398, 0.05, 0.83771) + points['spawn_by_flag4'] = (7.38268, 2.89333, -3.31041) + (0.84957, 0.05, 0.83771) + points['spawn_by_flag5'] = (-2.22089, 3.01925, 5.55799) + (0.8398, 0.05, 0.83771) + points['spawn_by_flag6'] = (1.84214, 3.05073, 5.55764) + (0.83672, 0.05, 0.83771) + points['tnt1'] = (0.0091, 3.11164, -3.65076) + points['tnt2'] = (0.0091, 3.11164, 2.39515) + boxes['area_of_interest_bounds'] = (0.35441, 4.49356, -2.40045) + (0, 0, 0) + (29.91755, 23.28733, 24.08552) + boxes['map_bounds'] = (0.26088, 5.81105, -3.66161) + (0, 0, 0) + (54.98705, 41.72606, 26.50049) + + +class DreamlandMap(ba.Map): + defs = DreamlandmapDefs() + name = 'Dream Land' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill', 'conquest'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'dreamlandMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('dreamlandMap'), + 'collide_model': ba.getcollidemodel('dreamlandMapCob'), + 'modelb': ba.getmodel('dreamlandMapBottom'), + 'collide_modelb': ba.getcollidemodel('dreamlandMapBottomCob'), + 'tex': ba.gettexture('dreamlandMapColor'), + 'bgtex': ba.gettexture('uknucklesBGColor'), + 'bgmodel': ba.getmodel('thePadBG') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.nodeb = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_modelb'], + 'model': self.preloaddata['modelb'], + 'color_texture': self.preloaddata['tex'], + 'lighting': False, + 'materials': [shared.footing_material] + }) + self.background = ba.newnode( + 'terrain', + attrs={ + 'model': self.preloaddata['bgmodel'], + 'lighting': False, + 'background': True, + 'color_texture': self.preloaddata['bgtex'] + }) + gnode = ba.getactivity().globalsnode + gnode.tint = (0.9, 0.9, 1.3) + gnode.ambient_color = (0.8, 0.9, 1.3) + gnode.vignette_outer = (0.79, 0.79, 0.69) + gnode.vignette_inner = (0.97, 0.97, 0.99) + + +class EliminationChamberDefs: + # This file was automatically generated from "thePadLevel.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (-5.73834, 2.80152, -8.8294) + (0.16326, 0.05, 1.17729) + points['ffa_spawn2'] = (6.29593, 2.82769, -8.84425) + (1.17571, 0.05, 0.19976) + points['ffa_spawn3'] = (-5.73994, 2.80164, 3.14882) + (0.1102, 0.05, 1.11355) + points['ffa_spawn4'] = (6.28908, 2.80164, 3.1914) + (1.10532, 0.05, 0.1034) + points['flag1'] = (-6.75103, 3.00062, -2.80413) + points['flag2'] = (7.09391, 3.02284, -2.94835) + points['flag_default'] = (0.27249, 4.38208, -2.93376) + points['powerup_spawn1'] = (-6.64437, 3.08947, -6.27667) + points['powerup_spawn2'] = (-3.48047, 3.15009, -9.86327) + points['powerup_spawn3'] = (4.13658, 2.93102, -9.85887) + points['powerup_spawn4'] = (7.40907, 2.93102, -6.63147) + points['powerup_spawn5'] = (7.40355, 3.19542, 0.85875) + points['powerup_spawn6'] = (4.10369, 3.08724, 4.3101) + points['powerup_spawn7'] = (-3.61995, 3.09165, 4.27063) + points['powerup_spawn8'] = (-6.81122, 3.13612, 0.9741) + points['spawn1'] = (-5.47127, 2.70749, -0.86437) + (1.29739, 0.05, 0.87378) + points['spawn2'] = (6.18423, 2.73365, -4.87303) + (1.3172, 0.05, 0.87378) + boxes['area_of_interest_bounds'] = (0.35441, 2.49356, -2.51839) + (0, 0, 0) + (16.64755, 8.06139, 22.50299) + boxes['map_bounds'] = (0.26088, 4.89966, -3.54367) + (0, 0, 0) + (29.23565, 14.19991, 29.92689) + + +class EliminationRawMap(ba.Map): + defs = EliminationChamberDefs() + name = 'Elimination Chamber - Raw' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill', 'wwe'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'ecRawMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('ecRawMap'), + 'collide_model': ba.getcollidemodel('ecMapCob'), + 'modeli': ba.getmodel('ecRawInvMap'), + 'modelnl': ba.getmodel('ecRawNLMap'), + 'modelg': ba.getmodel('ecRawGlassMap'), + 'collide_modelg': ba.getcollidemodel('ecGlassMapCob'), + 'modele': ba.getmodel('ecExtMap'), + 'collide_modele': ba.getcollidemodel('ecExtMapCob'), + 'tex': ba.gettexture('ecMapColor'), + 'bgmodel': ba.getmodel('ecBGMap') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.nodenl = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'lighting': False, + 'model': self.preloaddata['modelnl'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.nodei = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'opacity': 0.05, + 'model': self.preloaddata['modeli'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.nodeg = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_modelg'], + 'model': self.preloaddata['modelg'], + 'color_texture': self.preloaddata['tex'], + 'lighting': False, + 'opacity': 0.2, + 'materials': [shared.footing_material] + }) + self.nodee = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_modele'], + 'model': self.preloaddata['modele'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.background = ba.newnode( + 'terrain', + attrs={ + 'model': self.preloaddata['bgmodel'], + 'lighting': False, + 'background': True, + 'color_texture': self.preloaddata['tex'] + }) + gnode = ba.getactivity().globalsnode + gnode.tint = (1.1, 1.1, 1.0) + gnode.ambient_color = (1.1, 1.1, 1.0) + gnode.vignette_outer = (0.7, 0.65, 0.75) + gnode.vignette_inner = (0.95, 0.95, 0.93) + + +class EliminationSDMap(ba.Map): + defs = EliminationChamberDefs() + name = 'Elimination Chamber - SD' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill', 'wwe'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'ecSDMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('ecSDMap'), + 'collide_model': ba.getcollidemodel('ecMapCob'), + 'modeli': ba.getmodel('ecSDInvMap'), + 'modelnl': ba.getmodel('ecSDNLMap'), + 'modelg': ba.getmodel('ecSDGlassMap'), + 'collide_modelg': ba.getcollidemodel('ecGlassMapCob'), + 'modele': ba.getmodel('ecExtMap'), + 'collide_modele': ba.getcollidemodel('ecExtMapCob'), + 'tex': ba.gettexture('ecMapColor'), + 'bgmodel': ba.getmodel('ecBGMap') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.nodenl = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'lighting': False, + 'model': self.preloaddata['modelnl'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.nodei = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'opacity': 0.05, + 'model': self.preloaddata['modeli'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.nodeg = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_modelg'], + 'model': self.preloaddata['modelg'], + 'color_texture': self.preloaddata['tex'], + 'lighting': False, + 'opacity': 0.2, + 'materials': [shared.footing_material] + }) + self.nodee = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_modele'], + 'model': self.preloaddata['modele'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.background = ba.newnode( + 'terrain', + attrs={ + 'model': self.preloaddata['bgmodel'], + 'lighting': False, + 'background': True, + 'color_texture': self.preloaddata['tex'] + }) + gnode = ba.getactivity().globalsnode + gnode.tint = (1.1, 1.1, 1.0) + gnode.ambient_color = (1.1, 1.1, 1.0) + gnode.vignette_outer = (0.7, 0.65, 0.75) + gnode.vignette_inner = (0.95, 0.95, 0.93) + + +class GotchamapDefs: + # This file was automatically generated from "thePadLevel.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (-8.5184, 0.56928, -1.49458) + (1.22169, 0.05, 1.26353) + points['ffa_spawn2'] = (8.59355, 0.59544, -1.43799) + (1.20895, 0.05, 1.25724) + points['ffa_spawn3'] = (-8.54483, 0.5694, 4.72378) + (1.18984, 0.05, 1.29418) + points['ffa_spawn4'] = (8.70633, 0.5694, 4.74922) + (1.18907, 0.05, 1.26568) + points['flag1'] = (-9.9261, 1.26464, 1.5577) + points['flag2'] = (10.02378, 1.32188, 1.59798) + points['flag_default'] = (0.02873, 2.60659, 1.51861) + points['powerup_spawn1'] = (-3.93765, 1.08218, -2.33189) + points['powerup_spawn2'] = (4.12161, 1.14281, -2.33589) + points['powerup_spawn3'] = (-3.92186, 0.92373, 5.8076) + points['powerup_spawn4'] = (4.1484, 0.92373, 5.74238) + points['spawn1'] = (-8.4059, 0.5624, 1.62179) + (0.4613, 0.05, 2.22033) + points['spawn2'] = (8.46397, 0.58856, 1.70095) + (0.4613, 0.05, 2.22033) + points['tnt1'] = (0.0275, 0.87995, 1.51592) + boxes['area_of_interest_bounds'] = (0.36325, 1.10086, 2.99368) + (0, 0, 0) + (28.94068, 14.07879, 14.7444) + boxes['map_bounds'] = (0.25204, 1.42446, 3.3493) + (0, 0, 0) + (34.76113, 24.79939, 23.84771) + + +class GotchaMap(ba.Map): + defs = GotchamapDefs() + name = 'Gotcha' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'gotchaMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('gotchaMap'), + 'collide_model': ba.getcollidemodel('gotchaMapCob'), + 'tex': ba.gettexture('gotchaMapColor'), + 'bgmodel': ba.getmodel('gotchaMapBG'), + 'railing_collide_model': ba.getcollidemodel('gotchaMapRailing') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.railing = ba.newnode( + 'terrain', + attrs={ + 'collide_model': self.preloaddata['railing_collide_model'], + 'materials': [shared.railing_material], + 'bumper': True + }) + self.background = ba.newnode( + 'terrain', + attrs={ + 'model': self.preloaddata['bgmodel'], + 'lighting': False, + 'background': True, + 'color_texture': self.preloaddata['tex'] + }) + gnode = ba.getactivity().globalsnode + gnode.tint = (0.8, 0.9, 1.3) + gnode.ambient_color = (0.8, 0.9, 1.3) + gnode.vignette_outer = (0.79, 0.79, 0.69) + gnode.vignette_inner = (0.97, 0.97, 0.99) + + +class GravityfallsmapDefs: + # This file was automatically generated from "thePadLevel.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (-6.97783, 2.05753, -4.75154) + (1.4663, 0.05, 0.87378) + points['ffa_spawn2'] = (7.28045, 2.0837, -5.7546) + (1.67437, 0.05, 0.87378) + points['ffa_spawn3'] = (12.50401, 2.04888, -1.16587) + (0.48506, 0.05, 1.59702) + points['ffa_spawn4'] = (-10.66812, 2.04888, 1.1377) + (0.48506, 0.05, 1.59702) + points['flag1'] = (-12.62698, 3.02028, -2.23155) + points['flag2'] = (11.71206, 2.51231, -4.23504) + points['flag_default'] = (0.16225, 2.56307, -1.87058) + points['powerup_spawn1'] = (-8.4451, 2.39672, -2.23429) + points['powerup_spawn2'] = (5.24553, 2.45735, 2.6822) + points['powerup_spawn3'] = (-13.7492, 2.43847, 2.63631) + points['powerup_spawn4'] = (11.17395, 2.43847, -6.65691) + points['spawn1'] = (-12.93303, 2.01032, 0.78771) + (1.6634, 0.05, 0.87378) + points['spawn2'] = (13.39258, 2.03649, -1.57687) + (1.6634, 0.05, 0.87378) + points['tnt1'] = (-4.29628, 2.48705, -10.83656) + boxes['area_of_interest_bounds'] = (-1.0776, 2.93491, -2.53375) + (0, 0, 0) + (46.36258, 11.84662, 21.07336) + boxes['map_bounds'] = (-1.22571, 3.39742, -4.04047) + (0, 0, 0) + (46.29672, 20.86748, 34.08423) + + +class PortalGF(ba.Actor): + def __init__(self, + position: Sequence[float] = (0.0, 1.0, 0.0), + position2: Sequence[float] = (0.0, 1.0, 0.0), + color: Sequence[float] = (1.0, 1.0, 1.0)): + super().__init__() + shared = SharedObjects.get() + + self.radius = 1.1 + self.position = position + self.position2 = position2 + self.cooldown = False + + self.portalmaterial = ba.Material() + self.portalmaterial.add_actions( + conditions=( + ('they_have_material', shared.player_material) + ), + actions=(('modify_part_collision', 'collide', True), + ('modify_part_collision', 'physical', False), + ('call', 'at_connect', self.portal)), + ) + + self.portalmaterial.add_actions( + conditions=( + ('they_have_material', shared.object_material), + 'or', + ('they_dont_have_material', shared.player_material), + ), + actions=(('modify_part_collision', 'collide', True), + ('modify_part_collision', 'physical', False), + ('call', 'at_connect', self.objportal)), + ) + + self.node = ba.newnode( + 'region', + attrs={'position': (self.position[0], + self.position[1], + self.position[2]), + 'scale': (0.1, 0.1, 0.1), + 'type': 'sphere', + 'materials': [self.portalmaterial]} + ) + ba.animate_array(self.node, 'scale', 3, + {0: (0, 0, 0), 0.5: (self.radius * 5, + self.radius * 5, + self.radius * 5)}) + + self.portal2material = ba.Material() + self.portal2material.add_actions( + conditions=( + ('they_have_material', shared.player_material) + ), + actions=(('modify_part_collision', 'collide', True), + ('modify_part_collision', 'physical', False), + ('call', 'at_connect', self.portal2)), + ) + + self.portal2material.add_actions( + conditions=( + ('they_have_material', shared.object_material), + 'or', + ('they_dont_have_material', shared.player_material), + ), + actions=(('modify_part_collision', 'collide', True), + ('modify_part_collision', 'physical', False), + ('call', 'at_connect', self.objportal2)), + ) + + self.node2 = ba.newnode( + 'region', + attrs={'position': (self.position2[0], + self.position2[1], + self.position2[2]), + 'scale': (0.1, 0.1, 0.1), + 'type': 'sphere', + 'materials': [self.portal2material]} + ) + ba.animate_array(self.node2, 'scale', 3, + {0: (0, 0, 0), 0.5: (self.radius * 5, + self.radius * 5, + self.radius * 5)}) + + def cooldown1(self): + self.cooldown = True + + def off(): + self.cooldown = False + + ba.timer(0.01, off) + + def portal(self): + sound = ba.getsound('powerup01') + ba.playsound(sound) + node = ba.getcollision().opposingnode + node.handlemessage(ba.StandMessage(self.node2.position)) + + def portal2(self): + return + + def objportal(self): + node = ba.getcollision().opposingnode + if node.getnodetype() == 'spaz': + return + v = node.velocity + if not self.cooldown: + node.position = self.position2 + self.cooldown1() + + def vel(): + node.velocity = v + + ba.timer(0.01, vel) + + def objportal2(self): + return + + +class GravityFallsMap(ba.Map): + defs = GravityfallsmapDefs() + name = 'Gravity Falls' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'gravityFallsMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('gravityFallsMap'), + 'collide_model': ba.getcollidemodel('gravityFallsMapCob'), + 'modeld': ba.getmodel('gravityFallsMapD'), + 'tex': ba.gettexture('gravityFallsMapColor') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + + self.noded = ba.newnode( + 'terrain', + attrs={ + 'model': self.preloaddata['modeld'], + 'materials': [shared.footing_material, + shared.death_material] + }) + gnode = ba.getactivity().globalsnode + gnode.tint = (0.8, 0.9, 1.3) + gnode.ambient_color = (0.8, 0.9, 1.3) + gnode.vignette_outer = (0.79, 0.79, 0.69) + gnode.vignette_inner = (0.97, 0.97, 0.99) + + PortalGF(position=(7.5929, -10.1028, -1.68649), + position2=(5.2929, 11.1028, -2.78649), + color=(3, 0, 9)) + + +class GuardianmapDefs: + # This file was automatically generated from "thePadLevel.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (-2.07349, 3.88767, -6.65336) + (0.19747, 0.03, 0.51546) + points['ffa_spawn2'] = (-4.70652, 3.91384, -3.78073) + (0.2047, 0.0271, 0.46127) + points['ffa_spawn3'] = (-4.75011, 3.88779, 0.05944) + (0.46197, 0.0271, 0.20634) + points['ffa_spawn4'] = (-1.96338, 3.88779, 2.74233) + (0.46098, 0.02698, 0.21011) + points['ffa_spawn5'] = (2.1002, 3.88767, 2.65299) + (0.17194, 0.0271, 0.46628) + points['ffa_spawn6'] = (4.74843, 3.91384, -0.14317) + (0.21347, 0.0271, 0.45728) + points['ffa_spawn7'] = (4.71459, 3.88779, -4.09687) + (0.47092, 0.0271, 0.1773) + points['ffa_spawn8'] = (1.80796, 3.88779, -6.9272) + (0.44113, 0.0271, 0.24531) + points['flag1'] = (-12.55316, 4.98557, -14.28474) + points['flag2'] = (12.34078, 5.04281, -14.94647) + points['flag_default'] = (0.01441, 4.69604, -2.06973) + points['powerup_spawn1'] = (-0.06763, 4.25657, -6.24298) + points['powerup_spawn2'] = (-3.04409, 4.4172, -5.05894) + points['powerup_spawn3'] = (-4.14865, 4.19812, -1.90987) + points['powerup_spawn4'] = (-2.89817, 4.19812, 1.01643) + points['powerup_spawn5'] = (0.06065, 4.35657, 2.15929) + points['powerup_spawn6'] = (3.00639, 4.4172, 0.88465) + points['powerup_spawn7'] = (4.18947, 4.19812, -2.12366) + points['powerup_spawn8'] = (2.91713, 4.19812, -5.14095) + points['spawn1'] = (-10.34384, 4.73805, -11.94499) + (0.09711, 0.04517, 3.35739) + points['spawn2'] = (10.23575, 4.86421, -12.60951) + (3.34782, 0.04517, 0.2713) + points['tnt1'] = (-5.48852, 4.87128, 3.64587) + points['tnt2'] = (5.63454, 4.87128, 3.55774) + boxes['area_of_interest_bounds'] = (-0.24115, 4.79046, -3.77876) + (0, 0, 0) + (17.63465, 15.05966, 16.71558) + boxes['map_bounds'] = (-0.33468, 5.19656, -4.80404) + (0, 0, 0) + (30.96915, 26.52718, 27.03592) + + +class GuardianMap(ba.Map): + defs = GuardianmapDefs() + name = 'Guardian' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'guardianMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('guardianMap'), + 'collide_model': ba.getcollidemodel('guardianMapCob'), + 'tex': ba.gettexture('guardianMapColor'), + 'bgtex': ba.gettexture('skyGlassBG'), + 'bgmodel': ba.getmodel('thePadBG') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + + self.background = ba.newnode( + 'terrain', + attrs={ + 'model': self.preloaddata['bgmodel'], + 'lighting': False, + 'background': True, + 'color_texture': self.preloaddata['bgtex'] + }) + gnode = ba.getactivity().globalsnode + gnode.tint = (0.8, 0.9, 1.3) + gnode.ambient_color = (0.8, 0.9, 1.3) + gnode.vignette_outer = (0.79, 0.79, 0.69) + gnode.vignette_inner = (0.97, 0.97, 0.99) + + +class HalloweenmapDefs: + # This file was automatically generated from "thePadLevel.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (-3.21939, 4.36361, -20.48689) + (0.55372, 0.05, 0.52935) + points['ffa_spawn10'] = (6.11609, 4.53849, -18.89968) + (0.55372, 0.05, 0.52935) + points['ffa_spawn11'] = (8.65855, 4.75483, -16.74401) + (0.55372, 0.05, 0.52935) + points['ffa_spawn12'] = (10.50375, 5.01777, -8.63663) + (0.55372, 0.05, 5.43854) + points['ffa_spawn13'] = (9.58738, 4.93388, -0.37638) + (0.55372, 0.05, 0.52935) + points['ffa_spawn14'] = (7.64953, 4.91408, 1.82044) + (0.55372, 0.05, 0.52935) + points['ffa_spawn15'] = (5.01917, 4.93212, 2.20499) + (0.55372, 0.05, 0.52935) + points['ffa_spawn16'] = (-0.0325, 3.14097, 2.10002) + (0.55372, 0.05, 0.52935) + points['ffa_spawn2'] = (-6.24933, 4.53849, -18.89968) + (0.55372, 0.05, 0.52935) + points['ffa_spawn3'] = (-8.65944, 4.75483, -16.74401) + (0.55372, 0.05, 0.52935) + points['ffa_spawn4'] = (-10.56597, 5.01777, -8.63663) + (0.55372, 0.05, 5.43854) + points['ffa_spawn5'] = (-9.80749, 4.93388, -0.37638) + (0.55372, 0.05, 0.52935) + points['ffa_spawn6'] = (-7.87914, 4.91408, 1.82044) + (0.55372, 0.05, 0.52935) + points['ffa_spawn7'] = (-5.10961, 4.93212, 2.20499) + (0.55372, 0.05, 0.52935) + points['ffa_spawn8'] = (-0.0325, 3.14097, 2.10002) + (0.55372, 0.05, 0.52935) + points['ffa_spawn9'] = (3.20042, 4.36361, -20.48689) + (0.55372, 0.05, 0.52935) + points['flag1'] = (-8.62451, 4.24695, -7.51276) + points['flag2'] = (8.59073, 4.17493, -7.4768) + points['flag_default'] = (-0.04391, 4.97167, -20.18156) + points['powerup_spawn1'] = (8.45206, 4.24325, -12.30868) + points['powerup_spawn2'] = (-8.11399, 4.27517, -12.19911) + points['powerup_spawn3'] = (-8.23795, 4.23112, -3.28173) + points['powerup_spawn4'] = (8.14943, 4.24283, -2.71368) + points['spawn1'] = (-10.5791, 4.84945, -7.53411) + (0.50029, 0.05, 3.20865) + points['spawn2'] = (10.51234, 4.84931, -7.51627) + (0.48792, 0.05, 3.2029) + points['tnt1'] = (0.44224, 2.83063, -11.26023) + points['tnt2'] = (-0.66255, 2.81362, -3.3946) + boxes['area_of_interest_bounds'] = (0.08641, 4.39067, -7.46992) + (0, 0, 0) + (51.08173, 54.97659, 42.52111) + boxes['map_bounds'] = (-0.10175, 5.00256, -12.05441) + (0, 0, 0) + (58.81755, 63.49395, 45.09238) + + +class Halloween(ba.Map): + defs = HalloweenmapDefs() + name = 'Halloween' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'hwMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('hwMap'), + 'collide_model': ba.getcollidemodel('hwMapCob'), + 'tex': ba.gettexture('hwMapColor') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + + gnode = ba.getactivity().globalsnode + gnode.tint = (0.8, 0.9, 1.3) + gnode.ambient_color = (0.8, 0.9, 1.3) + gnode.vignette_outer = (0.79, 0.79, 0.69) + gnode.vignette_inner = (0.97, 0.97, 0.99) + + +class IcemapDefs: + # This file was automatically generated from "thePadLevel.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (8.73357, 5.09934, 2.27606) + (0.78982, 0.05, 1.3628) + points['ffa_spawn2'] = (8.63628, 5.83788, -7.26134) + (0.78982, 0.05, 1.3628) + points['ffa_spawn3'] = (-9.03869, 5.09934, 2.27066) + (0.78982, 0.05, 1.3628) + points['ffa_spawn4'] = (-8.89221, 5.83788, -7.2801) + (0.78982, 0.05, 1.3628) + points['flag1'] = (8.97686, 5.45802, 4.83282) + points['flag2'] = (-8.94129, 6.20577, -8.61665) + points['flag3'] = (-9.36293, 5.45802, 4.79063) + points['flag4'] = (8.63678, 6.20577, -8.66938) + points['flag_default'] = (-0.19593, 4.38208, 4.59982) + points['powerup_spawn1'] = (9.3797, 5.59043, 3.62563) + points['powerup_spawn2'] = (-9.70205, 5.65105, 3.64135) + points['powerup_spawn3'] = (-9.92278, 6.17397, -6.07351) + points['powerup_spawn4'] = (9.52793, 6.07397, -6.12759) + points['race_mine1'] = (6.62301, 5.38078, 3.805) + points['race_mine2'] = (4.548, 5.38078, 0.49843) + points['race_mine3'] = (5.73178, 5.74403, -4.13684) + points['race_mine4'] = (-6.43899, 5.51047, -4.09674) + points['race_mine5'] = (-5.05255, 5.36071, 0.52398) + points['race_mine6'] = (-7.22847, 5.33566, 3.74171) + points['race_point1'] = (-0.23437, 5.40034, 4.69668) + (0.2825, 3.95051, 1.70289) + points['race_point2'] = (8.70337, 5.34581, 2.06327) + (1.54214, 3.95051, 0.2825) + points['race_point3'] = (8.60551, 5.82501, -7.23624) + (1.4634, 3.95051, 0.2575) + points['race_point4'] = (-9.01558, 5.7132, -7.22704) + (1.4513, 3.95051, 0.26029) + points['race_point5'] = (-9.16008, 5.53273, 2.04487) + (1.54315, 3.95051, 0.2825) + points['spawn1'] = (-4.03787, 3.21046, -6.22642) + (0.93466, 0.05, 3.0751) + points['spawn2'] = (4.45458, 3.23662, -6.22464) + (0.93466, 0.05, 3.0751) + points['tnt1'] = (-0.21676, 5.59505, -2.38739) + boxes['area_of_interest_bounds'] = (-0.08966, 2.55672, -3.97028) + (0, 0, 0) + (24.12044, 12.6595, 18.50299) + boxes['map_bounds'] = (-0.18319, 6.96282, -1.58038) + (0, 0, 0) + (29.23565, 16.29936, 21.43922) + + +class IceMap(ba.Map): + defs = IcemapDefs() + name = 'Ice Map' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return [ + 'melee', 'keep_away', 'team_flag', 'king_of_the_hill', 'conquest', 'race'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'iceMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model_top': ba.getmodel('iceMapTop'), + 'collide_model_top': ba.getcollidemodel('iceMapTopCob'), + 'model_bottom': ba.getmodel('iceMapBottom'), + 'collide_model_bottom': ba.getcollidemodel('iceMapBottomCob'), + 'model_ice': ba.getmodel('iceMapIce'), + 'collide_model_ice': ba.getcollidemodel('iceMapIceCob'), + 'tex': ba.gettexture('iceMapColor'), + 'bgtex': ba.gettexture('natureBackgroundNColor'), + 'bgmodel': ba.getmodel('natureBackground') + } + mat = ba.Material() + mat.add_actions(actions=('modify_part_collision', 'friction', 0.01)) + data['ice_material'] = mat + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.top = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model_top'], + 'model': self.preloaddata['model_top'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.bottom = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model_bottom'], + 'model': self.preloaddata['model_bottom'], + 'lighting': False, + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.ice = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model_ice'], + 'model': self.preloaddata['model_ice'], + 'reflection': 'soft', + 'reflection_scale': [0.65], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material, + self.preloaddata['ice_material']] + }) + self.background = ba.newnode( + 'terrain', + attrs={ + 'model': self.preloaddata['bgmodel'], + 'lighting': False, + 'background': True, + 'color_texture': self.preloaddata['bgtex'] + }) + gnode = ba.getactivity().globalsnode + gnode.tint = (0.8, 0.9, 1.3) + gnode.ambient_color = (0.8, 0.9, 1.3) + gnode.vignette_outer = (0.79, 0.79, 0.69) + gnode.vignette_inner = (0.97, 0.97, 0.99) + + +class KrustykrabmapDefs: + # This file was automatically generated from "thePadLevel.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (-6.22221, 4.04595, -2.42887) + (1.00304, 0.05, 0.67435) + points['ffa_spawn2'] = (4.34829, 4.04595, -2.42887) + (1.00304, 0.05, 0.67435) + points['ffa_spawn3'] = (-6.12272, 4.04595, 5.08241) + (1.00304, 0.05, 0.67435) + points['ffa_spawn4'] = (5.56701, 4.04595, 4.95805) + (1.00304, 0.05, 0.67435) + points['flag1'] = (-9.61277, 4.30876, 1.45718) + points['flag2'] = (9.17461, 4.366, 1.29792) + points['flag_default'] = (-0.63318, 4.38208, 0.99473) + points['powerup_spawn1'] = (-6.38018, 4.40338, 0.61122) + points['powerup_spawn2'] = (4.2279, 4.43021, 0.55974) + points['powerup_spawn3'] = (-0.37144, 4.36881, 4.96673) + points['powerup_spawn4'] = (-0.78748, 4.35755, -1.71495) + points['spawn1'] = (-9.71476, 4.06156, 2.26422) + (0.46069, 0.05, 1.22664) + points['spawn2'] = (9.51737, 4.08772, 2.20081) + (0.46069, 0.05, 1.22664) + points['tnt1'] = (-1.32497, 4.77605, -4.34548) + boxes['area_of_interest_bounds'] = (-0.19385, 4.69839, 1.34427) + (0, 0, 0) + (25.75767, 18.8136, 10.50299) + boxes['map_bounds'] = (0.10981, 5.1045, -1.04853) + (0, 0, 0) + (57.5275, 33.13962, 29.92689) + + +class KrustyKrabMap(ba.Map): + defs = KrustykrabmapDefs() + name = 'Krusty Krab' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill', 'race'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'krustyKrabMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('krustyKrabMap'), + 'collide_model': ba.getcollidemodel('krustyKrabMapCob'), + 'tex': ba.gettexture('krustyKrabMapColor'), + 'bgtex': ba.gettexture('krustyKrabBGMapColor'), + 'bgmodel': ba.getmodel('krustyKrabBGMap') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + + self.background = ba.newnode( + 'terrain', + attrs={ + 'model': self.preloaddata['bgmodel'], + 'lighting': False, + 'background': True, + 'color_texture': self.preloaddata['bgtex'] + }) + gnode = ba.getactivity().globalsnode + gnode.tint = (1.15, 1.11, 1.03) + gnode.ambient_color = (1.2, 1.1, 1.0) + gnode.vignette_outer = (0.7, 0.73, 0.7) + gnode.vignette_inner = (0.95, 0.95, 0.95) + + +class PicnicmapDefs: + # This file was automatically generated from "thePadLevel.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (-7.44398, 3.19387, -7.65979) + (1.50247, 0.03167, 0.55348) + points['ffa_spawn2'] = (8.06371, 3.22003, -7.62365) + (1.4616, 0.02953, 0.51603) + points['ffa_spawn3'] = (-7.41217, 3.194, 1.58774) + (1.49532, 0.05173, 0.50184) + points['ffa_spawn4'] = (8.10603, 3.19399, 1.60122) + (1.42925, 0.05045, 0.48938) + points['flag1'] = (-8.83272, 3.6421, -3.06993) + points['flag2'] = (9.50256, 3.69934, -3.27696) + points['flag_default'] = (0.30904, 3.54993, -3.16521) + points['powerup_spawn1'] = (-3.82429, 3.7163, -6.69373) + points['powerup_spawn2'] = (-6.30979, 3.77692, -0.92893) + points['powerup_spawn3'] = (5.53497, 3.55785, -1.38555) + points['powerup_spawn4'] = (5.67173, 3.55785, -6.19241) + points['spawn1'] = (-8.88537, 3.19387, -3.02879) + (0.87378, 0.05, 1.6634) + points['spawn2'] = (9.52927, 3.22003, -3.30216) + (0.87378, 0.05, 1.6634) + points['tnt1'] = (0.73104, 3.61641, 0.91022) + boxes['area_of_interest_bounds'] = (0.35441, 4.49356, -2.51839) + (0, 0, 0) + (23.64755, 8.06139, 18.50299) + boxes['map_bounds'] = (0.39722, 4.89966, -5.12601) + (0, 0, 0) + (22.08287, 20.7854, 29.92689) + + +class PicnicMap(ba.Map): + defs = PicnicmapDefs() + name = 'Picnic' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'mapPicnicPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('mapPicnic'), + 'collide_model': ba.getcollidemodel('mapPicnicCob'), + 'modelc': ba.getmodel('mapPicnicTransparent'), + 'collide_modelc': ba.getcollidemodel('mapPicnicTransparentCob'), + 'collide_modeld': ba.getcollidemodel('mapPicnicDeathCob'), + 'tex': ba.gettexture('mapPicnicColor'), + 'bgtex': ba.gettexture('menuBG'), + 'bgmodel': ba.getmodel('thePadBG') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + self.nodec = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_modelc'], + 'model': self.preloaddata['modelc'], + 'color_texture': self.preloaddata['tex'], + 'opacity': 0.8, + 'materials': [shared.footing_material] + }) + self.noded = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_modeld'], + 'materials': [shared.footing_material, + shared.death_material] + }) + self.background = ba.newnode( + 'terrain', + attrs={ + 'model': self.preloaddata['bgmodel'], + 'lighting': False, + 'background': True, + 'color_texture': self.preloaddata['bgtex'] + }) + gnode = ba.getactivity().globalsnode + gnode.tint = (1.1, 1.1, 1.0) + gnode.ambient_color = (1.1, 1.1, 1.0) + gnode.vignette_outer = (0.7, 0.65, 0.75) + gnode.vignette_inner = (0.95, 0.95, 0.93) + + +class MarioworldmapDefs: + # This file was automatically generated from "thePadLevel.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (3.151, 3.28557, -11.62294) + (0.78108, 0.05, 0.78913) + points['ffa_spawn2'] = (-3.89813, 3.28557, -11.61621) + (0.77292, 0.05, 0.79949) + points['ffa_spawn3'] = (-8.91371, 3.28557, -6.39059) + (0.76822, 0.05, 0.78687) + points['ffa_spawn4'] = (-8.91988, 3.28557, 0.39817) + (0.77204, 0.05, 0.78333) + points['ffa_spawn5'] = (-3.91388, 3.28557, 5.41779) + (0.7682, 0.05, 0.77865) + points['ffa_spawn6'] = (3.13084, 3.28557, 5.42816) + (0.76469, 0.05, 0.80429) + points['ffa_spawn7'] = (8.00649, 3.28557, 0.39817) + (0.76822, 0.05, 0.78687) + points['ffa_spawn8'] = (7.9949, 3.28557, -6.39856) + (0.76689, 0.05, 0.7936) + points['flag1'] = (5.29873, 4.46068, -8.91326) + points['flag2'] = (5.29841, 4.46068, 2.67068) + points['flag3'] = (-6.0173, 4.46068, 2.64588) + points['flag4'] = (-6.00445, 4.46068, -8.91204) + points['flag_default'] = (-0.32485, 4.64644, -2.97299) + points['powerup_spawn1'] = (5.4662, 3.62173, -3.13033) + points['powerup_spawn2'] = (-0.30004, 3.62173, -8.9136) + points['powerup_spawn3'] = (-6.17938, 3.62173, -3.12631) + points['powerup_spawn4'] = (-0.30531, 3.62173, 2.94049) + points['spawn1'] = (9.04137, 3.02487, -2.90355) + (1.29071, 0.05, 1.91677) + points['spawn2'] = (-9.729, 3.02487, -2.95026) + (1.29071, 0.05, 1.91677) + points['spawn_by_flag1'] = (7.94788, 3.01322, -8.88789) + (0.75187, 0.05, 0.84538) + points['spawn_by_flag2'] = (-8.87075, 3.01322, -8.93492) + (0.75187, 0.05, 0.84538) + points['spawn_by_flag3'] = (-8.91571, 3.01322, 2.8066) + (0.75187, 0.05, 0.84538) + points['spawn_by_flag4'] = (8.07702, 3.01322, 2.84106) + (0.75187, 0.05, 0.84538) + points['tnt1'] = (3.16319, 3.31034, -6.37489) + points['tnt2'] = (-3.86491, 3.31034, -6.42483) + points['tnt3'] = (-3.83403, 3.31034, 0.45535) + points['tnt4'] = (3.1593, 3.31034, 0.56443) + boxes['area_of_interest_bounds'] = (0.35441, 0.15553, 0.02918) + (0, 0, 0) + (20.65136, 23.83756, 18.50299) + boxes['map_bounds'] = (0.26088, 7.08896, -3.08543) + (0, 0, 0) + (29.00671, 28.73445, 27.12031) + + +class MarioWorldMap(ba.Map): + defs = MarioworldmapDefs() + name = 'Mario Bros World' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill', 'conquest'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'mbwMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('mbw'), + 'collide_model': ba.getcollidemodel('mbwCob'), + 'tex': ba.gettexture('mbwColor'), + 'bgtex': ba.gettexture('uknucklesBGColor'), + 'bgmodel': ba.getmodel('thePadBG') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + + self.background = ba.newnode( + 'terrain', + attrs={ + 'model': self.preloaddata['bgmodel'], + 'lighting': False, + 'background': True, + 'color_texture': self.preloaddata['bgtex'] + }) + gnode = ba.getactivity().globalsnode + gnode.tint = (1.1, 1.1, 1.0) + gnode.ambient_color = (1.1, 1.1, 1.0) + gnode.vignette_outer = (0.7, 0.65, 0.75) + gnode.vignette_inner = (0.95, 0.95, 0.93) + + def is_point_near_edge(self, + point: ba.Vec3, + running: bool = False) -> bool: + box_position = self.defs.boxes['edge_box'][0:3] + box_scale = self.defs.boxes['edge_box'][6:9] + xpos = (point.x - box_position[0]) / box_scale[0] + zpos = (point.z - box_position[2]) / box_scale[2] + return xpos < -0.5 or xpos > 0.5 or zpos < -0.5 or zpos > 0.5 + + +class PacmanmapDefs: + # This file generated from "pacmanMap.ma" + points = {} + boxes = {} + points['ffa_spawn1'] = (-9.67927, 0.58588, -7.13608) + (0.65447, 0.05, 0.58413) + points['ffa_spawn2'] = (8.08484, 0.58588, 5.82097) + (0.71956, 0.05, 0.64222) + points['ffa_spawn3'] = (-8.18949, 0.58588, 5.81325) + (0.65447, 0.05, 0.58413) + points['ffa_spawn4'] = (9.5672, 0.58588, -7.12513) + (0.71956, 0.05, 0.64222) + points['flag1'] = (-0.01855, 0.91513, 9.92087) + points['flag2'] = (-0.05367, 0.92024, -7.16025) + points['flag_default'] = (-0.05154, 0.99034, -0.74039) + points['powerup_spawn1'] = (-9.6929, 0.93028, -8.68649) + points['powerup_spawn2'] = (9.59894, 0.93028, -8.60753) + points['powerup_spawn3'] = (-9.72155, 0.93028, 5.58694) + points['powerup_spawn4'] = (9.72079, 0.93028, 5.6272) + points['powerup_spawn5'] = (-0.01869, 0.93028, 1.34941) + points['spawn1'] = (-0.01986, 0.77565, 9.98158) + (3.94253, 0.05, 0.38847) + points['spawn2'] = (-0.05893, 0.77565, -7.1692) + (3.90012, 0.05, 0.3592) + points['tnt1'] = (-1.42239, 0.98812, -0.69979) + points['tnt2'] = (1.40068, 0.98811, -0.77369) + boxes['area_of_interest_bounds'] = (-0.08534, 2.76726, 2.09197) + (0, 0, 0) + (14.50743, 14.58622, 28.3354) + boxes['map_bounds'] = (-0.0229, 9.33466, -0.52407) + (0, 0, 0) + (21.48431, 18.8591, 22.6373) + + +class PortalPM(ba.Actor): + def __init__(self, + position: Sequence[float] = (0.0, 1.0, 0.0), + position2: Sequence[float] = (0.0, 1.0, 0.0), + color: Sequence[float] = (1.0, 1.0, 1.0)): + super().__init__() + shared = SharedObjects.get() + + self.radius = 1.1 + self.position = position + self.position2 = position2 + self.cooldown = False + + self.portalmaterial = ba.Material() + self.portalmaterial.add_actions( + conditions=( + ('they_have_material', shared.player_material) + ), + actions=(('modify_part_collision', 'collide', True), + ('modify_part_collision', 'physical', False), + ('call', 'at_connect', self.portal)), + ) + + self.portalmaterial.add_actions( + conditions=( + ('they_have_material', shared.object_material), + 'or', + ('they_dont_have_material', shared.player_material), + ), + actions=(('modify_part_collision', 'collide', True), + ('modify_part_collision', 'physical', False), + ('call', 'at_connect', self.objportal)), + ) + + self.node = ba.newnode( + 'region', + attrs={'position': (self.position[0], + self.position[1], + self.position[2]), + 'scale': (0.1, 0.1, 0.1), + 'type': 'sphere', + 'materials': [self.portalmaterial]} + ) + ba.animate_array(self.node, 'scale', 3, + {0: (0, 0, 0), 0.5: (self.radius, + self.radius, + self.radius)}) + + self.portal2material = ba.Material() + self.portal2material.add_actions( + conditions=( + ('they_have_material', shared.player_material) + ), + actions=(('modify_part_collision', 'collide', True), + ('modify_part_collision', 'physical', False), + ('call', 'at_connect', self.portal2)), + ) + + self.portal2material.add_actions( + conditions=( + ('they_have_material', shared.object_material), + 'or', + ('they_dont_have_material', shared.player_material), + ), + actions=(('modify_part_collision', 'collide', True), + ('modify_part_collision', 'physical', False), + ('call', 'at_connect', self.objportal2)), + ) + + self.node2 = ba.newnode( + 'region', + attrs={'position': (self.position2[0], + self.position2[1], + self.position2[2]), + 'scale': (0.1, 0.1, 0.1), + 'type': 'sphere', + 'materials': [self.portal2material]} + ) + ba.animate_array(self.node2, 'scale', 3, + {0: (0, 0, 0), 0.5: (self.radius, + self.radius, + self.radius)}) + + def cooldown1(self): + self.cooldown = True + + def off(): + self.cooldown = False + + ba.timer(0.01, off) + + def portal(self): + sound = ba.getsound('powerup01') + ba.playsound(sound) + node = ba.getcollision().opposingnode + node.handlemessage(ba.StandMessage(self.node2.position)) + + def portal2(self): + sound = ba.getsound('powerup01') + ba.playsound(sound) + node = ba.getcollision().opposingnode + node.handlemessage(ba.StandMessage(self.node.position)) + + def objportal(self): + node = ba.getcollision().opposingnode + if node.getnodetype() == 'spaz': + return + v = node.velocity + if not self.cooldown: + node.position = self.position2 + self.cooldown1() + + def vel(): + node.velocity = v + + ba.timer(0.01, vel) + + def objportal2(self): + node = ba.getcollision().opposingnode + if node.getnodetype() == 'spaz': + return + v = node.velocity + if not self.cooldown: + node.position = self.position + self.cooldown1() + + def vel(): + node.velocity = v + + ba.timer(0.01, vel) + + +class PacMan(ba.Map): + defs = PacmanmapDefs() + name = 'PAC-MAN' + + @classmethod + def get_play_types(cls) -> list[str]: + """Return valid play types for this map.""" + return ['melee', 'keep_away', 'team_flag', 'king_of_the_hill'] + + @classmethod + def get_preview_texture_name(cls) -> str: + return 'pacmanMapPreview' + + @classmethod + def on_preload(cls) -> Any: + data: dict[str, Any] = { + 'model': ba.getmodel('pacmanMap'), + 'collide_model': ba.getcollidemodel('pacmanMapCob'), + 'tex': ba.gettexture('pacmanMapColor') + } + return data + + def __init__(self) -> None: + super().__init__() + shared = SharedObjects.get() + self.node = ba.newnode( + 'terrain', + delegate=self, + attrs={ + 'collide_model': self.preloaddata['collide_model'], + 'model': self.preloaddata['model'], + 'color_texture': self.preloaddata['tex'], + 'materials': [shared.footing_material] + }) + + gnode = ba.getactivity().globalsnode + gnode.tint = (1.3, 1.2, 1.0) + gnode.ambient_color = (1.3, 1.2, 1.0) + gnode.vignette_outer = (0.57, 0.57, 0.57) + gnode.vignette_inner = (0.9, 0.9, 0.9) + gnode.vr_camera_offset = (0.0, -4.2, -1.1) + gnode.vr_near_clip = 0.5 + + PortalPM(position=(-10.2929, 0.1028, -0.68649), + position2=(10.2929, 0.1028, -0.68649), + color=(3, 0, 9)) + + +files_needed = {} +headless_mode = _ba.env()['headless_mode'] +for file, value in package_files.items(): + if headless_mode: + if not file.endswith('.cob'): + continue + else: + if file.endswith('.dds'): + if _ba.app.platform == 'android': + continue + elif file.endswith('.ktx'): + if _ba.app.platform != 'android': + continue + files_needed[file] = value + + +check_md5 = True + +PackInstaller(package_name, files_needed) + + +# ba_meta export plugin +class Map(ba.Plugin): + def on_app_launch(self): + for map in (GeomMap, WashMap, ArenaMinigore, BikiniBottomMap, BombermanMap, CourageMap, DreamlandMap, EliminationRawMap, EliminationSDMap, GotchaMap, GravityFallsMap, GuardianMap, Halloween, IceMap, KrustyKrabMap, PicnicMap, MarioWorldMap, PacMan): + try: + _map.register_map(map) + except: + pass