Artemis.Modules.Effects.Bubbles.BubblesModel.Enable C# (CSharp) Method

Enable() public method

public Enable ( ) : void
return void
        public override void Enable()
        {
            KeyboardScale = Settings.Smoothness;

            var rect = MainManager.DeviceManager.ActiveKeyboard.KeyboardRectangle(KeyboardScale);

            var scaleFactor = Settings.Smoothness/25.0;

            for (var i = 0; i < Settings.BubbleCount; i++)
            {
                var color = Settings.IsRandomColors
                    ? ColorHelpers.GetRandomRainbowColor()
                    : ColorHelpers.ToDrawingColor(Settings.BubbleColor);
                // -Settings.MoveSpeed because we want to spawn at least one move away from borders
                var initialPositionX = (rect.Width - Settings.BubbleSize*scaleFactor*2 - Settings.MoveSpeed*scaleFactor)*
                                       _random.NextDouble() + Settings.BubbleSize*scaleFactor;
                var initialPositionY = (rect.Height - Settings.BubbleSize*scaleFactor*2 - Settings.MoveSpeed*scaleFactor)*
                                       _random.NextDouble() + Settings.BubbleSize*scaleFactor;
                var initialDirectionX = Settings.MoveSpeed*scaleFactor*_random.NextDouble()*
                                        (_random.Next(1) == 0 ? -1 : 1);
                var initialDirectionY = (Settings.MoveSpeed*scaleFactor - Math.Abs(initialDirectionX))*
                                        (_random.Next(1) == 0 ? -1 : 1);

                _bubbles.Add(new Bubble(color, (int) Math.Round(Settings.BubbleSize*scaleFactor),
                    new Point(initialPositionX, initialPositionY), new Vector(initialDirectionX, initialDirectionY)));
            }

            Initialized = true;
        }