mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-03-23 02:35:49 +08:00
Added proper types for game score info
This commit is contained in:
parent
7aed70dfb5
commit
f0583ac816
@ -4132,16 +4132,16 @@
|
|||||||
"assets/build/windows/x64/python.exe": "https://files.ballistica.net/cache/ba1/25/a7/dc87c1be41605eb6fefd0145144c",
|
"assets/build/windows/x64/python.exe": "https://files.ballistica.net/cache/ba1/25/a7/dc87c1be41605eb6fefd0145144c",
|
||||||
"assets/build/windows/x64/python37.dll": "https://files.ballistica.net/cache/ba1/b9/e4/d912f56e42e9991bcbb4c804cfcb",
|
"assets/build/windows/x64/python37.dll": "https://files.ballistica.net/cache/ba1/b9/e4/d912f56e42e9991bcbb4c804cfcb",
|
||||||
"assets/build/windows/x64/pythonw.exe": "https://files.ballistica.net/cache/ba1/6c/bb/b6f52c306aa4e88061510e96cefe",
|
"assets/build/windows/x64/pythonw.exe": "https://files.ballistica.net/cache/ba1/6c/bb/b6f52c306aa4e88061510e96cefe",
|
||||||
"build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/22/a3/c6b38e5c76464077f400415eef8f",
|
"build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/e8/b7/d1b41fb68d9f65901d47267b9287",
|
||||||
"build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/35/42/3802bdafafffea388132ccb27197",
|
"build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/40/04/9b0dc90152d5729485488b628429",
|
||||||
"build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/90/fb/bbb656b6d0b56ff92d30f13fcb10",
|
"build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/b0/15/aa58294e041cca7485375e7a49ad",
|
||||||
"build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/3b/75/2eee67afef4e0f446cba5a466521",
|
"build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/04/86/d3adc7e35a753aad5e6d62758e7c",
|
||||||
"build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b6/31/fe8c9e100c0f99daaf1d11d702c0",
|
"build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/91/81/30196355ca6b2044140131f6da89",
|
||||||
"build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/85/27/7ddbe58f02af52884fff485c98dd",
|
"build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d3/3b/e0171b94d0b24c153a88b7724797",
|
||||||
"build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/d4/11/0f9806ff32156d9af2fb5c88e49c",
|
"build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/97/10/3b2aded25bb43ce4451f54c42731",
|
||||||
"build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9a/55/2cd36310f00e3a187a70b3f122ee",
|
"build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/e3/ca/e0788b1f5cc69e92fed8d4d9a61f",
|
||||||
"build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/30/8e/b4d365f9aa49cf247d6a73dfd5ee",
|
"build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/69/78/3a1f6f6f808f671c749d48b0b5a6",
|
||||||
"build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/b0/1a/20b48edf6830ad53a1c0049c129b",
|
"build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/1a/fc/f3b36c2964d64ef2c1685cf8c893",
|
||||||
"build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/00/52/42d85a6502daf27271ce48634b5b",
|
"build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/22/8d/fdf637a15162f92f699f92eca9e7",
|
||||||
"build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/b2/1c/1afeac6051ad9973e06f945f98ce"
|
"build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/72/34/a37deb6cbc29025a38c161ce7cba"
|
||||||
}
|
}
|
||||||
1
.idea/dictionaries/ericf.xml
generated
1
.idea/dictionaries/ericf.xml
generated
@ -1577,6 +1577,7 @@
|
|||||||
<w>scorescreen</w>
|
<w>scorescreen</w>
|
||||||
<w>scoreteam</w>
|
<w>scoreteam</w>
|
||||||
<w>scoretxt</w>
|
<w>scoretxt</w>
|
||||||
|
<w>scoretype</w>
|
||||||
<w>scoreval</w>
|
<w>scoreval</w>
|
||||||
<w>scorever</w>
|
<w>scorever</w>
|
||||||
<w>scorings</w>
|
<w>scorings</w>
|
||||||
|
|||||||
@ -42,6 +42,7 @@
|
|||||||
"ba_data/python/ba/__pycache__/_playlist.cpython-37.opt-1.pyc",
|
"ba_data/python/ba/__pycache__/_playlist.cpython-37.opt-1.pyc",
|
||||||
"ba_data/python/ba/__pycache__/_powerup.cpython-37.opt-1.pyc",
|
"ba_data/python/ba/__pycache__/_powerup.cpython-37.opt-1.pyc",
|
||||||
"ba_data/python/ba/__pycache__/_profile.cpython-37.opt-1.pyc",
|
"ba_data/python/ba/__pycache__/_profile.cpython-37.opt-1.pyc",
|
||||||
|
"ba_data/python/ba/__pycache__/_score.cpython-37.opt-1.pyc",
|
||||||
"ba_data/python/ba/__pycache__/_servermode.cpython-37.opt-1.pyc",
|
"ba_data/python/ba/__pycache__/_servermode.cpython-37.opt-1.pyc",
|
||||||
"ba_data/python/ba/__pycache__/_session.cpython-37.opt-1.pyc",
|
"ba_data/python/ba/__pycache__/_session.cpython-37.opt-1.pyc",
|
||||||
"ba_data/python/ba/__pycache__/_stats.cpython-37.opt-1.pyc",
|
"ba_data/python/ba/__pycache__/_stats.cpython-37.opt-1.pyc",
|
||||||
@ -95,6 +96,7 @@
|
|||||||
"ba_data/python/ba/_playlist.py",
|
"ba_data/python/ba/_playlist.py",
|
||||||
"ba_data/python/ba/_powerup.py",
|
"ba_data/python/ba/_powerup.py",
|
||||||
"ba_data/python/ba/_profile.py",
|
"ba_data/python/ba/_profile.py",
|
||||||
|
"ba_data/python/ba/_score.py",
|
||||||
"ba_data/python/ba/_servermode.py",
|
"ba_data/python/ba/_servermode.py",
|
||||||
"ba_data/python/ba/_session.py",
|
"ba_data/python/ba/_session.py",
|
||||||
"ba_data/python/ba/_stats.py",
|
"ba_data/python/ba/_stats.py",
|
||||||
|
|||||||
@ -179,6 +179,7 @@ SCRIPT_TARGETS_PY_PUBLIC = \
|
|||||||
build/ba_data/python/ba/_tournament.py \
|
build/ba_data/python/ba/_tournament.py \
|
||||||
build/ba_data/python/ba/_messages.py \
|
build/ba_data/python/ba/_messages.py \
|
||||||
build/ba_data/python/ba/_freeforallsession.py \
|
build/ba_data/python/ba/_freeforallsession.py \
|
||||||
|
build/ba_data/python/ba/_score.py \
|
||||||
build/ba_data/python/ba/_playlist.py \
|
build/ba_data/python/ba/_playlist.py \
|
||||||
build/ba_data/python/ba/_team.py \
|
build/ba_data/python/ba/_team.py \
|
||||||
build/ba_data/python/ba/_multiteamsession.py \
|
build/ba_data/python/ba/_multiteamsession.py \
|
||||||
@ -405,6 +406,7 @@ SCRIPT_TARGETS_PYC_PUBLIC = \
|
|||||||
build/ba_data/python/ba/__pycache__/_tournament.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__/_messages.cpython-37.opt-1.pyc \
|
||||||
build/ba_data/python/ba/__pycache__/_freeforallsession.cpython-37.opt-1.pyc \
|
build/ba_data/python/ba/__pycache__/_freeforallsession.cpython-37.opt-1.pyc \
|
||||||
|
build/ba_data/python/ba/__pycache__/_score.cpython-37.opt-1.pyc \
|
||||||
build/ba_data/python/ba/__pycache__/_playlist.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__/_team.cpython-37.opt-1.pyc \
|
||||||
build/ba_data/python/ba/__pycache__/_multiteamsession.cpython-37.opt-1.pyc \
|
build/ba_data/python/ba/__pycache__/_multiteamsession.cpython-37.opt-1.pyc \
|
||||||
@ -791,6 +793,11 @@ build/ba_data/python/ba/__pycache__/_freeforallsession.cpython-37.opt-1.pyc: \
|
|||||||
@echo Compiling script: $^
|
@echo Compiling script: $^
|
||||||
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
|
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
|
||||||
|
|
||||||
|
build/ba_data/python/ba/__pycache__/_score.cpython-37.opt-1.pyc: \
|
||||||
|
build/ba_data/python/ba/_score.py
|
||||||
|
@echo Compiling script: $^
|
||||||
|
@rm -rf $@ && $(TOOLS_DIR)/snippets compile_python_files $^ && chmod 444 $@
|
||||||
|
|
||||||
build/ba_data/python/ba/__pycache__/_playlist.cpython-37.opt-1.pyc: \
|
build/ba_data/python/ba/__pycache__/_playlist.cpython-37.opt-1.pyc: \
|
||||||
build/ba_data/python/ba/_playlist.py
|
build/ba_data/python/ba/_playlist.py
|
||||||
@echo Compiling script: $^
|
@echo Compiling script: $^
|
||||||
|
|||||||
@ -61,6 +61,7 @@ from ba._lang import Lstr, setlanguage, get_valid_languages
|
|||||||
from ba._map import Map, getmaps
|
from ba._map import Map, getmaps
|
||||||
from ba._session import Session
|
from ba._session import Session
|
||||||
from ba._servermode import ServerController
|
from ba._servermode import ServerController
|
||||||
|
from ba._score import ScoreType, ScoreInfo
|
||||||
from ba._stats import PlayerScoredMessage, PlayerRecord, Stats
|
from ba._stats import PlayerScoredMessage, PlayerRecord, Stats
|
||||||
from ba._team import Team
|
from ba._team import Team
|
||||||
from ba._teamgame import TeamGameActivity
|
from ba._teamgame import TeamGameActivity
|
||||||
|
|||||||
@ -254,6 +254,7 @@ class CoopSession(Session):
|
|||||||
from ba._general import WeakCall
|
from ba._general import WeakCall
|
||||||
from ba._coopgame import CoopGameActivity
|
from ba._coopgame import CoopGameActivity
|
||||||
from ba._gameresults import TeamGameResults
|
from ba._gameresults import TeamGameResults
|
||||||
|
from ba._score import ScoreType
|
||||||
from bastd.tutorial import TutorialActivity
|
from bastd.tutorial import TutorialActivity
|
||||||
from bastd.activity.coopscore import CoopScoreScreen
|
from bastd.activity.coopscore import CoopScoreScreen
|
||||||
|
|
||||||
@ -349,18 +350,23 @@ class CoopSession(Session):
|
|||||||
fail_message = None
|
fail_message = None
|
||||||
score_order = ('decreasing' if results.get_lower_is_better()
|
score_order = ('decreasing' if results.get_lower_is_better()
|
||||||
else 'increasing')
|
else 'increasing')
|
||||||
if results.get_score_type() in ('seconds', 'milliseconds',
|
if results.get_score_type() in (ScoreType.SECONDS,
|
||||||
'time'):
|
ScoreType.MILLISECONDS):
|
||||||
score_type = 'time'
|
score_type = 'time'
|
||||||
|
|
||||||
# Results contains milliseconds; ScoreScreen wants
|
# ScoreScreen wants hundredths of a second.
|
||||||
# hundredths; need to fix :-/
|
|
||||||
if score is not None:
|
if score is not None:
|
||||||
score //= 10
|
if results.get_score_type() is ScoreType.SECONDS:
|
||||||
|
score *= 100
|
||||||
|
elif (results.get_score_type() is
|
||||||
|
ScoreType.MILLISECONDS):
|
||||||
|
score //= 10
|
||||||
|
else:
|
||||||
|
raise RuntimeError('FIXME')
|
||||||
else:
|
else:
|
||||||
if results.get_score_type() != 'points':
|
if results.get_score_type() is not ScoreType.POINTS:
|
||||||
print(("Unknown score type: '" +
|
print(f'Unknown ScoreType:'
|
||||||
results.get_score_type() + "'"))
|
f' "{results.get_score_type()}"')
|
||||||
score_type = 'points'
|
score_type = 'points'
|
||||||
|
|
||||||
# Old coop-game-specific results; should migrate away from these.
|
# Old coop-game-specific results; should migrate away from these.
|
||||||
|
|||||||
@ -28,6 +28,7 @@ from typing import TYPE_CHECKING
|
|||||||
|
|
||||||
import _ba
|
import _ba
|
||||||
from ba._activity import Activity
|
from ba._activity import Activity
|
||||||
|
from ba._score import ScoreInfo
|
||||||
from ba._lang import Lstr
|
from ba._lang import Lstr
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
@ -75,58 +76,9 @@ class GameActivity(Activity):
|
|||||||
completion_call)
|
completion_call)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_score_info(cls) -> Dict[str, Any]:
|
def get_score_info(cls) -> ba.ScoreInfo:
|
||||||
"""Return info about game scoring setup; should be overridden by games.
|
"""Return info about game scoring setup; can be overridden by games."""
|
||||||
|
return ScoreInfo()
|
||||||
They should return a dict containing any of the following (missing
|
|
||||||
values will be default):
|
|
||||||
|
|
||||||
'score_name': a label shown to the user for scores; 'Score',
|
|
||||||
'Time Survived', etc. 'Score' is the default.
|
|
||||||
|
|
||||||
'lower_is_better': a boolean telling whether lower scores are
|
|
||||||
preferable instead of higher (the default).
|
|
||||||
|
|
||||||
'none_is_winner': specifies whether a score value of None is considered
|
|
||||||
better than other scores or worse. Default is False.
|
|
||||||
|
|
||||||
'score_type': can be 'seconds', 'milliseconds', or 'points'.
|
|
||||||
|
|
||||||
'score_version': to change high-score lists used by a game without
|
|
||||||
renaming the game, change this. Defaults to empty string.
|
|
||||||
"""
|
|
||||||
return {}
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def get_resolved_score_info(cls) -> Dict[str, Any]:
|
|
||||||
"""
|
|
||||||
Call this to return a game's score info with all missing values
|
|
||||||
filled in with defaults. This should not be overridden; override
|
|
||||||
get_score_info() instead.
|
|
||||||
"""
|
|
||||||
values = cls.get_score_info()
|
|
||||||
if 'score_name' not in values:
|
|
||||||
values['score_name'] = 'Score'
|
|
||||||
if 'lower_is_better' not in values:
|
|
||||||
values['lower_is_better'] = False
|
|
||||||
if 'none_is_winner' not in values:
|
|
||||||
values['none_is_winner'] = False
|
|
||||||
if 'score_type' not in values:
|
|
||||||
values['score_type'] = 'points'
|
|
||||||
if 'score_version' not in values:
|
|
||||||
values['score_version'] = ''
|
|
||||||
|
|
||||||
if values['score_type'] not in ['seconds', 'milliseconds', 'points']:
|
|
||||||
raise Exception("invalid score_type value: '" +
|
|
||||||
values['score_type'] + "'")
|
|
||||||
|
|
||||||
# make sure they didn't misspell anything in there..
|
|
||||||
for name in list(values.keys()):
|
|
||||||
if name not in ('score_name', 'lower_is_better', 'none_is_winner',
|
|
||||||
'score_type', 'score_version'):
|
|
||||||
print('WARNING: invalid key in score_info: "' + name + '"')
|
|
||||||
|
|
||||||
return values
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_name(cls) -> str:
|
def get_name(cls) -> str:
|
||||||
|
|||||||
@ -57,9 +57,9 @@ class TeamGameResults:
|
|||||||
self._teams: Optional[List[ReferenceType[ba.Team]]] = None
|
self._teams: Optional[List[ReferenceType[ba.Team]]] = None
|
||||||
self._player_info: Optional[List[Dict[str, Any]]] = None
|
self._player_info: Optional[List[Dict[str, Any]]] = None
|
||||||
self._lower_is_better: Optional[bool] = None
|
self._lower_is_better: Optional[bool] = None
|
||||||
self._score_name: Optional[str] = None
|
self._score_label: Optional[str] = None
|
||||||
self._none_is_winner: Optional[bool] = None
|
self._none_is_winner: Optional[bool] = None
|
||||||
self._score_type: Optional[str] = None
|
self._score_type: Optional[ba.ScoreType] = None
|
||||||
|
|
||||||
def set_game(self, game: ba.GameActivity) -> None:
|
def set_game(self, game: ba.GameActivity) -> None:
|
||||||
"""Set the game instance these results are applying to."""
|
"""Set the game instance these results are applying to."""
|
||||||
@ -67,12 +67,12 @@ class TeamGameResults:
|
|||||||
raise RuntimeError('Game set twice for TeamGameResults.')
|
raise RuntimeError('Game set twice for TeamGameResults.')
|
||||||
self._game_set = True
|
self._game_set = True
|
||||||
self._teams = [weakref.ref(team) for team in game.teams]
|
self._teams = [weakref.ref(team) for team in game.teams]
|
||||||
score_info = game.get_resolved_score_info()
|
score_info = game.get_score_info()
|
||||||
self._player_info = copy.deepcopy(game.initial_player_info)
|
self._player_info = copy.deepcopy(game.initial_player_info)
|
||||||
self._lower_is_better = score_info['lower_is_better']
|
self._lower_is_better = score_info.lower_is_better
|
||||||
self._score_name = score_info['score_name']
|
self._score_label = score_info.label
|
||||||
self._none_is_winner = score_info['none_is_winner']
|
self._none_is_winner = score_info.none_is_winner
|
||||||
self._score_type = score_info['score_type']
|
self._score_type = score_info.scoretype
|
||||||
|
|
||||||
def set_team_score(self, team: ba.Team, score: int) -> None:
|
def set_team_score(self, team: ba.Team, score: int) -> None:
|
||||||
"""Set the score for a given ba.Team.
|
"""Set the score for a given ba.Team.
|
||||||
@ -118,17 +118,18 @@ class TeamGameResults:
|
|||||||
from ba._gameutils import timestring
|
from ba._gameutils import timestring
|
||||||
from ba._lang import Lstr
|
from ba._lang import Lstr
|
||||||
from ba._enums import TimeFormat
|
from ba._enums import TimeFormat
|
||||||
|
from ba._score import ScoreType
|
||||||
if not self._game_set:
|
if not self._game_set:
|
||||||
raise RuntimeError("Can't get team-score-str until game is set.")
|
raise RuntimeError("Can't get team-score-str until game is set.")
|
||||||
for score in list(self._scores.values()):
|
for score in list(self._scores.values()):
|
||||||
if score[0]() is team:
|
if score[0]() is team:
|
||||||
if score[1] is None:
|
if score[1] is None:
|
||||||
return Lstr(value='-')
|
return Lstr(value='-')
|
||||||
if self._score_type == 'seconds':
|
if self._score_type is ScoreType.SECONDS:
|
||||||
return timestring(score[1] * 1000,
|
return timestring(score[1] * 1000,
|
||||||
centi=False,
|
centi=False,
|
||||||
timeformat=TimeFormat.MILLISECONDS)
|
timeformat=TimeFormat.MILLISECONDS)
|
||||||
if self._score_type == 'milliseconds':
|
if self._score_type is ScoreType.MILLISECONDS:
|
||||||
return timestring(score[1],
|
return timestring(score[1],
|
||||||
centi=True,
|
centi=True,
|
||||||
timeformat=TimeFormat.MILLISECONDS)
|
timeformat=TimeFormat.MILLISECONDS)
|
||||||
@ -142,7 +143,7 @@ class TeamGameResults:
|
|||||||
assert self._player_info is not None
|
assert self._player_info is not None
|
||||||
return self._player_info
|
return self._player_info
|
||||||
|
|
||||||
def get_score_type(self) -> str:
|
def get_score_type(self) -> ba.ScoreType:
|
||||||
"""Get the type of score."""
|
"""Get the type of score."""
|
||||||
if not self._game_set:
|
if not self._game_set:
|
||||||
raise RuntimeError("Can't get score-type until game is set.")
|
raise RuntimeError("Can't get score-type until game is set.")
|
||||||
@ -153,8 +154,8 @@ class TeamGameResults:
|
|||||||
"""Get the name associated with scores ('points', etc)."""
|
"""Get the name associated with scores ('points', etc)."""
|
||||||
if not self._game_set:
|
if not self._game_set:
|
||||||
raise RuntimeError("Can't get score-name until game is set.")
|
raise RuntimeError("Can't get score-name until game is set.")
|
||||||
assert self._score_name is not None
|
assert self._score_label is not None
|
||||||
return self._score_name
|
return self._score_label
|
||||||
|
|
||||||
def get_lower_is_better(self) -> bool:
|
def get_lower_is_better(self) -> bool:
|
||||||
"""Return whether lower scores are better."""
|
"""Return whether lower scores are better."""
|
||||||
|
|||||||
@ -144,8 +144,7 @@ class Level:
|
|||||||
can be changed to separate its new high score lists/etc. from the old.
|
can be changed to separate its new high score lists/etc. from the old.
|
||||||
"""
|
"""
|
||||||
if self._score_version_string is None:
|
if self._score_version_string is None:
|
||||||
scorever = (
|
scorever = self._gametype.get_score_info().version
|
||||||
self._gametype.get_resolved_score_info()['score_version'])
|
|
||||||
if scorever != '':
|
if scorever != '':
|
||||||
scorever = ' ' + scorever
|
scorever = ' ' + scorever
|
||||||
self._score_version_string = scorever
|
self._score_version_string = scorever
|
||||||
|
|||||||
74
assets/src/ba_data/python/ba/_score.py
Normal file
74
assets/src/ba_data/python/ba/_score.py
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
# 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.
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
"""Score related functionality."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from enum import Enum, unique
|
||||||
|
from dataclasses import dataclass
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
import ba
|
||||||
|
|
||||||
|
|
||||||
|
@unique
|
||||||
|
class ScoreType(Enum):
|
||||||
|
"""Type of scores.
|
||||||
|
|
||||||
|
Category: Enums
|
||||||
|
"""
|
||||||
|
SECONDS = 's'
|
||||||
|
MILLISECONDS = 'ms'
|
||||||
|
POINTS = 'p'
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ScoreInfo:
|
||||||
|
"""Info about a game's scoring setup.
|
||||||
|
|
||||||
|
Category: Gameplay Classes
|
||||||
|
|
||||||
|
Attrs:
|
||||||
|
|
||||||
|
label
|
||||||
|
A label show to the user for scores; 'Score', 'Time Survived', etc.
|
||||||
|
|
||||||
|
scoretype
|
||||||
|
How the score value should be displayed.
|
||||||
|
|
||||||
|
lower_is_better
|
||||||
|
Whether lower scores are preferable. Higher scores are by default.
|
||||||
|
|
||||||
|
none_is_winner
|
||||||
|
Whether a value of None is considered better than other scores.
|
||||||
|
By default it is not.
|
||||||
|
|
||||||
|
version
|
||||||
|
To change high-score lists used by a game without renaming the game,
|
||||||
|
change this. Defaults to an empty string.
|
||||||
|
|
||||||
|
"""
|
||||||
|
label: str = 'Score'
|
||||||
|
scoretype: ba.ScoreType = ScoreType.POINTS
|
||||||
|
lower_is_better: bool = False
|
||||||
|
none_is_winner: bool = False
|
||||||
|
version: str = ''
|
||||||
@ -49,8 +49,8 @@ class ChosenOneGame(ba.TeamGameActivity):
|
|||||||
return 'Chosen One'
|
return 'Chosen One'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_score_info(cls) -> Dict[str, Any]:
|
def get_score_info(cls) -> ba.ScoreInfo:
|
||||||
return {'score_name': 'Time Held'}
|
return ba.ScoreInfo(label='Time Held')
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_description(cls, sessiontype: Type[ba.Session]) -> str:
|
def get_description(cls, sessiontype: Type[ba.Session]) -> str:
|
||||||
|
|||||||
@ -47,8 +47,8 @@ class EasterEggHuntGame(ba.TeamGameActivity):
|
|||||||
return 'Easter Egg Hunt'
|
return 'Easter Egg Hunt'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_score_info(cls) -> Dict[str, Any]:
|
def get_score_info(cls) -> ba.ScoreInfo:
|
||||||
return {'score_name': 'Score', 'score_type': 'points'}
|
return ba.ScoreInfo(label='Score', scoretype=ba.ScoreType.POINTS)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_description(cls, sessiontype: Type[ba.Session]) -> str:
|
def get_description(cls, sessiontype: Type[ba.Session]) -> str:
|
||||||
|
|||||||
@ -172,12 +172,10 @@ class EliminationGame(ba.TeamGameActivity):
|
|||||||
return 'Elimination'
|
return 'Elimination'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_score_info(cls) -> Dict[str, Any]:
|
def get_score_info(cls) -> ba.ScoreInfo:
|
||||||
return {
|
return ba.ScoreInfo(label='Survived',
|
||||||
'score_name': 'Survived',
|
scoretype=ba.ScoreType.SECONDS,
|
||||||
'score_type': 'seconds',
|
none_is_winner=True)
|
||||||
'none_is_winner': True
|
|
||||||
}
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_description(cls, sessiontype: Type[ba.Session]) -> str:
|
def get_description(cls, sessiontype: Type[ba.Session]) -> str:
|
||||||
|
|||||||
@ -332,8 +332,8 @@ class FootballCoopGame(ba.CoopGameActivity):
|
|||||||
return 'Football'
|
return 'Football'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_score_info(cls) -> Dict[str, Any]:
|
def get_score_info(cls) -> ba.ScoreInfo:
|
||||||
return {'score_type': 'milliseconds', 'score_version': 'B'}
|
return ba.ScoreInfo(scoretype=ba.ScoreType.MILLISECONDS, version='B')
|
||||||
|
|
||||||
# FIXME: Need to update co-op games to use get_score_info.
|
# FIXME: Need to update co-op games to use get_score_info.
|
||||||
def get_score_type(self) -> str:
|
def get_score_type(self) -> str:
|
||||||
|
|||||||
@ -54,8 +54,8 @@ class KeepAwayGame(ba.TeamGameActivity):
|
|||||||
return 'Carry the flag for a set length of time.'
|
return 'Carry the flag for a set length of time.'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_score_info(cls) -> Dict[str, Any]:
|
def get_score_info(cls) -> ba.ScoreInfo:
|
||||||
return {'score_name': 'Time Held'}
|
return ba.ScoreInfo(label='Time Held')
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
|
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
|
||||||
|
|||||||
@ -56,8 +56,8 @@ class KingOfTheHillGame(ba.TeamGameActivity):
|
|||||||
return 'Secure the flag for a set length of time.'
|
return 'Secure the flag for a set length of time.'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_score_info(cls) -> Dict[str, Any]:
|
def get_score_info(cls) -> ba.ScoreInfo:
|
||||||
return {'score_name': 'Time Held'}
|
return ba.ScoreInfo(label='Time Held')
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
|
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
|
||||||
|
|||||||
@ -53,12 +53,10 @@ class MeteorShowerGame(ba.TeamGameActivity):
|
|||||||
return 'Meteor Shower'
|
return 'Meteor Shower'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_score_info(cls) -> Dict[str, Any]:
|
def get_score_info(cls) -> ba.ScoreInfo:
|
||||||
return {
|
return ba.ScoreInfo(label='Survived',
|
||||||
'score_name': 'Survived',
|
scoretype=ba.ScoreType.MILLISECONDS,
|
||||||
'score_type': 'milliseconds',
|
version='B')
|
||||||
'score_version': 'B'
|
|
||||||
}
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_description(cls, sessiontype: Type[ba.Session]) -> str:
|
def get_description(cls, sessiontype: Type[ba.Session]) -> str:
|
||||||
|
|||||||
@ -49,12 +49,10 @@ class NinjaFightGame(ba.TeamGameActivity):
|
|||||||
return 'Ninja Fight'
|
return 'Ninja Fight'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_score_info(cls) -> Dict[str, Any]:
|
def get_score_info(cls) -> ba.ScoreInfo:
|
||||||
return {
|
return ba.ScoreInfo(label='Time',
|
||||||
'score_type': 'milliseconds',
|
scoretype=ba.ScoreType.MILLISECONDS,
|
||||||
'lower_is_better': True,
|
lower_is_better=True)
|
||||||
'score_name': 'Time'
|
|
||||||
}
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_description(cls, sessiontype: Type[ba.Session]) -> str:
|
def get_description(cls, sessiontype: Type[ba.Session]) -> str:
|
||||||
|
|||||||
@ -79,12 +79,10 @@ class RaceGame(ba.TeamGameActivity):
|
|||||||
return 'Run real fast!'
|
return 'Run real fast!'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_score_info(cls) -> Dict[str, Any]:
|
def get_score_info(cls) -> ba.ScoreInfo:
|
||||||
return {
|
return ba.ScoreInfo(label='Time',
|
||||||
'score_name': 'Time',
|
lower_is_better=True,
|
||||||
'lower_is_better': True,
|
scoretype=ba.ScoreType.MILLISECONDS)
|
||||||
'score_type': 'milliseconds'
|
|
||||||
}
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
|
def supports_session_type(cls, sessiontype: Type[ba.Session]) -> bool:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
|
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
|
||||||
<h4><em>last updated on 2020-05-07 for Ballistica version 1.5.0 build 20016</em></h4>
|
<h4><em>last updated on 2020-05-07 for Ballistica version 1.5.0 build 20018</em></h4>
|
||||||
<p>This page documents the Python classes and functions in the 'ba' module,
|
<p>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 <a href="mailto:support@froemling.net">let me know</a>. Happy modding!</p>
|
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 <a href="mailto:support@froemling.net">let me know</a>. Happy modding!</p>
|
||||||
<hr>
|
<hr>
|
||||||
@ -28,6 +28,7 @@
|
|||||||
<li><a href="#class_ba_Node">ba.Node</a></li>
|
<li><a href="#class_ba_Node">ba.Node</a></li>
|
||||||
<li><a href="#class_ba_Player">ba.Player</a></li>
|
<li><a href="#class_ba_Player">ba.Player</a></li>
|
||||||
<li><a href="#class_ba_PlayerRecord">ba.PlayerRecord</a></li>
|
<li><a href="#class_ba_PlayerRecord">ba.PlayerRecord</a></li>
|
||||||
|
<li><a href="#class_ba_ScoreInfo">ba.ScoreInfo</a></li>
|
||||||
<li><a href="#class_ba_Session">ba.Session</a></li>
|
<li><a href="#class_ba_Session">ba.Session</a></li>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#class_ba_CoopSession">ba.CoopSession</a></li>
|
<li><a href="#class_ba_CoopSession">ba.CoopSession</a></li>
|
||||||
@ -172,6 +173,7 @@
|
|||||||
<li><a href="#class_ba_MusicPlayMode">ba.MusicPlayMode</a></li>
|
<li><a href="#class_ba_MusicPlayMode">ba.MusicPlayMode</a></li>
|
||||||
<li><a href="#class_ba_MusicType">ba.MusicType</a></li>
|
<li><a href="#class_ba_MusicType">ba.MusicType</a></li>
|
||||||
<li><a href="#class_ba_Permission">ba.Permission</a></li>
|
<li><a href="#class_ba_Permission">ba.Permission</a></li>
|
||||||
|
<li><a href="#class_ba_ScoreType">ba.ScoreType</a></li>
|
||||||
<li><a href="#class_ba_SpecialChar">ba.SpecialChar</a></li>
|
<li><a href="#class_ba_SpecialChar">ba.SpecialChar</a></li>
|
||||||
<li><a href="#class_ba_TimeFormat">ba.TimeFormat</a></li>
|
<li><a href="#class_ba_TimeFormat">ba.TimeFormat</a></li>
|
||||||
<li><a href="#class_ba_TimeType">ba.TimeType</a></li>
|
<li><a href="#class_ba_TimeType">ba.TimeType</a></li>
|
||||||
@ -1482,7 +1484,7 @@ start_long_action(callback_when_done=<a href="#class_ba_ContextCall">ba.ContextC
|
|||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h3>Methods Inherited:</h3>
|
<h3>Methods Inherited:</h3>
|
||||||
<h5><a href="#method_ba_GameActivity__add_actor_weak_ref">add_actor_weak_ref()</a>, <a href="#method_ba_GameActivity__begin">begin()</a>, <a href="#method_ba_GameActivity__continue_or_end_game">continue_or_end_game()</a>, <a href="#method_ba_GameActivity__create_config_ui">create_config_ui()</a>, <a href="#method_ba_GameActivity__create_player_node">create_player_node()</a>, <a href="#method_ba_GameActivity__dep_is_present">dep_is_present()</a>, <a href="#method_ba_GameActivity__end">end()</a>, <a href="#method_ba_GameActivity__end_game">end_game()</a>, <a href="#method_ba_GameActivity__get_config_display_string">get_config_display_string()</a>, <a href="#method_ba_GameActivity__get_description">get_description()</a>, <a href="#method_ba_GameActivity__get_description_display_string">get_description_display_string()</a>, <a href="#method_ba_GameActivity__get_display_string">get_display_string()</a>, <a href="#method_ba_GameActivity__get_dynamic_deps">get_dynamic_deps()</a>, <a href="#method_ba_GameActivity__get_instance_description">get_instance_description()</a>, <a href="#method_ba_GameActivity__get_instance_display_string">get_instance_display_string()</a>, <a href="#method_ba_GameActivity__get_instance_scoreboard_description">get_instance_scoreboard_description()</a>, <a href="#method_ba_GameActivity__get_instance_scoreboard_display_string">get_instance_scoreboard_display_string()</a>, <a href="#method_ba_GameActivity__get_name">get_name()</a>, <a href="#method_ba_GameActivity__get_resolved_score_info">get_resolved_score_info()</a>, <a href="#method_ba_GameActivity__get_score_info">get_score_info()</a>, <a href="#method_ba_GameActivity__get_settings">get_settings()</a>, <a href="#method_ba_GameActivity__get_supported_maps">get_supported_maps()</a>, <a href="#method_ba_GameActivity__get_team_display_string">get_team_display_string()</a>, <a href="#method_ba_GameActivity__handlemessage">handlemessage()</a>, <a href="#method_ba_GameActivity__has_begun">has_begun()</a>, <a href="#method_ba_GameActivity__has_ended">has_ended()</a>, <a href="#method_ba_GameActivity__has_transitioned_in">has_transitioned_in()</a>, <a href="#method_ba_GameActivity__is_expired">is_expired()</a>, <a href="#method_ba_GameActivity__is_transitioning_out">is_transitioning_out()</a>, <a href="#method_ba_GameActivity__is_waiting_for_continue">is_waiting_for_continue()</a>, <a href="#method_ba_GameActivity__on_continue">on_continue()</a>, <a href="#method_ba_GameActivity__on_expire">on_expire()</a>, <a href="#method_ba_GameActivity__on_player_join">on_player_join()</a>, <a href="#method_ba_GameActivity__on_player_leave">on_player_leave()</a>, <a href="#method_ba_GameActivity__on_team_join">on_team_join()</a>, <a href="#method_ba_GameActivity__on_team_leave">on_team_leave()</a>, <a href="#method_ba_GameActivity__on_transition_in">on_transition_in()</a>, <a href="#method_ba_GameActivity__on_transition_out">on_transition_out()</a>, <a href="#method_ba_GameActivity__project_flag_stand">project_flag_stand()</a>, <a href="#method_ba_GameActivity__respawn_player">respawn_player()</a>, <a href="#method_ba_GameActivity__retain_actor">retain_actor()</a>, <a href="#method_ba_GameActivity__set_has_ended">set_has_ended()</a>, <a href="#method_ba_GameActivity__set_immediate_end">set_immediate_end()</a>, <a href="#method_ba_GameActivity__setup_standard_powerup_drops">setup_standard_powerup_drops()</a>, <a href="#method_ba_GameActivity__setup_standard_time_limit">setup_standard_time_limit()</a>, <a href="#method_ba_GameActivity__show_info">show_info()</a>, <a href="#method_ba_GameActivity__show_scoreboard_info">show_scoreboard_info()</a>, <a href="#method_ba_GameActivity__show_zoom_message">show_zoom_message()</a>, <a href="#method_ba_GameActivity__spawn_player">spawn_player()</a>, <a href="#method_ba_GameActivity__spawn_player_if_exists">spawn_player_if_exists()</a>, <a href="#method_ba_GameActivity__start_transition_in">start_transition_in()</a></h5>
|
<h5><a href="#method_ba_GameActivity__add_actor_weak_ref">add_actor_weak_ref()</a>, <a href="#method_ba_GameActivity__begin">begin()</a>, <a href="#method_ba_GameActivity__continue_or_end_game">continue_or_end_game()</a>, <a href="#method_ba_GameActivity__create_config_ui">create_config_ui()</a>, <a href="#method_ba_GameActivity__create_player_node">create_player_node()</a>, <a href="#method_ba_GameActivity__dep_is_present">dep_is_present()</a>, <a href="#method_ba_GameActivity__end">end()</a>, <a href="#method_ba_GameActivity__end_game">end_game()</a>, <a href="#method_ba_GameActivity__get_config_display_string">get_config_display_string()</a>, <a href="#method_ba_GameActivity__get_description">get_description()</a>, <a href="#method_ba_GameActivity__get_description_display_string">get_description_display_string()</a>, <a href="#method_ba_GameActivity__get_display_string">get_display_string()</a>, <a href="#method_ba_GameActivity__get_dynamic_deps">get_dynamic_deps()</a>, <a href="#method_ba_GameActivity__get_instance_description">get_instance_description()</a>, <a href="#method_ba_GameActivity__get_instance_display_string">get_instance_display_string()</a>, <a href="#method_ba_GameActivity__get_instance_scoreboard_description">get_instance_scoreboard_description()</a>, <a href="#method_ba_GameActivity__get_instance_scoreboard_display_string">get_instance_scoreboard_display_string()</a>, <a href="#method_ba_GameActivity__get_name">get_name()</a>, <a href="#method_ba_GameActivity__get_score_info">get_score_info()</a>, <a href="#method_ba_GameActivity__get_settings">get_settings()</a>, <a href="#method_ba_GameActivity__get_supported_maps">get_supported_maps()</a>, <a href="#method_ba_GameActivity__get_team_display_string">get_team_display_string()</a>, <a href="#method_ba_GameActivity__handlemessage">handlemessage()</a>, <a href="#method_ba_GameActivity__has_begun">has_begun()</a>, <a href="#method_ba_GameActivity__has_ended">has_ended()</a>, <a href="#method_ba_GameActivity__has_transitioned_in">has_transitioned_in()</a>, <a href="#method_ba_GameActivity__is_expired">is_expired()</a>, <a href="#method_ba_GameActivity__is_transitioning_out">is_transitioning_out()</a>, <a href="#method_ba_GameActivity__is_waiting_for_continue">is_waiting_for_continue()</a>, <a href="#method_ba_GameActivity__on_continue">on_continue()</a>, <a href="#method_ba_GameActivity__on_expire">on_expire()</a>, <a href="#method_ba_GameActivity__on_player_join">on_player_join()</a>, <a href="#method_ba_GameActivity__on_player_leave">on_player_leave()</a>, <a href="#method_ba_GameActivity__on_team_join">on_team_join()</a>, <a href="#method_ba_GameActivity__on_team_leave">on_team_leave()</a>, <a href="#method_ba_GameActivity__on_transition_in">on_transition_in()</a>, <a href="#method_ba_GameActivity__on_transition_out">on_transition_out()</a>, <a href="#method_ba_GameActivity__project_flag_stand">project_flag_stand()</a>, <a href="#method_ba_GameActivity__respawn_player">respawn_player()</a>, <a href="#method_ba_GameActivity__retain_actor">retain_actor()</a>, <a href="#method_ba_GameActivity__set_has_ended">set_has_ended()</a>, <a href="#method_ba_GameActivity__set_immediate_end">set_immediate_end()</a>, <a href="#method_ba_GameActivity__setup_standard_powerup_drops">setup_standard_powerup_drops()</a>, <a href="#method_ba_GameActivity__setup_standard_time_limit">setup_standard_time_limit()</a>, <a href="#method_ba_GameActivity__show_info">show_info()</a>, <a href="#method_ba_GameActivity__show_scoreboard_info">show_scoreboard_info()</a>, <a href="#method_ba_GameActivity__show_zoom_message">show_zoom_message()</a>, <a href="#method_ba_GameActivity__spawn_player">spawn_player()</a>, <a href="#method_ba_GameActivity__spawn_player_if_exists">spawn_player_if_exists()</a>, <a href="#method_ba_GameActivity__start_transition_in">start_transition_in()</a></h5>
|
||||||
<h3>Methods Defined or Overridden:</h3>
|
<h3>Methods Defined or Overridden:</h3>
|
||||||
<h5><a href="#method_ba_CoopGameActivity____init__"><constructor></a>, <a href="#method_ba_CoopGameActivity__celebrate">celebrate()</a>, <a href="#method_ba_CoopGameActivity__fade_to_red">fade_to_red()</a>, <a href="#method_ba_CoopGameActivity__get_score_type">get_score_type()</a>, <a href="#method_ba_CoopGameActivity__on_begin">on_begin()</a>, <a href="#method_ba_CoopGameActivity__setup_low_life_warning_sound">setup_low_life_warning_sound()</a>, <a href="#method_ba_CoopGameActivity__spawn_player_spaz">spawn_player_spaz()</a>, <a href="#method_ba_CoopGameActivity__supports_session_type">supports_session_type()</a></h5>
|
<h5><a href="#method_ba_CoopGameActivity____init__"><constructor></a>, <a href="#method_ba_CoopGameActivity__celebrate">celebrate()</a>, <a href="#method_ba_CoopGameActivity__fade_to_red">fade_to_red()</a>, <a href="#method_ba_CoopGameActivity__get_score_type">get_score_type()</a>, <a href="#method_ba_CoopGameActivity__on_begin">on_begin()</a>, <a href="#method_ba_CoopGameActivity__setup_low_life_warning_sound">setup_low_life_warning_sound()</a>, <a href="#method_ba_CoopGameActivity__spawn_player_spaz">spawn_player_spaz()</a>, <a href="#method_ba_CoopGameActivity__supports_session_type">supports_session_type()</a></h5>
|
||||||
<dl>
|
<dl>
|
||||||
@ -1987,7 +1989,7 @@ its time with lingering corpses, sound effects, etc.</p>
|
|||||||
<h3>Methods Inherited:</h3>
|
<h3>Methods Inherited:</h3>
|
||||||
<h5><a href="#method_ba_Activity__add_actor_weak_ref">add_actor_weak_ref()</a>, <a href="#method_ba_Activity__begin">begin()</a>, <a href="#method_ba_Activity__create_player_node">create_player_node()</a>, <a href="#method_ba_Activity__dep_is_present">dep_is_present()</a>, <a href="#method_ba_Activity__get_dynamic_deps">get_dynamic_deps()</a>, <a href="#method_ba_Activity__has_begun">has_begun()</a>, <a href="#method_ba_Activity__has_ended">has_ended()</a>, <a href="#method_ba_Activity__has_transitioned_in">has_transitioned_in()</a>, <a href="#method_ba_Activity__is_expired">is_expired()</a>, <a href="#method_ba_Activity__is_transitioning_out">is_transitioning_out()</a>, <a href="#method_ba_Activity__on_expire">on_expire()</a>, <a href="#method_ba_Activity__on_team_join">on_team_join()</a>, <a href="#method_ba_Activity__on_team_leave">on_team_leave()</a>, <a href="#method_ba_Activity__on_transition_out">on_transition_out()</a>, <a href="#method_ba_Activity__retain_actor">retain_actor()</a>, <a href="#method_ba_Activity__set_has_ended">set_has_ended()</a>, <a href="#method_ba_Activity__set_immediate_end">set_immediate_end()</a>, <a href="#method_ba_Activity__start_transition_in">start_transition_in()</a></h5>
|
<h5><a href="#method_ba_Activity__add_actor_weak_ref">add_actor_weak_ref()</a>, <a href="#method_ba_Activity__begin">begin()</a>, <a href="#method_ba_Activity__create_player_node">create_player_node()</a>, <a href="#method_ba_Activity__dep_is_present">dep_is_present()</a>, <a href="#method_ba_Activity__get_dynamic_deps">get_dynamic_deps()</a>, <a href="#method_ba_Activity__has_begun">has_begun()</a>, <a href="#method_ba_Activity__has_ended">has_ended()</a>, <a href="#method_ba_Activity__has_transitioned_in">has_transitioned_in()</a>, <a href="#method_ba_Activity__is_expired">is_expired()</a>, <a href="#method_ba_Activity__is_transitioning_out">is_transitioning_out()</a>, <a href="#method_ba_Activity__on_expire">on_expire()</a>, <a href="#method_ba_Activity__on_team_join">on_team_join()</a>, <a href="#method_ba_Activity__on_team_leave">on_team_leave()</a>, <a href="#method_ba_Activity__on_transition_out">on_transition_out()</a>, <a href="#method_ba_Activity__retain_actor">retain_actor()</a>, <a href="#method_ba_Activity__set_has_ended">set_has_ended()</a>, <a href="#method_ba_Activity__set_immediate_end">set_immediate_end()</a>, <a href="#method_ba_Activity__start_transition_in">start_transition_in()</a></h5>
|
||||||
<h3>Methods Defined or Overridden:</h3>
|
<h3>Methods Defined or Overridden:</h3>
|
||||||
<h5><a href="#method_ba_GameActivity____init__"><constructor></a>, <a href="#method_ba_GameActivity__continue_or_end_game">continue_or_end_game()</a>, <a href="#method_ba_GameActivity__create_config_ui">create_config_ui()</a>, <a href="#method_ba_GameActivity__end">end()</a>, <a href="#method_ba_GameActivity__end_game">end_game()</a>, <a href="#method_ba_GameActivity__get_config_display_string">get_config_display_string()</a>, <a href="#method_ba_GameActivity__get_description">get_description()</a>, <a href="#method_ba_GameActivity__get_description_display_string">get_description_display_string()</a>, <a href="#method_ba_GameActivity__get_display_string">get_display_string()</a>, <a href="#method_ba_GameActivity__get_instance_description">get_instance_description()</a>, <a href="#method_ba_GameActivity__get_instance_display_string">get_instance_display_string()</a>, <a href="#method_ba_GameActivity__get_instance_scoreboard_description">get_instance_scoreboard_description()</a>, <a href="#method_ba_GameActivity__get_instance_scoreboard_display_string">get_instance_scoreboard_display_string()</a>, <a href="#method_ba_GameActivity__get_name">get_name()</a>, <a href="#method_ba_GameActivity__get_resolved_score_info">get_resolved_score_info()</a>, <a href="#method_ba_GameActivity__get_score_info">get_score_info()</a>, <a href="#method_ba_GameActivity__get_settings">get_settings()</a>, <a href="#method_ba_GameActivity__get_supported_maps">get_supported_maps()</a>, <a href="#method_ba_GameActivity__get_team_display_string">get_team_display_string()</a>, <a href="#method_ba_GameActivity__handlemessage">handlemessage()</a>, <a href="#method_ba_GameActivity__is_waiting_for_continue">is_waiting_for_continue()</a>, <a href="#method_ba_GameActivity__on_begin">on_begin()</a>, <a href="#method_ba_GameActivity__on_continue">on_continue()</a>, <a href="#method_ba_GameActivity__on_player_join">on_player_join()</a>, <a href="#method_ba_GameActivity__on_player_leave">on_player_leave()</a>, <a href="#method_ba_GameActivity__on_transition_in">on_transition_in()</a>, <a href="#method_ba_GameActivity__project_flag_stand">project_flag_stand()</a>, <a href="#method_ba_GameActivity__respawn_player">respawn_player()</a>, <a href="#method_ba_GameActivity__setup_standard_powerup_drops">setup_standard_powerup_drops()</a>, <a href="#method_ba_GameActivity__setup_standard_time_limit">setup_standard_time_limit()</a>, <a href="#method_ba_GameActivity__show_info">show_info()</a>, <a href="#method_ba_GameActivity__show_scoreboard_info">show_scoreboard_info()</a>, <a href="#method_ba_GameActivity__show_zoom_message">show_zoom_message()</a>, <a href="#method_ba_GameActivity__spawn_player">spawn_player()</a>, <a href="#method_ba_GameActivity__spawn_player_if_exists">spawn_player_if_exists()</a>, <a href="#method_ba_GameActivity__spawn_player_spaz">spawn_player_spaz()</a>, <a href="#method_ba_GameActivity__supports_session_type">supports_session_type()</a></h5>
|
<h5><a href="#method_ba_GameActivity____init__"><constructor></a>, <a href="#method_ba_GameActivity__continue_or_end_game">continue_or_end_game()</a>, <a href="#method_ba_GameActivity__create_config_ui">create_config_ui()</a>, <a href="#method_ba_GameActivity__end">end()</a>, <a href="#method_ba_GameActivity__end_game">end_game()</a>, <a href="#method_ba_GameActivity__get_config_display_string">get_config_display_string()</a>, <a href="#method_ba_GameActivity__get_description">get_description()</a>, <a href="#method_ba_GameActivity__get_description_display_string">get_description_display_string()</a>, <a href="#method_ba_GameActivity__get_display_string">get_display_string()</a>, <a href="#method_ba_GameActivity__get_instance_description">get_instance_description()</a>, <a href="#method_ba_GameActivity__get_instance_display_string">get_instance_display_string()</a>, <a href="#method_ba_GameActivity__get_instance_scoreboard_description">get_instance_scoreboard_description()</a>, <a href="#method_ba_GameActivity__get_instance_scoreboard_display_string">get_instance_scoreboard_display_string()</a>, <a href="#method_ba_GameActivity__get_name">get_name()</a>, <a href="#method_ba_GameActivity__get_score_info">get_score_info()</a>, <a href="#method_ba_GameActivity__get_settings">get_settings()</a>, <a href="#method_ba_GameActivity__get_supported_maps">get_supported_maps()</a>, <a href="#method_ba_GameActivity__get_team_display_string">get_team_display_string()</a>, <a href="#method_ba_GameActivity__handlemessage">handlemessage()</a>, <a href="#method_ba_GameActivity__is_waiting_for_continue">is_waiting_for_continue()</a>, <a href="#method_ba_GameActivity__on_begin">on_begin()</a>, <a href="#method_ba_GameActivity__on_continue">on_continue()</a>, <a href="#method_ba_GameActivity__on_player_join">on_player_join()</a>, <a href="#method_ba_GameActivity__on_player_leave">on_player_leave()</a>, <a href="#method_ba_GameActivity__on_transition_in">on_transition_in()</a>, <a href="#method_ba_GameActivity__project_flag_stand">project_flag_stand()</a>, <a href="#method_ba_GameActivity__respawn_player">respawn_player()</a>, <a href="#method_ba_GameActivity__setup_standard_powerup_drops">setup_standard_powerup_drops()</a>, <a href="#method_ba_GameActivity__setup_standard_time_limit">setup_standard_time_limit()</a>, <a href="#method_ba_GameActivity__show_info">show_info()</a>, <a href="#method_ba_GameActivity__show_scoreboard_info">show_scoreboard_info()</a>, <a href="#method_ba_GameActivity__show_zoom_message">show_zoom_message()</a>, <a href="#method_ba_GameActivity__spawn_player">spawn_player()</a>, <a href="#method_ba_GameActivity__spawn_player_if_exists">spawn_player_if_exists()</a>, <a href="#method_ba_GameActivity__spawn_player_spaz">spawn_player_spaz()</a>, <a href="#method_ba_GameActivity__supports_session_type">supports_session_type()</a></h5>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><h4><a name="method_ba_GameActivity____init__"><constructor></a></dt></h4><dd>
|
<dt><h4><a name="method_ba_GameActivity____init__"><constructor></a></dt></h4><dd>
|
||||||
<p><span>ba.GameActivity(settings: Dict[str, Any])</span></p>
|
<p><span>ba.GameActivity(settings: Dict[str, Any])</span></p>
|
||||||
@ -2156,38 +2158,12 @@ of the screen, so it should be as concise as possible.</p>
|
|||||||
|
|
||||||
<p>Return a str name for this game type.</p>
|
<p>Return a str name for this game type.</p>
|
||||||
|
|
||||||
</dd>
|
|
||||||
<dt><h4><a name="method_ba_GameActivity__get_resolved_score_info">get_resolved_score_info()</a></dt></h4><dd>
|
|
||||||
<h5><span><em><class method></span></em></h5>
|
|
||||||
<p><span>get_resolved_score_info() -> Dict[str, Any] </span></p>
|
|
||||||
|
|
||||||
<p>Call this to return a game's score info with all missing values
|
|
||||||
filled in with defaults. This should not be overridden; override
|
|
||||||
get_score_info() instead.</p>
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
<dt><h4><a name="method_ba_GameActivity__get_score_info">get_score_info()</a></dt></h4><dd>
|
<dt><h4><a name="method_ba_GameActivity__get_score_info">get_score_info()</a></dt></h4><dd>
|
||||||
<h5><span><em><class method></span></em></h5>
|
<h5><span><em><class method></span></em></h5>
|
||||||
<p><span>get_score_info() -> Dict[str, Any] </span></p>
|
<p><span>get_score_info() -> <a href="#class_ba_ScoreInfo">ba.ScoreInfo</a> </span></p>
|
||||||
|
|
||||||
<p>Return info about game scoring setup; should be overridden by games.</p>
|
<p>Return info about game scoring setup; can be overridden by games.</p>
|
||||||
|
|
||||||
<p>They should return a dict containing any of the following (missing
|
|
||||||
values will be default):</p>
|
|
||||||
|
|
||||||
<p>'score_name': a label shown to the user for scores; 'Score',
|
|
||||||
'Time Survived', etc. 'Score' is the default.</p>
|
|
||||||
|
|
||||||
<p>'lower_is_better': a boolean telling whether lower scores are
|
|
||||||
preferable instead of higher (the default).</p>
|
|
||||||
|
|
||||||
<p>'none_is_winner': specifies whether a score value of None is considered
|
|
||||||
better than other scores or worse. Default is False.</p>
|
|
||||||
|
|
||||||
<p>'score_type': can be 'seconds', 'milliseconds', or 'points'.</p>
|
|
||||||
|
|
||||||
<p>'score_version': to change high-score lists used by a game without
|
|
||||||
renaming the game, change this. Defaults to empty string.</p>
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
<dt><h4><a name="method_ba_GameActivity__get_settings">get_settings()</a></dt></h4><dd>
|
<dt><h4><a name="method_ba_GameActivity__get_settings">get_settings()</a></dt></h4><dd>
|
||||||
@ -4008,6 +3984,66 @@ cause the powerup box to make a sound and disappear or whatnot.</p>
|
|||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<hr>
|
<hr>
|
||||||
|
<h2><strong><a name="class_ba_ScoreInfo">ba.ScoreInfo</a></strong></h3>
|
||||||
|
<p><em><top level class></em>
|
||||||
|
</p>
|
||||||
|
<p>Info about a game's scoring setup.</p>
|
||||||
|
|
||||||
|
<p>Category: <a href="#class_category_Gameplay_Classes">Gameplay Classes</a></p>
|
||||||
|
|
||||||
|
<h3>Attributes:</h3>
|
||||||
|
<h5><a href="#attr_ba_ScoreInfo__label">label</a>, <a href="#attr_ba_ScoreInfo__lower_is_better">lower_is_better</a>, <a href="#attr_ba_ScoreInfo__none_is_winner">none_is_winner</a>, <a href="#attr_ba_ScoreInfo__scoretype">scoretype</a>, <a href="#attr_ba_ScoreInfo__version">version</a></h5>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><a name="attr_ba_ScoreInfo__label">label</a></h4></dt><dd>
|
||||||
|
<p><span>str</span></p>
|
||||||
|
<p>A label show to the user for scores; 'Score', 'Time Survived', etc.</p>
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt><h4><a name="attr_ba_ScoreInfo__lower_is_better">lower_is_better</a></h4></dt><dd>
|
||||||
|
<p><span>bool</span></p>
|
||||||
|
<p>Whether lower scores are preferable. Higher scores are by default.</p>
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt><h4><a name="attr_ba_ScoreInfo__none_is_winner">none_is_winner</a></h4></dt><dd>
|
||||||
|
<p><span>bool</span></p>
|
||||||
|
<p>Whether a value of None is considered better than other scores.
|
||||||
|
By default it is not.</p>
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt><h4><a name="attr_ba_ScoreInfo__scoretype">scoretype</a></h4></dt><dd>
|
||||||
|
<p><span><a href="#class_ba_ScoreType">ba.ScoreType</a></span></p>
|
||||||
|
<p>How the score value should be displayed.</p>
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
<dt><h4><a name="attr_ba_ScoreInfo__version">version</a></h4></dt><dd>
|
||||||
|
<p><span>str</span></p>
|
||||||
|
<p>To change high-score lists used by a game without renaming the game,
|
||||||
|
change this. Defaults to an empty string.</p>
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<h3>Methods:</h3>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><a name="method_ba_ScoreInfo____init__"><constructor></a></dt></h4><dd>
|
||||||
|
<p><span>ba.ScoreInfo(label: 'str' = 'Score', scoretype: '<a href="#class_ba_ScoreType">ba.ScoreType</a>' = <ScoreType.POINTS: 'p'>, lower_is_better: 'bool' = False, none_is_winner: 'bool' = False, version: 'str' = '')</span></p>
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<hr>
|
||||||
|
<h2><strong><a name="class_ba_ScoreType">ba.ScoreType</a></strong></h3>
|
||||||
|
<p>inherits from: enum.Enum</p>
|
||||||
|
<p>Type of scores.</p>
|
||||||
|
|
||||||
|
<p>Category: <a href="#class_category_Enums">Enums</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Values:</h3>
|
||||||
|
<ul>
|
||||||
|
<li>SECONDS</li>
|
||||||
|
<li>MILLISECONDS</li>
|
||||||
|
<li>POINTS</li>
|
||||||
|
</ul>
|
||||||
|
<hr>
|
||||||
<h2><strong><a name="class_ba_ServerController">ba.ServerController</a></strong></h3>
|
<h2><strong><a name="class_ba_ServerController">ba.ServerController</a></strong></h3>
|
||||||
<p><em><top level class></em>
|
<p><em><top level class></em>
|
||||||
</p>
|
</p>
|
||||||
@ -4571,7 +4607,7 @@ of the session.</p>
|
|||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<h3>Methods Inherited:</h3>
|
<h3>Methods Inherited:</h3>
|
||||||
<h5><a href="#method_ba_GameActivity__add_actor_weak_ref">add_actor_weak_ref()</a>, <a href="#method_ba_GameActivity__begin">begin()</a>, <a href="#method_ba_GameActivity__continue_or_end_game">continue_or_end_game()</a>, <a href="#method_ba_GameActivity__create_config_ui">create_config_ui()</a>, <a href="#method_ba_GameActivity__create_player_node">create_player_node()</a>, <a href="#method_ba_GameActivity__dep_is_present">dep_is_present()</a>, <a href="#method_ba_GameActivity__end_game">end_game()</a>, <a href="#method_ba_GameActivity__get_config_display_string">get_config_display_string()</a>, <a href="#method_ba_GameActivity__get_description">get_description()</a>, <a href="#method_ba_GameActivity__get_description_display_string">get_description_display_string()</a>, <a href="#method_ba_GameActivity__get_display_string">get_display_string()</a>, <a href="#method_ba_GameActivity__get_dynamic_deps">get_dynamic_deps()</a>, <a href="#method_ba_GameActivity__get_instance_description">get_instance_description()</a>, <a href="#method_ba_GameActivity__get_instance_display_string">get_instance_display_string()</a>, <a href="#method_ba_GameActivity__get_instance_scoreboard_description">get_instance_scoreboard_description()</a>, <a href="#method_ba_GameActivity__get_instance_scoreboard_display_string">get_instance_scoreboard_display_string()</a>, <a href="#method_ba_GameActivity__get_name">get_name()</a>, <a href="#method_ba_GameActivity__get_resolved_score_info">get_resolved_score_info()</a>, <a href="#method_ba_GameActivity__get_score_info">get_score_info()</a>, <a href="#method_ba_GameActivity__get_settings">get_settings()</a>, <a href="#method_ba_GameActivity__get_supported_maps">get_supported_maps()</a>, <a href="#method_ba_GameActivity__get_team_display_string">get_team_display_string()</a>, <a href="#method_ba_GameActivity__handlemessage">handlemessage()</a>, <a href="#method_ba_GameActivity__has_begun">has_begun()</a>, <a href="#method_ba_GameActivity__has_ended">has_ended()</a>, <a href="#method_ba_GameActivity__has_transitioned_in">has_transitioned_in()</a>, <a href="#method_ba_GameActivity__is_expired">is_expired()</a>, <a href="#method_ba_GameActivity__is_transitioning_out">is_transitioning_out()</a>, <a href="#method_ba_GameActivity__is_waiting_for_continue">is_waiting_for_continue()</a>, <a href="#method_ba_GameActivity__on_continue">on_continue()</a>, <a href="#method_ba_GameActivity__on_expire">on_expire()</a>, <a href="#method_ba_GameActivity__on_player_join">on_player_join()</a>, <a href="#method_ba_GameActivity__on_player_leave">on_player_leave()</a>, <a href="#method_ba_GameActivity__on_team_join">on_team_join()</a>, <a href="#method_ba_GameActivity__on_team_leave">on_team_leave()</a>, <a href="#method_ba_GameActivity__on_transition_out">on_transition_out()</a>, <a href="#method_ba_GameActivity__project_flag_stand">project_flag_stand()</a>, <a href="#method_ba_GameActivity__respawn_player">respawn_player()</a>, <a href="#method_ba_GameActivity__retain_actor">retain_actor()</a>, <a href="#method_ba_GameActivity__set_has_ended">set_has_ended()</a>, <a href="#method_ba_GameActivity__set_immediate_end">set_immediate_end()</a>, <a href="#method_ba_GameActivity__setup_standard_powerup_drops">setup_standard_powerup_drops()</a>, <a href="#method_ba_GameActivity__setup_standard_time_limit">setup_standard_time_limit()</a>, <a href="#method_ba_GameActivity__show_info">show_info()</a>, <a href="#method_ba_GameActivity__show_scoreboard_info">show_scoreboard_info()</a>, <a href="#method_ba_GameActivity__show_zoom_message">show_zoom_message()</a>, <a href="#method_ba_GameActivity__spawn_player">spawn_player()</a>, <a href="#method_ba_GameActivity__spawn_player_if_exists">spawn_player_if_exists()</a>, <a href="#method_ba_GameActivity__start_transition_in">start_transition_in()</a></h5>
|
<h5><a href="#method_ba_GameActivity__add_actor_weak_ref">add_actor_weak_ref()</a>, <a href="#method_ba_GameActivity__begin">begin()</a>, <a href="#method_ba_GameActivity__continue_or_end_game">continue_or_end_game()</a>, <a href="#method_ba_GameActivity__create_config_ui">create_config_ui()</a>, <a href="#method_ba_GameActivity__create_player_node">create_player_node()</a>, <a href="#method_ba_GameActivity__dep_is_present">dep_is_present()</a>, <a href="#method_ba_GameActivity__end_game">end_game()</a>, <a href="#method_ba_GameActivity__get_config_display_string">get_config_display_string()</a>, <a href="#method_ba_GameActivity__get_description">get_description()</a>, <a href="#method_ba_GameActivity__get_description_display_string">get_description_display_string()</a>, <a href="#method_ba_GameActivity__get_display_string">get_display_string()</a>, <a href="#method_ba_GameActivity__get_dynamic_deps">get_dynamic_deps()</a>, <a href="#method_ba_GameActivity__get_instance_description">get_instance_description()</a>, <a href="#method_ba_GameActivity__get_instance_display_string">get_instance_display_string()</a>, <a href="#method_ba_GameActivity__get_instance_scoreboard_description">get_instance_scoreboard_description()</a>, <a href="#method_ba_GameActivity__get_instance_scoreboard_display_string">get_instance_scoreboard_display_string()</a>, <a href="#method_ba_GameActivity__get_name">get_name()</a>, <a href="#method_ba_GameActivity__get_score_info">get_score_info()</a>, <a href="#method_ba_GameActivity__get_settings">get_settings()</a>, <a href="#method_ba_GameActivity__get_supported_maps">get_supported_maps()</a>, <a href="#method_ba_GameActivity__get_team_display_string">get_team_display_string()</a>, <a href="#method_ba_GameActivity__handlemessage">handlemessage()</a>, <a href="#method_ba_GameActivity__has_begun">has_begun()</a>, <a href="#method_ba_GameActivity__has_ended">has_ended()</a>, <a href="#method_ba_GameActivity__has_transitioned_in">has_transitioned_in()</a>, <a href="#method_ba_GameActivity__is_expired">is_expired()</a>, <a href="#method_ba_GameActivity__is_transitioning_out">is_transitioning_out()</a>, <a href="#method_ba_GameActivity__is_waiting_for_continue">is_waiting_for_continue()</a>, <a href="#method_ba_GameActivity__on_continue">on_continue()</a>, <a href="#method_ba_GameActivity__on_expire">on_expire()</a>, <a href="#method_ba_GameActivity__on_player_join">on_player_join()</a>, <a href="#method_ba_GameActivity__on_player_leave">on_player_leave()</a>, <a href="#method_ba_GameActivity__on_team_join">on_team_join()</a>, <a href="#method_ba_GameActivity__on_team_leave">on_team_leave()</a>, <a href="#method_ba_GameActivity__on_transition_out">on_transition_out()</a>, <a href="#method_ba_GameActivity__project_flag_stand">project_flag_stand()</a>, <a href="#method_ba_GameActivity__respawn_player">respawn_player()</a>, <a href="#method_ba_GameActivity__retain_actor">retain_actor()</a>, <a href="#method_ba_GameActivity__set_has_ended">set_has_ended()</a>, <a href="#method_ba_GameActivity__set_immediate_end">set_immediate_end()</a>, <a href="#method_ba_GameActivity__setup_standard_powerup_drops">setup_standard_powerup_drops()</a>, <a href="#method_ba_GameActivity__setup_standard_time_limit">setup_standard_time_limit()</a>, <a href="#method_ba_GameActivity__show_info">show_info()</a>, <a href="#method_ba_GameActivity__show_scoreboard_info">show_scoreboard_info()</a>, <a href="#method_ba_GameActivity__show_zoom_message">show_zoom_message()</a>, <a href="#method_ba_GameActivity__spawn_player">spawn_player()</a>, <a href="#method_ba_GameActivity__spawn_player_if_exists">spawn_player_if_exists()</a>, <a href="#method_ba_GameActivity__start_transition_in">start_transition_in()</a></h5>
|
||||||
<h3>Methods Defined or Overridden:</h3>
|
<h3>Methods Defined or Overridden:</h3>
|
||||||
<h5><a href="#method_ba_TeamGameActivity____init__"><constructor></a>, <a href="#method_ba_TeamGameActivity__end">end()</a>, <a href="#method_ba_TeamGameActivity__on_begin">on_begin()</a>, <a href="#method_ba_TeamGameActivity__on_transition_in">on_transition_in()</a>, <a href="#method_ba_TeamGameActivity__spawn_player_spaz">spawn_player_spaz()</a>, <a href="#method_ba_TeamGameActivity__supports_session_type">supports_session_type()</a></h5>
|
<h5><a href="#method_ba_TeamGameActivity____init__"><constructor></a>, <a href="#method_ba_TeamGameActivity__end">end()</a>, <a href="#method_ba_TeamGameActivity__on_begin">on_begin()</a>, <a href="#method_ba_TeamGameActivity__on_transition_in">on_transition_in()</a>, <a href="#method_ba_TeamGameActivity__spawn_player_spaz">spawn_player_spaz()</a>, <a href="#method_ba_TeamGameActivity__supports_session_type">supports_session_type()</a></h5>
|
||||||
<dl>
|
<dl>
|
||||||
@ -4669,7 +4705,7 @@ Results for a completed <a href="#class_ba_TeamGameActivity">ba.TeamGameActivity
|
|||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
<dt><h4><a name="method_ba_TeamGameResults__get_score_type">get_score_type()</a></dt></h4><dd>
|
<dt><h4><a name="method_ba_TeamGameResults__get_score_type">get_score_type()</a></dt></h4><dd>
|
||||||
<p><span>get_score_type(self) -> str</span></p>
|
<p><span>get_score_type(self) -> <a href="#class_ba_ScoreType">ba.ScoreType</a></span></p>
|
||||||
|
|
||||||
<p>Get the type of score.</p>
|
<p>Get the type of score.</p>
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user