// Update is called once per frame void Update() { if (v_enemy.enabled == true) { //Checks if the player has died during the tutorial and resets some values if (v_player.v_playerState == S_PlayerState.Idle && vAux_previousPlayerState == S_PlayerState.Spawn) { v_enemy.enabled = false; vAux_firstTutorial = true; vAux_secondTutorial = false; vAux_playerIsProtecting = false; vAux_playerHasDied = true; v_enemy.CancelInvoke(); return; } vAux_previousPlayerState = v_player.v_playerState; //*****BLOCKING TUTORIAL*****// if (vAux_firstTutorial && v_pauseMenu.activeSelf == false) { CorrectPlayerState(); if (!vAux_hasCorrectedTheAnimation) { CorrectPlayerAnimation(); } v_player.i_rb.velocity = Vector2.zero; if (vAux_playerIsProtecting) { if (v_player.v_currentAnimation == S_PlayerAnimation.BlockProjectile) //Means that player has completed the tutorial { v_enemy.CancelInvoke(); v_enemy.enabled = false; vAux_firstTutorial = false; vAux_secondTutorial = true; v_player.vAux_TutorialCantMove = false; v_shield.vAux_firstTutorial = false; vAux_hasCorrectedTheAnimation = false; //Resets the var to know if has to correct animation again } else if (v_player.v_currentAnimation == S_PlayerAnimation.Damage || v_player.v_currentAnimation == S_PlayerAnimation.DamageNoShield) //Player has died { v_enemy.CancelInvoke(); v_enemy.enabled = false; v_player.vAux_TutorialCantMove = false; v_shield.vAux_firstTutorial = false; vAux_playerHasDied = true; Time.timeScale = 1f; } if (Input.GetAxisRaw("Protect") == 0) { vAux_playerIsProtecting = false; } } else //Pauses time and show the canvas { Time.timeScale = 0f; LevelManager.instance.v_pausedLevel = true; v_tutorialMenu.SetActive(true); //shows the canvas message if (Input.GetAxisRaw("Protect") != 0) { v_tutorialMenu.SetActive(false); vAux_playerIsProtecting = true; v_player.vAux_TutorialCantMove = true; v_shield.vAux_firstTutorial = true; LevelManager.instance.v_pausedLevel = false; Time.timeScale = 1f; } } } else if (vAux_secondTutorial && v_pauseMenu.activeSelf == false) { if (Input.GetAxisRaw("Parry") == 0) { if (!vAux_hasCorrectedTheAnimation) { CorrectPlayerAnimation(); vAux_hasCorrectedTheAnimation = true; } CorrectPlayerState(); v_tutorialMenu.SetActive(true); v_player.i_rb.velocity = Vector2.zero; v_shield.StopAllCoroutines(); LevelManager.instance.v_pausedLevel = true; Time.timeScale = 0f; } else { vAux_secondTutorial = false; v_tutorialMenu.SetActive(false); v_player.vAux_TutorialCantMove = false; LevelManager.instance.v_pausedLevel = false; Time.timeScale = 1f; } } if (v_enemy.v_isDead) { Destroy(this); } } else { CheckDistanceWithPlayer(); } }
private void CheckDistanceWithPlayer() { Vector3 l_distance = this.transform.position - v_player.transform.position; vAux_previousPlayerState = S_PlayerState.Idle; if (vAux_firstTutorial) { if (l_distance.magnitude <= v_minDistanceWithPlayer) { if (v_player.v_playerState == S_PlayerState.Run) { CorrectPlayerState(); CorrectPlayerAnimation(); v_player.i_rb.velocity = Vector2.zero; v_player.vAux_TutorialCantMove = true; } if (v_player.v_playerState == S_PlayerState.Idle) { if (v_shield.v_shieldState == S_ShieldState.Hide) { v_enemy.enabled = true; if (vAux_playerHasDied) { v_enemy.CancelInvoke(); v_enemy.Initializate(); vAux_playerHasDied = false; } } else { if (v_shield.v_shieldState != S_ShieldState.Hide && v_shield.v_shieldState != S_ShieldState.Returning) { v_shield.ChangeShieldState(v_shield.v_shieldState, S_ShieldState.Returning); } CorrectPlayerAnimation(); } } } } else if (vAux_secondTutorial) { if (l_distance.magnitude <= v_minDistanceWithPlayer2) { if (v_player.v_playerState == S_PlayerState.Run) { CorrectPlayerState(); CorrectPlayerAnimation(); v_player.vAux_TutorialCantMove = true; } if (v_player.v_playerState == S_PlayerState.Idle) { if (v_shield.InHand()) { v_enemy.CancelInvoke(); v_enemy.enabled = true; v_enemy.Initializate(); } else { if (v_shield.v_shieldState != S_ShieldState.Returning) { v_shield.ChangeShieldState(v_shield.v_shieldState, S_ShieldState.Returning); } CorrectPlayerAnimation(); } } } } }