예제 #1
0
    /// <summary>
    /// Initializes fading to a color.
    /// </summary>
    private void InitFade()
    {
        Fade = FindObjectOfType <FadeToColor>();
        if (Fade != null)
        {
            Fade.Init(UIController.fadeScreen);

            if (SceneTransition == TransitionPhase.StartingScene)
            {
                Fade.StartFadeIn(true);
            }
        }
    }
예제 #2
0
        public void PowerUpHit(Entity entity)
        {
            if (entity.Type == EntityType.WEAPON_POWERUP_SPREAD)
            {
                fadeToColor = FadeToColor.SPREAD;
                pickedUpPowerUp = EntityType.WEAPON_POWERUP_SPREAD;
                powerUpActive = true;
                timer = 0.0;
                if (repeatFlicker == true)
                    repeatFlicker = false;

            }
            else if (entity.Type == EntityType.WEAPON_POWERUP_RAPID)
            {
                fadeToColor = FadeToColor.RAPID;
                pickedUpPowerUp = EntityType.WEAPON_POWERUP_RAPID;
                powerUpActive = true;
                timer = 0.0;
                if (repeatFlicker == true)
                    repeatFlicker = false;
            }
            if (enemyHit == true)
            {
                enemyHitScaleState = 0;
                enemyHit = false;
            }

            pointLight.LightDecay = currentLightRadius;
            powerUpHit = true;
            float newRadiusTarget = (float)currentLightRadius * 1.4f;
            flashScaleTarget = (int)newRadiusTarget;
        }
예제 #3
0
        private bool LightFade(Vector4 color)
        {
            if (pointLight.Color.X < color.X)
            {
                pointLight.Color.X += colorScalar;
                if (pointLight.Color.X > color.X)
                    pointLight.Color.X = color.X;
            }
            else if (pointLight.Color.X > color.X)
            {
                pointLight.Color.X -= colorScalar;
                if (pointLight.Color.X < color.X)
                    pointLight.Color.X = color.X;
            }

            if (pointLight.Color.Y < color.Y)
            {
                pointLight.Color.Y += colorScalar;
                if (pointLight.Color.Y > color.Y)
                    pointLight.Color.Y = color.Y;
            }
            else if (pointLight.Color.Y > color.Y)
            {
                pointLight.Color.Y -= colorScalar;
                if (pointLight.Color.Y < color.Y)
                    pointLight.Color.Y = color.Y;
            }

            if (pointLight.Color.Z < color.Z)
            {
                pointLight.Color.Z += colorScalar;
                if (pointLight.Color.Z > color.Z)
                    pointLight.Color.Z = color.Z;
            }
            else if (pointLight.Color.Z > color.Z)
            {
                pointLight.Color.Z -= colorScalar;
                if (pointLight.Color.Z < color.Z)
                    pointLight.Color.Z = color.Z;
            }

            if (pointLight.Color.W < color.W)
            {
                pointLight.Color.W += colorScalar;
                if (pointLight.Color.W > color.W)
                    pointLight.Color.W = color.W;
            }
            else if (pointLight.Color.W > color.W)
            {
                pointLight.Color.W -= colorScalar;
                if (pointLight.Color.W < color.W)
                    pointLight.Color.W = color.W;
            }

            if (color == pointLight.Color)
            {
                if (repeatFlicker == true)
                {
                    if (fadeToColor == FadeToColor.HEALTH)
                    {
                        if (pickedUpPowerUp == EntityType.WEAPON_POWERUP_RAPID)
                        {
                            fadeToColor = FadeToColor.RAPID;
                            return false;
                        }
                        else if (pickedUpPowerUp == EntityType.WEAPON_POWERUP_SPREAD)
                        {
                            fadeToColor = FadeToColor.SPREAD;
                            return false;
                        }
                    }
                    else if (fadeToColor == FadeToColor.RAPID || fadeToColor == FadeToColor.SPREAD)
                    {
                        fadeToColor = FadeToColor.HEALTH;
                        return false;
                    }
                }
                return true;
            }
            return false;
        }
예제 #4
0
        private void FadeToLight()
        {
            switch (fadeToColor)
            {
                case FadeToColor.HEALTH:
                    {
                        if (LightFade(healthColor) == true && repeatFlicker == false)
                            fadeToColor = FadeToColor.NONE;

                        break;
                    }
                case FadeToColor.RAPID:
                    {
                        if (LightFade(rapidColor) == true && false)
                            fadeToColor = FadeToColor.NONE;
                        break;
                    }
                case FadeToColor.SPREAD:
                    {
                        if (LightFade(spreadColor) == true && false)
                            fadeToColor = FadeToColor.NONE;
                        break;
                    }
            }
        }
예제 #5
0
        public void Update(GameTime gameTime, int currentHealth, Vector2 playerPosition)
        {
            this.pointLight.Position = new Vector3(playerPosition.X, playerPosition.Y, pointLight.Position.Z);
            this.currentHealth = currentHealth;

            if (powerUpActive == true)
            {
                timer += gameTime.ElapsedGameTime.Milliseconds;
                if (timer >= 10000.0 && timer < 14999.0)
                {
                    if (timer >= 13.000)
                        colorScalar = 12;
                    repeatFlicker = true;
                }
                else if (timer >= 15000.0)
                {
                    repeatFlicker = false;
                    fadeToColor = FadeToColor.HEALTH;
                    colorScalar = 8;
                }
            }

            if (fadeToColor != FadeToColor.NONE)
            {
                FadeToLight();
            }

            if (enemyHit == true)
            {
                EnemyHitScale();
            }
            else if (powerUpHit == true)
            {
                PowerUpHitScale();
            }
        }
예제 #6
0
 private void InitScene()
 {
     ui   = FindObjectOfType <UIManager>();
     fade = FindObjectOfType <FadeToColor>();
     home = FindObjectOfType <Home>();
 }