public void DamageHp(DamageSystem.DamageTypes damageType, int baseDamage) { int finalDamage = baseDamage; bool isElemental = damageType.IsElemental(), isPhysical = damageType.IsPhysical(); if (isElemental && isPhysical) { finalDamage -= Mathf.Min(Spi, Vit); } else if (isElemental) { finalDamage -= Spi; } else if (isPhysical) { finalDamage -= Vit; } if (finalDamage < 10) { finalDamage = Random.Range(1, 10); } CurrentHp = Mathf.Max(CurrentHp - finalDamage, 0); if (CurrentHp == 0) { StartCoroutine(OnDeath()); } else { SoundManager.PlaySound(SoundManager.Sound.DAMAGE); } }
public void DamageHp(DamageSystem.DamageTypes damageType, int baseDamage) { int finalDamage = baseDamage; CurrentHp = Mathf.Max(CurrentHp - finalDamage, 0); if (CurrentHp == 0) { GameManager.UnregisterForTurn(this); player.AddExperience(Random.Range(50, 75)); Destroy(gameObject); } }