/// <summary>
        /// Context unique creation
        /// </summary>
        public TGPAContext()
        {
            Shots = new List<Shot>();
            Enemies = new List<BadGuy>();
            Bonuses = new List<Bonus>();

            Saver = new Saver();

            ParticleManager = new ParticleManager();
            ButtonPrinter = new ButtonPrinter();
            InputManager = new InputManager();
            SongInfo = new SongInfo();
            Cheatcodes = new Cheatcodes();
            TextPrinter = new TextPrinter();
            CurrentGameState = GameState.None;

            #if WINDOWS
            IsTrialMode = false;
            #else
            IsTrialMode = Guide.IsTrialMode;
            #endif

            PaperRect = new Rectangle(180, 630, 640, 150);

            ScoreMulti = 1f;
            DamageMulti = 1f;
        }
        public override void Update(float gameTime, ParticleManager pMan)
        {
            this.size = 3 - (frame * 3);
            if (size > 1) size = 1;

            if (frame < 0.5f)
            {
                if (trajectory.Y < -10.0f) trajectory.Y += gameTime * 500.0f;
                if (trajectory.X < -10.0f) trajectory.X += gameTime * 150.0f;
                if (trajectory.Y > 10.0f) trajectory.Y += gameTime * 150.0f;
            }

            //float frameAlpha;

            //if (frame > 0.9f)
            //    frameAlpha = (1.0f - frame) * 10.0f;
            //else
            //    frameAlpha = (frame / 0.9f);

            //a = frameAlpha;

            a = frame;

            base.Update(gameTime, pMan);
        }
        public override void Update(float gameTime, ParticleManager pMan)
        {
            if (frame < 0.5f)
            {
                if (trajectory.Y < -10.0f) trajectory.Y += gameTime * 500.0f;
                if (trajectory.X < -10.0f) trajectory.X += gameTime * 150.0f;
                if (trajectory.Y > 10.0f) trajectory.Y += gameTime * 150.0f;
            }

            rotation = Angles.GetAngle(location, trajectory);

            base.Update(gameTime, pMan);
        }
        public override void Update(float gameTime, ParticleManager pMan)
        {
            a = (frame * 8f);

            base.Update(gameTime, pMan);
        }
        public TitleScreen()
        {
            Initialize(true);

            pmanager = new ParticleManager();
        }
        public virtual void Update(float gameTime,
            ParticleManager pMan)
        {
            location += trajectory * gameTime;
            frame -= gameTime;

            if(frame <0.0f) KillMe();

            this.particuleColor = this.basicColor;

            if (a < 1f)
            {
                this.particuleColor *= a;
            }
        }