Exemplo n.º 1
0
 private void Start()
 {
     currentHP            = InitialHP;
     elapsedTimeForBeat   = HealthBeatInterval;
     elapsedTimeForAttack = 0;
     heartBeatInterval    = HealthBeatInterval;
     state = HeartStates.Health;
 }
Exemplo n.º 2
0
 private void Start()
 {
     currentHP = InitialHP;
     elapsedTimeForBeat = HealthBeatInterval;
     elapsedTimeForAttack = 0;
     heartBeatInterval = HealthBeatInterval;
     state = HeartStates.Health;
 }
Exemplo n.º 3
0
        public override void Update(GameTime gameTime)
        {
            if (ShouldFlash)
            {
                elapsedTime += gameTime.ElapsedGameTime;
            }
            if (elapsedTime >= showTime)
            {
                elapsedTime = TimeSpan.Zero;
                HeartState  = FlipState();
                FlipCount++;
            }

            if (FlipCount == 3)
            {
                ShouldBeRemoved = true;
            }

            base.Update(gameTime);
        }
Exemplo n.º 4
0
        public override void Update()
        {
            //Don't do anything if it's paused
            if (HeartState == HeartStates.Paused)
            {
                return;
            }

            double timer      = FadeInTime;
            Color  startColor = StartColor;
            Color  endColor   = EndColor;

            if (HeartState != HeartStates.FadeIn)
            {
                timer      = FadeOutTime;
                startColor = EndColor;
                endColor   = StartColor;
            }

            ElapsedTime += Time.ElapsedMilliseconds;

            TintColor = Color.Lerp(startColor, endColor, (float)(ElapsedTime / timer));

            //Check if we're done
            if (ElapsedTime >= timer)
            {
                //If the heart finished fading out, it's done
                if (HeartState == HeartStates.FadeOut)
                {
                    ReadyForRemoval = true;
                }

                TintColor = endColor;

                //Pause the heart so it doesn't update any longer
                //If it was fading in, it will stay paused until told to fade out
                HeartState = HeartStates.Paused;
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// Starts fading out the heart.
 /// </summary>
 public void FadeOut()
 {
     HeartState  = HeartStates.FadeOut;
     TintColor   = EndColor;
     ElapsedTime = 0d;
 }
Exemplo n.º 6
0
 /// <summary>
 /// Resets the heart, causing it to fade in again.
 /// </summary>
 public void Reset()
 {
     HeartState  = HeartStates.FadeIn;
     TintColor   = StartColor;
     ElapsedTime = 0d;
 }
Exemplo n.º 7
0
 public Heart(Texture2D texture, Vector2 position, Color color, Vector2 scale) : base(texture, position, color, scale)
 {
     elapsedTime = TimeSpan.Zero;
     showTime    = TimeSpan.FromMilliseconds(500);
     HeartState  = HeartStates.Show;
 }
Exemplo n.º 8
0
    private void Update()
    {
        if (state == HeartStates.Dead)
        {
            return;
        }

        if (state == HeartStates.Dying)
        {
            Sprite.looping = false;
            Sprite.Play(state.ToString());
            Sprite.onAnimationFinish = delegate
            {
                GameState.CurrentState = LevelState.PlayerWon;
            };
            state = HeartStates.Dead;
        }
        else
        {
            elapsedTimeForBeat += Time.deltaTime;
            if (elapsedTimeForBeat > heartBeatInterval)
            {
                elapsedTimeForBeat = 0;
                Sprite.Play(state.ToString());
                GameState.Audio.playHearthBeat1();
            }

            if (GameState.CurrentState == LevelState.WaveStarted)
            {
                elapsedTimeForAttack += Time.deltaTime;
                if (elapsedTimeForAttack > AttackInterval)
                {
                    Debug.Log(string.Format("HeartBehavior: Decrementando HP -{0} (AUTO)", HealthDecrement));
                    elapsedTimeForAttack = 0;
                    currentHP           -= HealthDecrement;

                    if (currentHP > MaxHealth)
                    {
                        GameState.CurrentState = LevelState.HeartWon;
                    }
                    else if (currentHP > HealthBar)
                    {
                        state             = HeartStates.Health;
                        heartBeatInterval = HealthBeatInterval;
                    }
                    else if (currentHP > SickBar)
                    {
                        state             = HeartStates.Sick;
                        heartBeatInterval = SickBeatInterval;
                    }
                    else if (currentHP > MoreSickBar)
                    {
                        state             = HeartStates.MoreSick;
                        heartBeatInterval = MoreSickBeatInterval;
                    }
                    else if (currentHP > 0)
                    {
                        heartBeatInterval = CriticBeatInterval;
                        Sprite.speed      = 1.5f;
                    }
                    else
                    {
                        state              = HeartStates.Dying;
                        heartBeatInterval  = 0;
                        elapsedTimeForBeat = 0;
                        Sprite.speed       = 1;
                    }
                }
            }
        }
    }
Exemplo n.º 9
0
    private void Update()
    {
        if (state == HeartStates.Dead)
        {
            return;
        }

        if (state == HeartStates.Dying)
        {
            Sprite.looping = false;
            Sprite.Play(state.ToString());
            Sprite.onAnimationFinish = delegate
            {
                GameState.CurrentState = LevelState.PlayerWon;
            };
            state = HeartStates.Dead;
        }
        else
        {
            elapsedTimeForBeat += Time.deltaTime;
            if (elapsedTimeForBeat > heartBeatInterval)
            {
                elapsedTimeForBeat = 0;
                Sprite.Play(state.ToString());
				GameState.Audio.playHearthBeat1();
            }

            if (GameState.CurrentState == LevelState.WaveStarted)
            {
                elapsedTimeForAttack += Time.deltaTime;
                if (elapsedTimeForAttack > AttackInterval)
                {
                    Debug.Log(string.Format("HeartBehavior: Decrementando HP -{0} (AUTO)", HealthDecrement));
                    elapsedTimeForAttack = 0;
                    currentHP -= HealthDecrement;

                    if (currentHP > MaxHealth)
                    {
                        GameState.CurrentState = LevelState.HeartWon;
                    }
                    else if (currentHP > HealthBar)
                    {
                        state = HeartStates.Health;
                        heartBeatInterval = HealthBeatInterval;
                    }
                    else if (currentHP > SickBar)
                    {
                        state = HeartStates.Sick;
                        heartBeatInterval = SickBeatInterval;
                    }
                    else if (currentHP > MoreSickBar)
                    {
                        state = HeartStates.MoreSick;
                        heartBeatInterval = MoreSickBeatInterval;
                    }
                    else if (currentHP > 0)
                    {
                        heartBeatInterval = CriticBeatInterval;
                        Sprite.speed = 1.5f;
                    }
                    else
                    {
                        state = HeartStates.Dying;
                        heartBeatInterval = 0;
                        elapsedTimeForBeat = 0;
                        Sprite.speed = 1;
                    }
                }
            }
        }
    }