public float takeFireDamage(float delta, ObjectInteractable source)//Damage subtracts. deltas should be positive. { if (!dead && takesFireDamage) { if (delta >= 0.5f) { foreach (var observer in fireHitObservers) { observer.trigger(source.gameObject); } foreach (var observer in fireDamageObservers) { delta = observer.trigger(delta); } } BurningEffect burning = GetComponent <BurningEffect>(); if (burning != null) { burning.addDuration(delta / 100); } return(takeRawDamage(applyArmor(fireArmor, delta), source)); } else { return(0); } }