diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
index de672ffcf45..473df8efa80 100644
--- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
@@ -2946,7 +2946,7 @@
"beH" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech)
"beI" = (/obj/machinery/door_control{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -5; req_access_txt = "10"},/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -24; pixel_y = 5; req_access_txt = "24"},/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office)
"beJ" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/engine/chiefs_office)
-"beK" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/stamp/ce,/obj/item/weapon/reagent_containers/pill/patch/silver_sulf,/turf/simulated/floor/plasteel{icon_state = "neutral"},/area/engine/chiefs_office)
+"beK" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/stamp/ce,/obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf,/turf/simulated/floor/plasteel{icon_state = "neutral"},/area/engine/chiefs_office)
"beL" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/clothing/glasses/sunglasses/big,/turf/simulated/floor/wood,/area/lawoffice)
"beM" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/engine/chiefs_office)
"beN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office)
diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index a43e0d5aada..dc4e86aacf8 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -4110,7 +4110,7 @@
"bBb" = (/obj/structure/table,/obj/machinery/door/window/northright{name = "Medbay Lobby"; req_access_txt = "5"},/obj/item/device/radio/intercom/department/medbay,/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/medical/reception)
"bBc" = (/obj/structure/table,/obj/machinery/media/receiver/boombox,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/turf/simulated/floor/plasteel{dir = 5; icon_state = "blue"},/area/medical/reception)
"bBd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/device/radio/intercom{frequency = 1459; name = "station intercom (General)"; pixel_x = 28},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/reception)
-"bBe" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/structure/closet/secure_closet/medical_wall{name = "Pill Cabinet"; pixel_y = -32},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/item/weapon/reagent_containers/syringe/charcoal,/obj/item/weapon/reagent_containers/syringe/insulin,/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/weapon/reagent_containers/syringe,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/stack/medical/advanced/ointment,/obj/item/weapon/reagent_containers/pill/patch/styptic,/obj/item/weapon/reagent_containers/pill/patch/styptic,/obj/item/weapon/reagent_containers/pill/patch/silver_sulf,/obj/item/weapon/reagent_containers/pill/patch/silver_sulf,/obj/item/weapon/storage/pill_bottle/painkillers,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room)
+"bBe" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/structure/closet/secure_closet/medical_wall{name = "Pill Cabinet"; pixel_y = -32},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/item/weapon/reagent_containers/syringe/charcoal,/obj/item/weapon/reagent_containers/syringe/insulin,/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/weapon/reagent_containers/syringe,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/stack/medical/advanced/ointment,/obj/item/weapon/reagent_containers/food/pill/patch/styptic,/obj/item/weapon/reagent_containers/food/pill/patch/styptic,/obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf,/obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf,/obj/item/weapon/storage/pill_bottle/painkillers,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room)
"bBf" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/table,/obj/item/weapon/cane,/obj/item/weapon/cane{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cane{pixel_x = -6; pixel_y = 4},/obj/item/weapon/storage/box/rxglasses,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room)
"bBg" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_y = -10},/obj/item/weapon/clipboard,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room)
"bBh" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/storage/box/bodybags,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/medical/morgue)
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index af6961bae99..dff34374cb0 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -245,7 +245,7 @@ proc/issyndicate(mob/living/M as mob)
if(synd_mob.backbag == 2) synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(synd_mob), slot_back)
if(synd_mob.backbag == 3) synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(synd_mob), slot_back)
if(synd_mob.backbag == 4) synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(synd_mob), slot_back)
- synd_mob.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/pill/initropidril(synd_mob), slot_in_backpack)
+ synd_mob.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/food/pill/initropidril(synd_mob), slot_in_backpack)
synd_mob.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/automatic/pistol(synd_mob), slot_belt)
synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(synd_mob.back), slot_in_backpack)
diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm
index ebe252a9c08..1378bdf7f69 100644
--- a/code/game/jobs/job/support.dm
+++ b/code/game/jobs/job/support.dm
@@ -199,12 +199,12 @@
H.equip_or_collect(new /obj/item/weapon/storage/box/engineer(H), slot_r_hand)
H.equip_or_collect(new /obj/item/weapon/crowbar(H), slot_l_hand)
H.equip_or_collect(new /obj/item/weapon/storage/bag/ore(H), slot_l_store)
- H.equip_or_collect(new /obj/item/weapon/reagent_containers/pill/patch/styptic(H), slot_r_store)
+ H.equip_or_collect(new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(H), slot_r_store)
else
H.equip_or_collect(new /obj/item/weapon/storage/box/engineer(H.back), slot_in_backpack)
H.equip_or_collect(new /obj/item/weapon/crowbar(H), slot_in_backpack)
H.equip_or_collect(new /obj/item/weapon/storage/bag/ore(H), slot_in_backpack)
- H.equip_or_collect(new /obj/item/weapon/reagent_containers/pill/patch/styptic(H), slot_in_backpack)
+ H.equip_or_collect(new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(H), slot_in_backpack)
return 1
diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm
index 517b96be864..bca954ac593 100644
--- a/code/game/machinery/kitchen/smartfridge.dm
+++ b/code/game/machinery/kitchen/smartfridge.dm
@@ -78,7 +78,7 @@
return 1
if(istype(O,/obj/item/weapon/storage/pill_bottle/))
return 1
- if(istype(O,/obj/item/weapon/reagent_containers/pill/))
+ if(istype(O,/obj/item/weapon/reagent_containers/food/pill/))
return 1
return 0
@@ -104,7 +104,7 @@
return 1
if(istype(O,/obj/item/weapon/storage/pill_bottle/))
return 1
- if(istype(O,/obj/item/weapon/reagent_containers/pill/))
+ if(istype(O,/obj/item/weapon/reagent_containers/food/pill/))
return 1
return 0
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index fb0824d18b8..74c864ab574 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -859,10 +859,10 @@
product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs."
vend_delay = 34
icon_state = "cigs"
- products = list(/obj/item/weapon/storage/fancy/cigarettes = 5,/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3,/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2,/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3,/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1,/obj/item/weapon/storage/fancy/cigarettes/cigpack_random = 2, /obj/item/weapon/reagent_containers/pill/patch/nicotine = 10, /obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 4,/obj/item/weapon/rollingpaperpack = 5)
+ products = list(/obj/item/weapon/storage/fancy/cigarettes = 5,/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3,/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2,/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3,/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1,/obj/item/weapon/storage/fancy/cigarettes/cigpack_random = 2, /obj/item/weapon/reagent_containers/food/pill/patch/nicotine = 10, /obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 4,/obj/item/weapon/rollingpaperpack = 5)
contraband = list(/obj/item/weapon/lighter/zippo = 4)
premium = list(/obj/item/clothing/mask/cigarette/cigar/havana = 2,/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold = 1)
- prices = list(/obj/item/weapon/storage/fancy/cigarettes = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_random = 150, /obj/item/weapon/reagent_containers/pill/patch/nicotine = 15, /obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 60, /obj/item/weapon/rollingpaperpack = 20)
+ prices = list(/obj/item/weapon/storage/fancy/cigarettes = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 60,/obj/item/weapon/storage/fancy/cigarettes/cigpack_random = 150, /obj/item/weapon/reagent_containers/food/pill/patch/nicotine = 15, /obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 60, /obj/item/weapon/rollingpaperpack = 20)
refill_canister = /obj/item/weapon/vending_refill/cigarette
/obj/machinery/vending/cigarette/New()
@@ -908,7 +908,7 @@
req_access_txt = "5"
density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude
products = list(/obj/item/stack/medical/bruise_pack = 2,/obj/item/stack/medical/ointment = 2,/obj/item/weapon/reagent_containers/hypospray/autoinjector = 4,/obj/item/device/healthanalyzer = 1)
- contraband = list(/obj/item/weapon/reagent_containers/syringe/charcoal = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1)
+ contraband = list(/obj/item/weapon/reagent_containers/syringe/charcoal = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/food/pill/tox = 1)
/obj/machinery/vending/wallmed2
name = "\improper NanoMed"
@@ -919,7 +919,7 @@
density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude
products = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector = 5,/obj/item/weapon/reagent_containers/syringe/charcoal = 3,/obj/item/stack/medical/bruise_pack = 3,
/obj/item/stack/medical/ointment =3,/obj/item/device/healthanalyzer = 3)
- contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3)
+ contraband = list(/obj/item/weapon/reagent_containers/food/pill/tox = 3)
/obj/machinery/vending/wallmed1/syndicate
name = "\improper SyndiMed Plus"
@@ -929,7 +929,7 @@
product_ads = "Go end some lives!;The best stuff for your ship.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!"
req_access_txt = "150"
products = list(/obj/item/stack/medical/bruise_pack = 2,/obj/item/stack/medical/ointment = 2,/obj/item/weapon/reagent_containers/hypospray/autoinjector = 4,/obj/item/device/healthanalyzer = 1)
- contraband = list(/obj/item/weapon/reagent_containers/syringe/charcoal = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1)
+ contraband = list(/obj/item/weapon/reagent_containers/syringe/charcoal = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/food/pill/tox = 1)
/obj/machinery/vending/security
name = "\improper SecTech"
diff --git a/code/game/objects/items/contraband.dm b/code/game/objects/items/contraband.dm
index c82e63cebf2..22eb55e150e 100644
--- a/code/game/objects/items/contraband.dm
+++ b/code/game/objects/items/contraband.dm
@@ -7,13 +7,13 @@
/obj/item/weapon/storage/pill_bottle/happy/New()
..()
- new /obj/item/weapon/reagent_containers/pill/happy( src )
- new /obj/item/weapon/reagent_containers/pill/happy( src )
- new /obj/item/weapon/reagent_containers/pill/happy( src )
- new /obj/item/weapon/reagent_containers/pill/happy( src )
- new /obj/item/weapon/reagent_containers/pill/happy( src )
- new /obj/item/weapon/reagent_containers/pill/happy( src )
- new /obj/item/weapon/reagent_containers/pill/happy( src )
+ new /obj/item/weapon/reagent_containers/food/pill/happy( src )
+ new /obj/item/weapon/reagent_containers/food/pill/happy( src )
+ new /obj/item/weapon/reagent_containers/food/pill/happy( src )
+ new /obj/item/weapon/reagent_containers/food/pill/happy( src )
+ new /obj/item/weapon/reagent_containers/food/pill/happy( src )
+ new /obj/item/weapon/reagent_containers/food/pill/happy( src )
+ new /obj/item/weapon/reagent_containers/food/pill/happy( src )
/obj/item/weapon/storage/pill_bottle/zoom
name = "Zoom pills"
@@ -21,20 +21,20 @@
/obj/item/weapon/storage/pill_bottle/zoom/New()
..()
- new /obj/item/weapon/reagent_containers/pill/zoom( src )
- new /obj/item/weapon/reagent_containers/pill/zoom( src )
- new /obj/item/weapon/reagent_containers/pill/zoom( src )
- new /obj/item/weapon/reagent_containers/pill/zoom( src )
- new /obj/item/weapon/reagent_containers/pill/zoom( src )
- new /obj/item/weapon/reagent_containers/pill/zoom( src )
- new /obj/item/weapon/reagent_containers/pill/zoom( src )
+ new /obj/item/weapon/reagent_containers/food/pill/zoom( src )
+ new /obj/item/weapon/reagent_containers/food/pill/zoom( src )
+ new /obj/item/weapon/reagent_containers/food/pill/zoom( src )
+ new /obj/item/weapon/reagent_containers/food/pill/zoom( src )
+ new /obj/item/weapon/reagent_containers/food/pill/zoom( src )
+ new /obj/item/weapon/reagent_containers/food/pill/zoom( src )
+ new /obj/item/weapon/reagent_containers/food/pill/zoom( src )
-/obj/item/weapon/reagent_containers/pill/random_drugs
+/obj/item/weapon/reagent_containers/food/pill/random_drugs
name = "pill"
desc = ""
-/obj/item/weapon/reagent_containers/pill/random_drugs/New()
+/obj/item/weapon/reagent_containers/food/pill/random_drugs/New()
..()
icon_state = "pill" + pick("2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20")
@@ -52,12 +52,12 @@
/obj/item/weapon/storage/pill_bottle/random_drug_bottle/New()
..()
- new /obj/item/weapon/reagent_containers/pill/random_drugs( src )
- new /obj/item/weapon/reagent_containers/pill/random_drugs( src )
- new /obj/item/weapon/reagent_containers/pill/random_drugs( src )
- new /obj/item/weapon/reagent_containers/pill/random_drugs( src )
- new /obj/item/weapon/reagent_containers/pill/random_drugs( src )
- new /obj/item/weapon/reagent_containers/pill/random_drugs( src )
- new /obj/item/weapon/reagent_containers/pill/random_drugs( src )
+ new /obj/item/weapon/reagent_containers/food/pill/random_drugs( src )
+ new /obj/item/weapon/reagent_containers/food/pill/random_drugs( src )
+ new /obj/item/weapon/reagent_containers/food/pill/random_drugs( src )
+ new /obj/item/weapon/reagent_containers/food/pill/random_drugs( src )
+ new /obj/item/weapon/reagent_containers/food/pill/random_drugs( src )
+ new /obj/item/weapon/reagent_containers/food/pill/random_drugs( src )
+ new /obj/item/weapon/reagent_containers/food/pill/random_drugs( src )
diff --git a/code/game/objects/items/random_items.dm b/code/game/objects/items/random_items.dm
index ea53bf6c534..9fda63a980c 100644
--- a/code/game/objects/items/random_items.dm
+++ b/code/game/objects/items/random_items.dm
@@ -128,7 +128,7 @@
R = pick(standard_medicines + rare_medicines)
else
R = pick(standard_medicines)
- var/obj/item/weapon/reagent_containers/pill/P = new(src)
+ var/obj/item/weapon/reagent_containers/food/pill/P = new(src)
if(rare_medicines.Find(R))
P.reagents.add_reagent(R,10)
diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm
index e50ea239b44..1cae4d8d5d4 100644
--- a/code/game/objects/items/weapons/kitchen.dm
+++ b/code/game/objects/items/weapons/kitchen.dm
@@ -27,8 +27,7 @@
attack_verb = list("attacked", "stabbed", "poked")
hitsound = 'sound/weapons/bladeslice.ogg'
sharp = 0
-
- var/loaded //Descriptive string for currently loaded food object.
+ var/max_contents = 1
/obj/item/weapon/kitchen/utensil/New()
if (prob(60))
@@ -49,25 +48,17 @@
else
return ..()
- if (reagents.total_volume > 0)
- // Mouthless people cannot eat
- if(!M.can_eat())
- user << "[M] cannot eat with a fork!"
- return
+ if (contents.len)
+ var/obj/item/weapon/reagent_containers/food/snacks/toEat = contents[1]
+ if(istype(toEat))
+ if(M.eat(toEat, user))
+ toEat.On_Consume(M)
+ spawn(0)
+ if(toEat)
+ qdel(toEat)
+ overlays.Cut()
+ return
- if(M == user)
- M.visible_message("\The [user] eats some [loaded] from \the [src].")
- reagents.trans_to(M, reagents.total_volume)
- else
- M.visible_message("\The [user] attempts to feed some [loaded] to \the [M] with \the [src].")
- if(!do_mob(user, M)) return
- M.visible_message("\The [user] feeds some [loaded] to \the [M] with \the [src].")
- reagents.trans_to(M, reagents.total_volume)
- M.attack_log += text("\[[time_stamp()]\] Has been utensil fed by [user.name] ([user.ckey]) with [src.name]")
- user.attack_log += text("\[[time_stamp()]\] Utensil fed [M.name] ([M.ckey]) with [src.name]")
- playsound(M.loc,'sound/items/eatfood.ogg', rand(10,40), 1)
- overlays.Cut()
- return
/obj/item/weapon/kitchen/utensil/fork
name = "fork"
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index 7a1107cce1d..ef0429347f0 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -483,7 +483,7 @@
storage_slots = 50
max_combined_w_class = 200
w_class = 1
- can_hold = list("/obj/item/weapon/reagent_containers/pill","/obj/item/weapon/reagent_containers/glass/beaker","/obj/item/weapon/reagent_containers/glass/bottle")
+ can_hold = list("/obj/item/weapon/reagent_containers/food/pill","/obj/item/weapon/reagent_containers/glass/beaker","/obj/item/weapon/reagent_containers/glass/bottle")
/*
* Biowaste bag (mostly for xenobiologists)
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index 44b1a21f73d..118ca1855f0 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -87,7 +87,7 @@
"/obj/item/weapon/reagent_containers/dropper",
"/obj/item/weapon/reagent_containers/glass/beaker",
"/obj/item/weapon/reagent_containers/glass/bottle",
- "/obj/item/weapon/reagent_containers/pill",
+ "/obj/item/weapon/reagent_containers/food/pill",
"/obj/item/weapon/reagent_containers/syringe",
"/obj/item/weapon/reagent_containers/glass/dispenser",
"/obj/item/weapon/lighter/zippo",
@@ -106,13 +106,13 @@
/obj/item/weapon/storage/belt/medical/response_team/New()
..()
- new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
- new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
- new /obj/item/weapon/reagent_containers/pill/charcoal(src)
- new /obj/item/weapon/reagent_containers/pill/charcoal(src)
- new /obj/item/weapon/reagent_containers/pill/salicylic(src)
- new /obj/item/weapon/reagent_containers/pill/salicylic(src)
- new /obj/item/weapon/reagent_containers/pill/salicylic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/salbutamol(src)
+ new /obj/item/weapon/reagent_containers/food/pill/salbutamol(src)
+ new /obj/item/weapon/reagent_containers/food/pill/charcoal(src)
+ new /obj/item/weapon/reagent_containers/food/pill/charcoal(src)
+ new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
/obj/item/weapon/storage/belt/botany
diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm
index cbbc22c9b36..6429d83c73b 100644
--- a/code/game/objects/items/weapons/storage/firstaid.dm
+++ b/code/game/objects/items/weapons/storage/firstaid.dm
@@ -35,13 +35,13 @@
icon_state = pick("ointment","firefirstaid")
- new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
- new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
- new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
- new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
+ new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
+ new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
+ new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
+ new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/device/healthanalyzer( src )
new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src )
- new /obj/item/weapon/reagent_containers/pill/salicylic( src )
+ new /obj/item/weapon/reagent_containers/food/pill/salicylic( src )
return
/obj/item/weapon/storage/firstaid/fire/empty
@@ -54,11 +54,11 @@
New()
..()
if (empty) return
- new /obj/item/weapon/reagent_containers/pill/patch/styptic( src )
- new /obj/item/weapon/reagent_containers/pill/patch/styptic( src )
- new /obj/item/weapon/reagent_containers/pill/salicylic( src )
- new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
- new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
+ new /obj/item/weapon/reagent_containers/food/pill/patch/styptic( src )
+ new /obj/item/weapon/reagent_containers/food/pill/patch/styptic( src )
+ new /obj/item/weapon/reagent_containers/food/pill/salicylic( src )
+ new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
+ new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf( src )
new /obj/item/device/healthanalyzer( src )
new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src )
return
@@ -78,9 +78,9 @@
new /obj/item/weapon/reagent_containers/syringe/charcoal( src )
new /obj/item/weapon/reagent_containers/syringe/charcoal( src )
new /obj/item/weapon/reagent_containers/syringe/charcoal( src )
- new /obj/item/weapon/reagent_containers/pill/charcoal( src )
- new /obj/item/weapon/reagent_containers/pill/charcoal( src )
- new /obj/item/weapon/reagent_containers/pill/charcoal( src )
+ new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
+ new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
+ new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
new /obj/item/device/healthanalyzer( src )
return
@@ -96,10 +96,10 @@
New()
..()
if (empty) return
- new /obj/item/weapon/reagent_containers/pill/salbutamol( src )
- new /obj/item/weapon/reagent_containers/pill/salbutamol( src )
- new /obj/item/weapon/reagent_containers/pill/salbutamol( src )
- new /obj/item/weapon/reagent_containers/pill/salbutamol( src )
+ new /obj/item/weapon/reagent_containers/food/pill/salbutamol( src )
+ new /obj/item/weapon/reagent_containers/food/pill/salbutamol( src )
+ new /obj/item/weapon/reagent_containers/food/pill/salbutamol( src )
+ new /obj/item/weapon/reagent_containers/food/pill/salbutamol( src )
new /obj/item/device/healthanalyzer( src )
return
@@ -118,10 +118,10 @@
icon_state = pick("brute","brute2")
- new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
- new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
- new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
- new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(src)
new /obj/item/device/healthanalyzer(src)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector(src)
new /obj/item/stack/medical/bruise_pack(src)
@@ -168,8 +168,8 @@
new /obj/item/clothing/accessory/stethoscope( src )
new /obj/item/weapon/defibrillator/compact/combat/loaded(src)
new /obj/item/weapon/reagent_containers/hypospray/combat(src)
- new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
- new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
+ new /obj/item/weapon/reagent_containers/food/pill/patch/styptic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf(src)
new /obj/item/weapon/reagent_containers/ld50_syringe/lethal(src)
new /obj/item/clothing/glasses/hud/health/night(src)
return
@@ -210,7 +210,7 @@
icon = 'icons/obj/chemical.dmi'
item_state = "contsolid"
w_class = 2.0
- can_hold = list("/obj/item/weapon/reagent_containers/pill","/obj/item/weapon/dice","/obj/item/weapon/paper")
+ can_hold = list("/obj/item/weapon/reagent_containers/food/pill","/obj/item/weapon/dice","/obj/item/weapon/paper")
allow_quick_gather = 1
use_to_pickup = 1
storage_slots = 14
@@ -245,13 +245,13 @@
New()
..()
- new /obj/item/weapon/reagent_containers/pill/charcoal( src )
- new /obj/item/weapon/reagent_containers/pill/charcoal( src )
- new /obj/item/weapon/reagent_containers/pill/charcoal( src )
- new /obj/item/weapon/reagent_containers/pill/charcoal( src )
- new /obj/item/weapon/reagent_containers/pill/charcoal( src )
- new /obj/item/weapon/reagent_containers/pill/charcoal( src )
- new /obj/item/weapon/reagent_containers/pill/charcoal( src )
+ new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
+ new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
+ new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
+ new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
+ new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
+ new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
+ new /obj/item/weapon/reagent_containers/food/pill/charcoal( src )
/obj/item/weapon/storage/pill_bottle/dice
name = "pack of dice"
@@ -269,11 +269,11 @@
/obj/item/weapon/storage/pill_bottle/painkillers/New()
..()
- new /obj/item/weapon/reagent_containers/pill/salicylic(src)
- new /obj/item/weapon/reagent_containers/pill/salicylic(src)
- new /obj/item/weapon/reagent_containers/pill/salicylic(src)
- new /obj/item/weapon/reagent_containers/pill/salicylic(src)
- new /obj/item/weapon/reagent_containers/pill/salicylic(src)
- new /obj/item/weapon/reagent_containers/pill/salicylic(src)
- new /obj/item/weapon/reagent_containers/pill/salicylic(src)
- new /obj/item/weapon/reagent_containers/pill/salicylic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
+ new /obj/item/weapon/reagent_containers/food/pill/salicylic(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
index 887c32d1584..11e1b56b7ed 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -121,10 +121,10 @@
/obj/item/weapon/storage/pill_bottle/psychiatrist/New()
..()
- new /obj/item/weapon/reagent_containers/pill/haloperidol(src)
- new /obj/item/weapon/reagent_containers/pill/haloperidol(src)
- new /obj/item/weapon/reagent_containers/pill/methamphetamine(src)
- new /obj/item/weapon/reagent_containers/pill/methamphetamine(src)
+ new /obj/item/weapon/reagent_containers/food/pill/haloperidol(src)
+ new /obj/item/weapon/reagent_containers/food/pill/haloperidol(src)
+ new /obj/item/weapon/reagent_containers/food/pill/methamphetamine(src)
+ new /obj/item/weapon/reagent_containers/food/pill/methamphetamine(src)
/obj/structure/closet/secure_closet/psychiatrist
name = "psychiatrist's locker"
diff --git a/code/game/response_team.dm b/code/game/response_team.dm
index fab7bdcbbf1..20ed7e6c1ed 100644
--- a/code/game/response_team.dm
+++ b/code/game/response_team.dm
@@ -607,6 +607,6 @@ var/send_emergency_team
new /obj/item/device/flashlight/flare( src )
new /obj/item/weapon/kitchen/knife/combat( src )
new /obj/item/device/radio/centcom( src )
- new /obj/item/weapon/reagent_containers/pill/salicylic( src )
- new /obj/item/weapon/reagent_containers/pill/patch/synthflesh( src )
+ new /obj/item/weapon/reagent_containers/food/pill/salicylic( src )
+ new /obj/item/weapon/reagent_containers/food/pill/patch/synthflesh( src )
return
\ No newline at end of file
diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm
index 1591b8fbcc3..9f33b208d63 100644
--- a/code/modules/clothing/suits/labcoat.dm
+++ b/code/modules/clothing/suits/labcoat.dm
@@ -7,7 +7,7 @@
suit_adjusted = 1
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
- allowed = list(/obj/item/device/analyzer,/obj/item/device/antibody_scanner,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/device/rad_laser)
+ allowed = list(/obj/item/device/analyzer,/obj/item/device/antibody_scanner,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/food/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/device/rad_laser)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 50, rad = 0)
species_fit = list("Vox")
sprite_sheets = list(
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 5e905c91e9d..b291178ecb4 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -737,4 +737,80 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
return 1
/mob/living/carbon/proc/can_eat(flags = 255)
- return 1
\ No newline at end of file
+ return 1
+
+/mob/living/carbon/proc/eat(var/obj/item/weapon/reagent_containers/food/toEat, mob/user)
+ if(!istype(toEat))
+ return 0
+ var/fullness = 0
+ if(istype(toEat, /obj/item/weapon/reagent_containers/food/snacks))
+ fullness = nutrition + (reagents.get_reagent_amount("nutriment") * 20) + (reagents.get_reagent_amount("protein") * 25) + (reagents.get_reagent_amount("plantmatter") * 25)
+ if(user == src)
+ if(istype(toEat, /obj/item/weapon/reagent_containers/food/drinks))
+ if(!selfDrink(toEat))
+ return 0
+ else
+ if(!selfFeed(toEat, fullness))
+ return 0
+ else
+ if(!forceFed(toEat, user, fullness))
+ return 0
+ consume(toEat)
+ return 1
+
+/mob/living/carbon/proc/selfFeed(var/obj/item/weapon/reagent_containers/food/toEat, fullness)
+ if(istype(toEat, /obj/item/weapon/reagent_containers/food/pill))
+ src << "You [toEat.apply_method] [toEat]."
+ else
+ if (fullness <= 50)
+ src << "You hungrily chew out a piece of [toEat] and gobble it!"
+ else if (fullness > 50 && fullness <= 150)
+ src << "You hungrily begin to eat [toEat]."
+ else if (fullness > 150 && fullness <= 350)
+ src << "You take a bite of [toEat]."
+ else if (fullness > 350 && fullness <= 550)
+ src << "You unwillingly chew a bit of [toEat]."
+ else if (fullness > (550 * (1 + overeatduration / 2000))) // The more you eat - the more you can eat
+ src << "You cannot force any more of [toEat] to go down your throat."
+ return 0
+ return 1
+
+/mob/living/carbon/proc/selfDrink(var/obj/item/weapon/reagent_containers/food/drinks/toDrink, mob/user)
+ return 1
+
+/mob/living/carbon/proc/forceFed(var/obj/item/weapon/reagent_containers/food/toEat, mob/user, fullness)
+ if (fullness <= (550 * (1 + overeatduration / 1000)))
+ visible_message("[user] attempts to force [src] to [toEat.apply_method] [toEat].")
+ else
+ visible_message("[user] cannot force anymore of [toEat] down [src]'s throat.")
+ return 0
+ if(!do_mob(user, src))
+ return 0
+ forceFedAttackLog(toEat, user)
+ visible_message("[user] forces [src] to [toEat.apply_method] [toEat].")
+ return 1
+
+/mob/living/carbon/proc/forceFedAttackLog(var/obj/item/weapon/reagent_containers/food/toEat, mob/user)
+ attack_log += text("\[[time_stamp()]\] Has been fed [toEat.name] by [user.name] ([user.ckey]) Reagents: [toEat.reagentlist(toEat)]")
+ user.attack_log += text("\[[time_stamp()]\] Fed [toEat.name] to [name] ([ckey]) Reagents: [toEat.reagentlist(toEat)]")
+ log_attack("[user.name] ([user.ckey]) fed [name] ([ckey]) with [toEat.name] Reagents: [toEat.reagentlist(toEat)] (INTENT: [uppertext(user.a_intent)])")
+ if(!iscarbon(user))
+ LAssailant = null
+ else
+ LAssailant = user
+
+
+/*TO DO - If/when stomach organs are introduced, override this at the human level sending the item to the stomach
+so that different stomachs can handle things in different ways VB*/
+/mob/living/carbon/proc/consume(var/obj/item/weapon/reagent_containers/food/toEat)
+ if(!toEat.reagents)
+ return
+ if(toEat.consume_sound)
+ playsound(loc, toEat.consume_sound, rand(10,50), 1)
+ if(toEat.reagents.total_volume)
+ toEat.reagents.reaction(src, toEat.apply_type)
+ spawn(0)
+ if(toEat.reagents.total_volume > toEat.bitesize)
+ toEat.reagents.trans_to(src, toEat.bitesize*toEat.transfer_efficiency)
+ else
+ toEat.reagents.trans_to(src, toEat.reagents.total_volume*toEat.transfer_efficiency)
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index d50aae8a13d..ce6a5ecfb5e 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1882,3 +1882,27 @@
/mob/living/carbon/human/can_eat(flags = 255)
return species && (species.dietflags & flags)
+
+/mob/living/carbon/human/selfFeed(var/obj/item/weapon/reagent_containers/food/toEat, fullness)
+ if(!check_has_mouth())
+ src << "Where do you intend to put \the [toEat]? You don't have a mouth!"
+ return 0
+ return ..()
+
+/mob/living/carbon/human/forceFed(var/obj/item/weapon/reagent_containers/food/toEat, mob/user, fullness)
+ if(!check_has_mouth())
+ if(!((istype(toEat, /obj/item/weapon/reagent_containers/food/drinks) && (get_species() == "Machine"))))
+ user << "Where do you intend to put \the [toEat]? \The [src] doesn't have a mouth!"
+ return 0
+ return ..()
+
+/mob/living/carbon/human/selfDrink(var/obj/item/weapon/reagent_containers/food/drinks/toDrink)
+ if(!check_has_mouth())
+ if(!get_species() == "Machine")
+ src << "Where do you intend to put \the [src]? You don't have a mouth!"
+ return 0
+ else
+ src << "You pour a bit of liquid from [toDrink] into your connection port."
+ else
+ src << "You swallow a gulp of [toDrink]."
+ return 1
diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm
index 78c8db06a59..37c2e112c24 100644
--- a/code/modules/mob/living/carbon/slime/slime.dm
+++ b/code/modules/mob/living/carbon/slime/slime.dm
@@ -583,4 +583,10 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
/mob/living/carbon/slime/can_use_vents()
if(Victim)
return "You cannot ventcrawl while feeding."
- ..()
\ No newline at end of file
+ ..()
+
+/mob/living/carbon/slime/forceFed(var/obj/item/weapon/reagent_containers/food/toEat, mob/user, fullness)
+ if(istype(toEat, /obj/item/weapon/reagent_containers/food/drinks))
+ return 1
+ user << "This creature does not seem to have a mouth!"
+ return 0
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 5fe33d73b03..99b9339cd97 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -583,7 +583,7 @@
return
name = reject_bad_text(name)
while (count--)
- var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src.loc)
+ var/obj/item/weapon/reagent_containers/food/pill/P = new/obj/item/weapon/reagent_containers/food/pill(src.loc)
if(!name) name = reagents.get_master_reagent_name()
P.name = "[name] pill"
P.pixel_x = rand(-7, 7) //random position
@@ -623,7 +623,7 @@
return
name = reject_bad_text(name)
while (count--)
- var/obj/item/weapon/reagent_containers/pill/patch/P = new/obj/item/weapon/reagent_containers/pill/patch(src.loc)
+ var/obj/item/weapon/reagent_containers/food/pill/patch/P = new/obj/item/weapon/reagent_containers/food/pill/patch(src.loc)
if(!name) name = reagents.get_master_reagent_name()
P.name = "[name] patch"
P.pixel_x = rand(-7, 7) //random position
@@ -828,7 +828,7 @@
//All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.!
- /obj/item/weapon/reagent_containers/pill = list(),
+ /obj/item/weapon/reagent_containers/food/pill = list(),
/obj/item/weapon/reagent_containers/food = list()
)
diff --git a/code/modules/reagents/newchem/patch.dm b/code/modules/reagents/newchem/patch.dm
index 7901c97cbc0..a7aae47d8de 100644
--- a/code/modules/reagents/newchem/patch.dm
+++ b/code/modules/reagents/newchem/patch.dm
@@ -1,4 +1,4 @@
-/obj/item/weapon/reagent_containers/pill/patch
+/obj/item/weapon/reagent_containers/food/pill/patch
name = "chemical patch"
desc = "A chemical patch for touch based applications."
icon = 'icons/obj/chemical.dmi'
@@ -10,35 +10,35 @@
apply_method = "apply"
transfer_efficiency = 0.5 //patches aren't as effective at getting chemicals into the bloodstream.
-/obj/item/weapon/reagent_containers/pill/patch/New()
+/obj/item/weapon/reagent_containers/food/pill/patch/New()
..()
icon_state = "bandaid"
-/obj/item/weapon/reagent_containers/pill/patch/afterattack(obj/target, mob/user , proximity)
+/obj/item/weapon/reagent_containers/food/pill/patch/afterattack(obj/target, mob/user , proximity)
return // thanks inheritance again
-/obj/item/weapon/reagent_containers/pill/patch/styptic
+/obj/item/weapon/reagent_containers/food/pill/patch/styptic
name = "healing patch"
desc = "Helps with brute injuries."
New()
..()
reagents.add_reagent("styptic_powder", 40)
-/obj/item/weapon/reagent_containers/pill/patch/silver_sulf
+/obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf
name = "burn patch"
desc = "Helps with burn injuries."
New()
..()
reagents.add_reagent("silver_sulfadiazine", 40)
-/obj/item/weapon/reagent_containers/pill/patch/synthflesh
+/obj/item/weapon/reagent_containers/food/pill/patch/synthflesh
name = "syntheflesh patch"
desc = "Helps with burn injuries."
New()
..()
reagents.add_reagent("synthflesh", 20)
-/obj/item/weapon/reagent_containers/pill/patch/nicotine
+/obj/item/weapon/reagent_containers/food/pill/patch/nicotine
name = "nicotine patch"
desc = "Helps temporarily curb the cravings of nicotine dependency."
New()
diff --git a/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm b/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm
index 6c9e58d483e..6b289d45b9d 100644
--- a/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm
+++ b/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm
@@ -65,7 +65,7 @@
if(ishuman(M))
var/mob/living/carbon/human/H = M
if (H.get_int_organ(/obj/item/organ/internal/liver))
- var/obj/item/organ/internal/liver/L = /obj/item/organ/internal/liver
+ var/obj/item/organ/internal/liver/L = H.get_int_organ(/obj/item/organ/internal/liver)
L.take_damage(0.1, 1)
H.adjustToxLoss(0.1)
..()
diff --git a/code/modules/reagents/reagent_containers/food.dm b/code/modules/reagents/reagent_containers/food.dm
index 07f98a014e6..8caaa5ff653 100644
--- a/code/modules/reagents/reagent_containers/food.dm
+++ b/code/modules/reagents/reagent_containers/food.dm
@@ -5,6 +5,11 @@
possible_transfer_amounts = null
volume = 50 //Sets the default container amount for all food items.
var/filling_color = "#FFFFFF" //Used by sandwiches.
+ var/bitesize = 1
+ var/consume_sound = 'sound/items/eatfood.ogg'
+ var/apply_type = INGEST
+ var/apply_method = "swallow"
+ var/transfer_efficiency = 1.0
/obj/item/weapon/reagent_containers/food/New()
..()
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 589ae649256..e4860b880d0 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -7,164 +7,116 @@
icon = 'icons/obj/drinks.dmi'
icon_state = null
flags = OPENCONTAINER
- var/gulp_size = 5 //This is now officially broken ... need to think of a nice way to fix it.
+ consume_sound = 'sound/items/drink.ogg'
possible_transfer_amounts = list(5,10,25)
volume = 50
- on_reagent_change()
- if (gulp_size < 5) gulp_size = 5
- else gulp_size = max(round(reagents.total_volume / 5), 5)
+/obj/item/weapon/reagent_containers/food/drinks/New()
+ ..()
+ bitesize = amount_per_transfer_from_this
+ if(bitesize < 5)
+ bitesize = 5
- attack_self(mob/user as mob)
- return
+/obj/item/weapon/reagent_containers/food/drinks/attack_self(mob/user as mob)
+ return
- attack(mob/M as mob, mob/user as mob, def_zone)
- var/datum/reagents/R = src.reagents
- var/fillevel = gulp_size
-
- if(!R.total_volume || !R)
- user << " None of [src] left, oh no!"
- return 0
-
- if(M == user)
-
- if(istype(M,/mob/living/carbon/human))
- var/mob/living/carbon/human/H = M
- if(!H.check_has_mouth())
- if(!H.get_species() == "Machine")
- user << "Where do you intend to put \the [src]? You don't have a mouth!"
- return
- else
- M << " You pour a bit of liquid from [src] into your connection port."
- else
- M << " You swallow a gulp of [src]."
- if(reagents.total_volume)
- reagents.reaction(M, INGEST)
- spawn(0)
- reagents.trans_to(M, gulp_size)
-
- playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
- return 1
- else if( istype(M, /mob/living/carbon/human) )
-
- var/mob/living/carbon/human/H = M
- if(!H.check_has_mouth() && !H.get_species() == "Machine")
- user << "Where do you intend to put \the [src]? \The [H] doesn't have a mouth!"
- return
-
- for(var/mob/O in viewers(world.view, user))
- O.show_message(" [user] attempts to feed [M] [src].", 1)
- if(!do_mob(user, M)) return
- for(var/mob/O in viewers(world.view, user))
- O.show_message(" [user] feeds [M] [src].", 1)
-
- M.attack_log += text("\[[time_stamp()]\] Has been fed [src.name] by [key_name(user)] Reagents: [reagentlist(src)]")
- user.attack_log += text("\[[time_stamp()]\] Fed [M.name] by [key_name(M)] Reagents: [reagentlist(src)]")
- log_attack("[key_name_admin(user)] fed [key_name_admin(M)] with [src.name] Reagents: [reagentlist(src)] (INTENT: [uppertext(user.a_intent)])")
- if(!iscarbon(user))
- M.LAssailant = null
- else
- M.LAssailant = user
-
- if(reagents.total_volume)
- reagents.reaction(M, INGEST)
- spawn(0)
- reagents.trans_to(M, gulp_size)
+/obj/item/weapon/reagent_containers/food/drinks/attack(mob/M as mob, mob/user as mob, def_zone)
+ if(!reagents || !reagents.total_volume)
+ user << " None of [src] left, oh no!"
+ return 0
+ if(istype(M, /mob/living/carbon))
+ var/mob/living/carbon/C = M
+ if(C.eat(src, user))
if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
var/mob/living/silicon/robot/borg = user
borg.cell.use(30)
- var/refill = R.get_master_reagent_id()
+ var/refill = reagents.get_master_reagent_id()
if(refill in drinks) // Only synthesize drinks
spawn(600)
- R.add_reagent(refill, fillevel)
-
- playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
+ reagents.add_reagent(refill, bitesize)
return 1
+ return 0
- return 0
+/obj/item/weapon/reagent_containers/food/drinks/afterattack(obj/target, mob/user, proximity)
+ if(!proximity) return
+ // Moved from the can code; not necessary since closed cans aren't open containers now, but, eh.
+ if (istype(target, /obj/item/weapon/reagent_containers/food/drinks/cans))
+ var/obj/item/weapon/reagent_containers/food/drinks/cans/cantarget = target
+ if(cantarget.canopened == 0)
+ user << "You need to open the drink you want to pour into!"
+ return
- afterattack(obj/target, mob/user, proximity)
- if(!proximity) return
+ if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
- // Moved from the can code; not necessary since closed cans aren't open containers now, but, eh.
- if (istype(target, /obj/item/weapon/reagent_containers/food/drinks/cans))
- var/obj/item/weapon/reagent_containers/food/drinks/cans/cantarget = target
- if(cantarget.canopened == 0)
- user << "You need to open the drink you want to pour into!"
- return
+ if(!target.reagents.total_volume)
+ user << " [target] is empty."
+ return
- if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
+ if(reagents.total_volume >= reagents.maximum_volume)
+ user << " [src] is full."
+ return
- if(!target.reagents.total_volume)
- user << " [target] is empty."
- return
+ var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
+ user << " You fill [src] with [trans] units of the contents of [target]."
- if(reagents.total_volume >= reagents.maximum_volume)
- user << " [src] is full."
- return
+ else if(target.is_open_container()) //Something like a glass. Player probably wants to transfer TO it.
+ if(!reagents.total_volume)
+ user << " [src] is empty."
+ return
- var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
- user << " You fill [src] with [trans] units of the contents of [target]."
-
- else if(target.is_open_container()) //Something like a glass. Player probably wants to transfer TO it.
- if(!reagents.total_volume)
- user << " [src] is empty."
- return
-
- if(target.reagents.total_volume >= target.reagents.maximum_volume)
- user << " [target] is full."
- return
+ if(target.reagents.total_volume >= target.reagents.maximum_volume)
+ user << " [target] is full."
+ return
- var/datum/reagent/refill
- var/datum/reagent/refillName
- if(isrobot(user))
- refill = reagents.get_master_reagent_id()
- refillName = reagents.get_master_reagent_name()
+ var/datum/reagent/refill
+ var/datum/reagent/refillName
+ if(isrobot(user))
+ refill = reagents.get_master_reagent_id()
+ refillName = reagents.get_master_reagent_name()
- var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
- user << " You transfer [trans] units of the solution to [target]."
+ var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
+ user << " You transfer [trans] units of the solution to [target]."
- if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
- if(refill in drinks) // Only synthesize drinks
- var/mob/living/silicon/robot/bro = user
- var/chargeAmount = max(30,4*trans)
- bro.cell.use(chargeAmount)
- user << "Now synthesizing [trans] units of [refillName]..."
+ if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
+ if(refill in drinks) // Only synthesize drinks
+ var/mob/living/silicon/robot/bro = user
+ var/chargeAmount = max(30,4*trans)
+ bro.cell.use(chargeAmount)
+ user << "Now synthesizing [trans] units of [refillName]..."
- spawn(300)
- reagents.add_reagent(refill, trans)
- user << "Cyborg [src] refilled."
+ spawn(300)
+ reagents.add_reagent(refill, trans)
+ user << "Cyborg [src] refilled."
+ return
+
+/obj/item/weapon/reagent_containers/food/drinks/attackby(var/obj/item/I, mob/user as mob, params)
+ if(istype(I, /obj/item/clothing/mask/cigarette)) //ciggies are weird
return
+ if(is_hot(I))
+ if(src.reagents)
+ src.reagents.chem_temp += 15
+ user << "You heat [src] with [I]."
+ src.reagents.handle_reactions()
- attackby(var/obj/item/I, mob/user as mob, params)
- if(istype(I, /obj/item/clothing/mask/cigarette)) //ciggies are weird
- return
- if(is_hot(I))
- if(src.reagents)
- src.reagents.chem_temp += 15
- user << "You heat [src] with [I]."
- src.reagents.handle_reactions()
-
- examine(mob/user)
- if(!..(user, 1))
- return
- if(!reagents || reagents.total_volume==0)
- user << " \The [src] is empty!"
- else if (reagents.total_volume<=src.volume/4)
- user << " \The [src] is almost empty!"
- else if (reagents.total_volume<=src.volume*0.66)
- user << " \The [src] is half full!" // We're all optimistic, right?!
- else if (reagents.total_volume<=src.volume*0.90)
- user << " \The [src] is almost full!"
- else
- user << " \The [src] is full!"
-
+/obj/item/weapon/reagent_containers/food/drinks/examine(mob/user)
+ if(!..(user, 1))
+ return
+ if(!reagents || reagents.total_volume==0)
+ user << " \The [src] is empty!"
+ else if (reagents.total_volume<=src.volume/4)
+ user << " \The [src] is almost empty!"
+ else if (reagents.total_volume<=src.volume*0.66)
+ user << " \The [src] is half full!" // We're all optimistic, right?!
+ else if (reagents.total_volume<=src.volume*0.90)
+ user << " \The [src] is almost full!"
+ else
+ user << " \The [src] is full!"
////////////////////////////////////////////////////////////////////////////////
/// Drinks. END
diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index 89d4817328f..eee8c78f9b0 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -4,7 +4,7 @@
desc = "yummy"
icon = 'icons/obj/food/food.dmi'
icon_state = null
- var/bitesize = 1
+ bitesize = 1
var/bitecount = 0
var/trash = null
var/slice_path
@@ -18,19 +18,20 @@
//Placeholder for effect that trigger on eating that aren't tied to reagents.
/obj/item/weapon/reagent_containers/food/snacks/proc/On_Consume(var/mob/M)
if(!usr) return
- if(!reagents.total_volume)
- if(M == usr)
- usr << "You finish eating \the [src]."
- usr.visible_message("[usr] finishes eating \the [src].")
- usr.unEquip(src) //so icons update :[
+ spawn(0)
+ if(!reagents.total_volume)
+ if(M == usr)
+ usr << "You finish eating \the [src]."
+ usr.visible_message("[usr] finishes eating \the [src].")
+ usr.unEquip(src) //so icons update :[
- if(trash)
- if(ispath(trash,/obj/item))
- var/obj/item/TrashItem = new trash(usr)
- usr.put_in_hands(TrashItem)
- else if(istype(trash,/obj/item))
- usr.put_in_hands(trash)
- qdel(src)
+ if(trash)
+ if(ispath(trash,/obj/item))
+ var/obj/item/TrashItem = new trash(usr)
+ usr.put_in_hands(TrashItem)
+ else if(istype(trash,/obj/item))
+ usr.put_in_hands(trash)
+ qdel(src)
return
/obj/item/weapon/reagent_containers/food/snacks/attack_self(mob/user as mob)
@@ -38,83 +39,17 @@
/obj/item/weapon/reagent_containers/food/snacks/attack(mob/M as mob, mob/user as mob, def_zone)
if(reagents && !reagents.total_volume) //Shouldn't be needed but it checks to see if it has anything left in it.
- user << "\red None of [src] left, oh no!"
+ user << "None of [src] left, oh no!"
M.unEquip(src) //so icons update :[
qdel(src)
return 0
if(istype(M, /mob/living/carbon))
- var/fullness = M.nutrition + (M.reagents.get_reagent_amount("nutriment") * 20) + (M.reagents.get_reagent_amount("protein") * 25) + (M.reagents.get_reagent_amount("plantmatter") * 25)
- if(M == user) //If you're eating it yourself
- if(istype(M,/mob/living/carbon/human))
- var/mob/living/carbon/human/H = M
- if(!H.check_has_mouth())
- user << "Where do you intend to put \the [src]? You don't have a mouth!"
- return
- if (fullness <= 50)
- M << "\red You hungrily chew out a piece of [src] and gobble it!"
- if (fullness > 50 && fullness <= 150)
- M << "\blue You hungrily begin to eat [src]."
- if (fullness > 150 && fullness <= 350)
- M << "\blue You take a bite of [src]."
- if (fullness > 350 && fullness <= 550)
- M << "\blue You unwillingly chew a bit of [src]."
- if (fullness > (550 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
- M << "\red You cannot force any more of [src] to go down your throat."
- return 0
- else
- if(istype(M,/mob/living/carbon/human))
- var/mob/living/carbon/human/H = M
- if(!H.check_has_mouth())
- user << "Where do you intend to put \the [src]? \The [H] doesn't have a mouth!"
- return
-
- if(!istype(M, /mob/living/carbon/slime)) //If you're feeding it to someone else.
-
- if (fullness <= (550 * (1 + M.overeatduration / 1000)))
- for(var/mob/O in viewers(world.view, user))
- O.show_message("\red [user] attempts to feed [M] [src].", 1)
- else
- for(var/mob/O in viewers(world.view, user))
- O.show_message("\red [user] cannot force anymore of [src] down [M]'s throat.", 1)
- return 0
-
- if(!do_mob(user, M)) return
-
- M.attack_log += text("\[[time_stamp()]\] Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: [reagentlist(src)]")
- user.attack_log += text("\[[time_stamp()]\] Fed [src.name] by [M.name] ([M.ckey]) Reagents: [reagentlist(src)]")
- log_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] Reagents: [reagentlist(src)] (INTENT: [uppertext(user.a_intent)])")
- if(!iscarbon(user))
- M.LAssailant = null
- else
- M.LAssailant = user
-
- for(var/mob/O in viewers(world.view, user))
- O.show_message("\red [user] feeds [M] [src].", 1)
-
- else
- user << "This creature does not seem to have a mouth!"
- return
-
- if(reagents) //Handle ingestion of the reagent.
- playsound(M.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
- if(reagents.total_volume)
- reagents.reaction(M, INGEST)
- spawn(0)
- if(reagents.total_volume > bitesize)
- /*
- * I totally cannot understand what this code supposed to do.
- * Right now every snack consumes in 2 bites, my popcorn does not work right, so I simplify it. -- rastaf0
- var/temp_bitesize = max(reagents.total_volume /2, bitesize)
- reagents.trans_to(M, temp_bitesize)
- */
- reagents.trans_to(M, bitesize)
- else
- reagents.trans_to(M, reagents.total_volume)
- bitecount++
- On_Consume(M)
+ var/mob/living/carbon/C = M
+ if(C.eat(src, user))
+ bitecount++
+ On_Consume(C)
return 1
-
return 0
/obj/item/weapon/reagent_containers/food/snacks/afterattack(obj/target, mob/user, proximity)
@@ -145,30 +80,30 @@
var/obj/item/weapon/kitchen/utensil/U = W
- if(!U.reagents)
- U.create_reagents(5)
-
- if (U.reagents.total_volume > 0)
- user << "\red You already have something on your [U]."
+ if(U.contents.len >= U.max_contents)
+ user << "You cannot fit anything else on your [U]."
return
user.visible_message( \
"[user] scoops up some [src] with \the [U]!", \
- "\blue You scoop up some [src] with \the [U]!" \
+ "You scoop up some [src] with \the [U]!" \
)
src.bitecount++
U.overlays.Cut()
- U.loaded = "[src]"
var/image/I = new(U.icon, "loadedfood")
I.color = src.filling_color
U.overlays += I
- reagents.trans_to(U,min(reagents.total_volume,5))
-
- if (reagents.total_volume <= 0)
+ var/obj/item/weapon/reagent_containers/food/snacks/collected = new type
+ collected.loc = U
+ collected.reagents.remove_any(collected.reagents.total_volume)
+ if(reagents.total_volume > bitesize)
+ reagents.trans_to(collected, bitesize)
+ else
+ reagents.trans_to(collected, reagents.total_volume)
qdel(src)
- return
+ return 1
if((slices_num <= 0 || !slices_num) || !slice_path)
return 0
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index 1cb4ff50a39..6dac43db7d1 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -1,7 +1,7 @@
////////////////////////////////////////////////////////////////////////////////
/// Pills.
////////////////////////////////////////////////////////////////////////////////
-/obj/item/weapon/reagent_containers/pill
+/obj/item/weapon/reagent_containers/food/pill
name = "pill"
desc = "a pill."
icon = 'icons/obj/chemical.dmi'
@@ -9,107 +9,59 @@
item_state = "pill"
possible_transfer_amounts = null
volume = 50
- var/apply_type = INGEST
- var/apply_method = "swallow"
- var/transfer_efficiency = 1.0
+ consume_sound = null
New()
..()
if(!icon_state)
icon_state = "pill[rand(1,20)]"
- attack_self(mob/user as mob)
+/obj/item/weapon/reagent_containers/food/pill/attack_self(mob/user as mob)
return
- attack(mob/M as mob, mob/user as mob, def_zone)
- if(M == user)
- if(istype(M,/mob/living/carbon/human))
- var/mob/living/carbon/human/H = M
- if(!H.check_has_mouth())
- user << "Where do you intend to put \the [src]? You don't have a mouth!"
- return
-
- M << "You [apply_method] [src]."
- M.unEquip(src) //icon update
- if(reagents.total_volume)
- reagents.reaction(M, apply_type)
- spawn(0)
- reagents.trans_to(M, reagents.total_volume*transfer_efficiency)
- qdel(src)
- else
- qdel(src)
- return 1
-
- else if(istype(M, /mob/living/carbon/human) )
-
- var/mob/living/carbon/human/H = M
- if(!H.check_has_mouth())
- user << "Where do you intend to put \the [src]? \The [H] doesn't have a mouth!"
- return
-
- for(var/mob/O in viewers(world.view, user))
- O.show_message("[user] attempts to force [M] to [apply_method] [src].", 1)
-
- if(!do_mob(user, M)) return
-
- user.unEquip(src) //icon update
- for(var/mob/O in viewers(world.view, user))
- O.show_message("[user] forces [M] to [apply_method] [src].", 1)
-
- M.attack_log += text("\[[time_stamp()]\] Has been fed [src.name] by [key_name(user)] Reagents: [reagentlist(src)]")
- user.attack_log += text("\[[time_stamp()]\] Fed [src.name] to [key_name(M)]) Reagents: [reagentlist(src)]")
- if(M.ckey)
- msg_admin_attack("[key_name_admin(user)] fed [key_name_admin(M)] with [src.name] Reagents: [reagentlist(src)] (INTENT: [uppertext(user.a_intent)])")
- if(!iscarbon(user))
- M.LAssailant = null
- else
- M.LAssailant = user
-
- if(reagents.total_volume)
- reagents.reaction(M, apply_type)
- spawn(0)
- reagents.trans_to(M, reagents.total_volume*transfer_efficiency)
- qdel(src)
- else
- qdel(src)
-
- return 1
-
+/obj/item/weapon/reagent_containers/food/pill/attack(var/mob/living/carbon/M, mob/user as mob, def_zone)
+ if(!istype(M))
return 0
+ bitesize = reagents.total_volume
+ if(M.eat(src, user))
+ spawn(0)
+ qdel(src)
+ return 1
+ return 0
- afterattack(obj/target, mob/user, proximity)
- if(!proximity) return
+/obj/item/weapon/reagent_containers/food/pill/afterattack(obj/target, mob/user, proximity)
+ if(!proximity) return
- if(target.is_open_container() != 0 && target.reagents)
- if(!target.reagents.total_volume)
- user << "[target] is empty. Cant dissolve [src]."
- return
+ if(target.is_open_container() != 0 && target.reagents)
+ if(!target.reagents.total_volume)
+ user << "[target] is empty. Cant dissolve [src]."
+ return
- // /vg/: Logging transfers of bad things
- if(target.reagents_to_log.len)
- var/list/badshit=list()
- for(var/bad_reagent in target.reagents_to_log)
- if(reagents.has_reagent(bad_reagent))
- badshit += reagents_to_log[bad_reagent]
- if(badshit.len)
- var/hl="\red ([english_list(badshit)]) \black"
- message_admins("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl] (JMP)")
- log_game("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
+ // /vg/: Logging transfers of bad things
+ if(target.reagents_to_log.len)
+ var/list/badshit=list()
+ for(var/bad_reagent in target.reagents_to_log)
+ if(reagents.has_reagent(bad_reagent))
+ badshit += reagents_to_log[bad_reagent]
+ if(badshit.len)
+ var/hl="\red ([english_list(badshit)]) \black"
+ message_admins("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl] (JMP)")
+ log_game("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
- user << "You dissolve [src] in [target]."
- reagents.trans_to(target, reagents.total_volume)
- for(var/mob/O in viewers(2, user))
- O.show_message("[user] puts something in [target].", 1)
- spawn(5)
- qdel(src)
+ user << "You dissolve [src] in [target]."
+ reagents.trans_to(target, reagents.total_volume)
+ for(var/mob/O in viewers(2, user))
+ O.show_message("[user] puts something in [target].", 1)
+ spawn(5)
+ qdel(src)
- return
+ return
////////////////////////////////////////////////////////////////////////////////
/// Pills. END
////////////////////////////////////////////////////////////////////////////////
//Pills
-/obj/item/weapon/reagent_containers/pill/tox
+/obj/item/weapon/reagent_containers/food/pill/tox
name = "Toxins pill"
desc = "Highly toxic."
icon_state = "pill5"
@@ -117,7 +69,7 @@
..()
reagents.add_reagent("toxin", 50)
-/obj/item/weapon/reagent_containers/pill/initropidril
+/obj/item/weapon/reagent_containers/food/pill/initropidril
name = "initropidril pill"
desc = "Don't swallow this."
icon_state = "pill5"
@@ -125,7 +77,7 @@
..()
reagents.add_reagent("initropidril", 50)
-/obj/item/weapon/reagent_containers/pill/adminordrazine
+/obj/item/weapon/reagent_containers/food/pill/adminordrazine
name = "Adminordrazine pill"
desc = "It's magic. We don't have to explain it."
icon_state = "pill16"
@@ -133,7 +85,7 @@
..()
reagents.add_reagent("adminordrazine", 50)
-/obj/item/weapon/reagent_containers/pill/methamphetamine
+/obj/item/weapon/reagent_containers/food/pill/methamphetamine
name = "Methamphetamine pill"
desc = "Helps improve the ability to concentrate."
icon_state = "pill8"
@@ -141,7 +93,7 @@
..()
reagents.add_reagent("methamphetamine", 5)
-/obj/item/weapon/reagent_containers/pill/haloperidol
+/obj/item/weapon/reagent_containers/food/pill/haloperidol
name = "Haloperidol pill"
desc = "Haloperidol is an anti-psychotic use to treat psychiatric problems."
icon_state = "pill8"
@@ -149,7 +101,7 @@
..()
reagents.add_reagent("haloperidol", 15)
-/obj/item/weapon/reagent_containers/pill/paroxetine
+/obj/item/weapon/reagent_containers/food/pill/paroxetine
name = "Paroxetine pill"
desc = "Heavy anti-depressant."
icon_state = "pill8"
@@ -158,7 +110,7 @@
reagents.add_reagent("paroxetine", 15)
-/obj/item/weapon/reagent_containers/pill/happy
+/obj/item/weapon/reagent_containers/food/pill/happy
name = "Happy pill"
desc = "Happy happy joy joy!"
icon_state = "pill18"
@@ -167,7 +119,7 @@
reagents.add_reagent("space_drugs", 15)
reagents.add_reagent("sugar", 15)
-/obj/item/weapon/reagent_containers/pill/zoom
+/obj/item/weapon/reagent_containers/food/pill/zoom
name = "Zoom pill"
desc = "Zoooom!"
icon_state = "pill18"
@@ -176,7 +128,7 @@
reagents.add_reagent("synaptizine", 5)
reagents.add_reagent("methamphetamine", 5)
-/obj/item/weapon/reagent_containers/pill/charcoal
+/obj/item/weapon/reagent_containers/food/pill/charcoal
name = "Charcoal pill"
desc = "Neutralizes many common toxins."
icon_state = "pill17"
@@ -184,7 +136,7 @@
..()
reagents.add_reagent("charcoal", 25)
-/obj/item/weapon/reagent_containers/pill/salicylic
+/obj/item/weapon/reagent_containers/food/pill/salicylic
name = "Salicylic Acid pill"
desc = "Commonly used to treat moderate pain and fevers."
icon_state = "pill4"
@@ -192,7 +144,7 @@
..()
reagents.add_reagent("sal_acid", 20)
-/obj/item/weapon/reagent_containers/pill/salbutamol
+/obj/item/weapon/reagent_containers/food/pill/salbutamol
name = "Salbutamol pill"
desc = "Used to treat respiratory distress."
icon_state = "pill8"