// Update is called once per frame
        void Update()
        {
            // Check if the character is dead
            if (HealthComp.IsDead && !HealthComp.Respawning)
            {
                HealthComp.Respawning = true;

                gameObject.GetComponent <ParticleSystem>().Play();
                this.LifeState = CharacterLifeState.Leafy_Dead;
                this.audioSource.PlayOneShot(deathSound);
                ResetLeafyAtCheckpoint();
            }

            if (!HealthComp.IsDead && HealthComp.Damaged)
            {
                this.LifeState = CharacterLifeState.Leafy_Tired;
            }

            if (!HealthComp.Damaged && !HealthComp.IsDead)
            {
                this.LifeState = CharacterLifeState.Leafy_Idle;
            }
            MovementState = moveController.MovementState;

            // Set appropriate sprites
            this.GetComponent <CharacterLifeSpriteController>().SetState(LifeState);
            this.GetComponent <MovementSpriteController>().SetState(MovementState);
        }
        IEnumerator Delayed()
        {
            yield return(new WaitForSeconds(Random.value));

            Leafy.GetComponentInParent <LevelController>().ReloadPlayerAtCheckpoint(Leafy);
            this.LifeState = CharacterLifeState.Leafy_Idle;
        }
 public void SetState(CharacterLifeState state)
 {
     if (SpriteLibrary.ContainsKey(state))
     {
         currentState    = state;
         renderer.sprite = SpriteLibrary[state];
         this.GetComponentInParent <SpriteRenderer>().sprite = SpriteLibrary[state];
     }
 }