diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 79d65c64..ae0de83b 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -32,3 +32,6 @@ ### Droopy - Fixes in some minigames + +### Easy10781 +- Added feature diff --git a/assets/src/ba_data/python/ba/_gameactivity.py b/assets/src/ba_data/python/ba/_gameactivity.py index 419eae0f..2580e4c0 100644 --- a/assets/src/ba_data/python/ba/_gameactivity.py +++ b/assets/src/ba_data/python/ba/_gameactivity.py @@ -853,12 +853,16 @@ class GameActivity(Activity[PlayerType, TeamType]): color = player.color highlight = player.highlight + playerspaztype = getattr(player, 'playerspaztype', PlayerSpaz) + if not issubclass(playerspaztype, PlayerSpaz): + playerspaztype = PlayerSpaz + light_color = _math.normalized_color(color) display_color = _ba.safecolor(color, target_intensity=0.75) - spaz = PlayerSpaz(color=color, - highlight=highlight, - character=player.character, - player=player) + spaz = playerspaztype(color=color, + highlight=highlight, + character=player.character, + player=player) player.actor = spaz assert spaz.node diff --git a/assets/src/ba_data/python/ba/_player.py b/assets/src/ba_data/python/ba/_player.py index 965213dd..04a4673a 100644 --- a/assets/src/ba_data/python/ba/_player.py +++ b/assets/src/ba_data/python/ba/_player.py @@ -15,6 +15,7 @@ from ba._messages import DeathType, DieMessage if TYPE_CHECKING: from typing import Optional, Sequence, Any, Union, Callable import ba + from bastd.actor.playerspaz import PlayerSpaz # pylint: disable=invalid-name PlayerType = TypeVar('PlayerType', bound='ba.Player') @@ -62,6 +63,8 @@ class Player(Generic[TeamType]): color: Sequence[float] highlight: Sequence[float] + playerspaztype: Optional[type[PlayerSpaz]] + _team: TeamType _sessionplayer: ba.SessionPlayer _nodeactor: Optional[ba.NodeActor]