This commit is contained in:
Eric Froemling 2020-04-09 22:53:19 -07:00
parent 64aff1306f
commit dc7538b72e
2 changed files with 22 additions and 30 deletions

View File

@ -29,6 +29,8 @@ from typing import TYPE_CHECKING
import _ba import _ba
import ba import ba
from ba.internal import get_achievements_for_coop_level from ba.internal import get_achievements_for_coop_level
from bastd.actor.text import Text
from bastd.actor.zoomtext import ZoomText
if TYPE_CHECKING: if TYPE_CHECKING:
from typing import Optional, Tuple, List, Dict, Any, Sequence from typing import Optional, Tuple, List, Dict, Any, Sequence
@ -50,9 +52,6 @@ class CoopScoreScreen(ba.Activity):
self.inherits_music = True self.inherits_music = True
self.use_fixed_vr_overlay = True self.use_fixed_vr_overlay = True
self._tournament_time_remaining = None
self._tournament_time_remaining_text = None
self._do_new_rating: bool = self.session.tournament_id is not None self._do_new_rating: bool = self.session.tournament_id is not None
self._score_display_sound = ba.getsound("scoreHit01") self._score_display_sound = ba.getsound("scoreHit01")
@ -134,6 +133,8 @@ class CoopScoreScreen(ba.Activity):
self._name_str: Optional[str] = None self._name_str: Optional[str] = None
self._friends_loading_status: Optional[ba.Actor] = None self._friends_loading_status: Optional[ba.Actor] = None
self._score_loading_status: Optional[ba.Actor] = None self._score_loading_status: Optional[ba.Actor] = None
self._tournament_time_remaining: Optional[float] = None
self._tournament_time_remaining_text: Optional[Text] = None
self._tournament_time_remaining_text_timer: Optional[ba.Timer] = None self._tournament_time_remaining_text_timer: Optional[ba.Timer] = None
self._player_info = settings['player_info'] self._player_info = settings['player_info']
@ -288,7 +289,6 @@ class CoopScoreScreen(ba.Activity):
ba.open_url(self._score_link) ba.open_url(self._score_link)
def _ui_error(self) -> None: def _ui_error(self) -> None:
from bastd.actor.text import Text
with ba.Context(self): with ba.Context(self):
self._next_level_error = Text( self._next_level_error = Text(
ba.Lstr(resource='completeThisLevelToProceedText'), ba.Lstr(resource='completeThisLevelToProceedText'),
@ -515,8 +515,6 @@ class CoopScoreScreen(ba.Activity):
# pylint: disable=too-many-statements # pylint: disable=too-many-statements
# pylint: disable=too-many-branches # pylint: disable=too-many-branches
# pylint: disable=too-many-locals # pylint: disable=too-many-locals
from bastd.actor.text import Text
from bastd.actor.zoomtext import ZoomText
super().on_begin() super().on_begin()
# Calc whether the level is complete and other stuff. # Calc whether the level is complete and other stuff.
@ -893,7 +891,6 @@ class CoopScoreScreen(ba.Activity):
# pylint: disable=too-many-branches # pylint: disable=too-many-branches
# pylint: disable=too-many-statements # pylint: disable=too-many-statements
# delay a bit if results come in too fast # delay a bit if results come in too fast
from bastd.actor.text import Text
base_delay = max(0, 1.9 - (ba.time() - self._begin_time)) base_delay = max(0, 1.9 - (ba.time() - self._begin_time))
ts_height = 300 ts_height = 300
ts_h_offs = -550 ts_h_offs = -550
@ -1009,7 +1006,6 @@ class CoopScoreScreen(ba.Activity):
# We need to manually run this in the context of our activity # We need to manually run this in the context of our activity
# and only if we aren't shutting down. # and only if we aren't shutting down.
# (really should make the submit_score call handle that stuff itself) # (really should make the submit_score call handle that stuff itself)
from bastd.actor.text import Text
if self.is_expired(): if self.is_expired():
return return
with ba.Context(self): with ba.Context(self):
@ -1169,10 +1165,9 @@ class CoopScoreScreen(ba.Activity):
# pylint: disable=too-many-branches # pylint: disable=too-many-branches
# pylint: disable=too-many-statements # pylint: disable=too-many-statements
from ba.internal import get_tournament_prize_strings from ba.internal import get_tournament_prize_strings
from bastd.actor.text import Text
from bastd.actor.zoomtext import ZoomText
assert self._show_info is not None assert self._show_info is not None
available = (self._show_info['results'] is not None) available = (self._show_info['results'] is not None)
if available: if available:
error = (self._show_info['results']['error'] error = (self._show_info['results']['error']
if 'error' in self._show_info['results'] else None) if 'error' in self._show_info['results'] else None)
@ -1193,22 +1188,22 @@ class CoopScoreScreen(ba.Activity):
Text(ba.Lstr(resource='coopSelectWindow.timeRemainingText'), Text(ba.Lstr(resource='coopSelectWindow.timeRemainingText'),
position=(-360, -70 - 100), position=(-360, -70 - 100),
color=(1, 1, 1, 0.7), color=(1, 1, 1, 0.7),
h_align='center', h_align=Text.HAlign.CENTER,
v_align='center', v_align=Text.VAlign.CENTER,
transition='fade_in', transition=Text.Transition.FADE_IN,
scale=0.8, scale=0.8,
maxwidth=300, maxwidth=300,
transition_delay=2.0).autoretain() transition_delay=2.0).autoretain()
self._tournament_time_remaining_text = Text('', self._tournament_time_remaining_text = Text(
position=(-360, '',
-110 - 100), position=(-360, -110 - 100),
color=(1, 1, 1, 0.7), color=(1, 1, 1, 0.7),
h_align='center', h_align=Text.HAlign.CENTER,
v_align='center', v_align=Text.VAlign.CENTER,
transition='fade_in', transition=Text.Transition.FADE_IN,
scale=1.6, scale=1.6,
maxwidth=150, maxwidth=150,
transition_delay=2.0) transition_delay=2.0)
# If we're a tournament, show prizes. # If we're a tournament, show prizes.
try: try:
@ -1439,8 +1434,6 @@ class CoopScoreScreen(ba.Activity):
ba.timer(0.35, ba.Call(ba.playsound, self.cymbal_sound)) ba.timer(0.35, ba.Call(ba.playsound, self.cymbal_sound))
def _show_fail(self) -> None: def _show_fail(self) -> None:
from bastd.actor.text import Text
from bastd.actor.zoomtext import ZoomText
ZoomText(ba.Lstr(resource='failText'), ZoomText(ba.Lstr(resource='failText'),
maxwidth=300, maxwidth=300,
flash=False, flash=False,
@ -1460,8 +1453,6 @@ class CoopScoreScreen(ba.Activity):
ba.timer(0.35, ba.Call(ba.playsound, self._score_display_sound)) ba.timer(0.35, ba.Call(ba.playsound, self._score_display_sound))
def _show_score_val(self, offs_x: float) -> None: def _show_score_val(self, offs_x: float) -> None:
from bastd.actor.text import Text
from bastd.actor.zoomtext import ZoomText
assert self._score_type is not None assert self._score_type is not None
assert self._score is not None assert self._score is not None
ZoomText((str(self._score) if self._score_type == 'points' else ZoomText((str(self._score) if self._score_type == 'points' else

View File

@ -1052,7 +1052,8 @@ class TNTSpawner:
self._position = position self._position = position
self._tnt: Optional[Bomb] = None self._tnt: Optional[Bomb] = None
self._update() self._update()
# (go with slightly more than 1 second to avoid timer stacking)
# Go with slightly more than 1 second to avoid timer stacking.
self._update_timer = ba.Timer(1.1, self._update_timer = ba.Timer(1.1,
ba.WeakCall(self._update), ba.WeakCall(self._update),
repeat=True) repeat=True)
@ -1062,8 +1063,8 @@ class TNTSpawner:
def _update(self) -> None: def _update(self) -> None:
tnt_alive = self._tnt is not None and self._tnt.node tnt_alive = self._tnt is not None and self._tnt.node
if not tnt_alive: if not tnt_alive:
# respawn if its been long enough.. otherwise just increment our # Respawn if its been long enough.. otherwise just increment our
# how-long-since-we-died value # how-long-since-we-died value.
if self._tnt is None or self._wait_time >= self._respawn_time: if self._tnt is None or self._wait_time >= self._respawn_time:
self._tnt = Bomb(position=self._position, bomb_type='tnt') self._tnt = Bomb(position=self._position, bomb_type='tnt')
self._wait_time = 0.0 self._wait_time = 0.0