From 81d97cfc78ba052b8f69df2f84847f510e5aef25 Mon Sep 17 00:00:00 2001 From: tetrosyl Date: Wed, 20 Nov 2024 10:32:52 +0000 Subject: [PATCH] added grief combinations ;) --- onehead/matchmaking.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/onehead/matchmaking.py b/onehead/matchmaking.py index 11d6f52..a5d171f 100644 --- a/onehead/matchmaking.py +++ b/onehead/matchmaking.py @@ -14,13 +14,13 @@ from onehead.statistics import Statistics log: Logger = get_logger() - +grief_list = ['RICH', 'TOCCO'] class Matchmaking(Cog): def __init__(self, database: PlayerDatabase, lobby: Lobby) -> None: self.database: PlayerDatabase = database self.lobby: Lobby = lobby - + self.unite_grief = True def _get_player_records(self, ctx: Context) -> list[Player]: """ Obtains player records for all players that have signed up to play. @@ -80,6 +80,12 @@ def _calculate_rating_differences(unique_combinations: list[TeamCombination]) -> rating_differences.append(abs(t1_rating - t2_rating)) return rating_differences + + def _griefers_unite(self, combinations, griefers:tuple): + grief_combos = [team_combinations for team_combinations in combinations if griefers.issubset(set(griefers)) ] + + return grief_combos + def _calculate_balance(self, ctx: Context) -> TeamCombination: """ @@ -102,6 +108,9 @@ def _calculate_balance(self, ctx: Context) -> TeamCombination: unique_combinations: list[TeamCombination] = self._calculate_unique_team_combinations(matchup_combinations) + if self.unite_grief: + unique_combinations = self._griefers_unite(unique_combinations, grief_list) + if not unique_combinations: raise OneHeadException("No valid matchups could be calculated. Possible duplicate player name.")