Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions onehead/matchmaking.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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:
"""
Expand All @@ -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.")

Expand Down