mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-30 03:03:30 +08:00
Merge pull request #12 from Dmitry450/master
Fixed coop version of race
This commit is contained in:
commit
8c98f333d3
@ -821,7 +821,8 @@ class CoopScoreScreen(ba.Activity):
|
||||
tdelay2 = times[i][1]
|
||||
Text(str(display_scores[i][0]) if self._score_type == 'points'
|
||||
else ba.timestring(display_scores[i][0] * 10,
|
||||
timeformat=ba.TimeFormat.MILLISECONDS),
|
||||
timeformat=ba.TimeFormat.MILLISECONDS,
|
||||
suppress_format_warning=True),
|
||||
position=(ts_h_offs + 20 + h_offs_extra,
|
||||
v_offs_extra + ts_height / 2 + -ts_height *
|
||||
(i + 1) / 10 + v_offs + 11.0),
|
||||
|
||||
@ -285,9 +285,13 @@ class RaceGame(ba.TeamGameActivity):
|
||||
ba.playsound(self._score_sound)
|
||||
player.team.gamedata['finished'] = True
|
||||
assert self._timer is not None
|
||||
_cur_time = ba.time(
|
||||
timeformat=ba.TimeFormat.MILLISECONDS)
|
||||
_start_time = self._timer.getstarttime(
|
||||
timeformat=ba.TimeFormat.MILLISECONDS)
|
||||
self._last_team_time = (
|
||||
player.team.gamedata['time']) = (
|
||||
ba.time() - self._timer.getstarttime())
|
||||
player.team.gamedata['time']) = (_cur_time -
|
||||
_start_time)
|
||||
self._check_end_game()
|
||||
|
||||
# Team has yet to finish.
|
||||
@ -545,7 +549,10 @@ class RaceGame(ba.TeamGameActivity):
|
||||
# Sort players by distance and update their ranks.
|
||||
p_list = [[player.gamedata['distance'], player]
|
||||
for player in self.players]
|
||||
|
||||
p_list.sort(reverse=True)
|
||||
# FIXME - need another way to sort p_list.
|
||||
# It tries to compare ba.Player objects.
|
||||
for i, plr in enumerate(p_list):
|
||||
try:
|
||||
plr[1].gamedata['rank'] = i
|
||||
@ -700,14 +707,19 @@ class RaceGame(ba.TeamGameActivity):
|
||||
# final time differs from what they see onscreen by a tiny bit)
|
||||
assert self._timer is not None
|
||||
if self._timer.has_started():
|
||||
_cur_time = self._timer.getstarttime(
|
||||
timeformat=ba.TimeFormat.MILLISECONDS)
|
||||
self._timer.stop(
|
||||
endtime=None if self._last_team_time is None else (
|
||||
self._timer.getstarttime() + self._last_team_time))
|
||||
_cur_time + self._last_team_time))
|
||||
|
||||
results = ba.TeamGameResults()
|
||||
|
||||
for team in self.teams:
|
||||
results.set_team_score(team, team.gamedata['time'])
|
||||
if team.gamedata['time'] is not None:
|
||||
results.set_team_score(team, team.gamedata['time'])
|
||||
# If game have ended before we
|
||||
# get any result, use 'fail' screen
|
||||
|
||||
# We don't announce a winner in ffa mode since its probably been a
|
||||
# while since the first place guy crossed the finish line so it seems
|
||||
@ -725,6 +737,6 @@ class RaceGame(ba.TeamGameActivity):
|
||||
ba.print_error('got no player in PlayerSpazDeathMessage')
|
||||
return
|
||||
if not player.gamedata['finished']:
|
||||
self.respawn_player(player, respawn_time=1000)
|
||||
self.respawn_player(player, respawn_time=1)
|
||||
else:
|
||||
super().handlemessage(msg)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user