Files
2020-02-19 19:48:29 -08:00

979 lines
28 KiB
Plaintext

//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("<span style=\"color:red\">[H] pukes all over \himself.</span>")
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("<span style=\"color:red\">[] vomits on the floor profusely!</span>", 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("<b>[M]</b> 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("<b>[responseBee]</b> [ pick("looks confused.", "appears to undergo a metaphysical crisis. What is human? What is space bee?<br>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, "<span style=\"color:red\">You pass out from hyperglycemic shock!</span>")
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("<span style=\"color:red\"><b>[] begins to crisp and burn!</b></span>", M), 1)
boutput(M, "<span style=\"color:red\">Holy Water! It burns!</span>")
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, "<span style=\"color:blue\">You feel somewhat purified... but mostly just wet.</span>")
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