diff --git a/code/__DEFINES/atmospherics_defines.dm b/code/__DEFINES/atmospherics_defines.dm index 24a8e9aad9c..6ebab8f8b26 100644 --- a/code/__DEFINES/atmospherics_defines.dm +++ b/code/__DEFINES/atmospherics_defines.dm @@ -10,7 +10,7 @@ #define R_IDEAL_GAS_EQUATION 8.31 //kPa*L/(K*mol) #define ONE_ATMOSPHERE 101.325 //kPa #define TCMB 2.7 // -270.3degC -#define TCRYO 265 // -48.15degC +#define TCRYO 215 // -58.15degC #define T0C 273.15 // 0degC #define T20C 293.15 // 20degC /// -14C - Temperature used for kitchen cold room, medical freezer, etc. diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm index 8ae055aa399..92b23bedb41 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -122,24 +122,25 @@ heart_rate_decrease = 1 taste_description = "a safe refuge" +/datum/reagent/medicine/cryoxadone/reaction_mob(mob/living/M, method = REAGENT_TOUCH, volume, show_message = TRUE) + if(iscarbon(M)) + if(method == REAGENT_INGEST && M.bodytemperature < TCRYO) + data = "Ingested" + if(show_message) + to_chat(M, "[src] freezes solid as it enters your body!") //Burn damage already happens on ingesting + ..() + /datum/reagent/medicine/cryoxadone/on_mob_life(mob/living/M) var/update_flags = STATUS_UPDATE_NONE - - var/external_temp - if(istype(M.loc, /obj/machinery/atmospherics/unary/cryo_cell)) - var/obj/machinery/atmospherics/unary/cryo_cell/C = M.loc - external_temp = C.air_contents.temperature - else - var/turf/T = get_turf(M) - external_temp = T.temperature - - if(external_temp < TCRYO) + if(M.bodytemperature < TCRYO && data != "Ingested") update_flags |= M.adjustCloneLoss(-4, FALSE) update_flags |= M.adjustOxyLoss(-10, FALSE) update_flags |= M.adjustToxLoss(-3, FALSE) update_flags |= M.adjustBruteLoss(-12, FALSE) update_flags |= M.adjustFireLoss(-12, FALSE) - + M.Stun(4 SECONDS) //You freeze up, but get good healing. Stops use as a combat drug, or for meming on blobs in space. + if(M.stat == CONSCIOUS && prob(25)) //So people know what is going on outside cryo tubes, in the event someone weaponises this. + to_chat(M, "Your veins and muscles are freezing!") if(ishuman(M)) var/mob/living/carbon/human/H = M var/obj/item/organ/external/head/head = H.get_organ("head")