static private int ComputePopScore(LevelData data, BubbleFactory factory) { var basicTypes = GetTypeGroup(factory, BubbleCategory.Basic); var shotScore = (data.ShotCount * factory.GetDefinitionByType(BubbleType.Blue).Score); return(shotScore + data.Bubbles .Where(b => basicTypes.Contains(b.Type)) .Sum(b => factory.GetDefinitionByType(b.Type).Score)); }
static private int ComputeObstacleScore(LevelData data, BubbleFactory factory) { var obstacles = GetTypeGroup(factory, BubbleCategory.Obstacle); return(data.Bubbles .Where(b => obstacles.Contains(b.Type)) .Sum(b => factory.GetDefinitionByType(b.Type).Score)); }