mirror of
https://github.com/imayushsaini/Bombsquad-Ballistica-Modded-Server.git
synced 2025-10-20 00:00:39 +00:00
fixed importing games , updated maps
This commit is contained in:
parent
2f0773c2c9
commit
a133256df2
24 changed files with 3009 additions and 48 deletions
1
dist/ba_root/.bsuuid
vendored
1
dist/ba_root/.bsuuid
vendored
|
|
@ -1 +0,0 @@
|
||||||
b6b895e7-a2f9-45f1-b080-25806a8bfca9
|
|
||||||
734
dist/ba_root/config.json
vendored
734
dist/ba_root/config.json
vendored
|
|
@ -1,7 +1,179 @@
|
||||||
{
|
{
|
||||||
"Achievements": {},
|
"Achievements": {
|
||||||
|
"Boom Goes the Dynamite": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Boxer": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Dual Wielding": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Flawless Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Free Loader": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Gold Miner": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Got the Moves": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"In Control": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Last Stand God": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Last Stand Master": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Last Stand Wizard": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Mine Games": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Off You Go Then": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Onslaught God": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Onslaught Master": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Onslaught Training Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Onslaught Wizard": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Precision Bombing": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Pro Boxer": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Pro Football Shutout": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Pro Football Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Pro Onslaught Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Pro Runaround Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Rookie Football Shutout": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Rookie Football Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Rookie Onslaught Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Runaround God": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Runaround Master": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Runaround Wizard": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Sharing is Caring": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Stayin' Alive": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Super Mega Punch": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Super Punch": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"TNT Terror": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Team Player": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"The Great Wall": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"The Wall": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Uber Football Shutout": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Uber Football Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Uber Onslaught Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Uber Runaround Victory": {
|
||||||
|
"Complete": false
|
||||||
|
}
|
||||||
|
},
|
||||||
"Auto Account State": "Server",
|
"Auto Account State": "Server",
|
||||||
"Auto Balance Teams": true,
|
"Auto Balance Teams": true,
|
||||||
|
"Bear Coin": 814,
|
||||||
|
"Bear Store": {
|
||||||
|
"Buy Firebombs": false,
|
||||||
|
"Buy Option": false,
|
||||||
|
"Buy Percentage": false,
|
||||||
|
"Promo Code": {
|
||||||
|
"B-0mB3RYT2z": [
|
||||||
|
true,
|
||||||
|
910
|
||||||
|
],
|
||||||
|
"B-Asd14mON9G0D": [
|
||||||
|
true,
|
||||||
|
910
|
||||||
|
],
|
||||||
|
"D-rAcK0cJ23": [
|
||||||
|
true,
|
||||||
|
910
|
||||||
|
],
|
||||||
|
"E-Am54igO42Os": [
|
||||||
|
true,
|
||||||
|
600
|
||||||
|
],
|
||||||
|
"E-M4uN3K34XB": [
|
||||||
|
true,
|
||||||
|
840
|
||||||
|
],
|
||||||
|
"E-a27ZO6f3Y": [
|
||||||
|
true,
|
||||||
|
600
|
||||||
|
],
|
||||||
|
"G-Am54igO42Os": [
|
||||||
|
true,
|
||||||
|
1100
|
||||||
|
],
|
||||||
|
"P-tRo8nM8dZ": [
|
||||||
|
true,
|
||||||
|
2800
|
||||||
|
],
|
||||||
|
"PM-731ClcAF": [
|
||||||
|
true,
|
||||||
|
50000
|
||||||
|
],
|
||||||
|
"Y-tU2B3S": [
|
||||||
|
true,
|
||||||
|
500
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
"Campaigns": {},
|
"Campaigns": {},
|
||||||
"Custom Team Colors": [
|
"Custom Team Colors": [
|
||||||
[
|
[
|
||||||
|
|
@ -19,24 +191,566 @@
|
||||||
"ladoo",
|
"ladoo",
|
||||||
"barfi"
|
"barfi"
|
||||||
],
|
],
|
||||||
|
"Default Player Profiles": {
|
||||||
|
"Client Input Device #1": "__account__",
|
||||||
|
"Client Input Device #2": "__account__"
|
||||||
|
},
|
||||||
"Fleet Zone Pings": {
|
"Fleet Zone Pings": {
|
||||||
"prod": {
|
"prod": {
|
||||||
"ap-northeast-1": 156.68950000008408,
|
"ap-northeast-1": 149.69879999989644,
|
||||||
"ap-northeast-2": 156.49900000016714,
|
"ap-northeast-2": 167.120200001591,
|
||||||
"ap-south-1": 39.8473224001209,
|
"ap-south-1": 38.507389199694444,
|
||||||
"ap-southeast-1": 81.71677339999769,
|
"ap-southeast-1": 91.31349360058448,
|
||||||
"eu-north-1": 169.96319999998377,
|
"eu-north-1": 175.44400000042515,
|
||||||
"me-south-1": 69.94866120011193
|
"me-south-1": 74.37627740109019
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"Free-for-All Max Players": 25,
|
||||||
|
"Free-for-All Playlist Randomize": true,
|
||||||
|
"Free-for-All Playlist Selection": "__default__",
|
||||||
"Free-for-All Playlists": {},
|
"Free-for-All Playlists": {},
|
||||||
"Idle Exit Minutes": null,
|
"Idle Exit Minutes": null,
|
||||||
"Player Profiles": {},
|
"Local Account Name": "Server7604732",
|
||||||
|
"PPM Settings": {
|
||||||
|
"Healing Damage PTG": 72,
|
||||||
|
"Powers Gravity": true,
|
||||||
|
"Powerup Name": true,
|
||||||
|
"Powerup Scale": 1.0,
|
||||||
|
"Powerup Style": "Auto",
|
||||||
|
"Powerup Time": false,
|
||||||
|
"Powerup With Shield": true,
|
||||||
|
"Powerups": {
|
||||||
|
"Curse": 1,
|
||||||
|
"Fire Bombs": 3,
|
||||||
|
"Fly Bombs": 3,
|
||||||
|
"Goodbye": 2,
|
||||||
|
"Healing Damage": 1,
|
||||||
|
"Health": 1,
|
||||||
|
"Ice Bombs": 3,
|
||||||
|
"Ice Man": 1,
|
||||||
|
"Impact Bombs": 3,
|
||||||
|
"Impairment Bombs": 2,
|
||||||
|
"Mine Bombs": 2,
|
||||||
|
"Punch": 3,
|
||||||
|
"Shield": 2,
|
||||||
|
"Speed": 2,
|
||||||
|
"Sticky Bombs": 3,
|
||||||
|
"Tank Shield": 1,
|
||||||
|
"Triple": 3
|
||||||
|
},
|
||||||
|
"Tank Shield PTG": 96
|
||||||
|
},
|
||||||
|
"Player Profiles": {
|
||||||
|
"__account__": {
|
||||||
|
"character": "Spaz",
|
||||||
|
"color": [
|
||||||
|
0.5,
|
||||||
|
0.25,
|
||||||
|
1.0
|
||||||
|
],
|
||||||
|
"highlight": [
|
||||||
|
0.5,
|
||||||
|
0.25,
|
||||||
|
1.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Plugins": {
|
||||||
|
"custom_hooks.modSetup": {
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"plugins.Init": {
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
"Port": 43210,
|
"Port": 43210,
|
||||||
|
"Region Pings": {
|
||||||
|
"af-south-1": 328.2357999996748,
|
||||||
|
"ap-northeast-1": 150.0941541948123,
|
||||||
|
"ap-northeast-2": 160.2201884064998,
|
||||||
|
"ap-south-1": 45.05286179925315,
|
||||||
|
"ap-southeast-1": 101.91129060697858,
|
||||||
|
"ap-southeast-2": 183.6228000029223,
|
||||||
|
"ca-central-1": 262.4569968022115,
|
||||||
|
"eu-central-1": 155.88790780561976,
|
||||||
|
"eu-north-1": 181.94498299446423,
|
||||||
|
"eu-south-1": 156.48616400256287,
|
||||||
|
"eu-west-1": 179.42955539320246,
|
||||||
|
"eu-west-2": 158.43393659518915,
|
||||||
|
"eu-west-3": 170.620519401622,
|
||||||
|
"me-south-1": 78.16982959693996,
|
||||||
|
"sa-east-1": 345.57150000182446,
|
||||||
|
"us-east-1": 238.92560360513744,
|
||||||
|
"us-east-2": 257.30932620124076,
|
||||||
|
"us-west-1": 255.34800000605173,
|
||||||
|
"us-west-2": 292.9734999925131
|
||||||
|
},
|
||||||
|
"Selected Coop Game": "Easy:Rookie Onslaught",
|
||||||
"Show Tutorial": false,
|
"Show Tutorial": false,
|
||||||
"Signed In Last Session": false,
|
"Signed In Last Session": false,
|
||||||
"Team Tournament Playlists": {},
|
"Team Game Max Player": 25,
|
||||||
"launchCount": 4,
|
"Team Game Max Players": 25,
|
||||||
|
"Team Tournament Playlist Randomize": true,
|
||||||
|
"Team Tournament Playlist Selection": "BCS_FUN",
|
||||||
|
"Team Tournament Playlists": {
|
||||||
|
"BCS_FUN": [
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Basic Bombs": true,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Frozen Bombs": true,
|
||||||
|
"Grabbing only": true,
|
||||||
|
"Impact Bombs": true,
|
||||||
|
"Punching only": true,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Sticky Bombs": true,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "\ue019Powerups Factory"
|
||||||
|
},
|
||||||
|
"type": "ArmsRace.ArmsRaceGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Countdown Time Each Round": 45,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Kill player on ground": true,
|
||||||
|
"Random Spawn Point (Team)": false,
|
||||||
|
"Respawn Times": 1.0,
|
||||||
|
"Score to Win Per Team": 5,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"[On score] Single Celebrate": true,
|
||||||
|
"[On score] Single Teleport": true,
|
||||||
|
"map": "Tower D"
|
||||||
|
},
|
||||||
|
"type": "Tower_Rush.BaseRaidGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Enable speed": false,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Powerups Spawn": true,
|
||||||
|
"Respawn Times": 1.0,
|
||||||
|
"Score to Win": 3,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "BasketBall Stadium V2"
|
||||||
|
},
|
||||||
|
"type": "baBasketBomb.BasketGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Large Box Count": 3,
|
||||||
|
"Points to win per Player": 1000,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Small Box Count": 1,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "crazyBoxes.CrazyBoxGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Points to Win Per Player": 2,
|
||||||
|
"Respawn Times": 1.0,
|
||||||
|
"Target Indicator": 1,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"Time to Kill": 7,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "GetTheTarget.GetTheTargetGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balance Total Lives": false,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Lives Per Player": 1,
|
||||||
|
"Respawn Times": 1.0,
|
||||||
|
"Solo Mode": false,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "GravityFalls.GFGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Score to Win": 3,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Bridgit Parallelo"
|
||||||
|
},
|
||||||
|
"type": "bastd.game.assault.AssaultGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"map": "Wooden Floor"
|
||||||
|
},
|
||||||
|
"type": "UFOAttackGame.UFOAttackGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balance Total Lives": true,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Lives Per Player": 3,
|
||||||
|
"Players Per Team In Arena": 2,
|
||||||
|
"Respawn Times": 0.25,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Bridgit Parallelo"
|
||||||
|
},
|
||||||
|
"type": "alliance_elimination.AllianceEliminationGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Respawn Times": 2.0,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Bridgit Mash"
|
||||||
|
},
|
||||||
|
"type": "bastd.game.conquest.ConquestGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Boxing Gloves": false,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Icy Floor": true,
|
||||||
|
"Respawn Times": 0.1,
|
||||||
|
"Score to Win": 7,
|
||||||
|
"Time Limit": 60,
|
||||||
|
"map": "Soccer Stadium Pro"
|
||||||
|
},
|
||||||
|
"type": "soccer.HockeyGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balance Total Lives": true,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Lives Per Player": 2,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Solo Mode": true,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "\ue019The Limbo"
|
||||||
|
},
|
||||||
|
"type": "bastd.game.elimination.EliminationGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Hold Time": 30,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "\ue019Platforms"
|
||||||
|
},
|
||||||
|
"type": "bastd.game.kingofthehill.KingOfTheHillGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balloon Mode": false,
|
||||||
|
"Difficulty": 0.15,
|
||||||
|
"Distractor Bones": 2,
|
||||||
|
"Enable Bananas": true,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Immortality": true,
|
||||||
|
"Mesh Color": 4,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Score to Win": 5,
|
||||||
|
"Space Under the Mesh": true,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"Timer": 3,
|
||||||
|
"Type of Hot Bomb": 0,
|
||||||
|
"map": "Hot Bomb Map"
|
||||||
|
},
|
||||||
|
"type": "Hot-Bomb.HotBombGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Score to Win": 3,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "\ue019Neo Zone"
|
||||||
|
},
|
||||||
|
"type": "bastd.game.assault.AssaultGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Flag Idle Return Time": 25,
|
||||||
|
"Flag Touch Return Time": 8,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Score to Win": 3,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "\ue019Big H"
|
||||||
|
},
|
||||||
|
"type": "bastd.game.capturetheflag.CaptureTheFlagGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Enable Bottom Credit": true,
|
||||||
|
"Enable Punching": false,
|
||||||
|
"Enable Running": false,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Doom Shroom"
|
||||||
|
},
|
||||||
|
"type": "MusicalFlags.MFGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"map": "Rampage"
|
||||||
|
},
|
||||||
|
"type": "TnT_Error.TntErrorGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balance Total Lives": false,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Lives Per Player": 2,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Solo Mode": false,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "safe_zone.SafeZoneGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Enable Bomb": false,
|
||||||
|
"Enable Jump": false,
|
||||||
|
"Enable Pickup": false,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Kills to Win Per Player": 12,
|
||||||
|
"Obstacles": true,
|
||||||
|
"Obstacles Count": 16,
|
||||||
|
"Obstacles Form": 0,
|
||||||
|
"Obstacles Mirror Shots": false,
|
||||||
|
"Random Obstacles Color": false,
|
||||||
|
"Respawn Times": 0.25,
|
||||||
|
"Speed": true,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"Weapon Type": 0,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "quake.game.QuakeGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Grant Powers on Score": true,
|
||||||
|
"Night Mode": true,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Score to Win": 1,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "BigBall.BBGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Enable Bottom Credits": true,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"map": "Sky Tiles"
|
||||||
|
},
|
||||||
|
"type": "MemoryGame.MGgame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Bomb Spawning": 2000,
|
||||||
|
"Entire Team Must Finish": false,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Laps": 3,
|
||||||
|
"Mine Spawning": 4000,
|
||||||
|
"Time Limit": 120,
|
||||||
|
"map": "InTheAir"
|
||||||
|
},
|
||||||
|
"type": "StumbleRace.StumbleRaceGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Frozen One Gets Gloves": true,
|
||||||
|
"Frozen One Gets Shield": false,
|
||||||
|
"Frozen One Time": 30,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Tip Top"
|
||||||
|
},
|
||||||
|
"type": "FrozenOne16.FrozenOneGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Players as center of interest": true,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Score to Win": 4,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "baDarkFields.DarkFieldsGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"map": "InTheAir"
|
||||||
|
},
|
||||||
|
"type": "SubwayRun.SubwayRunGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balance Total Lives": false,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Lives Per Player": 1,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Solo Mode": false,
|
||||||
|
"Time Limit": 120,
|
||||||
|
"map": "Courtyard"
|
||||||
|
},
|
||||||
|
"type": "LaserTracer.LasorTracerGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"map": "Lake Frigid"
|
||||||
|
},
|
||||||
|
"type": "IcyEmits16.IcyEmitsGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"map": "Creative Thoughts"
|
||||||
|
},
|
||||||
|
"type": "FlappyBird.FlappyBirdGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Score to Win": 1,
|
||||||
|
"Time Limit": 40,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "EggGame.EggGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balance Total Lives": false,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Lives Per Player": 1,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Solo Mode": false,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Wooden Floor"
|
||||||
|
},
|
||||||
|
"type": "BlockDash.BlockDashGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Kills to Win Per Player": 5,
|
||||||
|
"Respawn Times": 0.25,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Rampage"
|
||||||
|
},
|
||||||
|
"type": "Yeeting-party.BoxingGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Model Type": 1,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"TNT Hitpoints": 25000,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "Heist.TNTTeamGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Kills to Win Per Player": 5,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Step Right Up"
|
||||||
|
},
|
||||||
|
"type": "CanonFight.CanonFightGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balance Total Lives": true,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Lives Per Player": 2,
|
||||||
|
"Respawn Times": 0.25,
|
||||||
|
"Solo Mode": false,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "FloatingIsland"
|
||||||
|
},
|
||||||
|
"type": "DuelElimination.DuelEliminationGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Enable Bombs": true,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Infection Spread Rate": 0.03,
|
||||||
|
"Max Infected Size": 6,
|
||||||
|
"Max Size Increases Every": 20,
|
||||||
|
"Mines": 10,
|
||||||
|
"Sec/Extra Mine": 9,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "Infection.Infection"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Bomb Spawning": 2000,
|
||||||
|
"Entire Team Must Finish": false,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Laps": 2,
|
||||||
|
"Mine Spawning": 4000,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Big G"
|
||||||
|
},
|
||||||
|
"type": "Reverserace.ReverseRaceGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Bomb Spawning": 2000,
|
||||||
|
"Entire Team Must Finish": false,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Laps": 1,
|
||||||
|
"Mine Spawning": 4000,
|
||||||
|
"Time Limit": 120,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "SquidRace.SquidRaceGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Disable Bombs": false,
|
||||||
|
"Disable Punch": true,
|
||||||
|
"Enable Bottom Credits": true,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Icy Floor": true,
|
||||||
|
"Night Mode": false,
|
||||||
|
"Respawn Times": 0.25,
|
||||||
|
"Score to Win": 7,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Closed Arena"
|
||||||
|
},
|
||||||
|
"type": "VolleyBall.VolleyBallGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Kills to Win Per Player": 3,
|
||||||
|
"Respawn Times": 0.25,
|
||||||
|
"Time Limit": 120,
|
||||||
|
"map": "Courtyard"
|
||||||
|
},
|
||||||
|
"type": "ms_BombWar.BombWar"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"launchCount": 259,
|
||||||
"lc14173": 1,
|
"lc14173": 1,
|
||||||
"lc14292": 1
|
"lc14292": 1
|
||||||
}
|
}
|
||||||
757
dist/ba_root/config.json.prev
vendored
757
dist/ba_root/config.json.prev
vendored
|
|
@ -1 +1,756 @@
|
||||||
{"Achievements": {}, "Auto Account State": "Server", "Auto Balance Teams": true, "Campaigns": {}, "Custom Team Colors": [[2.0, 0.25, 1.0], [1.0, 0.25, 0.2]], "Custom Team Names": ["ladoo", "barfi"], "Fleet Zone Pings": {"prod": {"ap-northeast-1": 150.23180000025604, "ap-northeast-2": 165.59890000007726, "ap-south-1": 39.26117700029499, "ap-southeast-1": 84.0365405999919, "eu-north-1": 173.02299999983006, "me-south-1": 78.74480959990251}}, "Free-for-All Playlists": {}, "Idle Exit Minutes": null, "Player Profiles": {}, "Port": 43210, "Show Tutorial": false, "Signed In Last Session": false, "Team Tournament Playlists": {}, "launchCount": 3, "lc14173": 1, "lc14292": 1}
|
{
|
||||||
|
"Achievements": {
|
||||||
|
"Boom Goes the Dynamite": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Boxer": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Dual Wielding": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Flawless Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Free Loader": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Gold Miner": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Got the Moves": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"In Control": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Last Stand God": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Last Stand Master": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Last Stand Wizard": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Mine Games": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Off You Go Then": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Onslaught God": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Onslaught Master": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Onslaught Training Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Onslaught Wizard": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Precision Bombing": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Pro Boxer": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Pro Football Shutout": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Pro Football Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Pro Onslaught Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Pro Runaround Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Rookie Football Shutout": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Rookie Football Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Rookie Onslaught Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Runaround God": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Runaround Master": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Runaround Wizard": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Sharing is Caring": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Stayin' Alive": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Super Mega Punch": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Super Punch": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"TNT Terror": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Team Player": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"The Great Wall": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"The Wall": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Uber Football Shutout": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Uber Football Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Uber Onslaught Victory": {
|
||||||
|
"Complete": false
|
||||||
|
},
|
||||||
|
"Uber Runaround Victory": {
|
||||||
|
"Complete": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Auto Account State": "Server",
|
||||||
|
"Auto Balance Teams": true,
|
||||||
|
"Bear Coin": 814,
|
||||||
|
"Bear Store": {
|
||||||
|
"Buy Firebombs": false,
|
||||||
|
"Buy Option": false,
|
||||||
|
"Buy Percentage": false,
|
||||||
|
"Promo Code": {
|
||||||
|
"B-0mB3RYT2z": [
|
||||||
|
true,
|
||||||
|
910
|
||||||
|
],
|
||||||
|
"B-Asd14mON9G0D": [
|
||||||
|
true,
|
||||||
|
910
|
||||||
|
],
|
||||||
|
"D-rAcK0cJ23": [
|
||||||
|
true,
|
||||||
|
910
|
||||||
|
],
|
||||||
|
"E-Am54igO42Os": [
|
||||||
|
true,
|
||||||
|
600
|
||||||
|
],
|
||||||
|
"E-M4uN3K34XB": [
|
||||||
|
true,
|
||||||
|
840
|
||||||
|
],
|
||||||
|
"E-a27ZO6f3Y": [
|
||||||
|
true,
|
||||||
|
600
|
||||||
|
],
|
||||||
|
"G-Am54igO42Os": [
|
||||||
|
true,
|
||||||
|
1100
|
||||||
|
],
|
||||||
|
"P-tRo8nM8dZ": [
|
||||||
|
true,
|
||||||
|
2800
|
||||||
|
],
|
||||||
|
"PM-731ClcAF": [
|
||||||
|
true,
|
||||||
|
50000
|
||||||
|
],
|
||||||
|
"Y-tU2B3S": [
|
||||||
|
true,
|
||||||
|
500
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Campaigns": {},
|
||||||
|
"Custom Team Colors": [
|
||||||
|
[
|
||||||
|
2.0,
|
||||||
|
0.25,
|
||||||
|
1.0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
1.0,
|
||||||
|
0.25,
|
||||||
|
0.2
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"Custom Team Names": [
|
||||||
|
"ladoo",
|
||||||
|
"barfi"
|
||||||
|
],
|
||||||
|
"Default Player Profiles": {
|
||||||
|
"Client Input Device #1": "__account__",
|
||||||
|
"Client Input Device #2": "__account__"
|
||||||
|
},
|
||||||
|
"Fleet Zone Pings": {
|
||||||
|
"prod": {
|
||||||
|
"ap-northeast-1": 149.69879999989644,
|
||||||
|
"ap-northeast-2": 167.120200001591,
|
||||||
|
"ap-south-1": 38.507389199694444,
|
||||||
|
"ap-southeast-1": 91.31349360058448,
|
||||||
|
"eu-north-1": 175.44400000042515,
|
||||||
|
"me-south-1": 74.37627740109019
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Free-for-All Max Players": 25,
|
||||||
|
"Free-for-All Playlist Randomize": true,
|
||||||
|
"Free-for-All Playlist Selection": "__default__",
|
||||||
|
"Free-for-All Playlists": {},
|
||||||
|
"Idle Exit Minutes": null,
|
||||||
|
"Local Account Name": "Server7604732",
|
||||||
|
"PPM Settings": {
|
||||||
|
"Healing Damage PTG": 72,
|
||||||
|
"Powers Gravity": true,
|
||||||
|
"Powerup Name": true,
|
||||||
|
"Powerup Scale": 1.0,
|
||||||
|
"Powerup Style": "Auto",
|
||||||
|
"Powerup Time": false,
|
||||||
|
"Powerup With Shield": true,
|
||||||
|
"Powerups": {
|
||||||
|
"Curse": 1,
|
||||||
|
"Fire Bombs": 3,
|
||||||
|
"Fly Bombs": 3,
|
||||||
|
"Goodbye": 2,
|
||||||
|
"Healing Damage": 1,
|
||||||
|
"Health": 1,
|
||||||
|
"Ice Bombs": 3,
|
||||||
|
"Ice Man": 1,
|
||||||
|
"Impact Bombs": 3,
|
||||||
|
"Impairment Bombs": 2,
|
||||||
|
"Mine Bombs": 2,
|
||||||
|
"Punch": 3,
|
||||||
|
"Shield": 2,
|
||||||
|
"Speed": 2,
|
||||||
|
"Sticky Bombs": 3,
|
||||||
|
"Tank Shield": 1,
|
||||||
|
"Triple": 3
|
||||||
|
},
|
||||||
|
"Tank Shield PTG": 96
|
||||||
|
},
|
||||||
|
"Player Profiles": {
|
||||||
|
"__account__": {
|
||||||
|
"character": "Spaz",
|
||||||
|
"color": [
|
||||||
|
0.5,
|
||||||
|
0.25,
|
||||||
|
1.0
|
||||||
|
],
|
||||||
|
"highlight": [
|
||||||
|
0.5,
|
||||||
|
0.25,
|
||||||
|
1.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Plugins": {
|
||||||
|
"custom_hooks.modSetup": {
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"plugins.Init": {
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Port": 43210,
|
||||||
|
"Region Pings": {
|
||||||
|
"af-south-1": 328.2357999996748,
|
||||||
|
"ap-northeast-1": 150.0941541948123,
|
||||||
|
"ap-northeast-2": 160.2201884064998,
|
||||||
|
"ap-south-1": 45.05286179925315,
|
||||||
|
"ap-southeast-1": 101.91129060697858,
|
||||||
|
"ap-southeast-2": 183.6228000029223,
|
||||||
|
"ca-central-1": 262.4569968022115,
|
||||||
|
"eu-central-1": 155.88790780561976,
|
||||||
|
"eu-north-1": 181.94498299446423,
|
||||||
|
"eu-south-1": 156.48616400256287,
|
||||||
|
"eu-west-1": 179.42955539320246,
|
||||||
|
"eu-west-2": 158.43393659518915,
|
||||||
|
"eu-west-3": 170.620519401622,
|
||||||
|
"me-south-1": 78.16982959693996,
|
||||||
|
"sa-east-1": 345.57150000182446,
|
||||||
|
"us-east-1": 238.92560360513744,
|
||||||
|
"us-east-2": 257.30932620124076,
|
||||||
|
"us-west-1": 255.34800000605173,
|
||||||
|
"us-west-2": 292.9734999925131
|
||||||
|
},
|
||||||
|
"Selected Coop Game": "Easy:Rookie Onslaught",
|
||||||
|
"Show Tutorial": false,
|
||||||
|
"Signed In Last Session": false,
|
||||||
|
"Team Game Max Player": 25,
|
||||||
|
"Team Game Max Players": 25,
|
||||||
|
"Team Tournament Playlist Randomize": true,
|
||||||
|
"Team Tournament Playlist Selection": "BCS_FUN",
|
||||||
|
"Team Tournament Playlists": {
|
||||||
|
"BCS_FUN": [
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Basic Bombs": true,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Frozen Bombs": true,
|
||||||
|
"Grabbing only": true,
|
||||||
|
"Impact Bombs": true,
|
||||||
|
"Punching only": true,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Sticky Bombs": true,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "\ue019Powerups Factory"
|
||||||
|
},
|
||||||
|
"type": "ArmsRace.ArmsRaceGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Countdown Time Each Round": 45,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Kill player on ground": true,
|
||||||
|
"Random Spawn Point (Team)": false,
|
||||||
|
"Respawn Times": 1.0,
|
||||||
|
"Score to Win Per Team": 5,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"[On score] Single Celebrate": true,
|
||||||
|
"[On score] Single Teleport": true,
|
||||||
|
"map": "Tower D"
|
||||||
|
},
|
||||||
|
"type": "Tower_Rush.BaseRaidGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Enable speed": false,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Powerups Spawn": true,
|
||||||
|
"Respawn Times": 1.0,
|
||||||
|
"Score to Win": 3,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "BasketBall Stadium V2"
|
||||||
|
},
|
||||||
|
"type": "baBasketBomb.BasketGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Large Box Count": 3,
|
||||||
|
"Points to win per Player": 1000,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Small Box Count": 1,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "crazyBoxes.CrazyBoxGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Points to Win Per Player": 2,
|
||||||
|
"Respawn Times": 1.0,
|
||||||
|
"Target Indicator": 1,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"Time to Kill": 7,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "GetTheTarget.GetTheTargetGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balance Total Lives": false,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Lives Per Player": 1,
|
||||||
|
"Respawn Times": 1.0,
|
||||||
|
"Solo Mode": false,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "GravityFalls.GFGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Score to Win": 3,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Bridgit Parallelo"
|
||||||
|
},
|
||||||
|
"type": "bastd.game.assault.AssaultGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"map": "Wooden Floor"
|
||||||
|
},
|
||||||
|
"type": "UFOAttackGame.UFOAttackGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balance Total Lives": true,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Lives Per Player": 3,
|
||||||
|
"Players Per Team In Arena": 2,
|
||||||
|
"Respawn Times": 0.25,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Bridgit Parallelo"
|
||||||
|
},
|
||||||
|
"type": "alliance_elimination.AllianceEliminationGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Respawn Times": 2.0,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Bridgit Mash"
|
||||||
|
},
|
||||||
|
"type": "bastd.game.conquest.ConquestGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Boxing Gloves": false,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Icy Floor": true,
|
||||||
|
"Respawn Times": 0.1,
|
||||||
|
"Score to Win": 7,
|
||||||
|
"Time Limit": 60,
|
||||||
|
"map": "Soccer Stadium Pro"
|
||||||
|
},
|
||||||
|
"type": "soccer.HockeyGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balance Total Lives": true,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Lives Per Player": 2,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Solo Mode": true,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "\ue019The Limbo"
|
||||||
|
},
|
||||||
|
"type": "bastd.game.elimination.EliminationGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Hold Time": 30,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "\ue019Platforms"
|
||||||
|
},
|
||||||
|
"type": "bastd.game.kingofthehill.KingOfTheHillGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balloon Mode": false,
|
||||||
|
"Difficulty": 0.15,
|
||||||
|
"Distractor Bones": 2,
|
||||||
|
"Enable Bananas": true,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Immortality": true,
|
||||||
|
"Mesh Color": 4,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Score to Win": 5,
|
||||||
|
"Space Under the Mesh": true,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"Timer": 3,
|
||||||
|
"Type of Hot Bomb": 0,
|
||||||
|
"map": "Hot Bomb Map"
|
||||||
|
},
|
||||||
|
"type": "Hot-Bomb.HotBombGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Score to Win": 3,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "\ue019Neo Zone"
|
||||||
|
},
|
||||||
|
"type": "bastd.game.assault.AssaultGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Flag Idle Return Time": 25,
|
||||||
|
"Flag Touch Return Time": 8,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Score to Win": 3,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "\ue019Big H"
|
||||||
|
},
|
||||||
|
"type": "bastd.game.capturetheflag.CaptureTheFlagGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Enable Bottom Credit": true,
|
||||||
|
"Enable Punching": false,
|
||||||
|
"Enable Running": false,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Doom Shroom"
|
||||||
|
},
|
||||||
|
"type": "MusicalFlags.MFGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"map": "Rampage"
|
||||||
|
},
|
||||||
|
"type": "TnT_Error.TntErrorGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balance Total Lives": false,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Lives Per Player": 2,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Solo Mode": false,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "safe_zone.SafeZoneGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Enable Bomb": false,
|
||||||
|
"Enable Jump": false,
|
||||||
|
"Enable Pickup": false,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Kills to Win Per Player": 12,
|
||||||
|
"Obstacles": true,
|
||||||
|
"Obstacles Count": 16,
|
||||||
|
"Obstacles Form": 0,
|
||||||
|
"Obstacles Mirror Shots": false,
|
||||||
|
"Random Obstacles Color": false,
|
||||||
|
"Respawn Times": 0.25,
|
||||||
|
"Speed": true,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"Weapon Type": 0,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "quake.game.QuakeGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Grant Powers on Score": true,
|
||||||
|
"Night Mode": true,
|
||||||
|
"Respawn Times": 0.5,
|
||||||
|
"Score to Win": 1,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "BigBall.BBGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Enable Bottom Credits": true,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"map": "Sky Tiles"
|
||||||
|
},
|
||||||
|
"type": "MemoryGame.MGgame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Bomb Spawning": 2000,
|
||||||
|
"Entire Team Must Finish": false,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Laps": 3,
|
||||||
|
"Mine Spawning": 4000,
|
||||||
|
"Time Limit": 120,
|
||||||
|
"map": "InTheAir"
|
||||||
|
},
|
||||||
|
"type": "StumbleRace.StumbleRaceGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Frozen One Gets Gloves": true,
|
||||||
|
"Frozen One Gets Shield": false,
|
||||||
|
"Frozen One Time": 30,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Tip Top"
|
||||||
|
},
|
||||||
|
"type": "FrozenOne16.FrozenOneGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Players as center of interest": true,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Score to Win": 4,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "baDarkFields.DarkFieldsGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"map": "InTheAir"
|
||||||
|
},
|
||||||
|
"type": "SubwayRun.SubwayRunGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balance Total Lives": false,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Lives Per Player": 1,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Solo Mode": false,
|
||||||
|
"Time Limit": 120,
|
||||||
|
"map": "Courtyard"
|
||||||
|
},
|
||||||
|
"type": "LaserTracer.LasorTracerGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"map": "Lake Frigid"
|
||||||
|
},
|
||||||
|
"type": "IcyEmits16.IcyEmitsGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"map": "Creative Thoughts"
|
||||||
|
},
|
||||||
|
"type": "FlappyBird.FlappyBirdGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Score to Win": 1,
|
||||||
|
"Time Limit": 40,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "EggGame.EggGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balance Total Lives": false,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Lives Per Player": 1,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Solo Mode": false,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Wooden Floor"
|
||||||
|
},
|
||||||
|
"type": "BlockDash.BlockDashGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Kills to Win Per Player": 5,
|
||||||
|
"Respawn Times": 0.25,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Rampage"
|
||||||
|
},
|
||||||
|
"type": "Yeeting-party.BoxingGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Model Type": 1,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"TNT Hitpoints": 25000,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "Heist.TNTTeamGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Kills to Win Per Player": 5,
|
||||||
|
"Respawn Times": 1,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Step Right Up"
|
||||||
|
},
|
||||||
|
"type": "CanonFight.CanonFightGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Balance Total Lives": true,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Lives Per Player": 2,
|
||||||
|
"Respawn Times": 0.25,
|
||||||
|
"Solo Mode": false,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "FloatingIsland"
|
||||||
|
},
|
||||||
|
"type": "DuelElimination.DuelEliminationGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Enable Bombs": true,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Infection Spread Rate": 0.03,
|
||||||
|
"Max Infected Size": 6,
|
||||||
|
"Max Size Increases Every": 20,
|
||||||
|
"Mines": 10,
|
||||||
|
"Sec/Extra Mine": 9,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "Infection.Infection"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Bomb Spawning": 2000,
|
||||||
|
"Entire Team Must Finish": false,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Laps": 2,
|
||||||
|
"Mine Spawning": 4000,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Big G"
|
||||||
|
},
|
||||||
|
"type": "Reverserace.ReverseRaceGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Bomb Spawning": 2000,
|
||||||
|
"Entire Team Must Finish": false,
|
||||||
|
"Epic Mode": false,
|
||||||
|
"Laps": 1,
|
||||||
|
"Mine Spawning": 4000,
|
||||||
|
"Time Limit": 120,
|
||||||
|
"map": "Football Stadium"
|
||||||
|
},
|
||||||
|
"type": "SquidRace.SquidRaceGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Disable Bombs": false,
|
||||||
|
"Disable Punch": true,
|
||||||
|
"Enable Bottom Credits": true,
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Icy Floor": true,
|
||||||
|
"Night Mode": false,
|
||||||
|
"Respawn Times": 0.25,
|
||||||
|
"Score to Win": 7,
|
||||||
|
"Time Limit": 300,
|
||||||
|
"map": "Closed Arena"
|
||||||
|
},
|
||||||
|
"type": "VolleyBall.VolleyBallGame"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"settings": {
|
||||||
|
"Epic Mode": true,
|
||||||
|
"Kills to Win Per Player": 3,
|
||||||
|
"Respawn Times": 0.25,
|
||||||
|
"Time Limit": 120,
|
||||||
|
"map": "Courtyard"
|
||||||
|
},
|
||||||
|
"type": "ms_BombWar.BombWar"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"launchCount": 259,
|
||||||
|
"lc14173": 1,
|
||||||
|
"lc14292": 1
|
||||||
|
}
|
||||||
BIN
dist/ba_root/mods/games/LaserTracer.so
vendored
BIN
dist/ba_root/mods/games/LaserTracer.so
vendored
Binary file not shown.
3
dist/ba_root/mods/games/quake/__init__.py
vendored
Normal file
3
dist/ba_root/mods/games/quake/__init__.py
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
"""Quake Game"""
|
||||||
|
# ba_meta require api 6
|
||||||
|
from .game import QuakeGame
|
||||||
360
dist/ba_root/mods/games/quake/game.py
vendored
Normal file
360
dist/ba_root/mods/games/quake/game.py
vendored
Normal file
|
|
@ -0,0 +1,360 @@
|
||||||
|
"""Quake Game Activity"""
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
import random
|
||||||
|
import enum
|
||||||
|
import ba
|
||||||
|
|
||||||
|
from bastd.actor.scoreboard import Scoreboard
|
||||||
|
from bastd.actor.powerupbox import PowerupBox
|
||||||
|
from bastd.gameutils import SharedObjects
|
||||||
|
|
||||||
|
import quake.rocket
|
||||||
|
import quake.railgun
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from typing import Optional, List, Any, Type, Union, Sequence
|
||||||
|
|
||||||
|
|
||||||
|
class Player(ba.Player['Team']):
|
||||||
|
"""Our player"""
|
||||||
|
|
||||||
|
|
||||||
|
class Team(ba.Team[Player]):
|
||||||
|
"""Our team"""
|
||||||
|
def __init__(self) -> None:
|
||||||
|
self.score = 0
|
||||||
|
|
||||||
|
|
||||||
|
class WeaponType(enum.Enum):
|
||||||
|
"""Type of weapon"""
|
||||||
|
ROCKET = 0
|
||||||
|
RAILGUN = 1
|
||||||
|
|
||||||
|
|
||||||
|
class ObstaclesForm(enum.Enum):
|
||||||
|
"""Obstacle form"""
|
||||||
|
CUBE = 0
|
||||||
|
SPHERE = 1
|
||||||
|
RANDOM = 2
|
||||||
|
|
||||||
|
|
||||||
|
# ba_meta export game
|
||||||
|
class QuakeGame(ba.TeamGameActivity[Player, Team]):
|
||||||
|
"""Quake Team Game Activity"""
|
||||||
|
name = 'Quake'
|
||||||
|
description = 'Kill a set number of enemies to win.'
|
||||||
|
available_settings = [
|
||||||
|
ba.IntSetting(
|
||||||
|
'Kills to Win Per Player',
|
||||||
|
default=15,
|
||||||
|
min_value=1,
|
||||||
|
increment=1,
|
||||||
|
),
|
||||||
|
ba.IntChoiceSetting(
|
||||||
|
'Time Limit',
|
||||||
|
choices=[('None', 0), ('1 Minute', 60), ('2 Minutes', 120),
|
||||||
|
('5 Minutes', 300), ('10 Minutes', 600),
|
||||||
|
('20 Minutes', 1200)],
|
||||||
|
default=0,
|
||||||
|
),
|
||||||
|
ba.FloatChoiceSetting(
|
||||||
|
'Respawn Times',
|
||||||
|
choices=[('At once', 0.0), ('Shorter', 0.25), ('Short', 0.5),
|
||||||
|
('Normal', 1.0), ('Long', 2.0), ('Longer', 4.0)],
|
||||||
|
default=1.0,
|
||||||
|
),
|
||||||
|
ba.BoolSetting(
|
||||||
|
'Speed',
|
||||||
|
default=True,
|
||||||
|
),
|
||||||
|
ba.BoolSetting(
|
||||||
|
'Enable Jump',
|
||||||
|
default=True,
|
||||||
|
),
|
||||||
|
ba.BoolSetting(
|
||||||
|
'Enable Pickup',
|
||||||
|
default=True,
|
||||||
|
),
|
||||||
|
ba.BoolSetting(
|
||||||
|
'Enable Bomb',
|
||||||
|
default=False,
|
||||||
|
),
|
||||||
|
ba.BoolSetting(
|
||||||
|
'Obstacles',
|
||||||
|
default=True,
|
||||||
|
),
|
||||||
|
ba.IntChoiceSetting(
|
||||||
|
'Obstacles Form',
|
||||||
|
choices=[('Cube', ObstaclesForm.CUBE.value),
|
||||||
|
('Sphere', ObstaclesForm.SPHERE.value),
|
||||||
|
('Random', ObstaclesForm.RANDOM.value)],
|
||||||
|
default=0,
|
||||||
|
),
|
||||||
|
ba.IntChoiceSetting(
|
||||||
|
'Weapon Type',
|
||||||
|
choices=[('Rocket', WeaponType.ROCKET.value),
|
||||||
|
('Railgun', WeaponType.RAILGUN.value)],
|
||||||
|
default=WeaponType.ROCKET.value,
|
||||||
|
),
|
||||||
|
ba.BoolSetting(
|
||||||
|
'Obstacles Mirror Shots',
|
||||||
|
default=False,
|
||||||
|
),
|
||||||
|
ba.IntSetting(
|
||||||
|
'Obstacles Count',
|
||||||
|
default=16,
|
||||||
|
min_value=0,
|
||||||
|
increment=2,
|
||||||
|
),
|
||||||
|
ba.BoolSetting(
|
||||||
|
'Random Obstacles Color',
|
||||||
|
default=True,
|
||||||
|
),
|
||||||
|
ba.BoolSetting(
|
||||||
|
'Epic Mode',
|
||||||
|
default=False,
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
|
||||||
|
return issubclass(sessiontype, ba.MultiTeamSession) or issubclass(
|
||||||
|
sessiontype, ba.FreeForAllSession)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_supported_maps(cls, sessiontype: Type[ba.Session]) -> List[str]:
|
||||||
|
# TODO add more maps
|
||||||
|
return ['Football Stadium', 'Monkey Face', 'Doom Shroom']
|
||||||
|
|
||||||
|
def __init__(self, settings) -> None:
|
||||||
|
super().__init__(settings)
|
||||||
|
self._epic_mode = self.settings_raw['Epic Mode']
|
||||||
|
self._score_to_win = self.settings_raw['Kills to Win Per Player']
|
||||||
|
self._time_limit = self.settings_raw['Time Limit']
|
||||||
|
self._obstacles_enabled = self.settings_raw['Obstacles']
|
||||||
|
self._obstacles_count = self.settings_raw['Obstacles Count']
|
||||||
|
self._speed_enabled = self.settings_raw['Speed']
|
||||||
|
self._bomb_enabled = self.settings_raw['Enable Bomb']
|
||||||
|
self._pickup_enabled = self.settings_raw['Enable Pickup']
|
||||||
|
self._jump_enabled = self.settings_raw['Enable Jump']
|
||||||
|
self._weapon_type = WeaponType(self.settings_raw['Weapon Type'])
|
||||||
|
self.default_music = (ba.MusicType.EPIC
|
||||||
|
if self._epic_mode else ba.MusicType.GRAND_ROMP)
|
||||||
|
self.slow_motion = self._epic_mode
|
||||||
|
|
||||||
|
self.announce_player_deaths = True
|
||||||
|
self._scoreboard = Scoreboard()
|
||||||
|
self._ding_sound = ba.getsound('dingSmall')
|
||||||
|
|
||||||
|
self._shield_dropper: Optional[ba.Timer] = None
|
||||||
|
|
||||||
|
def get_instance_description(self) -> Union[str, Sequence]:
|
||||||
|
return 'Kill ${ARG1} enemies.', self._score_to_win
|
||||||
|
|
||||||
|
def on_team_join(self, team: Team) -> None:
|
||||||
|
team.score = 0
|
||||||
|
if self.has_begun():
|
||||||
|
self._update_scoreboard()
|
||||||
|
|
||||||
|
def on_begin(self) -> None:
|
||||||
|
ba.TeamGameActivity.on_begin(self)
|
||||||
|
ba.getactivity().globalsnode.tint = (0.5, 0.7, 1)
|
||||||
|
self.drop_shield()
|
||||||
|
self._shield_dropper = ba.Timer(8,
|
||||||
|
ba.WeakCall(self.drop_shield),
|
||||||
|
repeat=True)
|
||||||
|
self.setup_standard_time_limit(self._time_limit)
|
||||||
|
if self._obstacles_enabled:
|
||||||
|
count = self._obstacles_count
|
||||||
|
gamemap = self.map.getname()
|
||||||
|
for i in range(count): # TODO: tidy up around here
|
||||||
|
if gamemap == 'Football Stadium':
|
||||||
|
radius = (random.uniform(-10, 1),
|
||||||
|
6,
|
||||||
|
random.uniform(-4.5, 4.5)) \
|
||||||
|
if i > count / 2 else (
|
||||||
|
random.uniform(10, 1), 6, random.uniform(-4.5, 4.5))
|
||||||
|
else:
|
||||||
|
radius = (random.uniform(-10, 1),
|
||||||
|
6,
|
||||||
|
random.uniform(-8, 8)) \
|
||||||
|
if i > count / 2 else (
|
||||||
|
random.uniform(10, 1), 6, random.uniform(-8, 8))
|
||||||
|
|
||||||
|
Obstacle(
|
||||||
|
position=radius,
|
||||||
|
mirror=self.settings_raw['Obstacles Mirror Shots'],
|
||||||
|
form=self.settings_raw['Obstacles Form']).autoretain()
|
||||||
|
|
||||||
|
self._update_scoreboard()
|
||||||
|
|
||||||
|
def drop_shield(self) -> None:
|
||||||
|
"""Drop a shield powerup in random place"""
|
||||||
|
# FIXME: should use map defs
|
||||||
|
shield = PowerupBox(poweruptype='shield',
|
||||||
|
position=(random.uniform(-10, 10), 6,
|
||||||
|
random.uniform(-5, 5))).autoretain()
|
||||||
|
|
||||||
|
ba.playsound(self._ding_sound)
|
||||||
|
|
||||||
|
p_light = ba.newnode('light',
|
||||||
|
owner=shield.node,
|
||||||
|
attrs={
|
||||||
|
'position': (0, 0, 0),
|
||||||
|
'color': (0.3, 0.0, 0.4),
|
||||||
|
'radius': 0.3,
|
||||||
|
'intensity': 2,
|
||||||
|
'volume_intensity_scale': 10.0
|
||||||
|
})
|
||||||
|
|
||||||
|
shield.node.connectattr('position', p_light, 'position')
|
||||||
|
|
||||||
|
ba.animate(p_light, 'intensity', {0: 2, 8: 0})
|
||||||
|
|
||||||
|
def spawn_player(self, player: Player) -> None:
|
||||||
|
spaz = self.spawn_player_spaz(player)
|
||||||
|
if self._weapon_type == WeaponType.ROCKET:
|
||||||
|
quake.rocket.RocketLauncher().give(spaz)
|
||||||
|
elif self._weapon_type == WeaponType.RAILGUN:
|
||||||
|
quake.railgun.Railgun().give(spaz)
|
||||||
|
spaz.connect_controls_to_player(enable_jump=self._jump_enabled,
|
||||||
|
enable_pickup=self._pickup_enabled,
|
||||||
|
enable_bomb=self._bomb_enabled,
|
||||||
|
enable_fly=False)
|
||||||
|
|
||||||
|
spaz.node.hockey = self._speed_enabled
|
||||||
|
spaz.spaz_light = ba.newnode('light',
|
||||||
|
owner=spaz.node,
|
||||||
|
attrs={
|
||||||
|
'position': (0, 0, 0),
|
||||||
|
'color': spaz.node.color,
|
||||||
|
'radius': 0.12,
|
||||||
|
'intensity': 1,
|
||||||
|
'volume_intensity_scale': 10.0
|
||||||
|
})
|
||||||
|
|
||||||
|
spaz.node.connectattr('position', spaz.spaz_light, 'position')
|
||||||
|
|
||||||
|
def handlemessage(self, msg: Any) -> Any:
|
||||||
|
if isinstance(msg, ba.PlayerDiedMessage):
|
||||||
|
ba.TeamGameActivity.handlemessage(self, msg)
|
||||||
|
player = msg.getplayer(Player)
|
||||||
|
self.respawn_player(player)
|
||||||
|
killer = msg.getkillerplayer(Player)
|
||||||
|
if killer is None:
|
||||||
|
return
|
||||||
|
|
||||||
|
# handle team-kills
|
||||||
|
if killer.team is player.team:
|
||||||
|
# in free-for-all, killing yourself loses you a point
|
||||||
|
if isinstance(self.session, ba.FreeForAllSession):
|
||||||
|
new_score = player.team.score - 1
|
||||||
|
new_score = max(0, new_score)
|
||||||
|
player.team.score = new_score
|
||||||
|
# in teams-mode it gives a point to the other team
|
||||||
|
else:
|
||||||
|
ba.playsound(self._ding_sound)
|
||||||
|
for team in self.teams:
|
||||||
|
if team is not killer.team:
|
||||||
|
team.score += 1
|
||||||
|
# killing someone on another team nets a kill
|
||||||
|
else:
|
||||||
|
killer.team.score += 1
|
||||||
|
ba.playsound(self._ding_sound)
|
||||||
|
# in FFA show our score since its hard to find on
|
||||||
|
# the scoreboard
|
||||||
|
assert killer.actor is not None
|
||||||
|
# noinspection PyUnresolvedReferences
|
||||||
|
killer.actor.set_score_text(str(killer.team.score) + '/' +
|
||||||
|
str(self._score_to_win),
|
||||||
|
color=killer.team.color,
|
||||||
|
flash=True)
|
||||||
|
|
||||||
|
self._update_scoreboard()
|
||||||
|
|
||||||
|
# if someone has won, set a timer to end shortly
|
||||||
|
# (allows the dust to clear and draws to occur if
|
||||||
|
# deaths are close enough)
|
||||||
|
if any(team.score >= self._score_to_win for team in self.teams):
|
||||||
|
ba.timer(0.5, self.end_game)
|
||||||
|
|
||||||
|
else:
|
||||||
|
ba.TeamGameActivity.handlemessage(self, msg)
|
||||||
|
|
||||||
|
def _update_scoreboard(self) -> None:
|
||||||
|
for team in self.teams:
|
||||||
|
self._scoreboard.set_team_value(team, team.score,
|
||||||
|
self._score_to_win)
|
||||||
|
|
||||||
|
def end_game(self) -> None:
|
||||||
|
results = ba.GameResults()
|
||||||
|
for team in self.teams:
|
||||||
|
results.set_team_score(team, team.score)
|
||||||
|
|
||||||
|
self.end(results=results)
|
||||||
|
|
||||||
|
|
||||||
|
class Obstacle(ba.Actor):
|
||||||
|
"""Scene object"""
|
||||||
|
|
||||||
|
def __init__(self,
|
||||||
|
position,
|
||||||
|
form=ObstaclesForm.CUBE,
|
||||||
|
mirror=False) -> None:
|
||||||
|
ba.Actor.__init__(self)
|
||||||
|
|
||||||
|
if form == ObstaclesForm.CUBE:
|
||||||
|
model = 'tnt'
|
||||||
|
body = 'crate'
|
||||||
|
elif form == ObstaclesForm.SPHERE:
|
||||||
|
model = 'bomb'
|
||||||
|
body = 'sphere'
|
||||||
|
else: # ObstaclesForm.RANDOM:
|
||||||
|
model = random.choice(['tnt', 'bomb'])
|
||||||
|
body = 'sphere' if model == 'bomb' else 'crate'
|
||||||
|
|
||||||
|
self.node = ba.newnode(
|
||||||
|
'prop',
|
||||||
|
delegate=self,
|
||||||
|
attrs={
|
||||||
|
'position':
|
||||||
|
position,
|
||||||
|
'model':
|
||||||
|
ba.getmodel(model),
|
||||||
|
'body':
|
||||||
|
body,
|
||||||
|
'body_scale':
|
||||||
|
1.3,
|
||||||
|
'model_scale':
|
||||||
|
1.3,
|
||||||
|
'reflection':
|
||||||
|
'powerup',
|
||||||
|
'reflection_scale': [0.7],
|
||||||
|
'color_texture':
|
||||||
|
ba.gettexture('bunnyColor'),
|
||||||
|
'materials': [SharedObjects.get().footing_material]
|
||||||
|
if mirror else [
|
||||||
|
SharedObjects.get().object_material,
|
||||||
|
SharedObjects.get().footing_material
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
def handlemessage(self, msg: Any) -> Any:
|
||||||
|
if isinstance(msg, ba.DieMessage):
|
||||||
|
if self.node:
|
||||||
|
self.node.delete()
|
||||||
|
|
||||||
|
elif isinstance(msg, ba.OutOfBoundsMessage):
|
||||||
|
if self.node:
|
||||||
|
self.handlemessage(ba.DieMessage())
|
||||||
|
|
||||||
|
elif isinstance(msg, ba.HitMessage):
|
||||||
|
self.node.handlemessage('impulse', msg.pos[0], msg.pos[1],
|
||||||
|
msg.pos[2], msg.velocity[0],
|
||||||
|
msg.velocity[1], msg.velocity[2],
|
||||||
|
msg.magnitude, msg.velocity_magnitude,
|
||||||
|
msg.radius, 0, msg.velocity[0],
|
||||||
|
msg.velocity[1], msg.velocity[2])
|
||||||
128
dist/ba_root/mods/games/quake/railgun.py
vendored
Normal file
128
dist/ba_root/mods/games/quake/railgun.py
vendored
Normal file
|
|
@ -0,0 +1,128 @@
|
||||||
|
"""Quake Game Rocket weapon"""
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
import _ba
|
||||||
|
import ba
|
||||||
|
|
||||||
|
from bastd.actor.playerspaz import PlayerSpaz
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from typing import Optional, Any
|
||||||
|
from bastd.actor.spaz import Spaz
|
||||||
|
|
||||||
|
STORAGE_ATTR_NAME = f'_shared_{__name__}_factory'
|
||||||
|
|
||||||
|
|
||||||
|
class Railgun:
|
||||||
|
"""Very dangerous weapon"""
|
||||||
|
|
||||||
|
def __init__(self) -> None:
|
||||||
|
self.last_shot: Optional[int, float] = 0
|
||||||
|
|
||||||
|
def give(self, spaz: Spaz) -> None:
|
||||||
|
"""Give spaz a railgun"""
|
||||||
|
spaz.punch_callback = self.shot
|
||||||
|
self.last_shot = ba.time()
|
||||||
|
|
||||||
|
# FIXME
|
||||||
|
# noinspection PyUnresolvedReferences
|
||||||
|
def shot(self, spaz: Spaz) -> None:
|
||||||
|
"""Release a rocket"""
|
||||||
|
time = ba.time()
|
||||||
|
if time - self.last_shot > 0.6:
|
||||||
|
self.last_shot = time
|
||||||
|
center = spaz.node.position_center
|
||||||
|
forward = spaz.node.position_forward
|
||||||
|
direction = [
|
||||||
|
center[0] - forward[0], forward[1] - center[1],
|
||||||
|
center[2] - forward[2]
|
||||||
|
]
|
||||||
|
direction[1] = 0.0
|
||||||
|
|
||||||
|
RailBullet(position=spaz.node.position,
|
||||||
|
direction=direction,
|
||||||
|
owner=spaz.getplayer(ba.Player),
|
||||||
|
source_player=spaz.getplayer(ba.Player),
|
||||||
|
color=spaz.node.color).autoretain()
|
||||||
|
|
||||||
|
|
||||||
|
class TouchedToSpazMessage:
|
||||||
|
"""I hit!"""
|
||||||
|
|
||||||
|
def __init__(self, spaz) -> None:
|
||||||
|
self.spaz = spaz
|
||||||
|
|
||||||
|
|
||||||
|
class RailBullet(ba.Actor):
|
||||||
|
"""Railgun bullet"""
|
||||||
|
|
||||||
|
def __init__(self,
|
||||||
|
position=(0, 5, 0),
|
||||||
|
direction=(0, 2, 0),
|
||||||
|
source_player=None,
|
||||||
|
owner=None,
|
||||||
|
color=(1, 1, 1)) -> None:
|
||||||
|
super().__init__()
|
||||||
|
self._color = color
|
||||||
|
|
||||||
|
self.node = ba.newnode('light',
|
||||||
|
delegate=self,
|
||||||
|
attrs={
|
||||||
|
'position': position,
|
||||||
|
'color': self._color
|
||||||
|
})
|
||||||
|
ba.animate(self.node, 'radius', {0: 0, 0.1: 0.5, 0.5: 0})
|
||||||
|
|
||||||
|
self.source_player = source_player
|
||||||
|
self.owner = owner
|
||||||
|
self._life_timer = ba.Timer(
|
||||||
|
0.5, ba.WeakCall(self.handlemessage, ba.DieMessage()))
|
||||||
|
|
||||||
|
pos = position
|
||||||
|
vel = tuple(i / 5 for i in ba.Vec3(direction).normalized())
|
||||||
|
for _ in range(500): # Optimization :(
|
||||||
|
ba.newnode('explosion',
|
||||||
|
owner=self.node,
|
||||||
|
attrs={
|
||||||
|
'position': pos,
|
||||||
|
'radius': 0.2,
|
||||||
|
'color': self._color
|
||||||
|
})
|
||||||
|
pos = (pos[0] + vel[0], pos[1] + vel[1], pos[2] + vel[2])
|
||||||
|
|
||||||
|
for node in _ba.getnodes():
|
||||||
|
if node and node.getnodetype() == 'spaz':
|
||||||
|
# pylint: disable=invalid-name
|
||||||
|
m3 = ba.Vec3(position)
|
||||||
|
a = ba.Vec3(direction[2], direction[1], direction[0])
|
||||||
|
m1 = ba.Vec3(node.position)
|
||||||
|
# pylint: enable=invalid-name
|
||||||
|
# distance between node and line
|
||||||
|
dist = (a * (m1 - m3)).length() / a.length()
|
||||||
|
if dist < 0.3:
|
||||||
|
if node and node != self.owner and node.getdelegate(
|
||||||
|
PlayerSpaz, True).getplayer(
|
||||||
|
ba.Player, True).team != self.owner.team:
|
||||||
|
node.handlemessage(ba.FreezeMessage())
|
||||||
|
pos = self.node.position
|
||||||
|
hit_dir = (0, 10, 0)
|
||||||
|
|
||||||
|
node.handlemessage(
|
||||||
|
ba.HitMessage(pos=pos,
|
||||||
|
magnitude=50,
|
||||||
|
velocity_magnitude=50,
|
||||||
|
radius=0,
|
||||||
|
srcnode=self.node,
|
||||||
|
source_player=self.source_player,
|
||||||
|
force_direction=hit_dir))
|
||||||
|
|
||||||
|
def handlemessage(self, msg: Any) -> Any:
|
||||||
|
super().handlemessage(msg)
|
||||||
|
if isinstance(msg, ba.DieMessage):
|
||||||
|
if self.node:
|
||||||
|
self.node.delete()
|
||||||
|
|
||||||
|
elif isinstance(msg, ba.OutOfBoundsMessage):
|
||||||
|
self.handlemessage(ba.DieMessage())
|
||||||
170
dist/ba_root/mods/games/quake/rocket.py
vendored
Normal file
170
dist/ba_root/mods/games/quake/rocket.py
vendored
Normal file
|
|
@ -0,0 +1,170 @@
|
||||||
|
"""Quake Game Rocket weapon"""
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
import ba
|
||||||
|
|
||||||
|
from bastd.actor.bomb import Blast
|
||||||
|
from bastd.gameutils import SharedObjects
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from typing import Optional, Any
|
||||||
|
from bastd.actor.spaz import Spaz
|
||||||
|
|
||||||
|
STORAGE_ATTR_NAME = f'_shared_{__name__}_factory'
|
||||||
|
|
||||||
|
|
||||||
|
class RocketFactory:
|
||||||
|
"""Quake Rocket factory"""
|
||||||
|
|
||||||
|
def __init__(self) -> None:
|
||||||
|
self.ball_material = ba.Material()
|
||||||
|
|
||||||
|
self.ball_material.add_actions(
|
||||||
|
conditions=((('we_are_younger_than', 5), 'or',
|
||||||
|
('they_are_younger_than', 5)), 'and',
|
||||||
|
('they_have_material',
|
||||||
|
SharedObjects.get().object_material)),
|
||||||
|
actions=('modify_node_collision', 'collide', False))
|
||||||
|
|
||||||
|
self.ball_material.add_actions(
|
||||||
|
conditions=('they_have_material',
|
||||||
|
SharedObjects.get().pickup_material),
|
||||||
|
actions=('modify_part_collision', 'use_node_collide', False))
|
||||||
|
|
||||||
|
self.ball_material.add_actions(actions=('modify_part_collision',
|
||||||
|
'friction', 0))
|
||||||
|
|
||||||
|
self.ball_material.add_actions(
|
||||||
|
conditions=(('they_have_material',
|
||||||
|
SharedObjects.get().footing_material), 'or',
|
||||||
|
('they_have_material',
|
||||||
|
SharedObjects.get().object_material)),
|
||||||
|
actions=('message', 'our_node', 'at_connect', ImpactMessage()))
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get(cls):
|
||||||
|
"""Get factory if exists else create new"""
|
||||||
|
activity = ba.getactivity()
|
||||||
|
if hasattr(activity, STORAGE_ATTR_NAME):
|
||||||
|
return getattr(activity, STORAGE_ATTR_NAME)
|
||||||
|
factory = cls()
|
||||||
|
setattr(activity, STORAGE_ATTR_NAME, factory)
|
||||||
|
return factory
|
||||||
|
|
||||||
|
|
||||||
|
class RocketLauncher:
|
||||||
|
"""Very dangerous weapon"""
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.last_shot: Optional[int, float] = 0
|
||||||
|
|
||||||
|
def give(self, spaz: Spaz) -> None:
|
||||||
|
"""Give spaz a rocket launcher"""
|
||||||
|
spaz.punch_callback = self.shot
|
||||||
|
self.last_shot = ba.time()
|
||||||
|
|
||||||
|
# FIXME
|
||||||
|
# noinspection PyUnresolvedReferences
|
||||||
|
def shot(self, spaz: Spaz) -> None:
|
||||||
|
"""Release a rocket"""
|
||||||
|
time = ba.time()
|
||||||
|
if time - self.last_shot > 0.6:
|
||||||
|
self.last_shot = time
|
||||||
|
center = spaz.node.position_center
|
||||||
|
forward = spaz.node.position_forward
|
||||||
|
direction = [center[0] - forward[0], forward[1] - center[1],
|
||||||
|
center[2] - forward[2]]
|
||||||
|
direction[1] = 0.0
|
||||||
|
|
||||||
|
mag = 10.0 / ba.Vec3(*direction).length()
|
||||||
|
vel = [v * mag for v in direction]
|
||||||
|
Rocket(position=spaz.node.position,
|
||||||
|
velocity=vel,
|
||||||
|
owner=spaz.getplayer(ba.Player),
|
||||||
|
source_player=spaz.getplayer(ba.Player),
|
||||||
|
color=spaz.node.color).autoretain()
|
||||||
|
|
||||||
|
|
||||||
|
class ImpactMessage:
|
||||||
|
"""Rocket touched something"""
|
||||||
|
|
||||||
|
|
||||||
|
class Rocket(ba.Actor):
|
||||||
|
"""Epic rocket from rocket launcher"""
|
||||||
|
|
||||||
|
def __init__(self,
|
||||||
|
position=(0, 5, 0),
|
||||||
|
velocity=(1, 0, 0),
|
||||||
|
source_player=None,
|
||||||
|
owner=None,
|
||||||
|
color=(1.0, 0.2, 0.2)) -> None:
|
||||||
|
super().__init__()
|
||||||
|
self.source_player = source_player
|
||||||
|
self.owner = owner
|
||||||
|
self._color = color
|
||||||
|
factory = RocketFactory.get()
|
||||||
|
|
||||||
|
self.node = ba.newnode('prop',
|
||||||
|
delegate=self,
|
||||||
|
attrs={
|
||||||
|
'position': position,
|
||||||
|
'velocity': velocity,
|
||||||
|
'model': ba.getmodel('impactBomb'),
|
||||||
|
'body': 'sphere',
|
||||||
|
'color_texture': ba.gettexture(
|
||||||
|
'bunnyColor'),
|
||||||
|
'model_scale': 0.2,
|
||||||
|
'is_area_of_interest': True,
|
||||||
|
'body_scale': 0.8,
|
||||||
|
'materials': [
|
||||||
|
SharedObjects.get().object_material,
|
||||||
|
factory.ball_material]
|
||||||
|
}) # yapf: disable
|
||||||
|
self.node.extra_acceleration = (self.node.velocity[0] * 200, 0,
|
||||||
|
self.node.velocity[2] * 200)
|
||||||
|
|
||||||
|
self._life_timer = ba.Timer(
|
||||||
|
5, ba.WeakCall(self.handlemessage, ba.DieMessage()))
|
||||||
|
|
||||||
|
self._emit_timer = ba.Timer(0.001, ba.WeakCall(self.emit), repeat=True)
|
||||||
|
self.base_pos_y = self.node.position[1]
|
||||||
|
|
||||||
|
ba.camerashake(5.0)
|
||||||
|
|
||||||
|
def emit(self) -> None:
|
||||||
|
"""Emit a trace after rocket"""
|
||||||
|
ba.emitfx(position=self.node.position,
|
||||||
|
scale=0.4,
|
||||||
|
spread=0.01,
|
||||||
|
chunk_type='spark')
|
||||||
|
if not self.node:
|
||||||
|
return
|
||||||
|
self.node.position = (self.node.position[0], self.base_pos_y,
|
||||||
|
self.node.position[2]) # ignore y
|
||||||
|
ba.newnode('explosion',
|
||||||
|
owner=self.node,
|
||||||
|
attrs={
|
||||||
|
'position': self.node.position,
|
||||||
|
'radius': 0.2,
|
||||||
|
'color': self._color
|
||||||
|
})
|
||||||
|
|
||||||
|
def handlemessage(self, msg: Any) -> Any:
|
||||||
|
"""Message handling for rocket"""
|
||||||
|
super().handlemessage(msg)
|
||||||
|
if isinstance(msg, ImpactMessage):
|
||||||
|
self.node.handlemessage(ba.DieMessage())
|
||||||
|
|
||||||
|
elif isinstance(msg, ba.DieMessage):
|
||||||
|
if self.node:
|
||||||
|
Blast(position=self.node.position,
|
||||||
|
blast_radius=2,
|
||||||
|
source_player=self.source_player)
|
||||||
|
|
||||||
|
self.node.delete()
|
||||||
|
self._emit_timer = None
|
||||||
|
|
||||||
|
elif isinstance(msg, ba.OutOfBoundsMessage):
|
||||||
|
self.handlemessage(ba.DieMessage())
|
||||||
BIN
dist/ba_root/mods/games/soccer.so
vendored
BIN
dist/ba_root/mods/games/soccer.so
vendored
Binary file not shown.
4
dist/ba_root/mods/maps/BasketBallMap.py
vendored
4
dist/ba_root/mods/maps/BasketBallMap.py
vendored
|
|
@ -3,8 +3,8 @@ from bastd.gameutils import SharedObjects
|
||||||
from bastd.actor import playerspaz as ps
|
from bastd.actor import playerspaz as ps
|
||||||
from bastd import maps
|
from bastd import maps
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
|
||||||
from typing import Any, Sequence, Dict, Type, List, Optional, Union
|
from typing import Any, Sequence, Dict, Type, List, Optional, Union
|
||||||
|
|
||||||
class BasketMap(maps.FootballStadium):
|
class BasketMap(maps.FootballStadium):
|
||||||
name = 'BasketBall Stadium'
|
name = 'BasketBall Stadium'
|
||||||
|
|
|
||||||
BIN
dist/ba_root/mods/maps/BridgitMash.so
vendored
BIN
dist/ba_root/mods/maps/BridgitMash.so
vendored
Binary file not shown.
BIN
dist/ba_root/mods/maps/BridgitParallelo.so
vendored
BIN
dist/ba_root/mods/maps/BridgitParallelo.so
vendored
Binary file not shown.
4
dist/ba_root/mods/maps/MemoryGame.py
vendored
4
dist/ba_root/mods/maps/MemoryGame.py
vendored
|
|
@ -1,7 +1,7 @@
|
||||||
import ba
|
import ba
|
||||||
from bastd.gameutils import SharedObjects
|
from bastd.gameutils import SharedObjects
|
||||||
if TYPE_CHECKING:
|
|
||||||
from typing import Any, Sequence, Optional, List, Dict, Type, Type , Union, Any, Literal
|
from typing import Any, Sequence, Optional, List, Dict, Type, Type , Union, Any, Literal
|
||||||
|
|
||||||
class MGdefs():
|
class MGdefs():
|
||||||
points = {}
|
points = {}
|
||||||
|
|
|
||||||
8
dist/ba_root/mods/maps/VolleBallMap.py
vendored
8
dist/ba_root/mods/maps/VolleBallMap.py
vendored
|
|
@ -1,8 +1,8 @@
|
||||||
|
|
||||||
import ba,_ba
|
import ba,_ba
|
||||||
from bastd.gameutils import SharedObjects
|
from bastd.gameutils import SharedObjects
|
||||||
if TYPE_CHECKING:
|
|
||||||
from typing import Any, Sequence, Optional, List, Dict, Type, Type , Union, Any, Literal
|
from typing import Any, Sequence, Optional, List, Dict, Type, Type , Union, Any, Literal
|
||||||
|
|
||||||
a=0.0
|
a=0.0
|
||||||
class Pointzz:
|
class Pointzz:
|
||||||
|
|
@ -49,7 +49,7 @@ class PointzzforH:
|
||||||
points['tnt1'] = (-0.05791962398, 1.080990833, -4.765886164)
|
points['tnt1'] = (-0.05791962398, 1.080990833, -4.765886164)
|
||||||
|
|
||||||
class VolleyBallMap(ba.Map):
|
class VolleyBallMap(ba.Map):
|
||||||
from VolleyBall import Pointzz as defs
|
defs = Pointzz
|
||||||
name = "Open Field"
|
name = "Open Field"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -166,7 +166,7 @@ class VolleyBallMap(ba.Map):
|
||||||
class VolleyBallMapH(ba.Map):
|
class VolleyBallMapH(ba.Map):
|
||||||
"""Stadium map used for ice hockey games."""
|
"""Stadium map used for ice hockey games."""
|
||||||
|
|
||||||
from VolleyBall import PointzzforH as defs
|
defs = PointzzforH
|
||||||
name = 'Closed Arena'
|
name = 'Closed Arena'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
|
||||||
777
dist/ba_root/mods/maps/baAllMaps.py
vendored
Normal file
777
dist/ba_root/mods/maps/baAllMaps.py
vendored
Normal file
|
|
@ -0,0 +1,777 @@
|
||||||
|
# ba_meta require api 6
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# - Plugin SEBASTIAN2059 - Zacker Tz- - - - - - - - - - - - - - - -
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# - Maps: -
|
||||||
|
# - Neo Zone v1 - by Zacker Tz || Zacker#5505 -
|
||||||
|
# - Big H v1 - by SEBASTIAN2059 || SEBASTIAN2059#5751 -
|
||||||
|
# - The Limbo v2 - by Zacker Tz || Zacker#5505 -
|
||||||
|
# - Platforms v2 - by SEBASTIAN2059 || SEBASTIAN2059#5751 -
|
||||||
|
# - Powerups Factory v2 - by Zacker Tz || Zacker#5505 -
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# - Notes
|
||||||
|
# - The Powerups Factory map generates some lag, use it at your own risk
|
||||||
|
# - El mapa Powerups Factory genera un poco de lag, usalo bajo tu propio riesgo
|
||||||
|
# - - - -
|
||||||
|
# - New maps comingsoon!!!!1111!11!!111!11!!1111
|
||||||
|
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
from bastd.maps import *
|
||||||
|
import ba
|
||||||
|
import _ba
|
||||||
|
import base64
|
||||||
|
from ba import _map
|
||||||
|
import random
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from typing import Any, List, Dict
|
||||||
|
|
||||||
|
##Complementos##
|
||||||
|
class FadeEfect():
|
||||||
|
def __init__(self, map_tint = (1,1,1)):
|
||||||
|
gnode = ba.getactivity().globalsnode
|
||||||
|
ba.animate_array(gnode,'tint',3,{0:(0,0,0),0.5:(0,0,0),1.2:map_tint})
|
||||||
|
|
||||||
|
text = ba.newnode('text',
|
||||||
|
attrs={
|
||||||
|
'position': (0,325),
|
||||||
|
'text': 'Building Map...',
|
||||||
|
'color': (1,1,1),
|
||||||
|
'h_align': 'center','v_align': 'center', 'vr_depth': 410, 'maxwidth': 600, 'shadow': 1.0, 'flatness': 1.0, 'scale':2, 'h_attach': 'center', 'v_attach': 'bottom'})
|
||||||
|
ba.animate(text,'opacity',{0:1,0.2:1,0.7:0})
|
||||||
|
ba.timer(1,text.delete)
|
||||||
|
|
||||||
|
text = ba.newnode('text',
|
||||||
|
attrs={
|
||||||
|
'position': (0,295),
|
||||||
|
'text': 'Maps by Sebastian2059-ZackerTz',
|
||||||
|
'color': (0.1,0.0,0.76),
|
||||||
|
'h_align': 'center', 'v_align': 'center', 'vr_depth': 410, 'maxwidth': 600, 'shadow': 1.0, 'flatness': 1.0, 'scale':0.7, 'h_attach': 'center', 'v_attach': 'bottom'})
|
||||||
|
ba.animate(text,'opacity',{0:1,0.2:1,0.7:0})
|
||||||
|
ba.timer(1,text.delete)
|
||||||
|
|
||||||
|
|
||||||
|
class Credits:
|
||||||
|
""" Don't delete this if you respect other people's work"""
|
||||||
|
def __init__(self):
|
||||||
|
exec(base64.b64decode("dCA9IGJhLm5ld25vZGUoJ3RleHQnLAogICAgICAgICAgICAgICBhdHRycz17ICd0ZXh0JzoiTWFwcyBieTogU0VCQVNUSUFOMjA1OS1aYWNrZXIgVHoiLCAKICAgICAgICAnc2NhbGUnOjAuNiwKICAgICAgICAncG9zaXRpb24nOigwLDApLCAKICAgICAgICAnb3BhY2l0eSc6IDAuNCwKICAgICAgICAnc2hhZG93JzowLjUsCiAgICAgICAgJ2ZsYXRuZXNzJzoxLjIsCiAgICAgICAgJ2NvbG9yJzooMSwgMSwgMSksCiAgICAgICAgJ2hfYWxpZ24nOidjZW50ZXInLAogICAgICAgICd2X2F0dGFjaCc6J2JvdHRvbSd9KQ==").decode('UTF-8')) # :bobolu:
|
||||||
|
###End###
|
||||||
|
|
||||||
|
|
||||||
|
#Map by Zacker Tz
|
||||||
|
#Map #1
|
||||||
|
class neo_defs():
|
||||||
|
boxes = {}
|
||||||
|
points = {}
|
||||||
|
boxes['area_of_interest_bounds'] = (0, 4, 0) + (0, 0, 0) + (50, 10, 20)
|
||||||
|
boxes['edge_box'] = (0, 4, 0) + (0.0, 0.0, 0.0) + (40, 2, 10)
|
||||||
|
boxes['map_bounds'] = (0, 4, 0) + (0, 0, 0) + (28, 10, 28)
|
||||||
|
points['ffa_spawn1'] = (-10,3.17,0) + (1.0,0.1,1.0)
|
||||||
|
points['ffa_spawn2'] = (10,3.17,0) + (1.0,0.1,1.0)
|
||||||
|
points['ffa_spawn3'] = (-5.25,3.17,-1.75) + (0.5,0.1,0.5)
|
||||||
|
points['ffa_Spawn4'] = (5.25,3.17,-1.75) + (0.5,0.1,0.5)
|
||||||
|
points['spawn1'] = (-11,3.17,0) + (1.0,0.1,1.0)
|
||||||
|
points['spawn2'] = (11,3.17,0) + (1.0,0.1,1.0)
|
||||||
|
points['flag1'] = (-12.0,3.3,0) + (2.0,0.1,2.0)
|
||||||
|
points['flag2'] = (12.0,3.3,0) + (2.0,0.1,2.0)
|
||||||
|
points['flag_default'] = (0,3.3,1.75)
|
||||||
|
points['powerup_spawn1'] = (-11,4.0,-1.75)
|
||||||
|
points['powerup_spawn2'] = (-11,4.0,1.75)
|
||||||
|
points['powerup_spawn3'] = (-1.75,4.0,0)
|
||||||
|
points['powerup_spawn4'] = (1.75,4.0,0.0)
|
||||||
|
points['powerup_spawn5'] = (11,4.0,-1.75)
|
||||||
|
points['powerup_spawn6'] = (11,4.0,1.75)
|
||||||
|
|
||||||
|
|
||||||
|
class NeoZone(ba.Map):
|
||||||
|
"""Agent john's former workplace"""
|
||||||
|
|
||||||
|
defs = neo_defs()
|
||||||
|
name = 'Neo Zone'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_play_types(cls) -> List[str]:
|
||||||
|
"""Return valid play types for this map."""
|
||||||
|
return ['melee','king_of_the_hill','keep_away','team_flag']
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_preview_texture_name(cls) -> str:
|
||||||
|
return 'rgbStripes'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def on_preload(cls) -> Any:
|
||||||
|
data: Dict[str, Any] = {
|
||||||
|
'model': ba.getmodel('landMine'),
|
||||||
|
'tex': ba.gettexture('landMine'),
|
||||||
|
'bgtex': ba.gettexture('black'),
|
||||||
|
'bgmodel': ba.getmodel('thePadBG'),
|
||||||
|
}
|
||||||
|
return data
|
||||||
|
|
||||||
|
def __init__(self) -> None:
|
||||||
|
super().__init__()
|
||||||
|
shared = SharedObjects.get()
|
||||||
|
|
||||||
|
self._collide_with_player=ba.Material()
|
||||||
|
self._collide_with_player.add_actions(conditions=('we_are_older_than', 1), actions=(('modify_part_collision', 'collide', True)))
|
||||||
|
self.dont_collide=ba.Material()
|
||||||
|
self.dont_collide.add_actions(conditions=('they_are_different_node_than_us', ),actions=(('modify_part_collision', 'collide', False)))
|
||||||
|
|
||||||
|
self._map_model = ba.getmodel('image1x1')
|
||||||
|
self._map_model2 = ba.getmodel('tnt')
|
||||||
|
self._map_tex = ba.gettexture('powerupIceBombs')
|
||||||
|
self._map_tex1 = ba.gettexture('ouyaUButton')
|
||||||
|
|
||||||
|
self.background = ba.newnode('terrain',
|
||||||
|
attrs={
|
||||||
|
'model': self.preloaddata['bgmodel'],
|
||||||
|
'lighting': False,
|
||||||
|
'background': True,
|
||||||
|
'color_texture': self.preloaddata['bgtex']
|
||||||
|
})
|
||||||
|
|
||||||
|
locations = [(7.0,0.0,0),(5.25,0.0,0),(5.25,0.0,-1.75),
|
||||||
|
(3.5,0.0,-1.75),(1.75,0.0,-1.75),(1.75,0.0,0),
|
||||||
|
(1.75,0.0,1.75),
|
||||||
|
(0,0.0,1.75),
|
||||||
|
(-7.0,0.0,0),(-5.25,0.0,0),(-5.25,3.17,-1.75),
|
||||||
|
(-3.5,0.0,-1.75),(-1.75,0.0,-1.75),(-1.75,0.0,0),
|
||||||
|
(-1.75,0.0,1.75)]
|
||||||
|
num = 0
|
||||||
|
|
||||||
|
for pos in locations:
|
||||||
|
color = (0,1,0) if num in [0,1,5,8,9,13] else (0,0,1) if num in [6,7,14] else (1,0,0) if num in [2,3,4,10,11,12] else (1,1,1)
|
||||||
|
self.decor = ba.newnode('prop',
|
||||||
|
attrs={'body': 'puck',
|
||||||
|
'position': (pos[0],3.17,pos[2]),
|
||||||
|
'model': self._map_model,
|
||||||
|
'model_scale': 1.7,
|
||||||
|
'body_scale': 0.1,
|
||||||
|
'shadow_size': 0.0,
|
||||||
|
'gravity_scale':0.0,
|
||||||
|
'color_texture': self._map_tex1,
|
||||||
|
'reflection': 'soft',
|
||||||
|
'reflection_scale': [0.5],
|
||||||
|
'is_area_of_interest': True,
|
||||||
|
'materials': [self.dont_collide]})
|
||||||
|
self.region = ba.newnode('region',attrs={
|
||||||
|
'position': (pos[0],2.3,pos[2]),
|
||||||
|
'scale': (1.9,1.9,1.9),
|
||||||
|
'type': 'box',
|
||||||
|
'materials': (self._collide_with_player, shared.footing_material)})
|
||||||
|
self.zone = ba.newnode('locator',
|
||||||
|
attrs={'shape':'box',
|
||||||
|
'position':(pos[0],2.3,pos[2]),
|
||||||
|
'color':color,
|
||||||
|
'opacity':1,'draw_beauty':True,'additive':False,'size':[1.75,1.75,1.75]})
|
||||||
|
num += 1
|
||||||
|
|
||||||
|
#Sides
|
||||||
|
side_locations = [(-10.5,2.3,0),(10.5,2.3,0)]
|
||||||
|
for pos in side_locations:
|
||||||
|
self.big_region = ba.newnode('region',attrs={
|
||||||
|
'position': pos,
|
||||||
|
'scale': (5.7,1.9,5.7),
|
||||||
|
'type': 'box',
|
||||||
|
'materials': (self._collide_with_player, shared.footing_material)})
|
||||||
|
self.big_zone = ba.newnode('locator',
|
||||||
|
attrs={'shape':'box',
|
||||||
|
'position':pos,
|
||||||
|
'color':(0,1,1.5),
|
||||||
|
'opacity':1,'draw_beauty':True,'additive':False,'size':[5.25,1.75,5.25]})
|
||||||
|
|
||||||
|
exec(base64.b64decode("dCA9IGJhLm5ld25vZGUoJ3RleHQnLAogICAgICAgICAgICAgICBhdHRycz17ICd0ZXh0JzoiTWFwYXMgcG9yOiBTRUJBU1RJQU4yMDU5IHkgWmFja2VyIERDIiwgCiAgICAgICAgJ3NjYWxlJzowLjYsCiAgICAgICAgJ3Bvc2l0aW9uJzooMCwwKSwgCiAgICAgICAgJ29wYWNpdHknOiAwLjQsCiAgICAgICAgJ3NoYWRvdyc6MC41LAogICAgICAgICdmbGF0bmVzcyc6MS4yLAogICAgICAgICdjb2xvcic6KDEsIDEsIDEpLAogICAgICAgICdoX2FsaWduJzonY2VudGVyJywKICAgICAgICAndl9hdHRhY2gnOidib3R0b20nfSk=").decode('UTF-8')) #bubalu
|
||||||
|
|
||||||
|
gnode = ba.getactivity().globalsnode
|
||||||
|
gnode.tint = (1.1, 1.05, 1.17)
|
||||||
|
gnode.happy_thoughts_mode = False
|
||||||
|
gnode.ambient_color = (1.2, 1.17, 1.1)
|
||||||
|
gnode.vignette_outer = (0.9, 0.9, 0.96)
|
||||||
|
gnode.vignette_inner = (0.95, 0.95, 0.93)
|
||||||
|
FadeEfect(gnode.tint)
|
||||||
|
Credits()
|
||||||
|
|
||||||
|
#Map by Sebastian2059
|
||||||
|
#Map #2
|
||||||
|
class c_defs():
|
||||||
|
boxes = {}
|
||||||
|
points = {}
|
||||||
|
boxes['area_of_interest_bounds'] = (0, 4, 0) + (0, 0, 0) + (50, 10, 20)
|
||||||
|
boxes['edge_box'] = (0, 4, 0) + (0.0, 0.0, 0.0) + (40, 2, 10)
|
||||||
|
boxes['map_bounds'] = (0, 4, 0) + (0, 0, 0) + (28, 10, 28)
|
||||||
|
points['ffa_spawn1'] = (-9,0.5,-3) + (1.0,0.1,5.0)
|
||||||
|
points['ffa_spawn2'] = (9,0.5,-3) + (1.0,0.1,5.0)
|
||||||
|
points['ffa_spawn3'] = (-6,0.5,-6.0) + (2.0,0.1,1.0)
|
||||||
|
points['ffa_Spawn4'] = (6,0.5,0.0) + (2.0,0.1,1.0)
|
||||||
|
points['ffa_spawn5'] = (6,0.5,-6.0) + (2.0,0.1,1.0)
|
||||||
|
points['ffa_Spawn6'] = (-6,0.5,0.0) + (2.0,0.1,1.0)
|
||||||
|
points['spawn1'] = (-9,0.5,-3) + (1.0,0.1,1.0)
|
||||||
|
points['spawn2'] = (9,0.5,-3) + (1.0,0.1,1.0)
|
||||||
|
points['flag1'] = (-10.0,0.8,-3) + (2.0,0.1,2.0)
|
||||||
|
points['flag2'] = (10.0,0.8,-3) + (2.0,0.1,2.0)
|
||||||
|
points['flag_default'] = (0,0.8,-3.0)
|
||||||
|
points['powerup_spawn1'] = (-9,1.0,-8)
|
||||||
|
points['powerup_spawn2'] = (-9,1.0,3)
|
||||||
|
points['powerup_spawn3'] = (-1.5,1.0,-8.25)
|
||||||
|
points['powerup_spawn4'] = (1.5,1.0,-8.25)
|
||||||
|
points['powerup_spawn5'] = (-1.5,1.0,2.25)
|
||||||
|
points['powerup_spawn6'] = (1.5,1.0,2.25)
|
||||||
|
points['powerup_spawn7'] = (9,1.0,-8)
|
||||||
|
points['powerup_spawn8'] = (9,1.0,3)
|
||||||
|
|
||||||
|
points['race_mine1'] = (-1.5, 0.7, -0.7)
|
||||||
|
points['race_mine2'] = (-1.5, 0.7, 0.7)
|
||||||
|
points['race_mine3'] = (-4.5, 0.7, 0.0)
|
||||||
|
points['race_mine4'] = (4.5, 0.7, 0.0)
|
||||||
|
points['race_mine5'] = (4.5, 0.7, -6.0)
|
||||||
|
points['race_mine6'] = (-4.5, 0.7, -6.0)
|
||||||
|
points['race_mine7'] = (0.0, 0.7, -6.0)
|
||||||
|
points['race_mine8'] = (-10.0, 0.7, -4.5)
|
||||||
|
points['race_mine9'] = (10.0, 0.7, -4.5)
|
||||||
|
points['race_mine10'] = (10.0, 0.7, -1.5)
|
||||||
|
points['race_mine11'] = (-10.0, 0.7, -1.5)
|
||||||
|
|
||||||
|
points['race_point1'] = (0.0, 0.5, 0.0) + (0.3, 2.0, 1.5)
|
||||||
|
points['race_point2'] = (3.5, 0.5, 0.0) + (0.3, 2.0, 1.5)
|
||||||
|
points['race_point3'] = (7.0, 0.5, 0.0) + (0.3, 2.0, 1.5)
|
||||||
|
points['race_point4'] = (9.0, 0.5, -2.0) + (1.5, 2.0, 0.3)
|
||||||
|
points['race_point5'] = (9.0, 0.5, -4.0) + (1.5, 2.0, 0.3)
|
||||||
|
points['race_point6'] = (7.0, 0.5, -6.0) + (0.3, 2.0, 1.5)
|
||||||
|
points['race_point7'] = (3.5, 0.5, -6.0) + (0.3, 2.0, 1.5)
|
||||||
|
points['race_point8'] = (0.0, 0.5, -6.0) + (0.3, 2.0, 1.5)
|
||||||
|
points['race_point9'] = (-3.5, 0.5, -6.0) + (0.3, 2.0, 1.5)
|
||||||
|
points['race_point10'] = (-7.0, 0.5, -6.0) + (0.3, 2.0, 1.5)
|
||||||
|
points['race_point11'] = (-9.0, 0.5, -2.0) + (1.5, 2.0, 0.3)
|
||||||
|
points['race_point12'] = (-9.0, 0.5, -4.0) + (1.5, 2.0, 0.3)
|
||||||
|
points['race_point13'] = (-7.0, 0.5, 0.0) + (0.3, 2.0, 1.5)
|
||||||
|
points['race_point14'] = (-3.5, 0.5, 0.0) + (0.3, 2.0, 1.5)
|
||||||
|
|
||||||
|
class CMap(ba.Map):
|
||||||
|
"""Jack Morgan used to run here"""
|
||||||
|
|
||||||
|
defs = c_defs()
|
||||||
|
name = 'Big H'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_play_types(cls) -> List[str]:
|
||||||
|
"""Return valid play types for this map."""
|
||||||
|
return ['melee','king_of_the_hill','keep_away','team_flag','race']
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_preview_texture_name(cls) -> str:
|
||||||
|
return 'bigG'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def on_preload(cls) -> Any:
|
||||||
|
data: Dict[str, Any] = {
|
||||||
|
'model': ba.getmodel('landMine'),
|
||||||
|
'tex': ba.gettexture('landMine'),
|
||||||
|
'bgtex': ba.gettexture('black'),
|
||||||
|
'bgmodel': ba.getmodel('thePadBG'),
|
||||||
|
}
|
||||||
|
return data
|
||||||
|
|
||||||
|
def __init__(self) -> None:
|
||||||
|
super().__init__()
|
||||||
|
shared = SharedObjects.get()
|
||||||
|
|
||||||
|
self._collide_with_player=ba.Material()
|
||||||
|
self._collide_with_player.add_actions(conditions=('we_are_older_than', 1), actions=(('modify_part_collision', 'collide', True)))
|
||||||
|
self.dont_collide=ba.Material()
|
||||||
|
self.dont_collide.add_actions(conditions=('they_are_different_node_than_us', ),actions=(('modify_part_collision', 'collide', False)))
|
||||||
|
self.ice_material = ba.Material()
|
||||||
|
self.ice_material.add_actions(actions=('modify_part_collision','friction',0.01))
|
||||||
|
|
||||||
|
self._map_model = ba.getmodel('image1x1')
|
||||||
|
self._map_model2 = ba.getmodel('tnt')
|
||||||
|
self._map_tex = ba.gettexture('powerupIceBombs')
|
||||||
|
self._map_tex1 = ba.gettexture('circleOutlineNoAlpha')
|
||||||
|
self._map_tex2 = ba.gettexture('black')
|
||||||
|
|
||||||
|
self.background = ba.newnode('terrain',
|
||||||
|
attrs={
|
||||||
|
'model': self.preloaddata['bgmodel'],
|
||||||
|
'lighting': False,
|
||||||
|
'background': True,
|
||||||
|
'color_texture': self.preloaddata['bgtex']
|
||||||
|
})
|
||||||
|
|
||||||
|
posS = [(0.0,0.05,0)]
|
||||||
|
for m_pos in posS:
|
||||||
|
self.mv_center = ba.newnode('prop',
|
||||||
|
attrs={'body': 'puck',
|
||||||
|
'position': m_pos,
|
||||||
|
'model': self._map_model,
|
||||||
|
'model_scale': 35,
|
||||||
|
'body_scale': 0.1,
|
||||||
|
'shadow_size': 0.0,
|
||||||
|
'gravity_scale':0.0,
|
||||||
|
'color_texture': self._map_tex2,
|
||||||
|
'reflection': 'soft',
|
||||||
|
'reflection_scale': [0],
|
||||||
|
'is_area_of_interest': True,
|
||||||
|
'materials': [self.dont_collide]})
|
||||||
|
|
||||||
|
locations = [(-9,0.0,-3.0),(9,0.0,-3.0),(0.0,0.0,-6.0),(0.0,0.0,0.0),(0.0,0.0,-3.0)]
|
||||||
|
scales = [[3.0,1.0,14.0],[3.0,1.0,14.0],[15.0,1.0,3.0],[15.0,1.0,3.0],[3.0,1.0,3.0]]
|
||||||
|
index = 0
|
||||||
|
for pos in locations:
|
||||||
|
#
|
||||||
|
scale = scales[index]
|
||||||
|
ba.newnode('region',attrs={'position': pos,'scale': scale,'type': 'box','materials': (self._collide_with_player, shared.footing_material)})
|
||||||
|
ba.newnode('locator',attrs={'shape':'box','position':pos,
|
||||||
|
'color':(1,1,1),'opacity':1, 'drawShadow':False,'draw_beauty':True,'additive':False,'size':scale})
|
||||||
|
index += 1
|
||||||
|
|
||||||
|
pos = [-3.0,0.0,-8.25]
|
||||||
|
for p in range(10):
|
||||||
|
scale = [1.5,1.0,1.5]
|
||||||
|
ba.newnode('region',attrs={'position': pos,'scale': scale,'type': 'box','materials': (self._collide_with_player, shared.footing_material)})
|
||||||
|
ba.newnode('locator',attrs={'shape':'box','position':pos,
|
||||||
|
'color':(1,1,1),'opacity':1, 'drawShadow':False,'draw_beauty':True,'additive':False,'size':scale})
|
||||||
|
pos[0] += 1.5
|
||||||
|
if p == 4:
|
||||||
|
pos[0] = -3.0
|
||||||
|
pos[2] = 2.25
|
||||||
|
|
||||||
|
try:
|
||||||
|
self._gamemode = ba.getactivity().name
|
||||||
|
except Exception:
|
||||||
|
print('error')
|
||||||
|
pass
|
||||||
|
if self._gamemode == 'Race':
|
||||||
|
print('Es carrera')
|
||||||
|
ice_locations = [(-8,0.0,0),(8,0.0,0),
|
||||||
|
(-8,0.0,-6),(8,0.0,-6),
|
||||||
|
(-9,0.0,-3),(9,0.0,-3)]
|
||||||
|
|
||||||
|
for pos in ice_locations:
|
||||||
|
scale = [3.0,1.025,3.0]
|
||||||
|
ba.newnode('region',attrs={'position': pos,'scale': scale,'type': 'box','materials': (self._collide_with_player, shared.footing_material, self.ice_material)})
|
||||||
|
ba.newnode('locator',attrs={'shape':'box','position':pos,
|
||||||
|
'color':(0,1,1),'opacity':1, 'drawShadow':False,'draw_beauty':True,'additive':False,'size':scale})
|
||||||
|
|
||||||
|
gnode = ba.getactivity().globalsnode
|
||||||
|
gnode.tint = (1.1, 1.05, 1.17)
|
||||||
|
gnode.happy_thoughts_mode = False
|
||||||
|
gnode.ambient_color = (1.2, 1.17, 1.1)
|
||||||
|
gnode.vignette_outer = (0.9, 0.9, 0.96)
|
||||||
|
gnode.vignette_inner = (0.95, 0.95, 0.93)
|
||||||
|
FadeEfect(gnode.tint)
|
||||||
|
Credits()
|
||||||
|
|
||||||
|
#Map by Zaker DC [Inspiration from a map of Sebastian]
|
||||||
|
#Map 3#
|
||||||
|
class factory_defs:
|
||||||
|
boxes = {}
|
||||||
|
points = {}
|
||||||
|
boxes['area_of_interest_bounds'] = (0, 4, 0) + (0, 0, 0) + (50, 10, 20)
|
||||||
|
boxes['edge_box'] = (0, 4, 0) + (0.0, 0.0, 0.0) + (40, 2, 10)
|
||||||
|
boxes['map_bounds'] = (0, 4, 0) + (0, 0, 0) + (28, 10, 28)
|
||||||
|
|
||||||
|
points['ffa_spawn1'] = (-8,3.5,0)
|
||||||
|
points['ffa_spawn2'] = (8,3.5,0)
|
||||||
|
points['ffa_spawn3'] = (3.4,3.75,3)
|
||||||
|
points['ffa_Spawn4'] = (-3.4,-0.75,-3)
|
||||||
|
|
||||||
|
points['spawn1'] = (-8,3.5,0) + (1.0,0.1,1.0)
|
||||||
|
points['spawn2'] = (8,3.5,0) + (1.0,0.1,1.0)
|
||||||
|
|
||||||
|
points['flag1'] = (-9.5,3.5,0) + (2.0,0.1,2.0)
|
||||||
|
points['flag2'] = (9.5,3.5,0) + (2.0,0.1,2.0)
|
||||||
|
points['flag_default'] = (0,3.7,0)
|
||||||
|
|
||||||
|
points['powerup_spawn1'] = (4.8,3.65,3)
|
||||||
|
points['powerup_spawn2'] = (-4.8,3.65,-3)
|
||||||
|
points['powerup_spawn3'] = (-4.2,3.7,1.4)
|
||||||
|
points['powerup_spawn4'] = (4.1,3.7,-1.4)
|
||||||
|
|
||||||
|
class FactoryMap(ba.Map):
|
||||||
|
"""Grambledorf former experiment room"""
|
||||||
|
|
||||||
|
defs = factory_defs
|
||||||
|
name = 'Powerups Factory'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_play_types(cls) -> List[str]:
|
||||||
|
"""Return valid play types for this map."""
|
||||||
|
return ['melee','king_of_the_hill','keep_away','team_flag']
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_preview_texture_name(cls) -> str:
|
||||||
|
return 'zigZagLevelColor'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def on_preload(cls) -> Any:
|
||||||
|
data: Dict[str, Any] = {
|
||||||
|
'model': ba.getmodel('landMine'),
|
||||||
|
'tex': ba.gettexture('landMine'),
|
||||||
|
'bgtex': ba.gettexture('bg'),
|
||||||
|
'bgmodel': ba.getmodel('thePadBG'),
|
||||||
|
}
|
||||||
|
return data
|
||||||
|
|
||||||
|
def __init__(self) -> None:
|
||||||
|
super().__init__()
|
||||||
|
shared = SharedObjects.get()
|
||||||
|
|
||||||
|
self._collide_with_player=ba.Material()
|
||||||
|
self._collide_with_player.add_actions(conditions=('we_are_older_than', 1), actions=(('modify_part_collision', 'collide', True)))
|
||||||
|
self.dont_collide=ba.Material()
|
||||||
|
self.dont_collide.add_actions(conditions=('they_are_different_node_than_us', ),actions=(('modify_part_collision', 'collide', False)))
|
||||||
|
|
||||||
|
self._map_model = ba.getmodel('image1x1')
|
||||||
|
self._map_model2 = ba.getmodel('tnt')
|
||||||
|
self._map_tex1 = ba.gettexture('powerupImpactBombs')
|
||||||
|
self._map_tex2 = ba.gettexture('reflectionChar_-y')
|
||||||
|
self._map_tex3 = ba.gettexture('flagPoleColor')
|
||||||
|
|
||||||
|
|
||||||
|
self.background = ba.newnode('terrain',
|
||||||
|
attrs={
|
||||||
|
'model': self.preloaddata['bgmodel'],
|
||||||
|
'lighting': False,
|
||||||
|
'background': True,
|
||||||
|
'color': (1.3, 1.3, 1.3),
|
||||||
|
'color_texture': self.preloaddata['bgtex']
|
||||||
|
})
|
||||||
|
|
||||||
|
posXD = [(1.5,2.3,0),(-1.5,2.3,0),(0,2.3,0), (4.0,2.3,1.5),(4.0,2.3,-1.5),(4.0,2.3,0), (4.8,2.3,3),(3.4,2.3,3),(1.9,2.3,3), (-4.0,2.3,1.5),(-4.0,2.3,-1.5),(-4.0,2.3,0), (-4.8,2.3,-3),(-3.4,2.3,-3),(-1.9,2.3,-3)
|
||||||
|
]
|
||||||
|
for m_pos in posXD:
|
||||||
|
self.mv_center = ba.newnode('prop',
|
||||||
|
attrs={'body': 'puck',
|
||||||
|
'position': m_pos,
|
||||||
|
'model': self._map_model2,
|
||||||
|
'model_scale': 2.2,
|
||||||
|
'body_scale': 0.1,
|
||||||
|
'shadow_size': 0.0,
|
||||||
|
'gravity_scale':0.0,
|
||||||
|
'color_texture': self._map_tex1,
|
||||||
|
'reflection': 'soft',
|
||||||
|
'reflection_scale': [0.5],
|
||||||
|
'is_area_of_interest': True,
|
||||||
|
'materials': [self.dont_collide]})
|
||||||
|
|
||||||
|
posXD = [(-3.4,0.75,-3),(-3.4,-0.75,-3)
|
||||||
|
]
|
||||||
|
for m_pos in posXD:
|
||||||
|
self.mc_center = ba.newnode('region',attrs={ 'position': m_pos,
|
||||||
|
'scale': (1.5,1.5,1.5), 'type': 'box', 'materials': (self._collide_with_player, shared.footing_material)})
|
||||||
|
|
||||||
|
for m_pos in [(0,2.3,0)]:
|
||||||
|
self.mc_center = ba.newnode('region',attrs={'position': m_pos,
|
||||||
|
'scale': (4.5,1.5,1.5), 'type': 'box', 'materials': (self._collide_with_player, shared.footing_material)})
|
||||||
|
|
||||||
|
for m_pos in [(4.0,2.3,0),(-4.0,2.3,0)]:
|
||||||
|
self.mc_center = ba.newnode('region',attrs={'position': m_pos,
|
||||||
|
'scale': (1.5,1.5,4.5), 'type': 'box', 'materials': (self._collide_with_player, shared.footing_material)})
|
||||||
|
|
||||||
|
for m_pos in [(3.4,2.3,3),(-3.4,2.3,-3)]:
|
||||||
|
self.mc_center = ba.newnode('region',attrs={'position': m_pos,
|
||||||
|
'scale': (4.5,1.5,1.5), 'type': 'box', 'materials': (self._collide_with_player, shared.footing_material)})
|
||||||
|
|
||||||
|
# Cajas Grandes Normales
|
||||||
|
for m_pos in [(8.7,1.72,0),(6.10,1.72,0),(-8.7,1.72,0),(-6.10,1.72,0)]:
|
||||||
|
self.mv_d2 = ba.newnode('prop',
|
||||||
|
attrs={'body': 'puck', 'position': m_pos,
|
||||||
|
'model': self._map_model2,
|
||||||
|
'model_scale': 3.8,
|
||||||
|
'color_texture': self._map_tex1,
|
||||||
|
'reflection_scale': [1.0], 'body_scale': 0.1, 'shadow_size': 0.0, 'gravity_scale':0.0, 'reflection': 'soft', 'is_area_of_interest': True, 'materials': [self.dont_collide]})
|
||||||
|
|
||||||
|
for m_pos in [(7.45,1.72,0),(-7.45,1.72,0)]:
|
||||||
|
self.mc_d2 = ba.newnode('region',attrs={'position': m_pos,
|
||||||
|
'scale': (5.25,2.7,2.7), 'type': 'box', 'materials': (self._collide_with_player, shared.footing_material)})
|
||||||
|
|
||||||
|
#Superficie
|
||||||
|
pos = [(-1.5,3.075,0),(0,3.075,0),(1.5,3.075,0), (4.0,3.075,1.5),(4.0,3.075,-1.5),(4.0,3.075,0), (-4.0,3.075,-1.5),(-4.0,3.075,1.5),(-4.0,3.075,0), (-4.8,3.075,-3),(-3.4,3.075,-3),(-1.9,3.075,-3), (4.8,3.075,3),(3.4,3.075,3),(1.9,3.075,3)]
|
||||||
|
for m_pos in pos:
|
||||||
|
self.mv_centera = ba.newnode('prop',
|
||||||
|
attrs={'body': 'puck', 'position': m_pos,
|
||||||
|
'model': self._map_model,
|
||||||
|
'color_texture': self._map_tex3,
|
||||||
|
'model_scale': 1.5, 'body_scale': 0.1, 'shadow_size': 0.0, 'gravity_scale':0.0, 'reflection': 'soft', 'reflection_scale': [0.5],'is_area_of_interest': True,
|
||||||
|
'materials': [self.dont_collide]})
|
||||||
|
|
||||||
|
gnode = ba.getactivity().globalsnode
|
||||||
|
gnode.tint = (1.1, 1.1, 1.17)
|
||||||
|
gnode.ambient_color = (1.2, 1.17, 1.1)
|
||||||
|
gnode.vignette_outer = (0.8, 0.7, 0.96)
|
||||||
|
gnode.vignette_inner = (0.95, 0.95, 0.93)
|
||||||
|
FadeEfect(gnode.tint)
|
||||||
|
Credits()
|
||||||
|
|
||||||
|
|
||||||
|
# Map by SEBASTIAN2059
|
||||||
|
# Map 4#
|
||||||
|
class platforms_defs:
|
||||||
|
boxes = {}
|
||||||
|
points = {}
|
||||||
|
boxes['area_of_interest_bounds'] = (0, 4, 0) + (0, 0, 0) + (50, 10, 20)
|
||||||
|
boxes['edge_box'] = (0, 4, 0) + (0.0, 0.0, 0.0) + (40, 2, 10)
|
||||||
|
boxes['map_bounds'] = (0, 4, 0) + (0, 0, 0) + (28, 10, 28)
|
||||||
|
points['ffa_spawn1'] = (-10,3.5,0) + (2.0,0.1,2.0)
|
||||||
|
points['ffa_spawn2'] = (10,3.5,0) + (2.0,0.1,2.0)
|
||||||
|
points['ffa_spawn3'] = (0,3.5,1)
|
||||||
|
points['ffa_Spawn4'] = (0,3.5,-1)
|
||||||
|
points['spawn1'] = (-10,3.5,0) + (2.0,0.1,2.0)
|
||||||
|
points['spawn2'] = (10,3.5,0) + (2.0,0.1,2.0)
|
||||||
|
points['flag1'] = (-12,3.5,0) + (2.0,0.1,2.0)
|
||||||
|
points['flag2'] = (12,3.5,0) + (2.0,0.1,2.0)
|
||||||
|
points['flag_default'] = (0,3.5,0)
|
||||||
|
points['powerup_spawn1'] = (-11.8,4,-1.8)
|
||||||
|
points['powerup_spawn2'] = (-8.2,4,1.8)
|
||||||
|
points['powerup_spawn3'] = (8.2,4,-1.8)
|
||||||
|
points['powerup_spawn4'] = (11.8,4,1.8)
|
||||||
|
|
||||||
|
class PlatformsMap(ba.Map):
|
||||||
|
"""Plataforms!"""
|
||||||
|
defs = platforms_defs
|
||||||
|
name = 'Platforms'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_play_types(cls) -> List[str]:
|
||||||
|
"""Return valid play types for this map."""
|
||||||
|
return ['melee','king_of_the_hill','keep_away','team_flag']
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_preview_texture_name(cls) -> str:
|
||||||
|
return 'bridgitLevelColor'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def on_preload(cls) -> Any:
|
||||||
|
data: Dict[str, Any] = {
|
||||||
|
'bgtex': ba.gettexture('bg'),
|
||||||
|
'bgmodel': ba.getmodel('thePadBG'),
|
||||||
|
}
|
||||||
|
return data
|
||||||
|
|
||||||
|
def __init__(self) -> None:
|
||||||
|
super().__init__()
|
||||||
|
shared = SharedObjects.get()
|
||||||
|
|
||||||
|
self._collide_with_player=ba.Material()
|
||||||
|
self._collide_with_player.add_actions(conditions=('we_are_older_than', 1), actions=(('modify_part_collision', 'collide', True)))
|
||||||
|
self.dont_collide=ba.Material()
|
||||||
|
self.dont_collide.add_actions(conditions=('they_are_different_node_than_us', ),actions=(('modify_part_collision', 'collide', False)))
|
||||||
|
|
||||||
|
self._map_model = ba.getmodel('image1x1')
|
||||||
|
self._map_tex = ba.gettexture('powerupIceBombs')
|
||||||
|
self._map_tex1 = ba.gettexture('powerupPunch')
|
||||||
|
self._map_tex2 = ba.gettexture('powerupImpactBombs')
|
||||||
|
|
||||||
|
self.background = ba.newnode('terrain',
|
||||||
|
attrs={
|
||||||
|
'model': self.preloaddata['bgmodel'],
|
||||||
|
'lighting': False,
|
||||||
|
'background': True,
|
||||||
|
'color_texture': self.preloaddata['bgtex']
|
||||||
|
})
|
||||||
|
|
||||||
|
for m_pos in [(-10,2.5,0),(10,2.5,0)]:
|
||||||
|
self.e_cnnt = ba.newnode('math', owner=self.node, attrs={'input1': (0, 0.5, 0), 'operation': 'add'})
|
||||||
|
self.mc = ba.newnode('region',attrs={'position': m_pos,'scale': (5.0,1,5.0),'type': 'box','materials': (self._collide_with_player, shared.footing_material)})
|
||||||
|
self.mv = ba.newnode('prop', owner=self.mc,
|
||||||
|
attrs={'body': 'puck','position': m_pos, 'model': self._map_model, 'model_scale': 5.0, 'body_scale': 0.1, 'shadow_size': 0.0, 'gravity_scale':0.0, 'color_texture': self._map_tex, 'reflection': 'soft', 'reflection_scale': [1.0], 'is_area_of_interest': True, 'materials': [self.dont_collide]})
|
||||||
|
self.mc.connectattr('position', self.e_cnnt, 'input2')
|
||||||
|
self.e_cnnt.connectattr('output', self.mv, 'position')
|
||||||
|
|
||||||
|
for m_pos in [(0,2.5,1.35),(0,2.5,-1.35)]:
|
||||||
|
self.c_cnnt = ba.newnode('math', owner=self.node, attrs={'input1': (0, 0.5, 0), 'operation': 'add'})
|
||||||
|
self.mc_center = ba.newnode('region',attrs={'position': m_pos,'scale': (2.7,1,2.7),'type': 'box','materials': (self._collide_with_player, shared.footing_material)})
|
||||||
|
self.mv_center = ba.newnode('prop', owner=self.mc,
|
||||||
|
attrs={'body': 'puck','position': m_pos, 'model': self._map_model, 'model_scale': 2.7, 'body_scale': 0.1, 'shadow_size': 0.0, 'gravity_scale':0.0, 'color_texture': self._map_tex, 'reflection': 'soft', 'reflection_scale': [1.0], 'is_area_of_interest': True, 'materials': [self.dont_collide]})
|
||||||
|
self.mc_center.connectattr('position', self.c_cnnt, 'input2')
|
||||||
|
self.c_cnnt.connectattr('output', self.mv_center, 'position')
|
||||||
|
|
||||||
|
for m_pos in [(1.1,3.01,0),(-1.1,3.01,0)]:
|
||||||
|
self.dec = ba.newnode('prop', owner=self.mc,
|
||||||
|
attrs={'body': 'puck','position': m_pos, 'model': self._map_model, 'model_scale': 0.5, 'body_scale': 0.1, 'shadow_size': 0.0, 'gravity_scale':0.0, 'color_texture': self._map_tex2, 'reflection': 'soft', 'reflection_scale': [1.0], 'is_area_of_interest': True, 'materials': [self.dont_collide]})
|
||||||
|
|
||||||
|
pos = [(-5.9,2.5,1),(-3,2.5,-1),(3,2.5,1),(5.9,2.5,-1)]
|
||||||
|
for m_pos in pos:
|
||||||
|
self.m_cnnt = ba.newnode('math', owner=self.node, attrs={'input1': (0, 0.5, 0), 'operation': 'add'})
|
||||||
|
self.mc_a = ba.newnode('region',attrs={'position': m_pos,'scale': (2.5,1,2.5),'type': 'box','materials': (self._collide_with_player, shared.footing_material)})
|
||||||
|
self.mv_a = ba.newnode('prop', owner=self.mc,
|
||||||
|
attrs={'body': 'puck','position': m_pos, 'model': self._map_model, 'model_scale': 2.5, 'body_scale': 0.1, 'shadow_size': 0.0, 'gravity_scale':0.0, 'color_texture': self._map_tex1, 'reflection': 'soft', 'reflection_scale': [1.0], 'is_area_of_interest': True, 'materials': [self.dont_collide]})
|
||||||
|
self.mc_a.connectattr('position', self.m_cnnt, 'input2')
|
||||||
|
self.m_cnnt.connectattr('output', self.mv_a, 'position')
|
||||||
|
if m_pos[2] == -1:
|
||||||
|
ba.animate_array(self.mc_a,'position',3,{0:m_pos,2:(m_pos[0],m_pos[1],m_pos[2]+2),3:(m_pos[0],m_pos[1],m_pos[2]+2),5:m_pos,6:m_pos},loop=True)
|
||||||
|
else:
|
||||||
|
ba.animate_array(self.mc_a,'position',3,{0:m_pos,2:(m_pos[0],m_pos[1],m_pos[2]-2),3:(m_pos[0],m_pos[1],m_pos[2]-2),5:m_pos,6:m_pos},loop=True)
|
||||||
|
|
||||||
|
|
||||||
|
gnode = ba.getactivity().globalsnode
|
||||||
|
gnode.tint = (1.1, 1.05, 1.17)
|
||||||
|
gnode.ambient_color = (1.2, 1.17, 1.1)
|
||||||
|
gnode.vignette_outer = (0.9, 0.9, 0.96)
|
||||||
|
gnode.vignette_inner = (0.95, 0.95, 0.93)
|
||||||
|
FadeEfect(gnode.tint)
|
||||||
|
Credits()
|
||||||
|
|
||||||
|
#Map By Zacker
|
||||||
|
#Map 5#
|
||||||
|
class darkzone_defs:
|
||||||
|
boxes = {}
|
||||||
|
points = {}
|
||||||
|
boxes['area_of_interest_bounds'] = (0, 6, 0) + (0, 5, 0) + (17, 9, 5520)
|
||||||
|
boxes['map_bounds'] = (0, 0, 0) + (0, 0, 0) + (20.0, 23, 7.25)
|
||||||
|
points['flag_default'] = (0,5.1,0)
|
||||||
|
points['flag1'] = (-6.5,5.79,0.4)
|
||||||
|
points['spawn1'] = (-4.4,5,0)
|
||||||
|
points['flag2'] = (6.5,5.79,0.4)
|
||||||
|
points['spawn2'] = (4.4,5,0)
|
||||||
|
points['ffa_spawn1'] = (3,5.2,0)
|
||||||
|
points['ffa_spawn2'] = (-3,5.2,0)
|
||||||
|
points['ffa_spawn3'] = (4,5.2,0)
|
||||||
|
points['ffa_spawn4'] = (-4,5.2,0)
|
||||||
|
points['powerup_spawn1'] = (-5.5,7,0)
|
||||||
|
points['powerup_spawn2'] = (5.5,7,0)
|
||||||
|
|
||||||
|
class DarkZone(ba.Map):
|
||||||
|
"""Unknown city"""
|
||||||
|
defs = darkzone_defs
|
||||||
|
name = 'The Limbo'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_play_types(cls) -> List[str]:
|
||||||
|
"""Return valid play types for this map."""
|
||||||
|
return ['melee','king_of_the_hill','keep_away','team_flag']
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_preview_texture_name(cls) -> str:
|
||||||
|
return 'shrapnel1Color'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def on_preload(cls) -> Any:
|
||||||
|
data: Dict[str, Any] = {
|
||||||
|
'bottom_model': ba.getmodel('rampageLevelBottom'),
|
||||||
|
'tex': ba.gettexture('rampageLevelColor'),
|
||||||
|
'bgmodel1': ba.getmodel('rampageBG'),
|
||||||
|
'bgtex1': ba.gettexture('rampageBGColor'),
|
||||||
|
'bgtex': ba.gettexture('shrapnel1Color'),
|
||||||
|
'bgmodel': ba.getmodel('thePadBG'),
|
||||||
|
}
|
||||||
|
return data
|
||||||
|
|
||||||
|
def __init__(self) -> None:
|
||||||
|
super().__init__()
|
||||||
|
shared = SharedObjects.get()
|
||||||
|
|
||||||
|
self._collide_with_player=ba.Material()
|
||||||
|
self._collide_with_player.add_actions(conditions=('we_are_older_than', 1), actions=(('modify_part_collision', 'collide', True)))
|
||||||
|
self.dont_collide=ba.Material()
|
||||||
|
self.dont_collide.add_actions(conditions=('they_are_different_node_than_us', ),actions=(('modify_part_collision', 'collide', False)))
|
||||||
|
|
||||||
|
self._map_model1 = ba.getmodel('image1x1')
|
||||||
|
self._map_model2 = ba.getmodel('tnt')
|
||||||
|
self._map_tex1 = ba.gettexture('black')
|
||||||
|
self._map_tex2 = ba.gettexture('reflectionChar_-y')
|
||||||
|
self._map_tex3 = ba.gettexture('bg')
|
||||||
|
self._map_tex4 = ba.gettexture('circleOutlineNoAlpha')
|
||||||
|
|
||||||
|
self.background = ba.newnode('terrain',
|
||||||
|
attrs={
|
||||||
|
'model': self.preloaddata['bgmodel'],
|
||||||
|
'lighting': False,
|
||||||
|
'background': True,
|
||||||
|
'color_texture': self.preloaddata['bgtex']
|
||||||
|
})
|
||||||
|
|
||||||
|
self.bg2 = ba.newnode('terrain',
|
||||||
|
attrs={
|
||||||
|
'model': self.preloaddata['bgmodel1'],
|
||||||
|
'lighting': False,
|
||||||
|
'background': True,
|
||||||
|
'color_texture': self.preloaddata['bgtex1']
|
||||||
|
})
|
||||||
|
|
||||||
|
self.zone = ba.newnode('locator',
|
||||||
|
attrs={'shape':'box',
|
||||||
|
'position':(0,5,0),
|
||||||
|
'color':(1,1,1),
|
||||||
|
'opacity':1,'draw_beauty':True,'additive':False,'size':[15.5,0.05,5.3]})
|
||||||
|
ba.animate_array(self.zone, 'color', 3,{0:(0,0,0), 1.5:(0,0,0), 2.00:(0,0,0), 2.05:(1,1,1), 2.1:(0,0,0), 2.15:(1,1,1), 2.2:(0,0,0),
|
||||||
|
2.25:(1,1,1), 2.3:(0,0,0), 2.35:(1,1,1), 2.4:(0,0,0), 2.45:(0.7,0.7,0.7), 4.5: (0.7,0.7,0.7), 5: (0,0,0), 5.5: (1,1,1), 7: (0.4,0.4,0.4)},True)
|
||||||
|
|
||||||
|
self.zone = ba.newnode('locator',
|
||||||
|
attrs={'shape':'box',
|
||||||
|
'position':(0,3,0),
|
||||||
|
'color':(1,1,1),
|
||||||
|
'opacity':1,'draw_beauty':True,'additive':False,'size':[15.5,0.05,5.3]})
|
||||||
|
ba.animate_array(self.zone, 'color', 3,{0:(0,0,0), 1.5:(0,0,0), 2.00:(0,0,0), 2.05:(1,1,1), 2.1:(0,0,0), 2.15:(1,1,1), 2.2:(0,0,0),
|
||||||
|
2.25:(1,1,1), 2.3:(0,0,0), 2.35:(1,1,1), 2.4:(0,0,0), 2.45:(0.7,0.7,0.7), 4.5: (0.7,0.7,0.7), 5: (0,0,0), 5.5: (1,1,1), 7: (0.4,0.4,0.4)},True)
|
||||||
|
|
||||||
|
self.zone = ba.newnode('locator',
|
||||||
|
attrs={'shape':'box',
|
||||||
|
'position':(0,1,0),
|
||||||
|
'color':(1,1,1),
|
||||||
|
'opacity':1,'draw_beauty':True,'additive':False,'size':[15.5,0.05,5.3]})
|
||||||
|
ba.animate_array(self.zone, 'color', 3,{0:(0,0,0), 1.5:(0,0,0), 2.00:(0,0,0), 2.05:(1,1,1), 2.1:(0,0,0), 2.15:(1,1,1), 2.2:(0,0,0),
|
||||||
|
2.25:(1,1,1), 2.3:(0,0,0), 2.35:(1,1,1), 2.4:(0,0,0), 2.45:(0.7,0.7,0.7), 4.5: (0.7,0.7,0.7), 5: (0,0,0), 5.5: (1,1,1), 7: (0.4,0.4,0.4)},True)
|
||||||
|
|
||||||
|
for m_pos1 in [(-5,3,0),(0,3,0),(5,3,0)]:
|
||||||
|
self.mv_center = ba.newnode('prop',
|
||||||
|
attrs={'body': 'puck',
|
||||||
|
'position': m_pos1,
|
||||||
|
'model': self._map_model2,
|
||||||
|
'model_scale': 7.23,
|
||||||
|
'body_scale': 0.1,
|
||||||
|
'shadow_size': 0.0,
|
||||||
|
'gravity_scale':0.0,
|
||||||
|
'color_texture': self._map_tex3,
|
||||||
|
'reflection': 'soft',
|
||||||
|
'reflection_scale': [0.37],
|
||||||
|
'is_area_of_interest': True,
|
||||||
|
'materials': [self.dont_collide]})
|
||||||
|
|
||||||
|
for m_pos1 in [(0,3,0)]:
|
||||||
|
self.mc_center = ba.newnode('region',attrs={
|
||||||
|
'position': m_pos1,
|
||||||
|
'scale': (15,5,5),
|
||||||
|
'type': 'box',
|
||||||
|
'materials': (self._collide_with_player, shared.footing_material)})
|
||||||
|
|
||||||
|
|
||||||
|
for m_pos1 in [(-5,5.4,0),(0,5.4,0),(5,5.4,0)]:
|
||||||
|
self.mv_center = ba.newnode('prop',
|
||||||
|
attrs={'body': 'puck',
|
||||||
|
'position': m_pos1,
|
||||||
|
'model': self._map_model1,
|
||||||
|
'model_scale': 4.00,
|
||||||
|
'body_scale': 0.1,
|
||||||
|
'shadow_size': 0.0,
|
||||||
|
'gravity_scale':0.0,
|
||||||
|
'color_texture': self._map_tex4,
|
||||||
|
'reflection': 'soft',
|
||||||
|
'reflection_scale': [0.0],
|
||||||
|
'is_area_of_interest': True,
|
||||||
|
'materials': [self.dont_collide]})
|
||||||
|
|
||||||
|
gnode = ba.getactivity().globalsnode
|
||||||
|
gnode.tint = (1.2,1.2,1.2)
|
||||||
|
gnode.ambient_color = (1.15,1.25,1.6)
|
||||||
|
gnode.vignette_outer = (0.5,-0.25,0.5)
|
||||||
|
gnode.vignette_inner = (0.93,0.93,0.95)
|
||||||
|
FadeEfect(gnode.tint)
|
||||||
|
Credits()
|
||||||
|
|
||||||
|
#List Maps
|
||||||
|
zk2059 = [FactoryMap,PlatformsMap,DarkZone, #v2
|
||||||
|
NeoZone,CMap #v1
|
||||||
|
]
|
||||||
|
|
||||||
|
def register_maps():
|
||||||
|
for new_map in zk2059:
|
||||||
|
_map.register_map(new_map)
|
||||||
|
|
||||||
|
|
||||||
|
register_maps()
|
||||||
|
|
||||||
17
dist/ba_root/mods/maps/new_maps.py
vendored
17
dist/ba_root/mods/maps/new_maps.py
vendored
|
|
@ -39,7 +39,7 @@ class mega_mine_defs:
|
||||||
class MegaMine(ba.Map):
|
class MegaMine(ba.Map):
|
||||||
"""A giant mine!"""
|
"""A giant mine!"""
|
||||||
|
|
||||||
from new_maps import mega_mine_defs as defs
|
defs = mega_mine_defs
|
||||||
|
|
||||||
name = 'Mega Mine'
|
name = 'Mega Mine'
|
||||||
|
|
||||||
|
|
@ -114,7 +114,7 @@ class powerups_defs:
|
||||||
class PowerupMap(ba.Map):
|
class PowerupMap(ba.Map):
|
||||||
"""A Powerups!"""
|
"""A Powerups!"""
|
||||||
|
|
||||||
from new_maps import powerups_defs as defs
|
defs = powerups_defs
|
||||||
|
|
||||||
name = 'Powerups'
|
name = 'Powerups'
|
||||||
|
|
||||||
|
|
@ -224,7 +224,7 @@ class darkness_defs:
|
||||||
points['powerup_spawn4'] = (3.5,2,3.5)
|
points['powerup_spawn4'] = (3.5,2,3.5)
|
||||||
|
|
||||||
class Dark(ba.Map):
|
class Dark(ba.Map):
|
||||||
from new_maps import darkness_defs as defs
|
defs = darkness_defs
|
||||||
name = 'Dark world'
|
name = 'Dark world'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -271,7 +271,7 @@ class Dark(ba.Map):
|
||||||
class SuperTntMap(ba.Map):
|
class SuperTntMap(ba.Map):
|
||||||
"""A giant mine!"""
|
"""A giant mine!"""
|
||||||
|
|
||||||
from new_maps import powerups_defs as defs
|
defs = powerups_defs
|
||||||
|
|
||||||
name = 'Super TNT'
|
name = 'Super TNT'
|
||||||
|
|
||||||
|
|
@ -407,10 +407,5 @@ def register_maps():
|
||||||
for new_map in MAPS:
|
for new_map in MAPS:
|
||||||
ba._map.register_map(new_map)
|
ba._map.register_map(new_map)
|
||||||
|
|
||||||
# ba_meta export plugin
|
|
||||||
class MoreMaps(ba.Plugin):
|
register_maps()
|
||||||
def __init__(self):
|
|
||||||
if _ba.env().get("build_number", 0) >= 20258:
|
|
||||||
register_maps()
|
|
||||||
else:
|
|
||||||
print("new_maps.py only runs with BombSquad versions higher than 1.5.29.")
|
|
||||||
BIN
dist/ba_root/mods/maps/soccerStadiumPro.so
vendored
BIN
dist/ba_root/mods/maps/soccerStadiumPro.so
vendored
Binary file not shown.
10
dist/ba_root/mods/playersData/profiles.json
vendored
10
dist/ba_root/mods/playersData/profiles.json
vendored
|
|
@ -68,12 +68,12 @@
|
||||||
"lastSpam": 1655407521.4853249,
|
"lastSpam": 1655407521.4853249,
|
||||||
"totaltimeplayer": 0,
|
"totaltimeplayer": 0,
|
||||||
"warnCount": 0,
|
"warnCount": 0,
|
||||||
"lastWarned": 1655407521.4853408,
|
"lastWarned": 1658055515.14302,
|
||||||
"verified": true,
|
"verified": true,
|
||||||
"rejoincount": 2,
|
"rejoincount": 1,
|
||||||
"lastJoin": 1655407536.1110733,
|
"lastJoin": 1658055515.143022,
|
||||||
"lastIP": "axj~}j~~n`ai",
|
"lastIP": "axj~|h~|j~~",
|
||||||
"deviceUUID": "\u0003\u0005^\u0005VFYYULL\u0007Z\u0005L@QU\u0004L\u0015QZ\u0002L\u0016XX"
|
"deviceUUID": "c49fafb7d66d14198924c1b9dcc59e23fb838042"
|
||||||
},
|
},
|
||||||
"pb-IF43U2cIVw==": {
|
"pb-IF43U2cIVw==": {
|
||||||
"display_string": "\ue063Smoothy",
|
"display_string": "\ue063Smoothy",
|
||||||
|
|
|
||||||
|
|
@ -68,12 +68,12 @@
|
||||||
"lastSpam": 1655407521.4853249,
|
"lastSpam": 1655407521.4853249,
|
||||||
"totaltimeplayer": 0,
|
"totaltimeplayer": 0,
|
||||||
"warnCount": 0,
|
"warnCount": 0,
|
||||||
"lastWarned": 1655407521.4853408,
|
"lastWarned": 1658055515.14302,
|
||||||
"verified": true,
|
"verified": true,
|
||||||
"rejoincount": 2,
|
"rejoincount": 1,
|
||||||
"lastJoin": 1655407536.1110733,
|
"lastJoin": 1658055515.143022,
|
||||||
"lastIP": "axj~}j~~n`ai",
|
"lastIP": "axj~|h~|j~~",
|
||||||
"deviceUUID": "\u0003\u0005^\u0005VFYYULL\u0007Z\u0005L@QU\u0004L\u0015QZ\u0002L\u0016XX"
|
"deviceUUID": "c49fafb7d66d14198924c1b9dcc59e23fb838042"
|
||||||
},
|
},
|
||||||
"pb-IF43U2cIVw==": {
|
"pb-IF43U2cIVw==": {
|
||||||
"display_string": "\ue063Smoothy",
|
"display_string": "\ue063Smoothy",
|
||||||
|
|
|
||||||
3
dist/ba_root/mods/playersData/roles.json
vendored
3
dist/ba_root/mods/playersData/roles.json
vendored
|
|
@ -71,8 +71,7 @@
|
||||||
"commands": [],
|
"commands": [],
|
||||||
"ids": [
|
"ids": [
|
||||||
"pb-IF4VAk4a",
|
"pb-IF4VAk4a",
|
||||||
"pb-IF4eUxk5KA==",
|
"pb-IF4RU2ECAg=="
|
||||||
"pb-IF43U2cIVw=="
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"bypass-warn": {
|
"bypass-warn": {
|
||||||
|
|
|
||||||
|
|
@ -71,8 +71,7 @@
|
||||||
"commands": [],
|
"commands": [],
|
||||||
"ids": [
|
"ids": [
|
||||||
"pb-IF4VAk4a",
|
"pb-IF4VAk4a",
|
||||||
"pb-IF4eUxk5KA==",
|
"pb-IF4RU2ECAg=="
|
||||||
"pb-IF43U2cIVw=="
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"bypass-warn": {
|
"bypass-warn": {
|
||||||
|
|
|
||||||
19
dist/ba_root/mods/stats/stats.json
vendored
19
dist/ba_root/mods/stats/stats.json
vendored
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"startDate": "26-02-2022",
|
"startDate": "17-07-2022",
|
||||||
"stats": {
|
"stats": {
|
||||||
"pb-IF4VAk4a": {
|
"pb-IF4VAk4a": {
|
||||||
"rank": 1,
|
"rank": 1,
|
||||||
|
|
@ -12,7 +12,20 @@
|
||||||
"kd": 0.0,
|
"kd": 0.0,
|
||||||
"avg_score": 0.0,
|
"avg_score": 0.0,
|
||||||
"aid": "pb-IF4VAk4a",
|
"aid": "pb-IF4VAk4a",
|
||||||
"last_seen":"2022-03-10 12:46:46.070990"
|
"last_seen": "2022-04-26 17:01:13.715014"
|
||||||
|
},
|
||||||
|
"pb-IF4RU2ECAg==": {
|
||||||
|
"rank": 2,
|
||||||
|
"name": "PC452402",
|
||||||
|
"scores": 767,
|
||||||
|
"total_damage": 0.0,
|
||||||
|
"kills": 0,
|
||||||
|
"deaths": 5,
|
||||||
|
"games": 46,
|
||||||
|
"kd": 0.0,
|
||||||
|
"avg_score": 16.673,
|
||||||
|
"last_seen": "2022-07-17 16:39:27.777148",
|
||||||
|
"aid": "pb-IF4RU2ECAg=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
31
dist/ba_root/mods/stats/stats.json.backup
vendored
Normal file
31
dist/ba_root/mods/stats/stats.json.backup
vendored
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
"startDate": "17-07-2022",
|
||||||
|
"stats": {
|
||||||
|
"pb-IF4VAk4a": {
|
||||||
|
"rank": 1,
|
||||||
|
"name": "pb-IF4VAk4a",
|
||||||
|
"scores": 0,
|
||||||
|
"total_damage": 0.0,
|
||||||
|
"kills": 0,
|
||||||
|
"deaths": 0,
|
||||||
|
"games": 18,
|
||||||
|
"kd": 0.0,
|
||||||
|
"avg_score": 0.0,
|
||||||
|
"aid": "pb-IF4VAk4a",
|
||||||
|
"last_seen": "2022-04-26 17:01:13.715014"
|
||||||
|
},
|
||||||
|
"pb-IF4RU2ECAg==": {
|
||||||
|
"rank": 2,
|
||||||
|
"name": "PC452402",
|
||||||
|
"scores": 767,
|
||||||
|
"total_damage": 0.0,
|
||||||
|
"kills": 0,
|
||||||
|
"deaths": 5,
|
||||||
|
"games": 46,
|
||||||
|
"kd": 0.0,
|
||||||
|
"avg_score": 17.044,
|
||||||
|
"last_seen": "2022-07-17 16:39:27.777148",
|
||||||
|
"aid": "pb-IF4RU2ECAg=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
18
dist/ba_root/mods/stats/stats2022-02-26 000000.json
vendored
Normal file
18
dist/ba_root/mods/stats/stats2022-02-26 000000.json
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"startDate": "26-02-2022",
|
||||||
|
"stats": {
|
||||||
|
"pb-IF4VAk4a": {
|
||||||
|
"rank": 1,
|
||||||
|
"name": "pb-IF4VAk4a",
|
||||||
|
"scores": 0,
|
||||||
|
"total_damage": 0.0,
|
||||||
|
"kills": 0,
|
||||||
|
"deaths": 0,
|
||||||
|
"games": 18,
|
||||||
|
"kd": 0.0,
|
||||||
|
"avg_score": 0.0,
|
||||||
|
"aid": "pb-IF4VAk4a",
|
||||||
|
"last_seen":"2022-03-10 12:46:46.070990"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue