mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 11:07:12 +01:00
Merge remote-tracking branch 'upstream/master' into zombies
This commit is contained in:
@@ -24,6 +24,9 @@
|
||||
var/hack_message = "You disable the safety safeguards, enabling the \"Mad Scientist\" mode."
|
||||
var/unhack_message = "You re-enable the safety safeguards, enabling the \"NT Standard\" mode."
|
||||
|
||||
/obj/machinery/chem_dispenser/get_cell()
|
||||
return cell
|
||||
|
||||
/obj/machinery/chem_dispenser/New()
|
||||
..()
|
||||
component_parts = list()
|
||||
@@ -37,6 +40,51 @@
|
||||
RefreshParts()
|
||||
dispensable_reagents = sortList(dispensable_reagents)
|
||||
|
||||
/obj/machinery/chem_dispenser/upgraded/New()
|
||||
..()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/circuitboard/chem_dispenser(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/super(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/super(null)
|
||||
component_parts += new /obj/item/stock_parts/capacitor/super(null)
|
||||
component_parts += new /obj/item/stock_parts/manipulator/pico(null)
|
||||
component_parts += new /obj/item/stock_parts/console_screen(null)
|
||||
component_parts += new /obj/item/stack/cable_coil(null)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/chem_dispenser/mutagensaltpeter
|
||||
name = "botanical chemical dispenser"
|
||||
desc = "Creates and dispenses chemicals useful for botany."
|
||||
can_deconstruct = FALSE
|
||||
|
||||
dispensable_reagents = list(
|
||||
"mutagen",
|
||||
"saltpetre",
|
||||
"eznutriment",
|
||||
"left4zednutriment",
|
||||
"robustharvestnutriment",
|
||||
"water",
|
||||
"plantbgone",
|
||||
"weedkiller",
|
||||
"pestkiller",
|
||||
"cryoxadone",
|
||||
"ammonia",
|
||||
"ash",
|
||||
"diethylamine")
|
||||
upgrade_reagents = null
|
||||
|
||||
/obj/machinery/chem_dispenser/mutagensaltpeter/New()
|
||||
..()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/circuitboard/chem_dispenser(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null)
|
||||
component_parts += new /obj/item/stock_parts/capacitor/quadratic(null)
|
||||
component_parts += new /obj/item/stock_parts/manipulator/femto(null)
|
||||
component_parts += new /obj/item/stock_parts/console_screen(null)
|
||||
component_parts += new /obj/item/stack/cable_coil(null)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/chem_dispenser/RefreshParts()
|
||||
recharge_amount = initial(recharge_amount)
|
||||
var/newpowereff = 0.0666666
|
||||
@@ -297,6 +345,18 @@
|
||||
component_parts += new cell_type(null)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/chem_dispenser/soda/upgraded/New()
|
||||
..()
|
||||
QDEL_LIST(component_parts)
|
||||
component_parts += new /obj/item/circuitboard/chem_dispenser/soda(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/super(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/super(null)
|
||||
component_parts += new /obj/item/stock_parts/manipulator/pico(null)
|
||||
component_parts += new /obj/item/stock_parts/capacitor/super(null)
|
||||
component_parts += new /obj/item/stock_parts/console_screen(null)
|
||||
component_parts += new cell_type(null)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/chem_dispenser/beer
|
||||
icon_state = "booze_dispenser"
|
||||
name = "booze dispenser"
|
||||
@@ -318,4 +378,16 @@
|
||||
component_parts += new /obj/item/stock_parts/manipulator(null)
|
||||
component_parts += new /obj/item/stock_parts/console_screen(null)
|
||||
component_parts += new cell_type(null)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/chem_dispenser/beer/upgraded/New()
|
||||
..()
|
||||
QDEL_LIST(component_parts)
|
||||
component_parts += new /obj/item/circuitboard/chem_dispenser/beer(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/super(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/super(null)
|
||||
component_parts += new /obj/item/stock_parts/capacitor/super(null)
|
||||
component_parts += new /obj/item/stock_parts/manipulator/pico(null)
|
||||
component_parts += new /obj/item/stock_parts/console_screen(null)
|
||||
component_parts += new cell_type(null)
|
||||
RefreshParts()
|
||||
@@ -815,7 +815,7 @@
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
if(prob(5))
|
||||
if(prob(10))
|
||||
update_flags |= M.adjustToxLoss(rand(2.4), FALSE)
|
||||
update_flags |= M.adjustToxLoss(rand(2,4), FALSE)
|
||||
if(prob(7))
|
||||
to_chat(M, "<span class='warning'>A horrible migraine overpowers you.</span>")
|
||||
update_flags |= M.Stun(rand(2,5), FALSE)
|
||||
|
||||
@@ -1138,3 +1138,30 @@
|
||||
E.rejuvenate() //Repair it completely.
|
||||
break
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/medicine/lavaland_extract
|
||||
name = "Lavaland Extract"
|
||||
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)
|
||||
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)
|
||||
return ..() | update_flags
|
||||
|
||||
@@ -632,3 +632,50 @@
|
||||
description = "Ewwwwwwwww."
|
||||
reagent_state = LIQUID
|
||||
color = "#857400"
|
||||
|
||||
/datum/reagent/spraytan
|
||||
name = "Spray Tan"
|
||||
id = "spraytan"
|
||||
description = "A substance applied to the skin to darken the skin."
|
||||
color = "#FFC080" // rgb: 255, 196, 128 Bright orange
|
||||
metabolization_rate = 10 * REAGENTS_METABOLISM // very fast, so it can be applied rapidly. But this changes on an overdose
|
||||
overdose_threshold = 11 //Slightly more than one un-nozzled spraybottle.
|
||||
taste_message = "sour oranges"
|
||||
|
||||
/datum/reagent/spraytan/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
|
||||
if(ishuman(M))
|
||||
if(method == TOUCH)
|
||||
var/mob/living/carbon/human/N = M
|
||||
set_skin_color(N)
|
||||
|
||||
if(method == INGEST)
|
||||
if(show_message)
|
||||
to_chat(M, "<span class='notice'>That tasted horrible.</span>")
|
||||
..()
|
||||
|
||||
/datum/reagent/spraytan/overdose_process(mob/living/M)
|
||||
metabolization_rate = 1 * REAGENTS_METABOLISM
|
||||
|
||||
if(ishuman(M) && is_species(M, /datum/species/human))
|
||||
var/mob/living/carbon/human/N = M
|
||||
N.change_hair("Spiky")
|
||||
N.change_facial_hair("Shaved")
|
||||
N.change_hair_color("#000000")
|
||||
N.change_facial_hair_color("#000000")
|
||||
set_skin_color(N)
|
||||
if(prob(7))
|
||||
if(N.w_uniform)
|
||||
M.visible_message(pick("<b>[M]</b>'s collar pops up without warning.</span>", "<b>[M]</b> flexes [M.p_their()] arms."))
|
||||
else
|
||||
M.visible_message("<b>[M]</b> flexes [M.p_their()] arms.")
|
||||
if(prob(10))
|
||||
M.say(pick("Shit was SO cash.", "You are everything bad in the world.", "What sports do you play, other than 'jack off to naked drawn Japanese people?'", "Don’t be a stranger. Just hit me with your best shot.", "My name is John and I hate every single one of you."))
|
||||
|
||||
return list(0, STATUS_UPDATE_NONE)
|
||||
|
||||
/datum/reagent/spraytan/proc/set_skin_color(mob/living/carbon/human/H)
|
||||
if(H.dna.species.bodyflags & HAS_SKIN_TONE)
|
||||
H.change_skin_tone(-30)
|
||||
|
||||
if(H.dna.species.bodyflags & HAS_SKIN_COLOR) //take current alien color and darken it slightly
|
||||
H.change_skin_color("#9B7653")
|
||||
|
||||
@@ -19,68 +19,16 @@
|
||||
drink_name = "Glass of Water"
|
||||
drink_desc = "The father of all refreshments."
|
||||
taste_message = null
|
||||
var/water_temperature = 283.15 // As reagents don't have a temperature value, we'll just use 10 celsius.
|
||||
|
||||
/datum/reagent/water/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
if(method == TOUCH)
|
||||
// Put out fire
|
||||
M.adjust_fire_stacks(-(volume * 0.2))
|
||||
|
||||
if(isgrey(M)) // You gosh darn snowflakes
|
||||
var/mob/living/carbon/human/G = M
|
||||
if(method == TOUCH)
|
||||
if(volume > 25)
|
||||
if(G.wear_mask)
|
||||
to_chat(G, "<span class='danger'>Your [G.wear_mask] protects you from the acid!</span>")
|
||||
return
|
||||
|
||||
if(G.head)
|
||||
to_chat(G, "<span class='danger'>Your [G.wear_mask] protects you from the acid!</span>")
|
||||
return
|
||||
|
||||
if(prob(75))
|
||||
G.take_organ_damage(5, 10)
|
||||
G.emote("scream")
|
||||
var/obj/item/organ/external/affecting = G.get_organ("head")
|
||||
if(affecting)
|
||||
affecting.disfigure()
|
||||
else
|
||||
G.take_organ_damage(5, 10)
|
||||
else
|
||||
G.take_organ_damage(5, 10)
|
||||
else
|
||||
to_chat(G, "<span class='warning'>The water stings[volume < 10 ? " you, but isn't concentrated enough to harm you" : null]!</span>")
|
||||
if(volume >= 10)
|
||||
G.adjustFireLoss(min(max(4, (volume - 10) * 2), 20))
|
||||
G.emote("scream")
|
||||
/datum/reagent/water/reaction_mob(mob/living/M, method = TOUCH, volume)
|
||||
M.water_act(volume, water_temperature, src, method)
|
||||
|
||||
/datum/reagent/water/reaction_turf(turf/simulated/T, volume)
|
||||
if(!istype(T))
|
||||
return
|
||||
if(volume >= 3)
|
||||
T.MakeSlippery()
|
||||
|
||||
for(var/mob/living/carbon/slime/M in T)
|
||||
M.apply_water()
|
||||
|
||||
var/hotspot = (locate(/obj/effect/hotspot) in T)
|
||||
if(hotspot)
|
||||
var/datum/gas_mixture/lowertemp = T.remove_air( T.air.total_moles())
|
||||
lowertemp.temperature = max(min(lowertemp.temperature-2000,lowertemp.temperature / 2), 0)
|
||||
lowertemp.react()
|
||||
T.assume_air(lowertemp)
|
||||
qdel(hotspot)
|
||||
T.water_act(volume, water_temperature, src)
|
||||
|
||||
/datum/reagent/water/reaction_obj(obj/O, volume)
|
||||
O.extinguish()
|
||||
|
||||
if(istype(O, /obj/item/reagent_containers/food/snacks/monkeycube))
|
||||
var/obj/item/reagent_containers/food/snacks/monkeycube/cube = O
|
||||
cube.Expand()
|
||||
// Dehydrated carp
|
||||
if(istype(O, /obj/item/toy/carpplushie/dehy_carp))
|
||||
var/obj/item/toy/carpplushie/dehy_carp/dehy = O
|
||||
dehy.Swell() // Makes a carp
|
||||
|
||||
O.water_act(volume, water_temperature, src)
|
||||
|
||||
/datum/reagent/lube
|
||||
name = "Space Lube"
|
||||
@@ -109,7 +57,7 @@
|
||||
if(!(istype(B) && B.off_floor))
|
||||
qdel(O)
|
||||
else
|
||||
if(!istype(O, /atom/movable/lighting_object))
|
||||
if(O.simulated)
|
||||
O.color = initial(O.color)
|
||||
O.clean_blood()
|
||||
|
||||
|
||||
@@ -181,4 +181,5 @@
|
||||
id = "Rotatium"
|
||||
result = "rotatium"
|
||||
required_reagents = list("lsd" = 1, "teslium" = 1, "methamphetamine" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "<span class='danger'>After sparks, fire, and the smell of LSD, the mix is constantly spinning with no stop in sight.</span>"
|
||||
@@ -55,13 +55,6 @@
|
||||
update_icon()
|
||||
return
|
||||
|
||||
// this prevented pills, food, and other things from being picked up by bags.
|
||||
// possibly intentional, but removing it allows us to not duplicate functionality.
|
||||
// -Sayu (storage conslidation)
|
||||
/*
|
||||
/obj/item/reagent_containers/attackby(obj/item/I as obj, mob/user as mob, params)
|
||||
return
|
||||
*/
|
||||
/obj/item/reagent_containers/afterattack(obj/target, mob/user , flag)
|
||||
return
|
||||
|
||||
|
||||
@@ -209,6 +209,11 @@
|
||||
desc = "A reagent bottle. Contains formaldehyde."
|
||||
list_reagents = list("formaldehyde" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/reagent/synaptizine
|
||||
name = "Synaptizine Bottle"
|
||||
desc = "A reagent bottle. Contains synaptizine."
|
||||
list_reagents = list("synaptizine" = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/reagent/morphine
|
||||
name = "Morphine Bottle"
|
||||
desc = "A reagent bottle. Contains morphine."
|
||||
|
||||
@@ -56,9 +56,55 @@
|
||||
if(!is_open_container())
|
||||
to_chat(user, "<span class='notice'>Airtight lid seals it completely.</span>")
|
||||
|
||||
/obj/item/reagent_containers/glass/attack(mob/M, mob/user, def_zone)
|
||||
if(!is_open_container())
|
||||
return ..()
|
||||
|
||||
if(!reagents || !reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'>[src] is empty!</span>")
|
||||
return
|
||||
|
||||
if(istype(M))
|
||||
var/list/transferred = list()
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
transferred += R.name
|
||||
var/contained = english_list(transferred)
|
||||
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
M.visible_message("<span class='danger'>[user] splashes the contents of [src] onto [M]!</span>", \
|
||||
"<span class='userdanger'>[user] splashes the contents of [src] onto [M]!</span>")
|
||||
add_attack_logs(user, M, "Splashed with [name] containing [contained]", !!M.ckey ? null : ATKLOG_ALL)
|
||||
if(!iscarbon(user))
|
||||
M.LAssailant = null
|
||||
else
|
||||
M.LAssailant = user
|
||||
|
||||
reagents.reaction(M, TOUCH)
|
||||
reagents.clear_reagents()
|
||||
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>")
|
||||
if(!do_mob(user, M))
|
||||
return
|
||||
if(!reagents || !reagents.total_volume)
|
||||
return // The drink might be empty after the delay, such as by spam-feeding
|
||||
M.visible_message("<span class='danger'>[user] feeds something to [M].</span>", "<span class='userdanger'>[user] feeds something to you.</span>")
|
||||
add_attack_logs(user, M, "Fed with [name] containing [contained]", !!M.ckey ? null : ATKLOG_ALL)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You swallow a gulp of [src].</span>")
|
||||
|
||||
var/fraction = min(5 / reagents.total_volume, 1)
|
||||
reagents.reaction(M, INGEST, fraction)
|
||||
addtimer(CALLBACK(reagents, /datum/reagents.proc/trans_to, M, 5), 5)
|
||||
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/reagent_containers/glass/afterattack(obj/target, mob/user, proximity)
|
||||
if(!proximity)
|
||||
return
|
||||
|
||||
if(!is_open_container())
|
||||
return
|
||||
|
||||
@@ -66,26 +112,7 @@
|
||||
if(istype(target, type))
|
||||
return
|
||||
|
||||
if(ismob(target) && target.reagents && reagents.total_volume)
|
||||
to_chat(user, "<span class='notice'>You splash the solution onto [target].</span>")
|
||||
|
||||
var/mob/living/M = target
|
||||
var/list/injected = list()
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
injected += R.name
|
||||
var/contained = english_list(injected)
|
||||
add_attack_logs(M, user, "Splashed with [name] containing [contained]", !!M.ckey ? null : ATKLOG_ALL)
|
||||
if(!iscarbon(user))
|
||||
M.LAssailant = null
|
||||
else
|
||||
M.LAssailant = user
|
||||
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("<span class='warning'>[] has been splashed with something by []!</span>", target, user), 1)
|
||||
reagents.reaction(target, TOUCH)
|
||||
spawn(5) reagents.clear_reagents()
|
||||
return
|
||||
else if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
|
||||
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
|
||||
if(target.reagents && !target.reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'>[target] is empty and can't be refilled!</span>")
|
||||
return
|
||||
@@ -116,12 +143,11 @@
|
||||
else if(istype(target, /obj/effect/decal)) //stops splashing while scooping up fluids
|
||||
return
|
||||
|
||||
else if(reagents.total_volume)
|
||||
to_chat(user, "<span class='notice'>You splash the solution onto [target].</span>")
|
||||
else if(reagents.total_volume && user.a_intent == INTENT_HARM)
|
||||
user.visible_message("<span class='danger'>[user] splashes the contents of [src] onto [target]!</span>", \
|
||||
"<span class='notice'>You splash the contents of [src] onto [target].</span>")
|
||||
reagents.reaction(target, TOUCH)
|
||||
spawn(5) reagents.clear_reagents()
|
||||
return
|
||||
|
||||
reagents.clear_reagents()
|
||||
|
||||
/obj/item/reagent_containers/glass/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/pen) || istype(I, /obj/item/flashlight/pen))
|
||||
@@ -338,3 +364,28 @@
|
||||
qdel(src)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/waterbottle
|
||||
name = "bottle of water"
|
||||
desc = "A bottle of water filled at an old Earth bottling facility."
|
||||
icon = 'icons/obj/drinks.dmi'
|
||||
icon_state = "smallbottle"
|
||||
item_state = "bottle"
|
||||
list_reagents = list("water" = 49.5, "fluorine" = 0.5) //see desc, don't think about it too hard
|
||||
materials = list(MAT_GLASS = 0)
|
||||
volume = 50
|
||||
amount_per_transfer_from_this = 10
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/waterbottle/empty
|
||||
list_reagents = list()
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/waterbottle/large
|
||||
desc = "A fresh commercial-sized bottle of water."
|
||||
icon_state = "largebottle"
|
||||
materials = list(MAT_GLASS = 0)
|
||||
list_reagents = list("water" = 100)
|
||||
volume = 100
|
||||
amount_per_transfer_from_this = 20
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/waterbottle/large/empty
|
||||
list_reagents = list()
|
||||
@@ -151,6 +151,14 @@
|
||||
volume = 50
|
||||
list_reagents = list("stimulants" = 50)
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/survival
|
||||
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
|
||||
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/nanocalcium
|
||||
name = "nanocalcium autoinjector"
|
||||
desc = "After a short period of time the nanites will slow the body's systems and assist with bone repair. Nanomachines son."
|
||||
|
||||
@@ -76,6 +76,12 @@
|
||||
icon_state = "pill16"
|
||||
list_reagents = list("adminordrazine" = 50)
|
||||
|
||||
/obj/item/reagent_containers/food/pill/morphine
|
||||
name = "Morphine pill"
|
||||
desc = "Commonly used to treat insomnia."
|
||||
icon_state = "pill8"
|
||||
list_reagents = list("morphine" = 30)
|
||||
|
||||
/obj/item/reagent_containers/food/pill/methamphetamine
|
||||
name = "Methamphetamine pill"
|
||||
desc = "Helps improve the ability to concentrate."
|
||||
@@ -106,6 +112,12 @@
|
||||
icon_state = "pill17"
|
||||
list_reagents = list("charcoal" = 50)
|
||||
|
||||
/obj/item/reagent_containers/food/pill/epinephrine
|
||||
name = "Epinephrine pill"
|
||||
desc = "Used to provide shots of adrenaline."
|
||||
icon_state = "pill6"
|
||||
list_reagents = list("epinephrine" = 50)
|
||||
|
||||
/obj/item/reagent_containers/food/pill/salicylic
|
||||
name = "Salicylic Acid pill"
|
||||
desc = "Commonly used to treat moderate pain and fevers."
|
||||
|
||||
@@ -112,6 +112,13 @@
|
||||
volume = 50
|
||||
list_reagents = list("cleaner" = 50)
|
||||
|
||||
//spray tan
|
||||
/obj/item/reagent_containers/spray/spraytan
|
||||
name = "spray tan"
|
||||
volume = 50
|
||||
desc = "Gyaro brand spray tan. Do not spray near eyes or other orifices."
|
||||
list_reagents = list("spraytan" = 50)
|
||||
|
||||
//pepperspray
|
||||
/obj/item/reagent_containers/spray/pepper
|
||||
name = "pepperspray"
|
||||
|
||||
Reference in New Issue
Block a user