//Contains base elements / reagents. datum reagent aluminium name = "aluminium" id = "aluminium" description = "A silvery white and ductile member of the boron group of chemical elements." reagent_state = SOLID fluid_r = 220 fluid_g = 220 fluid_b = 220 transparency = 255 barium name = "barium" id = "barium" description = "A highly reactive element." reagent_state = SOLID fluid_r = 220 fluid_g = 220 fluid_b = 220 transparency = 255 bromine name = "bromine" id = "bromine" description = "A red-brown liquid element." reagent_state = LIQUID fluid_r = 150 fluid_g = 50 fluid_b = 50 transparency = 50 calcium name = "calcium" id = "calcium" description = "A white metallic element." reagent_state = SOLID fluid_r = 255 fluid_g = 255 fluid_b = 255 transparency = 255 carbon name = "carbon" id = "carbon" description = "A chemical element critical to organic chemistry." reagent_state = SOLID fluid_r = 0 fluid_g = 0 fluid_b = 0 hygiene_value = -0.5 transparency = 255 reaction_turf(var/turf/T, var/volume) src = null if(!istype(T, /turf/space)) if(volume >= 5) if(!locate(/obj/decal/cleanable/dirt) in T) make_cleanable(/obj/decal/cleanable/dirt,T) chlorine name = "chlorine" id = "chlorine" description = "A chemical element." reagent_state = GAS fluid_r = 220 fluid_g = 255 fluid_b = 160 transparency = 60 penetrates_skin = 1 on_mob_life(var/mob/M, var/mult = 1) if(!M) M = holder.my_atom M.TakeDamage("chest", 0, 1*mult, 0, DAMAGE_BURN) M.updatehealth() ..() return on_plant_life(var/obj/machinery/plantpot/P) P.HYPdamageplant("poison",3) chromium name = "chromium" id = "chromium" description = "A catalytic chemical element." reagent_state = SOLID fluid_r = 220 fluid_g = 220 fluid_b = 220 transparency = 255 penetrates_skin = 0 copper name = "copper" id = "copper" description = "A chemical element." reagent_state = SOLID fluid_r = 184 fluid_g = 115 fluid_b = 51 transparency = 255 penetrates_skin = 0 fluorine name = "fluorine" id = "fluorine" description = "A highly-reactive chemical element." reagent_state = GAS fluid_r = 255 fluid_g = 215 fluid_b = 160 transparency = 60 penetrates_skin = 1 on_mob_life(var/mob/M, var/mult = 1) if(!M) M = holder.my_atom M.take_toxin_damage(1*mult) // buffin this because fluorine is horrible - adding a burn effect M.TakeDamage("chest", 0, 1*mult, 0, DAMAGE_BURN) M.updatehealth() ..() return on_plant_life(var/obj/machinery/plantpot/P) P.HYPdamageplant("poison",3) ethanol name = "ethanol" id = "ethanol" description = "A well-known alcohol with a variety of applications." reagent_state = LIQUID fluid_r = 255 fluid_b = 255 fluid_g = 255 transparency = 5 addiction_prob = 1 addiction_min = 10 depletion_rate = 0.05 // ethanol depletes slower but is formed in smaller quantities overdose = 100 // ethanol poisoning thirst_value = -1 bladder_value = -0.5 target_organs = list("liver") //heart, "stomach", "intestines", "left_kidney", "right_kidney" on_add() if (ismob(holder.my_atom)) holder.my_atom.setStatus("drunk", duration = null) return on_remove() if (ismob(holder.my_atom)) holder.my_atom.delStatus("drunk") return on_mob_life(var/mob/M, var/mult = 1) if(!M) M = holder.my_atom if (ishuman(M)) var/mob/living/carbon/human/H = M var/liver_damage = 0 if (!isalcoholresistant(H)) if (holder.get_reagent_amount(src.id) >= 15) if(prob(10)) H.emote(pick("hiccup", "burp", "mumble", "grumble")) H.stuttering += 1 if (H.canmove && isturf(H.loc) && prob(10)) step(H, pick(cardinal)) if (prob(20)) H.make_dizzy(rand(3,5) * mult) if (holder.get_reagent_amount(src.id) >= 25) liver_damage = 0.25 if(prob(10)) H.emote(pick("hiccup", "burp")) if (prob(10)) H.stuttering += rand(1,10) if (holder.get_reagent_amount(src.id) >= 45) if(prob(10)) H.emote(pick("hiccup", "burp")) if (prob(15)) H.stuttering += rand(1,10) if (H.canmove && isturf(H.loc) && prob(8)) step(H, pick(cardinal)) if (holder.get_reagent_amount(src.id) >= 55) liver_damage = 0.5 if(prob(10)) H.emote(pick("hiccup", "fart", "mumble", "grumble")) H.stuttering += 1 if (prob(33)) H.change_eye_blurry(10 , 50) if (H.canmove && isturf(H.loc) && prob(15)) step(H, pick(cardinal)) if(prob(4)) H.change_misstep_chance(20 * mult) if(prob(6)) H.visible_message("[H] pukes all over \himself.") H.vomit() if(prob(15)) H.make_dizzy(5 * mult) if (holder.get_reagent_amount(src.id) >= 60) H.change_eye_blurry(10 , 50) if(prob(6)) H.drowsyness += 5 if(prob(5)) H.take_toxin_damage(rand(1,2) * mult) if (H.organHolder && H.organHolder.liver) //Hax here, lazy. currently only organ is liver. fix when adding others. -kyle if (H.organHolder.liver.robotic) H.organHolder.heal_organ(1*mult, 1*mult, 2*mult, "liver") M.take_toxin_damage(-1.5 * mult) else H.organHolder.damage_organ(0, 0, liver_damage*mult, "liver") H.updatehealth() ..() do_overdose(var/severity, var/mob/M, var/mult = 1) //Maybe add a bit that gives you a stamina buff if OD-ing on ethanol and you have a cyberliver. var/mob/living/carbon/human/H = M if (!istype(H) || !isalcoholresistant(H)) // H.organHolder.damage_organs(0, 0, 3*mult, target_organs, 50) //hax again. if (prob(50)) if (H.organHolder) var/damage = rand(1,3) if (H.organHolder.left_kidney && prob(30)) H.organHolder.damage_organ(0,0,damage * mult * (!H.organHolder.left_kidney.robotic), "left_kidney") if (H.organHolder.right_kidney && prob(30)) H.organHolder.damage_organ(0,0,damage * mult * (!H.organHolder.right_kidney.robotic), "right_kidney") if (H.organHolder.liver && prob(30)) H.organHolder.damage_organ(0,0,damage * mult * (!H.organHolder.liver.robotic), "liver") if (prob(1)) H.contract_disease(/datum/ailment/malady/heartdisease,null,null,1) ..() hydrogen name = "hydrogen" id = "hydrogen" description = "A colorless, odorless, nonmetallic, tasteless, highly combustible diatomic gas." reagent_state = GAS fluid_r = 202 fluid_g = 254 fluid_b = 252 transparency = 20 iodine name = "iodine" id = "iodine" description = "A purple gaseous element." reagent_state = GAS fluid_r = 127 fluid_g = 0 fluid_b = 255 transparency = 50 iron name = "iron" id = "iron" description = "Pure iron is a metal, and can help with the regeneration of red blood cells after major trauma." reagent_state = SOLID fluid_r = 145 fluid_g = 135 fluid_b = 135 transparency = 255 overdose = 20 pathogen_nutrition = list("iron") on_mob_life(var/mob/living/carbon/human/H, var/mult = 1) ..() if (istype(H)) H.blood_volume += 0.5 * mult if(prob(10)) H.take_oxygen_deprivation(-1 * mult) do_overdose(var/severity, var/mob/M, var/mult = 1) M.take_toxin_damage(1 * mult) // Iron overdose fucks you up bad if(prob(5)) if (M.nutrition > 10) // Not good for your stomach either for(var/mob/O in viewers(M, null)) O.show_message(text("[] vomits on the floor profusely!", M), 1) playsound(M.loc, "sound/effects/splat.ogg", 50, 1) make_cleanable(/obj/decal/cleanable/vomit,M.loc) M.nutrition -= rand(3,5) M.take_toxin_damage(10) // im bad M.setStatus("stunned", max(M.getStatusDuration("stunned"), 30)) M.setStatus("weakened", max(M.getStatusDuration("weakened"), 30)) lithium name = "lithium" id = "lithium" description = "A chemical element." reagent_state = SOLID fluid_r = 220 fluid_g = 220 fluid_b = 220 transparency = 255 on_mob_life(var/mob/M, var/mult = 1) if(!M) M = holder.my_atom if(M.canmove && isturf(M.loc)) step(M, pick(cardinal)) if(prob(5)) M.emote(pick("twitch","drool","moan")) ..() return magnesium name = "magnesium" id = "magnesium" description = "A hot-burning chemical element." reagent_state = SOLID fluid_r = 255 fluid_g = 255 fluid_b = 255 transparency = 255 reaction_turf(var/turf/T, var/volume) src = null if (volume >= 10) if (!locate(/obj/decal/cleanable/magnesiumpile) in T) make_cleanable(/obj/decal/cleanable/magnesiumpile,T) mercury name = "mercury" id = "mercury" description = "A chemical element." reagent_state = LIQUID fluid_r = 160 fluid_g = 160 fluid_b = 160 transparency = 255 penetrates_skin = 1 touch_modifier = 0.2 depletion_rate = 0.2 on_mob_life(var/mob/M, var/mult = 1) if(!M) M = holder.my_atom if(prob(70)) M.take_brain_damage(1*mult) ..() return on_plant_life(var/obj/machinery/plantpot/P) P.HYPdamageplant("poison",1) nickel name = "nickel" id = "nickel" description = "Not actually a coin." reagent_state = SOLID fluid_r = 220 fluid_g = 220 fluid_b = 220 transparency = 255 nitrogen name = "nitrogen" id = "nitrogen" description = "A colorless, odorless, tasteless gas." reagent_state = GAS fluid_r = 202 fluid_g = 254 fluid_b = 252 transparency = 20 pathogen_nutrition = list("nitrogen") oxygen name = "oxygen" id = "oxygen" description = "A colorless, odorless gas." reagent_state = GAS fluid_r = 202 fluid_g = 254 fluid_b = 252 transparency = 20 phosphorus name = "phosphorus" id = "phosphorus" description = "A chemical element." reagent_state = SOLID fluid_r = 150 fluid_g = 110 fluid_b = 110 transparency = 255 on_plant_life(var/obj/machinery/plantpot/P) if (prob(66)) P.growth++ plasma name = "plasma" id = "plasma" description = "The liquid phase of an unusual extraterrestrial compound." reagent_state = LIQUID fluid_r = 130 fluid_g = 40 fluid_b = 160 transparency = 222 var/reacted_to_temp = 0 // prevent infinite loop in a fluid pooled() ..() reacted_to_temp = 0 reaction_temperature(exposed_temperature, exposed_volume) if(exposed_temperature >= T0C + 100 && !reacted_to_temp) reacted_to_temp = 1 if(holder) var/list/covered = holder.covered_turf() for(var/turf/t in covered) SPAWN_DBG(1 DECI SECOND) fireflash(t, min(max(0,((volume/covered.len)/15)),6)) holder.del_reagent(id) return on_mob_life(var/mob/M, var/mult = 1) if(!M) M = holder.my_atom if(holder.has_reagent("epinephrine")) holder.remove_reagent("epinephrine", 2 * mult) M.take_toxin_damage(1 * mult) M.updatehealth() ..() return reaction_mob(var/mob/M, var/method=TOUCH, var/volume) src = null if(method == TOUCH) var/mob/living/L = M if(istype(L) && L.getStatusDuration("burning")) L.changeStatus("burning", 300) return 1 reaction_obj(var/obj/O, var/volume) src = null return 1 reaction_turf(var/turf/T, var/volume) src = null return 1 //changed return value to 1 for fluids. remove if this was a bad idea on_plant_life(var/obj/machinery/plantpot/P) var/datum/plant/growing = P.current if (growing.growthmode != "plasmavore") P.HYPdamageplant("poison",2) platinum name = "platinum" id = "platinum" description = "Shiny." reagent_state = SOLID fluid_r = 220 fluid_g = 220 fluid_b = 220 transparency = 255 potassium name = "potassium" id = "potassium" description = "A soft, low-melting solid that can easily be cut with a knife. Reacts violently with water." reagent_state = SOLID fluid_r = 190 fluid_g = 190 fluid_b = 190 transparency = 255 on_plant_life(var/obj/machinery/plantpot/P) if (prob(40)) P.growth++ P.health++ silicon name = "silicon" id = "silicon" description = "A tetravalent metalloid, silicon is less reactive than its chemical analog carbon." reagent_state = SOLID fluid_r = 120 fluid_g = 140 fluid_b = 150 transparency = 255 silver name = "silver" id = "silver" description = "A lustrous metallic element regarded as one of the precious metals." reagent_state = SOLID fluid_r = 200 fluid_g = 200 fluid_b = 200 transparency = 255 taste = "metallic" reaction_obj(var/obj/item/I, var/volume) if (I.material && I.material.mat_id == "silver") return 1 .= 1 if (volume >= 20) if (istype(I, /obj/item/ammo/bullets/bullet_22) || istype(I, /obj/item/ammo/bullets/a38) || istype(I, /obj/item/ammo/bullets/custom) || istype(I,/datum/projectile/bullet/revolver_38)) var/obj/item/ammo/bullets/bullet_holder = I var/datum/projectile/ammo_type = bullet_holder.ammo_type if (ammo_type && !(ammo_type.material && ammo_type.material == "silver")) ammo_type.material = getMaterial("silver") holder.remove_reagent(src.id, 20) .= 0 if (volume >= 50) if (I.type == /obj/item/handcuffs) I.setMaterial(getMaterial("silver")) holder.remove_reagent(src.id, 50) .= 0 sulfur name = "sulfur" id = "sulfur" description = "A chemical element." reagent_state = SOLID fluid_r = 255 fluid_g = 255 fluid_b = 0 transparency = 255 sugar name = "sugar" id = "sugar" description = "This white, odorless, crystalline powder has a pleasing, sweet taste." reagent_state = SOLID fluid_r = 255 fluid_g = 255 fluid_b = 255 transparency = 255 overdose = 200 pathogen_nutrition = list("sugar") taste = "sweet" var/remove_buff = 0 pooled() ..() remove_buff = 0 on_add() if(istype(holder) && istype(holder.my_atom) && hascall(holder.my_atom,"add_stam_mod_regen")) remove_buff = holder.my_atom:add_stam_mod_regen("consumable_good", 2) if (ismob(holder.my_atom)) var/mob/M = holder.my_atom M.add_stun_resist_mod("reagent_sugar", 4) return on_remove() if(remove_buff) if(istype(holder) && istype(holder.my_atom) && hascall(holder.my_atom,"remove_stam_mod_regen")) holder.my_atom:remove_stam_mod_regen("consumable_good") if (ismob(holder.my_atom)) var/mob/M = holder.my_atom M.remove_stun_resist_mod("reagent_sugar") return on_mob_life(var/mob/M, var/mult = 1) if(!M) M = holder.my_atom M.make_jittery(2 ) M.drowsyness = max(M.drowsyness-(5), 0) if(prob(4)) M.reagents.add_reagent("epinephrine", 1.2 * mult) // let's not metabolize into meth anymore //if(prob(2)) //M.reagents.add_reagent("cholesterol", rand(1,3)) ..() return do_overdose(var/severity, var/mob/M, var/mult = 1) if(!M) M = holder.my_atom if (M:bioHolder && M:bioHolder.HasEffect("bee")) var/obj/item/reagent_containers/food/snacks/ingredient/honey/honey = new /obj/item/reagent_containers/food/snacks/ingredient/honey(get_turf(M)) if (honey.reagents) honey.reagents.maximum_volume = 50 honey.name = "human honey" honey.desc = "Uhhhh. Uhhhhhhhhhhhhhhhhhhhh." M.reagents.trans_to(honey, 50) M.visible_message("[M] regurgitates a blob of honey! Gross!") playsound(M.loc, 'sound/impact_sounds/Slimy_Splat_1.ogg', 50, 1) M.reagents.del_reagent(src.id) var/beeMax = 15 for (var/obj/critter/domestic_bee/responseBee in range(7, M)) if (!responseBee.alive) continue if (beeMax-- < 0) break responseBee.visible_message("[responseBee] [ pick("looks confused.", "appears to undergo a metaphysical crisis. What is human? What is space bee?
Or it might just have gas.", "looks perplexed.", "bumbles in a confused way.", "holds out its forelegs, staring into its little bee-palms and wondering what is real.") ]") else if (!M.getStatusDuration("paralysis")) boutput(M, "You pass out from hyperglycemic shock!") M.emote("collapse") //M.changeStatus("paralysis", ((2 * severity)*15) * mult) M.changeStatus("weakened", ((4 * severity)*15) * mult) if (prob(8)) M.take_toxin_damage(severity * mult) M.updatehealth() return //WHY IS SWEET ***TEA*** A SUBTYPE OF SUGAR?!?!?!?! //Because it's REALLY sweet sugar/sweet_tea name = "sweet tea" id = "sweet_tea" description = "A solution of sugar and tea, popular in the American South. Some people raise the sugar levels in it to the point of saturation and beyond." reagent_state = LIQUID fluid_r = 139 fluid_g = 90 fluid_b = 54 transparency = 235 thirst_value = 1 helium name = "helium" id = "helium" description = "A chemical element." reagent_state = GAS fluid_r = 255 fluid_g = 250 fluid_b = 160 transparency = 155 data = null on_add(var/mob/M) if(!M && holder) M = holder.my_atom if(M != /mob/living/carbon/human) return if(M.bioHolder && M.bioHolder.HasEffect("quiet_voice")) data = 1 else data = 0 if(data == 1) return else M.bioHolder.AddEffect("quiet_voice") return on_remove(var/mob/M) if(!M) M = holder.my_atom if(M != /mob/living/carbon/human) return if(M.bioHolder && M.bioHolder.HasEffect("quiet_voice") && data == 1) return else M.bioHolder.RemoveEffect("quiet_voice") return radium name = "radium" id = "radium" description = "Radium is an alkaline earth metal. It is highly radioactive." reagent_state = SOLID fluid_r = 220 fluid_g = 220 fluid_b = 220 transparency = 255 penetrates_skin = 1 touch_modifier = 0.5 //Half the dose lands on the floor blob_damage = 1 New() ..() if(prob(10)) description += " Keep away from forums." on_mob_life(var/mob/M, var/mult = 1) if(!M) M = holder.my_atom M.changeStatus("radiation", 30*mult, 1) ..() return reaction_turf(var/turf/T, var/volume) var/list/covered = holder.covered_turf() src = null var/spawncleanable = 1 if(covered.len > 5 && (volume/covered.len) < 1) spawncleanable = prob((volume/covered.len) * 10) if(spawncleanable && !istype(T, /turf/space) && !(locate(/obj/decal/cleanable/greenglow) in T)) make_cleanable(/obj/decal/cleanable/greenglow,T) on_plant_life(var/obj/machinery/plantpot/P) if (prob(80)) P.HYPdamageplant("radiation",3) if (prob(16)) P.HYPmutateplant(1) sodium name = "sodium" id = "sodium" description = "A soft, silvery-white, highly reactive alkali metal." reagent_state = SOLID fluid_r = 200 fluid_g = 200 fluid_b = 200 transparency = 255 pathogen_nutrition = list("sodium") uranium name = "uranium" id = "uranium" description = "A radioactive heavy metal commonly used for nuclear fission reactions." reagent_state = SOLID fluid_r = 40 fluid_g = 40 fluid_b = 40 transparency = 255 on_mob_life(var/mob/M, var/mult = 1 ) if(!M) M = holder.my_atom M.changeStatus("radiation", 30 * mult, 1) ..() return on_plant_life(var/obj/machinery/plantpot/P) P.HYPdamageplant("radiation",2) if (prob(24)) P.HYPmutateplant(1) water name = "water" id = "water" reagent_state = LIQUID fluid_r = 10 fluid_g = 165 fluid_b = 254 transparency = 80 pathogen_nutrition = list("water") thirst_value = 3 hygiene_value = 1.33 taste = "bland" target_organs = list("left_kidney", "right_kidney") #ifdef UNDERWATER_MAP block_slippy = 1 description = "A little strange. Not like any water you've seen. But definitely OSHA approved." #else description = "A ubiquitous chemical substance that is composed of hydrogen and oxygen." #endif on_mob_life(var/mob/living/carbon/human/H, var/mult = 1) ..() if (istype(H)) if (H.sims) H.sims.affectMotive("bladder", -0.5) if (H.organHolder) H.organHolder.heal_organs(1*mult, 0, 1*mult, target_organs, 10) H.nutrition += 1 * mult reaction_temperature(exposed_temperature, exposed_volume) //Just an example. if(exposed_temperature < T0C) var/prev_vol = volume volume = 0 if(holder) holder.add_reagent("ice", prev_vol, null, (T0C - 1)) if(holder) holder.del_reagent(id) else if (exposed_temperature > T0C && exposed_temperature <= T0C + 100 ) name = "water" description = initial(description) else if (exposed_temperature > (T0C + 100) ) if (!istype(holder,/datum/reagents/fluid_group)) name = "steam" description = "Water turned steam." if (holder.my_atom && holder.my_atom.is_open_container() || istype(holder,/datum/reagents/fluid_group)) //boil off var/list/covered = holder.covered_turf() if (covered.len < 5) for(var/turf/t in covered) if (covered.len > 2 && prob(50)) continue //lol look guys i 'fixed' it! var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread() smoke.set_up(1, 0, t) smoke.start() t.visible_message("The water boils off.") if (covered.len > 1) if (volume/covered.len < 10) holder.del_reagent(src.id) else holder.remove_reagent(src.id, max(1, volume * 0.2)) var/difference = (T20C - holder.total_temperature) var/change = difference * 0.6 holder.set_reagent_temp(holder.total_temperature + change) else holder.del_reagent(src.id) return reaction_turf(var/turf/target, var/volume) return 1//fluid is better. remove this later probably var/mytemp = holder.total_temperature src = null // drsingh attempted fix for undefined variable /turf/space/var/wet var/turf/simulated/T = target if (volume >= 3 && istype(T)) if (istext(T.wet)) T.wet = text2num(T.wet) if (T.wet >= 1) return if (mytemp <= (T0C - 150)) //Ice T.wet = 2 else if (mytemp > (T0C + 100) ) return //The steam. It does nothing!!! else T.wet = 1 if (!T.wet_overlay) T.wet_overlay = mutable_appearance('icons/effects/water.dmi', "wet_floor") T.UpdateOverlays(T.wet_overlay, "wet_overlay") SPAWN_DBG(80 SECONDS) if (istype(T)) T.wet = 0 T.UpdateOverlays(null, "wet_overlay") var/obj/hotspot = (locate(/obj/hotspot) in T) if(hotspot && T.air) var/datum/gas_mixture/lowertemp = T.remove_air( T.air.total_moles() ) if (lowertemp) lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0) lowertemp.react() T.assume_air(lowertemp) hotspot.disposing() // have to call this now to force the lighting cleanup pool(hotspot) return reaction_obj(var/obj/item/O, var/volume) src = null if(istype(O)) if(O.burning && prob(40)) O.burning = 0 else if(istype(O, /obj/item/toy/sponge_capsule)) var/obj/item/toy/sponge_capsule/S = O S.add_water() return 1 reaction_mob(var/mob/M, var/method=TOUCH, var/volume) ..() src = null if(!volume) volume = 10 if(method == TOUCH) var/mob/living/L = M if(istype(L) && L.getStatusDuration("burning")) L.changeStatus("burning", -10 * volume) return 1 water/water_holy name = "holy water" id = "water_holy" description = "Blessed water, supposedly effective against evil." thirst_value = 2 hygiene_value = 2 value = 3 // 1 1 1 reaction_mob(var/mob/target, var/method=TOUCH, var/volume) ..() var/reacted = 0 var/mob/living/carbon/human/M = target if(istype(M)) if (isvampire(M)) M.emote("scream") for(var/mob/O in AIviewers(M, null)) O.show_message(text("[] begins to crisp and burn!", M), 1) boutput(M, "Holy Water! It burns!") var/burndmg = volume * 1.25 burndmg = min(burndmg, 110) //cap burn at 110 so we can't instant-kill vampires. just crit em ok. M.TakeDamage("chest", 0, burndmg, 0, DAMAGE_BURN) M.change_vampire_blood(-burndmg) M.updatehealth() reacted = 1 else if (method == TOUCH) boutput(M, "You feel somewhat purified... but mostly just wet.") M.take_brain_damage(-10) for (var/datum/ailment_data/disease/V in M.ailments) if(prob(1)) M.cure_disease(V) reacted = 1 if(method == TOUCH) var/mob/living/L = target if(istype(L) && L.getStatusDuration("burning")) L.changeStatus("burning", -200) return !reacted water/tonic name = "tonic water" id = "tonic" description = "Carbonated water with quinine for a bitter flavor. Protects against Space Malaria." reagent_state = LIQUID thirst_value = 1.5 hygiene_value = 0.75 taste = "bitter" reaction_temperature(exposed_temperature, exposed_volume) //Just an example. if(exposed_temperature <= T0C) name = "tonic ice" description = "Frozen water with quinine for a bitter flavor. That is, if you eat ice cubes. Weirdo." else if (exposed_temperature > T0C + 100) name = "tonic steam" description = "Water turned steam. Steam that protects against Space Malaria." if (holder.my_atom && holder.my_atom.is_open_container()) //boil off var/list/covered = holder.covered_turf() if (covered.len < 5) for(var/turf/t in covered) if (covered.len > 2 && prob(50)) continue //lol look guys i 'fixed' it! var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread() smoke.set_up(1, 0, t) smoke.start() t.visible_message("The water boils off.") if (covered.len > 1) if (volume/covered.len < 10) holder.del_reagent(src.id) else holder.remove_reagent(src.id, max(1, volume * 0.4)) else holder.del_reagent(src.id) else name = "Tonic water" description = "Carbonated water with quinine for a bitter flavor. Protects against Space Malaria." water/sea name = "seawater" id = "seawater" description = "A little strange. Not like any seawater you've seen. But definitely OSHA approved." block_slippy = 1 reagent_state = LIQUID thirst_value = 1.5 hygiene_value = 0.75 taste = "gross" ice name = "ice" id = "ice" description = "It's frozen water. What did you expect?!" reagent_state = SOLID fluid_r = 200 fluid_g = 200 fluid_b = 250 transparency = 200 thirst_value = 3 // changed to be the same as water because apparently this was causing people to die of thirst or something?? ice cream: the deadliest weapon taste = "cold" on_mob_life(var/mob/living/carbon/human/H, var/mult = 1) ..() if (istype(H)) if (H.sims) H.sims.affectMotive("bladder", -0.5) reaction_temperature(exposed_temperature, exposed_volume) if(exposed_temperature > T0C) var/prev_vol = volume volume = 0 if(holder) holder.add_reagent("water", prev_vol, null, T0C + 1) if(holder) holder.del_reagent(id) return reaction_obj(var/obj/O, var/volume) src = null return reaction_turf(var/turf/T, var/volume) src = null if (volume >= 5 && !(locate(/obj/item/raw_material/ice) in T)) var/obj/item/raw_material/ice/I = unpool(/obj/item/raw_material/ice) I.set_loc(T) return phenol name = "phenol" id = "phenol" description = "Also known as carbolic acid, this is a useful building block in organic chemistry." reagent_state = SOLID fluid_r = 180 fluid_g = 180 fluid_b = 180 transparency = 35 value = 5 // 3c + 1c + 1c