Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into TasteOfVictory

This commit is contained in:
variableundefined
2019-08-27 15:20:23 -04:00
717 changed files with 29367 additions and 9847 deletions
@@ -133,6 +133,39 @@
if(loaded_pill_bottle)
loaded_pill_bottle.forceMove(loc)
loaded_pill_bottle = null
else if(href_list["change_pillbottle"])
if(loaded_pill_bottle)
var/list/wrappers = list("Default wrapper", "Red wrapper", "Green wrapper", "Pale green wrapper", "Blue wrapper", "Light blue wrapper", "Teal wrapper", "Yellow wrapper", "Orange wrapper", "Pink wrapper", "Brown wrapper")
var/chosen = input(usr, "Select a pillbottle wrapper", "Pillbottle wrapper", wrappers[1]) as null|anything in wrappers
if(!chosen)
return
var/color
switch(chosen)
if("Default wrapper")
loaded_pill_bottle.cut_overlays()
return
if("Red wrapper")
color = COLOR_RED
if("Green wrapper")
color = COLOR_GREEN
if("Pink wrapper")
color = COLOR_PINK
if("Teal wrapper")
color = COLOR_TEAL
if("Blue wrapper")
color = COLOR_BLUE
if("Brown wrapper")
color = COLOR_MAROON
if("Light blue wrapper")
color = COLOR_CYAN_BLUE
if("Yellow wrapper")
color = COLOR_YELLOW
if("Pale green wrapper")
color = COLOR_PALE_BTL_GREEN
if("Orange wrapper")
color = COLOR_ORANGE
loaded_pill_bottle.wrapper_color = color;
loaded_pill_bottle.apply_wrap();
else if(href_list["close"])
usr << browse(null, "window=chem_master")
onclose(usr, "chem_master")
@@ -185,7 +218,7 @@
dat += "<A href='?src=[UID()];main=1'>(Back)</A>"
else
dat += "<TITLE>Condimaster 3000</TITLE>Condiment infos:<BR><BR>Name:<BR>[href_list["name"]]<BR><BR>Description:<BR>[href_list["desc"]]<BR><BR><BR><A href='?src=[UID()];main=1'>(Back)</A>"
usr << browse(dat, "window=chem_master;size=575x400")
usr << browse(dat, "window=chem_master;size=575x500")
return
else if(href_list["add"])
@@ -249,7 +282,7 @@
var/amount_per_pill = reagents.total_volume / count
if(amount_per_pill > 100)
amount_per_pill = 100
var/name = input(usr,"Name:","Name your pill!","[reagents.get_master_reagent_name()] ([amount_per_pill]u)") as text|null
var/name = clean_input("Name:","Name your pill!","[reagents.get_master_reagent_name()] ([amount_per_pill]u)")
if(!name)
return
name = reject_bad_text(name)
@@ -270,7 +303,7 @@
P.forceMove(loaded_pill_bottle)
updateUsrDialog()
else
var/name = input(usr, "Name:", "Name your bag!", reagents.get_master_reagent_name()) as text|null
var/name = clean_input("Name:", "Name your bag!", reagents.get_master_reagent_name())
if(!name)
return
name = reject_bad_text(name)
@@ -295,7 +328,7 @@
var/amount_per_patch = reagents.total_volume/count
if(amount_per_patch > 40)
amount_per_patch = 40
var/name = input(usr, "Name:", "Name your patch!", "[reagents.get_master_reagent_name()] ([amount_per_patch]u)") as text|null
var/name = clean_input("Name:", "Name your patch!", "[reagents.get_master_reagent_name()] ([amount_per_patch]u)")
if(!name)
return
name = reject_bad_text(name)
@@ -317,7 +350,7 @@
else if(href_list["createbottle"])
if(!condi)
var/name = input(usr, "Name:", "Name your bottle!", reagents.get_master_reagent_name()) as text|null
var/name = clean_input("Name:", "Name your bottle!", reagents.get_master_reagent_name())
if(!name)
return
name = reject_bad_text(name)
@@ -388,7 +421,7 @@
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "chem_master.tmpl", name, 575, 400)
ui = new(user, src, ui_key, "chem_master.tmpl", name, 575, 500)
ui.open()
/obj/machinery/chem_master/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
@@ -135,12 +135,11 @@
return
else if(href_list["empty_beaker"])
beaker.reagents.clear_reagents()
eject_beaker()
updateUsrDialog()
return
else if(href_list["eject"])
beaker:loc = loc
beaker = null
icon_state = "mixer0"
eject_beaker()
updateUsrDialog()
return
else if(href_list["clear"])
@@ -173,6 +172,11 @@
add_fingerprint(usr)
/obj/machinery/computer/pandemic/proc/eject_beaker()
beaker.forceMove(loc)
beaker = null
icon_state = "mixer0"
//Prints a nice virus release form. Props to Urbanliner for the layout
/obj/machinery/computer/pandemic/proc/print_form(var/datum/disease/advance/D, mob/living/user)
D = archive_diseases[D.GetDiseaseID()]
@@ -308,7 +312,7 @@
dat += "nothing<BR>"
else
dat += "nothing<BR>"
dat += "<BR><A href='?src=[UID()];eject=1'>Eject beaker</A>[((R.total_volume&&R.reagent_list.len) ? "-- <A href='?src=[UID()];empty_beaker=1'>Empty beaker</A>":"")]<BR>"
dat += "<BR><A href='?src=[UID()];eject=1'>Eject beaker</A>[((R.total_volume&&R.reagent_list.len) ? "-- <A href='?src=[UID()];empty_beaker=1'>Empty and eject beaker</A>":"")]<BR>"
dat += "<A href='?src=[user.UID()];mach_close=pandemic'>Close</A>"
var/datum/browser/popup = new(user, "pandemic", name, 575, 400)
@@ -9,8 +9,9 @@
active_power_usage = 100
pass_flags = PASSTABLE
var/operating = 0
var/obj/item/reagent_containers/beaker = null
var/limit = 10
var/obj/item/reagent_containers/beaker = new /obj/item/reagent_containers/glass/beaker/large
var/limit = null
var/efficiency = null
//IMPORTANT NOTE! A negative number is a multiplier, a positive number is a flat amount to add. 0 means equal to the amount of the original reagent
var/list/blend_items = list (
@@ -88,10 +89,28 @@
var/list/holdingitems = list()
/obj/machinery/reagentgrinder/empty
icon_state = "juicer0"
beaker = null
/obj/machinery/reagentgrinder/New()
..()
beaker = new /obj/item/reagent_containers/glass/beaker/large(src)
return
component_parts = list()
component_parts += new /obj/item/circuitboard/reagentgrinder(null)
component_parts += new /obj/item/stock_parts/manipulator(null)
component_parts += new /obj/item/stock_parts/manipulator(null)
component_parts += new /obj/item/stock_parts/matter_bin(null)
RefreshParts()
/obj/machinery/reagentgrinder/RefreshParts()
var/H
var/T
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
H += M.rating
for(var/obj/item/stock_parts/manipulator/M in component_parts)
T += M.rating
limit = 10*H
efficiency = 0.8+T*0.1
/obj/machinery/reagentgrinder/Destroy()
QDEL_NULL(beaker)
@@ -112,16 +131,29 @@
if(default_unfasten_wrench(user, I))
return
if(exchange_parts(user, I))
return
if(anchored && !beaker)
if(default_deconstruction_screwdriver(user, "juicer_open", "juicer0", I))
return
if(panel_open && istype(I, /obj/item/crowbar))
default_deconstruction_crowbar(I)
return
if (istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER) )
if (!beaker)
if(beaker)
to_chat(user, "<span class='warning'>There's already a container inside.</span>")
else if(panel_open)
to_chat(user, "<span class='warning'>Close the maintenance panel first.</span>")
else
if(!user.drop_item())
return 1
beaker = I
beaker.loc = src
update_icon()
src.updateUsrDialog()
else
to_chat(user, "<span class='warning'>There's already a container inside.</span>")
return 1 //no afterattack
if(is_type_in_list(I, dried_items))
@@ -331,7 +363,7 @@
var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume
var/amount = get_juice_amount(O)
beaker.reagents.add_reagent(r_id, min(amount, space))
beaker.reagents.add_reagent(r_id, min(amount*efficiency, space))
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
@@ -371,17 +403,17 @@
if(amount <= 0)
if(amount == 0)
if (O.reagents != null && O.reagents.has_reagent("nutriment"))
beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("nutriment"), space))
beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("nutriment")*efficiency, space))
O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space))
if (O.reagents != null && O.reagents.has_reagent("plantmatter"))
beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("plantmatter"), space))
beaker.reagents.add_reagent(r_id, min(O.reagents.get_reagent_amount("plantmatter")*efficiency, space))
O.reagents.remove_reagent("plantmatter", min(O.reagents.get_reagent_amount("plantmatter"), space))
else
if (O.reagents != null && O.reagents.has_reagent("nutriment"))
beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("nutriment")*abs(amount)), space))
beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("nutriment")*abs(amount)*efficiency), space))
O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space))
if (O.reagents != null && O.reagents.has_reagent("plantmatter"))
beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("plantmatter")*abs(amount)), space))
beaker.reagents.add_reagent(r_id, min(round(O.reagents.get_reagent_amount("plantmatter")*abs(amount)*efficiency), space))
O.reagents.remove_reagent("plantmatter", min(O.reagents.get_reagent_amount("plantmatter"), space))
@@ -403,7 +435,7 @@
for (var/r_id in allowed)
var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume
var/amount = allowed[r_id]
beaker.reagents.add_reagent(r_id,min(amount, space))
beaker.reagents.add_reagent(r_id,min(amount*efficiency, space))
if (space < amount)
break
if (i == round(O.amount, 1))
@@ -419,9 +451,9 @@
var/amount = allowed[r_id]
if (amount == 0)
if (O.reagents != null && O.reagents.has_reagent(r_id))
beaker.reagents.add_reagent(r_id,min(O.reagents.get_reagent_amount(r_id), space))
beaker.reagents.add_reagent(r_id,min(O.reagents.get_reagent_amount(r_id)*efficiency, space))
else
beaker.reagents.add_reagent(r_id,min(amount, space))
beaker.reagents.add_reagent(r_id,min(amount*efficiency, space))
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
@@ -436,7 +468,7 @@
var/amount = O.reagents.total_volume
O.reagents.trans_to(beaker, min(amount, space))
if (O.Uses > 0)
beaker.reagents.add_reagent("slimejelly",min(20, space))
beaker.reagents.add_reagent("slimejelly",min(20*efficiency, space))
remove_object(O)
//Everything else - Transfers reagents from it into beaker
@@ -115,6 +115,24 @@
update_flags |= M.adjustToxLoss(1, FALSE)
return list(0, update_flags)
/datum/reagent/consumable/ethanol/hooch
name = "Hooch"
id = "hooch"
description = "Either someone's failure at cocktail making or attempt in alcohol production. In any case, do you really want to drink that?"
color = "#664300" // rgb: 102, 67, 0
dizzy_adj = 7
alcohol_perc = 1
drink_icon = "glass_brown2"
drink_name = "Hooch"
drink_desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
taste_description = "pure resignation"
/datum/reagent/consumable/ethanol/hooch/on_mob_life(mob/living/carbon/M)
if(M.mind && M.mind.assigned_role == "Assistant")
M.heal_organ_damage(1, 1)
. = 1
return ..() || .
/datum/reagent/consumable/ethanol/rum
name = "Rum"
id = "rum"
@@ -1361,3 +1379,15 @@
taste_description = flavor
if(holder.my_atom)
holder.my_atom.on_reagent_change()
/datum/reagent/consumable/ethanol/bacchus_blessing //An EXTREMELY powerful drink. Smashed in seconds, dead in minutes.
name = "Bacchus' Blessing"
id = "bacchus_blessing"
description = "Unidentifiable mixture. Unmeasurably high alcohol content."
color = rgb(51, 19, 3) //Sickly brown
dizzy_adj = 21
alcohol_perc = 3 //I warned you
drink_icon = "glass_brown2"
drink_name = "Bacchus' Blessing"
drink_desc = "You didn't think it was possible for a liquid to be so utterly revolting. Are you sure about this...?"
taste_description = "a wall of bricks"
@@ -290,6 +290,11 @@
addiction_chance = 5
taste_description = "health"
/datum/reagent/medicine/omnizine/godblood
name = "Godblood"
description = "Slowly heals all damage types. Has a rather high overdose threshold. Glows with mysterious power."
overdose_threshold = 150
/datum/reagent/medicine/omnizine/on_mob_life(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
update_flags |= M.adjustToxLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
@@ -1144,24 +1149,19 @@
id = "lavaland_extract"
description = "An extract of lavaland atmospheric and mineral elements. Heals the user in small doses, but is extremely toxic otherwise."
color = "#C8A5DC" // rgb: 200, 165, 220
metabolization_rate = 0.7 //VERY strong chemical
overdose_threshold = 3 //To prevent people stacking massive amounts of a very strong healing reagent
can_synth = FALSE
/datum/reagent/medicine/lavaland_extract/on_mob_life(mob/living/carbon/M)
var/update_flags = STATUS_UPDATE_NONE
update_flags |= M.adjustToxLoss(-3*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustOxyLoss(-3*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustBruteLoss(-6*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustFireLoss(-6*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustBruteLoss(-5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustFireLoss(-5*REAGENTS_EFFECT_MULTIPLIER, FALSE)
return ..() | update_flags
/datum/reagent/medicine/lavaland_extract/overdose_process(mob/living/M) // This WILL be brutal
var/update_flags = STATUS_UPDATE_NONE
M.AdjustConfused(5)
update_flags |= M.adjustBruteLoss(10*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustFireLoss(10*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustToxLoss(10*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.Stun(7, FALSE)
update_flags |= M.Weaken(7, FALSE)
update_flags |= M.adjustBruteLoss(3*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustFireLoss(3*REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustToxLoss(3*REAGENTS_EFFECT_MULTIPLIER, FALSE)
return ..() | update_flags
@@ -460,6 +460,7 @@
C.AdjustDizzy(volume)
C.AddComponent(/datum/component/jestosterone, mind_type)
C.AddComponent(/datum/component/squeak, null, null, null, null, null, TRUE)
C.AddComponent(/datum/component/waddling)
/datum/reagent/jestosterone/on_mob_life(mob/living/carbon/M)
if(!istype(M))
@@ -496,8 +497,10 @@
..()
GET_COMPONENT_FROM(remove_fun, /datum/component/jestosterone, M)
GET_COMPONENT_FROM(squeaking, /datum/component/squeak, M)
GET_COMPONENT_FROM(waddling, /datum/component/waddling, M)
remove_fun.Destroy()
squeaking.Destroy()
waddling.Destroy()
/datum/reagent/royal_bee_jelly
name = "royal bee jelly"
@@ -1179,3 +1179,14 @@
M.electrocute_act(rand(5, 20), "Teslium in their body", 1, TRUE) //Override because it's caused from INSIDE of you
playsound(M, "sparks", 50, 1)
return ..()
/datum/reagent/gluttonytoxin
name = "Gluttony's Blessing"
id = "gluttonytoxin"
description = "An advanced corruptive toxin produced by something terrible."
reagent_state = LIQUID
color = "#5EFF3B" //RGB: 94, 255, 59
taste_description = "decay"
/datum/reagent/gluttonytoxin/reaction_mob(mob/living/L, method=TOUCH, reac_volume)
L.ForceContractDisease(new /datum/disease/transformation/morph())
@@ -851,4 +851,20 @@
required_reagents = list("rum" = 5, "cream" = 5, "egg" = 5)
result_amount = 15
mix_message = "The eggs nog together. Pretend that \"nog\" is a verb."
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
/datum/chemical_reaction/hooch
name = "Hooch"
id = "hooch"
result = "hooch"
required_reagents = list("ethanol" = 2, "fuel" = 1)
result_amount = 3
required_catalysts = list("enzyme" = 1)
/datum/chemical_reaction/bacchus_blessing
name = "Bacchus' Blessing"
id = "bacchus_blessing"
result = "bacchus_blessing"
required_reagents = list("hooch" = 1, "absinthe" = 1, "manlydorf" = 1, "syndicatebomb" = 1)
result_amount = 4
mix_message = "<span class='warning'>The mixture turns to a sickening froth.</span>"
@@ -81,7 +81,7 @@
reagents.reaction(M, TOUCH)
reagents.clear_reagents()
else
else
if(M != user)
M.visible_message("<span class='danger'>[user] attempts to feed something to [M].</span>", \
"<span class='userdanger'>[user] attempts to feed something to you.</span>")
@@ -247,9 +247,9 @@
if(assembly)
assembly.HasProximity(AM)
/obj/item/reagent_containers/glass/beaker/Crossed(atom/movable/AM)
/obj/item/reagent_containers/glass/beaker/Crossed(atom/movable/AM, oldloc)
if(assembly)
assembly.Crossed(AM)
assembly.Crossed(AM, oldloc)
/obj/item/reagent_containers/glass/beaker/on_found(mob/finder) //for mousetraps
if(assembly)
@@ -348,6 +348,13 @@
slot_flags = SLOT_HEAD
container_type = OPENCONTAINER
/obj/item/reagent_containers/glass/bucket/wooden
name = "wooden bucket"
icon_state = "woodbucket"
item_state = "woodbucket"
materials = null
burn_state = FLAMMABLE
/obj/item/reagent_containers/glass/bucket/equipped(mob/user, slot)
..()
if(slot == slot_head && reagents.total_volume)
@@ -155,9 +155,9 @@
name = "survival medipen"
desc = "A medipen for surviving in the harshest of environments, heals and protects from environmental hazards. <br><span class='boldwarning'>WARNING: Do not inject more than one pen in quick succession.</span>"
icon_state = "stimpen"
volume = 22
amount_per_transfer_from_this = 22
list_reagents = list("salbutamol" = 10, "epinephrine" = 5, "lavaland_extract" = 2, "salglu_solution" = 5) //Short burst of healing, followed by minor healing from the saline
volume = 42
amount_per_transfer_from_this = 42
list_reagents = list("salbutamol" = 10, "teporone" = 15, "epinephrine" = 10, "lavaland_extract" = 2, "weak_omnizine" = 5) //Short burst of healing, followed by minor healing from the saline
/obj/item/reagent_containers/hypospray/autoinjector/nanocalcium
name = "nanocalcium autoinjector"
@@ -9,7 +9,7 @@
righthand_file = 'icons/goonstation/mob/inhands/items_righthand.dmi'
icon_state = "ivbag"
volume = 200
possible_transfer_amounts = list(1,5,10)
possible_transfer_amounts = list(1,5,10,15,20,25,30,50) // Everything above 10 is NOT usable on a person and is instead used for transfering to other containers
amount_per_transfer_from_this = 1
container_type = OPENCONTAINER
var/label_text
@@ -53,6 +53,11 @@
end_processing()
return
if(amount_per_transfer_from_this > 10) // Prevents people from switching to illegal transfer values while the IV is already in someone, i.e. anything over 10
visible_message("<span class='danger'>The IV bag's needle pops out of [injection_target]'s arm. The transfer amount is too high!</span>")
end_processing()
return
if(get_dist(get_turf(src), get_turf(injection_target)) > 1)
to_chat(injection_target, "<span class='userdanger'>The [src]'s' needle is ripped out of you!</span>")
injection_target.apply_damage(3, BRUTE, pick("r_arm", "l_arm"))
@@ -98,6 +103,9 @@
else // Inserting the needle
if(!L.can_inject(user, 1))
return
if(amount_per_transfer_from_this > 10) // We only want to be able to transfer 1, 5, or 10 units to people. Higher numbers are for transfering to other containers
to_chat(user, "<span class='warning'>The IV bag can only be used on someone with a transfer amount of 1, 5 or 10.</span>")
return
if(L != user)
L.visible_message("<span class='danger'>[user] is trying to insert [src]'s needle into [L]'s arm!</span>", \
"<span class='userdanger'>[user] is trying to insert [src]'s needle into [L]'s arm!</span>")
@@ -107,6 +115,22 @@
"<span class='userdanger'>[user] inserts [src]'s needle into [L]'s arm!</span>")
begin_processing(L)
else if(target.is_refillable() && is_drainable()) // Transferring from IV bag to other containers
if(!reagents.total_volume)
to_chat(user, "<span class='warning'>[src] is empty.</span>")
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
to_chat(user, "<span class='warning'>[target] is full.</span>")
return
var/trans = reagents.trans_to(target, amount_per_transfer_from_this)
to_chat(user, "<span class='notice'>You transfer [trans] units of the solution to [target].</span>")
else if(istype(target, /obj/item/reagent_containers/glass) && !target.is_open_container())
to_chat(user, "<span class='warning'>You cannot fill [target] while it is sealed.</span>")
return
/obj/item/reagent_containers/iv_bag/update_icon()
overlays.Cut()
@@ -289,12 +289,6 @@
icon_state = "[rounded_vol]"
item_state = "syringe_[rounded_vol]"
////////////////////////////////////////////////////////////////////////////////
/// Syringes. END
////////////////////////////////////////////////////////////////////////////////
/obj/item/reagent_containers/syringe/antiviral
name = "Syringe (spaceacillin)"
desc = "Contains antiviral agents."
@@ -327,3 +321,10 @@
name = "bioterror syringe"
desc = "Contains several paralyzing reagents."
list_reagents = list("neurotoxin" = 5, "capulettium_plus" = 5, "sodium_thiopental" = 5)
/obj/item/reagent_containers/syringe/gluttony
name = "Gluttony's Blessing"
desc = "A syringe recovered from a dread place. It probably isn't wise to use."
amount_per_transfer_from_this = 1
volume = 1
list_reagents = list("gluttonytoxin" = 1)
+3 -2
View File
@@ -187,9 +187,9 @@
if(rig)
rig.HasProximity(AM)
/obj/structure/reagent_dispensers/fueltank/Crossed(atom/movable/AM)
/obj/structure/reagent_dispensers/fueltank/Crossed(atom/movable/AM, oldloc)
if(rig)
rig.Crossed(AM)
rig.Crossed(AM, oldloc)
/obj/structure/reagent_dispensers/fueltank/hear_talk(mob/living/M, list/message_pieces)
if(rig)
@@ -220,6 +220,7 @@
icon_state = "water_cooler"
anchored = 1
tank_volume = 500
reagent_id = "water"
var/paper_cups = 25 //Paper cups left from the cooler
/obj/structure/reagent_dispensers/water_cooler/examine(mob/user)