public void GenerateProjections(double Average) { List <BasketballPlayer> teamPlayers = new List <BasketballPlayer>(); teamPlayers.AddRange(PointGuards); teamPlayers.AddRange(ShootingGuards); teamPlayers.AddRange(SmallForwards); teamPlayers.AddRange(PowerForwards); teamPlayers.AddRange(Centers); double multiplier = (ImpliedScore - Average) / 50; double pgScore = PointGuards.Sum(s => s.PreProjected); double sgScore = ShootingGuards.Sum(s => s.PreProjected); double sfScore = SmallForwards.Sum(s => s.PreProjected); double pfScore = PowerForwards.Sum(s => s.PreProjected); double cScore = Centers.Sum(s => s.PreProjected); TeamTotalPoints = pgScore + sgScore + sfScore + pfScore + cScore; foreach (var player in teamPlayers) { double projectedPointsNoMult = player.PointsPerMinute * player.TotalMinutes; double projectedAverage = (projectedPointsNoMult + player.PreProjected) / 2; double percentOfTeam = projectedAverage / TeamTotalPoints; double playerMultiplier = (multiplier * percentOfTeam) + (percentOfTeam * player.DVPMultiplier) + 1; player.Projected = playerMultiplier * projectedAverage; } }