private void FindClosestMine() { // If this is the first time or a mine is destroyed (Resource count has decreased // Find the closest mine if (closestMine == null || gameState.Resources.Count < resourceCount) { float closestMineDist = float.MaxValue; foreach (ResourceSprite mineResource in gameState.Resources.Where(x => x.ResourceType == ResourceType.MINE).ToList()) { foreach (UnitSprite baseUnit in myBases) { float mineDist = Vector2.Distance(mineResource.Position, baseUnit.Position); if (mineDist < closestMineDist) { closestMineDist = mineDist; closestMine = mineResource; } } } } }