public void Respawn() { AudioManager.PlaySound(AudioManager.Sound.Confirm); Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false; PlayerRespawned?.Invoke(); impact = Vector3.zero; isDead = false; canMove = true; canRun = true; currentHealth = maxHealth; PlayerDamaged?.Invoke(currentHealth, maxHealth); stamina = maxStamina; StaminaChanged?.Invoke(stamina, maxStamina); var respawnPosition = new Vector3(152.2615f, 1, 142.5762f); // turn off characterController so that it does not override transform.position characterController.enabled = false; gameObject.transform.position = respawnPosition; characterController.enabled = true; onFireTimer = 5; bleedingTimer = 10; exhaustedTimer = 5; animator.SetBool("isDying", false); animator.SetBool("isRunning", false); animator.SetBool("isAttacking", false); animator.SetBool("isIdle", true); }
private void ChangeStamina(float changeAmount) { stamina += changeAmount * Time.deltaTime; if (stamina > maxStamina) { stamina = maxStamina; } StaminaChanged?.Invoke(stamina, maxStamina); }
protected override void OnProcessDelta(Delta d) { base.OnProcessDelta(d); if (d.HasFlag(Delta.Hits)) { HitsChanged.Raise(this); } if (d.HasFlag(Delta.Mana)) { ManaChanged.Raise(this); } if (d.HasFlag(Delta.Stamina)) { StaminaChanged.Raise(this); } }
private void DrainStamina() { stamina = 0; StaminaChanged?.Invoke(stamina, maxStamina); return; }
public void ExpenditureStamina() { StaminaChanged?.Invoke(-energyCost); }