@@ -580,18 +580,27 @@ def suggest_switch(self, teams, gametype):
580580 ]
581581 elos_red_high = sorted ([p for p in elos_red if p [1 ] >= AD_ELO_THRESHOLD ], key = lambda x : x [1 ])
582582 elos_red_low = sorted ([p for p in elos_red if p [1 ] < AD_ELO_THRESHOLD ], key = lambda x : x [1 ])
583+ nr_elos_red_high = len (elos_red_high )
583584 elos_blue = [
584585 (p , self .ratings [p .steam_id ][gametype ]["elo" ]) for p in teams ["blue" ]
585586 ]
586587 elos_blue_high = sorted ([p for p in elos_blue if p [1 ] >= AD_ELO_THRESHOLD ], key = lambda x : x [1 ])
587588 elos_blue_low = sorted ([p for p in elos_blue if p [1 ] < AD_ELO_THRESHOLD ], key = lambda x : x [1 ])
588- total_high_elos = len (elos_red_high ) + len (elos_blue_high )
589-
590- if total_high_elos > 1 and len (elos_red_high ) != len (elos_blue_high ):
591- if len (elos_red_high ) > len (elos_blue_high ):
592- return ((elos_red_high [- 1 ], elos_blue_low [- 1 ]), 0 )
589+ nr_elos_blue_high = len (elos_blue_high )
590+ total_high_elos = nr_elos_red_high + nr_elos_blue_high
591+ diff_high_elos = nr_elos_red_high - nr_elos_blue_high
592+
593+ if total_high_elos > 1 :
594+ if total_high_elos % 2 :
595+ if diff_high_elos >= 2 :
596+ return ((elos_red_high [- 1 ], elos_blue_low [- 1 ]), 0 )
597+ elif diff_high_elos <= - 2 :
598+ return ((elos_red_low [- 1 ], elos_blue_high [- 1 ]), 0 )
593599 else :
594- return ((elos_red_low [- 1 ], elos_blue_high [- 1 ]), 0 )
600+ if diff_high_elos >= 1 :
601+ return ((elos_red_high [- 1 ], elos_blue_low [- 1 ]), 0 )
602+ elif diff_high_elos <= - 1 :
603+ return ((elos_red_low [- 1 ], elos_blue_high [- 1 ]), 0 )
595604
596605
597606 avg_red = self .team_average (teams ["red" ], gametype )
0 commit comments