diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm
index d4fe2eeb62..84a9b6f552 100644
--- a/code/modules/mob/living/carbon/life.dm
+++ b/code/modules/mob/living/carbon/life.dm
@@ -1,405 +1,405 @@
-/mob/living/carbon/Life()
- set invisibility = 0
- set background = BACKGROUND_ENABLED
-
- if (notransform)
- return
-
- if(damageoverlaytemp)
- damageoverlaytemp = 0
- update_damage_hud()
-
- if(..()) //not dead
- handle_blood()
-
- if(stat != DEAD)
- for(var/V in internal_organs)
- var/obj/item/organ/O = V
- O.on_life()
-
- //Updates the number of stored chemicals for powers
- handle_changeling()
-
+/mob/living/carbon/Life()
+ set invisibility = 0
+ set background = BACKGROUND_ENABLED
- if(stat != DEAD)
- return 1
-
-///////////////
-// BREATHING //
-///////////////
-
-//Start of a breath chain, calls breathe()
+ if (notransform)
+ return
+
+ if(damageoverlaytemp)
+ damageoverlaytemp = 0
+ update_damage_hud()
+
+ if(..()) //not dead
+ handle_blood()
+
+ if(stat != DEAD)
+ for(var/V in internal_organs)
+ var/obj/item/organ/O = V
+ O.on_life()
+
+ //Updates the number of stored chemicals for powers
+ handle_changeling()
+
+
+ if(stat != DEAD)
+ return 1
+
+///////////////
+// BREATHING //
+///////////////
+
+//Start of a breath chain, calls breathe()
/mob/living/carbon/handle_breathing(times_fired)
if((times_fired % 4) == 2 || failed_last_breath)
- breathe() //Breathe per 4 ticks, unless suffocating
- else
- if(istype(loc, /obj/))
- var/obj/location_as_object = loc
- location_as_object.handle_internal_lifeform(src,0)
-
-//Second link in a breath chain, calls check_breath()
-/mob/living/carbon/proc/breathe()
- if(reagents.has_reagent("lexorin"))
- return
- if(istype(loc, /obj/machinery/atmospherics/components/unary/cryo_cell))
- return
- if(ismob(loc))
- return
-
-
- var/datum/gas_mixture/environment
- if(loc)
- environment = loc.return_air()
-
- var/datum/gas_mixture/breath
-
- if(health <= HEALTH_THRESHOLD_CRIT || (pulledby && pulledby.grab_state >= GRAB_KILL && !getorganslot("breathing_tube")))
- losebreath++
-
- //Suffocate
- if(losebreath > 0)
- losebreath--
- if(prob(10))
- emote("gasp")
- if(istype(loc, /obj/))
- var/obj/loc_as_obj = loc
- loc_as_obj.handle_internal_lifeform(src,0)
- else
- //Breathe from internal
- breath = get_breath_from_internal(BREATH_VOLUME)
-
- if(!breath)
-
- if(isobj(loc)) //Breathe from loc as object
- var/obj/loc_as_obj = loc
- breath = loc_as_obj.handle_internal_lifeform(src, BREATH_VOLUME)
-
- else if(isturf(loc)) //Breathe from loc as turf
- var/breath_moles = 0
- if(environment)
- breath_moles = environment.total_moles()*BREATH_PERCENTAGE
-
- breath = loc.remove_air(breath_moles)
- else //Breathe from loc as obj again
- if(istype(loc, /obj/))
- var/obj/loc_as_obj = loc
- loc_as_obj.handle_internal_lifeform(src,0)
-
- check_breath(breath)
-
- if(breath)
- loc.assume_air(breath)
- air_update_turf()
-
-/mob/living/carbon/proc/has_smoke_protection()
- return 0
-
-
-//Third link in a breath chain, calls handle_breath_temperature()
-/mob/living/carbon/proc/check_breath(datum/gas_mixture/breath)
- if((status_flags & GODMODE))
- return
-
- var/lungs = getorganslot("lungs")
- if(!lungs)
- adjustOxyLoss(2)
-
- //CRIT
- if(!breath || (breath.total_moles() == 0) || !lungs)
- if(reagents.has_reagent("epinephrine") && lungs)
- return
- adjustOxyLoss(1)
- failed_last_breath = 1
- throw_alert("oxy", /obj/screen/alert/oxy)
- return 0
-
- var/safe_oxy_min = 16
- var/safe_co2_max = 10
- var/safe_tox_max = 0.05
- var/SA_para_min = 1
- var/SA_sleep_min = 5
- var/oxygen_used = 0
- var/breath_pressure = (breath.total_moles()*R_IDEAL_GAS_EQUATION*breath.temperature)/BREATH_VOLUME
-
- var/list/breath_gases = breath.gases
- breath.assert_gases("o2","plasma","co2","n2o", "bz")
-
- var/O2_partialpressure = (breath_gases["o2"][MOLES]/breath.total_moles())*breath_pressure
- var/Toxins_partialpressure = (breath_gases["plasma"][MOLES]/breath.total_moles())*breath_pressure
- var/CO2_partialpressure = (breath_gases["co2"][MOLES]/breath.total_moles())*breath_pressure
-
-
- //OXYGEN
- if(O2_partialpressure < safe_oxy_min) //Not enough oxygen
- if(prob(20))
- emote("gasp")
- if(O2_partialpressure > 0)
- var/ratio = 1 - O2_partialpressure/safe_oxy_min
- adjustOxyLoss(min(5*ratio, 3))
- failed_last_breath = 1
- oxygen_used = breath_gases["o2"][MOLES]*ratio
- else
- adjustOxyLoss(3)
- failed_last_breath = 1
- throw_alert("oxy", /obj/screen/alert/oxy)
-
- else //Enough oxygen
- failed_last_breath = 0
- if(oxyloss)
- adjustOxyLoss(-5)
- oxygen_used = breath_gases["o2"][MOLES]
- clear_alert("oxy")
-
- breath_gases["o2"][MOLES] -= oxygen_used
- breath_gases["co2"][MOLES] += oxygen_used
-
- //CARBON DIOXIDE
- if(CO2_partialpressure > safe_co2_max)
- if(!co2overloadtime)
- co2overloadtime = world.time
- else if(world.time - co2overloadtime > 120)
- Paralyse(3)
- adjustOxyLoss(3)
- if(world.time - co2overloadtime > 300)
- adjustOxyLoss(8)
- if(prob(20))
- emote("cough")
-
- else
- co2overloadtime = 0
-
- //TOXINS/PLASMA
- if(Toxins_partialpressure > safe_tox_max)
- var/ratio = (breath_gases["plasma"][MOLES]/safe_tox_max) * 10
- if(reagents)
- reagents.add_reagent("plasma", Clamp(ratio, MIN_PLASMA_DAMAGE, MAX_PLASMA_DAMAGE))
- throw_alert("tox_in_air", /obj/screen/alert/tox_in_air)
- else
- clear_alert("tox_in_air")
-
- //NITROUS OXIDE
- if(breath_gases["n2o"])
- var/SA_partialpressure = (breath_gases["n2o"][MOLES]/breath.total_moles())*breath_pressure
- if(SA_partialpressure > SA_para_min)
- Paralyse(3)
- if(SA_partialpressure > SA_sleep_min)
- Sleeping(max(sleeping+2, 10))
- else if(SA_partialpressure > 0.01)
- if(prob(20))
- emote(pick("giggle","laugh"))
-
- //BZ (Facepunch port of their Agent B)
- if(breath_gases["bz"])
- var/bz_partialpressure = (breath_gases["bz"][MOLES]/breath.total_moles())*breath_pressure
- if(bz_partialpressure > 1)
- hallucination += 20
- else if(bz_partialpressure > 0.01)
- hallucination += 5//Removed at 2 per tick so this will slowly build up
-
- breath.garbage_collect()
-
- //BREATH TEMPERATURE
- handle_breath_temperature(breath)
-
- return 1
-
-//Fourth and final link in a breath chain
-/mob/living/carbon/proc/handle_breath_temperature(datum/gas_mixture/breath)
- return
-
-/mob/living/carbon/proc/get_breath_from_internal(volume_needed)
- if(internal)
- if(internal.loc != src)
- internal = null
- update_internals_hud_icon(0)
- else if ((!wear_mask || !(wear_mask.flags & MASKINTERNALS)) && !getorganslot("breathing_tube"))
- internal = null
- update_internals_hud_icon(0)
- else
- update_internals_hud_icon(1)
- return internal.remove_air_volume(volume_needed)
-
-/mob/living/carbon/proc/handle_blood()
- return
-
-/mob/living/carbon/proc/handle_changeling()
- if(mind && hud_used && hud_used.lingchemdisplay)
- if(mind.changeling)
- mind.changeling.regenerate(src)
- hud_used.lingchemdisplay.invisibility = 0
- hud_used.lingchemdisplay.maptext = "
[round(mind.changeling.chem_charges)]
"
- else
- hud_used.lingchemdisplay.invisibility = INVISIBILITY_ABSTRACT
-
-
-/mob/living/carbon/handle_mutations_and_radiation()
- if(dna && dna.temporary_mutations.len)
- var/datum/mutation/human/HM
- for(var/mut in dna.temporary_mutations)
- if(dna.temporary_mutations[mut] < world.time)
- if(mut == UI_CHANGED)
- if(dna.previous["UI"])
- dna.uni_identity = merge_text(dna.uni_identity,dna.previous["UI"])
- updateappearance(mutations_overlay_update=1)
- dna.previous.Remove("UI")
- dna.temporary_mutations.Remove(mut)
- continue
- if(mut == UE_CHANGED)
- if(dna.previous["name"])
- real_name = dna.previous["name"]
- name = real_name
- dna.previous.Remove("name")
- if(dna.previous["UE"])
- dna.unique_enzymes = dna.previous["UE"]
- dna.previous.Remove("UE")
- if(dna.previous["blood_type"])
- dna.blood_type = dna.previous["blood_type"]
- dna.previous.Remove("blood_type")
- dna.temporary_mutations.Remove(mut)
- continue
- HM = GLOB.mutations_list[mut]
- HM.force_lose(src)
- dna.temporary_mutations.Remove(mut)
-
- if(radiation)
- radiation = Clamp(radiation, 0, 100)
- switch(radiation)
- if(0 to 50)
- radiation = max(radiation-1,0)
- if(prob(25))
- adjustToxLoss(1)
-
- if(50 to 75)
- radiation = max(radiation-2,0)
- adjustToxLoss(1)
- if(prob(5))
- radiation = max(radiation-5,0)
-
- if(75 to 100)
- radiation = max(radiation-3,0)
- adjustToxLoss(3)
-
-/mob/living/carbon/handle_chemicals_in_body()
- if(reagents)
- reagents.metabolize(src)
-
-
-/mob/living/carbon/handle_stomach()
- set waitfor = 0
- for(var/mob/living/M in stomach_contents)
- if(M.loc != src)
- stomach_contents.Remove(M)
- continue
- if(istype(M, /mob/living/carbon) && stat != DEAD)
- if(M.stat == DEAD)
- M.death(1)
- stomach_contents.Remove(M)
- qdel(M)
- continue
- if(SSmobs.times_fired%3==1)
- if(!(M.status_flags & GODMODE))
- M.adjustBruteLoss(5)
- nutrition += 10
-
-//this updates all special effects: stunned, sleeping, weakened, druggy, stuttering, etc..
-/mob/living/carbon/handle_status_effects()
- ..()
-
- if(staminaloss)
- if(sleeping)
- adjustStaminaLoss(-10)
- else
- adjustStaminaLoss(-3)
-
- if(sleeping)
- handle_dreams()
- AdjustSleeping(-1)
- if(prob(10) && health>HEALTH_THRESHOLD_CRIT)
- emote("snore")
-
- var/restingpwr = 1 + 4 * resting
-
- //Dizziness
- if(dizziness)
- var/client/C = client
- var/pixel_x_diff = 0
- var/pixel_y_diff = 0
- var/temp
- var/saved_dizz = dizziness
- if(C)
- var/oldsrc = src
- var/amplitude = dizziness*(sin(dizziness * 0.044 * world.time) + 1) / 70 // This shit is annoying at high strength
- src = null
- spawn(0)
- if(C)
- temp = amplitude * sin(0.008 * saved_dizz * world.time)
- pixel_x_diff += temp
- C.pixel_x += temp
- temp = amplitude * cos(0.008 * saved_dizz * world.time)
- pixel_y_diff += temp
- C.pixel_y += temp
- sleep(3)
- if(C)
- temp = amplitude * sin(0.008 * saved_dizz * world.time)
- pixel_x_diff += temp
- C.pixel_x += temp
- temp = amplitude * cos(0.008 * saved_dizz * world.time)
- pixel_y_diff += temp
- C.pixel_y += temp
- sleep(3)
- if(C)
- C.pixel_x -= pixel_x_diff
- C.pixel_y -= pixel_y_diff
- src = oldsrc
- dizziness = max(dizziness - restingpwr, 0)
-
- if(drowsyness)
- drowsyness = max(drowsyness - restingpwr, 0)
- blur_eyes(2)
- if(prob(5))
- AdjustSleeping(1)
- Paralyse(5)
-
- //Jitteryness
- if(jitteriness)
- do_jitter_animation(jitteriness)
- jitteriness = max(jitteriness - restingpwr, 0)
+ breathe() //Breathe per 4 ticks, unless suffocating
+ else
+ if(istype(loc, /obj/))
+ var/obj/location_as_object = loc
+ location_as_object.handle_internal_lifeform(src,0)
+
+//Second link in a breath chain, calls check_breath()
+/mob/living/carbon/proc/breathe()
+ if(reagents.has_reagent("lexorin"))
+ return
+ if(istype(loc, /obj/machinery/atmospherics/components/unary/cryo_cell))
+ return
+ if(ismob(loc))
+ return
+
+
+ var/datum/gas_mixture/environment
+ if(loc)
+ environment = loc.return_air()
+
+ var/datum/gas_mixture/breath
+
+ if(health <= HEALTH_THRESHOLD_CRIT || (pulledby && pulledby.grab_state >= GRAB_KILL && !getorganslot("breathing_tube")))
+ losebreath++
+
+ //Suffocate
+ if(losebreath > 0)
+ losebreath--
+ if(prob(10))
+ emote("gasp")
+ if(istype(loc, /obj/))
+ var/obj/loc_as_obj = loc
+ loc_as_obj.handle_internal_lifeform(src,0)
+ else
+ //Breathe from internal
+ breath = get_breath_from_internal(BREATH_VOLUME)
+
+ if(!breath)
+
+ if(isobj(loc)) //Breathe from loc as object
+ var/obj/loc_as_obj = loc
+ breath = loc_as_obj.handle_internal_lifeform(src, BREATH_VOLUME)
+
+ else if(isturf(loc)) //Breathe from loc as turf
+ var/breath_moles = 0
+ if(environment)
+ breath_moles = environment.total_moles()*BREATH_PERCENTAGE
+
+ breath = loc.remove_air(breath_moles)
+ else //Breathe from loc as obj again
+ if(istype(loc, /obj/))
+ var/obj/loc_as_obj = loc
+ loc_as_obj.handle_internal_lifeform(src,0)
+
+ check_breath(breath)
+
+ if(breath)
+ loc.assume_air(breath)
+ air_update_turf()
+
+/mob/living/carbon/proc/has_smoke_protection()
+ return 0
+
+
+//Third link in a breath chain, calls handle_breath_temperature()
+/mob/living/carbon/proc/check_breath(datum/gas_mixture/breath)
+ if((status_flags & GODMODE))
+ return
+
+ var/lungs = getorganslot("lungs")
+ if(!lungs)
+ adjustOxyLoss(2)
+
+ //CRIT
+ if(!breath || (breath.total_moles() == 0) || !lungs)
+ if(reagents.has_reagent("epinephrine") && lungs)
+ return
+ adjustOxyLoss(1)
+ failed_last_breath = 1
+ throw_alert("oxy", /obj/screen/alert/oxy)
+ return 0
+
+ var/safe_oxy_min = 16
+ var/safe_co2_max = 10
+ var/safe_tox_max = 0.05
+ var/SA_para_min = 1
+ var/SA_sleep_min = 5
+ var/oxygen_used = 0
+ var/breath_pressure = (breath.total_moles()*R_IDEAL_GAS_EQUATION*breath.temperature)/BREATH_VOLUME
+
+ var/list/breath_gases = breath.gases
+ breath.assert_gases("o2","plasma","co2","n2o", "bz")
+
+ var/O2_partialpressure = (breath_gases["o2"][MOLES]/breath.total_moles())*breath_pressure
+ var/Toxins_partialpressure = (breath_gases["plasma"][MOLES]/breath.total_moles())*breath_pressure
+ var/CO2_partialpressure = (breath_gases["co2"][MOLES]/breath.total_moles())*breath_pressure
+
+
+ //OXYGEN
+ if(O2_partialpressure < safe_oxy_min) //Not enough oxygen
+ if(prob(20))
+ emote("gasp")
+ if(O2_partialpressure > 0)
+ var/ratio = 1 - O2_partialpressure/safe_oxy_min
+ adjustOxyLoss(min(5*ratio, 3))
+ failed_last_breath = 1
+ oxygen_used = breath_gases["o2"][MOLES]*ratio
+ else
+ adjustOxyLoss(3)
+ failed_last_breath = 1
+ throw_alert("oxy", /obj/screen/alert/oxy)
+
+ else //Enough oxygen
+ failed_last_breath = 0
+ if(oxyloss)
+ adjustOxyLoss(-5)
+ oxygen_used = breath_gases["o2"][MOLES]
+ clear_alert("oxy")
+
+ breath_gases["o2"][MOLES] -= oxygen_used
+ breath_gases["co2"][MOLES] += oxygen_used
+
+ //CARBON DIOXIDE
+ if(CO2_partialpressure > safe_co2_max)
+ if(!co2overloadtime)
+ co2overloadtime = world.time
+ else if(world.time - co2overloadtime > 120)
+ Paralyse(3)
+ adjustOxyLoss(3)
+ if(world.time - co2overloadtime > 300)
+ adjustOxyLoss(8)
+ if(prob(20))
+ emote("cough")
+
+ else
+ co2overloadtime = 0
+
+ //TOXINS/PLASMA
+ if(Toxins_partialpressure > safe_tox_max)
+ var/ratio = (breath_gases["plasma"][MOLES]/safe_tox_max) * 10
+ if(reagents)
+ reagents.add_reagent("plasma", Clamp(ratio, MIN_PLASMA_DAMAGE, MAX_PLASMA_DAMAGE))
+ throw_alert("tox_in_air", /obj/screen/alert/tox_in_air)
+ else
+ clear_alert("tox_in_air")
+
+ //NITROUS OXIDE
+ if(breath_gases["n2o"])
+ var/SA_partialpressure = (breath_gases["n2o"][MOLES]/breath.total_moles())*breath_pressure
+ if(SA_partialpressure > SA_para_min)
+ Paralyse(3)
+ if(SA_partialpressure > SA_sleep_min)
+ Sleeping(max(sleeping+2, 10))
+ else if(SA_partialpressure > 0.01)
+ if(prob(20))
+ emote(pick("giggle","laugh"))
+
+ //BZ (Facepunch port of their Agent B)
+ if(breath_gases["bz"])
+ var/bz_partialpressure = (breath_gases["bz"][MOLES]/breath.total_moles())*breath_pressure
+ if(bz_partialpressure > 1)
+ hallucination += 20
+ else if(bz_partialpressure > 0.01)
+ hallucination += 5//Removed at 2 per tick so this will slowly build up
+
+ breath.garbage_collect()
+
+ //BREATH TEMPERATURE
+ handle_breath_temperature(breath)
+
+ return 1
+
+//Fourth and final link in a breath chain
+/mob/living/carbon/proc/handle_breath_temperature(datum/gas_mixture/breath)
+ return
+
+/mob/living/carbon/proc/get_breath_from_internal(volume_needed)
+ if(internal)
+ if(internal.loc != src)
+ internal = null
+ update_internals_hud_icon(0)
+ else if ((!wear_mask || !(wear_mask.flags & MASKINTERNALS)) && !getorganslot("breathing_tube"))
+ internal = null
+ update_internals_hud_icon(0)
+ else
+ update_internals_hud_icon(1)
+ return internal.remove_air_volume(volume_needed)
+
+/mob/living/carbon/proc/handle_blood()
+ return
+
+/mob/living/carbon/proc/handle_changeling()
+ if(mind && hud_used && hud_used.lingchemdisplay)
+ if(mind.changeling)
+ mind.changeling.regenerate(src)
+ hud_used.lingchemdisplay.invisibility = 0
+ hud_used.lingchemdisplay.maptext = "[round(mind.changeling.chem_charges)]
"
+ else
+ hud_used.lingchemdisplay.invisibility = INVISIBILITY_ABSTRACT
+
+
+/mob/living/carbon/handle_mutations_and_radiation()
+ if(dna && dna.temporary_mutations.len)
+ var/datum/mutation/human/HM
+ for(var/mut in dna.temporary_mutations)
+ if(dna.temporary_mutations[mut] < world.time)
+ if(mut == UI_CHANGED)
+ if(dna.previous["UI"])
+ dna.uni_identity = merge_text(dna.uni_identity,dna.previous["UI"])
+ updateappearance(mutations_overlay_update=1)
+ dna.previous.Remove("UI")
+ dna.temporary_mutations.Remove(mut)
+ continue
+ if(mut == UE_CHANGED)
+ if(dna.previous["name"])
+ real_name = dna.previous["name"]
+ name = real_name
+ dna.previous.Remove("name")
+ if(dna.previous["UE"])
+ dna.unique_enzymes = dna.previous["UE"]
+ dna.previous.Remove("UE")
+ if(dna.previous["blood_type"])
+ dna.blood_type = dna.previous["blood_type"]
+ dna.previous.Remove("blood_type")
+ dna.temporary_mutations.Remove(mut)
+ continue
+ HM = GLOB.mutations_list[mut]
+ HM.force_lose(src)
+ dna.temporary_mutations.Remove(mut)
+
+ if(radiation)
+ radiation = Clamp(radiation, 0, 100)
+ switch(radiation)
+ if(0 to 50)
+ radiation = max(radiation-1,0)
+ if(prob(25))
+ adjustToxLoss(1)
+
+ if(50 to 75)
+ radiation = max(radiation-2,0)
+ adjustToxLoss(1)
+ if(prob(5))
+ radiation = max(radiation-5,0)
+
+ if(75 to 100)
+ radiation = max(radiation-3,0)
+ adjustToxLoss(3)
+
+/mob/living/carbon/handle_chemicals_in_body()
+ if(reagents)
+ reagents.metabolize(src)
+
+
+/mob/living/carbon/handle_stomach()
+ set waitfor = 0
+ for(var/mob/living/M in stomach_contents)
+ if(M.loc != src)
+ stomach_contents.Remove(M)
+ continue
+ if(istype(M, /mob/living/carbon) && stat != DEAD)
+ if(M.stat == DEAD)
+ M.death(1)
+ stomach_contents.Remove(M)
+ qdel(M)
+ continue
+ if(SSmobs.times_fired%3==1)
+ if(!(M.status_flags & GODMODE))
+ M.adjustBruteLoss(5)
+ nutrition += 10
+
+//this updates all special effects: stunned, sleeping, weakened, druggy, stuttering, etc..
+/mob/living/carbon/handle_status_effects()
+ ..()
+
+ if(staminaloss)
+ if(sleeping)
+ adjustStaminaLoss(-10)
+ else
+ adjustStaminaLoss(-3)
+
+ if(sleeping)
+ handle_dreams()
+ AdjustSleeping(-1)
+ if(prob(10) && health>HEALTH_THRESHOLD_CRIT)
+ emote("snore")
+
+ var/restingpwr = 1 + 4 * resting
+
+ //Dizziness
+ if(dizziness)
+ var/client/C = client
+ var/pixel_x_diff = 0
+ var/pixel_y_diff = 0
+ var/temp
+ var/saved_dizz = dizziness
+ if(C)
+ var/oldsrc = src
+ var/amplitude = dizziness*(sin(dizziness * 0.044 * world.time) + 1) / 70 // This shit is annoying at high strength
+ src = null
+ spawn(0)
+ if(C)
+ temp = amplitude * sin(0.008 * saved_dizz * world.time)
+ pixel_x_diff += temp
+ C.pixel_x += temp
+ temp = amplitude * cos(0.008 * saved_dizz * world.time)
+ pixel_y_diff += temp
+ C.pixel_y += temp
+ sleep(3)
+ if(C)
+ temp = amplitude * sin(0.008 * saved_dizz * world.time)
+ pixel_x_diff += temp
+ C.pixel_x += temp
+ temp = amplitude * cos(0.008 * saved_dizz * world.time)
+ pixel_y_diff += temp
+ C.pixel_y += temp
+ sleep(3)
+ if(C)
+ C.pixel_x -= pixel_x_diff
+ C.pixel_y -= pixel_y_diff
+ src = oldsrc
+ dizziness = max(dizziness - restingpwr, 0)
+
+ if(drowsyness)
+ drowsyness = max(drowsyness - restingpwr, 0)
+ blur_eyes(2)
+ if(prob(5))
+ AdjustSleeping(1)
+ Paralyse(5)
+
+ //Jitteriness
+ if(jitteriness)
+ do_jitter_animation(jitteriness)
+ jitteriness = max(jitteriness - restingpwr, 0)
var/obj/item/organ/heart/heart = getorgan(/obj/item/organ/heart)
if(heart)
if(!heart.beat || heart.beat == BEAT_SLOW)
stop_sound_channel(BEAT_CHANNEL)
playsound_local(src,'sound/health/fastbeat.ogg',40,0, channel = BEAT_CHANNEL)
heart.beat = BEAT_FAST
-
- if(stuttering)
- stuttering = max(stuttering-1, 0)
-
- if(slurring)
- slurring = max(slurring-1,0)
-
- if(cultslurring)
- cultslurring = max(cultslurring-1, 0)
-
- if(silent)
- silent = max(silent-1, 0)
-
- if(druggy)
- adjust_drugginess(-1)
-
- if(hallucination)
- spawn handle_hallucinations()
- hallucination = max(hallucination-2,0)
-
-//used in human and monkey handle_environment()
-/mob/living/carbon/proc/natural_bodytemperature_stabilization()
- var/body_temperature_difference = 310.15 - bodytemperature
- switch(bodytemperature)
- if(-INFINITY to 260.15) //260.15 is 310.15 - 50, the temperature where you start to feel effects.
- bodytemperature += max((body_temperature_difference * metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR), BODYTEMP_AUTORECOVERY_MINIMUM)
- if(260.15 to 310.15)
- bodytemperature += max(body_temperature_difference * metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR, min(body_temperature_difference, BODYTEMP_AUTORECOVERY_MINIMUM/4))
- if(310.15 to 360.15)
- bodytemperature += min(body_temperature_difference * metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR, max(body_temperature_difference, -BODYTEMP_AUTORECOVERY_MINIMUM/4))
- if(360.15 to INFINITY) //360.15 is 310.15 + 50, the temperature where you start to feel effects.
- //We totally need a sweat system cause it totally makes sense...~
- bodytemperature += min((body_temperature_difference / BODYTEMP_AUTORECOVERY_DIVISOR), -BODYTEMP_AUTORECOVERY_MINIMUM) //We're dealing with negative numbers
+
+ if(stuttering)
+ stuttering = max(stuttering-1, 0)
+
+ if(slurring)
+ slurring = max(slurring-1,0)
+
+ if(cultslurring)
+ cultslurring = max(cultslurring-1, 0)
+
+ if(silent)
+ silent = max(silent-1, 0)
+
+ if(druggy)
+ adjust_drugginess(-1)
+
+ if(hallucination)
+ spawn handle_hallucinations()
+ hallucination = max(hallucination-2,0)
+
+//used in human and monkey handle_environment()
+/mob/living/carbon/proc/natural_bodytemperature_stabilization()
+ var/body_temperature_difference = 310.15 - bodytemperature
+ switch(bodytemperature)
+ if(-INFINITY to 260.15) //260.15 is 310.15 - 50, the temperature where you start to feel effects.
+ bodytemperature += max((body_temperature_difference * metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR), BODYTEMP_AUTORECOVERY_MINIMUM)
+ if(260.15 to 310.15)
+ bodytemperature += max(body_temperature_difference * metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR, min(body_temperature_difference, BODYTEMP_AUTORECOVERY_MINIMUM/4))
+ if(310.15 to 360.15)
+ bodytemperature += min(body_temperature_difference * metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR, max(body_temperature_difference, -BODYTEMP_AUTORECOVERY_MINIMUM/4))
+ if(360.15 to INFINITY) //360.15 is 310.15 + 50, the temperature where you start to feel effects.
+ //We totally need a sweat system cause it totally makes sense...~
+ bodytemperature += min((body_temperature_difference / BODYTEMP_AUTORECOVERY_DIVISOR), -BODYTEMP_AUTORECOVERY_MINIMUM) //We're dealing with negative numbers