/// <summary>
        /// Sets the current flight pattern to the new pattern
        /// </summary>
        /// <param name="newPattern">The new pattern to use</param>
        public void SetPattern(BossFlightPattern newPattern)
        {
            _myPattern = newPattern;

            onEntry();
        }
        /// <summary>
        /// Creates a shiny new jet
        /// </summary>
        /// <param name="id">the factory id on the underside of this jet</param>
        /// <param name="content">The content manager to use</param>
        /// <param name="newPosition">The position to spawn the jet</param>
        public TwinJet(uint id, ContentManager content, Vector2 newPosition)
            : base(id)
        {
            //Setting the health
            this.Health = FullHealth;
            this.Score = 75;

            //Setting alive to 'true'
            _isAlive = true;

            //Initializing the states
            _myVisualState = TwinJetVisualState.HEALTHY;
            _myBehaviorState = TwinJetBehaviouralState.INTRO;
            _myFireState = TwinJetFireState.STAGE1;
            _myGunState = GunState.REST;
            _oldGunState = GunState.LEFT;

            //Initializing rotation
            _myRotation = 0;

            //Setting the flight pattern to null
            _myPattern = null;

            //Setting position and velocity
            _position = newPosition;
            _velocity = Vector2.Zero;

            //Marking the intro as still occurring
            _isIntroOver = false;

            //Setup firerates
            _timerGunFireRate = 0;
            _timerMissileFireRate = 0;

            //Bring in the spritesheet
            _spriteSheet = content.Load<Texture2D>("Spritesheets/newshi.shp.000000");

            //Setting up Sprite Bounds for the jet and gun
            _spriteBounds[(int)TwinJetVisualState.HEALTHY] = new Rectangle(98, 143, 93, 80);
            _spriteBounds[(int)TwinJetVisualState.DAMAGED] = new Rectangle(2, 143, 93, 53);
            _spriteBounds[(int)TwinJetVisualState.GUNDESTROYED] = new Rectangle(2, 143, 93, 53);
            _spriteBounds[(int)TwinJetVisualState.EXPLODING] = Rectangle.Empty;
            _spriteBounds[(int)TwinJetVisualState.DEAD] = Rectangle.Empty;

            _spriteGunBounds[(int)GunState.LEFT] = new Rectangle(62, 196, 21, 21);
            _spriteGunBounds[(int)GunState.REST] = new Rectangle(38, 196, 21, 20);
            _spriteGunBounds[(int)GunState.RIGHT] = new Rectangle(14, 196, 21, 21);
            _spriteGunBounds[(int)GunState.DESTROYED] = new Rectangle(38, 196, 21, 11);

            //Calls the on entry method to initialize some things
            onEntry();
        }