/// <summary> /// Drains all the health of an orb immediately /// </summary> public void DrainHealth() { CurrentHealth = 0; OnOrbZeroHealth?.Invoke(); foreach (Renderer chargeRenderer in ChargeObjects) { chargeRenderer.material.SetFloat("_alpha", DimAlpha); } }
/// <summary> /// Reduces health of the orb by the given damage value /// </summary> /// <param name="damage"> The damage value to apply </param> public void ReduceHealth(int damage) { CurrentHealth -= damage; // if current health is less than or equal to zero, trigger an orb-health-zero event if (CurrentHealth <= 0) { OnOrbZeroHealth?.Invoke(); } if (CurrentHealth >= 0 && CurrentHealth < MaxHealth) { ChargeObjects[CurrentHealth].material.SetFloat("_alpha", DimAlpha); } }