# How to lose a specific amount of health over time

So when my character gets hit by the enemies fire breath, I want to create the feel of the character being set on fire. So while the character is on fire I want him to lose a specific amount of health over a specific amount of time.

For example; lets say he is on fire for 3 seconds and I want to make him lose 30 health for being on fire, how would I evenly distribute losing 30 health for 3 seconds? I dont want the 30 damage to be applied instantly to the health, I want it to slowly tick away at the players health so that at the 3 second mark 30 damage has been dealt.

Thanks.

public float health = 1000; // health of player
public float dmgTick = 100; // Damage each tick
public float timeXTick = 1; // Time in seconds each tick of damage
public int totalTicks = 3; // how many seconds ( ticks ) 100 damage each tick

IEnumerator DmgXSecond()
{
int ticks = 0;
int totalTicksTemp = totalTicks;

while (ticks < totalTicksTemp)
{
ticks++;
health -= dmgTick;  // Player recive 100 damage
yield return new WaitForSecondsRealtime(timeXTick);  // wait 1 second
}

}

private void Update()
{
if(Input.GetKeyDown(KeyCode.Space))
{
StartCoroutine("DmgXSecond"); // If Hit Space, 3 ticks of 100 dmg each second.
}
}

private float timeLeft;
private bool losingHealth;
void Start(){
timeLeft=30f;
losingHealth = false;
}

void Update()
{
if (losingHealth==true){
timeLeft -= Time.deltaTime;
CharacterHealth -= Time.deltaTime;    //to round it use: Mathf.Round (Time:deltaTime* 10f) / 10f;
if ( timeLeft < 0 )
{
losingHealth=false;
}
}