From 5cb4ae98794266cbcfd74a97f8ff07a498ec0c44 Mon Sep 17 00:00:00 2001 From: Yoshax Date: Mon, 16 May 2016 20:06:10 +0100 Subject: [PATCH 1/3] Adds shot glasses Cleans up a list in the booze vendor Removes tea from contraband and puts into the normal product list in the booze vendor Adds the shot glasses to the autolathe and makes glasses there no longer children of bucket recipes --- code/datums/supplypacks.dm | 3 +- code/game/machinery/autolathe_datums.dm | 7 ++- code/game/machinery/vending.dm | 50 ++++++++++++------ .../food/drinks/drinkingglass.dm | 25 +++++++++ icons/obj/drinks.dmi | Bin 73344 -> 73619 bytes icons/obj/reagentfillings.dmi | Bin 1865 -> 2032 bytes 6 files changed, 66 insertions(+), 19 deletions(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 601533acc3..1ff6815be4 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -132,7 +132,8 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/weapon/storage/fancy/cigarettes/dromedaryco, /obj/item/weapon/lipstick/random, /obj/item/weapon/reagent_containers/food/drinks/bottle/small/ale = 2, - /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer = 4 + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer = 4, + /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass = 4 ) cost = 20 containertype = /obj/structure/closet/crate diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm index 4736096c1c..bedf855ec8 100644 --- a/code/game/machinery/autolathe_datums.dm +++ b/code/game/machinery/autolathe_datums.dm @@ -36,11 +36,16 @@ path = /obj/item/weapon/reagent_containers/glass/bucket category = "General" -/datum/autolathe/recipe/bucket/drinkingglass +/datum/autolathe/recipe/drinkingglass name = "drinking glass" path = /obj/item/weapon/reagent_containers/food/drinks/drinkingglass category = "General" +/datum/autolathe/recipe/shotglass/ + name = "shot glass" + path = /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass + category = "General" + /datum/autolathe/recipe/flashlight name = "flashlight" path = /obj/item/device/flashlight diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index fd0996e2bc..94bb1fd84e 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -695,24 +695,40 @@ /obj/machinery/vending/boozeomat name = "Booze-O-Mat" desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one." - icon_state = "boozeomat" //////////////18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles + icon_state = "boozeomat" icon_deny = "boozeomat-deny" - products = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/gin = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/wine = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 5,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer = 6, - /obj/item/weapon/reagent_containers/food/drinks/bottle/small/ale = 6,/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice = 4, - /obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice = 4,/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice = 4, - /obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 4,/obj/item/weapon/reagent_containers/food/drinks/cans/tonic = 8, - /obj/item/weapon/reagent_containers/food/drinks/bottle/cola = 5, /obj/item/weapon/reagent_containers/food/drinks/bottle/space_up = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/space_mountain_wind = 5, /obj/item/weapon/reagent_containers/food/drinks/cans/sodawater = 15, - /obj/item/weapon/reagent_containers/food/drinks/flask/barflask = 2, /obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask = 2, - /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 30,/obj/item/weapon/reagent_containers/food/drinks/ice = 9, - /obj/item/weapon/reagent_containers/food/drinks/bottle/melonliquor = 2,/obj/item/weapon/reagent_containers/food/drinks/bottle/bluecuracao = 2, - /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe = 2,/obj/item/weapon/reagent_containers/food/drinks/bottle/grenadine = 5, - /obj/item/weapon/reagent_containers/food/drinks/bottle/specialwhiskey = 4) - contraband = list(/obj/item/weapon/reagent_containers/food/drinks/tea = 10) + products = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/gin = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/rum = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/wine = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/cognac = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer = 15, + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/ale = 15, + /obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 5, + /obj/item/weapon/reagent_containers/food/drinks/cans/tonic = 15, + /obj/item/weapon/reagent_containers/food/drinks/bottle/cola = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/space_up = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/space_mountain_wind = 5, + /obj/item/weapon/reagent_containers/food/drinks/cans/sodawater = 15, + /obj/item/weapon/reagent_containers/food/drinks/flask/barflask = 5, + /obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask = 5, + /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 30, + /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass = 30, + /obj/item/weapon/reagent_containers/food/drinks/ice = 10, + /obj/item/weapon/reagent_containers/food/drinks/bottle/melonliquor = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/bluecuracao = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/grenadine = 5, + /obj/item/weapon/reagent_containers/food/drinks/bottle/specialwhiskey = 5, + /obj/item/weapon/reagent_containers/food/drinks/tea = 15) + contraband = list() vend_delay = 15 idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?" diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm index 9141efbc1e..cdf495405f 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm @@ -108,3 +108,28 @@ ..() reagents.add_reagent("cola", 50) on_reagent_change() + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass + name = "shot glass" + desc = "No glasses were shot in the making of this glass." + icon_state = "shotglass" + amount_per_transfer_from_this = 10 + volume = 10 + matter = list("glass" = 175) + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/on_reagent_change() + overlays.Cut() + + if(reagents.total_volume) + var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]1") + + switch(reagents.total_volume) + if(0 to 3) filling.icon_state = "[icon_state]1" + if(4 to 7) filling.icon_state = "[icon_state]5" + if(8 to INFINITY) filling.icon_state = "[icon_state]12" + + filling.color += reagents.get_color() + overlays += filling + name = "shot glass of " + reagents.get_master_reagent_name() //No matter what, the glass will tell you the reagent's name. Might be too abusable in the future. + else + name = "shot glass" diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index a85c640d9904563397b12a37efc3131bdb8fb2f3..24dbb10edc145e1cbeff8ba929d7d01ad095acf3 100644 GIT binary patch literal 73619 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 From c6c372056a2efa9dfb8bd57d5dd8dfe307652c0e Mon Sep 17 00:00:00 2001 From: Yoshax Date: Mon, 16 May 2016 21:07:20 +0100 Subject: [PATCH 2/3] Gives reagents/reagent_containers the absolute pathing treatment --- .../reagents/reagent_containers/blood_pack.dm | 29 +- .../reagents/reagent_containers/dropper.dm | 138 +- .../reagents/reagent_containers/food/cans.dm | 80 +- .../reagent_containers/food/condiment.dm | 224 +- .../reagent_containers/food/drinks.dm | 165 +- .../reagent_containers/food/drinks/bottle.dm | 198 +- .../reagent_containers/food/snacks.dm | 1891 ++++++++--------- .../reagent_containers/food/snacks/meat.dm | 9 +- .../reagents/reagent_containers/glass.dm | 226 +- .../reagent_containers/glass/bottle.dm | 76 +- .../reagent_containers/glass/bottle/robot.dm | 16 +- .../reagents/reagent_containers/pill.dm | 270 ++- .../reagents/reagent_containers/syringes.dm | 529 ++--- 13 files changed, 1935 insertions(+), 1916 deletions(-) diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 4f4981b4d8..558e860913 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -2,7 +2,8 @@ name = "blood packs bags" desc = "This box contains blood packs." icon_state = "sterile" - New() + +/obj/item/weapon/storage/box/bloodpacks/New() ..() new /obj/item/weapon/reagent_containers/blood/empty(src) new /obj/item/weapon/reagent_containers/blood/empty(src) @@ -21,22 +22,22 @@ var/blood_type = null - New() - ..() - if(blood_type != null) - name = "BloodPack [blood_type]" - reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null)) - update_icon() - - on_reagent_change() +/obj/item/weapon/reagent_containers/blood/New() + ..() + if(blood_type != null) + name = "BloodPack [blood_type]" + reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null)) update_icon() +/obj/item/weapon/reagent_containers/blood/on_reagent_change() update_icon() - var/percent = round((reagents.total_volume / volume) * 100) - switch(percent) - if(0 to 9) icon_state = "empty" - if(10 to 50) icon_state = "half" - if(51 to INFINITY) icon_state = "full" + +/obj/item/weapon/reagent_containers/blood/update_icon() + var/percent = round((reagents.total_volume / volume) * 100) + switch(percent) + if(0 to 9) icon_state = "empty" + if(10 to 50) icon_state = "half" + if(51 to INFINITY) icon_state = "full" /obj/item/weapon/reagent_containers/blood/APlus blood_type = "A+" diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index e605683de7..36a8b40fef 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -12,88 +12,88 @@ slot_flags = SLOT_EARS volume = 5 - afterattack(var/obj/target, var/mob/user, var/flag) - if(!target.reagents || !flag) return +/obj/item/weapon/reagent_containers/dropper/afterattack(var/obj/target, var/mob/user, var/flag) + if(!target.reagents || !flag) return - if(reagents.total_volume) + if(reagents.total_volume) - if(!target.reagents.get_free_space()) - user << "[target] is full." + if(!target.reagents.get_free_space()) + user << "[target] is full." + return + + if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/clothing/mask/smokable/cigarette)) //You can inject humans and food but you cant remove the shit. + user << "You cannot directly fill this object." + return + + var/trans = 0 + + if(ismob(target)) + + var/time = 20 //2/3rds the time of a syringe + user.visible_message("[user] is trying to squirt something into [target]'s eyes!") + + if(!do_mob(user, target, time)) return - if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/clothing/mask/smokable/cigarette)) //You can inject humans and food but you cant remove the shit. - user << "You cannot directly fill this object." - return + if(istype(target, /mob/living/carbon/human)) + var/mob/living/carbon/human/victim = target - var/trans = 0 + var/obj/item/safe_thing = null + if(victim.wear_mask) + if (victim.wear_mask.body_parts_covered & EYES) + safe_thing = victim.wear_mask + if(victim.head) + if (victim.head.body_parts_covered & EYES) + safe_thing = victim.head + if(victim.glasses) + if (!safe_thing) + safe_thing = victim.glasses - if(ismob(target)) - - var/time = 20 //2/3rds the time of a syringe - user.visible_message("[user] is trying to squirt something into [target]'s eyes!") - - if(!do_mob(user, target, time)) + if(safe_thing) + trans = reagents.trans_to_obj(safe_thing, amount_per_transfer_from_this) + user.visible_message("[user] tries to squirt something into [target]'s eyes, but fails!", "You transfer [trans] units of the solution.") return - if(istype(target, /mob/living/carbon/human)) - var/mob/living/carbon/human/victim = target + var/mob/living/M = target + var/contained = reagentlist() + M.attack_log += text("\[[time_stamp()]\] Has been squirted with [name] by [user.name] ([user.ckey]). Reagents: [contained]") + user.attack_log += text("\[[time_stamp()]\] Used the [name] to squirt [M.name] ([M.key]). Reagents: [contained]") + msg_admin_attack("[user.name] ([user.ckey]) squirted [M.name] ([M.key]) with [name]. Reagents: [contained] (INTENT: [uppertext(user.a_intent)]) (JMP)") - var/obj/item/safe_thing = null - if(victim.wear_mask) - if (victim.wear_mask.body_parts_covered & EYES) - safe_thing = victim.wear_mask - if(victim.head) - if (victim.head.body_parts_covered & EYES) - safe_thing = victim.head - if(victim.glasses) - if (!safe_thing) - safe_thing = victim.glasses - - if(safe_thing) - trans = reagents.trans_to_obj(safe_thing, amount_per_transfer_from_this) - user.visible_message("[user] tries to squirt something into [target]'s eyes, but fails!", "You transfer [trans] units of the solution.") - return - - var/mob/living/M = target - var/contained = reagentlist() - M.attack_log += text("\[[time_stamp()]\] Has been squirted with [name] by [user.name] ([user.ckey]). Reagents: [contained]") - user.attack_log += text("\[[time_stamp()]\] Used the [name] to squirt [M.name] ([M.key]). Reagents: [contained]") - msg_admin_attack("[user.name] ([user.ckey]) squirted [M.name] ([M.key]) with [name]. Reagents: [contained] (INTENT: [uppertext(user.a_intent)]) (JMP)") - - trans = reagents.trans_to_mob(target, reagents.total_volume, CHEM_INGEST) - user.visible_message("[user] squirts something into [target]'s eyes!", "You transfer [trans] units of the solution.") + trans = reagents.trans_to_mob(target, reagents.total_volume, CHEM_INGEST) + user.visible_message("[user] squirts something into [target]'s eyes!", "You transfer [trans] units of the solution.") - return + return - else - trans = reagents.trans_to(target, amount_per_transfer_from_this) //sprinkling reagents on generic non-mobs - user << "You transfer [trans] units of the solution." - - else // Taking from something - - if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers)) - user << "You cannot directly remove reagents from [target]." - return - - if(!target.reagents || !target.reagents.total_volume) - user << "[target] is empty." - return - - var/trans = target.reagents.trans_to_obj(src, amount_per_transfer_from_this) - - user << "You fill the dropper with [trans] units of the solution." - - return - - on_reagent_change() - update_icon() - - update_icon() - if(reagents.total_volume) - icon_state = "dropper1" else - icon_state = "dropper0" + trans = reagents.trans_to(target, amount_per_transfer_from_this) //sprinkling reagents on generic non-mobs + user << "You transfer [trans] units of the solution." + + else // Taking from something + + if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers)) + user << "You cannot directly remove reagents from [target]." + return + + if(!target.reagents || !target.reagents.total_volume) + user << "[target] is empty." + return + + var/trans = target.reagents.trans_to_obj(src, amount_per_transfer_from_this) + + user << "You fill the dropper with [trans] units of the solution." + + return + +/obj/item/weapon/reagent_containers/dropper/on_reagent_change() + update_icon() + +/obj/item/weapon/reagent_containers/dropper/update_icon() + if(reagents.total_volume) + icon_state = "dropper1" + else + icon_state = "dropper0" /obj/item/weapon/reagent_containers/dropper/industrial name = "Industrial Dropper" diff --git a/code/modules/reagents/reagent_containers/food/cans.dm b/code/modules/reagents/reagent_containers/food/cans.dm index 7d72b8bf51..4597c5bd71 100644 --- a/code/modules/reagents/reagent_containers/food/cans.dm +++ b/code/modules/reagents/reagent_containers/food/cans.dm @@ -10,43 +10,48 @@ desc = "Cola. in space." icon_state = "cola" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("cola", 30) + +/obj/item/weapon/reagent_containers/food/drinks/cans/cola/New() + ..() + reagents.add_reagent("cola", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle name = "bottled water" desc = "Introduced to the vending machines by Skrellian request, this water comes straight from the Martian poles." icon_state = "waterbottle" center_of_mass = list("x"=15, "y"=8) - New() - ..() - reagents.add_reagent("water", 30) + +/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle/New() + ..() + reagents.add_reagent("water", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind name = "\improper Space Mountain Wind" desc = "Blows right through you like a space wind." icon_state = "space_mountain_wind" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("spacemountainwind", 30) + +/obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind/New() + ..() + reagents.add_reagent("spacemountainwind", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/thirteenloko name = "\improper Thirteen Loko" desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkeness, or even death. Please Drink Responsibly." icon_state = "thirteen_loko" center_of_mass = list("x"=16, "y"=8) - New() - ..() - reagents.add_reagent("thirteenloko", 30) + +/obj/item/weapon/reagent_containers/food/drinks/cans/thirteenloko/New() + ..() + reagents.add_reagent("thirteenloko", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb name = "\improper Dr. Gibb" desc = "A delicious mixture of 42 different flavors." icon_state = "dr_gibb" center_of_mass = list("x"=16, "y"=10) - New() + +/obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb/New() ..() reagents.add_reagent("dr_gibb", 30) @@ -55,60 +60,67 @@ desc = "The taste of a star in liquid form. And, a bit of tuna...?" icon_state = "starkist" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("brownstar", 30) + +/obj/item/weapon/reagent_containers/food/drinks/cans/starkist/New() + ..() + reagents.add_reagent("brownstar", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/space_up name = "\improper Space-Up" desc = "Tastes like a hull breach in your mouth." icon_state = "space-up" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("space_up", 30) + +/obj/item/weapon/reagent_containers/food/drinks/cans/space_up/New() + ..() + reagents.add_reagent("space_up", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/lemon_lime name = "\improper Lemon-Lime" desc = "You wanted ORANGE. It gave you Lemon Lime." icon_state = "lemon-lime" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("lemon_lime", 30) + +/obj/item/weapon/reagent_containers/food/drinks/cans/lemon_lime/New() + ..() + reagents.add_reagent("lemon_lime", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea name = "\improper Vrisk Serket Iced Tea" desc = "That sweet, refreshing southern earthy flavor. That's where it's from, right? South Earth?" icon_state = "ice_tea_can" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("icetea", 30) + +/obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea/New() + ..() + reagents.add_reagent("icetea", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice name = "\improper Grapel Juice" desc = "500 pages of rules of how to appropriately enter into a combat with this juice!" icon_state = "purple_can" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("grapejuice", 30) + +/obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice/New() + ..() + reagents.add_reagent("grapejuice", 30) /obj/item/weapon/reagent_containers/food/drinks/cans/tonic name = "\improper T-Borg's Tonic Water" desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away." icon_state = "tonic" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("tonic", 50) + +/obj/item/weapon/reagent_containers/food/drinks/cans/tonic/New() + ..() + reagents.add_reagent("tonic", 50) /obj/item/weapon/reagent_containers/food/drinks/cans/sodawater name = "soda water" desc = "A can of soda water. Still water's more refreshing cousin." icon_state = "sodawater" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("sodawater", 50) + +/obj/item/weapon/reagent_containers/food/drinks/cans/sodawater/New() + ..() + reagents.add_reagent("sodawater", 50) diff --git a/code/modules/reagents/reagent_containers/food/condiment.dm b/code/modules/reagents/reagent_containers/food/condiment.dm index d449d25195..ce26cdda50 100644 --- a/code/modules/reagents/reagent_containers/food/condiment.dm +++ b/code/modules/reagents/reagent_containers/food/condiment.dm @@ -15,147 +15,152 @@ center_of_mass = list("x"=16, "y"=6) volume = 50 - attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) +/obj/item/weapon/reagent_containers/food/condiment/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) + return + +/obj/item/weapon/reagent_containers/food/condiment/attack_self(var/mob/user as mob) + return + +/obj/item/weapon/reagent_containers/food/condiment/attack(var/mob/M as mob, var/mob/user as mob, var/def_zone) + if(standard_feed_mob(user, M)) return - attack_self(var/mob/user as mob) +/obj/item/weapon/reagent_containers/food/condiment/afterattack(var/obj/target, var/mob/user, var/flag) + if(standard_dispenser_refill(user, target)) + return + if(standard_pour_into(user, target)) return - attack(var/mob/M as mob, var/mob/user as mob, var/def_zone) - if(standard_feed_mob(user, M)) + if(istype(target, /obj/item/weapon/reagent_containers/food/snacks)) // These are not opencontainers but we can transfer to them + if(!reagents || !reagents.total_volume) + user << "There is no condiment left in \the [src]." return - afterattack(var/obj/target, var/mob/user, var/flag) - if(standard_dispenser_refill(user, target)) - return - if(standard_pour_into(user, target)) + if(!target.reagents.get_free_space()) + user << "You can't add more condiment to \the [target]." return - if(istype(target, /obj/item/weapon/reagent_containers/food/snacks)) // These are not opencontainers but we can transfer to them - if(!reagents || !reagents.total_volume) - user << "There is no condiment left in \the [src]." - return + var/trans = reagents.trans_to_obj(target, amount_per_transfer_from_this) + user << "You add [trans] units of the condiment to \the [target]." + else + ..() - if(!target.reagents.get_free_space()) - user << "You can't add more condiment to \the [target]." - return +/obj/item/weapon/reagent_containers/food/condiment/feed_sound(var/mob/user) + playsound(user.loc, 'sound/items/drink.ogg', rand(10, 50), 1) - var/trans = reagents.trans_to_obj(target, amount_per_transfer_from_this) - user << "You add [trans] units of the condiment to \the [target]." - else - ..() +/obj/item/weapon/reagent_containers/food/condiment/self_feed_message(var/mob/user) + user << "You swallow some of contents of \the [src]." - feed_sound(var/mob/user) - playsound(user.loc, 'sound/items/drink.ogg', rand(10, 50), 1) - - self_feed_message(var/mob/user) - user << "You swallow some of contents of \the [src]." - - on_reagent_change() - if(reagents.reagent_list.len > 0) - switch(reagents.get_master_reagent_id()) - if("ketchup") - name = "Ketchup" - desc = "You feel more American already." - icon_state = "ketchup" - center_of_mass = list("x"=16, "y"=6) - if("capsaicin") - name = "Hotsauce" - desc = "You can almost TASTE the stomach ulcers now!" - icon_state = "hotsauce" - center_of_mass = list("x"=16, "y"=6) - if("enzyme") - name = "Universal Enzyme" - desc = "Used in cooking various dishes." - icon_state = "enzyme" - center_of_mass = list("x"=16, "y"=6) - if("soysauce") - name = "Soy Sauce" - desc = "A salty soy-based flavoring." - icon_state = "soysauce" - center_of_mass = list("x"=16, "y"=6) - if("frostoil") - name = "Coldsauce" - desc = "Leaves the tongue numb in its passage." - icon_state = "coldsauce" - center_of_mass = list("x"=16, "y"=6) - if("sodiumchloride") - name = "Salt Shaker" - desc = "Salt. From space oceans, presumably." - icon_state = "saltshaker" - center_of_mass = list("x"=16, "y"=10) - if("blackpepper") - name = "Pepper Mill" - desc = "Often used to flavor food or make people sneeze." - icon_state = "peppermillsmall" - center_of_mass = list("x"=16, "y"=10) - if("cornoil") - name = "Corn Oil" - desc = "A delicious oil used in cooking. Made from corn." - icon_state = "oliveoil" - center_of_mass = list("x"=16, "y"=6) - if("sugar") - name = "Sugar" - desc = "Tastey space sugar!" - center_of_mass = list("x"=16, "y"=6) +/obj/item/weapon/reagent_containers/food/condiment/on_reagent_change() + if(reagents.reagent_list.len > 0) + switch(reagents.get_master_reagent_id()) + if("ketchup") + name = "Ketchup" + desc = "You feel more American already." + icon_state = "ketchup" + center_of_mass = list("x"=16, "y"=6) + if("capsaicin") + name = "Hotsauce" + desc = "You can almost TASTE the stomach ulcers now!" + icon_state = "hotsauce" + center_of_mass = list("x"=16, "y"=6) + if("enzyme") + name = "Universal Enzyme" + desc = "Used in cooking various dishes." + icon_state = "enzyme" + center_of_mass = list("x"=16, "y"=6) + if("soysauce") + name = "Soy Sauce" + desc = "A salty soy-based flavoring." + icon_state = "soysauce" + center_of_mass = list("x"=16, "y"=6) + if("frostoil") + name = "Coldsauce" + desc = "Leaves the tongue numb in its passage." + icon_state = "coldsauce" + center_of_mass = list("x"=16, "y"=6) + if("sodiumchloride") + name = "Salt Shaker" + desc = "Salt. From space oceans, presumably." + icon_state = "saltshaker" + center_of_mass = list("x"=16, "y"=10) + if("blackpepper") + name = "Pepper Mill" + desc = "Often used to flavor food or make people sneeze." + icon_state = "peppermillsmall" + center_of_mass = list("x"=16, "y"=10) + if("cornoil") + name = "Corn Oil" + desc = "A delicious oil used in cooking. Made from corn." + icon_state = "oliveoil" + center_of_mass = list("x"=16, "y"=6) + if("sugar") + name = "Sugar" + desc = "Tastey space sugar!" + center_of_mass = list("x"=16, "y"=6) + else + name = "Misc Condiment Bottle" + if (reagents.reagent_list.len==1) + desc = "Looks like it is [reagents.get_master_reagent_name()], but you are not sure." else - name = "Misc Condiment Bottle" - if (reagents.reagent_list.len==1) - desc = "Looks like it is [reagents.get_master_reagent_name()], but you are not sure." - else - desc = "A mixture of various condiments. [reagents.get_master_reagent_name()] is one of them." - icon_state = "mixedcondiments" - center_of_mass = list("x"=16, "y"=6) - else - icon_state = "emptycondiment" - name = "Condiment Bottle" - desc = "An empty condiment bottle." - center_of_mass = list("x"=16, "y"=6) - return + desc = "A mixture of various condiments. [reagents.get_master_reagent_name()] is one of them." + icon_state = "mixedcondiments" + center_of_mass = list("x"=16, "y"=6) + else + icon_state = "emptycondiment" + name = "Condiment Bottle" + desc = "An empty condiment bottle." + center_of_mass = list("x"=16, "y"=6) + return /obj/item/weapon/reagent_containers/food/condiment/enzyme name = "Universal Enzyme" desc = "Used in cooking various dishes." icon_state = "enzyme" - New() - ..() - reagents.add_reagent("enzyme", 50) -/obj/item/weapon/reagent_containers/food/condiment/sugar - New() - ..() - reagents.add_reagent("sugar", 50) +/obj/item/weapon/reagent_containers/food/condiment/enzyme/New() + ..() + reagents.add_reagent("enzyme", 50) + +/obj/item/weapon/reagent_containers/food/condiment/sugar/New() + ..() + reagents.add_reagent("sugar", 50) /obj/item/weapon/reagent_containers/food/condiment/small possible_transfer_amounts = list(1,20) amount_per_transfer_from_this = 1 volume = 20 center_of_mass = list() - on_reagent_change() return + +/obj/item/weapon/reagent_containers/food/condiment/small/on_reagent_change() + return /obj/item/weapon/reagent_containers/food/condiment/small/saltshaker //Seperate from above since it's a small shaker rather then name = "salt shaker" // a large one. desc = "Salt. From space oceans, presumably." icon_state = "saltshakersmall" - New() - ..() - reagents.add_reagent("sodiumchloride", 20) + +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker/New() + ..() + reagents.add_reagent("sodiumchloride", 20) /obj/item/weapon/reagent_containers/food/condiment/small/peppermill name = "pepper mill" desc = "Often used to flavor food or make people sneeze." icon_state = "peppermillsmall" - New() - ..() - reagents.add_reagent("blackpepper", 20) + +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill/New() + ..() + reagents.add_reagent("blackpepper", 20) /obj/item/weapon/reagent_containers/food/condiment/small/sugar name = "sugar" desc = "Sweetness in a bottle" icon_state = "sugarsmall" - New() - ..() - reagents.add_reagent("sugar", 20) + +/obj/item/weapon/reagent_containers/food/condiment/small/sugar/New() + ..() + reagents.add_reagent("sugar", 20) /obj/item/weapon/reagent_containers/food/condiment/flour name = "flour sack" @@ -163,9 +168,12 @@ icon = 'icons/obj/food.dmi' icon_state = "flour" item_state = "flour" - on_reagent_change() return - New() - ..() - reagents.add_reagent("flour", 30) - src.pixel_x = rand(-10.0, 10) - src.pixel_y = rand(-10.0, 10) + +/obj/item/weapon/reagent_containers/food/condiment/flour/on_reagent_change() + return + +/obj/item/weapon/reagent_containers/food/condiment/flour/New() + ..() + reagents.add_reagent("flour", 30) + src.pixel_x = rand(-10.0, 10) + src.pixel_y = rand(-10.0, 10) diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index 7fd9bec3a2..c934343e77 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -10,70 +10,70 @@ amount_per_transfer_from_this = 5 volume = 50 - on_reagent_change() +/obj/item/weapon/reagent_containers/food/drinks/on_reagent_change() return - attack_self(mob/user as mob) - if(!is_open_container()) - open(user) +/obj/item/weapon/reagent_containers/food/drinks/attack_self(mob/user as mob) + if(!is_open_container()) + open(user) - proc/open(mob/user) - playsound(loc,'sound/effects/canopen.ogg', rand(10,50), 1) - user << "You open [src] with an audible pop!" - flags |= OPENCONTAINER +/obj/item/weapon/reagent_containers/food/drinks/proc/open(mob/user) + playsound(loc,'sound/effects/canopen.ogg', rand(10,50), 1) + user << "You open [src] with an audible pop!" + flags |= OPENCONTAINER - attack(mob/M as mob, mob/user as mob, def_zone) - if(standard_feed_mob(user, M)) - return - - return 0 +/obj/item/weapon/reagent_containers/food/drinks/attack(mob/M as mob, mob/user as mob, def_zone) + if(standard_feed_mob(user, M)) + return - afterattack(obj/target, mob/user, proximity) - if(!proximity) return + return 0 - if(standard_dispenser_refill(user, target)) - return - if(standard_pour_into(user, target)) - return - return ..() +/obj/item/weapon/reagent_containers/food/drinks/afterattack(obj/target, mob/user, proximity) + if(!proximity) return - standard_feed_mob(var/mob/user, var/mob/target) - if(!is_open_container()) - user << "You need to open [src]!" - return 1 - return ..() + if(standard_dispenser_refill(user, target)) + return + if(standard_pour_into(user, target)) + return + return ..() - standard_dispenser_refill(var/mob/user, var/obj/structure/reagent_dispensers/target) - if(!is_open_container()) - user << "You need to open [src]!" - return 1 - return ..() +/obj/item/weapon/reagent_containers/food/drinks/standard_feed_mob(var/mob/user, var/mob/target) + if(!is_open_container()) + user << "You need to open [src]!" + return 1 + return ..() - standard_pour_into(var/mob/user, var/atom/target) - if(!is_open_container()) - user << "You need to open [src]!" - return 1 - return ..() +/obj/item/weapon/reagent_containers/food/drinks/standard_dispenser_refill(var/mob/user, var/obj/structure/reagent_dispensers/target) + if(!is_open_container()) + user << "You need to open [src]!" + return 1 + return ..() - self_feed_message(var/mob/user) - user << "You swallow a gulp from \the [src]." +/obj/item/weapon/reagent_containers/food/drinks/standard_pour_into(var/mob/user, var/atom/target) + if(!is_open_container()) + user << "You need to open [src]!" + return 1 + return ..() - feed_sound(var/mob/user) - playsound(user.loc, 'sound/items/drink.ogg', rand(10, 50), 1) +/obj/item/weapon/reagent_containers/food/drinks/self_feed_message(var/mob/user) + user << "You swallow a gulp from \the [src]." - examine(mob/user) - if(!..(user, 1)) - return - if(!reagents || reagents.total_volume == 0) - user << "\The [src] is empty!" - else if (reagents.total_volume <= volume * 0.25) - user << "\The [src] is almost empty!" - else if (reagents.total_volume <= volume * 0.66) - user << "\The [src] is half full!" - else if (reagents.total_volume <= volume * 0.90) - user << "\The [src] is almost full!" - else - user << "\The [src] is full!" +/obj/item/weapon/reagent_containers/food/drinks/feed_sound(var/mob/user) + playsound(user.loc, 'sound/items/drink.ogg', rand(10, 50), 1) + +/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 <= volume * 0.25) + user << "\The [src] is almost empty!" + else if (reagents.total_volume <= volume * 0.66) + user << "\The [src] is half full!" + else if (reagents.total_volume <= volume * 0.90) + user << "\The [src] is almost full!" + else + user << "\The [src] is full!" //////////////////////////////////////////////////////////////////////////////// @@ -108,9 +108,10 @@ icon_state = "milk" item_state = "carton" center_of_mass = list("x"=16, "y"=9) - New() - ..() - reagents.add_reagent("milk", 50) + +/obj/item/weapon/reagent_containers/food/drinks/milk/New() + ..() + reagents.add_reagent("milk", 50) /obj/item/weapon/reagent_containers/food/drinks/soymilk name = "SoyMilk" @@ -118,18 +119,18 @@ icon_state = "soymilk" item_state = "carton" center_of_mass = list("x"=16, "y"=9) - New() - ..() - reagents.add_reagent("soymilk", 50) +/obj/item/weapon/reagent_containers/food/drinks/soymilk/New() + ..() + reagents.add_reagent("soymilk", 50) /obj/item/weapon/reagent_containers/food/drinks/coffee name = "Robust Coffee" desc = "Careful, the beverage you're about to enjoy is extremely hot." icon_state = "coffee" center_of_mass = list("x"=15, "y"=10) - New() - ..() - reagents.add_reagent("coffee", 30) +/obj/item/weapon/reagent_containers/food/drinks/coffee/New() + ..() + reagents.add_reagent("coffee", 30) /obj/item/weapon/reagent_containers/food/drinks/tea name = "Duke Purple Tea" @@ -137,18 +138,19 @@ icon_state = "teacup" item_state = "coffee" center_of_mass = list("x"=16, "y"=14) - New() - ..() - reagents.add_reagent("tea", 30) + +/obj/item/weapon/reagent_containers/food/drinks/tea/New() + ..() + reagents.add_reagent("tea", 30) /obj/item/weapon/reagent_containers/food/drinks/ice name = "Ice Cup" desc = "Careful, cold ice, do not chew." icon_state = "coffee" center_of_mass = list("x"=15, "y"=10) - New() - ..() - reagents.add_reagent("ice", 30) +/obj/item/weapon/reagent_containers/food/drinks/ice/New() + ..() + reagents.add_reagent("ice", 30) /obj/item/weapon/reagent_containers/food/drinks/h_chocolate name = "Dutch Hot Coco" @@ -156,19 +158,19 @@ icon_state = "hot_coco" item_state = "coffee" center_of_mass = list("x"=15, "y"=13) - New() - ..() - reagents.add_reagent("hot_coco", 30) + +/obj/item/weapon/reagent_containers/food/drinks/h_chocolate/New() + ..() + reagents.add_reagent("hot_coco", 30) /obj/item/weapon/reagent_containers/food/drinks/dry_ramen name = "Cup Ramen" desc = "Just add 10ml water, self heats! A taste that reminds you of your school years." icon_state = "ramen" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("dry_ramen", 30) - +/obj/item/weapon/reagent_containers/food/drinks/dry_ramen/New() + ..() + reagents.add_reagent("dry_ramen", 30) /obj/item/weapon/reagent_containers/food/drinks/sillycup name = "Paper Cup" @@ -177,13 +179,14 @@ possible_transfer_amounts = null volume = 10 center_of_mass = list("x"=16, "y"=12) - New() - ..() - on_reagent_change() - if(reagents.total_volume) - icon_state = "water_cup" - else - icon_state = "water_cup_e" +/obj/item/weapon/reagent_containers/food/drinks/sillycup/New() + ..() + +/obj/item/weapon/reagent_containers/food/drinks/sillycup/on_reagent_change() + if(reagents.total_volume) + icon_state = "water_cup" + else + icon_state = "water_cup_e" //////////////////////////drinkingglass and shaker// diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index c53d91675b..a9e55b26fe 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -193,7 +193,6 @@ //Keeping this here for now, I'll ask if I should keep it here. /obj/item/weapon/broken_bottle - name = "Broken Bottle" desc = "A bottle with a sharp broken bottom." icon = 'icons/obj/drinks.dmi' @@ -212,204 +211,225 @@ playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) return ..() - /obj/item/weapon/reagent_containers/food/drinks/bottle/gin name = "Griffeater Gin" desc = "A bottle of high quality gin, produced in the New London Space Station." icon_state = "ginbottle" center_of_mass = list("x"=16, "y"=4) - New() - ..() - reagents.add_reagent("gin", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/gin/New() + ..() + reagents.add_reagent("gin", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey name = "Uncle Git's Special Reserve" desc = "A premium single-malt whiskey, gently matured inside the tunnels of a nuclear shelter. TUNNEL WHISKEY RULES." icon_state = "whiskeybottle" center_of_mass = list("x"=16, "y"=3) - New() - ..() - reagents.add_reagent("whiskey", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey/New() + ..() + reagents.add_reagent("whiskey", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/specialwhiskey name = "Special Blend Whiskey" desc = "Just when you thought regular station whiskey was good... This silky, amber goodness has to come along and ruin everything." icon_state = "whiskeybottle2" center_of_mass = list("x"=16, "y"=3) - New() - ..() - reagents.add_reagent("specialwhiskey", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/specialwhiskey/New() + ..() + reagents.add_reagent("specialwhiskey", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka name = "Tunguska Triple Distilled" desc = "Aah, vodka. Prime choice of drink AND fuel by Russians worldwide." icon_state = "vodkabottle" center_of_mass = list("x"=17, "y"=3) - New() - ..() - reagents.add_reagent("vodka", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/New() + ..() + reagents.add_reagent("vodka", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla name = "Caccavo Guaranteed Quality Tequilla" desc = "Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients!" icon_state = "tequillabottle" center_of_mass = list("x"=16, "y"=3) - New() - ..() - reagents.add_reagent("tequilla", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla/New() + ..() + reagents.add_reagent("tequilla", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing name = "Bottle of Nothing" desc = "A bottle filled with nothing" icon_state = "bottleofnothing" center_of_mass = list("x"=17, "y"=5) - New() - ..() - reagents.add_reagent("nothing", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing/New() + ..() + reagents.add_reagent("nothing", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/patron name = "Wrapp Artiste Patron" desc = "Silver laced tequilla, served in space night clubs across the galaxy." icon_state = "patronbottle" center_of_mass = list("x"=16, "y"=6) - New() - ..() - reagents.add_reagent("patron", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/patron/New() + ..() + reagents.add_reagent("patron", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/rum name = "Captain Pete's Cuban Spiced Rum" desc = "This isn't just rum, oh no. It's practically GRIFF in a bottle." icon_state = "rumbottle" center_of_mass = list("x"=16, "y"=8) - New() - ..() - reagents.add_reagent("rum", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/rum/New() + ..() + reagents.add_reagent("rum", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater name = "Flask of Holy Water" desc = "A flask of the chaplain's holy water." icon_state = "holyflask" center_of_mass = list("x"=17, "y"=10) - New() - ..() - reagents.add_reagent("holywater", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater/New() + ..() + reagents.add_reagent("holywater", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth name = "Goldeneye Vermouth" desc = "Sweet, sweet dryness~" icon_state = "vermouthbottle" center_of_mass = list("x"=17, "y"=3) - New() - ..() - reagents.add_reagent("vermouth", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth/New() + ..() + reagents.add_reagent("vermouth", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua name = "Robert Robust's Coffee Liqueur" desc = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936, HONK" icon_state = "kahluabottle" center_of_mass = list("x"=17, "y"=3) - New() - ..() - reagents.add_reagent("kahlua", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua/New() + ..() + reagents.add_reagent("kahlua", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager name = "College Girl Goldschlager" desc = "Because they are the only ones who will drink 100 proof cinnamon schnapps." icon_state = "goldschlagerbottle" center_of_mass = list("x"=15, "y"=3) - New() - ..() - reagents.add_reagent("goldschlager", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager/New() + ..() + reagents.add_reagent("goldschlager", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/cognac name = "Chateau De Baton Premium Cognac" desc = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. You might as well not scream 'SHITCURITY' this time." icon_state = "cognacbottle" center_of_mass = list("x"=16, "y"=6) - New() - ..() - reagents.add_reagent("cognac", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac/New() + ..() + reagents.add_reagent("cognac", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/wine name = "Doublebeard Bearded Special Wine" desc = "A faint aura of unease and asspainery surrounds the bottle." icon_state = "winebottle" center_of_mass = list("x"=16, "y"=4) - New() - ..() - reagents.add_reagent("wine", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/wine/New() + ..() + reagents.add_reagent("wine", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe name = "Jailbreaker Verte" desc = "One sip of this and you just know you're gonna have a good time." icon_state = "absinthebottle" center_of_mass = list("x"=16, "y"=6) - New() - ..() - reagents.add_reagent("absinthe", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe/New() + ..() + reagents.add_reagent("absinthe", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/melonliquor name = "Emeraldine Melon Liquor" desc = "A bottle of 46 proof Emeraldine Melon Liquor. Sweet and light." icon_state = "alco-green" //Placeholder. center_of_mass = list("x"=16, "y"=6) - New() - ..() - reagents.add_reagent("melonliquor", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/melonliquor/New() + ..() + reagents.add_reagent("melonliquor", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/bluecuracao name = "Miss Blue Curacao" desc = "A fruity, exceptionally azure drink. Does not allow the imbiber to use the fifth magic." icon_state = "alco-blue" //Placeholder. center_of_mass = list("x"=16, "y"=6) - New() - ..() - reagents.add_reagent("bluecuracao", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/bluecuracao/New() + ..() + reagents.add_reagent("bluecuracao", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/grenadine name = "Briar Rose Grenadine Syrup" desc = "Sweet and tangy, a bar syrup used to add color or flavor to drinks." icon_state = "grenadinebottle" center_of_mass = list("x"=16, "y"=6) - New() - ..() - reagents.add_reagent("grenadine", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/grenadine/New() + ..() + reagents.add_reagent("grenadine", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/cola name = "\improper Space Cola" desc = "Cola. in space" icon_state = "colabottle" center_of_mass = list("x"=16, "y"=6) - New() - ..() - reagents.add_reagent("cola", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/cola/New() + ..() + reagents.add_reagent("cola", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/space_up name = "\improper Space-Up" desc = "Tastes like a hull breach in your mouth." icon_state = "space-up_bottle" center_of_mass = list("x"=16, "y"=6) - New() - ..() - reagents.add_reagent("space_up", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/space_up/New() + ..() + reagents.add_reagent("space_up", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/space_mountain_wind name = "\improper Space Mountain Wind" desc = "Blows right through you like a space wind." icon_state = "space_mountain_wind_bottle" center_of_mass = list("x"=16, "y"=6) - New() - ..() - reagents.add_reagent("spacemountainwind", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/space_mountain_wind/New() + ..() + reagents.add_reagent("spacemountainwind", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/pwine name = "Warlock's Velvet" desc = "What a delightful packaging for a surely high quality wine! The vintage must be amazing!" icon_state = "pwinebottle" center_of_mass = list("x"=16, "y"=4) - New() - ..() - reagents.add_reagent("pwine", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/pwine/New() + ..() + reagents.add_reagent("pwine", 100) //////////////////////////JUICES AND STUFF /////////////////////// @@ -420,9 +440,10 @@ item_state = "carton" center_of_mass = list("x"=16, "y"=7) isGlass = 0 - New() - ..() - reagents.add_reagent("orangejuice", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice/New() + ..() + reagents.add_reagent("orangejuice", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/cream name = "Milk Cream" @@ -431,9 +452,10 @@ item_state = "carton" center_of_mass = list("x"=16, "y"=8) isGlass = 0 - New() - ..() - reagents.add_reagent("cream", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream/New() + ..() + reagents.add_reagent("cream", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice name = "Tomato Juice" @@ -442,9 +464,10 @@ item_state = "carton" center_of_mass = list("x"=16, "y"=8) isGlass = 0 - New() - ..() - reagents.add_reagent("tomatojuice", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice/New() + ..() + reagents.add_reagent("tomatojuice", 100) /obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice name = "Lime Juice" @@ -453,9 +476,10 @@ item_state = "carton" center_of_mass = list("x"=16, "y"=8) isGlass = 0 - New() - ..() - reagents.add_reagent("limejuice", 100) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice/New() + ..() + reagents.add_reagent("limejuice", 100) //Small bottles /obj/item/weapon/reagent_containers/food/drinks/bottle/small @@ -469,9 +493,10 @@ desc = "Contains only water, malt and hops." icon_state = "beer" center_of_mass = list("x"=16, "y"=12) - New() - ..() - reagents.add_reagent("beer", 30) + +/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer/New() + ..() + reagents.add_reagent("beer", 30) /obj/item/weapon/reagent_containers/food/drinks/bottle/small/ale name = "\improper Magm-Ale" @@ -479,6 +504,7 @@ icon_state = "alebottle" item_state = "beer" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("ale", 30) \ No newline at end of file + +/obj/item/weapon/reagent_containers/food/drinks/bottle/small/ale/New() + ..() + reagents.add_reagent("ale", 30) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 3041ec9957..98ce8751aa 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -252,12 +252,12 @@ filling_color = "#468C00" center_of_mass = list("x"=17, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 8) - reagents.add_reagent("doctorsdelight", 8) - reagents.add_reagent("tricordrazine", 8) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/aesirsalad/New() + ..() + reagents.add_reagent("nutriment", 8) + reagents.add_reagent("doctorsdelight", 8) + reagents.add_reagent("tricordrazine", 8) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/candy name = "candy" @@ -267,22 +267,22 @@ filling_color = "#7D5F46" center_of_mass = list("x"=15, "y"=15) - New() - ..() - reagents.add_reagent("nutriment", 1) - reagents.add_reagent("sugar", 3) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/candy/New() + ..() + reagents.add_reagent("nutriment", 1) + reagents.add_reagent("sugar", 3) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/candy/donor name = "Donor Candy" desc = "A little treat for blood donors." trash = /obj/item/trash/candy - New() - ..() - reagents.add_reagent("nutriment", 10) - reagents.add_reagent("sugar", 3) - bitesize = 5 +/obj/item/weapon/reagent_containers/food/snacks/candy/donor/New() + ..() + reagents.add_reagent("nutriment", 10) + reagents.add_reagent("sugar", 3) + bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/candy_corn name = "candy corn" @@ -291,11 +291,11 @@ filling_color = "#FFFCB0" center_of_mass = list("x"=14, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 4) - reagents.add_reagent("sugar", 2) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/candy_corn/New() + ..() + reagents.add_reagent("nutriment", 4) + reagents.add_reagent("sugar", 2) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/chips name = "chips" @@ -305,10 +305,10 @@ filling_color = "#E8C31E" center_of_mass = list("x"=15, "y"=15) - New() - ..() - reagents.add_reagent("nutriment", 3) - bitesize = 1 +/obj/item/weapon/reagent_containers/food/snacks/chips/New() + ..() + reagents.add_reagent("nutriment", 3) + bitesize = 1 /obj/item/weapon/reagent_containers/food/snacks/cookie name = "cookie" @@ -317,10 +317,10 @@ filling_color = "#DBC94F" center_of_mass = list("x"=17, "y"=18) - New() - ..() - reagents.add_reagent("nutriment", 5) - bitesize = 1 +/obj/item/weapon/reagent_containers/food/snacks/cookie/New() + ..() + reagents.add_reagent("nutriment", 5) + bitesize = 1 /obj/item/weapon/reagent_containers/food/snacks/chocolatebar name = "Chocolate Bar" @@ -329,12 +329,12 @@ filling_color = "#7D5F46" center_of_mass = list("x"=15, "y"=15) - New() - ..() - reagents.add_reagent("nutriment", 2) - reagents.add_reagent("sugar", 2) - reagents.add_reagent("coco", 2) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/chocolatebar/New() + ..() + reagents.add_reagent("nutriment", 2) + reagents.add_reagent("sugar", 2) + reagents.add_reagent("coco", 2) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/chocolateegg name = "Chocolate Egg" @@ -343,12 +343,12 @@ filling_color = "#7D5F46" center_of_mass = list("x"=16, "y"=13) - New() - ..() - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("sugar", 2) - reagents.add_reagent("coco", 2) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/chocolateegg/New() + ..() + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("sugar", 2) + reagents.add_reagent("coco", 2) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/donut name = "donut" @@ -362,17 +362,18 @@ name = "donut" desc = "Goes great with Robust Coffee." icon_state = "donut1" - New() - ..() - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("sprinkles", 1) - src.bitesize = 3 - if(prob(30)) - src.icon_state = "donut2" - src.overlay_state = "box-donut2" - src.name = "frosted donut" - reagents.add_reagent("sprinkles", 2) - center_of_mass = list("x"=19, "y"=16) + +/obj/item/weapon/reagent_containers/food/snacks/donut/normal/New() + ..() + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("sprinkles", 1) + src.bitesize = 3 + if(prob(30)) + src.icon_state = "donut2" + src.overlay_state = "box-donut2" + src.name = "frosted donut" + reagents.add_reagent("sprinkles", 2) + center_of_mass = list("x"=19, "y"=16) /obj/item/weapon/reagent_containers/food/snacks/donut/chaos name = "Chaos Donut" @@ -380,39 +381,38 @@ icon_state = "donut1" filling_color = "#ED11E6" - New() - ..() - reagents.add_reagent("nutriment", 2) - reagents.add_reagent("sprinkles", 1) - bitesize = 10 - var/chaosselect = pick(1,2,3,4,5,6,7,8,9,10) - switch(chaosselect) - if(1) - reagents.add_reagent("nutriment", 3) - if(2) - reagents.add_reagent("capsaicin", 3) - if(3) - reagents.add_reagent("frostoil", 3) - if(4) - reagents.add_reagent("sprinkles", 3) - if(5) - reagents.add_reagent("phoron", 3) - if(6) - reagents.add_reagent("coco", 3) - if(7) - reagents.add_reagent("slimejelly", 3) - if(8) - reagents.add_reagent("banana", 3) - if(9) - reagents.add_reagent("berryjuice", 3) - if(10) - reagents.add_reagent("tricordrazine", 3) - if(prob(30)) - src.icon_state = "donut2" - src.overlay_state = "box-donut2" - src.name = "Frosted Chaos Donut" - reagents.add_reagent("sprinkles", 2) - +/obj/item/weapon/reagent_containers/food/snacks/donut/chaos/New() + ..() + reagents.add_reagent("nutriment", 2) + reagents.add_reagent("sprinkles", 1) + bitesize = 10 + var/chaosselect = pick(1,2,3,4,5,6,7,8,9,10) + switch(chaosselect) + if(1) + reagents.add_reagent("nutriment", 3) + if(2) + reagents.add_reagent("capsaicin", 3) + if(3) + reagents.add_reagent("frostoil", 3) + if(4) + reagents.add_reagent("sprinkles", 3) + if(5) + reagents.add_reagent("phoron", 3) + if(6) + reagents.add_reagent("coco", 3) + if(7) + reagents.add_reagent("slimejelly", 3) + if(8) + reagents.add_reagent("banana", 3) + if(9) + reagents.add_reagent("berryjuice", 3) + if(10) + reagents.add_reagent("tricordrazine", 3) + if(prob(30)) + src.icon_state = "donut2" + src.overlay_state = "box-donut2" + src.name = "Frosted Chaos Donut" + reagents.add_reagent("sprinkles", 2) /obj/item/weapon/reagent_containers/food/snacks/donut/jelly name = "Jelly Donut" @@ -421,17 +421,17 @@ filling_color = "#ED1169" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("sprinkles", 1) - reagents.add_reagent("berryjuice", 5) - bitesize = 5 - if(prob(30)) - src.icon_state = "jdonut2" - src.overlay_state = "box-donut2" - src.name = "Frosted Jelly Donut" - reagents.add_reagent("sprinkles", 2) +/obj/item/weapon/reagent_containers/food/snacks/donut/jelly/New() + ..() + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("sprinkles", 1) + reagents.add_reagent("berryjuice", 5) + bitesize = 5 + if(prob(30)) + src.icon_state = "jdonut2" + src.overlay_state = "box-donut2" + src.name = "Frosted Jelly Donut" + reagents.add_reagent("sprinkles", 2) /obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly name = "Jelly Donut" @@ -440,17 +440,17 @@ filling_color = "#ED1169" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("sprinkles", 1) - reagents.add_reagent("slimejelly", 5) - bitesize = 5 - if(prob(30)) - src.icon_state = "jdonut2" - src.overlay_state = "box-donut2" - src.name = "Frosted Jelly Donut" - reagents.add_reagent("sprinkles", 2) +/obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly/New() + ..() + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("sprinkles", 1) + reagents.add_reagent("slimejelly", 5) + bitesize = 5 + if(prob(30)) + src.icon_state = "jdonut2" + src.overlay_state = "box-donut2" + src.name = "Frosted Jelly Donut" + reagents.add_reagent("sprinkles", 2) /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly name = "Jelly Donut" @@ -459,17 +459,17 @@ filling_color = "#ED1169" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("sprinkles", 1) - reagents.add_reagent("cherryjelly", 5) - bitesize = 5 - if(prob(30)) - src.icon_state = "jdonut2" - src.overlay_state = "box-donut2" - src.name = "Frosted Jelly Donut" - reagents.add_reagent("sprinkles", 2) +/obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly/New() + ..() + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("sprinkles", 1) + reagents.add_reagent("cherryjelly", 5) + bitesize = 5 + if(prob(30)) + src.icon_state = "jdonut2" + src.overlay_state = "box-donut2" + src.name = "Frosted Jelly Donut" + reagents.add_reagent("sprinkles", 2) /obj/item/weapon/reagent_containers/food/snacks/egg name = "egg" @@ -545,12 +545,12 @@ filling_color = "#FFDF78" center_of_mass = list("x"=16, "y"=14) - New() - ..() - reagents.add_reagent("protein", 3) - reagents.add_reagent("sodiumchloride", 1) - reagents.add_reagent("blackpepper", 1) - bitesize = 1 +/obj/item/weapon/reagent_containers/food/snacks/friedegg/New() + ..() + reagents.add_reagent("protein", 3) + reagents.add_reagent("sodiumchloride", 1) + reagents.add_reagent("blackpepper", 1) + bitesize = 1 /obj/item/weapon/reagent_containers/food/snacks/boiledegg name = "Boiled egg" @@ -558,9 +558,9 @@ icon_state = "egg" filling_color = "#FFFFFF" - New() - ..() - reagents.add_reagent("protein", 2) +/obj/item/weapon/reagent_containers/food/snacks/boiledegg/New() + ..() + reagents.add_reagent("protein", 2) /obj/item/weapon/reagent_containers/food/snacks/organ name = "organ" @@ -570,11 +570,11 @@ filling_color = "#E00D34" center_of_mass = list("x"=16, "y"=16) - New() - ..() - reagents.add_reagent("protein", rand(3,5)) - reagents.add_reagent("toxin", rand(1,3)) - src.bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/organ/New() + ..() + reagents.add_reagent("protein", rand(3,5)) + reagents.add_reagent("toxin", rand(1,3)) + src.bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/tofu name = "Tofu" @@ -583,10 +583,10 @@ filling_color = "#FFFEE0" center_of_mass = list("x"=17, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 3) - src.bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/tofu/New() + ..() + reagents.add_reagent("nutriment", 3) + src.bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/tofurkey name = "Tofurkey" @@ -595,11 +595,11 @@ filling_color = "#FFFEE0" center_of_mass = list("x"=16, "y"=8) - New() - ..() - reagents.add_reagent("nutriment", 12) - reagents.add_reagent("stoxin", 3) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/tofurkey/New() + ..() + reagents.add_reagent("nutriment", 12) + reagents.add_reagent("stoxin", 3) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/stuffing name = "Stuffing" @@ -608,10 +608,10 @@ filling_color = "#C9AC83" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 3) - bitesize = 1 +/obj/item/weapon/reagent_containers/food/snacks/stuffing/New() + ..() + reagents.add_reagent("nutriment", 3) + bitesize = 1 /obj/item/weapon/reagent_containers/food/snacks/carpmeat name = "carp fillet" @@ -620,11 +620,11 @@ filling_color = "#FFDEFE" center_of_mass = list("x"=17, "y"=13) - New() - ..() - reagents.add_reagent("protein", 3) - reagents.add_reagent("carpotoxin", 3) - src.bitesize = 6 +/obj/item/weapon/reagent_containers/food/snacks/carpmeat/New() + ..() + reagents.add_reagent("protein", 3) + reagents.add_reagent("carpotoxin", 3) + src.bitesize = 6 /obj/item/weapon/reagent_containers/food/snacks/fishfingers name = "Fish Fingers" @@ -633,11 +633,11 @@ filling_color = "#FFDEFE" center_of_mass = list("x"=16, "y"=13) - New() - ..() - reagents.add_reagent("protein", 4) - reagents.add_reagent("carpotoxin", 3) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/fishfingers/New() + ..() + reagents.add_reagent("protein", 4) + reagents.add_reagent("carpotoxin", 3) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice name = "huge mushroom slice" @@ -646,11 +646,11 @@ filling_color = "#E0D7C5" center_of_mass = list("x"=17, "y"=16) - New() - ..() - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("psilocybin", 3) - src.bitesize = 6 +/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice/New() + ..() + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("psilocybin", 3) + src.bitesize = 6 /obj/item/weapon/reagent_containers/food/snacks/tomatomeat name = "tomato slice" @@ -659,10 +659,10 @@ filling_color = "#DB0000" center_of_mass = list("x"=17, "y"=16) - New() - ..() - reagents.add_reagent("nutriment", 3) - src.bitesize = 6 +/obj/item/weapon/reagent_containers/food/snacks/tomatomeat/New() + ..() + reagents.add_reagent("nutriment", 3) + src.bitesize = 6 /obj/item/weapon/reagent_containers/food/snacks/bearmeat name = "bear meat" @@ -671,11 +671,11 @@ filling_color = "#DB0000" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("protein", 12) - reagents.add_reagent("hyperzine", 5) - src.bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/bearmeat/New() + ..() + reagents.add_reagent("protein", 12) + reagents.add_reagent("hyperzine", 5) + src.bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/xenomeat name = "meat" @@ -684,11 +684,11 @@ filling_color = "#43DE18" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("protein", 6) - reagents.add_reagent("pacid",6) - src.bitesize = 6 +/obj/item/weapon/reagent_containers/food/snacks/xenomeat/New() + ..() + reagents.add_reagent("protein", 6) + reagents.add_reagent("pacid",6) + src.bitesize = 6 /obj/item/weapon/reagent_containers/food/snacks/meatball name = "meatball" @@ -697,10 +697,10 @@ filling_color = "#DB0000" center_of_mass = list("x"=16, "y"=16) - New() - ..() - reagents.add_reagent("protein", 3) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/meatball/New() + ..() + reagents.add_reagent("protein", 3) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/sausage name = "Sausage" @@ -709,10 +709,44 @@ filling_color = "#DB0000" center_of_mass = list("x"=16, "y"=16) - New() - ..() - reagents.add_reagent("protein", 6) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sausage/New() + ..() + reagents.add_reagent("protein", 6) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/donkpocket + name = "Donk-pocket" + desc = "The food of choice for the seasoned traitor." + icon_state = "donkpocket" + filling_color = "#DEDEAB" + center_of_mass = list("x"=16, "y"=10) + var/warm + var/list/heated_reagents + +/obj/item/weapon/reagent_containers/food/snacks/donkpocket/New() + ..() + reagents.add_reagent("nutriment", 2) + reagents.add_reagent("protein", 2) + + warm = 0 + heated_reagents = list("tricordrazine" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/donkpocket/proc/heat() + warm = 1 + for(var/reagent in heated_reagents) + reagents.add_reagent(reagent, heated_reagents[reagent]) + bitesize = 6 + name = "Warm " + name + cooltime() + +/obj/item/weapon/reagent_containers/food/snacks/donkpocket/proc/cooltime() + if (src.warm) + spawn(4200) + src.warm = 0 + for(var/reagent in heated_reagents) + src.reagents.del_reagent(reagent) + src.name = initial(name) + return /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket name = "\improper Sin-pocket" @@ -731,37 +765,6 @@ user << "You think \the [src] is ready to eat about now." heat() -/obj/item/weapon/reagent_containers/food/snacks/donkpocket - name = "Donk-pocket" - desc = "The food of choice for the seasoned traitor." - icon_state = "donkpocket" - filling_color = "#DEDEAB" - center_of_mass = list("x"=16, "y"=10) - - New() - ..() - reagents.add_reagent("nutriment", 2) - reagents.add_reagent("protein", 2) - - var/warm = 0 - var/list/heated_reagents = list("tricordrazine" = 5) - proc/heat() - warm = 1 - for(var/reagent in heated_reagents) - reagents.add_reagent(reagent, heated_reagents[reagent]) - bitesize = 6 - name = "Warm " + name - cooltime() - - proc/cooltime() - if (src.warm) - spawn(4200) - src.warm = 0 - for(var/reagent in heated_reagents) - src.reagents.del_reagent(reagent) - src.name = initial(name) - return - /obj/item/weapon/reagent_containers/food/snacks/brainburger name = "brainburger" desc = "A strange looking burger. It looks almost sentient." @@ -769,11 +772,11 @@ filling_color = "#F2B6EA" center_of_mass = list("x"=15, "y"=11) - New() - ..() - reagents.add_reagent("protein", 6) - reagents.add_reagent("alkysine", 6) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/brainburger/New() + ..() + reagents.add_reagent("protein", 6) + reagents.add_reagent("alkysine", 6) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/ghostburger name = "Ghost Burger" @@ -782,11 +785,10 @@ filling_color = "#FFF2FF" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 2) - bitesize = 2 - +/obj/item/weapon/reagent_containers/food/snacks/ghostburger/New() + ..() + reagents.add_reagent("nutriment", 2) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/human var/hname = "" @@ -798,10 +800,11 @@ desc = "A bloody burger." icon_state = "hburger" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("protein", 6) - bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/human/burger/New() + ..() + reagents.add_reagent("protein", 6) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/cheeseburger name = "cheeseburger" @@ -809,10 +812,10 @@ icon_state = "cheeseburger" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("protein", 2) - reagents.add_reagent("nutriment", 2) +/obj/item/weapon/reagent_containers/food/snacks/cheeseburger/New() + ..() + reagents.add_reagent("protein", 2) + reagents.add_reagent("nutriment", 2) /obj/item/weapon/reagent_containers/food/snacks/monkeyburger name = "burger" @@ -821,11 +824,11 @@ filling_color = "#D63C3C" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("protein", 3) - reagents.add_reagent("nutriment", 3) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/monkeyburger/New() + ..() + reagents.add_reagent("protein", 3) + reagents.add_reagent("nutriment", 3) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/fishburger name = "Fillet -o- Carp Sandwich" @@ -834,11 +837,11 @@ filling_color = "#FFDEFE" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("protein", 6) - reagents.add_reagent("carpotoxin", 3) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/fishburger/New() + ..() + reagents.add_reagent("protein", 6) + reagents.add_reagent("carpotoxin", 3) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/tofuburger name = "Tofu Burger" @@ -847,10 +850,10 @@ filling_color = "#FFFEE0" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 6) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/tofuburger/New() + ..() + reagents.add_reagent("nutriment", 6) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/roburger name = "roburger" @@ -859,10 +862,10 @@ filling_color = "#CCCCCC" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 2) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/roburger/New() + ..() + reagents.add_reagent("nutriment", 2) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/roburgerbig name = "roburger" @@ -872,9 +875,9 @@ volume = 100 center_of_mass = list("x"=16, "y"=11) - New() - ..() - bitesize = 0.1 +/obj/item/weapon/reagent_containers/food/snacks/roburgerbig/New() + ..() + bitesize = 0.1 /obj/item/weapon/reagent_containers/food/snacks/xenoburger name = "xenoburger" @@ -883,10 +886,10 @@ filling_color = "#43DE18" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("protein", 8) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/xenoburger/New() + ..() + reagents.add_reagent("protein", 8) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/clownburger name = "Clown Burger" @@ -895,10 +898,10 @@ filling_color = "#FF00FF" center_of_mass = list("x"=17, "y"=12) - New() - ..() - reagents.add_reagent("nutriment", 6) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/clownburger/New() + ..() + reagents.add_reagent("nutriment", 6) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/mimeburger name = "Mime Burger" @@ -907,10 +910,10 @@ filling_color = "#FFFFFF" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 6) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/mimeburger/New() + ..() + reagents.add_reagent("nutriment", 6) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/omelette name = "Omelette Du Fromage" @@ -920,11 +923,10 @@ filling_color = "#FFF9A8" center_of_mass = list("x"=16, "y"=13) - //var/herp = 0 - New() - ..() - reagents.add_reagent("protein", 8) - bitesize = 1 +/obj/item/weapon/reagent_containers/food/snacks/omelette/New() + ..() + reagents.add_reagent("protein", 8) + bitesize = 1 /obj/item/weapon/reagent_containers/food/snacks/muffin name = "Muffin" @@ -933,10 +935,10 @@ filling_color = "#E0CF9B" center_of_mass = list("x"=17, "y"=4) - New() - ..() - reagents.add_reagent("nutriment", 6) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/muffin/New() + ..() + reagents.add_reagent("nutriment", 6) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/pie name = "Banana Cream Pie" @@ -965,11 +967,11 @@ trash = /obj/item/trash/plate center_of_mass = list("x"=16, "y"=13) - New() - ..() - reagents.add_reagent("nutriment", 4) - reagents.add_reagent("berryjuice", 5) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/berryclafoutis/New() + ..() + reagents.add_reagent("nutriment", 4) + reagents.add_reagent("berryjuice", 5) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/waffles name = "waffles" @@ -979,10 +981,10 @@ filling_color = "#E6DEB5" center_of_mass = list("x"=15, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/waffles/New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/eggplantparm name = "Eggplant Parmigiana" @@ -992,10 +994,10 @@ filling_color = "#4D2F5E" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 6) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/eggplantparm/New() + ..() + reagents.add_reagent("nutriment", 6) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/soylentgreen name = "Soylent Green" @@ -1005,10 +1007,10 @@ filling_color = "#B8E6B5" center_of_mass = list("x"=15, "y"=11) - New() - ..() - reagents.add_reagent("protein", 10) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/soylentgreen/New() + ..() + reagents.add_reagent("protein", 10) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/soylenviridians name = "Soylen Virdians" @@ -1018,11 +1020,10 @@ filling_color = "#E6FA61" center_of_mass = list("x"=15, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 10) - bitesize = 2 - +/obj/item/weapon/reagent_containers/food/snacks/soylenviridians/New() + ..() + reagents.add_reagent("nutriment", 10) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/meatpie name = "Meat-pie" @@ -1032,10 +1033,10 @@ filling_color = "#948051" center_of_mass = list("x"=16, "y"=13) - New() - ..() - reagents.add_reagent("protein", 10) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/meatpie/New() + ..() + reagents.add_reagent("protein", 10) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/tofupie name = "Tofu-pie" @@ -1045,10 +1046,10 @@ filling_color = "#FFFEE0" center_of_mass = list("x"=16, "y"=13) - New() - ..() - reagents.add_reagent("nutriment", 10) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/tofupie/New() + ..() + reagents.add_reagent("nutriment", 10) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/amanita_pie name = "amanita pie" @@ -1057,12 +1058,12 @@ filling_color = "#FFCCCC" center_of_mass = list("x"=17, "y"=9) - New() - ..() - reagents.add_reagent("nutriment", 5) - reagents.add_reagent("amatoxin", 3) - reagents.add_reagent("psilocybin", 1) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/amanita_pie/New() + ..() + reagents.add_reagent("nutriment", 5) + reagents.add_reagent("amatoxin", 3) + reagents.add_reagent("psilocybin", 1) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/plump_pie name = "plump pie" @@ -1071,17 +1072,17 @@ filling_color = "#B8279B" center_of_mass = list("x"=17, "y"=9) - New() - ..() - if(prob(10)) - name = "exceptional plump pie" - desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!" - reagents.add_reagent("nutriment", 8) - reagents.add_reagent("tricordrazine", 5) - bitesize = 2 - else - reagents.add_reagent("nutriment", 8) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/plump_pie/New() + ..() + if(prob(10)) + name = "exceptional plump pie" + desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!" + reagents.add_reagent("nutriment", 8) + reagents.add_reagent("tricordrazine", 5) + bitesize = 2 + else + reagents.add_reagent("nutriment", 8) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/xemeatpie name = "Xeno-pie" @@ -1091,10 +1092,10 @@ filling_color = "#43DE18" center_of_mass = list("x"=16, "y"=13) - New() - ..() - reagents.add_reagent("protein", 10) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/xemeatpie/New() + ..() + reagents.add_reagent("protein", 10) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/wingfangchu name = "Wing Fang Chu" @@ -1104,11 +1105,10 @@ filling_color = "#43DE18" center_of_mass = list("x"=17, "y"=9) - New() - ..() - reagents.add_reagent("protein", 6) - bitesize = 2 - +/obj/item/weapon/reagent_containers/food/snacks/wingfangchu/New() + ..() + reagents.add_reagent("protein", 6) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/human/kabob name = "-kabob" @@ -1118,10 +1118,10 @@ filling_color = "#A85340" center_of_mass = list("x"=17, "y"=15) - New() - ..() - reagents.add_reagent("protein", 8) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/human/kabob/New() + ..() + reagents.add_reagent("protein", 8) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/monkeykabob name = "Meat-kabob" @@ -1131,10 +1131,10 @@ filling_color = "#A85340" center_of_mass = list("x"=17, "y"=15) - New() - ..() - reagents.add_reagent("protein", 8) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/monkeykabob/New() + ..() + reagents.add_reagent("protein", 8) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/tofukabob name = "Tofu-kabob" @@ -1144,10 +1144,10 @@ filling_color = "#FFFEE0" center_of_mass = list("x"=17, "y"=15) - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/tofukabob/New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/cubancarp name = "Cuban Carp" @@ -1157,13 +1157,13 @@ filling_color = "#E9ADFF" center_of_mass = list("x"=12, "y"=5) - New() - ..() - reagents.add_reagent("protein", 3) - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("carpotoxin", 3) - reagents.add_reagent("capsaicin", 3) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/cubancarp/New() + ..() + reagents.add_reagent("protein", 3) + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("carpotoxin", 3) + reagents.add_reagent("capsaicin", 3) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/popcorn name = "Popcorn" @@ -1174,17 +1174,17 @@ filling_color = "#FFFAD4" center_of_mass = list("x"=16, "y"=8) - New() - ..() - unpopped = rand(1,10) - reagents.add_reagent("nutriment", 2) - bitesize = 0.1 //this snack is supposed to be eating during looooong time. And this it not dinner food! --rastaf0 - On_Consume() - if(prob(unpopped)) //lol ...what's the point? - usr << "\red You bite down on an un-popped kernel!" - unpopped = max(0, unpopped-1) - ..() +/obj/item/weapon/reagent_containers/food/snacks/popcorn/New() + ..() + unpopped = rand(1,10) + reagents.add_reagent("nutriment", 2) + bitesize = 0.1 //this snack is supposed to be eating during looooong time. And this it not dinner food! --rastaf0 +/obj/item/weapon/reagent_containers/food/snacks/popcorn/On_Consume() + if(prob(unpopped)) //lol ...what's the point? + usr << "\red You bite down on an un-popped kernel!" + unpopped = max(0, unpopped-1) + ..() /obj/item/weapon/reagent_containers/food/snacks/sosjerky name = "Scaredy's Private Reserve Beef Jerky" @@ -1194,7 +1194,7 @@ filling_color = "#631212" center_of_mass = list("x"=15, "y"=9) - New() +/obj/item/weapon/reagent_containers/food/snacks/sosjerky/New() ..() reagents.add_reagent("protein", 4) bitesize = 2 @@ -1207,9 +1207,9 @@ filling_color = "#343834" center_of_mass = list("x"=15, "y"=4) - New() - ..() - reagents.add_reagent("nutriment", 6) +/obj/item/weapon/reagent_containers/food/snacks/no_raisin/New() + ..() + reagents.add_reagent("nutriment", 6) /obj/item/weapon/reagent_containers/food/snacks/spacetwinkie name = "Space Twinkie" @@ -1218,10 +1218,10 @@ filling_color = "#FFE591" center_of_mass = list("x"=15, "y"=11) - New() - ..() - reagents.add_reagent("sugar", 4) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie/New() + ..() + reagents.add_reagent("sugar", 4) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers name = "Cheesie Honkers" @@ -1231,10 +1231,10 @@ filling_color = "#FFA305" center_of_mass = list("x"=15, "y"=9) - New() - ..() - reagents.add_reagent("nutriment", 4) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers/New() + ..() + reagents.add_reagent("nutriment", 4) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/syndicake name = "Syndi-Cakes" @@ -1244,11 +1244,12 @@ center_of_mass = list("x"=16, "y"=10) trash = /obj/item/trash/syndi_cakes - New() - ..() - reagents.add_reagent("nutriment", 4) - reagents.add_reagent("doctorsdelight", 5) - bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/syndicake/New() + ..() + reagents.add_reagent("nutriment", 4) + reagents.add_reagent("doctorsdelight", 5) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato name = "Loaded Baked Potato" @@ -1257,11 +1258,11 @@ filling_color = "#9C7A68" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("protein", 3) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato/New() + ..() + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("protein", 3) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/fries name = "Space Fries" @@ -1271,10 +1272,10 @@ filling_color = "#EDDD00" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 4) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/fries/New() + ..() + reagents.add_reagent("nutriment", 4) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/soydope name = "Soy Dope" @@ -1284,10 +1285,10 @@ filling_color = "#C4BF76" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 2) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/soydope/New() + ..() + reagents.add_reagent("nutriment", 2) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/spagetti name = "Spaghetti" @@ -1296,10 +1297,10 @@ filling_color = "#EDDD00" center_of_mass = list("x"=16, "y"=16) - New() - ..() - reagents.add_reagent("nutriment", 1) - bitesize = 1 +/obj/item/weapon/reagent_containers/food/snacks/spagetti/New() + ..() + reagents.add_reagent("nutriment", 1) + bitesize = 1 /obj/item/weapon/reagent_containers/food/snacks/cheesyfries name = "Cheesy Fries" @@ -1309,11 +1310,11 @@ filling_color = "#EDDD00" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("protein", 2) - reagents.add_reagent("nutriment", 4) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/cheesyfries/New() + ..() + reagents.add_reagent("protein", 2) + reagents.add_reagent("nutriment", 4) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/fortunecookie name = "Fortune cookie" @@ -1322,10 +1323,10 @@ filling_color = "#E8E79E" center_of_mass = list("x"=15, "y"=14) - New() - ..() - reagents.add_reagent("nutriment", 3) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/fortunecookie/New() + ..() + reagents.add_reagent("nutriment", 3) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/badrecipe name = "Burned mess" @@ -1334,11 +1335,11 @@ filling_color = "#211F02" center_of_mass = list("x"=16, "y"=12) - New() - ..() - reagents.add_reagent("toxin", 1) - reagents.add_reagent("carbon", 3) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/badrecipe/New() + ..() + reagents.add_reagent("toxin", 1) + reagents.add_reagent("carbon", 3) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/meatsteak name = "Meat steak" @@ -1348,12 +1349,12 @@ filling_color = "#7A3D11" center_of_mass = list("x"=16, "y"=13) - New() - ..() - reagents.add_reagent("protein", 4) - reagents.add_reagent("sodiumchloride", 1) - reagents.add_reagent("blackpepper", 1) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/meatsteak/New() + ..() + reagents.add_reagent("protein", 4) + reagents.add_reagent("sodiumchloride", 1) + reagents.add_reagent("blackpepper", 1) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/spacylibertyduff name = "Spacy Liberty Duff" @@ -1363,11 +1364,11 @@ filling_color = "#42B873" center_of_mass = list("x"=16, "y"=8) - New() - ..() - reagents.add_reagent("nutriment", 6) - reagents.add_reagent("psilocybin", 6) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/spacylibertyduff/New() + ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("psilocybin", 6) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/amanitajelly name = "Amanita Jelly" @@ -1377,12 +1378,12 @@ filling_color = "#ED0758" center_of_mass = list("x"=16, "y"=5) - New() - ..() - reagents.add_reagent("nutriment", 6) - reagents.add_reagent("amatoxin", 6) - reagents.add_reagent("psilocybin", 3) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/amanitajelly/New() + ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("amatoxin", 6) + reagents.add_reagent("psilocybin", 3) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/poppypretzel name = "Poppy pretzel" @@ -1392,11 +1393,10 @@ filling_color = "#916E36" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 5) - bitesize = 2 - +/obj/item/weapon/reagent_containers/food/snacks/poppypretzel/New() + ..() + reagents.add_reagent("nutriment", 5) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/meatballsoup name = "Meatball soup" @@ -1406,11 +1406,11 @@ filling_color = "#785210" center_of_mass = list("x"=16, "y"=8) - New() - ..() - reagents.add_reagent("protein", 8) - reagents.add_reagent("water", 5) - bitesize = 5 +/obj/item/weapon/reagent_containers/food/snacks/meatballsoup/New() + ..() + reagents.add_reagent("protein", 8) + reagents.add_reagent("water", 5) + bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/slimesoup name = "slime soup" @@ -1418,11 +1418,11 @@ icon_state = "slimesoup" //nonexistant? filling_color = "#C4DBA0" - New() - ..() - reagents.add_reagent("slimejelly", 5) - reagents.add_reagent("water", 10) - bitesize = 5 +/obj/item/weapon/reagent_containers/food/snacks/slimesoup/New() + ..() + reagents.add_reagent("slimejelly", 5) + reagents.add_reagent("water", 10) + bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/bloodsoup name = "Tomato soup" @@ -1431,12 +1431,12 @@ filling_color = "#FF0000" center_of_mass = list("x"=16, "y"=7) - New() - ..() - reagents.add_reagent("protein", 2) - reagents.add_reagent("blood", 10) - reagents.add_reagent("water", 5) - bitesize = 5 +/obj/item/weapon/reagent_containers/food/snacks/bloodsoup/New() + ..() + reagents.add_reagent("protein", 2) + reagents.add_reagent("blood", 10) + reagents.add_reagent("water", 5) + bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/clownstears name = "Clown's Tears" @@ -1445,12 +1445,12 @@ filling_color = "#C4FBFF" center_of_mass = list("x"=16, "y"=7) - New() - ..() - reagents.add_reagent("nutriment", 4) - reagents.add_reagent("banana", 5) - reagents.add_reagent("water", 10) - bitesize = 5 +/obj/item/weapon/reagent_containers/food/snacks/clownstears/New() + ..() + reagents.add_reagent("nutriment", 4) + reagents.add_reagent("banana", 5) + reagents.add_reagent("water", 10) + bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/vegetablesoup name = "Vegetable soup" @@ -1460,11 +1460,11 @@ filling_color = "#AFC4B5" center_of_mass = list("x"=16, "y"=8) - New() - ..() - reagents.add_reagent("nutriment", 8) - reagents.add_reagent("water", 5) - bitesize = 5 +/obj/item/weapon/reagent_containers/food/snacks/vegetablesoup/New() + ..() + reagents.add_reagent("nutriment", 8) + reagents.add_reagent("water", 5) + bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/nettlesoup name = "Nettle soup" @@ -1474,12 +1474,12 @@ filling_color = "#AFC4B5" center_of_mass = list("x"=16, "y"=7) - New() - ..() - reagents.add_reagent("nutriment", 8) - reagents.add_reagent("water", 5) - reagents.add_reagent("tricordrazine", 5) - bitesize = 5 +/obj/item/weapon/reagent_containers/food/snacks/nettlesoup/New() + ..() + reagents.add_reagent("nutriment", 8) + reagents.add_reagent("water", 5) + reagents.add_reagent("tricordrazine", 5) + bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/mysterysoup name = "Mystery soup" @@ -1489,45 +1489,45 @@ filling_color = "#F082FF" center_of_mass = list("x"=16, "y"=6) - New() - ..() - var/mysteryselect = pick(1,2,3,4,5,6,7,8,9,10) - switch(mysteryselect) - if(1) - reagents.add_reagent("nutriment", 6) - reagents.add_reagent("capsaicin", 3) - reagents.add_reagent("tomatojuice", 2) - if(2) - reagents.add_reagent("nutriment", 6) - reagents.add_reagent("frostoil", 3) - reagents.add_reagent("tomatojuice", 2) - if(3) - reagents.add_reagent("nutriment", 5) - reagents.add_reagent("water", 5) - reagents.add_reagent("tricordrazine", 5) - if(4) - reagents.add_reagent("nutriment", 5) - reagents.add_reagent("water", 10) - if(5) - reagents.add_reagent("nutriment", 2) - reagents.add_reagent("banana", 10) - if(6) - reagents.add_reagent("nutriment", 6) - reagents.add_reagent("blood", 10) - if(7) - reagents.add_reagent("slimejelly", 10) - reagents.add_reagent("water", 10) - if(8) - reagents.add_reagent("carbon", 10) - reagents.add_reagent("toxin", 10) - if(9) - reagents.add_reagent("nutriment", 5) - reagents.add_reagent("tomatojuice", 10) - if(10) - reagents.add_reagent("nutriment", 6) - reagents.add_reagent("tomatojuice", 5) - reagents.add_reagent("imidazoline", 5) - bitesize = 5 +/obj/item/weapon/reagent_containers/food/snacks/mysterysoup/New() + ..() + var/mysteryselect = pick(1,2,3,4,5,6,7,8,9,10) + switch(mysteryselect) + if(1) + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("capsaicin", 3) + reagents.add_reagent("tomatojuice", 2) + if(2) + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("frostoil", 3) + reagents.add_reagent("tomatojuice", 2) + if(3) + reagents.add_reagent("nutriment", 5) + reagents.add_reagent("water", 5) + reagents.add_reagent("tricordrazine", 5) + if(4) + reagents.add_reagent("nutriment", 5) + reagents.add_reagent("water", 10) + if(5) + reagents.add_reagent("nutriment", 2) + reagents.add_reagent("banana", 10) + if(6) + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("blood", 10) + if(7) + reagents.add_reagent("slimejelly", 10) + reagents.add_reagent("water", 10) + if(8) + reagents.add_reagent("carbon", 10) + reagents.add_reagent("toxin", 10) + if(9) + reagents.add_reagent("nutriment", 5) + reagents.add_reagent("tomatojuice", 10) + if(10) + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("tomatojuice", 5) + reagents.add_reagent("imidazoline", 5) + bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/wishsoup name = "Wish Soup" @@ -1537,13 +1537,13 @@ filling_color = "#D1F4FF" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("water", 10) - bitesize = 5 - if(prob(25)) - src.desc = "A wish come true!" - reagents.add_reagent("nutriment", 8) +/obj/item/weapon/reagent_containers/food/snacks/wishsoup/New() + ..() + reagents.add_reagent("water", 10) + bitesize = 5 + if(prob(25)) + src.desc = "A wish come true!" + reagents.add_reagent("nutriment", 8) /obj/item/weapon/reagent_containers/food/snacks/hotchili name = "Hot Chili" @@ -1553,14 +1553,13 @@ filling_color = "#FF3C00" center_of_mass = list("x"=15, "y"=9) - New() - ..() - reagents.add_reagent("protein", 3) - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("capsaicin", 3) - reagents.add_reagent("tomatojuice", 2) - bitesize = 5 - +/obj/item/weapon/reagent_containers/food/snacks/hotchili/New() + ..() + reagents.add_reagent("protein", 3) + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("capsaicin", 3) + reagents.add_reagent("tomatojuice", 2) + bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/coldchili name = "Cold Chili" @@ -1570,33 +1569,14 @@ center_of_mass = list("x"=15, "y"=9) trash = /obj/item/trash/snack_bowl - New() - ..() - reagents.add_reagent("protein", 3) - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("frostoil", 3) - reagents.add_reagent("tomatojuice", 2) - bitesize = 5 -/* No more of this -/obj/item/weapon/reagent_containers/food/snacks/telebacon - name = "Tele Bacon" - desc = "It tastes a little odd but it is still delicious." - icon_state = "bacon" - var/obj/item/device/radio/beacon/bacon/baconbeacon - bitesize = 2 - center_of_mass = list("x"=18, "y"=13) - - New() - ..() - reagents.add_reagent("nutriment", 4) - baconbeacon = new /obj/item/device/radio/beacon/bacon(src) - - On_Consume() - if(!reagents.total_volume) - baconbeacon.loc = usr - baconbeacon.digest_delay() -*/ +/obj/item/weapon/reagent_containers/food/snacks/coldchili/New() + ..() + reagents.add_reagent("protein", 3) + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("frostoil", 3) + reagents.add_reagent("tomatojuice", 2) + bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/monkeycube name = "monkey cube" @@ -1610,33 +1590,33 @@ var/wrapped = 0 var/monkey_type = "Monkey" - New() - ..() - reagents.add_reagent("protein", 10) +/obj/item/weapon/reagent_containers/food/snacks/monkeycube/New() + ..() + reagents.add_reagent("protein", 10) - attack_self(mob/user as mob) - if(wrapped) - Unwrap(user) +/obj/item/weapon/reagent_containers/food/snacks/monkeycube/attack_self(mob/user as mob) + if(wrapped) + Unwrap(user) - proc/Expand() - src.visible_message("\The [src] expands!") - var/mob/living/carbon/human/H = new(get_turf(src)) - H.set_species(monkey_type) - H.real_name = H.species.get_random_name() - H.name = H.real_name - if(ismob(loc)) - var/mob/M = loc - M.unEquip(src) - qdel(src) - return 1 +/obj/item/weapon/reagent_containers/food/snacks/monkeycube/proc/Expand() + src.visible_message("\The [src] expands!") + var/mob/living/carbon/human/H = new(get_turf(src)) + H.set_species(monkey_type) + H.real_name = H.species.get_random_name() + H.name = H.real_name + if(ismob(loc)) + var/mob/M = loc + M.unEquip(src) + qdel(src) + return 1 - proc/Unwrap(mob/user as mob) - icon_state = "monkeycube" - desc = "Just add water!" - user << "You unwrap the cube." - wrapped = 0 - flags |= OPENCONTAINER - return +/obj/item/weapon/reagent_containers/food/snacks/monkeycube/proc/Unwrap(mob/user as mob) + icon_state = "monkeycube" + desc = "Just add water!" + user << "You unwrap the cube." + wrapped = 0 + flags |= OPENCONTAINER + return /obj/item/weapon/reagent_containers/food/snacks/monkeycube/on_reagent_change() if(reagents.has_reagent("water")) @@ -1672,17 +1652,16 @@ name = "neaera cube" monkey_type = "Neaera" - /obj/item/weapon/reagent_containers/food/snacks/spellburger name = "Spell Burger" desc = "This is absolutely Ei Nath." icon_state = "spellburger" filling_color = "#D505FF" - New() - ..() - reagents.add_reagent("nutriment", 6) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/spellburger/New() + ..() + reagents.add_reagent("nutriment", 6) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/bigbiteburger name = "Big Bite Burger" @@ -1691,11 +1670,11 @@ filling_color = "#E3D681" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("protein", 10) - reagents.add_reagent("nutriment", 4) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/bigbiteburger/New() + ..() + reagents.add_reagent("protein", 10) + reagents.add_reagent("nutriment", 4) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/enchiladas name = "Enchiladas" @@ -1705,12 +1684,12 @@ filling_color = "#A36A1F" center_of_mass = list("x"=16, "y"=13) - New() - ..() - reagents.add_reagent("protein", 6) - reagents.add_reagent("nutriment",2) - reagents.add_reagent("capsaicin", 6) - bitesize = 4 +/obj/item/weapon/reagent_containers/food/snacks/enchiladas/New() + ..() + reagents.add_reagent("protein", 6) + reagents.add_reagent("nutriment",2) + reagents.add_reagent("capsaicin", 6) + bitesize = 4 /obj/item/weapon/reagent_containers/food/snacks/monkeysdelight name = "monkey's Delight" @@ -1720,13 +1699,13 @@ filling_color = "#5C3C11" center_of_mass = list("x"=16, "y"=13) - New() - ..() - reagents.add_reagent("protein", 10) - reagents.add_reagent("banana", 5) - reagents.add_reagent("blackpepper", 1) - reagents.add_reagent("sodiumchloride", 1) - bitesize = 6 +/obj/item/weapon/reagent_containers/food/snacks/monkeysdelight/New() + ..() + reagents.add_reagent("protein", 10) + reagents.add_reagent("banana", 5) + reagents.add_reagent("blackpepper", 1) + reagents.add_reagent("sodiumchloride", 1) + bitesize = 6 /obj/item/weapon/reagent_containers/food/snacks/baguette name = "Baguette" @@ -1735,12 +1714,12 @@ filling_color = "#E3D796" center_of_mass = list("x"=18, "y"=12) - New() - ..() - reagents.add_reagent("nutriment", 6) - reagents.add_reagent("blackpepper", 1) - reagents.add_reagent("sodiumchloride", 1) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/baguette/New() + ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("blackpepper", 1) + reagents.add_reagent("sodiumchloride", 1) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/fishandchips name = "Fish and Chips" @@ -1749,12 +1728,12 @@ filling_color = "#E3D796" center_of_mass = list("x"=16, "y"=16) - New() - ..() - reagents.add_reagent("protein", 3) - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("carpotoxin", 3) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/fishandchips/New() + ..() + reagents.add_reagent("protein", 3) + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("carpotoxin", 3) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/sandwich name = "Sandwich" @@ -1764,11 +1743,11 @@ filling_color = "#D9BE29" center_of_mass = list("x"=16, "y"=4) - New() - ..() - reagents.add_reagent("protein", 3) - reagents.add_reagent("nutriment", 3) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sandwich/New() + ..() + reagents.add_reagent("protein", 3) + reagents.add_reagent("nutriment", 3) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/toastedsandwich name = "Toasted Sandwich" @@ -1778,12 +1757,12 @@ filling_color = "#D9BE29" center_of_mass = list("x"=16, "y"=4) - New() - ..() - reagents.add_reagent("protein", 3) - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("carbon", 2) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/toastedsandwich/New() + ..() + reagents.add_reagent("protein", 3) + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("carbon", 2) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/grilledcheese name = "Grilled Cheese Sandwich" @@ -1792,11 +1771,11 @@ trash = /obj/item/trash/plate filling_color = "#D9BE29" - New() - ..() - reagents.add_reagent("protein", 4) - reagents.add_reagent("nutriment", 3) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/grilledcheese/New() + ..() + reagents.add_reagent("protein", 4) + reagents.add_reagent("nutriment", 3) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/tomatosoup name = "Tomato Soup" @@ -1806,11 +1785,11 @@ filling_color = "#D92929" center_of_mass = list("x"=16, "y"=7) - New() - ..() - reagents.add_reagent("nutriment", 5) - reagents.add_reagent("tomatojuice", 10) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/tomatosoup/New() + ..() + reagents.add_reagent("nutriment", 5) + reagents.add_reagent("tomatojuice", 10) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/rofflewaffles name = "Roffle Waffles" @@ -1820,11 +1799,11 @@ filling_color = "#FF00F7" center_of_mass = list("x"=15, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 8) - reagents.add_reagent("psilocybin", 8) - bitesize = 4 +/obj/item/weapon/reagent_containers/food/snacks/rofflewaffles/New() + ..() + reagents.add_reagent("nutriment", 8) + reagents.add_reagent("psilocybin", 8) + bitesize = 4 /obj/item/weapon/reagent_containers/food/snacks/stew name = "Stew" @@ -1833,14 +1812,14 @@ filling_color = "#9E673A" center_of_mass = list("x"=16, "y"=5) - New() - ..() - reagents.add_reagent("protein", 4) - reagents.add_reagent("nutriment", 6) - reagents.add_reagent("tomatojuice", 5) - reagents.add_reagent("imidazoline", 5) - reagents.add_reagent("water", 5) - bitesize = 10 +/obj/item/weapon/reagent_containers/food/snacks/stew/New() + ..() + reagents.add_reagent("protein", 4) + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("tomatojuice", 5) + reagents.add_reagent("imidazoline", 5) + reagents.add_reagent("water", 5) + bitesize = 10 /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast name = "Jellied Toast" @@ -1850,20 +1829,18 @@ filling_color = "#B572AB" center_of_mass = list("x"=16, "y"=8) - New() - ..() - reagents.add_reagent("nutriment", 1) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/New() + ..() + reagents.add_reagent("nutriment", 1) + bitesize = 3 -/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry - New() - ..() - reagents.add_reagent("cherryjelly", 5) +/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry/New() + ..() + reagents.add_reagent("cherryjelly", 5) -/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime - New() - ..() - reagents.add_reagent("slimejelly", 5) +/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime/New() + ..() + reagents.add_reagent("slimejelly", 5) /obj/item/weapon/reagent_containers/food/snacks/jellyburger name = "Jelly Burger" @@ -1872,20 +1849,18 @@ filling_color = "#B572AB" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 5) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/jellyburger/New() + ..() + reagents.add_reagent("nutriment", 5) + bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/jellyburger/slime - New() - ..() - reagents.add_reagent("slimejelly", 5) +/obj/item/weapon/reagent_containers/food/snacks/jellyburger/slime/New() + ..() + reagents.add_reagent("slimejelly", 5) -/obj/item/weapon/reagent_containers/food/snacks/jellyburger/cherry - New() - ..() - reagents.add_reagent("cherryjelly", 5) +/obj/item/weapon/reagent_containers/food/snacks/jellyburger/cherry/New() + ..() + reagents.add_reagent("cherryjelly", 5) /obj/item/weapon/reagent_containers/food/snacks/milosoup name = "Milosoup" @@ -1894,11 +1869,11 @@ trash = /obj/item/trash/snack_bowl center_of_mass = list("x"=16, "y"=7) - New() - ..() - reagents.add_reagent("nutriment", 8) - reagents.add_reagent("water", 5) - bitesize = 4 +/obj/item/weapon/reagent_containers/food/snacks/milosoup/New() + ..() + reagents.add_reagent("nutriment", 8) + reagents.add_reagent("water", 5) + bitesize = 4 /obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat name = "Stewed Soy Meat" @@ -1907,10 +1882,10 @@ trash = /obj/item/trash/plate center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat/New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/boiledspagetti name = "Boiled Spaghetti" @@ -1920,10 +1895,10 @@ filling_color = "#FCEE81" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 2) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/boiledspagetti/New() + ..() + reagents.add_reagent("nutriment", 2) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/boiledrice name = "Boiled Rice" @@ -1933,10 +1908,10 @@ filling_color = "#FFFBDB" center_of_mass = list("x"=17, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 2) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/boiledrice/New() + ..() + reagents.add_reagent("nutriment", 2) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/ricepudding name = "Rice Pudding" @@ -1946,10 +1921,10 @@ filling_color = "#FFFBDB" center_of_mass = list("x"=17, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 4) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/ricepudding/New() + ..() + reagents.add_reagent("nutriment", 4) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/pastatomato name = "Spaghetti" @@ -1959,11 +1934,11 @@ filling_color = "#DE4545" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 6) - reagents.add_reagent("tomatojuice", 10) - bitesize = 4 +/obj/item/weapon/reagent_containers/food/snacks/pastatomato/New() + ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("tomatojuice", 10) + bitesize = 4 /obj/item/weapon/reagent_containers/food/snacks/meatballspagetti name = "Spaghetti & Meatballs" @@ -1973,11 +1948,11 @@ filling_color = "#DE4545" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("protein", 4) - reagents.add_reagent("nutriment", 4) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/meatballspagetti/New() + ..() + reagents.add_reagent("protein", 4) + reagents.add_reagent("nutriment", 4) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/spesslaw name = "Spesslaw" @@ -1986,11 +1961,11 @@ filling_color = "#DE4545" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("protein", 4) - reagents.add_reagent("nutriment", 4) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/spesslaw/New() + ..() + reagents.add_reagent("protein", 4) + reagents.add_reagent("nutriment", 4) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/carrotfries name = "Carrot Fries" @@ -2000,11 +1975,11 @@ filling_color = "#FAA005" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 3) - reagents.add_reagent("imidazoline", 3) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/carrotfries/New() + ..() + reagents.add_reagent("nutriment", 3) + reagents.add_reagent("imidazoline", 3) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/superbiteburger name = "Super Bite Burger" @@ -2013,11 +1988,11 @@ filling_color = "#CCA26A" center_of_mass = list("x"=16, "y"=3) - New() - ..() - reagents.add_reagent("protein", 25) - reagents.add_reagent("nutriment", 25) - bitesize = 10 +/obj/item/weapon/reagent_containers/food/snacks/superbiteburger/New() + ..() + reagents.add_reagent("protein", 25) + reagents.add_reagent("nutriment", 25) + bitesize = 10 /obj/item/weapon/reagent_containers/food/snacks/candiedapple name = "Candied Apple" @@ -2026,10 +2001,10 @@ filling_color = "#F21873" center_of_mass = list("x"=15, "y"=13) - New() - ..() - reagents.add_reagent("nutriment", 3) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/candiedapple/New() + ..() + reagents.add_reagent("nutriment", 3) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/applepie name = "Apple Pie" @@ -2038,11 +2013,10 @@ filling_color = "#E0EDC5" center_of_mass = list("x"=16, "y"=13) - New() - ..() - reagents.add_reagent("nutriment", 4) - bitesize = 3 - +/obj/item/weapon/reagent_containers/food/snacks/applepie/New() + ..() + reagents.add_reagent("nutriment", 4) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/cherrypie name = "Cherry Pie" @@ -2051,10 +2025,10 @@ filling_color = "#FF525A" center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 4) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/cherrypie/New() + ..() + reagents.add_reagent("nutriment", 4) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/twobread name = "Two Bread" @@ -2063,10 +2037,10 @@ filling_color = "#DBCC9A" center_of_mass = list("x"=15, "y"=12) - New() - ..() - reagents.add_reagent("nutriment", 2) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/twobread/New() + ..() + reagents.add_reagent("nutriment", 2) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/jellysandwich name = "Jelly Sandwich" @@ -2076,29 +2050,28 @@ filling_color = "#9E3A78" center_of_mass = list("x"=16, "y"=8) - New() - ..() - reagents.add_reagent("nutriment", 2) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/New() + ..() + reagents.add_reagent("nutriment", 2) + bitesize = 3 -/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime - New() - ..() - reagents.add_reagent("slimejelly", 5) +/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime/New() + ..() + reagents.add_reagent("slimejelly", 5) -/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry - New() - ..() - reagents.add_reagent("cherryjelly", 5) +/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry/New() + ..() + reagents.add_reagent("cherryjelly", 5) /obj/item/weapon/reagent_containers/food/snacks/boiledslimecore name = "Boiled slime Core" desc = "A boiled red thing." icon_state = "boiledslimecore" //nonexistant? - New() - ..() - reagents.add_reagent("slimejelly", 5) - bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/boiledslimecore/New() + ..() + reagents.add_reagent("slimejelly", 5) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/mint name = "mint" @@ -2107,10 +2080,10 @@ filling_color = "#F2F2F2" center_of_mass = list("x"=16, "y"=14) - New() - ..() - reagents.add_reagent("mint", 1) - bitesize = 1 +/obj/item/weapon/reagent_containers/food/snacks/mint/New() + ..() + reagents.add_reagent("mint", 1) + bitesize = 1 /obj/item/weapon/reagent_containers/food/snacks/mushroomsoup name = "chantrelle soup" @@ -2120,10 +2093,10 @@ filling_color = "#E386BF" center_of_mass = list("x"=17, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/mushroomsoup/New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit name = "plump helmet biscuit" @@ -2132,17 +2105,17 @@ filling_color = "#CFB4C4" center_of_mass = list("x"=16, "y"=13) - New() - ..() - if(prob(10)) - name = "exceptional plump helmet biscuit" - desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!" - reagents.add_reagent("nutriment", 8) - reagents.add_reagent("tricordrazine", 5) - bitesize = 2 - else - reagents.add_reagent("nutriment", 5) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit/New() + ..() + if(prob(10)) + name = "exceptional plump helmet biscuit" + desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!" + reagents.add_reagent("nutriment", 8) + reagents.add_reagent("tricordrazine", 5) + bitesize = 2 + else + reagents.add_reagent("nutriment", 5) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/chawanmushi name = "chawanmushi" @@ -2152,10 +2125,10 @@ filling_color = "#F0F2E4" center_of_mass = list("x"=17, "y"=10) - New() - ..() - reagents.add_reagent("protein", 5) - bitesize = 1 +/obj/item/weapon/reagent_containers/food/snacks/chawanmushi/New() + ..() + reagents.add_reagent("protein", 5) + bitesize = 1 /obj/item/weapon/reagent_containers/food/snacks/beetsoup name = "beet soup" @@ -2165,11 +2138,11 @@ filling_color = "#FAC9FF" center_of_mass = list("x"=15, "y"=8) - New() - ..() - name = pick(list("borsch","bortsch","borstch","borsh","borshch","borscht")) - reagents.add_reagent("nutriment", 8) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/beetsoup/New() + ..() + name = pick(list("borsch","bortsch","borstch","borsh","borshch","borscht")) + reagents.add_reagent("nutriment", 8) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/tossedsalad name = "tossed salad" @@ -2178,10 +2151,11 @@ trash = /obj/item/trash/snack_bowl filling_color = "#76B87F" center_of_mass = list("x"=17, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 8) - bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/tossedsalad/New() + ..() + reagents.add_reagent("nutriment", 8) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/validsalad name = "valid salad" @@ -2191,11 +2165,11 @@ filling_color = "#76B87F" center_of_mass = list("x"=17, "y"=11) - New() - ..() - reagents.add_reagent("protein", 2) - reagents.add_reagent("nutriment", 6) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/validsalad/New() + ..() + reagents.add_reagent("protein", 2) + reagents.add_reagent("nutriment", 6) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/appletart name = "golden apple streusel tart" @@ -2205,11 +2179,11 @@ filling_color = "#FFFF00" center_of_mass = list("x"=16, "y"=18) - New() - ..() - reagents.add_reagent("nutriment", 8) - reagents.add_reagent("gold", 5) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/appletart/New() + ..() + reagents.add_reagent("nutriment", 8) + reagents.add_reagent("gold", 5) + bitesize = 3 /////////////////////////////////////////////////Sliceable//////////////////////////////////////// // All the food items that can be sliced into smaller bits like Meatbread and Cheesewheels @@ -2228,11 +2202,11 @@ filling_color = "#FF7575" center_of_mass = list("x"=16, "y"=9) - New() - ..() - reagents.add_reagent("protein", 20) - reagents.add_reagent("nutriment", 10) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread/New() + ..() + reagents.add_reagent("protein", 20) + reagents.add_reagent("nutriment", 10) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice name = "meatbread slice" @@ -2242,7 +2216,7 @@ filling_color = "#FF7575" bitesize = 2 center_of_mass = list("x"=16, "y"=13) - + /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice/New() ..() if(!(reagents.total_volume)) @@ -2258,11 +2232,11 @@ filling_color = "#8AFF75" center_of_mass = list("x"=16, "y"=9) - New() - ..() - reagents.add_reagent("protein", 20) - reagents.add_reagent("nutriment", 10) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread/New() + ..() + reagents.add_reagent("protein", 20) + reagents.add_reagent("nutriment", 10) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice name = "xenomeatbread slice" @@ -2272,7 +2246,7 @@ filling_color = "#8AFF75" bitesize = 2 center_of_mass = list("x"=16, "y"=13) - + /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice/New() ..() if(!(reagents.total_volume)) @@ -2288,11 +2262,11 @@ filling_color = "#EDE5AD" center_of_mass = list("x"=16, "y"=9) - New() - ..() - reagents.add_reagent("banana", 20) - reagents.add_reagent("nutriment", 20) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread/New() + ..() + reagents.add_reagent("banana", 20) + reagents.add_reagent("nutriment", 20) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/bananabreadslice name = "Banana-nut bread slice" @@ -2302,7 +2276,7 @@ filling_color = "#EDE5AD" bitesize = 2 center_of_mass = list("x"=16, "y"=8) - + /obj/item/weapon/reagent_containers/food/snacks/bananabreadslice/New() ..() if(!(reagents.total_volume)) @@ -2318,10 +2292,10 @@ filling_color = "#F7FFE0" center_of_mass = list("x"=16, "y"=9) - New() - ..() - reagents.add_reagent("nutriment", 30) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread/New() + ..() + reagents.add_reagent("nutriment", 30) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice name = "Tofubread slice" @@ -2331,7 +2305,7 @@ filling_color = "#F7FFE0" bitesize = 2 center_of_mass = list("x"=16, "y"=13) - + /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice/New() ..() if(!(reagents.total_volume)) @@ -2347,11 +2321,11 @@ filling_color = "#FFD675" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 25) - reagents.add_reagent("imidazoline", 10) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake/New() + ..() + reagents.add_reagent("nutriment", 25) + reagents.add_reagent("imidazoline", 10) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice name = "Carrot Cake slice" @@ -2361,7 +2335,7 @@ filling_color = "#FFD675" bitesize = 2 center_of_mass = list("x"=16, "y"=14) - + /obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice/New() ..() if(!(reagents.total_volume)) @@ -2377,12 +2351,12 @@ filling_color = "#E6AEDB" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("protein", 25) - reagents.add_reagent("nutriment", 5) - reagents.add_reagent("alkysine", 10) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake/New() + ..() + reagents.add_reagent("protein", 25) + reagents.add_reagent("nutriment", 5) + reagents.add_reagent("alkysine", 10) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/braincakeslice name = "Brain Cake slice" @@ -2392,7 +2366,7 @@ filling_color = "#E6AEDB" bitesize = 2 center_of_mass = list("x"=16, "y"=12) - + /obj/item/weapon/reagent_containers/food/snacks/braincakeslice/New() ..() if(!(reagents.total_volume)) @@ -2409,11 +2383,11 @@ filling_color = "#FAF7AF" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("protein", 15) - reagents.add_reagent("nutriment", 10) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake/New() + ..() + reagents.add_reagent("protein", 15) + reagents.add_reagent("nutriment", 10) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice name = "Cheese Cake slice" @@ -2423,7 +2397,7 @@ filling_color = "#FAF7AF" bitesize = 2 center_of_mass = list("x"=16, "y"=14) - + /obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice/New() ..() if(!(reagents.total_volume)) @@ -2439,9 +2413,9 @@ filling_color = "#F7EDD5" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 20) +/obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake/New() + ..() + reagents.add_reagent("nutriment", 20) /obj/item/weapon/reagent_containers/food/snacks/plaincakeslice name = "Vanilla Cake slice" @@ -2451,7 +2425,7 @@ filling_color = "#F7EDD5" bitesize = 2 center_of_mass = list("x"=16, "y"=14) - + /obj/item/weapon/reagent_containers/food/snacks/plaincakeslice/New() ..() if(!(reagents.total_volume)) @@ -2466,9 +2440,9 @@ filling_color = "#FADA8E" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 20) +/obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake/New() + ..() + reagents.add_reagent("nutriment", 20) /obj/item/weapon/reagent_containers/food/snacks/orangecakeslice name = "Orange Cake slice" @@ -2478,7 +2452,7 @@ filling_color = "#FADA8E" bitesize = 2 center_of_mass = list("x"=16, "y"=14) - + /obj/item/weapon/reagent_containers/food/snacks/orangecakeslice/New() ..() if(!(reagents.total_volume)) @@ -2493,9 +2467,9 @@ filling_color = "#CBFA8E" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 20) +/obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake/New() + ..() + reagents.add_reagent("nutriment", 20) /obj/item/weapon/reagent_containers/food/snacks/limecakeslice name = "Lime Cake slice" @@ -2505,7 +2479,7 @@ filling_color = "#CBFA8E" bitesize = 2 center_of_mass = list("x"=16, "y"=14) - + /obj/item/weapon/reagent_containers/food/snacks/limecakeslice/New() ..() if(!(reagents.total_volume)) @@ -2520,9 +2494,9 @@ filling_color = "#FAFA8E" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 20) +/obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake/New() + ..() + reagents.add_reagent("nutriment", 20) /obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice name = "Lemon Cake slice" @@ -2532,7 +2506,7 @@ filling_color = "#FAFA8E" bitesize = 2 center_of_mass = list("x"=16, "y"=14) - + /obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice/New() ..() if(!(reagents.total_volume)) @@ -2547,9 +2521,9 @@ filling_color = "#805930" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 20) +/obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake/New() + ..() + reagents.add_reagent("nutriment", 20) /obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice name = "Chocolate Cake slice" @@ -2559,7 +2533,7 @@ filling_color = "#805930" bitesize = 2 center_of_mass = list("x"=16, "y"=14) - + /obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice/New() ..() if(!(reagents.total_volume)) @@ -2574,10 +2548,10 @@ filling_color = "#FFF700" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("protein", 20) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel/New() + ..() + reagents.add_reagent("protein", 20) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/cheesewedge name = "Cheese wedge" @@ -2596,11 +2570,11 @@ filling_color = "#FFD6D6" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 20) - reagents.add_reagent("sprinkles", 10) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake/New() + ..() + reagents.add_reagent("nutriment", 20) + reagents.add_reagent("sprinkles", 10) + bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice name = "Birthday Cake slice" @@ -2610,7 +2584,7 @@ filling_color = "#FFD6D6" bitesize = 2 center_of_mass = list("x"=16, "y"=14) - + /obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice/New() ..() if(!(reagents.total_volume)) @@ -2626,10 +2600,10 @@ filling_color = "#FFE396" center_of_mass = list("x"=16, "y"=9) - New() - ..() - reagents.add_reagent("nutriment", 6) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/bread/New() + ..() + reagents.add_reagent("nutriment", 6) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/breadslice name = "Bread slice" @@ -2639,7 +2613,7 @@ filling_color = "#D27332" bitesize = 2 center_of_mass = list("x"=16, "y"=4) - + /obj/item/weapon/reagent_containers/food/snacks/breadslice/New() ..() if(!(reagents.total_volume)) @@ -2655,11 +2629,11 @@ filling_color = "#FFF896" center_of_mass = list("x"=16, "y"=9) - New() - ..() - reagents.add_reagent("protein", 15) - reagents.add_reagent("nutriment", 5) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread/New() + ..() + reagents.add_reagent("protein", 15) + reagents.add_reagent("nutriment", 5) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice name = "Cream Cheese Bread slice" @@ -2669,7 +2643,7 @@ filling_color = "#FFF896" bitesize = 2 center_of_mass = list("x"=16, "y"=13) - + /obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice/New() ..() if(!(reagents.total_volume)) @@ -2683,7 +2657,7 @@ filling_color = "#FF3867" bitesize = 2 center_of_mass = list("x"=16, "y"=10) - + /obj/item/weapon/reagent_containers/food/snacks/watermelonslice/New() ..() if(!(reagents.total_volume)) @@ -2698,9 +2672,9 @@ filling_color = "#EBF5B8" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 15) +/obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake/New() + ..() + reagents.add_reagent("nutriment", 15) /obj/item/weapon/reagent_containers/food/snacks/applecakeslice name = "Apple Cake slice" @@ -2710,7 +2684,7 @@ filling_color = "#EBF5B8" bitesize = 2 center_of_mass = list("x"=16, "y"=14) - + /obj/item/weapon/reagent_containers/food/snacks/applecakeslice/New() ..() if(!(reagents.total_volume)) @@ -2725,9 +2699,9 @@ filling_color = "#F5B951" center_of_mass = list("x"=16, "y"=10) - New() - ..() - reagents.add_reagent("nutriment", 15) +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie/New() + ..() + reagents.add_reagent("nutriment", 15) /obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice name = "Pumpkin Pie slice" @@ -2737,7 +2711,7 @@ filling_color = "#F5B951" bitesize = 2 center_of_mass = list("x"=16, "y"=12) - + /obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice/New() ..() if(!(reagents.total_volume)) @@ -2750,11 +2724,9 @@ filling_color = "#F5DEB8" center_of_mass = list("x"=17, "y"=6) - New() - ..() - reagents.add_reagent("nutriment", 1) - - +/obj/item/weapon/reagent_containers/food/snacks/cracker/New() + ..() + reagents.add_reagent("nutriment", 1) /////////////////////////////////////////////////PIZZA//////////////////////////////////////// @@ -2770,12 +2742,12 @@ slices_num = 6 center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 35) - reagents.add_reagent("protein", 5) - reagents.add_reagent("tomatojuice", 6) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita/New() + ..() + reagents.add_reagent("nutriment", 35) + reagents.add_reagent("protein", 5) + reagents.add_reagent("tomatojuice", 6) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/margheritaslice name = "Margherita slice" @@ -2784,7 +2756,7 @@ filling_color = "#BAA14C" bitesize = 2 center_of_mass = list("x"=18, "y"=13) - + /obj/item/weapon/reagent_containers/food/snacks/margheritaslice/New() ..() if(!(reagents.total_volume)) @@ -2800,11 +2772,11 @@ slices_num = 6 center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("protein", 44) - reagents.add_reagent("tomatojuice", 6) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza/New() + ..() + reagents.add_reagent("protein", 44) + reagents.add_reagent("tomatojuice", 6) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice name = "Meatpizza slice" @@ -2813,7 +2785,7 @@ filling_color = "#BAA14C" bitesize = 2 center_of_mass = list("x"=18, "y"=13) - + /obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice/New() ..() if(!(reagents.total_volume)) @@ -2828,11 +2800,11 @@ slices_num = 6 center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 35) - reagents.add_reagent("protein", 5) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza/New() + ..() + reagents.add_reagent("nutriment", 35) + reagents.add_reagent("protein", 5) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice name = "Mushroompizza slice" @@ -2841,7 +2813,7 @@ filling_color = "#BAA14C" bitesize = 2 center_of_mass = list("x"=18, "y"=13) - + /obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice/New() ..() if(!(reagents.total_volume)) @@ -2856,13 +2828,13 @@ slices_num = 6 center_of_mass = list("x"=16, "y"=11) - New() - ..() - reagents.add_reagent("nutriment", 25) - reagents.add_reagent("protein", 5) - reagents.add_reagent("tomatojuice", 6) - reagents.add_reagent("imidazoline", 12) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza/New() + ..() + reagents.add_reagent("nutriment", 25) + reagents.add_reagent("protein", 5) + reagents.add_reagent("tomatojuice", 6) + reagents.add_reagent("imidazoline", 12) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice name = "Vegetable pizza slice" @@ -2871,7 +2843,7 @@ filling_color = "#BAA14C" bitesize = 2 center_of_mass = list("x"=18, "y"=13) - + /obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice/New() ..() if(!(reagents.total_volume)) @@ -2892,7 +2864,6 @@ var/list/boxes = list() // If the boxes are stacked, they come here var/boxtag = "" - /obj/item/pizzabox/proc/closepizzabox() if( boxes.len > 0 ) @@ -3074,14 +3045,11 @@ filling_color = "#75754B" center_of_mass = list("x"=16, "y"=7) - New() - ..() - reagents.add_reagent("nutriment", 6) - reagents.add_reagent("radium", 2) - bitesize = 2 - - - +/obj/item/weapon/reagent_containers/food/snacks/dionaroast/New() + ..() + reagents.add_reagent("nutriment", 6) + reagents.add_reagent("radium", 2) + bitesize = 2 /////////////////////////////////////////// // new old food stuff from bs12 @@ -3094,10 +3062,10 @@ bitesize = 2 center_of_mass = list("x"=16, "y"=13) - New() - ..() - reagents.add_reagent("protein", 1) - reagents.add_reagent("nutriment", 3) +/obj/item/weapon/reagent_containers/food/snacks/dough/New() + ..() + reagents.add_reagent("protein", 1) + reagents.add_reagent("nutriment", 3) // Dough + rolling pin = flat dough /obj/item/weapon/reagent_containers/food/snacks/dough/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -3116,10 +3084,10 @@ slices_num = 3 center_of_mass = list("x"=16, "y"=16) - New() - ..() - reagents.add_reagent("protein", 1) - reagents.add_reagent("nutriment", 3) +/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough/New() + ..() + reagents.add_reagent("protein", 1) + reagents.add_reagent("nutriment", 3) /obj/item/weapon/reagent_containers/food/snacks/doughslice name = "dough slice" @@ -3131,9 +3099,9 @@ bitesize = 2 center_of_mass = list("x"=17, "y"=19) - New() - ..() - reagents.add_reagent("nutriment", 1) +/obj/item/weapon/reagent_containers/food/snacks/doughslice/New() + ..() + reagents.add_reagent("nutriment", 1) /obj/item/weapon/reagent_containers/food/snacks/bun name = "bun" @@ -3143,9 +3111,9 @@ bitesize = 2 center_of_mass = list("x"=16, "y"=12) - New() - ..() - reagents.add_reagent("nutriment", 4) +/obj/item/weapon/reagent_containers/food/snacks/bun/New() + ..() + reagents.add_reagent("nutriment", 4) /obj/item/weapon/reagent_containers/food/snacks/bun/attackby(obj/item/weapon/W as obj, mob/user as mob) // Bun + meatball = burger @@ -3198,10 +3166,10 @@ bitesize = 3 center_of_mass = list("x"=21, "y"=12) - New() - ..() - reagents.add_reagent("protein", 3) - reagents.add_reagent("nutriment", 4) +/obj/item/weapon/reagent_containers/food/snacks/taco/New() + ..() + reagents.add_reagent("protein", 3) + reagents.add_reagent("nutriment", 4) /obj/item/weapon/reagent_containers/food/snacks/rawcutlet name = "raw cutlet" @@ -3211,9 +3179,9 @@ bitesize = 1 center_of_mass = list("x"=17, "y"=20) - New() - ..() - reagents.add_reagent("protein", 1) +/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/New() + ..() + reagents.add_reagent("protein", 1) /obj/item/weapon/reagent_containers/food/snacks/cutlet name = "cutlet" @@ -3223,9 +3191,9 @@ bitesize = 2 center_of_mass = list("x"=17, "y"=20) - New() - ..() - reagents.add_reagent("protein", 2) +/obj/item/weapon/reagent_containers/food/snacks/cutlet/New() + ..() + reagents.add_reagent("protein", 2) /obj/item/weapon/reagent_containers/food/snacks/rawmeatball name = "raw meatball" @@ -3235,9 +3203,9 @@ bitesize = 2 center_of_mass = list("x"=16, "y"=15) - New() - ..() - reagents.add_reagent("protein", 2) +/obj/item/weapon/reagent_containers/food/snacks/rawmeatball/New() + ..() + reagents.add_reagent("protein", 2) /obj/item/weapon/reagent_containers/food/snacks/hotdog name = "hotdog" @@ -3246,9 +3214,9 @@ bitesize = 2 center_of_mass = list("x"=16, "y"=17) - New() - ..() - reagents.add_reagent("protein", 6) +/obj/item/weapon/reagent_containers/food/snacks/hotdog/New() + ..() + reagents.add_reagent("protein", 6) /obj/item/weapon/reagent_containers/food/snacks/flatbread name = "flatbread" @@ -3258,9 +3226,9 @@ bitesize = 2 center_of_mass = list("x"=16, "y"=16) - New() - ..() - reagents.add_reagent("nutriment", 3) +/obj/item/weapon/reagent_containers/food/snacks/flatbread/New() + ..() + reagents.add_reagent("nutriment", 3) // potato + knife = raw sticks /obj/item/weapon/reagent_containers/food/snacks/grown/potato/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -3279,9 +3247,9 @@ bitesize = 2 center_of_mass = list("x"=16, "y"=12) - New() - ..() - reagents.add_reagent("nutriment", 3) +/obj/item/weapon/reagent_containers/food/snacks/rawsticks/New() + ..() + reagents.add_reagent("nutriment", 3) /obj/item/weapon/reagent_containers/food/snacks/liquidfood name = "\improper LiquidFood Ration" @@ -3291,12 +3259,11 @@ filling_color = "#A8A8A8" center_of_mass = list("x"=16, "y"=15) - New() - ..() - reagents.add_reagent("nutriment", 20) - reagents.add_reagent("iron", 3) - bitesize = 4 - +/obj/item/weapon/reagent_containers/food/snacks/liquidfood/New() + ..() + reagents.add_reagent("nutriment", 20) + reagents.add_reagent("iron", 3) + bitesize = 4 /obj/item/weapon/reagent_containers/food/snacks/tastybread name = "bread tube" @@ -3306,10 +3273,10 @@ filling_color = "#A66829" center_of_mass = list("x"=17, "y"=16) - New() - ..() - reagents.add_reagent("nutriment", 6) - bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/tastybread/New() + ..() + reagents.add_reagent("nutriment", 6) + bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks name = "\improper SkrellSnax" @@ -3318,7 +3285,7 @@ filling_color = "#A66829" center_of_mass = list("x"=15, "y"=12) - New() - ..() - reagents.add_reagent("nutriment", 10) - bitesize = 3 +/obj/item/weapon/reagent_containers/food/snacks/skrellsnacks/New() + ..() + reagents.add_reagent("nutriment", 10) + bitesize = 3 diff --git a/code/modules/reagents/reagent_containers/food/snacks/meat.dm b/code/modules/reagents/reagent_containers/food/snacks/meat.dm index 7ea52765fc..9e1dc52536 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/meat.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/meat.dm @@ -5,10 +5,11 @@ health = 180 filling_color = "#FF1C1C" center_of_mass = list("x"=16, "y"=14) - New() - ..() - reagents.add_reagent("protein", 9) - src.bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/meat/New() + ..() + reagents.add_reagent("protein", 9) + src.bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/meat/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W,/obj/item/weapon/material/knife)) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index a5903e744d..44ea628eca 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -44,66 +44,65 @@ /obj/machinery/radiocarbon_spectrometer ) - New() - ..() - base_name = name +/obj/item/weapon/reagent_containers/glass/New() + ..() + base_name = name - examine(var/mob/user) - if(!..(user, 2)) +/obj/item/weapon/reagent_containers/glass/examine(var/mob/user) + if(!..(user, 2)) + return + if(reagents && reagents.reagent_list.len) + user << "It contains [reagents.total_volume] units of liquid." + else + user << "It is empty." + if(!is_open_container()) + user << "Airtight lid seals it completely." + +/obj/item/weapon/reagent_containers/glass/attack_self() + ..() + if(is_open_container()) + usr << "You put the lid on \the [src]." + flags ^= OPENCONTAINER + else + usr << "You take the lid off \the [src]." + flags |= OPENCONTAINER + update_icon() + +/obj/item/weapon/reagent_containers/glass/afterattack(var/obj/target, var/mob/user, var/flag) + if(!is_open_container() || !flag) + return + + for(var/type in can_be_placed_into) + if(istype(target, type)) return - if(reagents && reagents.reagent_list.len) - user << "It contains [reagents.total_volume] units of liquid." + + if(standard_splash_mob(user, target)) + return + if(standard_dispenser_refill(user, target)) + return + if(standard_pour_into(user, target)) + return + + if(reagents.total_volume) + user << "You splash the solution onto [target]." + reagents.splash(target, reagents.total_volume) + return + +/obj/item/weapon/reagent_containers/glass/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/device/flashlight/pen)) + var/tmp_label = sanitizeSafe(input(user, "Enter a label for [name]", "Label", label_text), MAX_NAME_LEN) + if(length(tmp_label) > 10) + user << "The label can be at most 10 characters long." else - user << "It is empty." - if(!is_open_container()) - user << "Airtight lid seals it completely." + user << "You set the label to \"[tmp_label]\"." + label_text = tmp_label + update_name_label() - attack_self() - ..() - if(is_open_container()) - usr << "You put the lid on \the [src]." - flags ^= OPENCONTAINER - else - usr << "You take the lid off \the [src]." - flags |= OPENCONTAINER - update_icon() - - afterattack(var/obj/target, var/mob/user, var/flag) - - if(!is_open_container() || !flag) - return - - for(var/type in can_be_placed_into) - if(istype(target, type)) - return - - if(standard_splash_mob(user, target)) - return - if(standard_dispenser_refill(user, target)) - return - if(standard_pour_into(user, target)) - return - - if(reagents.total_volume) - user << "You splash the solution onto [target]." - reagents.splash(target, reagents.total_volume) - return - - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/device/flashlight/pen)) - var/tmp_label = sanitizeSafe(input(user, "Enter a label for [name]", "Label", label_text), MAX_NAME_LEN) - if(length(tmp_label) > 10) - user << "The label can be at most 10 characters long." - else - user << "You set the label to \"[tmp_label]\"." - label_text = tmp_label - update_name_label() - - proc/update_name_label() - if(label_text == "") - name = base_name - else - name = "[base_name] ([label_text])" +/obj/item/weapon/reagent_containers/glass/proc/update_name_label() + if(label_text == "") + name = base_name + else + name = "[base_name] ([label_text])" /obj/item/weapon/reagent_containers/glass/beaker name = "beaker" @@ -113,47 +112,47 @@ item_state = "beaker" matter = list("glass" = 500) - New() - ..() - desc += " Can hold up to [volume] units." - - on_reagent_change() - update_icon() - - pickup(mob/user) - ..() - update_icon() - - dropped(mob/user) - ..() - update_icon() - - attack_hand() - ..() - update_icon() +/obj/item/weapon/reagent_containers/glass/beaker/New() + ..() + desc += " Can hold up to [volume] units." +/obj/item/weapon/reagent_containers/glass/beaker/on_reagent_change() update_icon() - overlays.Cut() - if(reagents.total_volume) - var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]10") +/obj/item/weapon/reagent_containers/glass/beaker/pickup(mob/user) + ..() + update_icon() - var/percent = round((reagents.total_volume / volume) * 100) - switch(percent) - if(0 to 9) filling.icon_state = "[icon_state]-10" - if(10 to 24) filling.icon_state = "[icon_state]10" - if(25 to 49) filling.icon_state = "[icon_state]25" - if(50 to 74) filling.icon_state = "[icon_state]50" - if(75 to 79) filling.icon_state = "[icon_state]75" - if(80 to 90) filling.icon_state = "[icon_state]80" - if(91 to INFINITY) filling.icon_state = "[icon_state]100" +/obj/item/weapon/reagent_containers/glass/beaker/dropped(mob/user) + ..() + update_icon() - filling.color = reagents.get_color() - overlays += filling +/obj/item/weapon/reagent_containers/glass/beaker/attack_hand() + ..() + update_icon() - if (!is_open_container()) - var/image/lid = image(icon, src, "lid_[initial(icon_state)]") - overlays += lid +/obj/item/weapon/reagent_containers/glass/beaker/update_icon() + overlays.Cut() + + if(reagents.total_volume) + var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]10") + + var/percent = round((reagents.total_volume / volume) * 100) + switch(percent) + if(0 to 9) filling.icon_state = "[icon_state]-10" + if(10 to 24) filling.icon_state = "[icon_state]10" + if(25 to 49) filling.icon_state = "[icon_state]25" + if(50 to 74) filling.icon_state = "[icon_state]50" + if(75 to 79) filling.icon_state = "[icon_state]75" + if(80 to 90) filling.icon_state = "[icon_state]80" + if(91 to INFINITY) filling.icon_state = "[icon_state]100" + + filling.color = reagents.get_color() + overlays += filling + + if (!is_open_container()) + var/image/lid = image(icon, src, "lid_[initial(icon_state)]") + overlays += lid /obj/item/weapon/reagent_containers/glass/beaker/large name = "large beaker" @@ -194,14 +193,12 @@ possible_transfer_amounts = list(5,10,15,25) flags = OPENCONTAINER -/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone - New() - ..() - reagents.add_reagent("cryoxadone", 30) - update_icon() +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone/New() + ..() + reagents.add_reagent("cryoxadone", 30) + update_icon() -/obj/item/weapon/reagent_containers/glass/beaker/sulphuric - New() +/obj/item/weapon/reagent_containers/glass/beaker/sulphuric/New() ..() reagents.add_reagent("sacid", 60) update_icon() @@ -221,7 +218,6 @@ unacidable = 0 /obj/item/weapon/reagent_containers/glass/bucket/attackby(var/obj/D, mob/user as mob) - if(isprox(D)) user << "You add [D] to [src]." qdel(D) @@ -256,35 +252,3 @@ amount_per_transfer_from_this = 20 possible_transfer_amounts = list(10,20,30,60,120) volume = 120 - -/* -/obj/item/weapon/reagent_containers/glass/blender_jug - name = "Blender Jug" - desc = "A blender jug, part of a blender." - icon = 'icons/obj/kitchen.dmi' - icon_state = "blender_jug_e" - volume = 100 - - on_reagent_change() - switch(src.reagents.total_volume) - if(0) - icon_state = "blender_jug_e" - if(1 to 75) - icon_state = "blender_jug_h" - if(76 to 100) - icon_state = "blender_jug_f" - -/obj/item/weapon/reagent_containers/glass/canister //not used apparantly - desc = "It's a canister. Mainly used for transporting fuel." - name = "canister" - icon = 'icons/obj/tank.dmi' - icon_state = "canister" - item_state = "canister" - m_amt = 300 - g_amt = 0 - w_class = 4.0 - - amount_per_transfer_from_this = 20 - possible_transfer_amounts = list(10,20,30,60) - volume = 120 -*/ diff --git a/code/modules/reagents/reagent_containers/glass/bottle.dm b/code/modules/reagents/reagent_containers/glass/bottle.dm index 55dfcc7745..5f22c3f324 100644 --- a/code/modules/reagents/reagent_containers/glass/bottle.dm +++ b/code/modules/reagents/reagent_containers/glass/bottle.dm @@ -12,48 +12,48 @@ flags = 0 volume = 60 - on_reagent_change() - update_icon() - - pickup(mob/user) - ..() - update_icon() - - dropped(mob/user) - ..() - update_icon() - - attack_hand() - ..() - update_icon() - - New() - ..() - if(!icon_state) - icon_state = "bottle-[rand(1,4)]" - +/obj/item/weapon/reagent_containers/glass/bottle/on_reagent_change() update_icon() - overlays.Cut() - if(reagents.total_volume && (icon_state == "bottle-1" || icon_state == "bottle-2" || icon_state == "bottle-3" || icon_state == "bottle-4")) - var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]10") +/obj/item/weapon/reagent_containers/glass/bottle/pickup(mob/user) + ..() + update_icon() - var/percent = round((reagents.total_volume / volume) * 100) - switch(percent) - if(0 to 9) filling.icon_state = "[icon_state]--10" - if(10 to 24) filling.icon_state = "[icon_state]-10" - if(25 to 49) filling.icon_state = "[icon_state]-25" - if(50 to 74) filling.icon_state = "[icon_state]-50" - if(75 to 79) filling.icon_state = "[icon_state]-75" - if(80 to 90) filling.icon_state = "[icon_state]-80" - if(91 to INFINITY) filling.icon_state = "[icon_state]-100" +/obj/item/weapon/reagent_containers/glass/bottle/dropped(mob/user) + ..() + update_icon() - filling.color = reagents.get_color() - overlays += filling +/obj/item/weapon/reagent_containers/glass/bottle/attack_hand() + ..() + update_icon() - if (!is_open_container()) - var/image/lid = image(icon, src, "lid_bottle") - overlays += lid +/obj/item/weapon/reagent_containers/glass/bottle/New() + ..() + if(!icon_state) + icon_state = "bottle-[rand(1,4)]" + +/obj/item/weapon/reagent_containers/glass/bottle/update_icon() + overlays.Cut() + + if(reagents.total_volume && (icon_state == "bottle-1" || icon_state == "bottle-2" || icon_state == "bottle-3" || icon_state == "bottle-4")) + var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]10") + + var/percent = round((reagents.total_volume / volume) * 100) + switch(percent) + if(0 to 9) filling.icon_state = "[icon_state]--10" + if(10 to 24) filling.icon_state = "[icon_state]-10" + if(25 to 49) filling.icon_state = "[icon_state]-25" + if(50 to 74) filling.icon_state = "[icon_state]-50" + if(75 to 79) filling.icon_state = "[icon_state]-75" + if(80 to 90) filling.icon_state = "[icon_state]-80" + if(91 to INFINITY) filling.icon_state = "[icon_state]-100" + + filling.color = reagents.get_color() + overlays += filling + + if (!is_open_container()) + var/image/lid = image(icon, src, "lid_bottle") + overlays += lid /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline @@ -86,12 +86,12 @@ icon = 'icons/obj/chemical.dmi' icon_state = "bottle-3" + /obj/item/weapon/reagent_containers/glass/bottle/cyanide/New() ..() reagents.add_reagent("cyanide", 30) //volume changed to match chloral update_icon() - /obj/item/weapon/reagent_containers/glass/bottle/stoxin name = "soporific bottle" desc = "A small bottle of soporific. Just the fumes make you sleepy." diff --git a/code/modules/reagents/reagent_containers/glass/bottle/robot.dm b/code/modules/reagents/reagent_containers/glass/bottle/robot.dm index 3a95b3cd1c..2e2d5e4fdd 100644 --- a/code/modules/reagents/reagent_containers/glass/bottle/robot.dm +++ b/code/modules/reagents/reagent_containers/glass/bottle/robot.dm @@ -14,10 +14,10 @@ icon_state = "bottle-4" reagent = "inaprovaline" - New() - ..() - reagents.add_reagent("inaprovaline", 60) - update_icon() +/obj/item/weapon/reagent_containers/glass/bottle/robot/inaprovaline/New() + ..() + reagents.add_reagent("inaprovaline", 60) + update_icon() /obj/item/weapon/reagent_containers/glass/bottle/robot/antitoxin @@ -27,8 +27,8 @@ icon_state = "bottle-4" reagent = "anti_toxin" - New() - ..() - reagents.add_reagent("anti_toxin", 60) - update_icon() +/obj/item/weapon/reagent_containers/glass/bottle/robot/antitoxin/New() + ..() + reagents.add_reagent("anti_toxin", 60) + update_icon() diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 7fc7707c28..89598898f8 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -12,82 +12,82 @@ slot_flags = SLOT_EARS volume = 60 - New() - ..() - if(!icon_state) - icon_state = "pill[rand(1, 20)]" +/obj/item/weapon/reagent_containers/pill/New() + ..() + if(!icon_state) + icon_state = "pill[rand(1, 20)]" - 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 - var/obj/item/blocked = H.check_mouth_coverage() - if(blocked) - user << "\The [blocked] is in the way!" - return - - M << "You swallow \the [src]." - M.drop_from_inventory(src) //icon update - if(reagents.total_volume) - reagents.trans_to_mob(M, reagents.total_volume, CHEM_INGEST) - qdel(src) - return 1 - - else if(istype(M, /mob/living/carbon/human)) +/obj/item/weapon/reagent_containers/pill/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]? \The [H] doesn't have a mouth!" + user << "Where do you intend to put \the [src]? You don't have a mouth!" return var/obj/item/blocked = H.check_mouth_coverage() if(blocked) user << "\The [blocked] is in the way!" return - user.visible_message("[user] attempts to force [M] to swallow \the [src].") + M << "You swallow \the [src]." + M.drop_from_inventory(src) //icon update + if(reagents.total_volume) + reagents.trans_to_mob(M, reagents.total_volume, CHEM_INGEST) + qdel(src) + return 1 - if(!do_mob(user, M)) - return + else if(istype(M, /mob/living/carbon/human)) - user.drop_from_inventory(src) //icon update - user.visible_message("[user] forces [M] to swallow \the [src].") + 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 + var/obj/item/blocked = H.check_mouth_coverage() + if(blocked) + user << "\The [blocked] is in the way!" + return - var/contained = reagentlist() - M.attack_log += text("\[[time_stamp()]\] Has been fed [name] by [key_name(user)] Reagents: [contained]") - user.attack_log += text("\[[time_stamp()]\] Fed [name] to [key_name(M)] Reagents: [contained]") - msg_admin_attack("[key_name_admin(user)] fed [key_name_admin(M)] with [name] Reagents: [contained] (INTENT: [uppertext(user.a_intent)]) (JMP)") + user.visible_message("[user] attempts to force [M] to swallow \the [src].") - if(reagents.total_volume) - reagents.trans_to_mob(M, reagents.total_volume, CHEM_INGEST) - qdel(src) + if(!do_mob(user, M)) + return - return 1 + user.drop_from_inventory(src) //icon update + user.visible_message("[user] forces [M] to swallow \the [src].") - return 0 + var/contained = reagentlist() + M.attack_log += text("\[[time_stamp()]\] Has been fed [name] by [key_name(user)] Reagents: [contained]") + user.attack_log += text("\[[time_stamp()]\] Fed [name] to [key_name(M)] Reagents: [contained]") + msg_admin_attack("[key_name_admin(user)] fed [key_name_admin(M)] with [name] Reagents: [contained] (INTENT: [uppertext(user.a_intent)]) (JMP)") - afterattack(obj/target, mob/user, proximity) - if(!proximity) return + if(reagents.total_volume) + reagents.trans_to_mob(M, reagents.total_volume, CHEM_INGEST) + qdel(src) - if(target.is_open_container() && target.reagents) - if(!target.reagents.total_volume) - user << "[target] is empty. Can't dissolve \the [src]." - return - user << "You dissolve \the [src] in [target]." + return 1 - user.attack_log += text("\[[time_stamp()]\] Spiked \a [target] with a pill. Reagents: [reagentlist()]") - msg_admin_attack("[user.name] ([user.ckey]) spiked \a [target] with a pill. Reagents: [reagentlist()] (INTENT: [uppertext(user.a_intent)]) (JMP)") + return 0 - reagents.trans_to(target, reagents.total_volume) - for(var/mob/O in viewers(2, user)) - O.show_message("[user] puts something in \the [target].", 1) +/obj/item/weapon/reagent_containers/pill/afterattack(obj/target, mob/user, proximity) + if(!proximity) return - qdel(src) + if(target.is_open_container() && target.reagents) + if(!target.reagents.total_volume) + user << "[target] is empty. Can't dissolve \the [src]." + return + user << "You dissolve \the [src] in [target]." - return + user.attack_log += text("\[[time_stamp()]\] Spiked \a [target] with a pill. Reagents: [reagentlist()]") + msg_admin_attack("[user.name] ([user.ckey]) spiked \a [target] with a pill. Reagents: [reagentlist()] (INTENT: [uppertext(user.a_intent)]) (JMP)") + + reagents.trans_to(target, reagents.total_volume) + for(var/mob/O in viewers(2, user)) + O.show_message("[user] puts something in \the [target].", 1) + + qdel(src) + + return //////////////////////////////////////////////////////////////////////////////// /// Pills. END @@ -98,163 +98,199 @@ name = "Anti-toxins pill" desc = "Neutralizes many common toxins." icon_state = "pill17" - New() - ..() - reagents.add_reagent("anti_toxin", 25) + +/obj/item/weapon/reagent_containers/pill/antitox/New() + ..() + reagents.add_reagent("anti_toxin", 25) + /obj/item/weapon/reagent_containers/pill/tox name = "Toxins pill" desc = "Highly toxic." icon_state = "pill5" - New() - ..() - reagents.add_reagent("toxin", 50) + +/obj/item/weapon/reagent_containers/pill/tox/New() + ..() + reagents.add_reagent("toxin", 50) + /obj/item/weapon/reagent_containers/pill/cyanide name = "Cyanide pill" desc = "Don't swallow this." icon_state = "pill5" - New() - ..() - reagents.add_reagent("cyanide", 50) + +/obj/item/weapon/reagent_containers/pill/cyanide/New() + ..() + reagents.add_reagent("cyanide", 50) + /obj/item/weapon/reagent_containers/pill/adminordrazine name = "Adminordrazine pill" desc = "It's magic. We don't have to explain it." icon_state = "pill16" - New() - ..() - reagents.add_reagent("adminordrazine", 50) + +/obj/item/weapon/reagent_containers/pill/adminordrazine/New() + ..() + reagents.add_reagent("adminordrazine", 50) /obj/item/weapon/reagent_containers/pill/stox name = "Sleeping pill" desc = "Commonly used to treat insomnia." icon_state = "pill8" - New() - ..() - reagents.add_reagent("stoxin", 15) + +/obj/item/weapon/reagent_containers/pill/stox/New() + ..() + reagents.add_reagent("stoxin", 15) + /obj/item/weapon/reagent_containers/pill/kelotane name = "Kelotane pill" desc = "Used to treat burns." icon_state = "pill11" - New() - ..() - reagents.add_reagent("kelotane", 15) + +/obj/item/weapon/reagent_containers/pill/kelotane/New() + ..() + reagents.add_reagent("kelotane", 15) + /obj/item/weapon/reagent_containers/pill/paracetamol name = "Paracetamol pill" desc = "Tylenol! A painkiller for the ages. Chewables!" icon_state = "pill8" - New() - ..() - reagents.add_reagent("paracetamol", 15) + +/obj/item/weapon/reagent_containers/pill/paracetamol/New() + ..() + reagents.add_reagent("paracetamol", 15) + /obj/item/weapon/reagent_containers/pill/tramadol name = "Tramadol pill" desc = "A simple painkiller." icon_state = "pill8" - New() - ..() - reagents.add_reagent("tramadol", 15) + +/obj/item/weapon/reagent_containers/pill/tramadol/New() + ..() + reagents.add_reagent("tramadol", 15) /obj/item/weapon/reagent_containers/pill/methylphenidate name = "Methylphenidate pill" desc = "Improves the ability to concentrate." icon_state = "pill8" - New() - ..() - reagents.add_reagent("methylphenidate", 15) + +/obj/item/weapon/reagent_containers/pill/methylphenidate/New() + ..() + reagents.add_reagent("methylphenidate", 15) + /obj/item/weapon/reagent_containers/pill/citalopram name = "Citalopram pill" desc = "Mild anti-depressant." icon_state = "pill8" - New() - ..() - reagents.add_reagent("citalopram", 15) + +/obj/item/weapon/reagent_containers/pill/citalopram/New() + ..() + reagents.add_reagent("citalopram", 15) /obj/item/weapon/reagent_containers/pill/inaprovaline name = "Inaprovaline pill" desc = "Used to stabilize patients." icon_state = "pill20" - New() - ..() - reagents.add_reagent("inaprovaline", 30) + +/obj/item/weapon/reagent_containers/pill/inaprovaline/New() + ..() + reagents.add_reagent("inaprovaline", 30) + /obj/item/weapon/reagent_containers/pill/dexalin name = "Dexalin pill" desc = "Used to treat oxygen deprivation." icon_state = "pill16" - New() - ..() - reagents.add_reagent("dexalin", 15) + +/obj/item/weapon/reagent_containers/pill/dexalin/New() + ..() + reagents.add_reagent("dexalin", 15) + /obj/item/weapon/reagent_containers/pill/dexalin_plus name = "Dexalin Plus pill" desc = "Used to treat extreme oxygen deprivation." icon_state = "pill8" - New() - ..() - reagents.add_reagent("dexalinp", 15) + +/obj/item/weapon/reagent_containers/pill/dexalin_plus/New() + ..() + reagents.add_reagent("dexalinp", 15) + /obj/item/weapon/reagent_containers/pill/dermaline name = "Dermaline pill" desc = "Used to treat burn wounds." icon_state = "pill12" - New() - ..() - reagents.add_reagent("dermaline", 15) + +/obj/item/weapon/reagent_containers/pill/dermaline/New() + ..() + reagents.add_reagent("dermaline", 15) + /obj/item/weapon/reagent_containers/pill/dylovene name = "Dylovene pill" desc = "A broad-spectrum anti-toxin." icon_state = "pill13" - New() - ..() - reagents.add_reagent("anti_toxin", 15) + +/obj/item/weapon/reagent_containers/pill/dylovene/New() + ..() + reagents.add_reagent("anti_toxin", 15) + /obj/item/weapon/reagent_containers/pill/inaprovaline name = "Inaprovaline pill" desc = "Used to stabilize patients." icon_state = "pill20" - New() - ..() - reagents.add_reagent("inaprovaline", 30) + +/obj/item/weapon/reagent_containers/pill/inaprovaline/New() + ..() + reagents.add_reagent("inaprovaline", 30) + /obj/item/weapon/reagent_containers/pill/bicaridine name = "Bicaridine pill" desc = "Used to treat physical injuries." icon_state = "pill18" - New() - ..() - reagents.add_reagent("bicaridine", 20) + +/obj/item/weapon/reagent_containers/pill/bicaridine/New() + ..() + reagents.add_reagent("bicaridine", 20) + /obj/item/weapon/reagent_containers/pill/happy name = "Happy pill" desc = "Happy happy joy joy!" icon_state = "pill18" - New() - ..() - reagents.add_reagent("space_drugs", 15) - reagents.add_reagent("sugar", 15) + +/obj/item/weapon/reagent_containers/pill/happy/New() + ..() + reagents.add_reagent("space_drugs", 15) + reagents.add_reagent("sugar", 15) + /obj/item/weapon/reagent_containers/pill/zoom name = "Zoom pill" desc = "Zoooom!" icon_state = "pill18" - New() - ..() - reagents.add_reagent("impedrezene", 10) - reagents.add_reagent("synaptizine", 5) - reagents.add_reagent("hyperzine", 5) + +/obj/item/weapon/reagent_containers/pill/zoom/New() + ..() + reagents.add_reagent("impedrezene", 10) + reagents.add_reagent("synaptizine", 5) + reagents.add_reagent("hyperzine", 5) + /obj/item/weapon/reagent_containers/pill/spaceacillin name = "Spaceacillin pill" desc = "Contains antiviral agents." icon_state = "pill19" - New() - ..() - reagents.add_reagent("spaceacillin", 15) + +/obj/item/weapon/reagent_containers/pill/spaceacillin/New() + ..() + reagents.add_reagent("spaceacillin", 15) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 741e9eccdd..7c291f1906 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -24,260 +24,258 @@ var/visible_name = "a syringe" var/time = 30 - on_reagent_change() - update_icon() - - pickup(mob/user) - ..() - update_icon() - - dropped(mob/user) - ..() - update_icon() - - attack_self(mob/user as mob) - - switch(mode) - if(SYRINGE_DRAW) - mode = SYRINGE_INJECT - if(SYRINGE_INJECT) - mode = SYRINGE_DRAW - if(SYRINGE_BROKEN) - return - update_icon() - - attack_hand() - ..() - update_icon() - - attackby(obj/item/I as obj, mob/user as mob) - return - - afterattack(obj/target, mob/user, proximity) - if(!proximity || !target.reagents) - return - - if(mode == SYRINGE_BROKEN) - user << "This syringe is broken!" - return - - if(user.a_intent == I_HURT && ismob(target)) - if((CLUMSY in user.mutations) && prob(50)) - target = user - syringestab(target, user) - return - - - switch(mode) - if(SYRINGE_DRAW) - - if(!reagents.get_free_space()) - user << "The syringe is full." - mode = SYRINGE_INJECT - return - - if(ismob(target))//Blood! - if(reagents.has_reagent("blood")) - user << "There is already a blood sample in this syringe." - return - if(istype(target, /mob/living/carbon)) - if(istype(target, /mob/living/carbon/slime)) - user << "You are unable to locate any blood." - return - var/amount = reagents.get_free_space() - var/mob/living/carbon/T = target - if(!T.dna) - user << "You are unable to locate any blood. (To be specific, your target seems to be missing their DNA datum)." - return - if(NOCLONE in T.mutations) //target done been et, no more blood in him - user << "You are unable to locate any blood." - return - - var/datum/reagent/B - if(istype(T, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = T - if(H.species && !H.should_have_organ(O_HEART)) - H.reagents.trans_to_obj(src, amount) - else - B = T.take_blood(src, amount) - else - B = T.take_blood(src,amount) - - if (B) - reagents.reagent_list += B - reagents.update_total() - on_reagent_change() - reagents.handle_reactions() - user << "You take a blood sample from [target]." - for(var/mob/O in viewers(4, user)) - O.show_message("[user] takes a blood sample from [target].", 1) - - else //if not mob - if(!target.reagents.total_volume) - user << "[target] is empty." - return - - if(!target.is_open_container() && !istype(target, /obj/structure/reagent_dispensers) && !istype(target, /obj/item/slime_extract)) - user << "You cannot directly remove reagents from this object." - return - - var/trans = target.reagents.trans_to_obj(src, amount_per_transfer_from_this) - user << "You fill the syringe with [trans] units of the solution." - update_icon() - - if(!reagents.get_free_space()) - mode = SYRINGE_INJECT - update_icon() - - if(SYRINGE_INJECT) - if(!reagents.total_volume) - user << "The syringe is empty." - mode = SYRINGE_DRAW - return - if(istype(target, /obj/item/weapon/implantcase/chem)) - return - - if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/clothing/mask/smokable/cigarette) && !istype(target, /obj/item/weapon/storage/fancy/cigarettes)) - user << "You cannot directly fill this object." - return - if(!target.reagents.get_free_space()) - user << "[target] is full." - return - - var/mob/living/carbon/human/H = target - if(istype(H)) - var/obj/item/organ/external/affected = H.get_organ(user.zone_sel.selecting) - if(!affected) - user << "\The [H] is missing that limb!" - return - else if(affected.status & ORGAN_ROBOT) - user << "You cannot inject a robotic limb." - return - - if(ismob(target) && target != user) - - var/injtime = time //Injecting through a hardsuit takes longer due to needing to find a port. - - if(istype(H)) - if(H.wear_suit) - if(istype(H.wear_suit, /obj/item/clothing/suit/space)) - injtime = injtime * 2 - else if(!H.can_inject(user, 1)) - return - - else if(isliving(target)) - - var/mob/living/M = target - if(!M.can_inject(user, 1)) - return - - if(injtime == time) - user.visible_message("[user] is trying to inject [target] with [visible_name]!") - else - user.visible_message("[user] begins hunting for an injection port on [target]'s suit!") - - if(!do_mob(user, target, injtime)) - return - - user.visible_message("[user] injects [target] with the syringe!") - - var/trans - if(ismob(target)) - var/contained = reagentlist() - trans = reagents.trans_to_mob(target, amount_per_transfer_from_this, CHEM_BLOOD) - admin_inject_log(user, target, src, contained, trans) - else - trans = reagents.trans_to(target, amount_per_transfer_from_this) - user << "You inject [trans] units of the solution. The syringe now contains [src.reagents.total_volume] units." - if (reagents.total_volume <= 0 && mode == SYRINGE_INJECT) - mode = SYRINGE_DRAW - update_icon() - - return - +/obj/item/weapon/reagent_containers/syringe/on_reagent_change() update_icon() - overlays.Cut() - if(mode == SYRINGE_BROKEN) - icon_state = "broken" +/obj/item/weapon/reagent_containers/syringe/pickup(mob/user) + ..() + update_icon() + +/obj/item/weapon/reagent_containers/syringe/dropped(mob/user) + ..() + update_icon() + +/obj/item/weapon/reagent_containers/syringe/attack_self(mob/user as mob) + switch(mode) + if(SYRINGE_DRAW) + mode = SYRINGE_INJECT + if(SYRINGE_INJECT) + mode = SYRINGE_DRAW + if(SYRINGE_BROKEN) return + update_icon() - var/rounded_vol = round(reagents.total_volume, round(reagents.maximum_volume / 3)) - if(ismob(loc)) - var/injoverlay - switch(mode) - if (SYRINGE_DRAW) - injoverlay = "draw" - if (SYRINGE_INJECT) - injoverlay = "inject" - overlays += injoverlay - icon_state = "[rounded_vol]" - item_state = "syringe_[rounded_vol]" +/obj/item/weapon/reagent_containers/syringe/attack_hand() + ..() + update_icon() - if(reagents.total_volume) - filling = image('icons/obj/reagentfillings.dmi', src, "syringe10") +/obj/item/weapon/reagent_containers/syringe/attackby(obj/item/I as obj, mob/user as mob) + return - filling.icon_state = "syringe[rounded_vol]" +/obj/item/weapon/reagent_containers/syringe/afterattack(obj/target, mob/user, proximity) + if(!proximity || !target.reagents) + return - filling.color = reagents.get_color() - overlays += filling + if(mode == SYRINGE_BROKEN) + user << "This syringe is broken!" + return - proc/syringestab(mob/living/carbon/target as mob, mob/living/carbon/user as mob) + if(user.a_intent == I_HURT && ismob(target)) + if((CLUMSY in user.mutations) && prob(50)) + target = user + syringestab(target, user) + return - if(istype(target, /mob/living/carbon/human)) + + switch(mode) + if(SYRINGE_DRAW) + + if(!reagents.get_free_space()) + user << "The syringe is full." + mode = SYRINGE_INJECT + return + + if(ismob(target))//Blood! + if(reagents.has_reagent("blood")) + user << "There is already a blood sample in this syringe." + return + if(istype(target, /mob/living/carbon)) + if(istype(target, /mob/living/carbon/slime)) + user << "You are unable to locate any blood." + return + var/amount = reagents.get_free_space() + var/mob/living/carbon/T = target + if(!T.dna) + user << "You are unable to locate any blood. (To be specific, your target seems to be missing their DNA datum)." + return + if(NOCLONE in T.mutations) //target done been et, no more blood in him + user << "You are unable to locate any blood." + return + + var/datum/reagent/B + if(istype(T, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = T + if(H.species && !H.should_have_organ(O_HEART)) + H.reagents.trans_to_obj(src, amount) + else + B = T.take_blood(src, amount) + else + B = T.take_blood(src,amount) + + if (B) + reagents.reagent_list += B + reagents.update_total() + on_reagent_change() + reagents.handle_reactions() + user << "You take a blood sample from [target]." + for(var/mob/O in viewers(4, user)) + O.show_message("[user] takes a blood sample from [target].", 1) + + else //if not mob + if(!target.reagents.total_volume) + user << "[target] is empty." + return + + if(!target.is_open_container() && !istype(target, /obj/structure/reagent_dispensers) && !istype(target, /obj/item/slime_extract)) + user << "You cannot directly remove reagents from this object." + return + + var/trans = target.reagents.trans_to_obj(src, amount_per_transfer_from_this) + user << "You fill the syringe with [trans] units of the solution." + update_icon() + + if(!reagents.get_free_space()) + mode = SYRINGE_INJECT + update_icon() + + if(SYRINGE_INJECT) + if(!reagents.total_volume) + user << "The syringe is empty." + mode = SYRINGE_DRAW + return + if(istype(target, /obj/item/weapon/implantcase/chem)) + return + + if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/clothing/mask/smokable/cigarette) && !istype(target, /obj/item/weapon/storage/fancy/cigarettes)) + user << "You cannot directly fill this object." + return + if(!target.reagents.get_free_space()) + user << "[target] is full." + return var/mob/living/carbon/human/H = target + if(istype(H)) + var/obj/item/organ/external/affected = H.get_organ(user.zone_sel.selecting) + if(!affected) + user << "\The [H] is missing that limb!" + return + else if(affected.status & ORGAN_ROBOT) + user << "You cannot inject a robotic limb." + return - var/target_zone = ran_zone(check_zone(user.zone_sel.selecting, target)) - var/obj/item/organ/external/affecting = H.get_organ(target_zone) + if(ismob(target) && target != user) - if (!affecting || affecting.is_stump()) - user << "They are missing that limb!" - return + var/injtime = time //Injecting through a hardsuit takes longer due to needing to find a port. - var/hit_area = affecting.name + if(istype(H)) + if(H.wear_suit) + if(istype(H.wear_suit, /obj/item/clothing/suit/space)) + injtime = injtime * 2 + else if(!H.can_inject(user, 1)) + return - if((user != target) && H.check_shields(7, src, user, "\the [src]")) - return + else if(isliving(target)) - if (target != user && H.getarmor(target_zone, "melee") > 5 && prob(50)) - for(var/mob/O in viewers(world.view, user)) - O.show_message(text("\red [user] tries to stab [target] in \the [hit_area] with [src.name], but the attack is deflected by armor!"), 1) - user.remove_from_mob(src) - qdel(src) + var/mob/living/M = target + if(!M.can_inject(user, 1)) + return - user.attack_log += "\[[time_stamp()]\] Attacked [target.name] ([target.ckey]) with \the [src] (INTENT: HARM)." - target.attack_log += "\[[time_stamp()]\] Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: HARM)." - msg_admin_attack("[key_name_admin(user)] attacked [key_name_admin(target)] with [src.name] (INTENT: HARM) (JMP)") + if(injtime == time) + user.visible_message("[user] is trying to inject [target] with [visible_name]!") + else + user.visible_message("[user] begins hunting for an injection port on [target]'s suit!") - return + if(!do_mob(user, target, injtime)) + return - user.visible_message("[user] stabs [target] in \the [hit_area] with [src.name]!") + user.visible_message("[user] injects [target] with the syringe!") - if(affecting.take_damage(3)) - H.UpdateDamageIcon() + var/trans + if(ismob(target)) + var/contained = reagentlist() + trans = reagents.trans_to_mob(target, amount_per_transfer_from_this, CHEM_BLOOD) + admin_inject_log(user, target, src, contained, trans) + else + trans = reagents.trans_to(target, amount_per_transfer_from_this) + user << "You inject [trans] units of the solution. The syringe now contains [src.reagents.total_volume] units." + if (reagents.total_volume <= 0 && mode == SYRINGE_INJECT) + mode = SYRINGE_DRAW + update_icon() - else - user.visible_message("[user] stabs [target] with [src.name]!") - target.take_organ_damage(3)// 7 is the same as crowbar punch + return + +/obj/item/weapon/reagent_containers/syringe/update_icon() + overlays.Cut() + + if(mode == SYRINGE_BROKEN) + icon_state = "broken" + return + + var/rounded_vol = round(reagents.total_volume, round(reagents.maximum_volume / 3)) + if(ismob(loc)) + var/injoverlay + switch(mode) + if (SYRINGE_DRAW) + injoverlay = "draw" + if (SYRINGE_INJECT) + injoverlay = "inject" + overlays += injoverlay + icon_state = "[rounded_vol]" + item_state = "syringe_[rounded_vol]" + + if(reagents.total_volume) + filling = image('icons/obj/reagentfillings.dmi', src, "syringe10") + + filling.icon_state = "syringe[rounded_vol]" + + filling.color = reagents.get_color() + overlays += filling + +/obj/item/weapon/reagent_containers/syringe/proc/syringestab(mob/living/carbon/target as mob, mob/living/carbon/user as mob) + if(istype(target, /mob/living/carbon/human)) + + var/mob/living/carbon/human/H = target + + var/target_zone = ran_zone(check_zone(user.zone_sel.selecting, target)) + var/obj/item/organ/external/affecting = H.get_organ(target_zone) + + if (!affecting || affecting.is_stump()) + user << "They are missing that limb!" + return + + var/hit_area = affecting.name + + if((user != target) && H.check_shields(7, src, user, "\the [src]")) + return + + if (target != user && H.getarmor(target_zone, "melee") > 5 && prob(50)) + for(var/mob/O in viewers(world.view, user)) + O.show_message(text("\red [user] tries to stab [target] in \the [hit_area] with [src.name], but the attack is deflected by armor!"), 1) + user.remove_from_mob(src) + qdel(src) + + user.attack_log += "\[[time_stamp()]\] Attacked [target.name] ([target.ckey]) with \the [src] (INTENT: HARM)." + target.attack_log += "\[[time_stamp()]\] Attacked by [user.name] ([user.ckey]) with [src.name] (INTENT: HARM)." + msg_admin_attack("[key_name_admin(user)] attacked [key_name_admin(target)] with [src.name] (INTENT: HARM) (JMP)") + + return + + user.visible_message("[user] stabs [target] in \the [hit_area] with [src.name]!") + + if(affecting.take_damage(3)) + H.UpdateDamageIcon() + + else + user.visible_message("[user] stabs [target] with [src.name]!") + target.take_organ_damage(3)// 7 is the same as crowbar punch - var/syringestab_amount_transferred = rand(0, (reagents.total_volume - 5)) //nerfed by popular demand - var/contained_reagents = reagents.get_reagents() - var/trans = reagents.trans_to_mob(target, syringestab_amount_transferred, CHEM_BLOOD) - if(isnull(trans)) trans = 0 - admin_inject_log(user, target, src, contained_reagents, trans, violent=1) - break_syringe(target, user) + var/syringestab_amount_transferred = rand(0, (reagents.total_volume - 5)) //nerfed by popular demand + var/contained_reagents = reagents.get_reagents() + var/trans = reagents.trans_to_mob(target, syringestab_amount_transferred, CHEM_BLOOD) + if(isnull(trans)) trans = 0 + admin_inject_log(user, target, src, contained_reagents, trans, violent=1) + break_syringe(target, user) - proc/break_syringe(mob/living/carbon/target, mob/living/carbon/user) - desc += " It is broken." - mode = SYRINGE_BROKEN - if(target) - add_blood(target) - if(user) - add_fingerprint(user) - update_icon() +/obj/item/weapon/reagent_containers/syringe/proc/break_syringe(mob/living/carbon/target, mob/living/carbon/user) + desc += " It is broken." + mode = SYRINGE_BROKEN + if(target) + add_blood(target) + if(user) + add_fingerprint(user) + update_icon() /obj/item/weapon/reagent_containers/syringe/ld50_syringe name = "Lethal Injection Syringe" @@ -287,13 +285,13 @@ visible_name = "a giant syringe" time = 300 - afterattack(obj/target, mob/user, flag) - if(mode == SYRINGE_DRAW && ismob(target)) // No drawing 50 units of blood at once - user << "This needle isn't designed for drawing blood." - return - if(user.a_intent == "hurt" && ismob(target)) // No instant injecting - user << "This syringe is too big to stab someone with it." - ..() +/obj/item/weapon/reagent_containers/syringe/ld50_syringe/afterattack(obj/target, mob/user, flag) + if(mode == SYRINGE_DRAW && ismob(target)) // No drawing 50 units of blood at once + user << "This needle isn't designed for drawing blood." + return + if(user.a_intent == "hurt" && ismob(target)) // No instant injecting + user << "This syringe is too big to stab someone with it." + ..() //////////////////////////////////////////////////////////////////////////////// /// Syringes. END @@ -302,44 +300,47 @@ /obj/item/weapon/reagent_containers/syringe/inaprovaline name = "Syringe (inaprovaline)" desc = "Contains inaprovaline - used to stabilize patients." - New() - ..() - reagents.add_reagent("inaprovaline", 15) - mode = SYRINGE_INJECT - update_icon() + +/obj/item/weapon/reagent_containers/syringe/inaprovaline/New() + ..() + reagents.add_reagent("inaprovaline", 15) + mode = SYRINGE_INJECT + update_icon() /obj/item/weapon/reagent_containers/syringe/antitoxin name = "Syringe (anti-toxin)" desc = "Contains anti-toxins." - New() - ..() - reagents.add_reagent("anti_toxin", 15) - mode = SYRINGE_INJECT - update_icon() + +/obj/item/weapon/reagent_containers/syringe/antitoxin/New() + ..() + reagents.add_reagent("anti_toxin", 15) + mode = SYRINGE_INJECT + update_icon() /obj/item/weapon/reagent_containers/syringe/antiviral name = "Syringe (spaceacillin)" desc = "Contains antiviral agents." - New() - ..() - reagents.add_reagent("spaceacillin", 15) - mode = SYRINGE_INJECT - update_icon() + +/obj/item/weapon/reagent_containers/syringe/antiviral/New() + ..() + reagents.add_reagent("spaceacillin", 15) + mode = SYRINGE_INJECT + update_icon() /obj/item/weapon/reagent_containers/syringe/drugs name = "Syringe (drugs)" desc = "Contains aggressive drugs meant for torture." - New() - ..() - reagents.add_reagent("space_drugs", 5) - reagents.add_reagent("mindbreaker", 5) - reagents.add_reagent("cryptobiolin", 5) - mode = SYRINGE_INJECT - update_icon() -/obj/item/weapon/reagent_containers/syringe/ld50_syringe/choral - New() - ..() - reagents.add_reagent("chloralhydrate", 50) - mode = SYRINGE_INJECT - update_icon() +/obj/item/weapon/reagent_containers/syringe/drugs/New() + ..() + reagents.add_reagent("space_drugs", 5) + reagents.add_reagent("mindbreaker", 5) + reagents.add_reagent("cryptobiolin", 5) + mode = SYRINGE_INJECT + update_icon() + +/obj/item/weapon/reagent_containers/syringe/ld50_syringe/choral/New() + ..() + reagents.add_reagent("chloralhydrate", 50) + mode = SYRINGE_INJECT + update_icon() From 1f4ceea091fafeef73876222f7a9a9603440beb7 Mon Sep 17 00:00:00 2001 From: Yoshax Date: Mon, 16 May 2016 21:09:07 +0100 Subject: [PATCH 3/3] Adds changelog --- html/changelogs/yoshax - shotglasses.yml | 36 ++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 html/changelogs/yoshax - shotglasses.yml diff --git a/html/changelogs/yoshax - shotglasses.yml b/html/changelogs/yoshax - shotglasses.yml new file mode 100644 index 0000000000..5944d8f5c6 --- /dev/null +++ b/html/changelogs/yoshax - shotglasses.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Yoshax + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added shotglasses. These can contain 10 units. They have their whole contents swalloed in one gulp. They can be produced in the autolathe or found in the booze vending machine in the bar."