public void UseBonus(ref Grid grid, ref Platform platform, ref List <Ball> balls) { if (_id == BonusName.Random) { _id = (BonusName)_rand.Next(1, _maxBonusID + 1); } switch (_id) { case BonusName.DoubleBall: GameControl.PlaySound(GameControl.Sound.ExtraBall); int ballsCount = balls.Count; for (int i = 0; i < ballsCount; i++) { balls.Add(new Ball(balls[i])); } break; case BonusName.BallSizeUp: foreach (Ball ball in balls) { ball.SizeUp(); } break; case BonusName.BallSizeDown: foreach (Ball ball in balls) { ball.SizeDown(); } break; case BonusName.BallSpeedDown: foreach (Ball ball in balls) { ball.Speed--; } break; case BonusName.BallSpeedUp: foreach (Ball ball in balls) { ball.Speed++; } break; case BonusName.PlatformSizeUp: platform.SizeUp(); break; case BonusName.PlatformSizeDown: platform.SizeDown(); break; case BonusName.PlatformSpeedUp: platform.Speed++; break; case BonusName.PlatformSpeedDown: platform.Speed--; break; case BonusName.ExtraLife: GameControl.AddLife(); break; case BonusName.ExtraPoints: GameControl.AddPoints(1000); GameControl.PlaySound(GameControl.Sound.ExtraPoints); break; case BonusName.Skull: foreach (Ball ball in balls) { grid.Children.Remove(ball); } balls.Clear(); break; } grid.Children.Remove(this); }