mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-02-05 15:03:33 +08:00
Merge pull request #14 from Dliwk/fix-scorescreen-score-sorting
Fix score sorting in co-op scorescreen activity
This commit is contained in:
commit
08653c00e4
@ -191,7 +191,7 @@ class TeamGameResults:
|
|||||||
sval.append(team)
|
sval.append(team)
|
||||||
results: List[Tuple[Optional[int],
|
results: List[Tuple[Optional[int],
|
||||||
List[ba.Team]]] = list(winners.items())
|
List[ba.Team]]] = list(winners.items())
|
||||||
results.sort(reverse=not self._lower_is_better)
|
results.sort(reverse=not self._lower_is_better, key=lambda x: x[0])
|
||||||
|
|
||||||
# Also group the 'None' scores.
|
# Also group the 'None' scores.
|
||||||
none_teams: List[ba.Team] = []
|
none_teams: List[ba.Team] = []
|
||||||
|
|||||||
@ -674,7 +674,8 @@ class CoopScoreScreen(ba.Activity):
|
|||||||
our_score = None
|
our_score = None
|
||||||
|
|
||||||
try:
|
try:
|
||||||
our_high_scores.sort(reverse=self._score_order == 'increasing')
|
our_high_scores.sort(reverse=self._score_order == 'increasing',
|
||||||
|
key=lambda x: x[0])
|
||||||
except Exception:
|
except Exception:
|
||||||
ba.print_exception('Error sorting scores')
|
ba.print_exception('Error sorting scores')
|
||||||
print('our_high_scores:', our_high_scores)
|
print('our_high_scores:', our_high_scores)
|
||||||
@ -923,7 +924,8 @@ class CoopScoreScreen(ba.Activity):
|
|||||||
results.remove(score)
|
results.remove(score)
|
||||||
break
|
break
|
||||||
results.append(our_score_entry)
|
results.append(our_score_entry)
|
||||||
results.sort(reverse=self._score_order == 'increasing')
|
results.sort(reverse=self._score_order == 'increasing',
|
||||||
|
key=lambda x: x[0])
|
||||||
|
|
||||||
# If we're not submitting our own score, we still want to change the
|
# If we're not submitting our own score, we still want to change the
|
||||||
# name of our own score to 'Me'.
|
# name of our own score to 'Me'.
|
||||||
|
|||||||
@ -80,11 +80,11 @@ class TeamSeriesVictoryScoreScreenActivity(TeamsScoreScreenActivity):
|
|||||||
player_entries.append(
|
player_entries.append(
|
||||||
(prec.player.team.sessiondata['score'],
|
(prec.player.team.sessiondata['score'],
|
||||||
prec.get_name(full=True), prec))
|
prec.get_name(full=True), prec))
|
||||||
player_entries.sort(reverse=True)
|
player_entries.sort(reverse=True, key=lambda x: x[0])
|
||||||
else:
|
else:
|
||||||
for _pkey, prec in self.stats.get_records().items():
|
for _pkey, prec in self.stats.get_records().items():
|
||||||
player_entries.append((prec.score, prec.name_full, prec))
|
player_entries.append((prec.score, prec.name_full, prec))
|
||||||
player_entries.sort(reverse=True)
|
player_entries.sort(reverse=True, key=lambda x: x[0])
|
||||||
|
|
||||||
ts_height = 300.0
|
ts_height = 300.0
|
||||||
ts_h_offs = -390.0
|
ts_h_offs = -390.0
|
||||||
|
|||||||
@ -400,7 +400,8 @@ class EliminationGame(ba.TeamGameActivity):
|
|||||||
self.map.get_start_position(team.get_id()))
|
self.map.get_start_position(team.get_id()))
|
||||||
points.append(
|
points.append(
|
||||||
((start_pos - player_pos).length(), start_pos))
|
((start_pos - player_pos).length(), start_pos))
|
||||||
points.sort()
|
# Hmm.. we need to sorting vectors too?
|
||||||
|
points.sort(key=lambda x: x[0])
|
||||||
return points[-1][1]
|
return points[-1][1]
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|||||||
@ -555,9 +555,7 @@ class RaceGame(ba.TeamGameActivity):
|
|||||||
p_list = [[player.gamedata['distance'], player]
|
p_list = [[player.gamedata['distance'], player]
|
||||||
for player in self.players]
|
for player in self.players]
|
||||||
|
|
||||||
p_list.sort(reverse=True)
|
p_list.sort(reverse=True, key=lambda x: x[0])
|
||||||
# FIXME - need another way to sort p_list.
|
|
||||||
# It tries to compare ba.Player objects.
|
|
||||||
for i, plr in enumerate(p_list):
|
for i, plr in enumerate(p_list):
|
||||||
try:
|
try:
|
||||||
plr[1].gamedata['rank'] = i
|
plr[1].gamedata['rank'] = i
|
||||||
|
|||||||
@ -1451,8 +1451,7 @@ class GatherWindow(ba.Window):
|
|||||||
key=lambda p: (
|
key=lambda p: (
|
||||||
p['queue'] is None, # Show non-queued last.
|
p['queue'] is None, # Show non-queued last.
|
||||||
p['ping'] if p['ping'] is not None else 999999,
|
p['ping'] if p['ping'] is not None else 999999,
|
||||||
p['index'],
|
p['index']))
|
||||||
p))
|
|
||||||
existing_selection = self._public_party_list_selection
|
existing_selection = self._public_party_list_selection
|
||||||
first = True
|
first = True
|
||||||
|
|
||||||
|
|||||||
@ -303,4 +303,6 @@ def make_hash(obj: Any) -> int:
|
|||||||
for k, v in new_obj.items():
|
for k, v in new_obj.items():
|
||||||
new_obj[k] = make_hash(v)
|
new_obj[k] = make_hash(v)
|
||||||
|
|
||||||
|
# NOTE: there is sorted works correctly because it compares only
|
||||||
|
# unique first values (i.e. dict keys)
|
||||||
return hash(tuple(frozenset(sorted(new_obj.items()))))
|
return hash(tuple(frozenset(sorted(new_obj.items()))))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user