From 5cb4ae98794266cbcfd74a97f8ff07a498ec0c44 Mon Sep 17 00:00:00 2001 From: Yoshax Date: Mon, 16 May 2016 20:06:10 +0100 Subject: [PATCH 01/12] 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 601533acc33..1ff6815be45 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 4736096c1cf..bedf855ec86 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 fd0996e2bc9..94bb1fd84ef 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 9141efbc1e7..cdf495405ff 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 02/12] 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 4f4981b4d8a..558e8609134 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 e605683de73..36a8b40feff 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 7d72b8bf51f..4597c5bd716 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 d449d251952..ce26cdda50e 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 7fd9bec3a20..c934343e77b 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 c53d91675bf..a9e55b26fe3 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 3041ec99577..98ce8751aa8 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 7ea52765fcd..9e1dc525366 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 a5903e744d8..44ea628eca3 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 55dfcc7745d..5f22c3f3240 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 3a95b3cd1c2..2e2d5e4fdd0 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 7fc7707c28b..89598898f87 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 741e9eccdd7..7c291f1906b 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 03/12] 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 00000000000..5944d8f5c62 --- /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." From b91065dabb6d199a96e84f150566c6bc4e7243a5 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Mon, 16 May 2016 16:11:24 -0400 Subject: [PATCH 04/12] Makes items fall through holders As in, scooped mob holders, like Teshari. If they throw an item, it falls out now rather than being trapped and eventually deleted in their holder object. --- code/modules/mob/holder.dm | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index dc8dbccb013..28a717dbdbc 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -18,6 +18,7 @@ var/list/holder_mob_icon_cache = list() slot_r_hand_str = 'icons/mob/items/righthand_holder.dmi', ) pixel_y = 8 + var/mob/living/held_mob /obj/item/weapon/holder/New() ..() @@ -29,21 +30,26 @@ var/list/holder_mob_icon_cache = list() /obj/item/weapon/holder/process() update_state() + drop_items() /obj/item/weapon/holder/dropped() ..() spawn(1) update_state() -/obj/item/weapon/proc/update_state() +/obj/item/weapon/holder/proc/update_state() if(istype(loc,/turf) || !(contents.len)) - for(var/mob/M in contents) - var/atom/movable/mob_container - mob_container = M - mob_container.forceMove(get_turf(src)) - M.reset_view() + held_mob = null + drop_items() qdel(src) +/obj/item/weapon/holder/proc/drop_items() + if(contents.len > 1) + for(var/atom/movable/M in contents) + if(M == held_mob) + continue + M.forceMove(get_turf(src)) + /obj/item/weapon/holder/GetID() for(var/mob/M in contents) var/obj/item/I = M.GetIdCard() @@ -109,6 +115,7 @@ var/list/holder_mob_icon_cache = list() return var/obj/item/weapon/holder/H = new holder_type(get_turf(src)) + H.held_mob = src src.forceMove(H) grabber.put_in_hands(H) From 15fbac6ef114844482f6bc1889f562e4c99b3c52 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Mon, 16 May 2016 17:02:12 -0400 Subject: [PATCH 05/12] Revert to old_x and old_y after attack animations Does not use initial(pixel_x) and initial(pixel_y) for 'finishing' attack animations, so that mobs can have old_x and old_y updated to reflect a natural pixel offset (e.g. for mobs that are longer/taller than 32x32 and are nudged to fit into a tile). For example, we have a 32x64 cyborg module which sets pixel_x, pixel_y, old_x, and old_y when selected, however attacking with it resets it to 0 as this doesn't respect old_x and old_y like all other mob anims do (see floating, etc). Also why define this on atom and then literally never use it on anything other than a mob, in the... mob/animations.dm file? _Sorry to keep making QOL PRs. I promise I'll send something cool eventually._ --- code/modules/mob/animations.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/animations.dm b/code/modules/mob/animations.dm index b21c88245a9..221777f56ad 100644 --- a/code/modules/mob/animations.dm +++ b/code/modules/mob/animations.dm @@ -140,11 +140,11 @@ note dizziness decrements automatically in the mob's Life() proc. //reset the pixel offsets to zero is_floating = 0 -/atom/movable/proc/do_attack_animation(atom/A) +/mob/proc/do_attack_animation(mob/M) var/pixel_x_diff = 0 var/pixel_y_diff = 0 - var/direction = get_dir(src, A) + var/direction = get_dir(src, M) switch(direction) if(NORTH) pixel_y_diff = 8 @@ -167,7 +167,7 @@ note dizziness decrements automatically in the mob's Life() proc. pixel_x_diff = -8 pixel_y_diff = -8 animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2) - animate(pixel_x = initial(pixel_x), pixel_y = initial(pixel_y), time = 2) + animate(pixel_x = old_x, pixel_y = old_y, time = 2) /mob/do_attack_animation(atom/A) ..() From 82f09c16420a2e6f77dd937691033ee7d2a8768b Mon Sep 17 00:00:00 2001 From: silveryferret Date: Mon, 16 May 2016 21:20:30 -0500 Subject: [PATCH 06/12] Replaces BE_MONKEY with BE_RENEGADE As title. Also adds Renegade into the antagonism tab underneath character set up. --- code/__defines/gamemode.dm | 4 ++-- code/game/antagonist/station/renegade.dm | 8 +++++--- .../client/preference_setup/antagonism/02_candidacy.dm | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/code/__defines/gamemode.dm b/code/__defines/gamemode.dm index 815c55b2ecc..fc2d16ea636 100644 --- a/code/__defines/gamemode.dm +++ b/code/__defines/gamemode.dm @@ -18,7 +18,7 @@ #define BE_ALIEN 0x40 #define BE_AI 0x80 #define BE_CULTIST 0x100 -#define BE_MONKEY 0x200 +#define BE_RENEGADE 0x200 #define BE_NINJA 0x400 #define BE_RAIDER 0x800 #define BE_PLANT 0x1000 @@ -37,7 +37,7 @@ var/list/be_special_flags = list( "Xenomorph" = BE_ALIEN, "Positronic Brain" = BE_AI, "Cultist" = BE_CULTIST, - "Monkey" = BE_MONKEY, + "Renegade" = BE_RENEGADE, "Ninja" = BE_NINJA, "Raider" = BE_RAIDER, "Diona" = BE_PLANT, diff --git a/code/game/antagonist/station/renegade.dm b/code/game/antagonist/station/renegade.dm index 887b3a1b3f2..efcdbad2362 100644 --- a/code/game/antagonist/station/renegade.dm +++ b/code/game/antagonist/station/renegade.dm @@ -1,8 +1,12 @@ var/datum/antagonist/renegade/renegades /datum/antagonist/renegade + id = MODE_RENEGADE + role_type = BE_RENEGADE role_text = "Renegade" role_text_plural = "Renegades" + bantype = "renegade" + restricted_jobs = list("AI", "Cyborg") welcome_text = "Something's going to go wrong today, you can just feel it. You're paranoid, you've got a gun, and you're going to survive." antag_text = "You are a minor antagonist! Within the rules, \ try to protect yourself and what's important to you. You aren't here to cause trouble, \ @@ -12,10 +16,8 @@ var/datum/antagonist/renegade/renegades and before taking extreme actions, please try to also contact the administration! \ Think through your actions and make the roleplay immersive! Please remember all \ rules aside from those without explicit exceptions apply to antagonists." - - id = MODE_RENEGADE flags = ANTAG_SUSPICIOUS | ANTAG_IMPLANT_IMMUNE | ANTAG_RANDSPAWN | ANTAG_VOTABLE - + hard_cap = 8 hard_cap_round = 12 initial_spawn_req = 2 diff --git a/code/modules/client/preference_setup/antagonism/02_candidacy.dm b/code/modules/client/preference_setup/antagonism/02_candidacy.dm index 82d44027afe..530fc721ee1 100644 --- a/code/modules/client/preference_setup/antagonism/02_candidacy.dm +++ b/code/modules/client/preference_setup/antagonism/02_candidacy.dm @@ -10,7 +10,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set "alien candidate" = 1, //always show // 6 "positronic brain" = 1, // 7 "cultist" = IS_MODE_COMPILED("cult"), // 8 - "infested monkey" = IS_MODE_COMPILED("monkey"), // 9 + "renegade" = 1, // 9 "ninja" = "true", // 10 "raider" = IS_MODE_COMPILED("heist"), // 11 "diona" = 1, // 12 From c53f214b7b288826a4c66d0f07d9e9cba6df6850 Mon Sep 17 00:00:00 2001 From: Yoshax Date: Tue, 17 May 2016 16:48:12 +0100 Subject: [PATCH 07/12] Disables alternative title validation to allow for admins to give people/themselves retainable non-standard titles --- code/modules/client/preference_setup/occupation/occupation.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/client/preference_setup/occupation/occupation.dm b/code/modules/client/preference_setup/occupation/occupation.dm index 09dd7f573e4..f0ee09f3951 100644 --- a/code/modules/client/preference_setup/occupation/occupation.dm +++ b/code/modules/client/preference_setup/occupation/occupation.dm @@ -49,10 +49,10 @@ if(!job_master) return - for(var/datum/job/job in job_master.occupations) + /*for(var/datum/job/job in job_master.occupations) var/alt_title = pref.player_alt_titles[job.title] if(alt_title && !(alt_title in job.alt_titles)) - pref.player_alt_titles -= job.title + pref.player_alt_titles -= job.title*/ /datum/category_item/player_setup_item/occupation/content(mob/user, limit = 16, list/splitJobs = list("Chief Medical Officer")) if(!job_master) From 64a16aeec2a4e338788fc7e8e79ba6fa4ea84b11 Mon Sep 17 00:00:00 2001 From: Yoshax Date: Tue, 17 May 2016 17:37:42 +0100 Subject: [PATCH 08/12] Updates changelog --- html/changelog.html | 10 +++++++ html/changelogs/.all_changelog.yml | 8 +++++ html/changelogs/SilveryFerret-PR-1664.yml | 36 ----------------------- html/changelogs/yoshax - shotglasses.yml | 36 ----------------------- 4 files changed, 18 insertions(+), 72 deletions(-) delete mode 100644 html/changelogs/SilveryFerret-PR-1664.yml delete mode 100644 html/changelogs/yoshax - shotglasses.yml diff --git a/html/changelog.html b/html/changelog.html index f164041dd8a..8a5a9b67462 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -53,6 +53,16 @@ -->
+

17 May 2016

+

SilveryFerret updated:

+
    +
  • Changes the Death Alarms from announcing over Common channel, to announcing only over Medical and Security channels.
  • +
+

Yoshax updated:

+
    +
  • 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.
  • +
+

16 May 2016

Yoshax updated: