def on_player_join(self, player: ba.Player) -> None: from ba import _general super().on_player_join(player) time_till_assign = max( 0, self._birth_time + self._min_view_time - _ba.time()) # If we're still kicking at the end of our assign-delay, assign this # guy's input to trigger us. _ba.timer(time_till_assign, _general.WeakCall(self._safe_assign, player))
def on_begin(self) -> None: from ba import _general super().on_begin() # Show achievements remaining. if not _ba.app.kiosk_mode: _ba.timer(3.8, _general.WeakCall(self._show_remaining_achievements)) # Preload achievement images in case we get some. _ba.timer(2.0, _general.WeakCall(self._preload_achievements)) # Let's ask the server for a 'time-to-beat' value. levelname = self._get_coop_level_name() campaign = self.session.campaign assert campaign is not None config_str = (str(len(self.players)) + "p" + campaign.get_level( self.settings['name']).get_score_version_string().replace( ' ', '_')) _ba.get_scores_to_beat(levelname, config_str, _general.WeakCall(self._on_got_scores_to_beat))
def setup_low_life_warning_sound(self) -> None: """Set up a beeping noise to play when any players are near death.""" from ba import _general self._life_warning_beep = None self._life_warning_beep_timer = _ba.Timer( 1.0, _general.WeakCall(self._update_life_warning), repeat=True)