diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 632fac96da9..b2b90a02f30 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1498,19 +1498,20 @@ GLOBAL_LIST_EMPTY(roundstart_races) SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "hot", /datum/mood_event/hot) var/burn_damage - switch(H.bodytemperature) - if(BODYTEMP_HEAT_DAMAGE_LIMIT to 400) - H.throw_alert("temp", /obj/screen/alert/hot, 1) - burn_damage = HEAT_DAMAGE_LEVEL_1 - if(400 to 460) - H.throw_alert("temp", /obj/screen/alert/hot, 2) - burn_damage = HEAT_DAMAGE_LEVEL_2 - else - H.throw_alert("temp", /obj/screen/alert/hot, 3) - if(H.on_fire) - burn_damage = HEAT_DAMAGE_LEVEL_3 + var/firemodifier = H.fire_stacks / 5 + if (H.on_fire) + burn_damage = max(log(2-firemodifier,(H.bodytemperature-BODYTEMP_NORMAL))-5,0) + else + firemodifier = min(firemodifier, 0) + burn_damage = max(log(2-firemodifier,(H.bodytemperature-BODYTEMP_NORMAL))-5,0) // this can go below 5 at log 2.5 + if (burn_damage) + switch(burn_damage) + if(0 to 2) + H.throw_alert("temp", /obj/screen/alert/hot, 1) + if(2 to 4) + H.throw_alert("temp", /obj/screen/alert/hot, 2) else - burn_damage = HEAT_DAMAGE_LEVEL_2 + H.throw_alert("temp", /obj/screen/alert/hot, 3) burn_damage = burn_damage * heatmod * H.physiology.heat_mod if (H.stat < UNCONSCIOUS && (prob(burn_damage) * 10) / 4) //40% for level 3 damage on humans H.emote("scream")