Skip to content

Commit

Permalink
Reevaluate all finishes in live rankings to ensure points_added is co…
Browse files Browse the repository at this point in the history
…rrect (#1234)
  • Loading branch information
skybaks committed Aug 29, 2023
1 parent 2f64782 commit af411fa
Showing 1 changed file with 15 additions and 12 deletions.
27 changes: 15 additions & 12 deletions pyplanet/apps/contrib/live_rankings/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,18 +216,21 @@ async def player_finish(self, player, race_time, lap_time, cps, flow, raw, **kwa

new_finish = dict(login=player.login, nickname=player.nickname, score=race_time)
self.current_finishes.append(new_finish)

new_finish_rank = len(self.current_finishes) - 1
new_finish['points_added'] = self.points_repartition[new_finish_rank] \
if len(self.points_repartition) > new_finish_rank \
else self.points_repartition[(len(self.points_repartition) - 1)]

current_ranking = next((item for item in self.current_rankings if item['login'] == player.login), None)
if current_ranking is not None:
current_ranking['points_added'] = new_finish['points_added']
else:
new_finish['score'] = 0
self.current_rankings.append(new_finish)
self.current_finishes.sort(key=lambda x: (x['score']))

for current_finish_index in range(len(self.current_finishes)):
current_finish = self.current_finishes[current_finish_index]
if len(self.points_repartition) > current_finish_index:
current_finish['points_added'] = self.points_repartition[current_finish_index]
else:
current_finish['points_added'] = self.points_repartition[(len(self.points_repartition) - 1)]

current_ranking = next((item for item in self.current_rankings if item['login'] == current_finish['login']), None)
if current_ranking is not None:
current_ranking['points_added'] = current_finish['points_added']
else:
current_finish['score'] = 0
self.current_rankings.append(current_finish)

self.current_rankings.sort(key=lambda x: (-x['score'], -x['points_added']))
await self.widget.display()
Expand Down

0 comments on commit af411fa

Please sign in to comment.