public AnimatedLightning(Vector2 start, Vector2 end
                                 , float maxOffset, float maxAngleOffset, float lengthScale
                                 , int level, int seed, int frameDiff)
        {
            _seed  = seed;
            rand   = new Random(seed);
            _bolt1 = new List <LightningSegment>();
            _bolt2 = new List <LightningSegment>();
            _bolt1.Add(new LightningSegment(start, end));
            _maxOffset      = maxOffset;
            _maxAngleOffset = maxAngleOffset;
            _lengthScale    = lengthScale;
            _level          = level;
            _frameDiff      = frameDiff;

            _start = start;
            _end   = end;

            LightningGenerator.GenerateForked(_bolt1, _maxOffset, _maxAngleOffset, _lengthScale, _level, rand);
        }
        public void Update(GameTime gameTime)
        {
            _actFrame++;

            if (_actFrame % _frameDiff == 0)
            {
                _actFrame = 0;
                var tmp = _bolt1;
                _bolt1 = _bolt2;
                _bolt2 = tmp;

                for (int i = 0; i < _bolt2.Count; i++)
                {
                    _bolt2[i].Color = new Color(Color.Multiply(_bolt2[i].Color, 0.5f), 1.0f);
                }

                _bolt1.Clear();
                _bolt1.Add(new LightningSegment(_start, _end));
                LightningGenerator.GenerateForked(_bolt1, _maxOffset, _maxAngleOffset, _lengthScale, _level, rand);
            }
        }