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"