+ # raw ping ratios
+ ping_ratio_i = self.pingfactor(pi, pj)
+ ping_ratio_j = self.pingfactor(pj, pi)
+
+ if ping_ratio_i > 0.5:
+ if scorefactor_real > 0.5:
+ log.debug("player i has the ping disadvantage and won")
+ pingfactor_i = 1 + ping_ratio_i * ep.latency_trend_factor
+ pingfactor_j = 1 + ping_ratio_j * ep.latency_trend_factor
+ else:
+ log.debug("player i has the ping disadvantage and lost")
+ pingfactor_i = 1 - ping_ratio_i * ep.latency_trend_factor
+ pingfactor_j = 1 - ping_ratio_j * ep.latency_trend_factor
+
+ elif ping_ratio_i < 0.5:
+ if scorefactor_real > 0.5:
+ log.debug("player j has the ping disadvantage and lost")
+ pingfactor_i = 1 - ping_ratio_i * ep.latency_trend_factor
+ pingfactor_j = 1 - ping_ratio_j * ep.latency_trend_factor
+ else:
+ log.debug("player j has the ping disadvantage and won")
+ pingfactor_i = 1 + ping_ratio_i * ep.latency_trend_factor
+ pingfactor_j = 1 + ping_ratio_j * ep.latency_trend_factor
+ else:
+ log.debug("the pings are equal")
+ pingfactor_i = pingfactor_j = 1
+