anchor.diff:  			for(var/arena/a in arenas)
   				if(a.reconnect(p)) return 1
   
  -		matchup()
  -			if(queue && queue.len >= 2)
  -				var/mob/Player/p1 = queue[queue.len]
  -				var/mob/Player/p2 = queue[queue.len - 1]
  +		matchup(skip = 0)
  +			if(queue && queue.len >= 2+skip)
  +				var/mob/Player/p1 = queue[queue.len - skip]
  +				var/mob/Player/p2 = queue[queue.len - 1 - skip]
  +
  +				if(queue[p1] - queue[p2] >= 300) return 1
  +
   				removeQueue(p1)
   				removeQueue(p2)
   
  
positive.code: 			var/winnerExpectedScore = 1 / (1 + 10 ** ((loser.rating  - winner.rating) / 400))
  			var/loserExpectedScore  = 1 / (1 + 10 ** ((winner.rating - loser.rating)  / 400))
  
  			winner.rating = round(winner.rating + factor * (1 - winnerExpectedScore))
  			loser.rating  = round(loser.rating  + factor * (0 - loserExpectedScore))
  			loser.rating  = max(10, loser.rating)
  
  			bubblesort_by_value(skill_rating, "rating", TRUE)
  
  
negative.code: 		updateName()
  
  	Click()
  		if(!parent) return
  		if(parent.spectators && (usr in parent.spectators))
  			parent.removeSpectator(usr)
  		else
  