public override Boolean Activate(PlayerVerticalShooter player, GameTime gameTime)
        {
            Vector2 centerDir   = new Vector2(0, -1.0f);
            double  longSpread  = Math.PI / 16;
            double  shortSpread = Math.PI / 3;

            for (int n = 0; n < longShotCount; n++)
            {
                FlameShot shot = new FlameShot(Game, spriteSheet);
                shot.PositionX = player.PositionX;
                shot.PositionY = player.PositionY;

                shot.Direction = MathFunctions.SpreadDir(centerDir, longSpread);
                shot.Initialize();
                shot.SetSpreadSpeed(random, 0.2f);
                Game.stateManager.shooterState.gameObjects.Add(shot);
            }

            for (int n = 0; n < shortShotCount; n++)
            {
                FlameShot shot = new FlameShot(Game, spriteSheet);
                shot.PositionX = player.PositionX;
                shot.PositionY = player.PositionY;

                shot.Direction = MathFunctions.SpreadDir(centerDir, shortSpread);
                shot.Initialize();
                shot.Speed *= 0.3f;
                shot.SetSpreadSpeed(random, 0.2f);
                Game.stateManager.shooterState.gameObjects.Add(shot);
            }

            return(true);
        }
        private void Setup()
        {
            Name = "Flame Shot";
            Kind = "Primary";
            energyCostPerSecond = 10f;
            delay            = 500;
            Weight           = 100;
            ActivatedSoundID = SoundEffects.MuffledExplosion;

            bullet = new FlameShot(Game, spriteSheet);
            bullet.Initialize();

            damage   = bullet.Damage;
            duration = bullet.Duration;
            speed    = bullet.Speed;

            Value = 800;
            Tier  = TierType.Good;

            numberOfShots = longShotCount + shortShotCount;
        }