public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);
            if (gameTime.TotalGameTime.TotalMilliseconds >= cooldown + lastAttackTime)
            {
                cooldown = 300;
                var numProjectiles = projectileWave + 2;
                var offset         = VectorMath.Degrees2Radians((range.Y - range.X) / (numProjectiles + 1));
                var currentAngle   = VectorMath.Degrees2Radians(range.X);

                for (int i = 0; i < numProjectiles; i++)
                {
                    currentAngle += offset;
                    var projectileInstance = GameManager.Instantiate(projectile, transform.Position + renderer.Sprite.GetCenter() - projectileRenderer.Sprite.GetCenter());
                    projectileInstance.Tag = "Enemy" + projectileInstance.Tag;
                    var velocity = (Velocity)projectileInstance.GetComponent <Velocity>();
                    velocity.Direction = VectorMath.Angle2Vector(currentAngle);
                }
                projectileWave++;

                if (projectileWave > 3)
                {
                    projectileWave = 0;
                    cooldown       = 2000;
                }

                lastAttackTime = gameTime.TotalGameTime.TotalMilliseconds;
            }
        }
        public override void Initialize(GameObject owner)
        {
            base.Initialize(owner);

            gameWindowCenter = new Vector2(360, 360);
            deltaPerSecond   = (float)VectorMath.Degrees2Radians(60);
            totalRotation    = (float)VectorMath.Degrees2Radians(180);

            currentRotation = 0;

            gameWindowObjects = new List <GameObject>();

            var player = GameManager.GetObjectByTag("Player");

            player.IsActive = false;

            var playerScript = (Player)player.GetComponent <Player>();

            playerScript.IsFlipped ^= true;

            gameWindowObjects.Add(player);

            foreach (var obj in GameManager.GetObjectsByTag("Enemy"))
            {
                obj.IsActive = false;
                gameWindowObjects.Add(obj);
            }
            foreach (var obj in GameManager.GetObjectsByTag("TurretEnemy"))
            {
                obj.IsActive = false;
                gameWindowObjects.Add(obj);
            }
            foreach (var obj in GameManager.GetObjectsByTag("EnemyProjectile"))
            {
                obj.IsActive = false;
                gameWindowObjects.Add(obj);
            }
            foreach (var obj in GameManager.GetObjectsByTag("PlayerProjectile"))
            {
                obj.IsActive = false;
                gameWindowObjects.Add(obj);
            }
        }