private void Update() { if (playerStats == null || enemyStats == null) { return; } if (Time.time - playerAttackTimestamp >= playerStats.attackSpeed && enemyBeingAttacked) { int damage = playerStats.damage - enemyStats.armour; damage = Mathf.Clamp(damage, 0, int.MaxValue); enemyStats.TakeDamage(damage); Debug.Log("Enemy takes " + damage + " damage"); if (damage != 0) { enemyHealthBarUI.SetHealthBarValue(enemyStats.GetHealthPercentage()); } playerAttackTimestamp = Time.time; } if (Time.time - enemyAttackTimestamp >= enemyStats.attackSpeed && playerBeingAttacked) { int damage = enemyStats.damage - playerStats.armour; damage = Mathf.Clamp(damage, 0, int.MaxValue); playerStats.TakeDamage(damage); Debug.Log("Player takes " + damage + " damage"); if (damage != 0) { playerHealthBarUI.SetHealthBarValue(playerStats.GetHealthPercentage()); } enemyAttackTimestamp = Time.time; } }