private void UpdateLongestRoad()
{
var playersLongest = board.GetLongestRoad();
var newLength = playersLongest.OrderByDescending(p => p.Value).First().Value;
if (newLength < LongestRoadMinimum) //Don't hand out the card if road is too short
{
longestRoadId = -1;
return;
}
var ids = playersLongest.Where(p => p.Value == newLength).Select(p => p.Key);
var newId = (ids.Count()) > 1 ? -1 : ids.First();
/*
if (newLength > longestRoadLength) //Road is longer than previously (can only happen with a valid player ID)
{
longestRoadLength = newLength;
longestRoadId = newId;
}
else if (newLength < longestRoadLength && newId != -1) //Previously longest must have been divided but someone has a longest road
{
longestRoadLength = newLength;
longestRoadId = newId;
}
else if (newLength < longestRoadLength && newId == -1) //Previously longest must have been divided and others are tied
{
longestRoadLength = newLength;
longestRoadId = -1;
}
else if (newLength == longestRoadLength)
{
//Do nothing
}
* */
//Reduced to:
if (newLength == longestRoadLength) return;
longestRoadLength = newLength;
longestRoadId = newId;
}