All-In-One grinder results are now defined by type, not by huge lists
This commit is contained in:
committed by
CitadelStationBot
parent
a22b225015
commit
2aef00daf0
@@ -2,7 +2,7 @@
|
||||
#define MILK_TO_BUTTER_COEFF 15
|
||||
|
||||
/obj/machinery/reagentgrinder
|
||||
name = "All-In-One Grinder"
|
||||
name = "\improper All-In-One Grinder"
|
||||
desc = "From BlenderTech. Will It Blend? Let's test it out!"
|
||||
icon = 'icons/obj/kitchen.dmi'
|
||||
icon_state = "juicer1"
|
||||
@@ -16,97 +16,6 @@
|
||||
var/operating = FALSE
|
||||
var/obj/item/reagent_containers/beaker = null
|
||||
var/limit = 10
|
||||
|
||||
var/static/list/blend_items = list(
|
||||
//Sheets
|
||||
/obj/item/stack/sheet/mineral/plasma = list("plasma" = 20),
|
||||
/obj/item/stack/sheet/metal = list("iron" = 20),
|
||||
/obj/item/stack/sheet/plasteel = list("iron" = 20, "plasma" = 20),
|
||||
/obj/item/stack/sheet/mineral/wood = list("carbon" = 20),
|
||||
/obj/item/stack/sheet/glass = list("silicon" = 20),
|
||||
/obj/item/stack/sheet/rglass = list("silicon" = 20, "iron" = 20),
|
||||
/obj/item/stack/sheet/mineral/uranium = list("uranium" = 20),
|
||||
/obj/item/stack/sheet/mineral/bananium = list("banana" = 20),
|
||||
/obj/item/stack/sheet/mineral/silver = list("silver" = 20),
|
||||
/obj/item/stack/sheet/mineral/gold = list("gold" = 20),
|
||||
/obj/item/stack/sheet/bluespace_crystal = list("bluespace" = 20),
|
||||
/obj/item/stack/cable_coil = list ("copper" = 5),
|
||||
/obj/item/ore/bluespace_crystal = list("bluespace" = 20),
|
||||
/obj/item/grown/nettle/basic = list("sacid" = 0),
|
||||
/obj/item/grown/nettle/death = list("facid" = 0, "sacid" = 0),
|
||||
/obj/item/grown/novaflower = list("capsaicin" = 0, "condensedcapsaicin" = 0),
|
||||
//Blender Stuff
|
||||
/obj/item/reagent_containers/food/snacks/donkpocket/warm = list("omnizine" = 3),
|
||||
/obj/item/reagent_containers/food/snacks/grown/soybeans = list("soymilk" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/tomato = list("ketchup" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/wheat = list("flour" = -5),
|
||||
/obj/item/reagent_containers/food/snacks/grown/oat = list("flour" = -5),
|
||||
/obj/item/reagent_containers/food/snacks/grown/rice = list("rice" = -5),
|
||||
/obj/item/reagent_containers/food/snacks/donut = list("sprinkles" = -2, "sugar" = 1),
|
||||
/obj/item/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/bluecherries = list("bluecherryjelly" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/egg = list("eggyolk" = -5),
|
||||
/obj/item/reagent_containers/food/snacks/deadmouse = list ("blood" = 20, "gibs" = 5), // You monster
|
||||
//Grinder stuff, but only if dry
|
||||
/obj/item/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/coffee = list("coffeepowder" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/tea = list("teapowder" = 0),
|
||||
//Stuff that doesn't quite fit in the other categories
|
||||
/obj/item/electronics = list ("iron" = 10, "silicon" = 10),
|
||||
/obj/item/circuitboard = list ("silicon" = 20, "sacid" = 0.5), // Retrieving acid this way is extremely inefficient
|
||||
/obj/item/match = list ("phosphorus" = 2),
|
||||
/obj/item/device/toner = list ("iodine" = 40, "iron" = 10),
|
||||
/obj/item/photo = list ("iodine" = 4),
|
||||
/obj/item/pen = list ("iodine" = 2, "iron" = 1),
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans = list ("aluminium" = 10),
|
||||
/obj/item/trash/can = list ("aluminium" = 10),
|
||||
/obj/item/device/flashlight/flare = list ("sulfur" = 15),
|
||||
/obj/item/device/flashlight/glowstick = list ("phenol" = 15, "hydrodgen" = 10, "oxygen" = 5),
|
||||
/obj/item/stock_parts/cell = list ("lithium" = 15, "iron" = 5, "silicon" = 5),
|
||||
/obj/item/soap = list ("lye" = 10),
|
||||
/obj/item/device/analyzer = list ("mercury" = 5, "iron" = 5, "silicon" = 5),
|
||||
/obj/item/lighter = list ("iron" = 1, "weldingfuel" = 5, "oil" = 5),
|
||||
/obj/item/light = list ("silicon" = 5, "nitrogen" = 10), //Nitrogen is used as a cheaper alternative to argon in incandescent lighbulbs
|
||||
/obj/item/cigbutt/ = list ("carbon" = 2),
|
||||
/obj/item/trash/coal = list ("carbon" = 20),
|
||||
/obj/item/stack/medical/bruise_pack = list ("styptic_powder" = 5),
|
||||
/obj/item/stack/medical/ointment = list ("silver_sulfadiazine" = 5),
|
||||
//All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.!
|
||||
/obj/item/slime_extract = list(),
|
||||
/obj/item/reagent_containers/pill = list(),
|
||||
/obj/item/reagent_containers/food = list(),
|
||||
/obj/item/reagent_containers/honeycomb = list(),
|
||||
/obj/item/toy/crayon = list(),
|
||||
/obj/item/clothing/mask/cigarette = list())
|
||||
|
||||
var/static/list/juice_items = list(
|
||||
//Juicer Stuff
|
||||
/obj/item/reagent_containers/food/snacks/grown/corn = list("corn_starch" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/tomato = list("tomatojuice" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/carrot = list("carrotjuice" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/berries = list("berryjuice" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/banana = list("banana" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/potato = list("potato" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/citrus/lemon = list("lemonjuice" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/citrus/orange = list("orangejuice" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/citrus/lime = list("limejuice" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/watermelon = list("watermelonjuice" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/watermelonslice = list("watermelonjuice" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/berries/poison = list("poisonberryjuice" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/pumpkin = list("pumpkinjuice" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/blumpkin = list("blumpkinjuice" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/apple = list("applejuice" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/grapes = list("grapejuice" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/grapes/green = list("grapejuice" = 0))
|
||||
|
||||
var/static/list/dried_items = list(
|
||||
//Grinder stuff, but only if dry,
|
||||
/obj/item/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/coffee = list("coffeepowder" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0),
|
||||
/obj/item/reagent_containers/food/snacks/grown/tea = list("teapowder" = 0))
|
||||
|
||||
var/list/holdingitems
|
||||
|
||||
/obj/machinery/reagentgrinder/Initialize()
|
||||
@@ -158,6 +67,7 @@
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
to_chat(user, "<span class='warning'>[I] is stuck to your hand!</span>")
|
||||
return TRUE
|
||||
to_chat(user, "<span class='notice'>You slide [I] into [src].</span>")
|
||||
beaker = I
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
@@ -165,15 +75,8 @@
|
||||
to_chat(user, "<span class='warning'>There's already a container inside [src].</span>")
|
||||
return TRUE //no afterattack
|
||||
|
||||
if(is_type_in_list(I, dried_items))
|
||||
if(istype(I, /obj/item/reagent_containers/food/snacks/grown))
|
||||
var/obj/item/reagent_containers/food/snacks/grown/G = I
|
||||
if(!G.dry)
|
||||
to_chat(user, "<span class='warning'>You must dry [G] first!</span>")
|
||||
return TRUE
|
||||
|
||||
if(length(holdingitems) >= limit)
|
||||
to_chat(user, "The machine cannot hold anymore items.")
|
||||
if(holdingitems.len >= limit)
|
||||
to_chat(user, "<span class='warning'>[src] is filled to capacity!</span>")
|
||||
return TRUE
|
||||
|
||||
//Fill machine with a bag!
|
||||
@@ -192,14 +95,18 @@
|
||||
updateUsrDialog()
|
||||
return TRUE
|
||||
|
||||
if (!is_type_in_list(I, blend_items) && !is_type_in_list(I, juice_items))
|
||||
if(!I.grind_results && !I.juice_results)
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
return ..()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Cannot refine into a reagent!</span>")
|
||||
to_chat(user, "<span class='warning'>You cannot grind [I] into reagents!</span>")
|
||||
return TRUE
|
||||
|
||||
if(!I.grind_requirements(src)) //Error messages should be in the objects' definitions
|
||||
return
|
||||
|
||||
if(user.transferItemToLoc(I, src))
|
||||
to_chat(user, "<span class='notice'>You add [I] to [src].</span>")
|
||||
holdingitems[I] = TRUE
|
||||
updateUsrDialog()
|
||||
return FALSE
|
||||
@@ -214,7 +121,7 @@
|
||||
user.set_machine(src)
|
||||
interact(user)
|
||||
|
||||
/obj/machinery/reagentgrinder/interact(mob/user) // The microwave Menu
|
||||
/obj/machinery/reagentgrinder/interact(mob/user) // The microwave Menu //I am reasonably certain that this is not a microwave
|
||||
var/is_chamber_empty = FALSE
|
||||
var/is_beaker_ready = FALSE
|
||||
var/processing_chamber = ""
|
||||
@@ -307,60 +214,10 @@
|
||||
holdingitems -= O
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/get_allowed_by_obj(obj/item/O)
|
||||
for (var/i in blend_items)
|
||||
if (istype(O, i))
|
||||
return blend_items[i]
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/get_allowed_juice_by_obj(obj/item/reagent_containers/food/snacks/O)
|
||||
for(var/i in juice_items)
|
||||
if(istype(O, i))
|
||||
return juice_items[i]
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/get_grownweapon_amount(obj/item/grown/O)
|
||||
if (!istype(O) || !O.seed)
|
||||
return 5
|
||||
else if (O.seed.potency == -1)
|
||||
return 5
|
||||
else
|
||||
return round(O.seed.potency)
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/get_juice_amount(obj/item/reagent_containers/food/snacks/grown/O)
|
||||
if (!istype(O) || !O.seed)
|
||||
return 5
|
||||
else if (O.seed.potency == -1)
|
||||
return 5
|
||||
else
|
||||
return round(5*sqrt(O.seed.potency))
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/remove_object(obj/item/O)
|
||||
holdingitems -= O
|
||||
qdel(O)
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/juice()
|
||||
power_change()
|
||||
if(!beaker || (beaker && (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)))
|
||||
return
|
||||
operate_for(50, juicing = TRUE)
|
||||
|
||||
//Snacks
|
||||
for(var/obj/item/i in holdingitems)
|
||||
var/obj/item/I = i
|
||||
if(istype(I, /obj/item/reagent_containers/food/snacks))
|
||||
var/obj/item/reagent_containers/food/snacks/O = I
|
||||
if(beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
|
||||
break
|
||||
var/list/allowed = get_allowed_juice_by_obj(O)
|
||||
if(isnull(allowed))
|
||||
break
|
||||
for(var/r_id in allowed)
|
||||
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))
|
||||
if(beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
|
||||
break
|
||||
remove_object(O)
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/shake_for(duration)
|
||||
var/offset = prob(50) ? -2 : 2
|
||||
var/old_pixel_x = pixel_x
|
||||
@@ -386,8 +243,26 @@
|
||||
operating = FALSE
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/grind()
|
||||
/obj/machinery/reagentgrinder/proc/juice()
|
||||
power_change()
|
||||
if(!beaker || (beaker && (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)))
|
||||
return
|
||||
operate_for(50, juicing = TRUE)
|
||||
for(var/obj/item/i in holdingitems)
|
||||
if(beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
|
||||
break
|
||||
var/obj/item/I = i
|
||||
if(I.juice_results)
|
||||
juice_item(I)
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/juice_item(obj/item/I) //Juicing results can be found in respective object definitions
|
||||
if(I.on_juice(src) == -1)
|
||||
to_chat(usr, "<span class='danger'>[src] shorts out as it tries to juice up [I], and transfers it back to storage.</span>")
|
||||
return
|
||||
beaker.reagents.add_reagent_list(I.juice_results)
|
||||
remove_object(I)
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/grind()
|
||||
power_change()
|
||||
if(!beaker || (beaker && beaker.reagents.total_volume >= beaker.reagents.maximum_volume))
|
||||
return
|
||||
@@ -396,82 +271,17 @@
|
||||
if(beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
|
||||
break
|
||||
var/obj/item/I = i
|
||||
//Snacks
|
||||
if(istype(I, /obj/item/reagent_containers/food/snacks))
|
||||
var/obj/item/reagent_containers/food/snacks/O = I
|
||||
var/list/allowed = get_allowed_by_obj(O)
|
||||
if(isnull(allowed))
|
||||
continue
|
||||
for(var/r_id in allowed)
|
||||
var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume
|
||||
var/amount = allowed[r_id]
|
||||
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))
|
||||
O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), 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))
|
||||
O.reagents.remove_reagent("nutriment", min(O.reagents.get_reagent_amount("nutriment"), space))
|
||||
else
|
||||
O.reagents.trans_id_to(beaker, r_id, min(amount, space))
|
||||
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
|
||||
break
|
||||
if(O.reagents.reagent_list.len == 0)
|
||||
remove_object(O)
|
||||
//Sheets
|
||||
else if(istype(I, /obj/item/stack/sheet))
|
||||
var/obj/item/stack/sheet/O = I
|
||||
var/list/allowed = get_allowed_by_obj(O)
|
||||
for(var/t in 1 to round(O.amount, 1))
|
||||
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))
|
||||
if (space < amount)
|
||||
break
|
||||
if(t == round(O.amount, 1))
|
||||
remove_object(O)
|
||||
break
|
||||
//Plants
|
||||
else if(istype(I, /obj/item/grown))
|
||||
var/obj/item/grown/O = I
|
||||
var/list/allowed = get_allowed_by_obj(O)
|
||||
for (var/r_id in allowed)
|
||||
var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume
|
||||
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))
|
||||
else
|
||||
beaker.reagents.add_reagent(r_id,min(amount, space))
|
||||
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
|
||||
break
|
||||
remove_object(O)
|
||||
else if(istype(I, /obj/item/slime_extract))
|
||||
var/obj/item/slime_extract/O = I
|
||||
var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume
|
||||
if (O.reagents != null)
|
||||
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))
|
||||
remove_object(O)
|
||||
if(istype(I, /obj/item/reagent_containers))
|
||||
var/obj/item/reagent_containers/O = I
|
||||
var/amount = O.reagents.total_volume
|
||||
O.reagents.trans_to(beaker, amount)
|
||||
if(!O.reagents.total_volume)
|
||||
remove_object(O)
|
||||
else if(istype(I, /obj/item/toy/crayon))
|
||||
var/obj/item/toy/crayon/O = I
|
||||
for (var/r_id in O.reagent_contents)
|
||||
var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume
|
||||
if(!space)
|
||||
break
|
||||
beaker.reagents.add_reagent(r_id, min(O.reagent_contents[r_id], space))
|
||||
remove_object(O)
|
||||
if(I.grind_results)
|
||||
grind_item(i)
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/grind_item(obj/item/I) //Grind results can be found in respective object definitions
|
||||
if(I.on_grind(src) == -1) //Call on_grind() to change amount as needed, and stop grinding the item if it returns -1
|
||||
to_chat(usr, "<span class='danger'>[src] shorts out as it tries to grind up [I], and transfers it back to storage.</span>")
|
||||
return
|
||||
beaker.reagents.add_reagent_list(I.grind_results)
|
||||
if(I.reagents)
|
||||
I.reagents.trans_to(beaker, I.reagents.total_volume)
|
||||
remove_object(I)
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/mix(mob/user)
|
||||
//For butter and other things that would change upon shaking or mixing
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
<<<<<<< HEAD
|
||||
/obj/item/reagent_containers/pill
|
||||
name = "pill"
|
||||
desc = "A tablet or capsule."
|
||||
@@ -152,3 +153,160 @@
|
||||
icon_state = "pill9"
|
||||
color = "#454545"
|
||||
list_reagents = list("shadowmutationtoxin" = 1)
|
||||
=======
|
||||
/obj/item/reagent_containers/pill
|
||||
name = "pill"
|
||||
desc = "A tablet or capsule."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "pill"
|
||||
item_state = "pill"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
|
||||
possible_transfer_amounts = list()
|
||||
volume = 50
|
||||
grind_results = list()
|
||||
var/apply_type = INGEST
|
||||
var/apply_method = "swallow"
|
||||
var/roundstart = 0
|
||||
var/self_delay = 0 //pills are instant, this is because patches inheret their aplication from pills
|
||||
|
||||
/obj/item/reagent_containers/pill/Initialize()
|
||||
. = ..()
|
||||
if(!icon_state)
|
||||
icon_state = "pill[rand(1,20)]"
|
||||
if(reagents.total_volume && roundstart)
|
||||
name += " ([reagents.total_volume]u)"
|
||||
|
||||
|
||||
/obj/item/reagent_containers/pill/attack_self(mob/user)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/reagent_containers/pill/attack(mob/M, mob/user, def_zone)
|
||||
if(!canconsume(M, user))
|
||||
return 0
|
||||
|
||||
if(M == user)
|
||||
M.visible_message("<span class='notice'>[user] attempts to [apply_method] [src].</span>")
|
||||
if(self_delay)
|
||||
if(!do_mob(user, M, self_delay))
|
||||
return 0
|
||||
to_chat(M, "<span class='notice'>You [apply_method] [src].</span>")
|
||||
|
||||
else
|
||||
M.visible_message("<span class='danger'>[user] attempts to force [M] to [apply_method] [src].</span>", \
|
||||
"<span class='userdanger'>[user] attempts to force [M] to [apply_method] [src].</span>")
|
||||
if(!do_mob(user, M))
|
||||
return 0
|
||||
M.visible_message("<span class='danger'>[user] forces [M] to [apply_method] [src].</span>", \
|
||||
"<span class='userdanger'>[user] forces [M] to [apply_method] [src].</span>")
|
||||
|
||||
|
||||
add_logs(user, M, "fed", reagentlist(src))
|
||||
if(reagents.total_volume)
|
||||
reagents.reaction(M, apply_type)
|
||||
reagents.trans_to(M, reagents.total_volume)
|
||||
qdel(src)
|
||||
return 1
|
||||
|
||||
|
||||
/obj/item/reagent_containers/pill/afterattack(obj/target, mob/user , proximity)
|
||||
if(!proximity)
|
||||
return
|
||||
if(target.is_open_container() != 0 && target.reagents)
|
||||
if(!target.reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'>[target] is empty! There's nothing to dissolve [src] in.</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You dissolve [src] in [target].</span>")
|
||||
for(var/mob/O in viewers(2, user)) //viewers is necessary here because of the small radius
|
||||
to_chat(O, "<span class='warning'>[user] slips something into [target]!</span>")
|
||||
reagents.trans_to(target, reagents.total_volume)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/reagent_containers/pill/tox
|
||||
name = "toxins pill"
|
||||
desc = "Highly toxic."
|
||||
icon_state = "pill5"
|
||||
list_reagents = list("toxin" = 50)
|
||||
roundstart = 1
|
||||
/obj/item/reagent_containers/pill/cyanide
|
||||
name = "cyanide pill"
|
||||
desc = "Don't swallow this."
|
||||
icon_state = "pill5"
|
||||
list_reagents = list("cyanide" = 50)
|
||||
roundstart = 1
|
||||
/obj/item/reagent_containers/pill/adminordrazine
|
||||
name = "adminordrazine pill"
|
||||
desc = "It's magic. We don't have to explain it."
|
||||
icon_state = "pill16"
|
||||
list_reagents = list("adminordrazine" = 50)
|
||||
roundstart = 1
|
||||
/obj/item/reagent_containers/pill/morphine
|
||||
name = "morphine pill"
|
||||
desc = "Commonly used to treat insomnia."
|
||||
icon_state = "pill8"
|
||||
list_reagents = list("morphine" = 30)
|
||||
roundstart = 1
|
||||
/obj/item/reagent_containers/pill/stimulant
|
||||
name = "stimulant pill"
|
||||
desc = "Often taken by overworked employees, athletes, and the inebriated. You'll snap to attention immediately!"
|
||||
icon_state = "pill19"
|
||||
list_reagents = list("ephedrine" = 10, "antihol" = 10, "coffee" = 30)
|
||||
roundstart = 1
|
||||
/obj/item/reagent_containers/pill/salbutamol
|
||||
name = "salbutamol pill"
|
||||
desc = "Used to treat oxygen deprivation."
|
||||
icon_state = "pill16"
|
||||
list_reagents = list("salbutamol" = 30)
|
||||
roundstart = 1
|
||||
/obj/item/reagent_containers/pill/charcoal
|
||||
name = "charcoal pill"
|
||||
desc = "Neutralizes many common toxins."
|
||||
icon_state = "pill17"
|
||||
list_reagents = list("charcoal" = 10)
|
||||
roundstart = 1
|
||||
/obj/item/reagent_containers/pill/epinephrine
|
||||
name = "epinephrine pill"
|
||||
desc = "Used to stabilize patients."
|
||||
icon_state = "pill5"
|
||||
list_reagents = list("epinephrine" = 15)
|
||||
roundstart = 1
|
||||
/obj/item/reagent_containers/pill/mannitol
|
||||
name = "mannitol pill"
|
||||
desc = "Used to treat brain damage."
|
||||
icon_state = "pill17"
|
||||
list_reagents = list("mannitol" = 50)
|
||||
roundstart = 1
|
||||
/obj/item/reagent_containers/pill/mutadone
|
||||
name = "mutadone pill"
|
||||
desc = "Used to treat genetic damage."
|
||||
icon_state = "pill20"
|
||||
list_reagents = list("mutadone" = 50)
|
||||
roundstart = 1
|
||||
/obj/item/reagent_containers/pill/salicyclic
|
||||
name = "salicylic acid pill"
|
||||
desc = "Used to dull pain."
|
||||
icon_state = "pill9"
|
||||
list_reagents = list("sal_acid" = 24)
|
||||
roundstart = 1
|
||||
/obj/item/reagent_containers/pill/oxandrolone
|
||||
name = "oxandrolone pill"
|
||||
desc = "Used to stimulate burn healing."
|
||||
icon_state = "pill11"
|
||||
list_reagents = list("oxandrolone" = 24)
|
||||
roundstart = 1
|
||||
|
||||
/obj/item/reagent_containers/pill/insulin
|
||||
name = "insulin pill"
|
||||
desc = "Handles hyperglycaemic coma."
|
||||
icon_state = "pill18"
|
||||
list_reagents = list("insulin" = 50)
|
||||
roundstart = 1
|
||||
|
||||
/obj/item/reagent_containers/pill/shadowtoxin
|
||||
name = "black pill"
|
||||
desc = "I wouldn't eat this if I were you."
|
||||
icon_state = "pill9"
|
||||
color = "#454545"
|
||||
list_reagents = list("shadowmutationtoxin" = 1)
|
||||
>>>>>>> d447acd... All-In-One grinder results are now defined by type, not by huge lists (#33181)
|
||||
|
||||
Reference in New Issue
Block a user