void Update()
 {
     if (Input.GetKeyDown(KeyCode.RightAlt))
     {
         CurrentResistanceLevel = playerResistance.timeBased;
     }
 }
    public void Immunity()
    {
        SoundManager.PlaySoundEffect(2);
        GameManager.gameManager.updateMetrics += UpdateImmunity;

        CurrentResistanceLevel = playerResistance.simple;
        ChangeMaterial(1);
    }
    public void EndFling()
    {
        ability.Shoot();

        _flingActive = false;

        CurrentResistanceLevel = PreviousResistanceLevel;
        ChangeMaterial((int)CurrentResistanceLevel);
    }
    public void EndSuperSize()
    {
        ability.Shoot();

        Movement.superSized(false);
        animator.SuperSize(false);

        CurrentResistanceLevel = PreviousResistanceLevel;
        ChangeMaterial((int)CurrentResistanceLevel);
    }
    IEnumerator SuperSizeEffect()
    {
        PreviousResistanceLevel = CurrentResistanceLevel;
        CurrentResistanceLevel  = playerResistance.timeBased;
        ChangeMaterial(2);

        animator.SuperSize(true);
        Movement.superSized(true);

        yield return(new WaitForSeconds(5f));

        EndSuperSize();
    }
    public void Fling()
    {
        SoundManager.PlaySoundEffect(3);
        GameManager.gameManager.updateMetrics += UpdateFling;

        _flingActive = true;

        PreviousResistanceLevel = CurrentResistanceLevel;
        CurrentResistanceLevel  = playerResistance.timeBased;

        ChangeMaterial(3);

        Movement.Fling();
    }
    void Start()
    {
        _flingCount    = 0;
        superSizeCount = 0;
        _immunityCount = 0;

        animator = GetComponent <CharacterAnimations>();
        ability  = GetComponentInParent <CharacterAbility>();
        Movement = GetComponentInParent <CharacterMovement>();
        UI       = FindObjectOfType <GameUI>();

        CurrentResistanceLevel = playerResistance.none;
        rend         = GetComponent <Renderer>();
        rend.enabled = true;

        materials = Resources.LoadAll <Material>("Materials/Player");
        UI.ChangeColour(materials[0]);
    }
 public void Hit()
 {
     CurrentResistanceLevel = playerResistance.none;
     ChangeMaterial(0);
 }