Exemple #1
0
        public void Update(GameTime gameTime)
        {
            StarFactory.Update(gameTime, _tunnel, Scene, _player);
            BombFactory.Update(gameTime, _tunnel, Scene, _player);

            ExplosionParticles.Update(gameTime);
            FireParticles.Update(gameTime);
            SmokeParticles.Update(gameTime);
            StarsParticles.Update(gameTime);
        }
Exemple #2
0
        public void DrawParticles(GameTime gametime)
        {
            SmokeParticles.SetCamera(_camera.View, _camera.Projection);
            SmokeParticles.Draw(gametime);
            ExplosionParticles.SetCamera(_camera.View, _camera.Projection);
            ExplosionParticles.Draw(gametime);
            FireParticles.SetCamera(_camera.View, _camera.Projection);
            FireParticles.Draw(gametime);

            StarsParticles.SetCamera(_camera.View, _camera.Projection);
            StarsParticles.Draw(gametime);
        }
Exemple #3
0
        public void Update(GameTime gameTime)
        {
            StarFactory.Update(gameTime, _tunnel, Scene, _player);
            BombFactory.Update(gameTime, _tunnel, Scene, _player);
            // Log the position for the analysis
            LoopGame.Instance.GameObjects.TryUpdate("PlayerPosition", new Vector3(_player.Angle, Globals.Lives, Globals.TotalScore));

            ExplosionParticles.Update(gameTime);
            FireParticles.Update(gameTime);
            SmokeParticles.Update(gameTime);
            StarsParticles.Update(gameTime);
        }
    public void Explode()
    {
        if (Exploded)
        {
            return;
        }
        Exploded = true;
        ExplosionParticles.Play(true);
        SparkleParticles.Stop();
        Astronaut plr = Astronaut.TheAstronaut;

        Am.am.oneshot(Am.am.M.VoidFireBallExplosion);

        //if (Alive && !isStunned())
        //{
        Vector3 dif = (this.transform.position - plr.transform.position);
        float   sc  = 1f;

        float radius = BlastRadius;//(2f * sc);//*pre
        float dist   = (dif.magnitude / radius);

        if (dist < 1f)
        {
            //if ((Time.time - plr.lastDamageTakenTime) >= 1.5f)
            //{
            Vector3 diff = (plr.transform.position - this.transform.position);

            float df = (1f - dist);
            //df = Mathf.Pow(df, 1f/(1f + (1f * Astronaut.AggressionLevelF)));
            if (plr.TakeDamage(20f * df, new Vector3(0f, plr.JumpSpeed * .25f * df, 0f)))
            {
            }
            Am.am.oneshot(Am.am.M.LavaBurn);

            //}
        }

        //}



        Remove();
    }