From b11bb26f51576cc45f01584f0c9a7ed0b2252ba3 Mon Sep 17 00:00:00 2001
From: Eric Froemling
Date: Wed, 15 Apr 2020 00:52:54 -0700
Subject: [PATCH] cleaning up score screen names
---
.idea/dictionaries/ericf.xml | 10 +
assets/.asset_manifest_1.json | 42 +-
assets/Makefile | 117 +++---
assets/src/ba_data/python/ba/__init__.py | 4 +-
.../src/ba_data/python/ba/_activitytypes.py | 2 +-
assets/src/ba_data/python/ba/_benchmark.py | 5 +-
assets/src/ba_data/python/ba/_coopsession.py | 15 +-
.../{_teamssession.py => _dualteamsession.py} | 26 +-
.../ba_data/python/ba/_freeforallsession.py | 10 +-
assets/src/ba_data/python/ba/_gameactivity.py | 8 +-
...eambasesession.py => _multiteamsession.py} | 13 +-
assets/src/ba_data/python/ba/_server.py | 4 +-
assets/src/ba_data/python/ba/_session.py | 2 +-
assets/src/ba_data/python/ba/_teamgame.py | 14 +-
assets/src/ba_data/python/ba/internal.py | 4 +-
.../{coopjoinscreen.py => coopjoin.py} | 4 +-
.../{coopscorescreen.py => coopscore.py} | 0
.../activity/{drawscreen.py => drawscore.py} | 4 +-
...ualteamscorescreen.py => dualteamscore.py} | 6 +-
...orallendscreen.py => freeforallvictory.py} | 6 +-
...ultiteamjoinscreen.py => multiteamjoin.py} | 10 +-
...{teamsscorescreen.py => multiteamscore.py} | 6 +-
...titeamendscreen.py => multiteamvictory.py} | 6 +-
.../python/bastd/actor/multiteamvictory.py | 392 ++++++++++++++++++
.../ba_data/python/bastd/actor/respawnicon.py | 2 +-
.../src/ba_data/python/bastd/game/assault.py | 2 +-
.../python/bastd/game/capturetheflag.py | 2 +-
.../src/ba_data/python/bastd/game/conquest.py | 2 +-
.../ba_data/python/bastd/game/deathmatch.py | 2 +-
.../python/bastd/game/easteregghunt.py | 2 +-
.../ba_data/python/bastd/game/elimination.py | 10 +-
.../src/ba_data/python/bastd/game/football.py | 2 +-
.../src/ba_data/python/bastd/game/hockey.py | 2 +-
.../src/ba_data/python/bastd/game/keepaway.py | 2 +-
.../python/bastd/game/kingofthehill.py | 2 +-
.../ba_data/python/bastd/game/meteorshower.py | 2 +-
assets/src/ba_data/python/bastd/game/race.py | 18 +-
.../python/bastd/game/targetpractice.py | 2 +-
assets/src/ba_data/python/bastd/mainmenu.py | 2 +-
assets/src/ba_data/python/bastd/ui/kiosk.py | 2 +-
assets/src/ba_data/python/bastd/ui/play.py | 2 +-
.../python/bastd/ui/playlist/__init__.py | 6 +-
.../python/bastd/ui/playlist/browser.py | 4 +-
.../ba_data/python/bastd/ui/playoptions.py | 6 +-
.../src/ba_data/python/bastd/ui/store/item.py | 2 +-
docs/ba_module.md | 218 +++++-----
46 files changed, 706 insertions(+), 298 deletions(-)
rename assets/src/ba_data/python/ba/{_teamssession.py => _dualteamsession.py} (77%)
rename assets/src/ba_data/python/ba/{_teambasesession.py => _multiteamsession.py} (97%)
rename assets/src/ba_data/python/bastd/activity/{coopjoinscreen.py => coopjoin.py} (99%)
rename assets/src/ba_data/python/bastd/activity/{coopscorescreen.py => coopscore.py} (100%)
rename assets/src/ba_data/python/bastd/activity/{drawscreen.py => drawscore.py} (94%)
rename assets/src/ba_data/python/bastd/activity/{dualteamscorescreen.py => dualteamscore.py} (96%)
rename assets/src/ba_data/python/bastd/activity/{freeforallendscreen.py => freeforallvictory.py} (98%)
rename assets/src/ba_data/python/bastd/activity/{multiteamjoinscreen.py => multiteamjoin.py} (94%)
rename assets/src/ba_data/python/bastd/activity/{teamsscorescreen.py => multiteamscore.py} (98%)
rename assets/src/ba_data/python/bastd/activity/{multiteamendscreen.py => multiteamvictory.py} (98%)
create mode 100644 assets/src/ba_data/python/bastd/actor/multiteamvictory.py
diff --git a/.idea/dictionaries/ericf.xml b/.idea/dictionaries/ericf.xml
index 4e4b6cf0..b0417386 100644
--- a/.idea/dictionaries/ericf.xml
+++ b/.idea/dictionaries/ericf.xml
@@ -330,7 +330,9 @@
cooldown
cooldowns
coopgame
+ coopjoin
coopjoinscreen
+ coopscore
coopscorescreen
coopsession
coords
@@ -447,6 +449,7 @@
downmix
dpad
dpath
+ drawscore
drawscreen
dripity
dropbox
@@ -469,7 +472,9 @@
dstvar
dtest
dtime
+ dualteamscore
dualteamscorescreen
+ dualteamsession
duckdns
dummymodule
dummyname
@@ -637,6 +642,7 @@
freefly
freeforallendscreen
freeforallsession
+ freeforallvictory
freepik
freesound
froemling
@@ -1088,7 +1094,11 @@
multiline
multiplayer
multiteamendscreen
+ multiteamjoin
multiteamjoinscreen
+ multiteamscore
+ multiteamsession
+ multiteamvictory
multithreaded
musicinfo
musicinfos
diff --git a/assets/.asset_manifest_1.json b/assets/.asset_manifest_1.json
index cd9617eb..f1195b8f 100644
--- a/assets/.asset_manifest_1.json
+++ b/assets/.asset_manifest_1.json
@@ -16,6 +16,7 @@
"ba_data/python/ba/__pycache__/_coopgame.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_coopsession.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_dependency.cpython-37.opt-1.pyc",
+ "ba_data/python/ba/__pycache__/_dualteamsession.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_enums.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_error.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_freeforallsession.cpython-37.opt-1.pyc",
@@ -33,6 +34,7 @@
"ba_data/python/ba/__pycache__/_messages.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_meta.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_modutils.cpython-37.opt-1.pyc",
+ "ba_data/python/ba/__pycache__/_multiteamsession.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_music.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_netutils.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_nodeactor.cpython-37.opt-1.pyc",
@@ -44,9 +46,7 @@
"ba_data/python/ba/__pycache__/_stats.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_store.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_team.cpython-37.opt-1.pyc",
- "ba_data/python/ba/__pycache__/_teambasesession.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_teamgame.cpython-37.opt-1.pyc",
- "ba_data/python/ba/__pycache__/_teamssession.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_tips.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_tournament.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/deprecated.cpython-37.opt-1.pyc",
@@ -66,6 +66,7 @@
"ba_data/python/ba/_coopgame.py",
"ba_data/python/ba/_coopsession.py",
"ba_data/python/ba/_dependency.py",
+ "ba_data/python/ba/_dualteamsession.py",
"ba_data/python/ba/_enums.py",
"ba_data/python/ba/_error.py",
"ba_data/python/ba/_freeforallsession.py",
@@ -83,6 +84,7 @@
"ba_data/python/ba/_messages.py",
"ba_data/python/ba/_meta.py",
"ba_data/python/ba/_modutils.py",
+ "ba_data/python/ba/_multiteamsession.py",
"ba_data/python/ba/_music.py",
"ba_data/python/ba/_netutils.py",
"ba_data/python/ba/_nodeactor.py",
@@ -94,9 +96,7 @@
"ba_data/python/ba/_stats.py",
"ba_data/python/ba/_store.py",
"ba_data/python/ba/_team.py",
- "ba_data/python/ba/_teambasesession.py",
"ba_data/python/ba/_teamgame.py",
- "ba_data/python/ba/_teamssession.py",
"ba_data/python/ba/_tips.py",
"ba_data/python/ba/_tournament.py",
"ba_data/python/ba/deprecated.py",
@@ -118,22 +118,22 @@
"ba_data/python/bastd/__pycache__/tutorial.cpython-37.opt-1.pyc",
"ba_data/python/bastd/activity/__init__.py",
"ba_data/python/bastd/activity/__pycache__/__init__.cpython-37.opt-1.pyc",
- "ba_data/python/bastd/activity/__pycache__/coopjoinscreen.cpython-37.opt-1.pyc",
- "ba_data/python/bastd/activity/__pycache__/coopscorescreen.cpython-37.opt-1.pyc",
- "ba_data/python/bastd/activity/__pycache__/drawscreen.cpython-37.opt-1.pyc",
- "ba_data/python/bastd/activity/__pycache__/dualteamscorescreen.cpython-37.opt-1.pyc",
- "ba_data/python/bastd/activity/__pycache__/freeforallendscreen.cpython-37.opt-1.pyc",
- "ba_data/python/bastd/activity/__pycache__/multiteamendscreen.cpython-37.opt-1.pyc",
- "ba_data/python/bastd/activity/__pycache__/multiteamjoinscreen.cpython-37.opt-1.pyc",
- "ba_data/python/bastd/activity/__pycache__/teamsscorescreen.cpython-37.opt-1.pyc",
- "ba_data/python/bastd/activity/coopjoinscreen.py",
- "ba_data/python/bastd/activity/coopscorescreen.py",
- "ba_data/python/bastd/activity/drawscreen.py",
- "ba_data/python/bastd/activity/dualteamscorescreen.py",
- "ba_data/python/bastd/activity/freeforallendscreen.py",
- "ba_data/python/bastd/activity/multiteamendscreen.py",
- "ba_data/python/bastd/activity/multiteamjoinscreen.py",
- "ba_data/python/bastd/activity/teamsscorescreen.py",
+ "ba_data/python/bastd/activity/__pycache__/coopjoin.cpython-37.opt-1.pyc",
+ "ba_data/python/bastd/activity/__pycache__/coopscore.cpython-37.opt-1.pyc",
+ "ba_data/python/bastd/activity/__pycache__/drawscore.cpython-37.opt-1.pyc",
+ "ba_data/python/bastd/activity/__pycache__/dualteamscore.cpython-37.opt-1.pyc",
+ "ba_data/python/bastd/activity/__pycache__/freeforallvictory.cpython-37.opt-1.pyc",
+ "ba_data/python/bastd/activity/__pycache__/multiteamjoin.cpython-37.opt-1.pyc",
+ "ba_data/python/bastd/activity/__pycache__/multiteamscore.cpython-37.opt-1.pyc",
+ "ba_data/python/bastd/activity/__pycache__/multiteamvictory.cpython-37.opt-1.pyc",
+ "ba_data/python/bastd/activity/coopjoin.py",
+ "ba_data/python/bastd/activity/coopscore.py",
+ "ba_data/python/bastd/activity/drawscore.py",
+ "ba_data/python/bastd/activity/dualteamscore.py",
+ "ba_data/python/bastd/activity/freeforallvictory.py",
+ "ba_data/python/bastd/activity/multiteamjoin.py",
+ "ba_data/python/bastd/activity/multiteamscore.py",
+ "ba_data/python/bastd/activity/multiteamvictory.py",
"ba_data/python/bastd/actor/__init__.py",
"ba_data/python/bastd/actor/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/background.cpython-37.opt-1.pyc",
@@ -141,6 +141,7 @@
"ba_data/python/bastd/actor/__pycache__/controlsguide.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/flag.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/image.cpython-37.opt-1.pyc",
+ "ba_data/python/bastd/actor/__pycache__/multiteamvictory.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/onscreencountdown.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/onscreentimer.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/playerspaz.cpython-37.opt-1.pyc",
@@ -161,6 +162,7 @@
"ba_data/python/bastd/actor/controlsguide.py",
"ba_data/python/bastd/actor/flag.py",
"ba_data/python/bastd/actor/image.py",
+ "ba_data/python/bastd/actor/multiteamvictory.py",
"ba_data/python/bastd/actor/onscreencountdown.py",
"ba_data/python/bastd/actor/onscreentimer.py",
"ba_data/python/bastd/actor/playerspaz.py",
diff --git a/assets/Makefile b/assets/Makefile
index 9e176757..71aceae7 100644
--- a/assets/Makefile
+++ b/assets/Makefile
@@ -158,6 +158,7 @@ SCRIPT_TARGETS_PY_1 = \
build/ba_data/python/bacommon/__init__.py \
build/ba_data/python/bacommon/assets.py \
build/ba_data/python/bacommon/err.py \
+ build/ba_data/python/ba/_dualteamsession.py \
build/ba_data/python/ba/_gameactivity.py \
build/ba_data/python/ba/_apputils.py \
build/ba_data/python/ba/_coopsession.py \
@@ -172,7 +173,6 @@ SCRIPT_TARGETS_PY_1 = \
build/ba_data/python/ba/_error.py \
build/ba_data/python/ba/_achievement.py \
build/ba_data/python/ba/_map.py \
- build/ba_data/python/ba/_teambasesession.py \
build/ba_data/python/ba/_gameutils.py \
build/ba_data/python/ba/_activity.py \
build/ba_data/python/ba/deprecated.py \
@@ -190,10 +190,10 @@ SCRIPT_TARGETS_PY_1 = \
build/ba_data/python/ba/_benchmark.py \
build/ba_data/python/ba/_tournament.py \
build/ba_data/python/ba/_messages.py \
- build/ba_data/python/ba/_teamssession.py \
build/ba_data/python/ba/_freeforallsession.py \
build/ba_data/python/ba/_playlist.py \
build/ba_data/python/ba/_team.py \
+ build/ba_data/python/ba/_multiteamsession.py \
build/ba_data/python/ba/_actor.py \
build/ba_data/python/ba/_powerup.py \
build/ba_data/python/ba/_campaign.py \
@@ -310,15 +310,15 @@ SCRIPT_TARGETS_PY_1 = \
build/ba_data/python/bastd/ui/store/browser.py \
build/ba_data/python/bastd/ui/store/button.py \
build/ba_data/python/bastd/ui/store/item.py \
- build/ba_data/python/bastd/activity/freeforallendscreen.py \
+ build/ba_data/python/bastd/activity/coopjoin.py \
+ build/ba_data/python/bastd/activity/multiteamvictory.py \
+ build/ba_data/python/bastd/activity/dualteamscore.py \
+ build/ba_data/python/bastd/activity/drawscore.py \
build/ba_data/python/bastd/activity/__init__.py \
- build/ba_data/python/bastd/activity/coopscorescreen.py \
- build/ba_data/python/bastd/activity/dualteamscorescreen.py \
- build/ba_data/python/bastd/activity/coopjoinscreen.py \
- build/ba_data/python/bastd/activity/multiteamendscreen.py \
- build/ba_data/python/bastd/activity/teamsscorescreen.py \
- build/ba_data/python/bastd/activity/multiteamjoinscreen.py \
- build/ba_data/python/bastd/activity/drawscreen.py \
+ build/ba_data/python/bastd/activity/freeforallvictory.py \
+ build/ba_data/python/bastd/activity/coopscore.py \
+ build/ba_data/python/bastd/activity/multiteamjoin.py \
+ build/ba_data/python/bastd/activity/multiteamscore.py \
build/ba_data/python/bastd/game/capturetheflag.py \
build/ba_data/python/bastd/game/targetpractice.py \
build/ba_data/python/bastd/game/ninjafight.py \
@@ -362,6 +362,7 @@ SCRIPT_TARGETS_PY_1 = \
build/ba_data/python/bastd/actor/flag.py \
build/ba_data/python/bastd/actor/scoreboard.py \
build/ba_data/python/bastd/actor/popuptext.py \
+ build/ba_data/python/bastd/actor/multiteamvictory.py \
build/ba_data/python/bastd/actor/background.py \
build/ba_data/python/bastd/actor/__init__.py \
build/ba_data/python/bastd/actor/zoomtext.py \
@@ -396,6 +397,7 @@ SCRIPT_TARGETS_PYC_1 = \
build/ba_data/python/bacommon/__pycache__/__init__.cpython-37.opt-1.pyc \
build/ba_data/python/bacommon/__pycache__/assets.cpython-37.opt-1.pyc \
build/ba_data/python/bacommon/__pycache__/err.cpython-37.opt-1.pyc \
+ build/ba_data/python/ba/__pycache__/_dualteamsession.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_gameactivity.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_apputils.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_coopsession.cpython-37.opt-1.pyc \
@@ -410,7 +412,6 @@ SCRIPT_TARGETS_PYC_1 = \
build/ba_data/python/ba/__pycache__/_error.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_achievement.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_map.cpython-37.opt-1.pyc \
- build/ba_data/python/ba/__pycache__/_teambasesession.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_gameutils.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_activity.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/deprecated.cpython-37.opt-1.pyc \
@@ -428,10 +429,10 @@ SCRIPT_TARGETS_PYC_1 = \
build/ba_data/python/ba/__pycache__/_benchmark.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_tournament.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_messages.cpython-37.opt-1.pyc \
- build/ba_data/python/ba/__pycache__/_teamssession.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_freeforallsession.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_playlist.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_team.cpython-37.opt-1.pyc \
+ build/ba_data/python/ba/__pycache__/_multiteamsession.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_actor.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_powerup.cpython-37.opt-1.pyc \
build/ba_data/python/ba/__pycache__/_campaign.cpython-37.opt-1.pyc \
@@ -548,15 +549,15 @@ SCRIPT_TARGETS_PYC_1 = \
build/ba_data/python/bastd/ui/store/__pycache__/browser.cpython-37.opt-1.pyc \
build/ba_data/python/bastd/ui/store/__pycache__/button.cpython-37.opt-1.pyc \
build/ba_data/python/bastd/ui/store/__pycache__/item.cpython-37.opt-1.pyc \
- build/ba_data/python/bastd/activity/__pycache__/freeforallendscreen.cpython-37.opt-1.pyc \
+ build/ba_data/python/bastd/activity/__pycache__/coopjoin.cpython-37.opt-1.pyc \
+ build/ba_data/python/bastd/activity/__pycache__/multiteamvictory.cpython-37.opt-1.pyc \
+ build/ba_data/python/bastd/activity/__pycache__/dualteamscore.cpython-37.opt-1.pyc \
+ build/ba_data/python/bastd/activity/__pycache__/drawscore.cpython-37.opt-1.pyc \
build/ba_data/python/bastd/activity/__pycache__/__init__.cpython-37.opt-1.pyc \
- build/ba_data/python/bastd/activity/__pycache__/coopscorescreen.cpython-37.opt-1.pyc \
- build/ba_data/python/bastd/activity/__pycache__/dualteamscorescreen.cpython-37.opt-1.pyc \
- build/ba_data/python/bastd/activity/__pycache__/coopjoinscreen.cpython-37.opt-1.pyc \
- build/ba_data/python/bastd/activity/__pycache__/multiteamendscreen.cpython-37.opt-1.pyc \
- build/ba_data/python/bastd/activity/__pycache__/teamsscorescreen.cpython-37.opt-1.pyc \
- build/ba_data/python/bastd/activity/__pycache__/multiteamjoinscreen.cpython-37.opt-1.pyc \
- build/ba_data/python/bastd/activity/__pycache__/drawscreen.cpython-37.opt-1.pyc \
+ build/ba_data/python/bastd/activity/__pycache__/freeforallvictory.cpython-37.opt-1.pyc \
+ build/ba_data/python/bastd/activity/__pycache__/coopscore.cpython-37.opt-1.pyc \
+ build/ba_data/python/bastd/activity/__pycache__/multiteamjoin.cpython-37.opt-1.pyc \
+ build/ba_data/python/bastd/activity/__pycache__/multiteamscore.cpython-37.opt-1.pyc \
build/ba_data/python/bastd/game/__pycache__/capturetheflag.cpython-37.opt-1.pyc \
build/ba_data/python/bastd/game/__pycache__/targetpractice.cpython-37.opt-1.pyc \
build/ba_data/python/bastd/game/__pycache__/ninjafight.cpython-37.opt-1.pyc \
@@ -600,6 +601,7 @@ SCRIPT_TARGETS_PYC_1 = \
build/ba_data/python/bastd/actor/__pycache__/flag.cpython-37.opt-1.pyc \
build/ba_data/python/bastd/actor/__pycache__/scoreboard.cpython-37.opt-1.pyc \
build/ba_data/python/bastd/actor/__pycache__/popuptext.cpython-37.opt-1.pyc \
+ build/ba_data/python/bastd/actor/__pycache__/multiteamvictory.cpython-37.opt-1.pyc \
build/ba_data/python/bastd/actor/__pycache__/background.cpython-37.opt-1.pyc \
build/ba_data/python/bastd/actor/__pycache__/__init__.cpython-37.opt-1.pyc \
build/ba_data/python/bastd/actor/__pycache__/zoomtext.cpython-37.opt-1.pyc \
@@ -710,6 +712,11 @@ build/ba_data/python/bacommon/__pycache__/err.cpython-37.opt-1.pyc: \
@echo Compiling script: $^
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
+build/ba_data/python/ba/__pycache__/_dualteamsession.cpython-37.opt-1.pyc: \
+ build/ba_data/python/ba/_dualteamsession.py
+ @echo Compiling script: $^
+ @rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
+
build/ba_data/python/ba/__pycache__/_gameactivity.cpython-37.opt-1.pyc: \
build/ba_data/python/ba/_gameactivity.py
@echo Compiling script: $^
@@ -780,11 +787,6 @@ build/ba_data/python/ba/__pycache__/_map.cpython-37.opt-1.pyc: \
@echo Compiling script: $^
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
-build/ba_data/python/ba/__pycache__/_teambasesession.cpython-37.opt-1.pyc: \
- build/ba_data/python/ba/_teambasesession.py
- @echo Compiling script: $^
- @rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
-
build/ba_data/python/ba/__pycache__/_gameutils.cpython-37.opt-1.pyc: \
build/ba_data/python/ba/_gameutils.py
@echo Compiling script: $^
@@ -870,11 +872,6 @@ build/ba_data/python/ba/__pycache__/_messages.cpython-37.opt-1.pyc: \
@echo Compiling script: $^
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
-build/ba_data/python/ba/__pycache__/_teamssession.cpython-37.opt-1.pyc: \
- build/ba_data/python/ba/_teamssession.py
- @echo Compiling script: $^
- @rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
-
build/ba_data/python/ba/__pycache__/_freeforallsession.cpython-37.opt-1.pyc: \
build/ba_data/python/ba/_freeforallsession.py
@echo Compiling script: $^
@@ -890,6 +887,11 @@ build/ba_data/python/ba/__pycache__/_team.cpython-37.opt-1.pyc: \
@echo Compiling script: $^
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
+build/ba_data/python/ba/__pycache__/_multiteamsession.cpython-37.opt-1.pyc: \
+ build/ba_data/python/ba/_multiteamsession.py
+ @echo Compiling script: $^
+ @rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
+
build/ba_data/python/ba/__pycache__/_actor.cpython-37.opt-1.pyc: \
build/ba_data/python/ba/_actor.py
@echo Compiling script: $^
@@ -1470,8 +1472,23 @@ build/ba_data/python/bastd/ui/store/__pycache__/item.cpython-37.opt-1.pyc: \
@echo Compiling script: $^
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
-build/ba_data/python/bastd/activity/__pycache__/freeforallendscreen.cpython-37.opt-1.pyc: \
- build/ba_data/python/bastd/activity/freeforallendscreen.py
+build/ba_data/python/bastd/activity/__pycache__/coopjoin.cpython-37.opt-1.pyc: \
+ build/ba_data/python/bastd/activity/coopjoin.py
+ @echo Compiling script: $^
+ @rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
+
+build/ba_data/python/bastd/activity/__pycache__/multiteamvictory.cpython-37.opt-1.pyc: \
+ build/ba_data/python/bastd/activity/multiteamvictory.py
+ @echo Compiling script: $^
+ @rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
+
+build/ba_data/python/bastd/activity/__pycache__/dualteamscore.cpython-37.opt-1.pyc: \
+ build/ba_data/python/bastd/activity/dualteamscore.py
+ @echo Compiling script: $^
+ @rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
+
+build/ba_data/python/bastd/activity/__pycache__/drawscore.cpython-37.opt-1.pyc: \
+ build/ba_data/python/bastd/activity/drawscore.py
@echo Compiling script: $^
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
@@ -1480,38 +1497,23 @@ build/ba_data/python/bastd/activity/__pycache__/__init__.cpython-37.opt-1.pyc: \
@echo Compiling script: $^
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
-build/ba_data/python/bastd/activity/__pycache__/coopscorescreen.cpython-37.opt-1.pyc: \
- build/ba_data/python/bastd/activity/coopscorescreen.py
+build/ba_data/python/bastd/activity/__pycache__/freeforallvictory.cpython-37.opt-1.pyc: \
+ build/ba_data/python/bastd/activity/freeforallvictory.py
@echo Compiling script: $^
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
-build/ba_data/python/bastd/activity/__pycache__/dualteamscorescreen.cpython-37.opt-1.pyc: \
- build/ba_data/python/bastd/activity/dualteamscorescreen.py
+build/ba_data/python/bastd/activity/__pycache__/coopscore.cpython-37.opt-1.pyc: \
+ build/ba_data/python/bastd/activity/coopscore.py
@echo Compiling script: $^
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
-build/ba_data/python/bastd/activity/__pycache__/coopjoinscreen.cpython-37.opt-1.pyc: \
- build/ba_data/python/bastd/activity/coopjoinscreen.py
+build/ba_data/python/bastd/activity/__pycache__/multiteamjoin.cpython-37.opt-1.pyc: \
+ build/ba_data/python/bastd/activity/multiteamjoin.py
@echo Compiling script: $^
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
-build/ba_data/python/bastd/activity/__pycache__/multiteamendscreen.cpython-37.opt-1.pyc: \
- build/ba_data/python/bastd/activity/multiteamendscreen.py
- @echo Compiling script: $^
- @rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
-
-build/ba_data/python/bastd/activity/__pycache__/teamsscorescreen.cpython-37.opt-1.pyc: \
- build/ba_data/python/bastd/activity/teamsscorescreen.py
- @echo Compiling script: $^
- @rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
-
-build/ba_data/python/bastd/activity/__pycache__/multiteamjoinscreen.cpython-37.opt-1.pyc: \
- build/ba_data/python/bastd/activity/multiteamjoinscreen.py
- @echo Compiling script: $^
- @rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
-
-build/ba_data/python/bastd/activity/__pycache__/drawscreen.cpython-37.opt-1.pyc: \
- build/ba_data/python/bastd/activity/drawscreen.py
+build/ba_data/python/bastd/activity/__pycache__/multiteamscore.cpython-37.opt-1.pyc: \
+ build/ba_data/python/bastd/activity/multiteamscore.py
@echo Compiling script: $^
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
@@ -1730,6 +1732,11 @@ build/ba_data/python/bastd/actor/__pycache__/popuptext.cpython-37.opt-1.pyc: \
@echo Compiling script: $^
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
+build/ba_data/python/bastd/actor/__pycache__/multiteamvictory.cpython-37.opt-1.pyc: \
+ build/ba_data/python/bastd/actor/multiteamvictory.py
+ @echo Compiling script: $^
+ @rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
+
build/ba_data/python/bastd/actor/__pycache__/background.cpython-37.opt-1.pyc: \
build/ba_data/python/bastd/actor/background.py
@echo Compiling script: $^
diff --git a/assets/src/ba_data/python/ba/__init__.py b/assets/src/ba_data/python/ba/__init__.py
index 1f5b4455..0b312e1b 100644
--- a/assets/src/ba_data/python/ba/__init__.py
+++ b/assets/src/ba_data/python/ba/__init__.py
@@ -62,7 +62,7 @@ from ba._session import Session
from ba._stats import PlayerScoredMessage, PlayerRecord, Stats
from ba._team import Team
from ba._teamgame import TeamGameActivity
-from ba._teamssession import TeamsSession
+from ba._dualteamsession import DualTeamSession
from ba._achievement import Achievement
from ba._appconfig import AppConfig
from ba._appdelegate import AppDelegate
@@ -82,7 +82,7 @@ from ba._messages import (OutOfBoundsMessage, DeathType, DieMessage,
CelebrateMessage)
from ba._music import setmusic, MusicPlayer, MusicType, MusicPlayMode
from ba._powerup import PowerupMessage, PowerupAcceptMessage
-from ba._teambasesession import TeamBaseSession
+from ba._multiteamsession import MultiTeamSession
from ba.ui import Window, UIController, uicleanupcheck
app: App
diff --git a/assets/src/ba_data/python/ba/_activitytypes.py b/assets/src/ba_data/python/ba/_activitytypes.py
index 3fb87912..b6530e24 100644
--- a/assets/src/ba_data/python/ba/_activitytypes.py
+++ b/assets/src/ba_data/python/ba/_activitytypes.py
@@ -62,7 +62,7 @@ class EndSessionActivity(Activity):
call_after_ad(Call(_ba.new_host_session, MainMenuSession))
-class JoiningActivity(Activity):
+class JoinActivity(Activity):
"""Standard activity for waiting for players to join.
It shows tips and other info and waits for all players to check ready.
diff --git a/assets/src/ba_data/python/ba/_benchmark.py b/assets/src/ba_data/python/ba/_benchmark.py
index c5a5aa08..93634e47 100644
--- a/assets/src/ba_data/python/ba/_benchmark.py
+++ b/assets/src/ba_data/python/ba/_benchmark.py
@@ -109,7 +109,7 @@ def stop_stress_test() -> None:
def start_stress_test(args: Dict[str, Any]) -> None:
"""(internal)"""
from ba._general import Call
- from ba._teamssession import TeamsSession
+ from ba._dualteamsession import DualTeamSession
from ba._freeforallsession import FreeForAllSession
from ba._enums import TimeType, TimeFormat
bs_config = _ba.app.config
@@ -125,7 +125,8 @@ def start_stress_test(args: Dict[str, Any]) -> None:
bs_config['Team Tournament Playlist Selection'] = args['playlist_name']
bs_config['Team Tournament Playlist Randomize'] = 1
_ba.timer(1.0,
- Call(_ba.pushcall, Call(_ba.new_host_session, TeamsSession)),
+ Call(_ba.pushcall, Call(_ba.new_host_session,
+ DualTeamSession)),
timetype=TimeType.REAL)
else:
bs_config['Free-for-All Playlist Selection'] = args['playlist_name']
diff --git a/assets/src/ba_data/python/ba/_coopsession.py b/assets/src/ba_data/python/ba/_coopsession.py
index 7e3967c2..205a6c87 100644
--- a/assets/src/ba_data/python/ba/_coopsession.py
+++ b/assets/src/ba_data/python/ba/_coopsession.py
@@ -48,7 +48,7 @@ class CoopSession(Session):
"""Instantiate a co-op mode session."""
# pylint: disable=cyclic-import
from ba._campaign import get_campaign
- from bastd.activity.coopjoinscreen import CoopJoiningActivity
+ from bastd.activity.coopjoin import CoopJoinActivity
_ba.increment_analytics_count('Co-op session start')
@@ -100,7 +100,7 @@ class CoopSession(Session):
self._custom_menu_ui: List[Dict[str, Any]] = []
# Start our joining screen.
- self.set_activity(_ba.new_activity(CoopJoiningActivity))
+ self.set_activity(_ba.new_activity(CoopJoinActivity))
self._next_game_instance: Optional[ba.GameActivity] = None
self._next_game_name: Optional[str] = None
@@ -249,13 +249,13 @@ class CoopSession(Session):
# pylint: disable=too-many-locals
# pylint: disable=too-many-statements
# pylint: disable=cyclic-import
- from ba._activitytypes import JoiningActivity, TransitionActivity
+ from ba._activitytypes import JoinActivity, TransitionActivity
from ba._lang import Lstr
from ba._general import WeakCall
from ba._coopgame import CoopGameActivity
from ba._gameresults import TeamGameResults
from bastd.tutorial import TutorialActivity
- from bastd.activity.coopscorescreen import CoopScoreScreen
+ from bastd.activity.coopscore import CoopScoreScreen
app = _ba.app
@@ -279,9 +279,8 @@ class CoopSession(Session):
# If we're in a between-round activity or a restart-activity,
# hop into a round.
- if (isinstance(
- activity,
- (JoiningActivity, CoopScoreScreen, TransitionActivity))):
+ if (isinstance(activity,
+ (JoinActivity, CoopScoreScreen, TransitionActivity))):
if outcome == 'next_level':
if self._next_game_instance is None:
@@ -295,7 +294,7 @@ class CoopSession(Session):
# Special case: if we're coming from a joining-activity
# and will be going into onslaught-training, show the
# tutorial first.
- if (isinstance(activity, JoiningActivity)
+ if (isinstance(activity, JoinActivity)
and self.campaign_state['level'] == 'Onslaught Training'
and not app.kiosk_mode):
if self._tutorial_activity is None:
diff --git a/assets/src/ba_data/python/ba/_teamssession.py b/assets/src/ba_data/python/ba/_dualteamsession.py
similarity index 77%
rename from assets/src/ba_data/python/ba/_teamssession.py
rename to assets/src/ba_data/python/ba/_dualteamsession.py
index 4b274e41..a011e678 100644
--- a/assets/src/ba_data/python/ba/_teamssession.py
+++ b/assets/src/ba_data/python/ba/_dualteamsession.py
@@ -24,13 +24,13 @@ from __future__ import annotations
from typing import TYPE_CHECKING
import _ba
-from ba import _teambasesession
+from ba import _multiteamsession
if TYPE_CHECKING:
import ba
-class TeamsSession(_teambasesession.TeamBaseSession):
+class DualTeamSession(_multiteamsession.MultiTeamSession):
"""ba.Session type for teams mode games.
Category: Gameplay Classes
@@ -46,15 +46,16 @@ class TeamsSession(_teambasesession.TeamBaseSession):
def _switch_to_score_screen(self, results: ba.TeamGameResults) -> None:
# pylint: disable=cyclic-import
- from bastd.activity import drawscreen
- from bastd.activity import dualteamscorescreen
- from bastd.activity import multiteamendscreen
+ from bastd.activity.drawscore import DrawScoreScreenActivity
+ from bastd.activity.dualteamscore import (
+ TeamVictoryScoreScreenActivity)
+ from bastd.activity.multiteamvictory import (
+ TeamSeriesVictoryScoreScreenActivity)
winners = results.get_winners()
# If everyone has the same score, call it a draw.
if len(winners) < 2:
- self.set_activity(
- _ba.new_activity(drawscreen.DrawScoreScreenActivity))
+ self.set_activity(_ba.new_activity(DrawScoreScreenActivity))
else:
winner = winners[0].teams[0]
winner.sessiondata['score'] += 1
@@ -63,12 +64,9 @@ class TeamsSession(_teambasesession.TeamBaseSession):
if winner.sessiondata['score'] >= (self._series_length -
1) / 2 + 1:
self.set_activity(
- _ba.new_activity(
- multiteamendscreen.
- TeamSeriesVictoryScoreScreenActivity,
- {'winner': winner}))
+ _ba.new_activity(TeamSeriesVictoryScoreScreenActivity,
+ {'winner': winner}))
else:
self.set_activity(
- _ba.new_activity(
- dualteamscorescreen.TeamVictoryScoreScreenActivity,
- {'winner': winner}))
+ _ba.new_activity(TeamVictoryScoreScreenActivity,
+ {'winner': winner}))
diff --git a/assets/src/ba_data/python/ba/_freeforallsession.py b/assets/src/ba_data/python/ba/_freeforallsession.py
index eb9db6b8..89c5c5c1 100644
--- a/assets/src/ba_data/python/ba/_freeforallsession.py
+++ b/assets/src/ba_data/python/ba/_freeforallsession.py
@@ -25,14 +25,14 @@ from __future__ import annotations
from typing import TYPE_CHECKING
import _ba
-from ba._teambasesession import TeamBaseSession
+from ba._multiteamsession import MultiTeamSession
if TYPE_CHECKING:
from typing import Dict
import ba
-class FreeForAllSession(TeamBaseSession):
+class FreeForAllSession(MultiTeamSession):
"""ba.Session type for free-for-all mode games.
Category: Gameplay Classes
@@ -70,10 +70,10 @@ class FreeForAllSession(TeamBaseSession):
def _switch_to_score_screen(self, results: ba.TeamGameResults) -> None:
# pylint: disable=cyclic-import
- from bastd.activity.drawscreen import DrawScoreScreenActivity
- from bastd.activity.multiteamendscreen import (
+ from bastd.activity.drawscore import DrawScoreScreenActivity
+ from bastd.activity.multiteamvictory import (
TeamSeriesVictoryScoreScreenActivity)
- from bastd.activity.freeforallendscreen import (
+ from bastd.activity.freeforallvictory import (
FreeForAllVictoryScoreScreenActivity)
winners = results.get_winners()
diff --git a/assets/src/ba_data/python/ba/_gameactivity.py b/assets/src/ba_data/python/ba/_gameactivity.py
index f5a7f7f6..4ee3342c 100644
--- a/assets/src/ba_data/python/ba/_gameactivity.py
+++ b/assets/src/ba_data/python/ba/_gameactivity.py
@@ -289,10 +289,10 @@ class GameActivity(Activity):
@classmethod
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
"""Return whether this game supports the provided Session type."""
- from ba._teambasesession import TeamBaseSession
+ from ba._multiteamsession import MultiTeamSession
# By default, games support any versus mode
- return issubclass(sessiontype, TeamBaseSession)
+ return issubclass(sessiontype, MultiTeamSession)
def __init__(self, settings: Dict[str, Any]):
"""Instantiate the Activity."""
@@ -550,7 +550,7 @@ class GameActivity(Activity):
def _game_begin_analytics(self) -> None:
"""Update analytics events for the start of the game."""
# pylint: disable=too-many-branches
- from ba._teamssession import TeamsSession
+ from ba._dualteamsession import DualTeamSession
from ba._freeforallsession import FreeForAllSession
from ba._coopsession import CoopSession
session = self.session
@@ -573,7 +573,7 @@ class GameActivity(Activity):
elif len(self.players) >= 4:
_ba.increment_analytics_count(
'Co-op round start 4+ human players')
- elif isinstance(session, TeamsSession):
+ elif isinstance(session, DualTeamSession):
_ba.set_analytics_screen('Teams Game: ' + self.get_name())
_ba.increment_analytics_count('Teams round start')
if len(self.players) == 1:
diff --git a/assets/src/ba_data/python/ba/_teambasesession.py b/assets/src/ba_data/python/ba/_multiteamsession.py
similarity index 97%
rename from assets/src/ba_data/python/ba/_teambasesession.py
rename to assets/src/ba_data/python/ba/_multiteamsession.py
index c01b995c..fe8545fe 100644
--- a/assets/src/ba_data/python/ba/_teambasesession.py
+++ b/assets/src/ba_data/python/ba/_multiteamsession.py
@@ -36,8 +36,8 @@ DEFAULT_TEAM_COLORS = ((0.1, 0.25, 1.0), (1.0, 0.25, 0.2))
DEFAULT_TEAM_NAMES = ("Blue", "Red")
-class TeamBaseSession(Session):
- """Common base class for ba.TeamsSession and ba.FreeForAllSession.
+class MultiTeamSession(Session):
+ """Common base class for ba.DualTeamSession and ba.FreeForAllSession.
Category: Gameplay Classes
@@ -54,7 +54,7 @@ class TeamBaseSession(Session):
"""Set up playlists and launches a ba.Activity to accept joiners."""
# pylint: disable=cyclic-import
from ba import _playlist
- from bastd.activity import multiteamjoinscreen
+ from bastd.activity.multiteamjoin import MultiTeamJoinActivity
app = _ba.app
cfg = app.config
@@ -133,8 +133,7 @@ class TeamBaseSession(Session):
self._instantiate_next_game()
# Start in our custom join screen.
- self.set_activity(
- _ba.new_activity(multiteamjoinscreen.TeamJoiningActivity))
+ self.set_activity(_ba.new_activity(MultiTeamJoinActivity))
def get_ffa_series_length(self) -> int:
"""Return free-for-all series length."""
@@ -174,7 +173,7 @@ class TeamBaseSession(Session):
# pylint: disable=cyclic-import
from ba import _error
from bastd.tutorial import TutorialActivity
- from bastd.activity.multiteamendscreen import (
+ from bastd.activity.multiteamvictory import (
TeamSeriesVictoryScoreScreenActivity)
from ba import _activitytypes
@@ -195,7 +194,7 @@ class TeamBaseSession(Session):
# into a round.
elif isinstance(
activity,
- (_activitytypes.JoiningActivity, _activitytypes.TransitionActivity,
+ (_activitytypes.JoinActivity, _activitytypes.TransitionActivity,
_activitytypes.ScoreScreenActivity)):
# If we're coming from a series-end activity, reset scores.
diff --git a/assets/src/ba_data/python/ba/_server.py b/assets/src/ba_data/python/ba/_server.py
index b2c8f8f8..0a72caa9 100644
--- a/assets/src/ba_data/python/ba/_server.py
+++ b/assets/src/ba_data/python/ba/_server.py
@@ -143,7 +143,7 @@ def launch_server_session() -> None:
"""Kick off a host-session based on the current server config."""
from ba._netutils import serverget
from ba import _freeforallsession
- from ba import _teamssession
+ from ba import _dualteamsession
app = _ba.app
servercfg = copy.deepcopy(app.server_config)
appcfg = app.config
@@ -155,7 +155,7 @@ def launch_server_session() -> None:
if session_type_name == 'ffa':
sessiontype = _freeforallsession.FreeForAllSession
elif session_type_name == 'teams':
- sessiontype = _teamssession.TeamsSession
+ sessiontype = _dualteamsession.DualTeamSession
else:
raise Exception('invalid session_type value: ' + session_type_name)
diff --git a/assets/src/ba_data/python/ba/_session.py b/assets/src/ba_data/python/ba/_session.py
index 0b620ccf..2c379a7e 100644
--- a/assets/src/ba_data/python/ba/_session.py
+++ b/assets/src/ba_data/python/ba/_session.py
@@ -38,7 +38,7 @@ class Session:
category: Gameplay Classes
- Examples of sessions are ba.FreeForAllSession, ba.TeamsSession, and
+ Examples of sessions are ba.FreeForAllSession, ba.DualTeamSession, and
ba.CoopSession.
A Session is responsible for wrangling and transitioning between various
diff --git a/assets/src/ba_data/python/ba/_teamgame.py b/assets/src/ba_data/python/ba/_teamgame.py
index 427edf12..344e22f9 100644
--- a/assets/src/ba_data/python/ba/_teamgame.py
+++ b/assets/src/ba_data/python/ba/_teamgame.py
@@ -28,7 +28,7 @@ import _ba
from ba._freeforallsession import FreeForAllSession
from ba._gameactivity import GameActivity
from ba._gameresults import TeamGameResults
-from ba._teamssession import TeamsSession
+from ba._dualteamsession import DualTeamSession
if TYPE_CHECKING:
from typing import Any, Dict, Type, Sequence
@@ -49,10 +49,10 @@ class TeamGameActivity(GameActivity):
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
"""
Class method override;
- returns True for ba.TeamsSessions and ba.FreeForAllSessions;
+ returns True for ba.DualTeamSessions and ba.FreeForAllSessions;
False otherwise.
"""
- return (issubclass(sessiontype, TeamsSession)
+ return (issubclass(sessiontype, DualTeamSession)
or issubclass(sessiontype, FreeForAllSession))
def __init__(self, settings: Dict[str, Any]):
@@ -95,7 +95,7 @@ class TeamGameActivity(GameActivity):
if len(self.players) >= 2:
from ba import _achievement
_achievement.award_local_achievement('Free Loader')
- elif isinstance(self.session, TeamsSession):
+ elif isinstance(self.session, DualTeamSession):
if len(self.players) >= 4:
from ba import _achievement
_achievement.award_local_achievement('Team Player')
@@ -116,7 +116,7 @@ class TeamGameActivity(GameActivity):
"""
if position is None:
# In teams-mode get our team-start-location.
- if isinstance(self.session, TeamsSession):
+ if isinstance(self.session, DualTeamSession):
position = (self.map.get_start_position(player.team.get_id()))
else:
# Otherwise do free-for-all spawn locations.
@@ -137,7 +137,7 @@ class TeamGameActivity(GameActivity):
"""
# pylint: disable=arguments-differ
from ba._coopsession import CoopSession
- from ba._teambasesession import TeamBaseSession
+ from ba._multiteamsession import MultiTeamSession
from ba._general import Call
# Announce win (but only for the first finish() call)
@@ -148,7 +148,7 @@ class TeamGameActivity(GameActivity):
super().end(results, delay=2.0 + announce_delay, force=force)
# Need to do this *after* end end call so that results is valid.
assert isinstance(results, TeamGameResults)
- if do_announce and isinstance(session, TeamBaseSession):
+ if do_announce and isinstance(session, MultiTeamSession):
session.announce_game_results(
self,
results,
diff --git a/assets/src/ba_data/python/ba/internal.py b/assets/src/ba_data/python/ba/internal.py
index 2bb83a15..6ff81f15 100644
--- a/assets/src/ba_data/python/ba/internal.py
+++ b/assets/src/ba_data/python/ba/internal.py
@@ -40,7 +40,7 @@ from ba._account import (on_account_state_changed,
ensure_have_account_player_profile,
get_purchased_icons, get_cached_league_rank_data,
get_league_rank_points, cache_league_rank_data)
-from ba._activitytypes import JoiningActivity, ScoreScreenActivity
+from ba._activitytypes import JoinActivity, ScoreScreenActivity
from ba._achievement import (get_achievement, set_completed_achievements,
display_achievement_banner,
get_achievements_for_coop_level)
@@ -52,7 +52,7 @@ from ba._campaign import get_campaign
from ba._messages import PlayerProfilesChangedMessage
from ba._meta import get_game_types
from ba._modutils import show_user_scripts
-from ba._teambasesession import DEFAULT_TEAM_COLORS, DEFAULT_TEAM_NAMES
+from ba._multiteamsession import DEFAULT_TEAM_COLORS, DEFAULT_TEAM_NAMES
from ba._music import (have_music_player, music_volume_changed, do_play_music,
get_soundtrack_entry_name, get_soundtrack_entry_type,
get_music_player, set_music_play_mode,
diff --git a/assets/src/ba_data/python/bastd/activity/coopjoinscreen.py b/assets/src/ba_data/python/bastd/activity/coopjoin.py
similarity index 99%
rename from assets/src/ba_data/python/bastd/activity/coopjoinscreen.py
rename to assets/src/ba_data/python/bastd/activity/coopjoin.py
index e703bff2..232354e0 100644
--- a/assets/src/ba_data/python/bastd/activity/coopjoinscreen.py
+++ b/assets/src/ba_data/python/bastd/activity/coopjoin.py
@@ -26,13 +26,13 @@ from typing import TYPE_CHECKING
import _ba
import ba
-from ba.internal import JoiningActivity
+from ba.internal import JoinActivity
if TYPE_CHECKING:
from typing import Any, Dict, List, Optional, Sequence, Union
-class CoopJoiningActivity(JoiningActivity):
+class CoopJoinActivity(JoinActivity):
"""Join-screen for co-op mode."""
def __init__(self, settings: Dict[str, Any]):
diff --git a/assets/src/ba_data/python/bastd/activity/coopscorescreen.py b/assets/src/ba_data/python/bastd/activity/coopscore.py
similarity index 100%
rename from assets/src/ba_data/python/bastd/activity/coopscorescreen.py
rename to assets/src/ba_data/python/bastd/activity/coopscore.py
diff --git a/assets/src/ba_data/python/bastd/activity/drawscreen.py b/assets/src/ba_data/python/bastd/activity/drawscore.py
similarity index 94%
rename from assets/src/ba_data/python/bastd/activity/drawscreen.py
rename to assets/src/ba_data/python/bastd/activity/drawscore.py
index e97ac08c..e2fc96cd 100644
--- a/assets/src/ba_data/python/bastd/activity/drawscreen.py
+++ b/assets/src/ba_data/python/bastd/activity/drawscore.py
@@ -25,13 +25,13 @@ from __future__ import annotations
from typing import TYPE_CHECKING
import ba
-from bastd.activity.teamsscorescreen import TeamsScoreScreenActivity
+from bastd.activity.multiteamscore import MultiTeamScoreScreenActivity
if TYPE_CHECKING:
from typing import Any, Dict
-class DrawScoreScreenActivity(TeamsScoreScreenActivity):
+class DrawScoreScreenActivity(MultiTeamScoreScreenActivity):
"""Score screen shown after a draw."""
def __init__(self, settings: Dict[str, Any]):
diff --git a/assets/src/ba_data/python/bastd/activity/dualteamscorescreen.py b/assets/src/ba_data/python/bastd/activity/dualteamscore.py
similarity index 96%
rename from assets/src/ba_data/python/bastd/activity/dualteamscorescreen.py
rename to assets/src/ba_data/python/bastd/activity/dualteamscore.py
index 851e98c3..24387dad 100644
--- a/assets/src/ba_data/python/bastd/activity/dualteamscorescreen.py
+++ b/assets/src/ba_data/python/bastd/activity/dualteamscore.py
@@ -25,14 +25,14 @@ from __future__ import annotations
from typing import TYPE_CHECKING
import ba
-from bastd.activity.teamsscorescreen import TeamsScoreScreenActivity
+from bastd.activity.multiteamscore import MultiTeamScoreScreenActivity
from bastd.actor.zoomtext import ZoomText
if TYPE_CHECKING:
from typing import Any, Dict
-class TeamVictoryScoreScreenActivity(TeamsScoreScreenActivity):
+class TeamVictoryScoreScreenActivity(MultiTeamScoreScreenActivity):
"""Scorescreen between rounds of a dual-team session."""
def __init__(self, settings: Dict[str, Any]):
@@ -52,7 +52,7 @@ class TeamVictoryScoreScreenActivity(TeamsScoreScreenActivity):
# Usually we say 'Best of 7', but if the language prefers we can say
# 'First to 4'.
session = self.session
- assert isinstance(session, ba.TeamBaseSession)
+ assert isinstance(session, ba.MultiTeamSession)
if get_resource('bestOfUseFirstToInstead'):
best_txt = ba.Lstr(resource='firstToSeriesText',
subs=[('${COUNT}',
diff --git a/assets/src/ba_data/python/bastd/activity/freeforallendscreen.py b/assets/src/ba_data/python/bastd/activity/freeforallvictory.py
similarity index 98%
rename from assets/src/ba_data/python/bastd/activity/freeforallendscreen.py
rename to assets/src/ba_data/python/bastd/activity/freeforallvictory.py
index 0c870ae7..d20481e1 100644
--- a/assets/src/ba_data/python/bastd/activity/freeforallendscreen.py
+++ b/assets/src/ba_data/python/bastd/activity/freeforallvictory.py
@@ -25,14 +25,14 @@ from __future__ import annotations
from typing import TYPE_CHECKING
import ba
-from bastd.activity.teamsscorescreen import TeamsScoreScreenActivity
+from bastd.activity.multiteamscore import MultiTeamScoreScreenActivity
if TYPE_CHECKING:
from typing import Any, Dict, Optional, Set
-class FreeForAllVictoryScoreScreenActivity(TeamsScoreScreenActivity):
- """Score screen shown at the end of a free-for-all series."""
+class FreeForAllVictoryScoreScreenActivity(MultiTeamScoreScreenActivity):
+ """Score screen shown at after free-for-all rounds."""
def __init__(self, settings: Dict[str, Any]):
super().__init__(settings=settings)
diff --git a/assets/src/ba_data/python/bastd/activity/multiteamjoinscreen.py b/assets/src/ba_data/python/bastd/activity/multiteamjoin.py
similarity index 94%
rename from assets/src/ba_data/python/bastd/activity/multiteamjoinscreen.py
rename to assets/src/ba_data/python/bastd/activity/multiteamjoin.py
index 1725892b..08b10b71 100644
--- a/assets/src/ba_data/python/bastd/activity/multiteamjoinscreen.py
+++ b/assets/src/ba_data/python/bastd/activity/multiteamjoin.py
@@ -25,14 +25,14 @@ from __future__ import annotations
from typing import TYPE_CHECKING
import ba
-from ba.internal import JoiningActivity
+from ba.internal import JoinActivity
from bastd.actor.text import Text
if TYPE_CHECKING:
from typing import Any, Dict, Optional
-class TeamJoiningActivity(JoiningActivity):
+class MultiTeamJoinActivity(JoinActivity):
"""Join screen for teams sessions."""
def __init__(self, settings: Dict[str, Any]):
@@ -41,12 +41,12 @@ class TeamJoiningActivity(JoiningActivity):
def on_transition_in(self) -> None:
from bastd.actor.controlsguide import ControlsGuide
- from ba import TeamsSession
+ from ba import DualTeamSession
super().on_transition_in()
ControlsGuide(delay=1.0).autoretain()
session = self.session
- assert isinstance(session, ba.TeamBaseSession)
+ assert isinstance(session, ba.MultiTeamSession)
# Show info about the next up game.
self._next_up_text = Text(ba.Lstr(
@@ -65,7 +65,7 @@ class TeamJoiningActivity(JoiningActivity):
# In teams mode, show our two team names.
# FIXME: Lobby should handle this.
- if isinstance(ba.getsession(), TeamsSession):
+ if isinstance(ba.getsession(), DualTeamSession):
team_names = [team.name for team in ba.getsession().teams]
team_colors = [
tuple(team.color) + (0.5, ) for team in ba.getsession().teams
diff --git a/assets/src/ba_data/python/bastd/activity/teamsscorescreen.py b/assets/src/ba_data/python/bastd/activity/multiteamscore.py
similarity index 98%
rename from assets/src/ba_data/python/bastd/activity/teamsscorescreen.py
rename to assets/src/ba_data/python/bastd/activity/multiteamscore.py
index 93e46152..d32cedfe 100644
--- a/assets/src/ba_data/python/bastd/activity/teamsscorescreen.py
+++ b/assets/src/ba_data/python/bastd/activity/multiteamscore.py
@@ -32,7 +32,7 @@ if TYPE_CHECKING:
from ba import PlayerRecord
-class TeamsScoreScreenActivity(ScoreScreenActivity):
+class MultiTeamScoreScreenActivity(ScoreScreenActivity):
"""Base class for score screens."""
def __init__(self, settings: Dict[str, Any]):
@@ -46,7 +46,7 @@ class TeamsScoreScreenActivity(ScoreScreenActivity):
from bastd.actor.text import Text
super().on_begin()
session = self.session
- if self._show_up_next and isinstance(session, ba.TeamBaseSession):
+ if self._show_up_next and isinstance(session, ba.MultiTeamSession):
txt = ba.Lstr(value='${A} ${B}',
subs=[
('${A}',
@@ -165,7 +165,7 @@ class TeamsScoreScreenActivity(ScoreScreenActivity):
transition_delay=tdelay).autoretain()
session = self.session
- assert isinstance(session, ba.TeamBaseSession)
+ assert isinstance(session, ba.MultiTeamSession)
tval = ba.Lstr(resource='gameLeadersText',
subs=[('${COUNT}', str(session.get_game_number()))])
_txt(180,
diff --git a/assets/src/ba_data/python/bastd/activity/multiteamendscreen.py b/assets/src/ba_data/python/bastd/activity/multiteamvictory.py
similarity index 98%
rename from assets/src/ba_data/python/bastd/activity/multiteamendscreen.py
rename to assets/src/ba_data/python/bastd/activity/multiteamvictory.py
index f3f399c9..74874dee 100644
--- a/assets/src/ba_data/python/bastd/activity/multiteamendscreen.py
+++ b/assets/src/ba_data/python/bastd/activity/multiteamvictory.py
@@ -25,13 +25,13 @@ from __future__ import annotations
from typing import TYPE_CHECKING
import ba
-from bastd.activity.teamsscorescreen import TeamsScoreScreenActivity
+from bastd.activity.multiteamscore import MultiTeamScoreScreenActivity
if TYPE_CHECKING:
from typing import Any, Dict, List, Tuple, Optional
-class TeamSeriesVictoryScoreScreenActivity(TeamsScoreScreenActivity):
+class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity):
"""Final score screen for a team series."""
def __init__(self, settings: Dict[str, Any]):
@@ -104,7 +104,7 @@ class TeamSeriesVictoryScoreScreenActivity(TeamsScoreScreenActivity):
str(session.get_ffa_series_length()))]))
])
else:
- assert isinstance(session, ba.TeamBaseSession)
+ assert isinstance(session, ba.MultiTeamSession)
# Some languages may prefer to always show 'first to X' instead of
# 'best of X'.
diff --git a/assets/src/ba_data/python/bastd/actor/multiteamvictory.py b/assets/src/ba_data/python/bastd/actor/multiteamvictory.py
new file mode 100644
index 00000000..74874dee
--- /dev/null
+++ b/assets/src/ba_data/python/bastd/actor/multiteamvictory.py
@@ -0,0 +1,392 @@
+# Copyright (c) 2011-2020 Eric Froemling
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+# -----------------------------------------------------------------------------
+"""Functionality related to the final screen in multi-teams sessions."""
+
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+import ba
+from bastd.activity.multiteamscore import MultiTeamScoreScreenActivity
+
+if TYPE_CHECKING:
+ from typing import Any, Dict, List, Tuple, Optional
+
+
+class TeamSeriesVictoryScoreScreenActivity(MultiTeamScoreScreenActivity):
+ """Final score screen for a team series."""
+
+ def __init__(self, settings: Dict[str, Any]):
+ super().__init__(settings=settings)
+ self._min_view_time = 15.0
+ self._is_ffa = isinstance(self.session, ba.FreeForAllSession)
+ self._allow_server_restart = True
+ self._tips_text = None
+
+ def on_transition_in(self) -> None:
+ # We don't yet want music and whatnot...
+ self.default_music = None
+ self._default_show_tips = False
+ super().on_transition_in()
+
+ def on_begin(self) -> None:
+ # pylint: disable=too-many-branches
+ # pylint: disable=too-many-locals
+ # pylint: disable=too-many-statements
+ from bastd.actor.text import Text
+ from bastd.actor.image import Image
+ from ba.deprecated import get_resource
+ ba.set_analytics_screen('FreeForAll Series Victory Screen' if self.
+ _is_ffa else 'Teams Series Victory Screen')
+ if ba.app.interface_type == 'large':
+ sval = ba.Lstr(resource='pressAnyKeyButtonPlayAgainText')
+ else:
+ sval = ba.Lstr(resource='pressAnyButtonPlayAgainText')
+ self._show_up_next = False
+ self._custom_continue_message = sval
+ super().on_begin()
+ winning_team = self.settings['winner']
+
+ # Pause a moment before playing victory music.
+ ba.timer(0.6, ba.WeakCall(self._play_victory_music))
+ ba.timer(4.4, ba.WeakCall(self._show_winner, self.settings['winner']))
+ ba.timer(4.6, ba.Call(ba.playsound, self._score_display_sound))
+
+ # Score / Name / Player-record.
+ player_entries: List[Tuple[int, str, ba.PlayerRecord]] = []
+
+ # Note: for ffa, exclude players who haven't entered the game yet.
+ if self._is_ffa:
+ for _pkey, prec in self.stats.get_records().items():
+ if prec.player.in_game:
+ player_entries.append(
+ (prec.player.team.sessiondata['score'],
+ prec.get_name(full=True), prec))
+ player_entries.sort(reverse=True, key=lambda x: x[0])
+ else:
+ for _pkey, prec in self.stats.get_records().items():
+ player_entries.append((prec.score, prec.name_full, prec))
+ player_entries.sort(reverse=True, key=lambda x: x[0])
+
+ ts_height = 300.0
+ ts_h_offs = -390.0
+ tval = 6.4
+ t_incr = 0.12
+
+ always_use_first_to = get_resource('bestOfUseFirstToInstead')
+
+ session = self.session
+ if self._is_ffa:
+ assert isinstance(session, ba.FreeForAllSession)
+ txt = ba.Lstr(
+ value='${A}:',
+ subs=[('${A}',
+ ba.Lstr(resource='firstToFinalText',
+ subs=[('${COUNT}',
+ str(session.get_ffa_series_length()))]))
+ ])
+ else:
+ assert isinstance(session, ba.MultiTeamSession)
+
+ # Some languages may prefer to always show 'first to X' instead of
+ # 'best of X'.
+ # FIXME: This will affect all clients connected to us even if
+ # they're not using this language. Should try to come up
+ # with a wording that works everywhere.
+ if always_use_first_to:
+ txt = ba.Lstr(
+ value='${A}:',
+ subs=[
+ ('${A}',
+ ba.Lstr(resource='firstToFinalText',
+ subs=[
+ ('${COUNT}',
+ str(session.get_series_length() / 2 + 1))
+ ]))
+ ])
+ else:
+ txt = ba.Lstr(
+ value='${A}:',
+ subs=[('${A}',
+ ba.Lstr(resource='bestOfFinalText',
+ subs=[('${COUNT}',
+ str(session.get_series_length()))]))
+ ])
+
+ Text(txt,
+ v_align=Text.VAlign.CENTER,
+ maxwidth=300,
+ color=(0.5, 0.5, 0.5, 1.0),
+ position=(0, 220),
+ scale=1.2,
+ transition=Text.Transition.IN_TOP_SLOW,
+ h_align=Text.HAlign.CENTER,
+ transition_delay=t_incr * 4).autoretain()
+
+ win_score = (session.get_series_length() - 1) / 2 + 1
+ lose_score = 0
+ for team in self.teams:
+ if team.sessiondata['score'] != win_score:
+ lose_score = team.sessiondata['score']
+
+ if not self._is_ffa:
+ Text(ba.Lstr(resource='gamesToText',
+ subs=[('${WINCOUNT}', str(win_score)),
+ ('${LOSECOUNT}', str(lose_score))]),
+ color=(0.5, 0.5, 0.5, 1.0),
+ maxwidth=160,
+ v_align=Text.VAlign.CENTER,
+ position=(0, -215),
+ scale=1.8,
+ transition=Text.Transition.IN_LEFT,
+ h_align=Text.HAlign.CENTER,
+ transition_delay=4.8 + t_incr * 4).autoretain()
+
+ if self._is_ffa:
+ v_extra = 120
+ else:
+ v_extra = 0
+
+ mvp: Optional[ba.PlayerRecord] = None
+ mvp_name: Optional[str] = None
+
+ # Show game MVP.
+ if not self._is_ffa:
+ mvp, mvp_name = None, None
+ for entry in player_entries:
+ if entry[2].team == winning_team:
+ mvp = entry[2]
+ mvp_name = entry[1]
+ break
+ if mvp is not None:
+ Text(ba.Lstr(resource='mostValuablePlayerText'),
+ color=(0.5, 0.5, 0.5, 1.0),
+ v_align=Text.VAlign.CENTER,
+ maxwidth=300,
+ position=(180, ts_height / 2 + 15),
+ transition=Text.Transition.IN_LEFT,
+ h_align=Text.HAlign.LEFT,
+ transition_delay=tval).autoretain()
+ tval += 4 * t_incr
+
+ Image(mvp.get_icon(),
+ position=(230, ts_height / 2 - 55 + 14 - 5),
+ scale=(70, 70),
+ transition=Image.Transition.IN_LEFT,
+ transition_delay=tval).autoretain()
+ Text(ba.Lstr(value=mvp_name),
+ position=(280, ts_height / 2 - 55 + 15 - 5),
+ h_align=Text.HAlign.LEFT,
+ v_align=Text.VAlign.CENTER,
+ maxwidth=170,
+ scale=1.3,
+ color=ba.safecolor(mvp.team.color + (1, )),
+ transition=Text.Transition.IN_LEFT,
+ transition_delay=tval).autoretain()
+ tval += 4 * t_incr
+
+ # Most violent.
+ most_kills = 0
+ for entry in player_entries:
+ if entry[2].kill_count >= most_kills:
+ mvp = entry[2]
+ mvp_name = entry[1]
+ most_kills = entry[2].kill_count
+ if mvp is not None:
+ Text(ba.Lstr(resource='mostViolentPlayerText'),
+ color=(0.5, 0.5, 0.5, 1.0),
+ v_align=Text.VAlign.CENTER,
+ maxwidth=300,
+ position=(180, ts_height / 2 - 150 + v_extra + 15),
+ transition=Text.Transition.IN_LEFT,
+ h_align=Text.HAlign.LEFT,
+ transition_delay=tval).autoretain()
+ Text(ba.Lstr(value='(${A})',
+ subs=[('${A}',
+ ba.Lstr(resource='killsTallyText',
+ subs=[('${COUNT}', str(most_kills))]))
+ ]),
+ position=(260, ts_height / 2 - 150 - 15 + v_extra),
+ color=(0.3, 0.3, 0.3, 1.0),
+ scale=0.6,
+ h_align=Text.HAlign.LEFT,
+ transition=Text.Transition.IN_LEFT,
+ transition_delay=tval).autoretain()
+ tval += 4 * t_incr
+
+ Image(mvp.get_icon(),
+ position=(233, ts_height / 2 - 150 - 30 - 46 + 25 + v_extra),
+ scale=(50, 50),
+ transition=Image.Transition.IN_LEFT,
+ transition_delay=tval).autoretain()
+ Text(ba.Lstr(value=mvp_name),
+ position=(270, ts_height / 2 - 150 - 30 - 36 + v_extra + 15),
+ h_align=Text.HAlign.LEFT,
+ v_align=Text.VAlign.CENTER,
+ maxwidth=180,
+ color=ba.safecolor(mvp.team.color + (1, )),
+ transition=Text.Transition.IN_LEFT,
+ transition_delay=tval).autoretain()
+ tval += 4 * t_incr
+
+ # Most killed.
+ most_killed = 0
+ mkp, mkp_name = None, None
+ for entry in player_entries:
+ if entry[2].killed_count >= most_killed:
+ mkp = entry[2]
+ mkp_name = entry[1]
+ most_killed = entry[2].killed_count
+ if mkp is not None:
+ Text(ba.Lstr(resource='mostViolatedPlayerText'),
+ color=(0.5, 0.5, 0.5, 1.0),
+ v_align=Text.VAlign.CENTER,
+ maxwidth=300,
+ position=(180, ts_height / 2 - 300 + v_extra + 15),
+ transition=Text.Transition.IN_LEFT,
+ h_align=Text.HAlign.LEFT,
+ transition_delay=tval).autoretain()
+ Text(ba.Lstr(value='(${A})',
+ subs=[('${A}',
+ ba.Lstr(resource='deathsTallyText',
+ subs=[('${COUNT}', str(most_killed))]))
+ ]),
+ position=(260, ts_height / 2 - 300 - 15 + v_extra),
+ h_align=Text.HAlign.LEFT,
+ scale=0.6,
+ color=(0.3, 0.3, 0.3, 1.0),
+ transition=Text.Transition.IN_LEFT,
+ transition_delay=tval).autoretain()
+ tval += 4 * t_incr
+ Image(mkp.get_icon(),
+ position=(233, ts_height / 2 - 300 - 30 - 46 + 25 + v_extra),
+ scale=(50, 50),
+ transition=Image.Transition.IN_LEFT,
+ transition_delay=tval).autoretain()
+ Text(ba.Lstr(value=mkp_name),
+ position=(270, ts_height / 2 - 300 - 30 - 36 + v_extra + 15),
+ h_align=Text.HAlign.LEFT,
+ v_align=Text.VAlign.CENTER,
+ color=ba.safecolor(mkp.team.color + (1, )),
+ maxwidth=180,
+ transition=Text.Transition.IN_LEFT,
+ transition_delay=tval).autoretain()
+ tval += 4 * t_incr
+
+ # Now show individual scores.
+ tdelay = tval
+ Text(ba.Lstr(resource='finalScoresText'),
+ color=(0.5, 0.5, 0.5, 1.0),
+ position=(ts_h_offs, ts_height / 2),
+ transition=Text.Transition.IN_RIGHT,
+ transition_delay=tdelay).autoretain()
+ tdelay += 4 * t_incr
+
+ v_offs = 0.0
+ tdelay += len(player_entries) * 8 * t_incr
+ for _score, name, prec in player_entries:
+ tdelay -= 4 * t_incr
+ v_offs -= 40
+ Text(str(prec.team.sessiondata['score'])
+ if self._is_ffa else str(prec.score),
+ color=(0.5, 0.5, 0.5, 1.0),
+ position=(ts_h_offs + 230, ts_height / 2 + v_offs),
+ h_align=Text.HAlign.RIGHT,
+ transition=Text.Transition.IN_RIGHT,
+ transition_delay=tdelay).autoretain()
+ tdelay -= 4 * t_incr
+
+ Image(prec.get_icon(),
+ position=(ts_h_offs - 72, ts_height / 2 + v_offs + 15),
+ scale=(30, 30),
+ transition=Image.Transition.IN_LEFT,
+ transition_delay=tdelay).autoretain()
+ Text(ba.Lstr(value=name),
+ position=(ts_h_offs - 50, ts_height / 2 + v_offs + 15),
+ h_align=Text.HAlign.LEFT,
+ v_align=Text.VAlign.CENTER,
+ maxwidth=180,
+ color=ba.safecolor(prec.team.color + (1, )),
+ transition=Text.Transition.IN_RIGHT,
+ transition_delay=tdelay).autoretain()
+
+ ba.timer(15.0, ba.WeakCall(self._show_tips))
+
+ def _show_tips(self) -> None:
+ from bastd.actor.tipstext import TipsText
+ self._tips_text = TipsText(offs_y=70)
+
+ def _play_victory_music(self) -> None:
+
+ # Make sure we don't stomp on the next activity's music choice.
+ if not self.is_transitioning_out():
+ ba.setmusic(ba.MusicType.VICTORY)
+
+ def _show_winner(self, team: ba.Team) -> None:
+ from bastd.actor.image import Image
+ from bastd.actor.zoomtext import ZoomText
+ if not self._is_ffa:
+ offs_v = 0.0
+ ZoomText(team.name,
+ position=(0, 97),
+ color=team.color,
+ scale=1.15,
+ jitter=1.0,
+ maxwidth=250).autoretain()
+ else:
+ offs_v = -80.0
+ if len(team.players) == 1:
+ i = Image(team.players[0].get_icon(),
+ position=(0, 143),
+ scale=(100, 100)).autoretain()
+ assert i.node
+ ba.animate(i.node, 'opacity', {0.0: 0.0, 0.25: 1.0})
+ ZoomText(ba.Lstr(
+ value=team.players[0].get_name(full=True, icon=False)),
+ position=(0, 97 + offs_v),
+ color=team.color,
+ scale=1.15,
+ jitter=1.0,
+ maxwidth=250).autoretain()
+
+ s_extra = 1.0 if self._is_ffa else 1.0
+
+ # Some languages say "FOO WINS" differently for teams vs players.
+ if isinstance(self.session, ba.FreeForAllSession):
+ wins_resource = 'seriesWinLine1PlayerText'
+ else:
+ wins_resource = 'seriesWinLine1TeamText'
+ wins_text = ba.Lstr(resource=wins_resource)
+
+ # Temp - if these come up as the english default, fall-back to the
+ # unified old form which is more likely to be translated.
+ ZoomText(wins_text,
+ position=(0, -10 + offs_v),
+ color=team.color,
+ scale=0.65 * s_extra,
+ jitter=1.0,
+ maxwidth=250).autoretain()
+ ZoomText(ba.Lstr(resource='seriesWinLine2Text'),
+ position=(0, -110 + offs_v),
+ scale=1.0 * s_extra,
+ color=team.color,
+ jitter=1.0,
+ maxwidth=250).autoretain()
diff --git a/assets/src/ba_data/python/bastd/actor/respawnicon.py b/assets/src/ba_data/python/bastd/actor/respawnicon.py
index b755a025..a6d91b74 100644
--- a/assets/src/ba_data/python/bastd/actor/respawnicon.py
+++ b/assets/src/ba_data/python/bastd/actor/respawnicon.py
@@ -135,7 +135,7 @@ class RespawnIcon:
def _get_context(self, player: ba.Player) -> Tuple[bool, float, Dict]:
"""Return info on where we should be shown and stored."""
activity = ba.getactivity()
- if isinstance(ba.getsession(), ba.TeamsSession):
+ if isinstance(ba.getsession(), ba.DualTeamSession):
on_right = player.team.get_id() % 2 == 1
# Store a list of icons in the team.
diff --git a/assets/src/ba_data/python/bastd/game/assault.py b/assets/src/ba_data/python/bastd/game/assault.py
index 4863759d..110417e3 100644
--- a/assets/src/ba_data/python/bastd/game/assault.py
+++ b/assets/src/ba_data/python/bastd/game/assault.py
@@ -49,7 +49,7 @@ class AssaultGame(ba.TeamGameActivity):
@classmethod
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
- return issubclass(sessiontype, ba.TeamsSession)
+ return issubclass(sessiontype, ba.DualTeamSession)
@classmethod
def get_supported_maps(cls, sessiontype: Type[ba.Session]) -> List[str]:
diff --git a/assets/src/ba_data/python/bastd/game/capturetheflag.py b/assets/src/ba_data/python/bastd/game/capturetheflag.py
index c123eaa7..1c53c554 100644
--- a/assets/src/ba_data/python/bastd/game/capturetheflag.py
+++ b/assets/src/ba_data/python/bastd/game/capturetheflag.py
@@ -91,7 +91,7 @@ class CaptureTheFlagGame(ba.TeamGameActivity):
@classmethod
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
- return issubclass(sessiontype, ba.TeamsSession)
+ return issubclass(sessiontype, ba.DualTeamSession)
@classmethod
def get_supported_maps(cls, sessiontype: Type[ba.Session]) -> List[str]:
diff --git a/assets/src/ba_data/python/bastd/game/conquest.py b/assets/src/ba_data/python/bastd/game/conquest.py
index f7430357..79b86368 100644
--- a/assets/src/ba_data/python/bastd/game/conquest.py
+++ b/assets/src/ba_data/python/bastd/game/conquest.py
@@ -71,7 +71,7 @@ class ConquestGame(ba.TeamGameActivity):
@classmethod
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
- return issubclass(sessiontype, ba.TeamsSession)
+ return issubclass(sessiontype, ba.DualTeamSession)
@classmethod
def get_supported_maps(cls, sessiontype: Type[ba.Session]) -> List[str]:
diff --git a/assets/src/ba_data/python/bastd/game/deathmatch.py b/assets/src/ba_data/python/bastd/game/deathmatch.py
index 17d6a148..d1c677c4 100644
--- a/assets/src/ba_data/python/bastd/game/deathmatch.py
+++ b/assets/src/ba_data/python/bastd/game/deathmatch.py
@@ -48,7 +48,7 @@ class DeathMatchGame(ba.TeamGameActivity):
@classmethod
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
- return (issubclass(sessiontype, ba.TeamsSession)
+ return (issubclass(sessiontype, ba.DualTeamSession)
or issubclass(sessiontype, ba.FreeForAllSession))
@classmethod
diff --git a/assets/src/ba_data/python/bastd/game/easteregghunt.py b/assets/src/ba_data/python/bastd/game/easteregghunt.py
index 9f1ce390..7407dec3 100644
--- a/assets/src/ba_data/python/bastd/game/easteregghunt.py
+++ b/assets/src/ba_data/python/bastd/game/easteregghunt.py
@@ -63,7 +63,7 @@ class EasterEggHuntGame(ba.TeamGameActivity):
@classmethod
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
return (issubclass(sessiontype, ba.CoopSession)
- or issubclass(sessiontype, ba.TeamsSession)
+ or issubclass(sessiontype, ba.DualTeamSession)
or issubclass(sessiontype, ba.FreeForAllSession))
@classmethod
diff --git a/assets/src/ba_data/python/bastd/game/elimination.py b/assets/src/ba_data/python/bastd/game/elimination.py
index 58c4cf8d..e04382dc 100644
--- a/assets/src/ba_data/python/bastd/game/elimination.py
+++ b/assets/src/ba_data/python/bastd/game/elimination.py
@@ -185,7 +185,7 @@ class EliminationGame(ba.TeamGameActivity):
@classmethod
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
- return (issubclass(sessiontype, ba.TeamsSession)
+ return (issubclass(sessiontype, ba.DualTeamSession)
or issubclass(sessiontype, ba.FreeForAllSession))
@classmethod
@@ -214,7 +214,7 @@ class EliminationGame(ba.TeamGameActivity):
}),
("Epic Mode", {'default': False})] # yapf: disable
- if issubclass(sessiontype, ba.TeamsSession):
+ if issubclass(sessiontype, ba.DualTeamSession):
settings.append(("Solo Mode", {'default': False}))
settings.append(("Balance Total Lives", {'default': False}))
@@ -237,11 +237,11 @@ class EliminationGame(ba.TeamGameActivity):
def get_instance_description(self) -> Union[str, Sequence]:
return 'Last team standing wins.' if isinstance(
- self.session, ba.TeamsSession) else 'Last one standing wins.'
+ self.session, ba.DualTeamSession) else 'Last one standing wins.'
def get_instance_scoreboard_description(self) -> Union[str, Sequence]:
return 'last team standing wins' if isinstance(
- self.session, ba.TeamsSession) else 'last one standing wins'
+ self.session, ba.DualTeamSession) else 'last one standing wins'
def on_transition_in(self) -> None:
self.default_music = (ba.MusicType.EPIC if self.settings['Epic Mode']
@@ -463,7 +463,7 @@ class EliminationGame(ba.TeamGameActivity):
# If balance-team-lives is on, add lives to the smaller team until
# total lives match.
- if (isinstance(self.session, ba.TeamsSession)
+ if (isinstance(self.session, ba.DualTeamSession)
and self.settings['Balance Total Lives']
and self.teams[0].players and self.teams[1].players):
if self._get_total_team_lives(
diff --git a/assets/src/ba_data/python/bastd/game/football.py b/assets/src/ba_data/python/bastd/game/football.py
index a7a9361d..1d0bb698 100644
--- a/assets/src/ba_data/python/bastd/game/football.py
+++ b/assets/src/ba_data/python/bastd/game/football.py
@@ -77,7 +77,7 @@ class FootballTeamGame(ba.TeamGameActivity):
@classmethod
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
# We only support two-team play.
- return issubclass(sessiontype, ba.TeamsSession)
+ return issubclass(sessiontype, ba.DualTeamSession)
@classmethod
def get_description(cls, sessiontype: Type[ba.Session]) -> str:
diff --git a/assets/src/ba_data/python/bastd/game/hockey.py b/assets/src/ba_data/python/bastd/game/hockey.py
index 95705d6d..3af62b0f 100644
--- a/assets/src/ba_data/python/bastd/game/hockey.py
+++ b/assets/src/ba_data/python/bastd/game/hockey.py
@@ -120,7 +120,7 @@ class HockeyGame(ba.TeamGameActivity):
@classmethod
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
- return issubclass(sessiontype, ba.TeamsSession)
+ return issubclass(sessiontype, ba.DualTeamSession)
@classmethod
def get_supported_maps(cls, sessiontype: Type[ba.Session]) -> List[str]:
diff --git a/assets/src/ba_data/python/bastd/game/keepaway.py b/assets/src/ba_data/python/bastd/game/keepaway.py
index f39667eb..56bd5f73 100644
--- a/assets/src/ba_data/python/bastd/game/keepaway.py
+++ b/assets/src/ba_data/python/bastd/game/keepaway.py
@@ -59,7 +59,7 @@ class KeepAwayGame(ba.TeamGameActivity):
@classmethod
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
- return (issubclass(sessiontype, ba.TeamsSession)
+ return (issubclass(sessiontype, ba.DualTeamSession)
or issubclass(sessiontype, ba.FreeForAllSession))
@classmethod
diff --git a/assets/src/ba_data/python/bastd/game/kingofthehill.py b/assets/src/ba_data/python/bastd/game/kingofthehill.py
index fe9ada72..76b0e7b8 100644
--- a/assets/src/ba_data/python/bastd/game/kingofthehill.py
+++ b/assets/src/ba_data/python/bastd/game/kingofthehill.py
@@ -61,7 +61,7 @@ class KingOfTheHillGame(ba.TeamGameActivity):
@classmethod
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
- return issubclass(sessiontype, ba.TeamBaseSession)
+ return issubclass(sessiontype, ba.MultiTeamSession)
@classmethod
def get_supported_maps(cls, sessiontype: Type[ba.Session]) -> List[str]:
diff --git a/assets/src/ba_data/python/bastd/game/meteorshower.py b/assets/src/ba_data/python/bastd/game/meteorshower.py
index 2b1dd8c4..9ec11f81 100644
--- a/assets/src/ba_data/python/bastd/game/meteorshower.py
+++ b/assets/src/ba_data/python/bastd/game/meteorshower.py
@@ -71,7 +71,7 @@ class MeteorShowerGame(ba.TeamGameActivity):
# We support teams, free-for-all, and co-op sessions.
@classmethod
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
- return (issubclass(sessiontype, ba.TeamsSession)
+ return (issubclass(sessiontype, ba.DualTeamSession)
or issubclass(sessiontype, ba.FreeForAllSession)
or issubclass(sessiontype, ba.CoopSession))
diff --git a/assets/src/ba_data/python/bastd/game/race.py b/assets/src/ba_data/python/bastd/game/race.py
index f4331510..0f755a93 100644
--- a/assets/src/ba_data/python/bastd/game/race.py
+++ b/assets/src/ba_data/python/bastd/game/race.py
@@ -88,7 +88,7 @@ class RaceGame(ba.TeamGameActivity):
@classmethod
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
- return issubclass(sessiontype, ba.TeamBaseSession)
+ return issubclass(sessiontype, ba.MultiTeamSession)
@classmethod
def get_supported_maps(cls, sessiontype: Type[ba.Session]) -> List[str]:
@@ -125,7 +125,7 @@ class RaceGame(ba.TeamGameActivity):
'default': False
})] # yapf: disable
- if issubclass(sessiontype, ba.TeamsSession):
+ if issubclass(sessiontype, ba.DualTeamSession):
settings.append(('Entire Team Must Finish', {'default': False}))
return settings
@@ -156,7 +156,7 @@ class RaceGame(ba.TeamGameActivity):
self._bomb_spawn_timer: Optional[ba.Timer] = None
def get_instance_description(self) -> Union[str, Sequence]:
- if isinstance(self.session, ba.TeamsSession) and self.settings.get(
+ if isinstance(self.session, ba.DualTeamSession) and self.settings.get(
'Entire Team Must Finish', False):
t_str = ' Your entire team has to finish.'
else:
@@ -252,7 +252,7 @@ class RaceGame(ba.TeamGameActivity):
# value is the min of all team players.
# Otherwise its the max.
if isinstance(self.session,
- ba.TeamsSession) and self.settings.get(
+ ba.DualTeamSession) and self.settings.get(
'Entire Team Must Finish'):
team.gamedata['lap'] = min(
[p.gamedata['lap'] for p in team.players])
@@ -265,7 +265,7 @@ class RaceGame(ba.TeamGameActivity):
# In teams mode, hand out points based on the order
# players come in.
- if isinstance(self.session, ba.TeamsSession):
+ if isinstance(self.session, ba.DualTeamSession):
assert self._team_finish_pts is not None
if self._team_finish_pts > 0:
self.stats.player_scored(player,
@@ -364,7 +364,7 @@ class RaceGame(ba.TeamGameActivity):
# A player leaving disqualifies the team if 'Entire Team Must Finish'
# is on (otherwise in teams mode everyone could just leave except the
# leading player to win).
- if (isinstance(self.session, ba.TeamsSession)
+ if (isinstance(self.session, ba.DualTeamSession)
and self.settings.get('Entire Team Must Finish')):
ba.screenmessage(ba.Lstr(
translate=('statements',
@@ -396,7 +396,7 @@ class RaceGame(ba.TeamGameActivity):
if not distances:
teams_dist = 0
else:
- if (isinstance(self.session, ba.TeamsSession)
+ if (isinstance(self.session, ba.DualTeamSession)
and self.settings.get('Entire Team Must Finish')):
teams_dist = min(distances)
else:
@@ -690,7 +690,7 @@ class RaceGame(ba.TeamGameActivity):
# In teams mode its over as soon as any team finishes the race
# FIXME: The get_ffa_point_awards code looks dangerous.
- if isinstance(session, ba.TeamsSession):
+ if isinstance(session, ba.DualTeamSession):
self.end_game()
else:
# In ffa we keep the race going while there's still any points
@@ -729,7 +729,7 @@ class RaceGame(ba.TeamGameActivity):
# odd to be announcing that now.
self.end(results=results,
announce_winning_team=isinstance(self.session,
- ba.TeamsSession))
+ ba.DualTeamSession))
def handlemessage(self, msg: Any) -> Any:
if isinstance(msg, PlayerSpazDeathMessage):
diff --git a/assets/src/ba_data/python/bastd/game/targetpractice.py b/assets/src/ba_data/python/bastd/game/targetpractice.py
index ba51108a..348f555d 100644
--- a/assets/src/ba_data/python/bastd/game/targetpractice.py
+++ b/assets/src/ba_data/python/bastd/game/targetpractice.py
@@ -57,7 +57,7 @@ class TargetPracticeGame(ba.TeamGameActivity):
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
# We support any teams or versus sessions.
return (issubclass(sessiontype, ba.CoopSession)
- or issubclass(sessiontype, ba.TeamBaseSession))
+ or issubclass(sessiontype, ba.MultiTeamSession))
@classmethod
def get_settings(
diff --git a/assets/src/ba_data/python/bastd/mainmenu.py b/assets/src/ba_data/python/bastd/mainmenu.py
index 8939cddf..5e1ea7c2 100644
--- a/assets/src/ba_data/python/bastd/mainmenu.py
+++ b/assets/src/ba_data/python/bastd/mainmenu.py
@@ -434,7 +434,7 @@ class MainMenuActivity(ba.Activity):
from bastd.ui.playlist.browser import (
PlaylistBrowserWindow)
ba.app.main_menu_window = PlaylistBrowserWindow(
- sessiontype=ba.TeamsSession,
+ sessiontype=ba.DualTeamSession,
transition=None).get_root_widget()
elif main_window == 'Free-for-All Game Select':
# pylint: disable=cyclic-import
diff --git a/assets/src/ba_data/python/bastd/ui/kiosk.py b/assets/src/ba_data/python/bastd/ui/kiosk.py
index 262ef871..724113d3 100644
--- a/assets/src/ba_data/python/bastd/ui/kiosk.py
+++ b/assets/src/ba_data/python/bastd/ui/kiosk.py
@@ -450,7 +450,7 @@ class KioskWindow(ba.Window):
endcall=ba.Call(
ba.pushcall,
ba.Call(_ba.new_host_session,
- ba.TeamsSession)))
+ ba.DualTeamSession)))
ba.containerwidget(edit=self._root_widget, transition='out_left')
return
diff --git a/assets/src/ba_data/python/bastd/ui/play.py b/assets/src/ba_data/python/bastd/ui/play.py
index 6700c5be..294ed725 100644
--- a/assets/src/ba_data/python/bastd/ui/play.py
+++ b/assets/src/ba_data/python/bastd/ui/play.py
@@ -438,7 +438,7 @@ class PlayWindow(ba.Window):
ba.containerwidget(edit=self._root_widget, transition='out_left')
ba.app.main_menu_window = (browser.PlaylistBrowserWindow(
origin_widget=self._teams_button,
- sessiontype=ba.TeamsSession).get_root_widget())
+ sessiontype=ba.DualTeamSession).get_root_widget())
def _free_for_all(self) -> None:
# pylint: disable=cyclic-import
diff --git a/assets/src/ba_data/python/bastd/ui/playlist/__init__.py b/assets/src/ba_data/python/bastd/ui/playlist/__init__.py
index 6bfe3c5a..e232156f 100644
--- a/assets/src/ba_data/python/bastd/ui/playlist/__init__.py
+++ b/assets/src/ba_data/python/bastd/ui/playlist/__init__.py
@@ -38,15 +38,15 @@ class PlaylistTypeVars:
from ba.internal import (get_default_teams_playlist,
get_default_free_for_all_playlist)
self.sessiontype: Type[ba.Session]
- if issubclass(sessiontype, ba.TeamsSession):
+ if issubclass(sessiontype, ba.DualTeamSession):
play_mode_name = ba.Lstr(resource='playModes.teamsText',
fallback_resource='teamsText')
self.get_default_list_call = get_default_teams_playlist
- self.session_type_name = 'ba.TeamsSession'
+ self.session_type_name = 'ba.DualTeamSession'
self.config_name = 'Team Tournament'
self.window_title_name = ba.Lstr(resource='playModes.teamsText',
fallback_resource='teamsText')
- self.sessiontype = ba.TeamsSession
+ self.sessiontype = ba.DualTeamSession
elif issubclass(sessiontype, ba.FreeForAllSession):
play_mode_name = ba.Lstr(resource='playModes.freeForAllText',
fallback_resource='freeForAllText')
diff --git a/assets/src/ba_data/python/bastd/ui/playlist/browser.py b/assets/src/ba_data/python/bastd/ui/playlist/browser.py
index 97ac5f8b..f453b778 100644
--- a/assets/src/ba_data/python/bastd/ui/playlist/browser.py
+++ b/assets/src/ba_data/python/bastd/ui/playlist/browser.py
@@ -55,7 +55,7 @@ class PlaylistBrowserWindow(ba.Window):
scale_origin = None
# Store state for when we exit the next game.
- if issubclass(sessiontype, ba.TeamsSession):
+ if issubclass(sessiontype, ba.DualTeamSession):
ba.app.main_window = "Team Game Select"
ba.set_analytics_screen('Teams Window')
elif issubclass(sessiontype, ba.FreeForAllSession):
@@ -412,7 +412,7 @@ class PlaylistBrowserWindow(ba.Window):
if name == '__default__':
if self._sessiontype is ba.FreeForAllSession:
playlist = (get_default_free_for_all_playlist())
- elif self._sessiontype is ba.TeamsSession:
+ elif self._sessiontype is ba.DualTeamSession:
playlist = get_default_teams_playlist()
else:
raise Exception("unrecognized session-type: " +
diff --git a/assets/src/ba_data/python/bastd/ui/playoptions.py b/assets/src/ba_data/python/bastd/ui/playoptions.py
index 2c3460cf..2c0ec134 100644
--- a/assets/src/ba_data/python/bastd/ui/playoptions.py
+++ b/assets/src/ba_data/python/bastd/ui/playoptions.py
@@ -66,7 +66,7 @@ class PlayOptionsWindow(popup.PopupWindow):
self._height = 330.0 - 50.0
# In teams games, show the custom names/colors button.
- if self._sessiontype is ba.TeamsSession:
+ if self._sessiontype is ba.DualTeamSession:
self._height += 50.0
self._row_height = 45.0
@@ -90,7 +90,7 @@ class PlayOptionsWindow(popup.PopupWindow):
if name == '__default__':
if self._sessiontype is ba.FreeForAllSession:
plst = get_default_free_for_all_playlist()
- elif self._sessiontype is ba.TeamsSession:
+ elif self._sessiontype is ba.DualTeamSession:
plst = get_default_teams_playlist()
else:
raise Exception("unrecognized session-type: " +
@@ -262,7 +262,7 @@ class PlayOptionsWindow(popup.PopupWindow):
# Team names/colors.
self._custom_colors_names_button: Optional[ba.Widget]
- if self._sessiontype is ba.TeamsSession:
+ if self._sessiontype is ba.DualTeamSession:
y_offs = 50 if show_shuffle_check_box else 0
self._custom_colors_names_button = ba.buttonwidget(
parent=self.root_widget,
diff --git a/assets/src/ba_data/python/bastd/ui/store/item.py b/assets/src/ba_data/python/bastd/ui/store/item.py
index 994d2039..795e1018 100644
--- a/assets/src/ba_data/python/bastd/ui/store/item.py
+++ b/assets/src/ba_data/python/bastd/ui/store/item.py
@@ -111,7 +111,7 @@ def instantiate_store_item_display(item_name: str,
modes_l = []
if gametype.supports_session_type(ba.CoopSession):
modes_l.append(ba.Lstr(resource='playModes.coopText'))
- if gametype.supports_session_type(ba.TeamsSession):
+ if gametype.supports_session_type(ba.DualTeamSession):
modes_l.append(ba.Lstr(resource='playModes.teamsText'))
if gametype.supports_session_type(ba.FreeForAllSession):
modes_l.append(ba.Lstr(resource='playModes.freeForAllText'))
diff --git a/docs/ba_module.md b/docs/ba_module.md
index 945ea8d0..b854e25f 100644
--- a/docs/ba_module.md
+++ b/docs/ba_module.md
@@ -1,5 +1,5 @@
-last updated on 2020-04-14 for Ballistica version 1.5.0 build 20001
+last updated on 2020-04-15 for Ballistica version 1.5.0 build 20001
This page documents the Python classes and functions in the 'ba' module,
which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please let me know. Happy modding!
@@ -30,10 +30,10 @@
ba.Session
ba.Stats
@@ -1843,11 +1843,32 @@ its time with lingering corpses, sound effects, etc.
ba.DroppedMessage(node: ba.Node)
+
+
+
+inherits from: ba.MultiTeamSession, ba.Session
+ba.Session type for teams mode games.
+
+Category: Gameplay Classes
+
+
+Attributes Inherited:
+
+Methods Inherited:
+
+Methods Defined or Overridden:
+
+-
+
ba.DualTeamSession()
+
+Set up playlists and launches a ba.Activity to accept joiners.
+
inherits from: ba.TeamBaseSession, ba.Session
+inherits from: ba.MultiTeamSession, ba.Session
ba.Session type for free-for-all mode games.
Category: Gameplay Classes
@@ -1856,7 +1877,7 @@ its time with lingering corpses, sound effects, etc.
Attributes Inherited:
Methods Inherited:
-
+
Methods Defined or Overridden:
@@ -3130,6 +3151,87 @@ m.add_actions(conditions=('they_have_material',
Models are used for drawing.
Use ba.getmodel() to instantiate one.
+
+inherits from: ba.Session
+Common base class for ba.DualTeamSession and ba.FreeForAllSession.
+
+Category: Gameplay Classes
+
+ Free-for-all-mode is essentially just teams-mode with each ba.Player having
+ their own ba.Team, so there is much overlap in functionality.
+
+
+Attributes Inherited:
+
+Methods Inherited:
+
+Methods Defined or Overridden:
+
+
+-
+
ba.MultiTeamSession()
+
+Set up playlists and launches a ba.Activity to accept joiners.
+
+
+-
+
announce_game_results(self, activity: ba.GameActivity, results: ba.TeamGameResults, delay: float, announce_winning_team: bool = True) -> None
+
+Show basic game result at the end of a game.
+
+(before transitioning to a score screen).
+This will include a zoom-text of 'BLUE WINS'
+or whatnot, along with a possible audio
+announcement of the same.
+
+
+-
+
get_ffa_series_length(self) -> int
+
+Return free-for-all series length.
+
+
+-
+
get_game_number(self) -> int
+
+Returns which game in the series is currently being played.
+
+
+-
+
get_max_players(self) -> int
+
+Return max number of ba.Players allowed to join the game at once.
+
+
+-
+
get_next_game_description(self) -> ba.Lstr
+
+Returns a description of the next game on deck.
+
+
+-
+
get_series_length(self) -> int
+
+Return teams series length.
+
+
+-
+
on_activity_end(self, activity: ba.Activity, results: Any) -> None
+
+Called when the current ba.Activity has ended.
+
+The ba.Session should look at the results and start
+another ba.Activity.
+
+
+-
+
on_team_join(self, team: ba.Team) -> None
+
+Called when a new ba.Team joins the session.
+
+
+
<top level class>
@@ -3874,7 +3976,7 @@ cause the powerup box to make a sound and disappear or whatnot.
Category: Gameplay Classes
- Examples of sessions are ba.FreeForAllSession, ba.TeamsSession, and
+
Examples of sessions are ba.FreeForAllSession, ba.DualTeamSession, and
ba.CoopSession.
A Session is responsible for wrangling and transitioning between various
@@ -4339,87 +4441,6 @@ of the session.
Returns the numeric team ID.
-
-
-
-inherits from: ba.Session
-Common base class for ba.TeamsSession and ba.FreeForAllSession.
-
-Category: Gameplay Classes
-
- Free-for-all-mode is essentially just teams-mode with each ba.Player having
- their own ba.Team, so there is much overlap in functionality.
-
-
-Attributes Inherited:
-
-Methods Inherited:
-
-Methods Defined or Overridden:
-
-
--
-
ba.TeamBaseSession()
-
-Set up playlists and launches a ba.Activity to accept joiners.
-
-
--
-
announce_game_results(self, activity: ba.GameActivity, results: ba.TeamGameResults, delay: float, announce_winning_team: bool = True) -> None
-
-Show basic game result at the end of a game.
-
-(before transitioning to a score screen).
-This will include a zoom-text of 'BLUE WINS'
-or whatnot, along with a possible audio
-announcement of the same.
-
-
--
-
get_ffa_series_length(self) -> int
-
-Return free-for-all series length.
-
-
--
-
get_game_number(self) -> int
-
-Returns which game in the series is currently being played.
-
-
--
-
get_max_players(self) -> int
-
-Return max number of ba.Players allowed to join the game at once.
-
-
--
-
get_next_game_description(self) -> ba.Lstr
-
-Returns a description of the next game on deck.
-
-
--
-
get_series_length(self) -> int
-
-Return teams series length.
-
-
--
-
on_activity_end(self, activity: ba.Activity, results: Any) -> None
-
-Called when the current ba.Activity has ended.
-
-The ba.Session should look at the results and start
-another ba.Activity.
-
-
--
-
on_team_join(self, team: ba.Team) -> None
-
-Called when a new ba.Team joins the session.
-
@@ -4514,7 +4535,7 @@ on the ba.Player and their ba.Session]) -> bool
Class method override;
-returns True for ba.TeamsSessions and ba.FreeForAllSessions;
+returns True for ba.DualTeamSessions and ba.FreeForAllSessions;
False otherwise.
@@ -4629,27 +4650,6 @@ Results for a completed ba.TeamGameActivity
Methods:
<all methods inherited from ba.NotFoundError>
-inherits from: ba.TeamBaseSession, ba.Session
-ba.Session type for teams mode games.
-
-Category: Gameplay Classes
-
-
-Attributes Inherited:
-
-Methods Inherited:
-
-Methods Defined or Overridden:
-
--
-
ba.TeamsSession()
-
-Set up playlists and launches a ba.Activity to accept joiners.
-
-
-
-
<top level class>