public void TakeDamage(int damage, CharacterStats defender) { int currentDamage = Mathf.Max(damage - defender.CurrentDefence, 0); CurrentHealth = Mathf.Max(CurrentHealth - currentDamage, 0); UpdateHealthBarOnAttack?.Invoke(CurrentHealth, MaxHealth); defender.GetComponent <Animator>().SetTrigger("hit"); if (CurrentHealth <= 0) { GameManager.Instance.playerStats.characterData.UpdateExp(characterData.killPoint); } }
public void TakeDamage(CharacterStats attacker, CharacterStats defender) { int damage = Mathf.Max(attacker.CurrentDamage() - defender.CurrentDefence, 0); CurrentHealth = Mathf.Max(CurrentHealth - damage, 0); //defender.GetComponent<Animator>().SetTrigger("hit"); if (attacker.isCritical) { defender.GetComponent <Animator>().SetTrigger("back"); defender.GetComponent <Animator>().SetTrigger("hit"); } //update UI UpdateHealthBarOnAttack?.Invoke(CurrentHealth, MaxHealth); //经验update if (CurrentHealth <= 0) { attacker.characterData.UpdateExp(characterData.killPoint); } }
public void TakeDamage(CharacterStats attacker, CharacterStats defener) { int damage = Mathf.Max(attacker.CurrentDamage() - defener.CurrentDefence, 0); Debug.Log("TakeDamage CurrentHealth = " + (CurrentHealth)); Debug.Log("TakeDamage damage = " + (damage)); CurrentHealth = Mathf.Max(CurrentHealth - damage, 0); if (attacker.isCritical) { defener.GetComponent <Animator>().SetTrigger("Hit"); } // 更新血量UI UpdateHealthBarOnAttack? .Invoke(CurrentHealth, MaxHealth); // 更新经验 if (CurrentHealth <= 0) { attacker.characterData.UpdateExp(characterData.killPoint); } }
// Damage 伤害值, 函数重载 public void TakeDamage(int damage, CharacterStats defener) { int currentDamage = Mathf.Max(damage - defener.CurrentDefence, 0); // Debug.Log("TakeDamage 2 CurrentHealth = " + (CurrentHealth)); // Debug.Log("TakeDamage 2 damage = " + (damage)); CurrentHealth = Mathf.Max(CurrentHealth - currentDamage, 0); // if (attacker.isCritical) // { // defener.GetComponent<Animator>().SetTrigger("Hit"); // } // 更新血量UI UpdateHealthBarOnAttack? .Invoke(CurrentHealth, MaxHealth); // 更新经验 if (CurrentHealth <= 0) { GameManager.Instance.playerStats.characterData.UpdateExp(characterData.killPoint); } }