from data import data_api # Faktor für die Punkte Inflation. Um diesen Wert verliert der Verlierer weniger Punkte als der Sieger bekommt. Über Kurz oder Lang werden # die meisten Spieler über 1000MMR sein. Sprich: Neueinsteiger, oder leute die weniger spielen sind eher im unteren Ende als in der Mitte. point_inflation = 0.7 # => entspricht % ! z.B. 0.7 = 70% def calc_mmr_change(systemname, winner_id, looser_id, winner_points, looser_points, match_is_draw, rules): #Rang der Spieler holen. gamesystem_id = data_api.get_gamesystem_id_by_name(systemname) winner_rank = data_api.get_player_rank(winner_id,gamesystem_id) looser_rank = data_api.get_player_rank(looser_id, gamesystem_id) if match_is_draw: mmr_change = rules["rank_matrix"][str(max(-10, min(10, winner_rank-looser_rank)))]["draw"] else: mmr_change = rules["rank_matrix"][str(max(-10, min(10, winner_rank-looser_rank)))]["win"] # Slaanesh Points berechnen und dem Change hinzufügen. mmr_change += (sla_points := slaanesh_delight(winner_points, looser_points, rules)) # Variablen für den mmr_change anlegen. Sieger-Verlierer sind unterschiedlich! winner_mmr_change = 0 + (mmr_change + wrath_of_khorne(winner_id)) looser_mmr_change = 0 + (mmr_change + wrath_of_khorne(looser_id)) if not match_is_draw: # Verlierer verliert nur einen Teil der Punkte looser_mmr_change = -int(winner_mmr_change * point_inflation) return winner_mmr_change, looser_mmr_change # ----------------- khorne_days = 16 khorne_bonus = 8 # ----------------- def wrath_of_khorne(player_id): last_played = data_api.get_days_since_last_game(player_id)["days_ago"] if last_played <= khorne_days: return khorne_bonus else: return 0 def slaanesh_delight(winner_points, looser_points, rules): point_diff = winner_points - looser_points # Standardwert, falls gar nichts zutrifft bonus = 0 for threshold in rules["score_bonus"]: if point_diff >= threshold["min_diff"]: bonus = threshold["bonus"] break return bonus def tzeentch_scemes(): print("k") def nurgles_entropy(): print("k")