/// <summary> /// Performs actual calculation of the nemesis Score of v (for u; given distance d_uv) /// </summary> /// <param name="u"></param> /// <param name="v"></param> /// <param name="d_uv"></param> /// <returns></returns> public static int ComputeNemesisScore_Main(Profile u, Profile.NemesisEntry v, float d_uv) { float u_played = u.games_won + u.games_lost; float v_played = v.won_against + v.lost_against; float u_winrate = (float)u.games_won / u_played; float v_winrate = (float)v.won_against / v_played; float r_uv = v_played / u_played; return(Mathf.RoundToInt(d_uv * ((1 - r_uv) * (1 - v_winrate) + r_uv * u_winrate) * 1000f)); }
public static int ComputeNemesisScore(Profile u, Profile.NemesisEntry v) { return(ComputeNemesisScore_Main(u, v, 1)); }