From 940aaec9c8622510066b3c647941c013dc09eaec Mon Sep 17 00:00:00 2001 From: Rykka Date: Tue, 14 Jul 2020 17:04:52 -0400 Subject: [PATCH] WIP Aurora Cooking Port This ports Aurora Cooking, sometimes called Nanako Cooking, from CitRP, who got it from Aurora originally. https://github.com/Citadel-Station-13/Citadel-Station-13-RP/pull/608 Pulled from here with updates to to_chat() Ovens and fryers now work like the microwave, but also have special trays/baskets that can be inserted and removed with things on them. There's also a crapton of new recipes. Note that you can still use the oven to just bake things, or produce variable food items, to my knowledge. This was specifically kept in when it was originally implemented, IIRC. - Cooking now uses several machines to make recipes. Microwave, oven, deep fryer. - Recipes have been redone to reflect this. - Adds a reagent called Space Spice (used in Synnono's food recipes mostly, prevents recipe conflicts) - New foods! Lots of them. - You can cook using held mobs. Also, mouse/ratburgers. I can dump the recipes if you'd like. https://user-images.githubusercontent.com/40557659/52112070-10165a80-25cb-11e9-9a72-2c919f0033dd.png (From their PR, may not be accurate). This is WIP, and will not compile just yet. --- code/_helpers/sorts/comparators.dm | 6 + code/game/gamemodes/cult/cultify/obj.dm | 2 +- code/game/objects/stumble_into_vr.dm | 2 +- code/modules/food/food/condiment.dm | 31 +- code/modules/food/food/snacks.dm | 1726 +++++++++++- code/modules/food/food/snacks/meat.dm | 29 +- .../kitchen/cooking_machines/_appliance.dm | 728 ++++++ .../food/kitchen/cooking_machines/_cooker.dm | 357 +-- .../cooking_machines/_cooker_output.dm | 232 +- .../food/kitchen/cooking_machines/_mixer.dm | 141 + .../food/kitchen/cooking_machines/candy.dm | 38 +- .../food/kitchen/cooking_machines/cereal.dm | 87 +- .../kitchen/cooking_machines/container.dm | 157 ++ .../food/kitchen/cooking_machines/fryer.dm | 224 +- .../food/kitchen/cooking_machines/grill.dm | 18 +- .../food/kitchen/cooking_machines/oven.dm | 44 +- icons/obj/cooking_machines.dmi | Bin 3439 -> 12112 bytes icons/obj/food.dmi | Bin 132834 -> 132833 bytes icons/obj/food_syn.dmi | Bin 0 -> 52682 bytes maps/northern_star/polaris-1.dmm | 10 +- maps/southern_cross/southern_cross-1.dmm | 12 +- maps/southern_cross/southern_cross-6.dmm | 12 +- maps/submaps/surface_submaps/plains/Diner.dmm | 2264 ++++++++-------- .../surface_submaps/plains/Diner_vr.dmm | 2308 ++++++++--------- .../surface_submaps/wilderness/Manor1.dmm | 374 +-- .../submaps/admin_use/dhael_centcom.dmm | 16 +- .../submaps/aerostat/submaps/Manor1.dmm | 4 +- maps/tether/submaps/om_ships/aro.dmm | 4 +- maps/tether/submaps/om_ships/cruiser.dmm | 10 +- .../tether/submaps/om_ships/mercenarybase.dmm | 6 +- maps/tether/tether-03-surface3.dmm | 10 +- maps/virgo/virgo-1.dmm | 10 +- vorestation.dme | 1 + 33 files changed, 5898 insertions(+), 2965 deletions(-) create mode 100644 code/modules/food/kitchen/cooking_machines/_appliance.dm create mode 100644 code/modules/food/kitchen/cooking_machines/_mixer.dm create mode 100644 code/modules/food/kitchen/cooking_machines/container.dm create mode 100644 icons/obj/food_syn.dmi diff --git a/code/_helpers/sorts/comparators.dm b/code/_helpers/sorts/comparators.dm index a9ca5748b7..f4a8c575c9 100644 --- a/code/_helpers/sorts/comparators.dm +++ b/code/_helpers/sorts/comparators.dm @@ -56,3 +56,9 @@ . = B[STAT_ENTRY_TIME] - A[STAT_ENTRY_TIME] if (!.) . = B[STAT_ENTRY_COUNT] - A[STAT_ENTRY_COUNT] + +// Compares complexity of recipes for use in cooking, etc. This is for telling which recipe to make, not for showing things to the player. +/proc/cmp_recipe_complexity_dsc(datum/recipe/A, datum/recipe/B) + var/a_score = LAZYLEN(A.items) + LAZYLEN(A.reagents) + LAZYLEN(A.fruit) + var/b_score = LAZYLEN(B.items) + LAZYLEN(B.reagents) + LAZYLEN(B.fruit) + return b_score - a_score \ No newline at end of file diff --git a/code/game/gamemodes/cult/cultify/obj.dm b/code/game/gamemodes/cult/cultify/obj.dm index d7c0cff5ec..3ac41e0047 100644 --- a/code/game/gamemodes/cult/cultify/obj.dm +++ b/code/game/gamemodes/cult/cultify/obj.dm @@ -50,7 +50,7 @@ src.invisibility = INVISIBILITY_MAXIMUM density = 0 -/obj/machinery/cooker/cultify() +/obj/machinery/appliance/cooker/cultify() new /obj/structure/cult/talisman(loc) qdel(src) diff --git a/code/game/objects/stumble_into_vr.dm b/code/game/objects/stumble_into_vr.dm index 1493323af1..2a747ae563 100644 --- a/code/game/objects/stumble_into_vr.dm +++ b/code/game/objects/stumble_into_vr.dm @@ -89,7 +89,7 @@ ..() bumpopen(M) -/obj/machinery/cooker/fryer/stumble_into(mob/living/M) +/obj/machinery/appliance/cooker/fryer/stumble_into(mob/living/M) visible_message("[M] [pick("ran", "slammed")] into \the [src]!") M.apply_damage(15, BURN) M.Weaken(5) diff --git a/code/modules/food/food/condiment.dm b/code/modules/food/food/condiment.dm index 657946d019..618fed0895 100644 --- a/code/modules/food/food/condiment.dm +++ b/code/modules/food/food/condiment.dm @@ -115,6 +115,17 @@ desc = "This is what you use to make bread fluffy." icon_state = "yeast" center_of_mass = list("x"=16, "y"=6) + if("spacespice") + name = "bottle of space spice" + desc = "An exotic blend of spices for cooking. Definitely not worms." + icon = 'modular_citadel/icons/obj/food_syn.dmi' + icon_state = "spacespicebottle" + center_of_mass = list("x"=16, "y"=6) + if("barbecue") + name = "barbecue sauce" + desc = "Barbecue sauce, it's labeled 'sweet and spicy'." + icon_state = "barbecue" + center_of_mass = list("x"=16, "y"=6) else name = "Misc Condiment Bottle" if (reagents.reagent_list.len==1) @@ -408,6 +419,7 @@ desc = "A big bag of flour. Good for baking!" icon = 'icons/obj/food.dmi' icon_state = "flour" + volume = 220 center_of_mass = list("x"=16, "y"=8) /obj/item/weapon/reagent_containers/food/condiment/flour/on_reagent_change() @@ -415,5 +427,20 @@ /obj/item/weapon/reagent_containers/food/condiment/flour/Initialize() . = ..() - reagents.add_reagent("flour", 30) - randpixel_xy() \ No newline at end of file + reagents.add_reagent("flour", 200) + randpixel_xy() + +/obj/item/weapon/reagent_containers/food/condiment/spacespice + name = "space spices" + desc = "An exotic blend of spices for cooking. Definitely not worms." + icon_state = "spacespicebottle" + possible_transfer_amounts = list(1,40) //for clown turning the lid off + amount_per_transfer_from_this = 1 + volume = 40 + +/obj/item/weapon/reagent_containers/food/condiment/spacespice/on_reagent_change() + return + +/obj/item/weapon/reagent_containers/food/condiment/spacespice/initialize() + ..() + reagents.add_reagent("spacespice", 40) \ No newline at end of file diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index 72ac7787ce..e420dc4c0c 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -14,6 +14,12 @@ var/survivalfood = FALSE var/nutriment_amt = 0 var/list/nutriment_desc = list("food" = 1) + var/datum/reagent/nutriment/coating/coating = null + var/icon/flat_icon = null //Used to cache a flat icon generated from dipping in batter. This is used again to make the cooked-batter-overlay + var/do_coating_prefix = 1 //If 0, we wont do "battered thing" or similar prefixes. Mainly for recipes that include batter but have a special name + var/cooked_icon = null //Used for foods that are "cooked" without being made into a specific recipe or combination. + //Generally applied during modification cooking with oven/fryer + //Used to stop deepfried meat from looking like slightly tanned raw meat, and make it actually look cooked center_of_mass = list("x"=16, "y"=16) w_class = ITEMSIZE_SMALL force = 0 @@ -150,6 +156,8 @@ /obj/item/weapon/reagent_containers/food/snacks/examine(mob/user) . = ..() if(Adjacent(user)) + if(coating) + to_chat(user, "It's coated in [coating.name]!") if(bitecount==0) return . else if (bitecount==1) @@ -161,7 +169,7 @@ /obj/item/weapon/reagent_containers/food/snacks/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W,/obj/item/weapon/storage)) - ..() // -> item/attackby() + . = ..() // -> item/attackby() return // Eating with forks @@ -273,7 +281,7 @@ // name = "Xenoburger" //Name that displays in the UI. // desc = "Smells caustic. Tastes like heresy." //Duh // icon_state = "xburger" //Refers to an icon in food.dmi -// New() //Don't mess with this. +// Initialize() //Don't mess with this. (We use Initialize now instead of New()) // ..() //Same here. // reagents.add_reagent("xenomicrobes", 10) //This is what is in the food item. you may copy/paste // reagents.add_reagent("nutriment", 2) // this line of code for all the contents. @@ -349,7 +357,7 @@ nutriment_desc = list("candy corn" = 4) /obj/item/weapon/reagent_containers/food/snacks/candy_corn/Initialize() - ..() + . = ..() reagents.add_reagent("sugar", 2) bitesize = 2 @@ -589,7 +597,7 @@ /obj/item/weapon/reagent_containers/food/snacks/egg/afterattack(obj/O as obj, mob/user as mob, proximity) if(istype(O,/obj/machinery/microwave)) - return ..() + return . = ..() if(!(proximity && O.is_open_container())) return to_chat(user, "You crack \the [src] into \the [O].") @@ -598,7 +606,7 @@ qdel(src) /obj/item/weapon/reagent_containers/food/snacks/egg/throw_impact(atom/hit_atom) - ..() + . = ..() new/obj/effect/decal/cleanable/egg_smudge(src.loc) src.reagents.splash(hit_atom, reagents.total_volume) src.visible_message("[src.name] has been squashed.","You hear a smack.") @@ -616,7 +624,7 @@ to_chat(usr, "You color \the [src] [clr]") icon_state = "egg-[clr]" else - ..() + . = ..() /obj/item/weapon/reagent_containers/food/snacks/egg/blue icon_state = "egg-blue" @@ -1116,7 +1124,7 @@ bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/pie/throw_impact(atom/hit_atom) - ..() + . = ..() new/obj/effect/decal/cleanable/pie_smudge(src.loc) src.visible_message("\The [src.name] splats.","You hear a splat.") qdel(src) @@ -1234,7 +1242,7 @@ nutriment_desc = list("sweetness" = 3, "mushroom" = 3, "pie" = 2) /obj/item/weapon/reagent_containers/food/snacks/amanita_pie/Initialize() - ..() + . = ..() reagents.add_reagent("amatoxin", 3) reagents.add_reagent("psilocybin", 1) bitesize = 3 @@ -1249,7 +1257,7 @@ nutriment_desc = list("heartiness" = 2, "mushroom" = 3, "pie" = 3) /obj/item/weapon/reagent_containers/food/snacks/plump_pie/Initialize() - ..() + . = ..() if(prob(10)) name = "exceptional plump pie" desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!" @@ -1363,7 +1371,7 @@ if(prob(unpopped)) //lol ...what's the point? to_chat(usr, "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" @@ -1374,7 +1382,7 @@ center_of_mass = list("x"=15, "y"=9) /obj/item/weapon/reagent_containers/food/snacks/sosjerky/Initialize() - ..() + . = ..() reagents.add_reagent("protein", 4) bitesize = 2 @@ -1389,7 +1397,7 @@ nutriment_desc = list("dried raisins" = 6) /obj/item/weapon/reagent_containers/food/snacks/no_raisin/Initialize() - ..() + . = ..() reagents.add_reagent("nutriment", 6) /obj/item/weapon/reagent_containers/food/snacks/spacetwinkie @@ -1663,7 +1671,7 @@ /obj/item/weapon/reagent_containers/food/snacks/slimesoup name = "slime soup" desc = "If no water is available, you may substitute tears." - icon_state = "rorosoup" //nonexistant? - 3/1/2020 FIXED. roro's live on. + icon_state = "slimesoup" //nonexistant? - 3/1/2020 FIXED. roro's live on. - 7/14/2020 - The fuck are you smoking, roro's is stupid, name it slimesoup so it's clear wtf it is. filling_color = "#C4DBA0" /obj/item/weapon/reagent_containers/food/snacks/slimesoup/Initialize() @@ -2404,9 +2412,9 @@ reagents.add_reagent("peanutbutter", 5) /obj/item/weapon/reagent_containers/food/snacks/boiledslimecore - name = "Boiled slime Core" + name = "Boiled Slime Core" desc = "A boiled red thing." - icon_state = "boiledslimecore" //nonexistant? + icon_state = "boiledslimecore" /obj/item/weapon/reagent_containers/food/snacks/boiledslimecore/Initialize() . = ..() @@ -3869,7 +3877,7 @@ /obj/item/weapon/reagent_containers/food/snacks/sashimi name = "carp sashimi" - desc = "Expertly prepared. Hopefully toxin got removed though." + desc = "Expertly prepared. Hopefully the toxins got removed." filling_color = "#FFDEFE" icon_state = "sashimi" nutriment_amt = 6 @@ -3922,7 +3930,7 @@ filling_color = "#E0CF9B" center_of_mass = list("x"=17, "y"=4) nutriment_amt = 6 - nutriment_desc = list("sweetness" = 2, "muffin" = 2) + nutriment_desc = list("sweetness" = 2, "muffin" = 2, "berries" = 2) /obj/item/weapon/reagent_containers/food/snacks/berrymuffin/Initialize() . = ..() @@ -4341,3 +4349,1687 @@ if(pixel_x || pixel_y) A.pixel_x = pixel_x A.pixel_y = pixel_y + +/obj/item/weapon/reagent_containers/food/snacks/macncheese + name = "macaroni and cheese" + desc = "The perfect combination of noodles and dairy." + icon = 'modular_citadel/icons/obj/food_cit.dmi' + icon_state = "macncheese" + trash = /obj/item/trash/snack_bowl + center_of_mass = list("x"=16, "y"=16) + nutriment_amt = 9 + nutriment_desc = list("Cheese" = 5, "pasta" = 4, "happiness" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/macncheese/Initialize() + . = ..() + bitesize = 3 + +//Code for dipping food in batter +/obj/item/weapon/reagent_containers/food/snacks/afterattack(obj/O as obj, mob/user as mob, proximity) + if(O.is_open_container() && O.reagents && !(istype(O, /obj/item/weapon/reagent_containers/food))) + for (var/r in O.reagents.reagent_list) + + var/datum/reagent/R = r + if (istype(R, /datum/reagent/nutriment/coating)) + if (apply_coating(R, user)) + return 1 + + return . = ..() + +//This proc handles drawing coatings out of a container when this food is dipped into it +/obj/item/weapon/reagent_containers/food/snacks/proc/apply_coating(var/datum/reagent/nutriment/coating/C, var/mob/user) + if (coating) + user << "The [src] is already coated in [coating.name]!" + return 0 + + //Calculate the reagents of the coating needed + var/req = 0 + for (var/r in reagents.reagent_list) + var/datum/reagent/R = r + if (istype(R, /datum/reagent/nutriment)) + req += R.volume * 0.2 + else + req += R.volume * 0.1 + + req += w_class*0.5 + + if (!req) + //the food has no reagents left, its probably getting deleted soon + return 0 + + if (C.volume < req) + user << span("warning", "There's not enough [C.name] to coat the [src]!") + return 0 + + var/id = C.id + + //First make sure there's space for our batter + if (reagents.get_free_space() < req+5) + var/extra = req+5 - reagents.get_free_space() + reagents.maximum_volume += extra + + //Suck the coating out of the holder + C.holder.trans_to_holder(reagents, req) + + //We're done with C now, repurpose the var to hold a reference to our local instance of it + C = reagents.get_reagent(id) + if (!C) + return + + coating = C + //Now we have to do the witchcraft with masking images + //var/icon/I = new /icon(icon, icon_state) + + if (!flat_icon) + flat_icon = getFlatIcon(src) + var/icon/I = flat_icon + color = "#FFFFFF" //Some fruits use the color var. Reset this so it doesnt tint the batter + I.Blend(new /icon('icons/obj/food_custom.dmi', rgb(255,255,255)),ICON_ADD) + I.Blend(new /icon('icons/obj/food_custom.dmi', coating.icon_raw),ICON_MULTIPLY) + var/image/J = image(I) + J.alpha = 200 + J.blend_mode = BLEND_OVERLAY + J.tag = "coating" + overlays += J + + if (user) + user.visible_message(span("notice", "[user] dips \the [src] into \the [coating.name]"), span("notice", "You dip \the [src] into \the [coating.name]")) + + return 1 + + +//Called by cooking machines. This is mainly intended to set properties on the food that differ between raw/cooked +/obj/item/weapon/reagent_containers/food/snacks/proc/cook() + if (coating) + var/list/temp = overlays.Copy() + for (var/i in temp) + if (istype(i, /image)) + var/image/I = i + if (I.tag == "coating") + temp.Remove(I) + break + + overlays = temp + //Carefully removing the old raw-batter overlay + + if (!flat_icon) + flat_icon = getFlatIcon(src) + var/icon/I = flat_icon + color = "#FFFFFF" //Some fruits use the color var + I.Blend(new /icon('icons/obj/food_custom.dmi', rgb(255,255,255)),ICON_ADD) + I.Blend(new /icon('icons/obj/food_custom.dmi', coating.icon_cooked),ICON_MULTIPLY) + var/image/J = image(I) + J.alpha = 200 + J.tag = "coating" + overlays += J + + + if (do_coating_prefix == 1) + name = "[coating.coated_adj] [name]" + + for (var/r in reagents.reagent_list) + var/datum/reagent/R = r + if (istype(R, /datum/reagent/nutriment/coating)) + var/datum/reagent/nutriment/coating/C = R + C.data["cooked"] = 1 + C.name = C.cooked_name + +/obj/item/weapon/reagent_containers/food/snacks/proc/on_consume(var/mob/eater, var/mob/feeder = null) + if(!reagents.total_volume) + eater.visible_message("[eater] finishes eating \the [src].","You finish eating \the [src].") + + if (!feeder) + feeder = eater + + feeder.drop_from_inventory(src) //so icons update :[ //what the fuck is this???? + + if(trash) + if(ispath(trash,/obj/item)) + var/obj/item/TrashItem = new trash(feeder) + feeder.put_in_hands(TrashItem) + else if(istype(trash,/obj/item)) + feeder.put_in_hands(trash) + qdel(src) + return +//////////////////////////////////////////////////////////////////////////////// +/// FOOD END +//////////////////////////////////////////////////////////////////////////////// + +/mob/living + var/composition_reagent + var/composition_reagent_quantity + +/mob/living/simple_animal/adultslime + composition_reagent = "slimejelly" + +/mob/living/carbon/slime + composition_reagent = "slimejelly" + +/mob/living/carbon/alien/diona + composition_reagent = "nutriment"//Dionae are plants, so eating them doesn't give animal protein + +/mob/living/simple_animal/slime + composition_reagent = "slimejelly" + +/mob/living/simple_animal + var/kitchen_tag = "animal" //Used for cooking with animals + +/mob/living/simple_animal/mouse + kitchen_tag = "rodent" + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel + slices_num = 8 + +/obj/item/weapon/reagent_containers/food/snacks/sausage/battered + name = "battered sausage" + desc = "A piece of mixed, long meat, battered and then deepfried." + icon = 'icons/obj/food_syn.dmi' + icon_state = "batteredsausage" + filling_color = "#DB0000" + center_of_mass = list("x"=16, "y"=16) + do_coating_prefix = 0 + New() + . = ..() + reagents.add_reagent("protein", 6) + reagents.add_reagent("batter", 1.7) + reagents.add_reagent("oil", 1.5) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/jalapeno_poppers + name = "jalapeno popper" + desc = "A battered, deep-fried chilli pepper." + icon = 'icons/obj/food_syn.dmi' + icon_state = "popper" + filling_color = "#00AA00" + center_of_mass = list("x"=10, "y"=6) + do_coating_prefix = 0 + nutriment_amt = 2 + nutriment_desc = list("chilli pepper" = 2) + bitesize = 1 + +/obj/item/weapon/reagent_containers/food/snacks/jalapeno_poppers/Initialize() + . = . = ..() + reagents.add_reagent("batter", 2) + reagents.add_reagent("oil", 2) + +/obj/item/weapon/reagent_containers/food/snacks/mouseburger + name = "mouse burger" + desc = "Squeaky and a little furry." + icon = 'icons/obj/food_syn.dmi' + icon_state = "ratburger" + center_of_mass = list("x"=16, "y"=11) + New() + . = ..() + reagents.add_reagent("protein", 4) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/chickenkatsu + name = "chicken katsu" + desc = "A Terran delicacy consisting of chicken fried in a light beer batter." + icon = 'icons/obj/food_syn.dmi' + icon_state = "katsu" + trash = /obj/item/trash/plate + filling_color = "#E9ADFF" + center_of_mass = list("x"=16, "y"=16) + do_coating_prefix = 0 + +/obj/item/weapon/reagent_containers/food/snacks/chickenkatsu/Initialize() + . = ..() + reagents.add_reagent("protein", 6) + reagents.add_reagent("beerbatter", 2) + reagents.add_reagent("oil", 1) + bitesize = 1.5 + +/obj/item/weapon/reagent_containers/food/snacks/fries + nutriment_amt = 4 + nutriment_desc = list("fries" = 4) + +/obj/item/weapon/reagent_containers/food/snacks/fries/Initialize() + . = ..() + reagents.add_reagent("oil", 1.2)//This is mainly for the benefit of adminspawning + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/microchips + name = "micro chips" + desc = "Soft and rubbery, should have fried them. Good for smaller crewmembers, maybe?" + icon = 'icons/obj/food_syn.dmi' + icon_state = "microchips" + trash = /obj/item/trash/plate + filling_color = "#EDDD00" + nutriment_amt = 4 + nutriment_desc = list("soggy fries" = 4) + center_of_mass = list("x"=16, "y"=11) + +/obj/item/weapon/reagent_containers/food/snacks/microchips/Initialize() + . = ..() + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/ovenchips + name = "oven chips" + desc = "Dark and crispy, but a bit dry." + icon = 'icons/obj/food_syn.dmi' + icon_state = "ovenchips" + trash = /obj/item/trash/plate + filling_color = "#EDDD00" + nutriment_amt = 4 + nutriment_desc = list("crisp, dry fries" = 4) + center_of_mass = list("x"=16, "y"=11) + +/obj/item/weapon/reagent_containers/food/snacks/ovenchips/Initialize() + . = ..() + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/meatsteak/Initialize() + . = ..() + reagents.add_reagent("protein", 6) + reagents.add_reagent("triglyceride", 2) + reagents.add_reagent("sodiumchloride", 1) + reagents.add_reagent("blackpepper", 1) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/crunch + name = "pizza crunch" + desc = "This was once a normal pizza, but it has been coated in batter and deep-fried. Whatever toppings it once had are a mystery, but they're still under there, somewhere..." + icon = 'icons/obj/food_syn.dmi' + icon_state = "pizzacrunch" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzacrunchslice + slices_num = 6 + nutriment_amt = 25 + nutriment_desc = list("fried pizza" = 25) + center_of_mass = list("x"=16, "y"=11) + + New() + . = ..() + reagents.add_reagent("batter", 6.5) + coating = reagents.get_reagent("batter") + reagents.add_reagent("oil", 4) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/pizzacrunchslice + name = "pizza crunch" + desc = "A little piece of a heart attack. It's toppings are a mystery, hidden under batter" + icon = 'icons/obj/food_syn.dmi' + icon_state = "pizzacrunchslice" + filling_color = "#BAA14C" + bitesize = 2 + center_of_mass = list("x"=18, "y"=13) + +/obj/item/weapon/reagent_containers/food/snacks/funnelcake + name = "funnel cake" + desc = "Funnel cakes rule!" + icon = 'icons/obj/food_syn.dmi' + icon_state = "funnelcake" + filling_color = "#Ef1479" + center_of_mass = list("x"=16, "y"=12) + do_coating_prefix = 0 + +/obj/item/weapon/reagent_containers/food/snacks/funnelcake/Initialize() + . = ..() + reagents.add_reagent("batter", 10) + reagents.add_reagent("sugar", 5) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/spreads + name = "nutri-spread" + desc = "A stick of plant-based nutriments in a semi-solid form. I can't believe it's not margarine!" + icon = 'icons/obj/food_syn.dmi' + icon_state = "marge" + bitesize = 2 + center_of_mass = list("x"=16, "y"=16) + nutriment_desc = list("margarine" = 1) + nutriment_amt = 20 + +/obj/item/weapon/reagent_containers/food/snacks/spreads/butter + name = "butter" + desc = "A stick of pure butterfat made from milk products." + icon = 'icons/obj/food_syn.dmi' + icon_state = "butter" + bitesize = 2 + center_of_mass = list("x"=16, "y"=16) + nutriment_desc = list("butter" = 1) + nutriment_amt = 0 + +/obj/item/weapon/reagent_containers/food/snacks/spreads/Initialize() + . = . = ..() + reagents.add_reagent("triglyceride", 20) + reagents.add_reagent("sodiumchloride",1) + +/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/material/knife)) + new /obj/item/weapon/reagent_containers/food/snacks/rawbacon(src) + new /obj/item/weapon/reagent_containers/food/snacks/rawbacon(src) + to_chat(user, "You slice the cutlet into thin strips of bacon.") + qdel(src) + else + . = ..() + +/obj/item/weapon/reagent_containers/food/snacks/rawbacon + name = "raw bacon" + desc = "A very thin piece of raw meat, cut from beef." + icon = 'icons/obj/food_syn.dmi' + icon_state = "rawbacon" + bitesize = 1 + center_of_mass = list("x"=16, "y"=16) + +/obj/item/weapon/reagent_containers/food/snacks/rawbacon/Initialize() + . = . = ..() + reagents.add_reagent("protein", 0.33) + +/obj/item/weapon/reagent_containers/food/snacks/bacon + name = "bacon" + desc = "A tasty meat slice. You don't see any pigs on this station, do you?" + icon = 'icons/obj/food_syn.dmi' + icon_state = "bacon" + bitesize = 2 + center_of_mass = list("x"=16, "y"=16) + +/obj/item/weapon/reagent_containers/food/snacks/bacon/microwave + name = "microwaved bacon" + desc = "A tasty meat slice. You don't see any pigs on this station, do you?" + icon = 'icons/obj/food_syn.dmi' + icon_state = "bacon" + bitesize = 2 + center_of_mass = list("x"=16, "y"=16) + +/obj/item/weapon/reagent_containers/food/snacks/bacon/oven + name = "oven-cooked bacon" + desc = "A tasty meat slice. You don't see any pigs on this station, do you?" + icon = 'icons/obj/food_syn.dmi' + icon_state = "bacon" + bitesize = 2 + center_of_mass = list("x"=16, "y"=16) + +/obj/item/weapon/reagent_containers/food/snacks/bacon/Initialize() + . = . = ..() + reagents.add_reagent("protein", 0.33) + reagents.add_reagent("triglyceride", 1) + +/obj/item/weapon/reagent_containers/food/snacks/bacon_stick + name = "eggpop" + desc = "A bacon wrapped boiled egg, conviently skewered on a wooden stick." + icon = 'icons/obj/food_syn.dmi' + icon_state = "bacon_stick" + +/obj/item/weapon/reagent_containers/food/snacks/bacon_stick/Initialize() + . = . = ..() + reagents.add_reagent("protein", 3) + reagents.add_reagent("egg", 1) + +/obj/item/weapon/reagent_containers/food/snacks/chilied_eggs + name = "chilied eggs" + desc = "Three deviled eggs floating in a bowl of meat chili. A popular lunchtime meal for Unathi in Ouerea." + icon_state = "chilied_eggs" + trash = /obj/item/trash/snack_bowl + +/obj/item/weapon/reagent_containers/food/snacks/chilied_eggs/Initialize() + . = . = ..() + reagents.add_reagent("egg", 6) + reagents.add_reagent("protein", 2) + + +/obj/item/weapon/reagent_containers/food/snacks/cheese_cracker + name = "supreme cheese toast" + desc = "A piece of toast lathered with butter, cheese, spices, and herbs." + icon = 'icons/obj/food_syn.dmi' + icon_state = "cheese_cracker" + nutriment_desc = list("cheese toast" = 8) + nutriment_amt = 8 + +/obj/item/weapon/reagent_containers/food/snacks/bacon_and_eggs + name = "bacon and eggs" + desc = "A piece of bacon and two fried eggs." + icon = 'icons/obj/food_syn.dmi' + icon_state = "bacon_and_eggs" + trash = /obj/item/trash/plate + +/obj/item/weapon/reagent_containers/food/snacks/bacon_and_eggs/Initialize() + . = . = ..() + reagents.add_reagent("protein", 3) + reagents.add_reagent("egg", 1) + +/obj/item/weapon/reagent_containers/food/snacks/sweet_and_sour + name = "sweet and sour pork" + desc = "A traditional ancient sol recipe with a few liberties taken with meat selection." + icon = 'icons/obj/food_syn.dmi' + icon_state = "sweet_and_sour" + nutriment_desc = list("sweet and sour" = 6) + nutriment_amt = 6 + trash = /obj/item/trash/plate + +/obj/item/weapon/reagent_containers/food/snacks/sweet_and_sour/Initialize() + . = . = ..() + reagents.add_reagent("protein", 3) + +/obj/item/weapon/reagent_containers/food/snacks/corn_dog + name = "corn dog" + desc = "A cornbread covered sausage deepfried in oil." + icon = 'icons/obj/food_syn.dmi' + icon_state = "corndog" + nutriment_desc = list("corn batter" = 4) + nutriment_amt = 4 + +/obj/item/weapon/reagent_containers/food/snacks/corn_dog/Initialize() + . = . = ..() + reagents.add_reagent("protein", 3) + +/obj/item/weapon/reagent_containers/food/snacks/truffle + name = "chocolate truffle" + desc = "Rich bite-sized chocolate." + icon = 'icons/obj/food_syn.dmi' + icon_state = "truffle" + nutriment_amt = 0 + bitesize = 4 + +/obj/item/weapon/reagent_containers/food/snacks/truffle/Initialize() + . = . = ..() + reagents.add_reagent("coco", 6) + +/obj/item/weapon/reagent_containers/food/snacks/truffle/random + name = "mystery chocolate truffle" + desc = "Rich bite-sized chocolate with a mystery filling!" + +/obj/item/weapon/reagent_containers/food/snacks/truffle/random/Initialize() + . = . = ..() + var/reagent_string = pick(list("cream","cherryjelly","mint","frostoil","capsaicin","cream","coffee","milkshake")) + reagents.add_reagent(reagent_string, 4) + +/obj/item/weapon/reagent_containers/food/snacks/bacon_flatbread + name = "bacon cheese flatbread" + desc = "Not a pizza." + icon_state = "bacon_pizza" + icon = 'icons/obj/food_syn.dmi' + nutriment_desc = list("flatbread" = 5) + nutriment_amt = 5 + +/obj/item/weapon/reagent_containers/food/snacks/bacon_flatbread/Initialize() + . = . = ..() + reagents.add_reagent("protein", 5) + +/obj/item/weapon/reagent_containers/food/snacks/meat_pocket + name = "meat pocket" + desc = "Meat and cheese stuffed in a flatbread pocket, grilled to perfection." + icon = 'icons/obj/food_syn.dmi' + icon_state = "meat_pocket" + nutriment_desc = list("flatbread" = 3) + nutriment_amt = 3 + +/obj/item/weapon/reagent_containers/food/snacks/meat_pocket/Initialize() + . = . = ..() + reagents.add_reagent("protein", 3) + +/obj/item/weapon/reagent_containers/food/snacks/fish_taco + name = "carp taco" + desc = "A questionably cooked fish taco decorated with herbs, spices, and special sauce." + icon = 'icons/obj/food_syn.dmi' + icon_state = "fish_taco" + nutriment_desc = list("flatbread" = 3) + nutriment_amt = 3 + +/obj/item/weapon/reagent_containers/food/snacks/fish_taco/Initialize() + . = . = ..() + reagents.add_reagent("seafood",3) + +/obj/item/weapon/reagent_containers/food/snacks/nt_muffin + name = "\improper NtMuffin" + desc = "A NanoTrasen sponsered biscuit with egg, cheese, and sausage." + icon = 'icons/obj/food_syn.dmi' + icon_state = "nt_muffin" + nutriment_desc = list("biscuit" = 3) + nutriment_amt = 3 + +/obj/item/weapon/reagent_containers/food/snacks/nt_muffin/Initialize() + . = . = ..() + reagents.add_reagent("protein",5) + +/obj/item/weapon/reagent_containers/food/snacks/pineapple_ring + name = "pineapple ring" + desc = "What the hell is this?" + icon = 'icons/obj/food_syn.dmi' + icon_state = "pineapple_ring" + nutriment_desc = list("sweetness" = 2) + nutriment_amt = 2 + +/obj/item/weapon/reagent_containers/food/snacks/pineapple_ring/Initialize() + . = . = ..() + reagents.add_reagent("pineapplejuice",3) + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/pineapple + name = "ham & pineapple pizza" + desc = "One of the most debated pizzas in existence." + icon = 'icons/obj/food_syn.dmi' + icon_state = "pineapple_pizza" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/pineappleslice + slices_num = 6 + center_of_mass = list("x"=16, "y"=11) + nutriment_desc = list("pizza crust" = 10, "tomato" = 10, "ham" = 10) + nutriment_amt = 30 + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/pineapple/Initialize() + . = . = ..() + reagents.add_reagent("protein", 4) + reagents.add_reagent("cheese", 5) + reagents.add_reagent("tomatojuice", 6) + +/obj/item/weapon/reagent_containers/food/snacks/pineappleslice + name = "ham & pineapple pizza slice" + desc = "A slice of contraband." + icon = 'icons/obj/food_syn.dmi' + icon_state = "pineapple_pizza_slice" + filling_color = "#BAA14C" + bitesize = 2 + center_of_mass = list("x"=18, "y"=13) + +/obj/item/weapon/reagent_containers/food/snacks/pineappleslice/filled + nutriment_desc = list("pizza crust" = 5, "tomato" = 5) + nutriment_amt = 5 + +/obj/item/weapon/reagent_containers/food/snacks/burger/bacon + name = "bacon burger" + desc = "The cornerstone of every nutritious breakfast, now with bacon!" + icon = 'icons/obj/food_syn.dmi' + icon_state = "baconburger" + filling_color = "#D63C3C" + center_of_mass = list("x"=16, "y"=11) + nutriment_desc = list("bun" = 2) + nutriment_amt = 3 + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/burger/bacon/Initialize() + . = . = ..() + reagents.add_reagent("protein", 4) + +/obj/item/weapon/reagent_containers/food/snacks/blt + name = "BLT" + desc = "Bacon, lettuce, tomatoes. The perfect lunch." + icon = 'icons/obj/food_syn.dmi' + icon_state = "blt" + filling_color = "#D63C3C" + center_of_mass = list("x"=16, "y"=16) + nutriment_desc = list("bread" = 4) + nutriment_amt = 4 + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/blt/Initialize() + . = . = ..() + reagents.add_reagent("protein", 4) + +/obj/item/weapon/reagent_containers/food/snacks/onionrings + name = "onion rings" + desc = "Like circular fries but better." + icon = 'icons/obj/food_syn.dmi' + icon_state = "onionrings" + trash = /obj/item/trash/plate + filling_color = "#eddd00" + center_of_mass = list("x"=16,"y"=11) + nutriment_desc = list("fried onions" = 5) + nutriment_amt = 5 + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/berrymuffin + name = "berry muffin" + desc = "A delicious and spongy little cake, with berries." + icon = 'icons/obj/food_syn.dmi' + icon_state = "berrymuffin" + filling_color = "#E0CF9B" + center_of_mass = list("x"=17, "y"=4) + nutriment_amt = 5 + nutriment_desc = list("sweetness" = 1, "muffin" = 2, "berries" = 2) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/soup/onion + name = "onion soup" + desc = "A soup with layers." + icon = 'icons/obj/food_syn.dmi' + icon_state = "onionsoup" + trash = /obj/item/trash/snack_bowl + filling_color = "#E0C367" + center_of_mass = list("x"=16, "y"=7) + nutriment_amt = 5 + nutriment_desc = list("onion" = 2, "soup" = 2) + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/porkbowl + name = "pork bowl" + desc = "A bowl of fried rice with cuts of meat." + icon = 'icons/obj/food_syn.dmi' + icon_state = "porkbowl" + trash = /obj/item/trash/snack_bowl + filling_color = "#FFFBDB" + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/porkbowl/Initialize() + . = ..() + reagents.add_reagent("rice", 6) + reagents.add_reagent("protein", 4) + +/obj/item/weapon/reagent_containers/food/snacks/mashedpotato + name = "mashed potato" + desc = "Pillowy mounds of mashed potato." + icon = 'icons/obj/food_syn.dmi' + icon_state = "mashedpotato" + trash = /obj/item/trash/plate + filling_color = "#EDDD00" + center_of_mass = list("x"=16, "y"=11) + nutriment_amt = 4 + nutriment_desc = list("mashed potatoes" = 4) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/croissant + name = "croissant" + desc = "True french cuisine." + icon = 'icons/obj/food_syn.dmi' + filling_color = "#E3D796" + icon_state = "croissant" + nutriment_amt = 4 + nutriment_desc = list("french bread" = 4) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/crabmeat + name = "crab legs" + desc = "... Coffee? Is that you?" + icon = 'icons/obj/food_syn.dmi' + icon_state = "crabmeat" + bitesize = 1 + +/obj/item/weapon/reagent_containers/food/snacks/crabmeat/Initialize() + . = . = ..() + reagents.add_reagent("seafood", 2) + +/obj/item/weapon/reagent_containers/food/snacks/crab_legs + name = "steamed crab legs" + desc = "Crab legs steamed and buttered to perfection. One day when the boss gets hungry..." + icon = 'icons/obj/food_syn.dmi' + icon_state = "crablegs" + nutriment_amt = 2 + nutriment_desc = list("savory butter" = 2) + bitesize = 2 + trash = /obj/item/trash/plate + +/obj/item/weapon/reagent_containers/food/snacks/crab_legs/Initialize() + . = . = ..() + reagents.add_reagent("seafood", 6) + reagents.add_reagent("sodiumchloride", 1) + +/obj/item/weapon/reagent_containers/food/snacks/pancakes + name = "pancakes" + desc = "Pancakes with berries, delicious." + icon = 'icons/obj/food_syn.dmi' + icon_state = "pancakes" + trash = /obj/item/trash/plate + center_of_mass = list("x"=15, "y"=11) + nutriment_desc = list("pancake" = 8) + nutriment_amt = 8 + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/nugget + name = "chicken nugget" + icon = 'icons/obj/food_syn.dmi' + icon_state = "nugget_lump" + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/nugget/Initialize() + . = . = ..() + var/shape = pick("lump", "star", "lizard", "corgi") + desc = "A chicken nugget vaguely shaped like a [shape]." + icon_state = "nugget_[shape]" + reagents.add_reagent("protein", 4) + +/obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich + name = "ice cream sandwich" + desc = "Portable ice cream in its own packaging." + icon = 'icons/obj/food_syn.dmi' + icon_state = "icecreamsandwich" + filling_color = "#343834" + center_of_mass = list("x"=15, "y"=4) + nutriment_desc = list("ice cream" = 4) + nutriment_amt = 4 + +/obj/item/weapon/reagent_containers/food/snacks/honeybun + name = "honey bun" + desc = "A sticky pastry bun glazed with honey." + icon = 'icons/obj/food_syn.dmi' + icon_state = "honeybun" + nutriment_desc = list("pastry" = 1) + nutriment_amt = 3 + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/honeybun/Initialize() + . = . = ..() + reagents.add_reagent("honey", 3) + +// Moved /bun/attackby() from /code/modules/food/food/snacks.dm +/obj/item/weapon/reagent_containers/food/snacks/bun/attackby(obj/item/weapon/W as obj, mob/user as mob) + var/obj/item/weapon/reagent_containers/food/snacks/result = null + // Bun + meatball = burger + if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/meatball)) + result = new /obj/item/weapon/reagent_containers/food/snacks/monkeyburger(src) + to_chat(user, "You make a burger.") + qdel(W) + qdel(src) + + // Bun + cutlet = hamburger + else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/cutlet)) + result = new /obj/item/weapon/reagent_containers/food/snacks/monkeyburger(src) + to_chat(user, "You make a burger.") + qdel(W) + qdel(src) + + // Bun + sausage = hotdog + else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/sausage)) + result = new /obj/item/weapon/reagent_containers/food/snacks/hotdog(src) + to_chat(user, "You make a hotdog.") + qdel(W) + qdel(src) + + // Bun + mouse = mouseburger + else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/variable/mob)) + var/obj/item/weapon/reagent_containers/food/snacks/variable/mob/MF = W + + switch (MF.kitchen_tag) + if ("rodent") + result = new /obj/item/weapon/reagent_containers/food/snacks/mouseburger(src) + to_chat(user, "You make a mouseburger!") + + if (result) + if (W.reagents) + //Reagents of reuslt objects will be the sum total of both. Except in special cases where nonfood items are used + //Eg robot head + result.reagents.clear_reagents() + W.reagents.trans_to(result, W.reagents.total_volume) + reagents.trans_to(result, reagents.total_volume) + + //If the bun was in your hands, the result will be too + if (loc == user) + user.drop_from_inventory(src) + user.put_in_hands(result) + +// Chip update. +/obj/item/weapon/reagent_containers/food/snacks/tortilla + name = "tortilla" + desc = "A thin, flour-based tortilla that can be used in a variety of dishes, or can be served as is." + icon = 'icons/obj/food_syn.dmi' + icon_state = "tortilla" + bitesize = 3 + nutriment_desc = list("tortilla" = 1) + center_of_mass = list("x"=16, "y"=16) + nutriment_amt = 6 + +//chips +/obj/item/weapon/reagent_containers/food/snacks/chip + name = "chip" + desc = "A portion sized chip good for dipping." + icon = 'icons/obj/food_syn.dmi' + icon_state = "chip" + var/bitten_state = "chip_half" + bitesize = 1 + center_of_mass = list("x"=16, "y"=16) + nutriment_desc = list("nacho chips" = 1) + nutriment_amt = 2 + +/obj/item/weapon/reagent_containers/food/snacks/chip/on_consume(mob/M as mob) + if(reagents && reagents.total_volume) + icon_state = bitten_state + . = . = ..() + +/obj/item/weapon/reagent_containers/food/snacks/chip/salsa + name = "salsa chip" + desc = "A portion sized chip good for dipping. This one has salsa on it." + icon_state = "chip_salsa" + bitten_state = "chip_half" + +/obj/item/weapon/reagent_containers/food/snacks/chip/guac + name = "guac chip" + desc = "A portion sized chip good for dipping. This one has guac on it." + icon_state = "chip_guac" + bitten_state = "chip_half" + +/obj/item/weapon/reagent_containers/food/snacks/chip/cheese + name = "cheese chip" + desc = "A portion sized chip good for dipping. This one has cheese sauce on it." + icon_state = "chip_cheese" + bitten_state = "chip_half" + +/obj/item/weapon/reagent_containers/food/snacks/chip/nacho + name = "nacho chip" + desc = "A nacho ship stray from a plate of cheesy nachos." + icon_state = "chip_nacho" + bitten_state = "chip_half" + +/obj/item/weapon/reagent_containers/food/snacks/chip/nacho/salsa + name = "nacho chip" + desc = "A nacho ship stray from a plate of cheesy nachos. This one has salsa on it." + icon_state = "chip_nacho_salsa" + bitten_state = "chip_half" + +/obj/item/weapon/reagent_containers/food/snacks/chip/nacho/guac + name = "nacho chip" + desc = "A nacho ship stray from a plate of cheesy nachos. This one has guac on it." + icon_state = "chip_nacho_guac" + bitten_state = "chip_half" + +/obj/item/weapon/reagent_containers/food/snacks/chip/nacho/cheese + name = "nacho chip" + desc = "A nacho ship stray from a plate of cheesy nachos. This one has extra cheese on it." + icon_state = "chip_nacho_cheese" + bitten_state = "chip_half" + +// chip plates +/obj/item/weapon/reagent_containers/food/snacks/chipplate + name = "basket of chips" + desc = "A plate of chips intended for dipping." + icon = 'icons/obj/food_syn.dmi' + icon_state = "chip_basket" + trash = /obj/item/trash/chipbasket + var/vendingobject = /obj/item/weapon/reagent_containers/food/snacks/chip + nutriment_desc = list("tortilla chips" = 10) + bitesize = 1 + nutriment_amt = 10 + +/obj/item/weapon/reagent_containers/food/snacks/chipplate/attack_hand(mob/user as mob) + var/obj/item/weapon/reagent_containers/food/snacks/returningitem = new vendingobject(loc) + returningitem.reagents.clear_reagents() + reagents.trans_to(returningitem, bitesize) + returningitem.bitesize = bitesize/2 + user.put_in_hands(returningitem) + if (reagents && reagents.total_volume) + to_chat(user, "You take a chip from the plate.") + else + to_chat(user, "You take the last chip from the plate.") + var/obj/waste = new trash(loc) + if (loc == user) + user.put_in_hands(waste) + qdel(src) + +/obj/item/weapon/reagent_containers/food/snacks/chipplate/MouseDrop(mob/user) //Dropping the chip onto the user + if(istype(user) && user == usr) + user.put_in_active_hand(src) + src.pickup(user) + return + . = . = ..() + +/obj/item/weapon/reagent_containers/food/snacks/chipplate/nachos + name = "plate of nachos" + desc = "A very cheesy nacho plate." + icon_state = "nachos" + trash = /obj/item/trash/plate + vendingobject = /obj/item/weapon/reagent_containers/food/snacks/chip/nacho + nutriment_desc = list("tortilla chips" = 10) + bitesize = 1 + nutriment_amt = 10 + +//dips +/obj/item/weapon/reagent_containers/food/snacks/dip + name = "queso dip" + desc = "A simple, cheesy dip consisting of tomatos, cheese, and spices." + var/nachotrans = /obj/item/weapon/reagent_containers/food/snacks/chip/nacho/cheese + var/chiptrans = /obj/item/weapon/reagent_containers/food/snacks/chip/cheese + icon = 'icons/obj/food_syn.dmi' + icon_state = "dip_cheese" + trash = /obj/item/trash/dipbowl + bitesize = 1 + nutriment_desc = list("queso" = 20) + center_of_mass = list("x"=16, "y"=16) + nutriment_amt = 20 + +/obj/item/weapon/reagent_containers/food/snacks/dip/attackby(obj/item/weapon/reagent_containers/food/snacks/item as obj, mob/user as mob) + . = . = ..() + var/obj/item/weapon/reagent_containers/food/snacks/returningitem + if(istype(item,/obj/item/weapon/reagent_containers/food/snacks/chip/nacho) && item.icon_state == "chip_nacho") + returningitem = new nachotrans(src) + else if (istype(item,/obj/item/weapon/reagent_containers/food/snacks/chip) && (item.icon_state == "chip" || item.icon_state == "chip_half")) + returningitem = new chiptrans(src) + if(returningitem) + returningitem.reagents.clear_reagents() //Clear the new chip + var/memed = 0 + item.reagents.trans_to(returningitem, item.reagents.total_volume) //Old chip to new chip + if(item.icon_state == "chip_half") + returningitem.icon_state = "[returningitem.icon_state]_half" + returningitem.bitesize = Clamp(returningitem.reagents.total_volume,1,10) + else if(prob(1)) + memed = 1 + user << "You scoop up some dip with the chip, but mid-scop, the chip breaks off into the dreadful abyss of dip, never to be seen again..." + returningitem.icon_state = "[returningitem.icon_state]_half" + returningitem.bitesize = Clamp(returningitem.reagents.total_volume,1,10) + else + returningitem.bitesize = Clamp(returningitem.reagents.total_volume*0.5,1,10) + qdel(item) + reagents.trans_to(returningitem, bitesize) //Dip to new chip + user.put_in_hands(returningitem) + + if (reagents && reagents.total_volume) + if(!memed) + user << "You scoop up some dip with the chip." + else + if(!memed) + user << "You scoop up the remaining dip with the chip." + var/obj/waste = new trash(loc) + if (loc == user) + user.put_in_hands(waste) + qdel(src) + +/obj/item/weapon/reagent_containers/food/snacks/dip/salsa + name = "salsa dip" + desc = "Traditional Sol chunky salsa dip containing tomatos, peppers, and spices." + nachotrans = /obj/item/weapon/reagent_containers/food/snacks/chip/nacho/salsa + chiptrans = /obj/item/weapon/reagent_containers/food/snacks/chip/salsa + icon_state = "dip_salsa" + nutriment_desc = list("salsa" = 20) + nutriment_amt = 20 + +/obj/item/weapon/reagent_containers/food/snacks/dip/guac + name = "guac dip" + desc = "A recreation of the ancient Sol 'Guacamole' dip using tofu, limes, and spices. This recreation obviously leaves out mole meat." + nachotrans = /obj/item/weapon/reagent_containers/food/snacks/chip/nacho/guac + chiptrans = /obj/item/weapon/reagent_containers/food/snacks/chip/guac + icon_state = "dip_guac" + nutriment_desc = list("guacmole" = 20) + nutriment_amt = 20 + +//burritos +/obj/item/weapon/reagent_containers/food/snacks/burrito + name = "meat burrito" + desc = "Meat wrapped in a flour tortilla. It's a burrito by definition." + icon = 'icons/obj/food_syn.dmi' + icon_state = "burrito" + bitesize = 4 + center_of_mass = list("x"=16, "y"=16) + nutriment_desc = list("tortilla" = 6) + nutriment_amt = 6 + +/obj/item/weapon/reagent_containers/food/snacks/burrito/Initialize() + . = . = ..() + reagents.add_reagent("protein", 4) + + +/obj/item/weapon/reagent_containers/food/snacks/burrito_vegan + name = "vegan burrito" + desc = "Tofu wrapped in a flour tortilla. Those seen with this food object are Valid." + icon = 'icons/obj/food_syn.dmi' + icon_state = "burrito_vegan" + bitesize = 4 + center_of_mass = list("x"=16, "y"=16) + nutriment_desc = list("tortilla" = 6) + nutriment_amt = 6 + +/obj/item/weapon/reagent_containers/food/snacks/burrito_vegan/Initialize() + . = . = ..() + reagents.add_reagent("tofu", 6) + +/obj/item/weapon/reagent_containers/food/snacks/burrito_spicy + name = "spicy meat burrito" + desc = "Meat and chilis wrapped in a flour tortilla." + icon = 'icons/obj/food_syn.dmi' + icon_state = "burrito_spicy" + bitesize = 4 + center_of_mass = list("x"=16, "y"=16) + nutriment_desc = list("tortilla" = 6) + nutriment_amt = 6 + +/obj/item/weapon/reagent_containers/food/snacks/burrito_spicy/Initialize() + . = . = ..() + reagents.add_reagent("protein", 6) + +/obj/item/weapon/reagent_containers/food/snacks/burrito_cheese + name = "meat cheese burrito" + desc = "Meat and melted cheese wrapped in a flour tortilla." + icon = 'icons/obj/food_syn.dmi' + icon_state = "burrito_cheese" + bitesize = 4 + center_of_mass = list("x"=16, "y"=16) + nutriment_desc = list("tortilla" = 6) + nutriment_amt = 6 + +/obj/item/weapon/reagent_containers/food/snacks/burrito_cheese/Initialize() + . = . = ..() + reagents.add_reagent("protein", 6) + +/obj/item/weapon/reagent_containers/food/snacks/burrito_cheese_spicy + name = "spicy cheese meat burrito" + desc = "Meat, melted cheese, and chilis wrapped in a flour tortilla." + icon_state = "burrito_cheese_spicy" + bitesize = 4 + center_of_mass = list("x"=16, "y"=16) + nutriment_desc = list("tortilla" = 6) + nutriment_amt = 6 + +/obj/item/weapon/reagent_containers/food/snacks/burrito_cheese_spicy/Initialize() + . = . = ..() + reagents.add_reagent("protein", 6) + +/obj/item/weapon/reagent_containers/food/snacks/burrito_hell + name = "el diablo" + desc = "Meat and an insane amount of chilis packed in a flour tortilla. The Chaplain will see you now." + icon = 'icons/obj/food_syn.dmi' + icon_state = "burrito_hell" + bitesize = 4 + center_of_mass = list("x"=16, "y"=16) + nutriment_desc = list("hellfire" = 6) + nutriment_amt = 24// 10 Chilis is a lot. + +/obj/item/weapon/reagent_containers/food/snacks/breakfast_wrap + name = "breakfast wrap" + desc = "Bacon, eggs, cheese, and tortilla grilled to perfection." + icon = 'icons/obj/food_syn.dmi' + icon_state = "breakfast_wrap" + bitesize = 4 + center_of_mass = list("x"=16, "y"=16) + nutriment_desc = list("tortilla" = 6) + nutriment_amt = 6 + +/obj/item/weapon/reagent_containers/food/snacks/burrito_hell/Initialize() + . = . = ..() + reagents.add_reagent("protein", 9) + reagents.add_reagent("condensedcapsaicin", 20) //what could possibly go wrong + +/obj/item/weapon/reagent_containers/food/snacks/burrito_mystery + name = "mystery meat burrito" + desc = "The mystery is, why aren't you BSAing it?" + icon = 'icons/obj/food_syn.dmi' + icon_state = "burrito_mystery" + bitesize = 5 + center_of_mass = list("x"=16, "y"=16) + nutriment_desc = list("regret" = 6) + nutriment_amt = 6 + +/obj/item/weapon/reagent_containers/food/snacks/hatchling_suprise + name = "hatchling suprise" + desc = "A poached egg on top of three slices of bacon. A typical breakfast for hungry Unathi children." + icon = 'icons/obj/food_syn.dmi' + icon_state = "hatchling_suprise" + trash = /obj/item/trash/snack_bowl + +/obj/item/weapon/reagent_containers/food/snacks/hatchling_suprise/Initialize() + . = . = ..() + reagents.add_reagent("egg", 2) + reagents.add_reagent("protein", 4) + +/obj/item/weapon/reagent_containers/food/snacks/red_sun_special + name = "red sun special" + desc = "One lousy piece of sausage sitting on melted cheese curds. A cheap meal for the Unathi peasants of Moghes." + icon = 'icons/obj/food_syn.dmi' + icon_state = "red_sun_special" + trash = /obj/item/trash/plate + +/obj/item/weapon/reagent_containers/food/snacks/red_sun_special/Initialize() + . = . = ..() + reagents.add_reagent("protein", 2) + +/obj/item/weapon/reagent_containers/food/snacks/riztizkzi_sea + name = "moghesian sea delight" + desc = "Three raw eggs floating in a sea of blood. An authentic replication of an ancient Unathi delicacy." + icon = 'icons/obj/food_syn.dmi' + icon_state = "riztizkzi_sea" + trash = /obj/item/trash/snack_bowl + +/obj/item/weapon/reagent_containers/food/snacks/riztizkzi_sea/Initialize() + . = . = ..() + reagents.add_reagent("egg", 4) + +/obj/item/weapon/reagent_containers/food/snacks/father_breakfast + name = "breakfast of champions" + desc = "A sausage and an omelette on top of a grilled steak." + icon = 'icons/obj/food_syn.dmi' + icon_state = "father_breakfast" + trash = /obj/item/trash/plate + +/obj/item/weapon/reagent_containers/food/snacks/father_breakfast/Initialize() + . = . = ..() + reagents.add_reagent("egg", 4) + reagents.add_reagent("protein", 6) + +/obj/item/weapon/reagent_containers/food/snacks/stuffed_meatball + name = "stuffed meatball" //YES + desc = "A meatball loaded with cheese." + icon = 'icons/obj/food_syn.dmi' + icon_state = "stuffed_meatball" + +/obj/item/weapon/reagent_containers/food/snacks/stuffed_meatball/Initialize() + . = . = ..() + reagents.add_reagent("protein", 4) + +/obj/item/weapon/reagent_containers/food/snacks/egg_pancake + name = "meat pancake" + desc = "An omelette baked on top of a giant meat patty. This monstrousity is typically shared between four people during a dinnertime meal." + icon = 'icons/obj/food_syn.dmi' + icon_state = "egg_pancake" + trash = /obj/item/trash/plate + +/obj/item/weapon/reagent_containers/food/snacks/egg_pancake/Initialize() + . = . = ..() + reagents.add_reagent("protein", 6) + reagents.add_reagent("egg", 2) + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/grilled_carp + name = "korlaaskak" + desc = "A well-dressed carp, seared to perfection and adorned with herbs and spices. Can be sliced into proper serving sizes." + icon = 'icons/obj/food_syn.dmi' + icon_state = "grilled_carp" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/grilled_carp_slice + slices_num = 6 + trash = /obj/item/trash/snacktray + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/grilled_carp/Initialize() + . = . = ..() + reagents.add_reagent("seafood", 12) + +/obj/item/weapon/reagent_containers/food/snacks/grilled_carp_slice + name = "korlaaskak slice" + desc = "A well-dressed fillet of carp, seared to perfection and adorned with herbs and spices." + icon = 'icons/obj/food_syn.dmi' + icon_state = "grilled_carp_slice" + trash = /obj/item/trash/plate + + +// SYNNONO MEME FOODS EXPANSION - Credit to Synnono from Aurorastation. Come play here sometime :( + +/obj/item/weapon/reagent_containers/food/snacks/redcurry + name = "red curry" + gender = PLURAL + desc = "A bowl of creamy red curry with meat and rice. This one looks savory." + icon = 'icons/obj/food_syn.dmi' + icon_state = "redcurry" + trash = /obj/item/trash/snack_bowl + filling_color = "#f73333" + nutriment_amt = 8 + nutriment_desc = list("savory meat and rice" = 8) + center_of_mass = list("x"=16, "y"=8) + +/obj/item/weapon/reagent_containers/food/snacks/redcurry/Initialize() + . = ..() + reagents.add_reagent("protein", 7) + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/greencurry + name = "green curry" + gender = PLURAL + desc = "A bowl of creamy green curry with tofu, hot peppers and rice. This one looks spicy!" + icon = 'icons/obj/food_syn.dmi' + icon_state = "greencurry" + trash = /obj/item/trash/snack_bowl + filling_color = "#58b76c" + nutriment_amt = 12 + nutriment_desc = list("tofu and rice" = 12) + center_of_mass = list("x"=16, "y"=8) + +/obj/item/weapon/reagent_containers/food/snacks/greencurry/Initialize() + . = ..() + reagents.add_reagent("protein", 1) + reagents.add_reagent("capsaicin", 2) + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/yellowcurry + name = "yellow curry" + gender = PLURAL + desc = "A bowl of creamy yellow curry with potatoes, peanuts and rice. This one looks mild." + icon = 'icons/obj/food_syn.dmi' + icon_state = "yellowcurry" + trash = /obj/item/trash/snack_bowl + filling_color = "#bc9509" + nutriment_amt = 13 + nutriment_desc = list("rice and potatoes" = 13) + center_of_mass = list("x"=16, "y"=8) + +/obj/item/weapon/reagent_containers/food/snacks/yellowcurry/Initialize() + . = ..() + reagents.add_reagent("protein", 2) + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/bearburger + name = "bearburger" + desc = "The solution to your unbearable hunger." + icon = 'icons/obj/food_syn.dmi' + icon_state = "bearburger" + filling_color = "#5d5260" + center_of_mass = list("x"=15, "y"=11) + +/obj/item/weapon/reagent_containers/food/snacks/bearburger/Initialize() + . = ..() + reagents.add_reagent("protein", 4) //So spawned burgers will not be empty I guess? + bitesize = 5 + +/obj/item/weapon/reagent_containers/food/snacks/bearchili + name = "bear chili" + gender = PLURAL + desc = "A dark, hearty chili. Can you bear the heat?" + icon = 'icons/obj/food_syn.dmi' + icon_state = "bearchili" + trash = /obj/item/trash/snack_bowl + filling_color = "#702708" + nutriment_amt = 3 + nutriment_desc = list("dark, hearty chili" = 3) + center_of_mass = list("x"=15, "y"=9) + +/obj/item/weapon/reagent_containers/food/snacks/bearchili/Initialize() + . = ..() + reagents.add_reagent("protein", 3) + reagents.add_reagent("capsaicin", 3) + reagents.add_reagent("tomatojuice", 2) + reagents.add_reagent("hyperzine", 5) + bitesize = 6 + +/obj/item/weapon/reagent_containers/food/snacks/bearstew + name = "bear stew" + gender = PLURAL + desc = "A thick, dark stew of bear meat and vegetables." + icon = 'icons/obj/food_syn.dmi' + icon_state = "bearstew" + filling_color = "#9E673A" + nutriment_amt = 6 + nutriment_desc = list("hearty stew" = 6) + center_of_mass = list("x"=16, "y"=5) + +/obj/item/weapon/reagent_containers/food/snacks/bearstew/Initialize() + . = ..() + reagents.add_reagent("protein", 4) + reagents.add_reagent("hyperzine", 5) + reagents.add_reagent("tomatojuice", 5) + reagents.add_reagent("imidazoline", 5) + reagents.add_reagent("water", 5) + bitesize = 6 + +/obj/item/weapon/reagent_containers/food/snacks/bibimbap + name = "bibimbap bowl" + desc = "A traditional Korean meal of meat and mixed vegetables. It's served on a bed of rice, and topped with a fried egg." + icon = 'icons/obj/food_syn.dmi' + icon_state = "bibimbap" + trash = /obj/item/trash/snack_bowl + filling_color = "#4f2100" + nutriment_amt = 10 + nutriment_desc = list("egg" = 5, "vegetables" = 5) + center_of_mass = list("x"=15, "y"=9) + +/obj/item/weapon/reagent_containers/food/snacks/bibimbap/Initialize() + . = ..() + reagents.add_reagent("protein", 10) + bitesize = 4 + +/obj/item/weapon/reagent_containers/food/snacks/lomein + name = "lo mein" + gender = PLURAL + desc = "A popular Chinese noodle dish. Chopsticks optional." + icon = 'icons/obj/food_syn.dmi' + icon_state = "lomein" + trash = /obj/item/trash/plate + filling_color = "#FCEE81" + nutriment_amt = 8 + nutriment_desc = list("noodles" = 6, "sesame sauce" = 2) + center_of_mass = list("x"=16, "y"=10) + +/obj/item/weapon/reagent_containers/food/snacks/lomein/Initialize() + . = ..() + reagents.add_reagent("protein", 2) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/friedrice + name = "fried rice" + gender = PLURAL + desc = "A less-boring dish of less-boring rice!" + icon = 'icons/obj/food_syn.dmi' + icon_state = "friedrice" + trash = /obj/item/trash/snack_bowl + filling_color = "#FFFBDB" + nutriment_amt = 7 + nutriment_desc = list("rice" = 7) + center_of_mass = list("x"=17, "y"=11) + +/obj/item/weapon/reagent_containers/food/snacks/friedrice/Initialize() + . = ..() + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/chickenfillet + name = "chicken fillet sandwich" + desc = "Fried chicken, in sandwich format. Beauty is simplicity." + icon = 'icons/obj/food_syn.dmi' + icon_state = "chickenfillet" + filling_color = "#E9ADFF" + nutriment_amt = 4 + nutriment_desc = list("breading" = 4) + center_of_mass = list("x"=16, "y"=16) + +/obj/item/weapon/reagent_containers/food/snacks/chickenfillet/Initialize() + . = ..() + reagents.add_reagent("protein", 8) + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/chilicheesefries + name = "chili cheese fries" + gender = PLURAL + desc = "A mighty plate of fries, drowned in hot chili and cheese sauce. Because your arteries are overrated." + icon = 'icons/obj/food_syn.dmi' + icon_state = "chilicheesefries" + trash = /obj/item/trash/plate + filling_color = "#EDDD00" + nutriment_amt = 8 + nutriment_desc = list("hearty, cheesy fries" = 8) + center_of_mass = list("x"=16, "y"=11) + +/obj/item/weapon/reagent_containers/food/snacks/chilicheesefries/Initialize() + . = ..() + reagents.add_reagent("protein", 2) + reagents.add_reagent("capsaicin", 2) + bitesize = 4 + +/obj/item/weapon/reagent_containers/food/snacks/friedmushroom + name = "fried mushroom" + desc = "A tender, beer-battered plump helmet, fried to crispy perfection." + icon = 'icons/obj/food_syn.dmi' + icon_state = "friedmushroom" + filling_color = "#EDDD00" + nutriment_amt = 4 + nutriment_desc = list("alcoholic mushrooms" = 4) + center_of_mass = list("x"=16, "y"=11) + +/obj/item/weapon/reagent_containers/food/snacks/friedmushroom/Initialize() + . = ..() + reagents.add_reagent("protein", 2) + bitesize = 5 + +/obj/item/weapon/reagent_containers/food/snacks/pisanggoreng + name = "pisang goreng" + gender = PLURAL + desc = "Crispy, starchy, sweet banana fritters. Popular street food in parts of Sol." + icon = 'icons/obj/food_syn.dmi' + icon_state = "pisanggoreng" + trash = /obj/item/trash/plate + filling_color = "#301301" + nutriment_amt = 8 + nutriment_desc = list("sweet bananas" = 8) + center_of_mass = list("x"=16, "y"=11) + +/obj/item/weapon/reagent_containers/food/snacks/pisanggoreng/Initialize() + . = ..() + reagents.add_reagent("protein", 1) + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/meatbun + name = "meat bun" + desc = "A soft, fluffy flour bun also known as baozi. This one is filled with a spiced meat filling." + icon = 'icons/obj/food_syn.dmi' + icon_state = "meatbun" + filling_color = "#edd7d7" + nutriment_amt = 5 + nutriment_desc = list("spice" = 5) + center_of_mass = list("x"=16, "y"=11) + +/obj/item/weapon/reagent_containers/food/snacks/meatbun/Initialize() + . = ..() + reagents.add_reagent("protein", 3) + bitesize = 5 + +/obj/item/weapon/reagent_containers/food/snacks/custardbun + name = "custard bun" + desc = "A soft, fluffy flour bun also known as baozi. This one is filled with an egg custard." + icon = 'icons/obj/food_syn.dmi' + icon_state = "meatbun" + nutriment_amt = 6 + nutriment_desc = list("egg custard" = 6) + filling_color = "#ebedc2" + center_of_mass = list("x"=16, "y"=11) + +/obj/item/weapon/reagent_containers/food/snacks/custardbun/Initialize() + . = ..() + reagents.add_reagent("protein", 2) + bitesize = 6 + +/obj/item/weapon/reagent_containers/food/snacks/chickenmomo + name = "chicken momo" + gender = PLURAL + desc = "A plate of spiced and steamed chicken dumplings. The style originates from south Asia." + icon = 'icons/obj/food_syn.dmi' + icon_state = "momo" + trash = /obj/item/trash/snacktray + filling_color = "#edd7d7" + nutriment_amt = 9 + nutriment_desc = list("spiced chicken" = 9) + center_of_mass = list("x"=15, "y"=9) + +/obj/item/weapon/reagent_containers/food/snacks/chickenmomo/Initialize() + . = ..() + reagents.add_reagent("protein", 6) + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/veggiemomo + name = "veggie momo" + gender = PLURAL + desc = "A plate of spiced and steamed vegetable dumplings. The style originates from south Asia." + icon = 'icons/obj/food_syn.dmi' + icon_state = "momo" + trash = /obj/item/trash/snacktray + filling_color = "#edd7d7" + nutriment_amt = 13 + nutriment_desc = list("spiced vegetables" = 13) + center_of_mass = list("x"=15, "y"=9) + +/obj/item/weapon/reagent_containers/food/snacks/veggiemomo/Initialize() + . = ..() + reagents.add_reagent("protein", 2) + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/risotto + name = "risotto" + gender = PLURAL + desc = "A creamy, savory rice dish from southern Europe, typically cooked slowly with wine and broth. This one has bits of mushroom." + icon = 'icons/obj/food_syn.dmi' + icon_state = "risotto" + trash = /obj/item/trash/snack_bowl + filling_color = "#edd7d7" + nutriment_amt = 9 + nutriment_desc = list("savory rice" = 6, "cream" = 3) + center_of_mass = list("x"=15, "y"=9) + +/obj/item/weapon/reagent_containers/food/snacks/risotto/Initialize() + . = ..() + reagents.add_reagent("protein", 1) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/risottoballs + name = "risotto balls" + gender = PLURAL + desc = "Mushroom risotto that has been battered and deep fried. The best use of leftovers!" + icon = 'icons/obj/food_syn.dmi' + icon_state = "risottoballs" + trash = /obj/item/trash/snack_bowl + filling_color = "#edd7d7" + nutriment_amt = 1 + nutriment_desc = list("batter" = 1) + center_of_mass = list("x"=15, "y"=9) + +/obj/item/weapon/reagent_containers/food/snacks/risottoballs/Initialize() + . = ..() + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/honeytoast + name = "piece of honeyed toast" + desc = "For those who like their breakfast sweet." + icon = 'icons/obj/food_syn.dmi' + icon_state = "honeytoast" + trash = /obj/item/trash/plate + filling_color = "#EDE5AD" + nutriment_amt = 1 + nutriment_desc = list("sweet, crunchy bread" = 1) + center_of_mass = list("x"=16, "y"=9) + +/obj/item/weapon/reagent_containers/food/snacks/honeytoast/Initialize() + . = ..() + bitesize = 4 + +/obj/item/weapon/reagent_containers/food/snacks/poachedegg + name = "poached egg" + desc = "A delicately poached egg with a runny yolk. Healthier than its fried counterpart." + icon = 'icons/obj/food_syn.dmi' + icon_state = "poachedegg" + trash = /obj/item/trash/plate + filling_color = "#FFDF78" + nutriment_amt = 1 + nutriment_desc = list("egg" = 1) + center_of_mass = list("x"=16, "y"=14) + +/obj/item/weapon/reagent_containers/food/snacks/poachedegg/Initialize() + . = ..() + reagents.add_reagent("protein", 3) + reagents.add_reagent("blackpepper", 1) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/ribplate + name = "plate of ribs" + desc = "A half-rack of ribs, brushed with some sort of honey-glaze. Why are there no napkins on board?" + icon = 'icons/obj/food_syn.dmi' + icon_state = "ribplate" + trash = /obj/item/trash/plate + filling_color = "#7A3D11" + nutriment_amt = 6 + nutriment_desc = list("barbecue" = 6) + center_of_mass = list("x"=16, "y"=13) + +/obj/item/weapon/reagent_containers/food/snacks/ribplate/Initialize() + . = ..() + reagents.add_reagent("protein", 6) + reagents.add_reagent("triglyceride", 2) + reagents.add_reagent("blackpepper", 1) + reagents.add_reagent("honey", 5) + bitesize = 4 + +// SLICEABLE FOODS - SYNNONO MEME FOOD EXPANSION - Credit to Synnono from Aurorastation (again) + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/keylimepie + name = "key lime pie" + desc = "A tart, sweet dessert. What's a key lime, anyway?" + icon = 'icons/obj/food_syn.dmi' + icon_state = "keylimepie" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/keylimepieslice + slices_num = 5 + filling_color = "#F5B951" + nutriment_amt = 16 + nutriment_desc = list("lime" = 12, "graham crackers" = 4) + center_of_mass = list("x"=16, "y"=10) + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/keylimepie/Initialize() + . = ..() + reagents.add_reagent("protein", 4) + +/obj/item/weapon/reagent_containers/food/snacks/keylimepieslice + name = "slice of key lime pie" + desc = "A slice of tart pie, with whipped cream on top." + icon = 'icons/obj/food_syn.dmi' + icon_state = "keylimepieslice" + trash = /obj/item/trash/plate + filling_color = "#F5B951" + bitesize = 3 + nutriment_desc = list("lime" = 1) + center_of_mass = list("x"=16, "y"=12) + +/obj/item/weapon/reagent_containers/food/snacks/keylimepieslice/filled + nutriment_amt = 1 + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/quiche + name = "quiche" + desc = "Real men eat this, contrary to popular belief." + icon = 'icons/obj/food_syn.dmi' + icon_state = "quiche" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/quicheslice + slices_num = 5 + filling_color = "#F5B951" + nutriment_amt = 10 + nutriment_desc = list("cheese" = 5, "egg" = 5) + center_of_mass = list("x"=16, "y"=10) + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/quiche/Initialize() + . = ..() + reagents.add_reagent("protein", 10) + +/obj/item/weapon/reagent_containers/food/snacks/quicheslice + name = "slice of quiche" + desc = "A slice of delicious quiche. Eggy, cheesy goodness." + icon = 'icons/obj/food_syn.dmi' + icon_state = "quicheslice" + trash = /obj/item/trash/plate + filling_color = "#F5B951" + bitesize = 3 + nutriment_desc = list("cheesy eggs" = 1) + center_of_mass = list("x"=16, "y"=12) + +/obj/item/weapon/reagent_containers/food/snacks/quicheslice/filled + nutriment_amt = 1 + +/obj/item/weapon/reagent_containers/food/snacks/quicheslice/filled/Initialize() + . = ..() + reagents.add_reagent("protein", 1) + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/brownies + name = "brownies" + gender = PLURAL + desc = "Halfway to fudge, or halfway to cake? Who cares!" + icon = 'icons/obj/food_syn.dmi' + icon_state = "brownies" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/browniesslice + slices_num = 4 + trash = /obj/item/trash/brownies + filling_color = "#301301" + nutriment_amt = 8 + nutriment_desc = list("fudge" = 8) + center_of_mass = list("x"=15, "y"=9) + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/brownies/Initialize() + . = ..() + reagents.add_reagent("protein", 2) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/browniesslice + name = "brownie" + desc = "a dense, decadent chocolate brownie." + icon = 'icons/obj/food_syn.dmi' + icon_state = "browniesslice" + trash = /obj/item/trash/plate + filling_color = "#F5B951" + bitesize = 2 + nutriment_desc = list("fudge" = 1) + center_of_mass = list("x"=16, "y"=12) + +/obj/item/weapon/reagent_containers/food/snacks/browniesslice/filled + nutriment_amt = 1 + +/obj/item/weapon/reagent_containers/food/snacks/browniesslice/filled/Initialize() + . = ..() + reagents.add_reagent("protein", 1) + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/cosmicbrownies + name = "cosmic brownies" + gender = PLURAL + desc = "Like, ultra-trippy. Brownies HAVE no gender, man." //Except I had to add one! + icon = 'icons/obj/food_syn.dmi' + icon_state = "cosmicbrownies" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice + slices_num = 4 + trash = /obj/item/trash/brownies + filling_color = "#301301" + nutriment_amt = 8 + nutriment_desc = list("fudge" = 8) + center_of_mass = list("x"=15, "y"=9) + +/obj/item/weapon/reagent_containers/food/snacks/sliceable/cosmicbrownies/Initialize() + . = ..() + reagents.add_reagent("protein", 2) + reagents.add_reagent("space_drugs", 2) + reagents.add_reagent("bicaridine", 1) + reagents.add_reagent("kelotane", 1) + reagents.add_reagent("toxin", 1) + bitesize = 3 + +/obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice + name = "cosmic brownie" + desc = "a dense, decadent and fun-looking chocolate brownie." + icon = 'icons/obj/food_syn.dmi' + icon_state = "cosmicbrowniesslice" + trash = /obj/item/trash/plate + filling_color = "#F5B951" + bitesize = 3 + nutriment_desc = list("fudge" = 1) + center_of_mass = list("x"=16, "y"=12) + +/obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice/filled + nutriment_amt = 1 + +/obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice/filled/Initialize() + . = ..() + reagents.add_reagent("protein", 1) \ No newline at end of file diff --git a/code/modules/food/food/snacks/meat.dm b/code/modules/food/food/snacks/meat.dm index c2c5753eda..8911477b1f 100644 --- a/code/modules/food/food/snacks/meat.dm +++ b/code/modules/food/food/snacks/meat.dm @@ -8,8 +8,19 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/Initialize() . = ..() - reagents.add_reagent("protein", 9) - src.bitesize = 3 + reagents.add_reagent("protein", 6) + reagents.add_reagent("triglyceride", 2) + src.bitesize = 1.5 + +/obj/item/weapon/reagent_containers/food/snacks/meat/cook() + + if (!isnull(cooked_icon)) + icon_state = cooked_icon + flat_icon = null //Force regenating the flat icon for coatings, since we've changed the icon of the thing being coated + ..() + + if (name == initial(name)) + name = "cooked [name]" /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)) @@ -34,4 +45,16 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/corgi name = "Corgi meat" - desc = "Tastes like... well, you know." \ No newline at end of file + desc = "Tastes like... well, you know." + +/obj/item/weapon/reagent_containers/food/snacks/meat/chicken + name = "chicken" + icon = 'icons/obj/food_syn.dmi' + icon_state = "chickenbreast" + cooked_icon = "chickenbreast_cooked" + filling_color = "#BBBBAA" + +/obj/item/weapon/reagent_containers/food/snacks/meat/chicken/initialize() + ..() + reagents.remove_reagent("triglyceride", INFINITY) + //Chicken is low fat. Less total calories than other meats \ No newline at end of file diff --git a/code/modules/food/kitchen/cooking_machines/_appliance.dm b/code/modules/food/kitchen/cooking_machines/_appliance.dm new file mode 100644 index 0000000000..fd4f757ce4 --- /dev/null +++ b/code/modules/food/kitchen/cooking_machines/_appliance.dm @@ -0,0 +1,728 @@ +// This folder contains code that was originally ported from Apollo Station and then refactored/optimized/changed. + +// Tracks precooked food to stop deep fried baked grilled grilled grilled diona nymph cereal. +/obj/item/weapon/reagent_containers/food/snacks + var/tmp/list/cooked = list() + +// Root type for cooking machines. See following files for specific implementations. +/obj/machinery/appliance + name = "cooker" + desc = "You shouldn't be seeing this!" + icon = 'icons/obj/cooking_machines.dmi' + var/appliancetype = 0 + density = 1 + anchored = 1 + + use_power = USE_POWER_IDLE + idle_power_usage = 5 // Power used when turned on, but not processing anything + active_power_usage = 1000 // Power used when turned on and actively cooking something + var/initial_active_power_usage = 1000 + + var/cooking_power = 1 + var/initial_cooking_power = 1 + var/max_contents = 1 // Maximum number of things this appliance can simultaneously cook + var/on_icon // Icon state used when cooking. + var/off_icon // Icon state used when not cooking. + var/cooking // Whether or not the machine is currently operating. + var/cook_type // A string value used to track what kind of food this machine makes. + var/can_cook_mobs // Whether or not this machine accepts grabbed mobs. + var/mobdamagetype = BRUTE // Burn damage for cooking appliances, brute for cereal/candy + var/food_color // Colour of resulting food item. + var/cooked_sound = 'sound/machines/ding.ogg' // Sound played when cooking completes. + var/can_burn_food // Can the object burn food that is left inside? + var/burn_chance = 10 // How likely is the food to burn? + var/list/cooking_objs = list() // List of things being cooked + + // If the machine has multiple output modes, define them here. + var/selected_option + var/list/output_options = list() + var/list/datum/recipe/available_recipes + + var/container_type = null + + var/combine_first = 0//If 1, this appliance will do combinaiton cooking before checking recipes + +/obj/machinery/appliance/Initialize() + . = ..() + component_parts = list() + component_parts += /obj/item/weapon/circuitboard/cooking + component_parts += /obj/item/weapon/stock_parts/capacitor + component_parts += /obj/item/weapon/stock_parts/capacitor + component_parts += /obj/item/weapon/stock_parts/capacitor + component_parts += /obj/item/weapon/stock_parts/scanning_module + component_parts += /obj/item/weapon/stock_parts/matter_bin + component_parts += /obj/item/weapon/stock_parts/matter_bin + if(output_options.len) + verbs += /obj/machinery/appliance/proc/choose_output + + if (!available_recipes) + available_recipes = new + + for (var/type in subtypesof(/datum/recipe)) + var/datum/recipe/test = new type + if ((appliancetype & test.appliance)) + available_recipes += test + else + qdel(test) + +/obj/machinery/appliance/Destroy() + for (var/a in cooking_objs) + var/datum/cooking_item/CI = a + qdel(CI.container)//Food is fragile, it probably doesnt survive the destruction of the machine + cooking_objs -= CI + qdel(CI) + return ..() + +/obj/machinery/appliance/examine(var/mob/user) + ..() + if(Adjacent(usr)) + list_contents(user) + return 1 + +/obj/machinery/appliance/proc/list_contents(var/mob/user) + if (cooking_objs.len) + var/string = "Contains..." + for (var/a in cooking_objs) + var/datum/cooking_item/CI = a + string += "-\a [CI.container.label(null, CI.combine_target)], [report_progress(CI)]
" + usr << string + else + usr << span("notice","It is empty.") + +/obj/machinery/appliance/proc/report_progress(var/datum/cooking_item/CI) + if (!CI || !CI.max_cookwork) + return null + + if (!CI.cookwork) + return "It is cold." + var/progress = CI.cookwork / CI.max_cookwork + + if (progress < 0.25) + return "It's barely started cooking." + if (progress < 0.75) + return span("notice","It's cooking away nicely.") + if (progress < 1) + return span("notice", "It's almost ready!") + + var/half_overcook = (CI.overcook_mult - 1)*0.5 + if (progress < 1+half_overcook) + return span("soghun","It is done !") + if (progress < CI.overcook_mult) + return span("warning","It looks overcooked, get it out!") + else + return span("danger","It is burning!!") + +/obj/machinery/appliance/update_icon() + if (!stat && cooking_objs.len) + icon_state = on_icon + + else + icon_state = off_icon + +/obj/machinery/appliance/verb/toggle_power() + set name = "Toggle Power" + set category = "Object" + set src in view() + + attempt_toggle_power(usr) + +/obj/machinery/appliance/proc/attempt_toggle_power(mob/user) + if (!isliving(user)) + return + + if (!user.IsAdvancedToolUser()) + user << "You lack the dexterity to do that!" + return + + if (user.stat || user.restrained() || user.incapacitated()) + return + + if (!Adjacent(user) && !issilicon(user)) + user << "You can't reach [src] from here." + return + + if (stat & POWEROFF)//Its turned off + stat &= ~POWEROFF + use_power = 1 + user.visible_message("[user] turns [src] on.", "You turn on [src].") + + else //Its on, turn it off + stat |= POWEROFF + use_power = 0 + user.visible_message("[user] turns [src] off.", "You turn off [src].") + + playsound(src, 'sound/machines/click.ogg', 40, 1) + update_icon() + +/obj/machinery/appliance/AICtrlClick(mob/user) + attempt_toggle_power(user) + +/obj/machinery/appliance/proc/choose_output() + set src in view() + set name = "Choose output" + set category = "Object" + + if (!isliving(usr)) + return + + if (!usr.IsAdvancedToolUser()) + usr << "You lack the dexterity to do that!" + return + + if (usr.stat || usr.restrained() || usr.incapacitated()) + return + + if (!Adjacent(usr) && !issilicon(usr)) + usr << "You can't adjust the [src] from this distance, get closer!" + return + + if(output_options.len) + var/choice = input("What specific food do you wish to make with \the [src]?") as null|anything in output_options+"Default" + if(!choice) + return + if(choice == "Default") + selected_option = null + usr << "You decide not to make anything specific with \the [src]." + else + selected_option = choice + usr << "You prepare \the [src] to make \a [selected_option] with the next thing you put in. Try putting several ingredients in a container!" + +//Handles all validity checking and error messages for inserting things +/obj/machinery/appliance/proc/can_insert(var/obj/item/I, var/mob/user) + if (istype(I.loc, /mob/living/silicon)) + return 0 + else if (istype(I.loc, /obj/item/rig_module)) + return 0 + + // We are trying to cook a grabbed mob. + var/obj/item/weapon/grab/G = I + if(istype(G)) + + if(!can_cook_mobs) + user << "That's not going to fit." + return 0 + + if(!isliving(G.affecting)) + user << "You can't cook that." + return 0 + + return 2 + + + if (!has_space(I)) + user << "There's no room in [src] for that!" + return 0 + + + if (container_type && istype(I, container_type)) + return 1 + + // We're trying to cook something else. Check if it's valid. + var/obj/item/weapon/reagent_containers/food/snacks/check = I + if(istype(check) && islist(check.cooked) && (cook_type in check.cooked)) + user << "\The [check] has already been [cook_type]." + return 0 + else if(istype(check, /obj/item/weapon/reagent_containers/glass)) + user << "That would probably break [src]." + return 0 + else if(istype(check, /obj/item/weapon/disk/nuclear)) + user << "You can't cook that." + return 0 + else if(!istype(check) && !istype(check, /obj/item/weapon/holder)) + user << "That's not edible." + return 0 + + return 1 + + +//This function is overridden by cookers that do stuff with containers +/obj/machinery/appliance/proc/has_space(var/obj/item/I) + if (cooking_objs.len >= max_contents) + return 0 + + else return 1 + +/obj/machinery/appliance/attackby(var/obj/item/I, var/mob/user) + if(!cook_type || (stat & (BROKEN))) + user << "\The [src] is not working." + return + + var/result = can_insert(I, user) + if(!result) + if(default_deconstruction_screwdriver(user, I)) + return + else if(default_part_replacement(user, I)) + return + else + return + + if(result == 2) + var/obj/item/weapon/grab/G = I + if (G && istype(G) && G.affecting) + cook_mob(G.affecting, user) + return + + //From here we can start cooking food + add_content(I, user) + update_icon() + +//Override for container mechanics +/obj/machinery/appliance/proc/add_content(var/obj/item/I, var/mob/user) + if(!user.unEquip(I)) + return + + var/datum/cooking_item/CI = has_space(I) + if (istype(I, /obj/item/weapon/reagent_containers/cooking_container) && CI == 1) + var/obj/item/weapon/reagent_containers/cooking_container/CC = I + CI = new /datum/cooking_item/(CC) + I.forceMove(src) + cooking_objs.Add(CI) + user.visible_message("\The [user] puts \the [I] into \the [src].") + if (CC.check_contents() == 0)//If we're just putting an empty container in, then dont start any processing. + return + else + if (CI && istype(CI)) + I.forceMove(CI.container) + + else //Something went wrong + return + + if (selected_option) + CI.combine_target = selected_option + + // We can actually start cooking now. + user.visible_message("\The [user] puts \the [I] into \the [src].") + + get_cooking_work(CI) + cooking = 1 + return CI + +/obj/machinery/appliance/proc/get_cooking_work(var/datum/cooking_item/CI) + for (var/obj/item/J in CI.container) + oilwork(J, CI) + + for (var/r in CI.container.reagents.reagent_list) + var/datum/reagent/R = r + if (istype(R, /datum/reagent/nutriment)) + CI.max_cookwork += R.volume *2//Added reagents contribute less than those in food items due to granular form + + //Nonfat reagents will soak oil + if (!istype(R, /datum/reagent/nutriment/triglyceride)) + CI.max_oil += R.volume * 0.25 + else + CI.max_cookwork += R.volume + CI.max_oil += R.volume * 0.10 + + //Rescaling cooking work to avoid insanely long times for large things + var/buffer = CI.max_cookwork + CI.max_cookwork = 0 + var/multiplier = 1 + var/step = 4 + while (buffer > step) + buffer -= step + CI.max_cookwork += step*multiplier + multiplier *= 0.95 + + CI.max_cookwork += buffer*multiplier + +//Just a helper to save code duplication in the above +/obj/machinery/appliance/proc/oilwork(var/obj/item/I, var/datum/cooking_item/CI) + var/obj/item/weapon/reagent_containers/food/snacks/S = I + var/work = 0 + if (istype(S)) + if (S.reagents) + for (var/r in S.reagents.reagent_list) + var/datum/reagent/R = r + if (istype(R, /datum/reagent/nutriment)) + work += R.volume *3//Core nutrients contribute much more than peripheral chemicals + + //Nonfat reagents will soak oil + if (!istype(R, /datum/reagent/nutriment/triglyceride)) + CI.max_oil += R.volume * 0.35 + else + work += R.volume + CI.max_oil += R.volume * 0.15 + + + else if(istype(I, /obj/item/weapon/holder)) + var/obj/item/weapon/holder/H = I + if (H.held_mob) + work += (H.held_mob.mob_size * H.held_mob.mob_size * 2)+2 + + CI.max_cookwork += work + +//Called every tick while we're cooking something +/obj/machinery/appliance/proc/do_cooking_tick(var/datum/cooking_item/CI) + if (!istype(CI) || !CI.max_cookwork) + return 0 + + var/was_done = 0 + if (CI.cookwork >= CI.max_cookwork) + was_done = 1 + + CI.cookwork += cooking_power + + if (!was_done && CI.cookwork >= CI.max_cookwork) + //If cookwork has gone from above to below 0, then this item finished cooking + finish_cooking(CI) + + else if (!CI.burned && CI.cookwork > CI.max_cookwork * CI.overcook_mult) + burn_food(CI) + + // Gotta hurt. + for(var/obj/item/weapon/holder/H in CI.container.contents) + var/mob/living/M = H.held_mob + if (M) + M.apply_damage(rand(1,3), mobdamagetype, "chest") + + return 1 + +/obj/machinery/appliance/process() + if (cooking_power > 0 && cooking) + for (var/i in cooking_objs) + do_cooking_tick(i) + + +/obj/machinery/appliance/proc/finish_cooking(var/datum/cooking_item/CI) + + src.visible_message("\The [src] pings!") + if(cooked_sound) + playsound(get_turf(src), cooked_sound, 50, 1) + //Check recipes first, a valid recipe overrides other options + var/datum/recipe/recipe = null + var/atom/C = null + if (CI.container) + C = CI.container + else + C = src + recipe = select_recipe(available_recipes,C) + + if (recipe) + CI.result_type = 4//Recipe type, a specific recipe will transform the ingredients into a new food + var/list/results = recipe.make_food(C) + + var/obj/temp = new /obj(src) //To prevent infinite loops, all results will be moved into a temporary location so they're not considered as inputs for other recipes + + for (var/atom/movable/AM in results) + AM.forceMove(temp) + + //making multiple copies of a recipe from one container. For example, tons of fries + while (select_recipe(available_recipes,C) == recipe) + var/list/TR = list() + TR += recipe.make_food(C) + for (var/atom/movable/AM in TR) //Move results to buffer + AM.forceMove(temp) + results += TR + + + for (var/r in results) + var/obj/item/weapon/reagent_containers/food/snacks/R = r + R.forceMove(C) //Move everything from the buffer back to the container + R.cooked |= cook_type + + QDEL_NULL(temp) //delete buffer object + . = 1 //None of the rest of this function is relevant for recipe cooking + + else if(CI.combine_target) + CI.result_type = 3//Combination type. We're making something out of our ingredients + . = combination_cook(CI) + + + else + //Otherwise, we're just doing standard modification cooking. change a color + name + for (var/obj/item/i in CI.container) + modify_cook(i, CI) + + //Final step. Cook function just cooks batter for now. + for (var/obj/item/weapon/reagent_containers/food/snacks/S in CI.container) + S.cook() + + +//Combination cooking involves combining the names and reagents of ingredients into a predefined output object +//The ingredients represent flavours or fillings. EG: donut pizza, cheese bread +/obj/machinery/appliance/proc/combination_cook(var/datum/cooking_item/CI) + var/cook_path = output_options[CI.combine_target] + + var/list/words = list() + var/list/cooktypes = list() + var/datum/reagents/buffer = new /datum/reagents(1000) + var/totalcolour + + for (var/obj/item/I in CI.container) + var/obj/item/weapon/reagent_containers/food/snacks/S + if (istype(I, /obj/item/weapon/holder)) + S = create_mob_food(I, CI) + else if (istype(I, /obj/item/weapon/reagent_containers/food/snacks)) + S = I + + if (!S) + continue + + words |= text2list(S.name," ") + cooktypes |= S.cooked + + if (S.reagents && S.reagents.total_volume > 0) + if (S.filling_color) + if (!totalcolour || !buffer.total_volume) + totalcolour = S.filling_color + else + var/t = buffer.total_volume + S.reagents.total_volume + t = buffer.total_volume / y + totalcolour = BlendRGB(totalcolour, S.filling_color, t) + //Blend colours in order to find a good filling color + + + S.reagents.trans_to_holder(buffer, S.reagents.total_volume) + //Cleanup these empty husk ingredients now + if (I) + qdel(I) + if (S) + qdel(S) + + CI.container.reagents.trans_to_holder(buffer, CI.container.reagents.total_volume) + + var/obj/item/weapon/reagent_containers/food/snacks/result = new cook_path(CI.container) + buffer.trans_to(result, buffer.total_volume) + + //Filling overlay + var/image/I = image(result.icon, "[result.icon_state]_filling") + I.color = totalcolour + result.add_overlay(I) + result.filling_color = totalcolour + + //Set the name. + words -= list("and", "the", "in", "is", "bar", "raw", "sticks", "boiled", "fried", "deep", "-o-", "warm", "two", "flavored") + //Remove common connecting words and unsuitable ones from the list. Unsuitable words include those describing + //the shape, cooked-ness/temperature or other state of an ingredient which doesn't apply to the finished product + words.Remove(result.name) + shuffle(words) + var/num = 6 //Maximum number of words + while (num > 0) + num-- + if (!words.len) + break + //Add prefixes from the ingredients in a random order until we run out or hit limit + result.name = "[pop(words)] [result.name]" + + //This proc sets the size of the output result + result.update_icon() + return result + +//Helper proc for standard modification cooking +/obj/machinery/appliance/proc/modify_cook(var/obj/item/input, var/datum/cooking_item/CI) + var/obj/item/weapon/reagent_containers/food/snacks/result + if (istype(input, /obj/item/weapon/holder)) + result = create_mob_food(input, CI) + else if (istype(input, /obj/item/weapon/reagent_containers/food/snacks)) + result = input + else + //Nonviable item + return + + if (!result) + return + + result.cooked |= cook_type + + // Set icon and appearance. + change_product_appearance(result, CI) + + // Update strings. + change_product_strings(result, CI) + +/obj/machinery/appliance/proc/burn_food(var/datum/cooking_item/CI) + // You dun goofed. + CI.burned = 1 + CI.container.clear() + new /obj/item/weapon/reagent_containers/food/snacks/badrecipe(CI.container) + + // Produce nasty smoke. + visible_message("\The [src] vomits a gout of rancid smoke!") + var/datum/effect/effect/system/smoke_spread/bad/smoke = new /datum/effect/effect/system/smoke_spread/bad + smoke.attach(src) + smoke.set_up(10, 0, get_turf(src), 300) + smoke.start() + +/obj/machinery/appliance/attack_hand(var/mob/user) + if (cooking_objs.len) + if (removal_menu(user)) + return + else + ..() + +/obj/machinery/appliance/proc/removal_menu(var/mob/user) + if (can_remove_items(user)) + var/list/menuoptions = list() + for (var/a in cooking_objs) + var/datum/cooking_item/CI = a + if (CI.container) + menuoptions[CI.container.label(menuoptions.len)] = CI + + var/selection = input(user, "Which item would you like to remove?", "Remove ingredients") as null|anything in menuoptions + if (selection) + var/datum/cooking_item/CI = menuoptions[selection] + eject(CI, user) + update_icon() + return 1 + return 0 + +/obj/machinery/appliance/proc/can_remove_items(var/mob/user) + if (!Adjacent(user)) + return 0 + + if (isanimal(user)) + return 0 + + return 1 + +/obj/machinery/appliance/proc/eject(var/datum/cooking_item/CI, var/mob/user = null) + var/obj/item/thing + var/delete = 1 + var/status = CI.container.check_contents() + if (status == 1)//If theres only one object in a container then we extract that + thing = locate(/obj/item) in CI.container + delete = 0 + else//If the container is empty OR contains more than one thing, then we must extract the container + thing = CI.container + if (!user || !user.put_in_hands(thing)) + thing.forceMove(get_turf(src)) + + if (delete) + cooking_objs -= CI + qdel(CI) + else + CI.reset()//reset instead of deleting if the container is left inside + +/obj/machinery/appliance/proc/cook_mob(var/mob/living/victim, var/mob/user) + return + +/obj/machinery/appliance/proc/change_product_strings(var/obj/item/weapon/reagent_containers/food/snacks/product, var/datum/cooking_item/CI) + product.name = "[cook_type] [product.name]" + product.desc = "[product.desc]\nIt has been [cook_type]." + + +/obj/machinery/appliance/proc/change_product_appearance(var/obj/item/weapon/reagent_containers/food/snacks/product, var/datum/cooking_item/CI) + if (!product.coating) //Coatings change colour through a new sprite + product.color = food_color + product.filling_color = food_color + +/mob/living/proc/calculate_composition() // moved from devour.dm on aurora's side + if (!composition_reagent)//if no reagent has been set, then we'll set one + if (isSynthetic()) + src.composition_reagent = "iron" + else + if(istype(src, /mob/living/carbon/human/diona) || istype(src, /mob/living/carbon/alien/diona)) + src.composition_reagent = "nutriment" // diona are plants, not meat + else + src.composition_reagent = "protein" + if(istype(src, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = src + if(istype(H.species, /datum/species/diona)) + src.composition_reagent = "nutriment" + + //if the mob is a simple animal with a defined meat quantity + if (istype(src, /mob/living/simple_animal)) + var/mob/living/simple_animal/SA = src + if (SA.meat_amount) + src.composition_reagent_quantity = SA.meat_amount*2*9 + + //The quantity of protein is based on the meat_amount, but multiplied by 2 + + var/size_reagent = (src.mob_size * src.mob_size) * 3//The quantity of protein is set to 3x mob size squared + if (size_reagent > src.composition_reagent_quantity)//We take the larger of the two + src.composition_reagent_quantity = size_reagent + +//This function creates a food item which represents a dead mob +/obj/machinery/appliance/proc/create_mob_food(var/obj/item/weapon/holder/H, var/datum/cooking_item/CI) + if (!istype(H) || !H.held_mob) + qdel(H) + return null + var/mob/living/victim = H.held_mob + if (victim.stat != DEAD) + return null //Victim somehow survived the cooking, they do not become food + + victim.calculate_composition() + + var/obj/item/weapon/reagent_containers/food/snacks/variable/mob/result = new /obj/item/weapon/reagent_containers/food/snacks/variable/mob(CI.container) + result.w_class = victim.mob_size + result.reagents.add_reagent(victim.composition_reagent, victim.composition_reagent_quantity) + + if (victim.reagents) + victim.reagents.trans_to_holder(result.reagents, victim.reagents.total_volume) + + if (isanimal(victim)) + var/mob/living/simple_animal/SA = victim + result.kitchen_tag = SA.kitchen_tag + + result.appearance = victim + + var/matrix/M = matrix() + M.Turn(45) + M.Translate(1,-2) + result.transform = M + + // all done, now delete the old objects + H.held_mob = null + qdel(victim) + victim = null + qdel(H) + H = null + + return result + +/datum/cooking_item + var/max_cookwork + var/cookwork + var/overcook_mult = 5 + var/result_type = 0 + var/obj/item/weapon/reagent_containers/cooking_container/container = null + var/combine_target = null + + //Result type is one of the following: + //0 unfinished, no result yet + //1 Standard modification cooking. eg Fried Donk Pocket, Baked wheat, etc + //2 Modification but with a new object that's an inert copy of the old. Generally used for deepfried mice + //3 Combination cooking, EG Donut Bread, Donk pocket pizza, etc + //4:Specific recipe cooking. EG: Turning raw potato sticks into fries + + var/burned = 0 + + var/oil = 0 + var/max_oil = 0//Used for fryers. + +/datum/cooking_item/New(var/obj/item/I) + container = I + +//This is called for containers whose contents are ejected without removing the container +/datum/cooking_item/proc/reset() + max_cookwork = 0 + cookwork = 0 + result_type = 0 + burned = 0 + max_oil = 0 + oil = 0 + combine_target = null + //Container is not reset + +/obj/machinery/appliance/RefreshParts() + ..() + var/scan_rating = 0 + var/cap_rating = 0 + + for(var/obj/item/weapon/stock_parts/P in src.component_parts) + if(istype(P, /obj/item/weapon/stock_parts/scanning_module)) + scan_rating += P.rating + else if(istype(P, /obj/item/weapon/stock_parts/capacitor)) + cap_rating += P.rating + + active_power_usage = initial(active_power_usage) - scan_rating*10 + cooking_power = initial(cooking_power) + (scan_rating+cap_rating)/10 + +/obj/item/weapon/circuitboard/cooking + name = "kitchen appliance circuitry" + desc = "The circuitboard for many kitchen appliances. Not of much use." + origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2) + req_components = list( + /obj/item/weapon/stock_parts/capacitor = 3, + /obj/item/weapon/stock_parts/scanning_module = 1, + /obj/item/weapon/stock_parts/matter_bin = 2) \ No newline at end of file diff --git a/code/modules/food/kitchen/cooking_machines/_cooker.dm b/code/modules/food/kitchen/cooking_machines/_cooker.dm index f0716e015f..f18b073ba9 100644 --- a/code/modules/food/kitchen/cooking_machines/_cooker.dm +++ b/code/modules/food/kitchen/cooking_machines/_cooker.dm @@ -1,261 +1,132 @@ -// This folder contains code that was originally ported from Apollo Station and then refactored/optimized/changed. +/obj/machinery/appliance/cooker + var/temperature = T20C + var/min_temp = 80 + T0C //Minimum temperature to do any cooking + var/optimal_temp = 200 + T0C //Temperature at which we have 100% efficiency. efficiency is lowered on either side of this + var/optimal_power = 0.1//cooking power at 100% -// Tracks precooked food to stop deep fried baked grilled grilled grilled diona nymph cereal. -/obj/item/weapon/reagent_containers/food/snacks/var/list/cooked + var/loss = 1 //Temp lost per proc when equalising + var/resistance = 320000 //Resistance to heating. combines with active power usage to determine how long heating takes -// Root type for cooking machines. See following files for specific implementations. -/obj/machinery/cooker - name = "cooker" - desc = "You shouldn't be seeing this!" - icon = 'icons/obj/cooking_machines.dmi' - density = 1 - anchored = 1 - use_power = USE_POWER_IDLE - idle_power_usage = 5 + var/light_x = 0 + var/light_y = 0 + cooking_power = 0 - var/on_icon // Icon state used when cooking. - var/off_icon // Icon state used when not cooking. - var/cooking // Whether or not the machine is currently operating. - var/cook_type // A string value used to track what kind of food this machine makes. - var/cook_time = 200 // How many ticks the cooking will take. - var/can_cook_mobs // Whether or not this machine accepts grabbed mobs. - var/food_color // Colour of resulting food item. - var/cooked_sound // Sound played when cooking completes. - var/can_burn_food // Can the object burn food that is left inside? - var/burn_chance = 10 // How likely is the food to burn? - var/obj/item/cooking_obj // Holder for the currently cooking object. - - // If the machine has multiple output modes, define them here. - var/selected_option - var/list/output_options = list() - -/obj/machinery/cooker/Destroy() - if(cooking_obj) - qdel(cooking_obj) - cooking_obj = null - return ..() - -/obj/machinery/cooker/proc/set_cooking(new_setting) - cooking = new_setting - icon_state = new_setting ? on_icon : off_icon - -/obj/machinery/cooker/examine(mob/user) +/obj/machinery/appliance/cooker/examine(var/mob/user) . = ..() - if(cooking_obj && Adjacent(user)) - . += "You can see \a [cooking_obj] inside." - -/obj/machinery/cooker/attackby(var/obj/item/I, var/mob/user) - - if(!cook_type || (stat & (NOPOWER|BROKEN))) - to_chat(user, "\The [src] is not working.") - return - - if(cooking) - to_chat(user, "\The [src] is running!") - return - - if(default_unfasten_wrench(user, I, 20)) - return - - // We are trying to cook a grabbed mob. - var/obj/item/weapon/grab/G = I - if(istype(G)) - - if(!can_cook_mobs) - to_chat(user, "That's not going to fit.") - return - - if(!isliving(G.affecting)) - to_chat(user, "You can't cook that.") - return - - cook_mob(G.affecting, user) - return - - // We're trying to cook something else. Check if it's valid. - var/obj/item/weapon/reagent_containers/food/snacks/check = I - if(istype(check) && islist(check.cooked) && (cook_type in check.cooked)) - to_chat(user, "\The [check] has already been [cook_type].") - return 0 - else if(istype(check, /obj/item/weapon/reagent_containers/glass)) - to_chat(user, "That would probably break [src].") - return 0 - else if(istype(check, /obj/item/weapon/disk/nuclear)) - to_chat(user, "Central Command would kill you if you [cook_type] that.") - return 0 - else if(!istype(check) && !istype(check, /obj/item/weapon/holder) && !istype(check, /obj/item/organ)) //Gripper check has to go here, else it still just cuts it off. ~Mechoid - // Is it a borg using a gripper? - if(istype(check, /obj/item/weapon/gripper)) // Grippers. ~Mechoid. - var/obj/item/weapon/gripper/B = check //B, for Borg. - if(!B.wrapped) - to_chat(user, "\The [B] is not holding anything.") - return 0 + if(.) //no need to duplicate adjacency check + if(!stat) + if (temperature < min_temp) + to_chat(user, span("warning", "\The [src] is still heating up and is too cold to cook anything yet.")) else - var/B_held = B.wrapped - to_chat(user, "You use \the [B] to put \the [B_held] into \the [src].") - return 0 + to_chat(user, span("notice", "It is running at [round(get_efficiency(), 0.1)]% efficiency!")) + to_chat(user, "Temperature: [round(temperature - T0C, 0.1)]C / [round(optimal_temp - T0C, 0.1)]C") else - to_chat(user, "That's not edible.") - return 0 - - if(istype(I, /obj/item/organ)) - var/obj/item/organ/O = I - if(O.robotic) - to_chat(user, "That would probably break [src].") - return - - // Gotta hurt. - if(istype(cooking_obj, /obj/item/weapon/holder)) - for(var/mob/living/M in cooking_obj.contents) - M.apply_damage(rand(30,40), BURN, "chest") - - // Not sure why a food item that passed the previous checks would fail to drop, but safety first. (Hint: Borg grippers. That is why. ~Mechoid.) - if(!user.unEquip(I) && !istype(user,/mob/living/silicon/robot)) - return - - // We can actually start cooking now. - user.visible_message("\The [user] puts \the [I] into \the [src].") - cooking_obj = I - cooking_obj.forceMove(src) - set_cooking(TRUE) - icon_state = on_icon - - // Doop de doo. Jeopardy theme goes here. - sleep(cook_time) - - // Sanity checks. - if(!cooking_obj || cooking_obj.loc != src) - cooking_obj = null - icon_state = off_icon - set_cooking(FALSE) - return - - // RIP slow-moving held mobs. - if(istype(cooking_obj, /obj/item/weapon/holder)) - for(var/mob/living/M in cooking_obj.contents) - M.death() - qdel(M) - - // Cook the food. - var/cook_path - if(selected_option && output_options.len) - cook_path = output_options[selected_option] - if(!cook_path) - cook_path = /obj/item/weapon/reagent_containers/food/snacks/variable - var/obj/item/weapon/reagent_containers/food/snacks/result = new cook_path(src) //Holy typepaths, Batman. - - // Set icon and appearance. - change_product_appearance(result) - - // Update strings. - change_product_strings(result) - - // Copy reagents over. trans_to_obj must be used, as trans_to fails for snacks due to is_open_container() failing. - if(cooking_obj.reagents && cooking_obj.reagents.total_volume) - cooking_obj.reagents.trans_to_obj(result, cooking_obj.reagents.total_volume) - - // Set cooked data. - var/obj/item/weapon/reagent_containers/food/snacks/food_item = cooking_obj - if(istype(food_item) && islist(food_item.cooked)) - result.cooked = food_item.cooked.Copy() + to_chat(user, span("warning", "It is switched off.")) + +/obj/machinery/appliance/cooker/list_contents(var/mob/user) + if (cooking_objs.len) + var/string = "Contains...
" + var/num = 0 + for (var/a in cooking_objs) + num++ + var/datum/cooking_item/CI = a + if (CI && CI.container) + string += "- [CI.container.label(num)], [report_progress(CI)]
" + to_chat(user, string) else - result.cooked = list() - result.cooked |= cook_type + to_chat(user, span("notice","It is empty.")) + +/obj/machinery/appliance/cooker/proc/get_efficiency() + //RefreshParts() + return (cooking_power / optimal_power) * 100 - // Reset relevant variables. - qdel(cooking_obj) - src.visible_message("\The [src] pings!") - if(cooked_sound) - playsound(src, cooked_sound, 50, 1) +/obj/machinery/appliance/cooker/New() + . = ..() + loss = (active_power_usage / resistance)*0.5 + cooking_objs = list() + for (var/i = 0, i < max_contents, i++) + cooking_objs.Add(new /datum/cooking_item/(new container_type(src))) + cooking = 0 - if(!can_burn_food) - icon_state = off_icon - set_cooking(FALSE) - result.forceMove(get_turf(src)) - cooking_obj = null + update_icon() // this probably won't cause issues, but Aurora used SSIcons and queue_icon_update() instead + +/obj/machinery/appliance/cooker/update_icon() + cut_overlays() + var/image/light + if (use_power == 2 && !stat) + light = image(icon, "light_on") else - var/failed - var/overcook_period = max(FLOOR(cook_time/5, 1),1) - cooking_obj = result - var/count = overcook_period - while(1) - sleep(overcook_period) - count += overcook_period - if(!cooking || !result || result.loc != src) - failed = 1 - else if(prob(burn_chance) || count == cook_time) //Fail before it has a chance to cook again. - // You dun goofed. - qdel(cooking_obj) - cooking_obj = new /obj/item/weapon/reagent_containers/food/snacks/badrecipe(src) - // Produce nasty smoke. - visible_message("\The [src] vomits a gout of rancid smoke!") - var/datum/effect/effect/system/smoke_spread/bad/smoke = new /datum/effect/effect/system/smoke_spread/bad() - smoke.attach(src) - smoke.set_up(10, 0, usr.loc) - smoke.start() - failed = 1 - - if(failed) - set_cooking(FALSE) - icon_state = off_icon - break - -/obj/machinery/cooker/attack_hand(var/mob/user) - - if(cooking_obj && user.Adjacent(src)) //Fixes borgs being able to teleport food in these machines to themselves. - to_chat(user, "You grab \the [cooking_obj] from \the [src].") - user.put_in_hands(cooking_obj) - set_cooking(FALSE) - cooking_obj = null - icon_state = off_icon - return - - if(output_options.len) - - if(cooking) - to_chat(user, "\The [src] is in use!") - return - - var/choice = input("What specific food do you wish to make with \the [src]?") as null|anything in output_options+"Default" - if(!choice) - return - if(choice == "Default") - selected_option = null - to_chat(user, "You decide not to make anything specific with \the [src].") - else - selected_option = choice - to_chat(user, "You prepare \the [src] to make \a [selected_option].") + light = image(icon, "light_off") + light.pixel_x = light_x + light.pixel_y = light_y + add_overlay(light) +/obj/machinery/appliance/cooker/process() + if (!stat) + heat_up() + else + var/turf/T = get_turf(src) + if (temperature > T.temperature) + equalize_temperature() ..() + +/obj/machinery/appliance/cooker/power_change() + . = ..() + update_icon() // this probably won't cause issues, but Aurora used SSIcons and queue_icon_update() instead + +/obj/machinery/appliance/cooker/proc/update_cooking_power() + var/temp_scale = 0 + if(temperature > min_temp) + temp_scale = (temperature - min_temp) / (optimal_temp - min_temp) // If we're between min and optimal this will yield a value in the range 0-1 -/obj/machinery/cooker/proc/cook_mob(var/mob/living/victim, var/mob/user) - return - -/obj/machinery/cooker/proc/change_product_strings(var/obj/item/weapon/reagent_containers/food/snacks/product) - if(product.type == /obj/item/weapon/reagent_containers/food/snacks/variable) // Base type, generic. - product.name = "[cook_type] [cooking_obj.name]" - product.desc = "[cooking_obj.desc] It has been [cook_type]." + if(temp_scale > 1) // We're above optimal, efficiency goes down as we pass too much over it + if(temp_scale >= 2) + temp_scale = 0 + else + temp_scale = 1 - (temp_scale - 1) + + cooking_power = optimal_power * temp_scale + // RefreshParts() + +/obj/machinery/appliance/cooker/proc/heat_up() + if(temperature < optimal_temp) + if(use_power == 1 && ((optimal_temp - temperature) > 5)) + playsound(src, 'sound/machines/click.ogg', 20, 1) + use_power = 2.//If we're heating we use the active power + update_icon() + temperature += active_power_usage / resistance + update_cooking_power() + return 1 else - product.name = "[cooking_obj.name] [product.name]" + if(use_power == 2) + use_power = 1 + playsound(src, 'sound/machines/click.ogg', 20, 1) + update_icon() + //We're holding steady. temperature falls more slowly + if(prob(25)) + equalize_temperature() + return -1 -/obj/machinery/cooker/proc/change_product_appearance(var/obj/item/weapon/reagent_containers/food/snacks/product) - if(product.type == /obj/item/weapon/reagent_containers/food/snacks/variable) // Base type, generic. - product.appearance = cooking_obj - product.color = food_color - product.filling_color = food_color +/obj/machinery/appliance/cooker/proc/equalize_temperature() + temperature -= loss//Temperature will fall somewhat slowly + update_cooking_power() - // Make 'em into a corpse. - if(istype(cooking_obj, /obj/item/weapon/holder)) - var/matrix/M = matrix() - M.Turn(90) - M.Translate(1,-6) - product.transform = M +//Cookers do differently, they use containers +/obj/machinery/appliance/cooker/has_space(var/obj/item/I) + if(istype(I, /obj/item/weapon/reagent_containers/cooking_container)) + //Containers can go into an empty slot + if(cooking_objs.len < max_contents) + return 1 else - var/image/I = image(product.icon, "[product.icon_state]_filling") - if(istype(cooking_obj, /obj/item/weapon/reagent_containers/food/snacks)) - var/obj/item/weapon/reagent_containers/food/snacks/S = cooking_obj - I.color = S.filling_color - if(!I.color) - I.color = food_color - product.overlays += I + //Any food items directly added need an empty container. A slot without a container cant hold food + for (var/datum/cooking_item/CI in cooking_objs) + if (CI.container.check_contents() == 0) + return CI + return 0 + +/obj/machinery/appliance/cooker/add_content(var/obj/item/I, var/mob/user) + var/datum/cooking_item/CI = ..() + if (CI && CI.combine_target) + to_chat(user, "\The [I] will be used to make a [selected_option]. Output selection is returned to default for future items.") + selected_option = null \ No newline at end of file diff --git a/code/modules/food/kitchen/cooking_machines/_cooker_output.dm b/code/modules/food/kitchen/cooking_machines/_cooker_output.dm index cb4dcd15ed..4fc2ab75b2 100644 --- a/code/modules/food/kitchen/cooking_machines/_cooker_output.dm +++ b/code/modules/food/kitchen/cooking_machines/_cooker_output.dm @@ -1,72 +1,160 @@ -// Wrapper obj for cooked food. Appearance is set in the cooking code, not on spawn. -/obj/item/weapon/reagent_containers/food/snacks/variable - name = "cooked food" - icon = 'icons/obj/food_custom.dmi' - desc = "If you can see this description then something is wrong. Please report the bug on the tracker." - nutriment_amt = 5 - bitesize = 2 - -/obj/item/weapon/reagent_containers/food/snacks/variable/pizza - name = "personal pizza" - desc = "A personalized pan pizza meant for only one person." - icon_state = "personal_pizza" - -/obj/item/weapon/reagent_containers/food/snacks/variable/bread - name = "bread" - desc = "Tasty bread." - icon_state = "breadcustom" - -/obj/item/weapon/reagent_containers/food/snacks/variable/pie - name = "pie" - desc = "Tasty pie." - icon_state = "piecustom" - -/obj/item/weapon/reagent_containers/food/snacks/variable/cake - name = "cake" - desc = "A popular band." - icon_state = "cakecustom" - -/obj/item/weapon/reagent_containers/food/snacks/variable/pocket - name = "hot pocket" - desc = "You wanna put a bangin- oh, nevermind." - icon_state = "donk" - -/obj/item/weapon/reagent_containers/food/snacks/variable/kebab - name = "kebab" - desc = "Remove this!" - icon_state = "kabob" - -/obj/item/weapon/reagent_containers/food/snacks/variable/waffles - name = "waffles" - desc = "Made with love." - icon_state = "waffles" - -/obj/item/weapon/reagent_containers/food/snacks/variable/cookie - name = "cookie" - desc = "Sugar snap!" - icon_state = "cookie" - -/obj/item/weapon/reagent_containers/food/snacks/variable/donut - name = "filled donut" - desc = "Donut eat this!" // kill me - icon_state = "donut" - -/obj/item/weapon/reagent_containers/food/snacks/variable/jawbreaker - name = "flavored jawbreaker" - desc = "It's like cracking a molar on a rainbow." - icon_state = "jawbreaker" - -/obj/item/weapon/reagent_containers/food/snacks/variable/candybar - name = "flavored chocolate bar" - desc = "Made in a factory downtown." - icon_state = "bar" - -/obj/item/weapon/reagent_containers/food/snacks/variable/sucker - name = "flavored sucker" - desc = "Suck, suck, suck." - icon_state = "sucker" - -/obj/item/weapon/reagent_containers/food/snacks/variable/jelly - name = "jelly" - desc = "All your friends will be jelly." - icon_state = "jellycustom" +// Wrapper obj for cooked food. Appearance is set in the cooking code, not on spawn. +/obj/item/weapon/reagent_containers/food/snacks/variable + name = "cooked food" + icon = 'icons/obj/food_custom.dmi' + desc = "If you can see this description then something is wrong. Please report the bug on the tracker." + bitesize = 2 + + var/size = 5 //The quantity of reagents which is considered "normal" for this kind of food + //These objects will change size depending on the ratio of reagents to this value + var/min_scale = 0.5 + var/max_scale = 2 + var/scale = 1 + + w_class = 2 + var/prefix + +/obj/item/weapon/reagent_containers/food/snacks/variable/initialize() + . = ..() + if (reagents) + reagents.maximum_volume = size*8 + 10 + else + create_reagents(size*8 + 10) + +/obj/item/weapon/reagent_containers/food/snacks/variable/update_icon() + if (reagents && reagents.total_volume) + var/ratio = reagents.total_volume / size + + scale = ratio**(1/3) //Scaling factor is square root of desired area + scale = Clamp(scale, min_scale, max_scale) + else + scale = min_scale + + var/matrix/M = matrix() + M.Scale(scale) + src.transform = M + + w_class *= scale + if (!prefix) + if (scale == min_scale) + prefix = "tiny" + else if (scale <= 0.8) + prefix = "small" + + else + if (scale >= 1.2) + prefix = "large" + if (scale >= 1.4) + prefix = "extra large" + if (scale >= 1.6) + prefix = "huge" + if (scale >= max_scale) + prefix = "massive" + + name = "[prefix] [name]" + + +/obj/item/weapon/reagent_containers/food/snacks/variable/pizza + name = "personal pizza" + desc = "A personalized pan pizza meant for only one person." + icon_state = "personal_pizza" + size = 20 + w_class = 3 + +/obj/item/weapon/reagent_containers/food/snacks/variable/bread + name = "bread" + desc = "Tasty bread." + icon_state = "breadcustom" + size = 40 + w_class = 3 + +/obj/item/weapon/reagent_containers/food/snacks/variable/pie + name = "pie" + desc = "Tasty pie." + icon_state = "piecustom" + size = 25 + +/obj/item/weapon/reagent_containers/food/snacks/variable/cake + name = "cake" + desc = "A popular band." + icon_state = "cakecustom" + size = 40 + w_class = 3 + +/obj/item/weapon/reagent_containers/food/snacks/variable/pocket + name = "hot pocket" + desc = "You wanna put a bangin- oh, nevermind." + icon_state = "donk" + size = 8 + w_class = 1 + +/obj/item/weapon/reagent_containers/food/snacks/variable/kebab + name = "kebab" + desc = "Remove this!" + icon_state = "kabob" + size = 10 + +/obj/item/weapon/reagent_containers/food/snacks/variable/waffles + name = "waffles" + desc = "Made with love." + icon_state = "waffles" + size = 12 + +/obj/item/weapon/reagent_containers/food/snacks/variable/cookie + name = "cookie" + desc = "Sugar snap!" + icon_state = "cookie" + size = 6 + w_class = 1 + +/obj/item/weapon/reagent_containers/food/snacks/variable/donut + name = "filled donut" + desc = "Donut eat this!" // kill me + icon_state = "donut" + size = 8 + w_class = 1 + +/obj/item/weapon/reagent_containers/food/snacks/variable/jawbreaker + name = "flavored jawbreaker" + desc = "It's like cracking a molar on a rainbow." + icon_state = "jawbreaker" + size = 4 + w_class = 1 + +/obj/item/weapon/reagent_containers/food/snacks/variable/candybar + name = "flavored chocolate bar" + desc = "Made in a factory downtown." + icon_state = "bar" + size = 6 + w_class = 1 + +/obj/item/weapon/reagent_containers/food/snacks/variable/sucker + name = "flavored sucker" + desc = "Suck, suck, suck." + icon_state = "sucker" + size = 4 + w_class = 1 + +/obj/item/weapon/reagent_containers/food/snacks/variable/jelly + name = "jelly" + desc = "All your friends will be jelly." + icon_state = "jellycustom" + size = 8 + + +/obj/item/weapon/reagent_containers/food/snacks/variable/cereal + name = "cereal" + desc = "Crispy and flaky" + icon_state = "cereal_box" + size = 30 + w_class = 3 + +/obj/item/weapon/reagent_containers/food/snacks/variable/cereal/initialize() + . =..() + name = pick(list("flakes", "krispies", "crunch", "pops", "O's", "crisp", "loops", "jacks", "clusters")) + +/obj/item/weapon/reagent_containers/food/snacks/variable/mob + desc = "Poor little thing." + size = 5 + w_class = 1 + var/kitchen_tag = "animal" \ No newline at end of file diff --git a/code/modules/food/kitchen/cooking_machines/_mixer.dm b/code/modules/food/kitchen/cooking_machines/_mixer.dm new file mode 100644 index 0000000000..8ef0d5a8ec --- /dev/null +++ b/code/modules/food/kitchen/cooking_machines/_mixer.dm @@ -0,0 +1,141 @@ +/* +The mixer subtype is used for the candymaker and cereal maker. They are similar to cookers but with a few +fundamental differences +1. They have a single container which cant be removed. it will eject multiple contents +2. Items can't be added or removed once the process starts +3. Items are all placed in the same container when added directly +4. They do combining mode only. And will always combine the entire contents of the container into an output +*/ + +/obj/machinery/appliance/mixer + max_contents = 1 + stat = POWEROFF + cooking_power = 0.4 + active_power_usage = 3000 + idle_power_usage = 50 + +/obj/machinery/appliance/mixer/examine(var/mob/user) + ..() + to_chat(user, "It is currently set to make a [selected_option]") + +/obj/machinery/appliance/mixer/New() + . = ..() + cooking_objs += new /datum/cooking_item(new /obj/item/weapon/reagent_containers/cooking_container(src)) + cooking = 0 + selected_option = pick(output_options) + +//Mixers cannot-not do combining mode. So the default option is removed from this. A combine target must be chosen +/obj/machinery/appliance/mixer/choose_output() + set src in oview(1) + set name = "Choose output" + set category = "Object" + + if (!isliving(usr)) + return + + if (!usr.IsAdvancedToolUser()) + to_chat(user, "You can't operate [src].") + return + + if(output_options.len) + var/choice = input("What specific food do you wish to make with \the [src]?") as null|anything in output_options + if(!choice) + return + else + selected_option = choice + to_chat(user, "You prepare \the [src] to make \a [selected_option].") + var/datum/cooking_item/CI = cooking_objs[1] + CI.combine_target = selected_option + + +/obj/machinery/appliance/mixer/has_space(var/obj/item/I) + var/datum/cooking_item/CI = cooking_objs[1] + if (!CI || !CI.container) + return 0 + + if (CI.container.can_fit(I)) + return CI + + return 0 + + +/obj/machinery/appliance/mixer/can_remove_items(var/mob/user) + if (stat) + return 1 + else + to_chat(user, "You can't remove ingredients while it's turned on! Turn it off first or wait for it to finish.") + +//Container is not removable +/obj/machinery/appliance/mixer/removal_menu(var/mob/user) + if (can_remove_items(user)) + var/list/menuoptions = list() + for (var/a in cooking_objs) + var/datum/cooking_item/CI = a + if (CI.container) + if (!CI.container.check_contents()) + to_chat(user, "There's nothing in [src] you can remove!") + return + + for (var/obj/item/I in CI.container) + menuoptions[I.name] = I + + var/selection = input(user, "Which item would you like to remove? If you want to remove chemicals, use an empty beaker.", "Remove ingredients") as null|anything in menuoptions + if (selection) + var/obj/item/I = menuoptions[selection] + if (!user || !user.put_in_hands(I)) + I.forceMove(get_turf(src)) + update_icon() + return 1 + return 0 + + +/obj/machinery/appliance/mixer/toggle_power() + set src in view() + set name = "Toggle Power" + set category = "Object" + + var/datum/cooking_item/CI = cooking_objs[1] + if(!CI.container.check_contents()) + to_chat("There's nothing in it! Add ingredients before turning [src] on!") + return + + if(stat & POWEROFF)//Its turned off + stat &= ~POWEROFF + if(usr) + usr.visible_message("[usr] turns the [src] on", "You turn on \the [src].") + get_cooking_work(CI) + use_power = 2 + else //Its on, turn it off + stat |= POWEROFF + use_power = 0 + if(usr) + usr.visible_message("[usr] turns the [src] off", "You turn off \the [src].") + playsound(src, 'sound/machines/click.ogg', 40, 1) + update_icon() + +/obj/machinery/appliance/mixer/can_insert(var/obj/item/I, var/mob/user) + if(!stat) + to_chat(user, ",You can't add items while \the [src] is running. Wait for it to finish or turn the power off to abort.") + return 0 + else + return ..() + +/obj/machinery/appliance/mixer/finish_cooking(var/datum/cooking_item/CI) + ..() + stat |= POWEROFF + playsound(src, 'sound/machines/click.ogg', 40, 1) + use_power = 0 + CI.reset() + update_icon() + +/obj/machinery/appliance/mixer/update_icon() + if (!stat) + icon_state = on_icon + else + icon_state = off_icon + + +/obj/machinery/appliance/mixer/process() + if (!stat) + for (var/i in cooking_objs) + do_cooking_tick(i) \ No newline at end of file diff --git a/code/modules/food/kitchen/cooking_machines/candy.dm b/code/modules/food/kitchen/cooking_machines/candy.dm index 21fd506911..bbf1808ba1 100644 --- a/code/modules/food/kitchen/cooking_machines/candy.dm +++ b/code/modules/food/kitchen/cooking_machines/candy.dm @@ -1,18 +1,20 @@ -/obj/machinery/cooker/candy - name = "candy machine" - desc = "Get yer candied cheese wheels here!" - icon_state = "mixer_off" - off_icon = "mixer_off" - on_icon = "mixer_on" - cook_type = "candied" - - output_options = list( - "Jawbreaker" = /obj/item/weapon/reagent_containers/food/snacks/variable/jawbreaker, - "Candy Bar" = /obj/item/weapon/reagent_containers/food/snacks/variable/candybar, - "Sucker" = /obj/item/weapon/reagent_containers/food/snacks/variable/sucker, - "Jelly" = /obj/item/weapon/reagent_containers/food/snacks/variable/jelly - ) - -/obj/machinery/cooker/candy/change_product_appearance(var/obj/item/weapon/reagent_containers/food/snacks/cooked/product) - food_color = get_random_colour(1) - . = ..() +/obj/machinery/appliance/mixer/candy + name = "candy machine" + desc = "Get yer candied cheese wheels here!" + icon_state = "mixer_off" + off_icon = "mixer_off" + on_icon = "mixer_on" + cook_type = "candied" + appliancetype = CANDYMAKER + cooking_power = 0.6 + + output_options = list( + "Jawbreaker" = /obj/item/weapon/reagent_containers/food/snacks/variable/jawbreaker, + "Candy Bar" = /obj/item/weapon/reagent_containers/food/snacks/variable/candybar, + "Sucker" = /obj/item/weapon/reagent_containers/food/snacks/variable/sucker, + "Jelly" = /obj/item/weapon/reagent_containers/food/snacks/variable/jelly + ) + +/obj/machinery/appliance/mixer/candy/change_product_appearance(var/obj/item/weapon/reagent_containers/food/snacks/cooked/product) + food_color = get_random_colour(1) + . = ..() diff --git a/code/modules/food/kitchen/cooking_machines/cereal.dm b/code/modules/food/kitchen/cooking_machines/cereal.dm index 3a7b19c9b1..613ae2c9f0 100644 --- a/code/modules/food/kitchen/cooking_machines/cereal.dm +++ b/code/modules/food/kitchen/cooking_machines/cereal.dm @@ -1,25 +1,62 @@ -/obj/machinery/cooker/cereal - name = "cereal maker" - desc = "Now with Dann O's available!" - icon = 'icons/obj/cooking_machines.dmi' - icon_state = "cereal_off" - cook_type = "cerealized" - on_icon = "cereal_on" - off_icon = "cereal_off" - -/obj/machinery/cooker/cereal/change_product_strings(var/obj/item/weapon/reagent_containers/food/snacks/product) - . = ..() - product.name = "box of [cooking_obj.name] cereal" - -/obj/machinery/cooker/cereal/change_product_appearance(var/obj/item/weapon/reagent_containers/food/snacks/product) - product.icon = 'icons/obj/food.dmi' - product.icon_state = "cereal_box" - product.filling_color = cooking_obj.color - - var/image/food_image = image(cooking_obj.icon, cooking_obj.icon_state) - food_image.color = cooking_obj.color - food_image.overlays += cooking_obj.overlays - food_image.transform *= 0.7 - - product.overlays += food_image - +/obj/machinery/appliance/mixer/cereal + name = "cereal maker" + desc = "Now with Dann O's available!" + icon = 'icons/obj/cooking_machines.dmi' + icon_state = "cereal_off" + cook_type = "cerealized" + on_icon = "cereal_on" + off_icon = "cereal_off" + appliancetype = CEREALMAKER + + output_options = list( + "Cereal" = /obj/item/weapon/reagent_containers/food/snacks/variable/cereal + ) + +/* +/obj/machinery/appliance/mixer/cereal/change_product_strings(var/obj/item/weapon/reagent_containers/food/snacks/product, var/datum/cooking_item/CI) + . = ..() + product.name = "box of [CI.object.name] cereal" + +/obj/machinery/appliance/mixer/cereal/change_product_appearance(var/obj/item/weapon/reagent_containers/food/snacks/product) + product.icon = 'icons/obj/food.dmi' + product.icon_state = "cereal_box" + product.filling_color = CI.object.color + + var/image/food_image = image(CI.object.icon, CI.object.icon_state) + food_image.color = CI.object.color + food_image.overlays += CI.object.overlays + food_image.transform *= 0.7 + + product.overlays += food_image +*/ + +/obj/machinery/appliance/mixer/cereal/combination_cook(var/datum/cooking_item/CI) + + var/list/images = list() + var/num = 0 + for (var/obj/item/I in CI.container). + if (istype(I, /obj/item/weapon/reagent_containers/food/snacks/variable/cereal)) + //Images of cereal boxes on cereal boxes is dumb + continue + + var/image/food_image = image(I.icon, I.icon_state) + food_image.color = I.color + food_image.add_overlay(I.overlays) + food_image.transform *= 0.7 - (num * 0.05) + food_image.pixel_x = rand(-2,2) + food_image.pixel_y = rand(-3,5) + + + if (!images[I.icon_state]) + images[I.icon_state] = food_image + num++ + + if (num > 3) + continue + + + var/obj/item/weapon/reagent_containers/food/snacks/result = ..() + + result.color = result.filling_color + for (var/i in images) + result.overlays += images[i] diff --git a/code/modules/food/kitchen/cooking_machines/container.dm b/code/modules/food/kitchen/cooking_machines/container.dm new file mode 100644 index 0000000000..389c8752c2 --- /dev/null +++ b/code/modules/food/kitchen/cooking_machines/container.dm @@ -0,0 +1,157 @@ +//Cooking containers are used in ovens and fryers, to hold multiple ingredients for a recipe. +//They work fairly similar to the microwave - acting as a container for objects and reagents, +//which can be checked against recipe requirements in order to cook recipes that require several things + +/obj/item/weapon/reagent_containers/cooking_container + icon = 'modular_citadel/icons/obj/cooking_machines.dmi' + var/shortname + var/max_space = 20//Maximum sum of w-classes of foods in this container at once + var/max_reagents = 80//Maximum units of reagents + flags = OPENCONTAINER | NOREACT + var/list/insertable = list( + /obj/item/weapon/reagent_containers/food/snacks, + /obj/item/weapon/holder, + /obj/item/weapon/paper + ) + +/obj/item/weapon/reagent_containers/cooking_container/initialize() + . = ..() + create_reagents(max_reagents) + flags |= OPENCONTAINER | NOREACT + + +/obj/item/weapon/reagent_containers/cooking_container/examine(var/mob/user) + ..() + if (contents.len) + var/string = "It contains....
" + for (var/atom/movable/A in contents) + string += "[A.name]
" + user << span("notice", string) + if (reagents.total_volume) + user << span("notice", "It contains [reagents.total_volume]u of reagents.") + + +/obj/item/weapon/reagent_containers/cooking_container/attackby(var/obj/item/I as obj, var/mob/user as mob) + for (var/possible_type in insertable) + if (istype(I, possible_type)) + if (!can_fit(I)) + to_chat(user, "There's no more space in the [src] for that!") + return 0 + + if(!user.unEquip(I)) + return + I.forceMove(src) + to_chat(user, "You put the [I] into the [src]") + return + +/obj/item/weapon/reagent_containers/cooking_container/verb/empty() + set src in oview(1) + set name = "Empty Container" + set category = "Object" + set desc = "Removes items from the container, excluding reagents." + + do_empty(usr) + +/obj/item/weapon/reagent_containers/cooking_container/proc/do_empty(mob/user) + if (!isliving(user)) + //Here we only check for ghosts. Animals are intentionally allowed to remove things from oven trays so they can eat it + return + + if (user.stat || user.restrained()) + to_chat(user, "You are in no fit state to do this.") + return + + if (!Adjacent(user)) + to_chat(user, "You can't reach [src] from here.") + return + + if (!contents.len) + to_chat(user, "There's nothing in the [src] you can remove!") + return + + for (var/atom/movable/A in contents) + A.forceMove(get_turf(src)) + + to_chat(user, "You remove all the solid items from the [src].") + +/obj/item/weapon/reagent_containers/cooking_container/proc/check_contents() + if (contents.len == 0) + if (!reagents || reagents.total_volume == 0) + return 0//Completely empty + else if (contents.len == 1) + if (!reagents || reagents.total_volume == 0) + return 1//Contains only a single object which can be extracted alone + return 2//Contains multiple objects and/or reagents + +/obj/item/weapon/reagent_containers/cooking_container/AltClick(var/mob/user) + do_empty(user) + +//Deletes contents of container. +//Used when food is burned, before replacing it with a burned mess +/obj/item/weapon/reagent_containers/cooking_container/proc/clear() + for (var/atom/a in contents) + qdel(a) + + if (reagents) + reagents.clear_reagents() + +/obj/item/weapon/reagent_containers/cooking_container/proc/label(var/number, var/CT = null) + //This returns something like "Fryer basket 1 - empty" + //The latter part is a brief reminder of contents + //This is used in the removal menu + . = shortname + if (!isnull(number)) + .+= " [number]" + .+= " - " + if (CT) + .+=CT + else if (contents.len) + for (var/obj/O in contents) + .+=O.name//Just append the name of the first object + return + else if (reagents && reagents.total_volume > 0) + var/datum/reagent/R = reagents.get_master_reagent() + .+=R.name//Append name of most voluminous reagent + return + else + . += "empty" + + +/obj/item/weapon/reagent_containers/cooking_container/proc/can_fit(var/obj/item/I) + var/total = 0 + for (var/obj/item/J in contents) + total += J.w_class + + if((max_space - total) >= I.w_class) + return 1 + + +//Takes a reagent holder as input and distributes its contents among the items in the container +//Distribution is weighted based on the volume already present in each item +/obj/item/weapon/reagent_containers/cooking_container/proc/soak_reagent(var/datum/reagents/holder) + var/total = 0 + var/list/weights = list() + for (var/obj/item/I in contents) + if (I.reagents && I.reagents.total_volume) + total += I.reagents.total_volume + weights[I] = I.reagents.total_volume + + if (total > 0) + for (var/obj/item/I in contents) + if (weights[I]) + holder.trans_to(I, weights[I] / total) + + +/obj/item/weapon/reagent_containers/cooking_container/oven + name = "oven dish" + shortname = "shelf" + desc = "Put ingredients in this; designed for use with an oven. Warranty void if used." + icon_state = "ovendish" + max_space = 30 + max_reagents = 120 + +/obj/item/weapon/reagent_containers/cooking_container/fryer + name = "fryer basket" + shortname = "basket" + desc = "Put ingredients in this; designed for use with a deep fryer. Warranty void if used." + icon_state = "basket" \ No newline at end of file diff --git a/code/modules/food/kitchen/cooking_machines/fryer.dm b/code/modules/food/kitchen/cooking_machines/fryer.dm index e3753f0f48..bec146218b 100644 --- a/code/modules/food/kitchen/cooking_machines/fryer.dm +++ b/code/modules/food/kitchen/cooking_machines/fryer.dm @@ -1,4 +1,4 @@ -/obj/machinery/cooker/fryer +/obj/machinery/appliance/cooker/fryer name = "deep fryer" desc = "Deep fried everything." icon_state = "fryer_off" @@ -9,30 +9,157 @@ food_color = "#FFAD33" cooked_sound = 'sound/machines/ding.ogg' var/datum/looping_sound/deep_fryer/fry_loop + appliancetype = FRYER + active_power_usage = 12 KILOWATTS + + optimal_power = 0.35 + + idle_power_usage = 3.6 KILOWATTS + // Power used to maintain temperature once it's heated. + // Going with 25% of the active power. This is a somewhat arbitrary value. -/obj/machinery/cooker/fryer/Initialize() + resistance = 20000 // Approx. 8-9 minutes to heat up. + + max_contents = 2 + container_type = /obj/item/weapon/reagent_containers/cooking_container/fryer + + stat = POWEROFF // Starts turned off + + var/datum/reagents/oil + var/optimal_oil = 9000 //90 litres of cooking oil + +/obj/machinery/appliance/cooker/fryer/Initialize() + . = ..() fry_loop = new(list(src), FALSE) - return ..() + + oil = new/datum/reagents(optimal_oil * 1.25, src) + var/variance = rand()*0.15 + // Fryer is always a little below full, but its usually negligible -/obj/machinery/cooker/fryer/Destroy() + if(prob(20)) + // Sometimes the fryer will start with much less than full oil, significantly impacting efficiency until filled + variance = rand()*0.5 + oil.add_reagent("cornoil", optimal_oil*(1 - variance)) + +/obj/machinery/appliance/cooker/fryer/Destroy() QDEL_NULL(fry_loop) return ..() + +/obj/machinery/appliance/cooker/fryer/examine(var/mob/user) + if (..())//no need to duplicate adjacency check + to_chat(user, "Oil Level: [oil.total_volume]/[optimal_oil]") + +/obj/machinery/appliance/cooker/fryer/heat_up() + if (..()) + //Set temperature of oil reagent + var/datum/reagent/nutriment/triglyceride/oil/OL = oil.get_master_reagent() + if (OL && istype(OL)) + OL.data["temperature"] = temperature -/obj/machinery/cooker/fryer/set_cooking(new_setting) +/obj/machinery/appliance/cooker/fryer/equalize_temperature() + if (..()) + //Set temperature of oil reagent + var/datum/reagent/nutriment/triglyceride/oil/OL = oil.get_master_reagent() + if (OL && istype(OL)) + OL.data["temperature"] = temperature + +/obj/machinery/appliance/cooker/fryer/set_cooking(new_setting) ..() if(new_setting) fry_loop.start() else fry_loop.stop() + +/obj/machinery/appliance/cooker/fryer/update_cooking_power() + ..()//In addition to parent temperature calculation + //Fryer efficiency also drops when oil levels arent optimal + var/oil_level = 0 + var/datum/reagent/nutriment/triglyceride/oil/OL = oil.get_master_reagent() + if(OL && istype(OL)) + oil_level = OL.volume -/obj/machinery/cooker/fryer/cook_mob(var/mob/living/victim, var/mob/user) + var/oil_efficiency = 0 + if(oil_level) + oil_efficiency = oil_level / optimal_oil + + if(oil_efficiency > 1) + //We're above optimal, efficiency goes down as we pass too much over it + oil_efficiency = 1 - (oil_efficiency - 1) + + + cooking_power *= oil_efficiency + +/obj/machinery/appliance/cooker/fryer/update_icon() + if(cooking) + icon_state = on_icon + else + icon_state = off_icon + ..() + +//Fryer gradually infuses any cooked food with oil. Moar calories +//This causes a slow drop in oil levels, encouraging refill after extended use +/obj/machinery/appliance/cooker/fryer/do_cooking_tick(var/datum/cooking_item/CI) + if(..() && (CI.oil < CI.max_oil) && prob(20)) + var/datum/reagents/buffer = new /datum/reagents(2) + oil.trans_to_holder(buffer, min(0.5, CI.max_oil - CI.oil)) + CI.oil += buffer.total_volume + CI.container.soak_reagent(buffer) + + +//To solve any odd logic problems with results having oil as part of their compiletime ingredients. +//Upon finishing a recipe the fryer will analyse any oils in the result, and replace them with our oil +//As well as capping the total to the max oil +/obj/machinery/appliance/cooker/fryer/finish_cooking(var/datum/cooking_item/CI) + ..() + var/total_oil = 0 + var/total_our_oil = 0 + var/total_removed = 0 + var/datum/reagent/our_oil = oil.get_master_reagent() + + for (var/obj/item/I in CI.container) + if (I.reagents && I.reagents.total_volume) + for (var/datum/reagent/R in I.reagents.reagent_list) + if (istype(R, /datum/reagent/nutriment/triglyceride/oil)) + total_oil += R.volume + if (R.id != our_oil.id) + total_removed += R.volume + I.reagents.remove_reagent(R.id, R.volume) + else + total_our_oil += R.volume + + + if (total_removed > 0 || total_oil != CI.max_oil) + total_oil = min(total_oil, CI.max_oil) + + if (total_our_oil < total_oil) + //If we have less than the combined total, then top up from our reservoir + var/datum/reagents/buffer = new /datum/reagents(INFINITY) + oil.trans_to_holder(buffer, total_oil - total_our_oil) + CI.container.soak_reagent(buffer) + else if (total_our_oil > total_oil) + + //If we have more than the maximum allowed then we delete some. + //This could only happen if one of the objects spawns with the same type of oil as ours + var/portion = 1 - (total_oil / total_our_oil) //find the percentage to remove + for (var/obj/item/I in CI.container) + if (I.reagents && I.reagents.total_volume) + for (var/datum/reagent/R in I.reagents.reagent_list) + if (R.id == our_oil.id) + I.reagents.remove_reagent(R.id, R.volume*portion) + +/obj/machinery/appliance/cooker/fryer/cook_mob(var/mob/living/victim, var/mob/user) if(!istype(victim)) return - user.visible_message("\The [user] starts pushing \the [victim] into \the [src]!") - icon_state = on_icon - cooking = 1 + // user.visible_message("\The [user] starts pushing \the [victim] into \the [src]!") + + //Removed delay on this action in favour of a cooldown after it + //If you can lure someone close to the fryer and grab them then you deserve success. + //And a delay on this kind of niche action just ensures it never happens + //Cooldown ensures it can't be spammed to instakill someone + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN*3) + fry_loop.start() if(!do_mob(user, victim, 20)) @@ -48,38 +175,71 @@ fry_loop.stop() return + var/damage = rand(7,13) // Though this damage seems reduced, some hot oil is transferred to the victim and will burn them for a while after + + var/datum/reagent/nutriment/triglyceride/oil/OL = oil.get_master_reagent() + damage *= OL.heatdamage(victim) + var/obj/item/organ/external/E var/nopain if(ishuman(victim) && user.zone_sel.selecting != "groin" && user.zone_sel.selecting != "chest") var/mob/living/carbon/human/H = victim - if(H.species.flags & NO_PAIN) - nopain = 2 E = H.get_organ(user.zone_sel.selecting) - if(E.robotic >= ORGAN_ROBOT) + if(!E || E.species.flags & NO_PAIN) + nopain = 2 + else if(E.robotic >= ORGAN_ROBOT) nopain = 1 user.visible_message("\The [user] shoves \the [victim][E ? "'s [E.name]" : ""] into \the [src]!") + if (damage > 0) + if(E) + if(E.children && E.children.len) + for(var/obj/item/organ/external/child in E.children) + if(nopain && nopain < 2 && !(child.robotic >= ORGAN_ROBOT)) + nopain = 0 + child.take_damage(0, damage) + damage -= (damage*0.5)//IF someone's arm is plunged in, the hand should take most of it + E.take_damage(0, damage) + else + victim.apply_damage(damage, BURN, user.zone_sel.selecting) - if(E) - E.take_damage(0, rand(20,30)) - if(E.children && E.children.len) - for(var/obj/item/organ/external/child in E.children) - if(nopain && nopain < 2 && !(child.robotic >= ORGAN_ROBOT)) - nopain = 0 - child.take_damage(0, rand(20,30)) - else - victim.apply_damage(rand(30,40), BURN, user.zone_sel.selecting) + if(!nopain) + victim << "Agony consumes you as searing hot oil scorches your [E ? E.name : "flesh"] horribly!" + victim.emote("scream") + else + victim << "Searing hot oil scorches your [E ? E.name : "flesh"]!" - if(!nopain) - to_chat(victim, "Agony consumes you as searing hot oil scorches your [E ? E.name : "flesh"] horribly!") - victim.emote("scream") - else - to_chat(victim, "Searing hot oil scorches your [E ? E.name : "flesh"]!") + user.attack_log += text("\[[time_stamp()]\] Has [cook_type] \the [victim] ([victim.ckey]) in \a [src]") + victim.attack_log += text("\[[time_stamp()]\] Has been [cook_type] in \a [src] by [user.name] ([user.ckey])") + msg_admin_attack("[key_name_admin(user)] [cook_type] \the [victim] ([victim.ckey]) in \a [src]. (JMP)",ckey=key_name(user),ckey_target=key_name(victim)) - if(victim.client) - add_attack_logs(user,victim,"[cook_type] in [src]") - - icon_state = off_icon - cooking = 0 + //Coat the victim in some oil + oil.trans_to(victim, 40) + fry_loop.stop() - return + +/obj/machinery/appliance/cooker/fryer/attackby(var/obj/item/I, var/mob/user) + if(istype(I, /obj/item/weapon/reagent_containers/glass) && I.reagents) + if (I.reagents.total_volume <= 0 && oil) + //Its empty, handle scooping some hot oil out of the fryer + oil.trans_to(I, I.reagents.maximum_volume) + user.visible_message("[user] scoops some oil out of \the [src].", span("notice","You scoop some oil out of \the [src].")) + return 1 + else + //It contains stuff, handle pouring any oil into the fryer + //Possibly in future allow pouring non-oil reagents in, in order to sabotage it and poison food. + //That would really require coding some sort of filter or better replacement mechanism first + //So for now, restrict to oil only + var/amount = 0 + for (var/datum/reagent/R in I.reagents.reagent_list) + if (istype(R, /datum/reagent/nutriment/triglyceride/oil)) + var/delta = oil.get_free_space() + delta = min(delta, R.volume) + oil.add_reagent(R.id, delta) + I.reagents.remove_reagent(R.id, delta) + amount += delta + if (amount > 0) + user.visible_message("[user] pours some oil into \the [src].", span("notice","You pour [amount]u of oil into \the [src]."), "You hear something viscous being poured into a metal container.") + return 1 + //If neither of the above returned, then call parent as normal + ..() diff --git a/code/modules/food/kitchen/cooking_machines/grill.dm b/code/modules/food/kitchen/cooking_machines/grill.dm index 312189c588..663cffe62b 100644 --- a/code/modules/food/kitchen/cooking_machines/grill.dm +++ b/code/modules/food/kitchen/cooking_machines/grill.dm @@ -1,10 +1,10 @@ -/obj/machinery/cooker/grill - name = "grill" - desc = "Backyard grilling, IN SPACE." - icon_state = "grill_off" - cook_type = "grilled" - cook_time = 100 - food_color = "#A34719" - on_icon = "grill_on" - off_icon = "grill_off" +/obj/machinery/appliance/cooker/grill + name = "grill" + desc = "Backyard grilling, IN SPACE." + icon_state = "grill_off" + cook_type = "grilled" + cook_time = 100 + food_color = "#A34719" + on_icon = "grill_on" + off_icon = "grill_off" can_burn_food = 1 \ No newline at end of file diff --git a/code/modules/food/kitchen/cooking_machines/oven.dm b/code/modules/food/kitchen/cooking_machines/oven.dm index ec941af223..c1d0ccf535 100644 --- a/code/modules/food/kitchen/cooking_machines/oven.dm +++ b/code/modules/food/kitchen/cooking_machines/oven.dm @@ -1,23 +1,23 @@ -/obj/machinery/cooker/oven - name = "oven" - desc = "Cookies are ready, dear." - icon = 'icons/obj/cooking_machines.dmi' - icon_state = "oven_off" - on_icon = "oven_on" - off_icon = "oven_off" - cook_type = "baked" - cook_time = 300 - food_color = "#A34719" - can_burn_food = 1 - - output_options = list( - "Personal Pizza" = /obj/item/weapon/reagent_containers/food/snacks/variable/pizza, - "Bread" = /obj/item/weapon/reagent_containers/food/snacks/variable/bread, - "Pie" = /obj/item/weapon/reagent_containers/food/snacks/variable/pie, - "Small Cake" = /obj/item/weapon/reagent_containers/food/snacks/variable/cake, - "Hot Pocket" = /obj/item/weapon/reagent_containers/food/snacks/variable/pocket, - "Kebab" = /obj/item/weapon/reagent_containers/food/snacks/variable/kebab, - "Waffles" = /obj/item/weapon/reagent_containers/food/snacks/variable/waffles, - "Cookie" = /obj/item/weapon/reagent_containers/food/snacks/variable/cookie, - "Donut" = /obj/item/weapon/reagent_containers/food/snacks/variable/donut, +/obj/machinery/appliance/cooker/oven + name = "oven" + desc = "Cookies are ready, dear." + icon = 'icons/obj/cooking_machines.dmi' + icon_state = "oven_off" + on_icon = "oven_on" + off_icon = "oven_off" + cook_type = "baked" + cook_time = 300 + food_color = "#A34719" + can_burn_food = 1 + + output_options = list( + "Personal Pizza" = /obj/item/weapon/reagent_containers/food/snacks/variable/pizza, + "Bread" = /obj/item/weapon/reagent_containers/food/snacks/variable/bread, + "Pie" = /obj/item/weapon/reagent_containers/food/snacks/variable/pie, + "Small Cake" = /obj/item/weapon/reagent_containers/food/snacks/variable/cake, + "Hot Pocket" = /obj/item/weapon/reagent_containers/food/snacks/variable/pocket, + "Kebab" = /obj/item/weapon/reagent_containers/food/snacks/variable/kebab, + "Waffles" = /obj/item/weapon/reagent_containers/food/snacks/variable/waffles, + "Cookie" = /obj/item/weapon/reagent_containers/food/snacks/variable/cookie, + "Donut" = /obj/item/weapon/reagent_containers/food/snacks/variable/donut, ) \ No newline at end of file diff --git a/icons/obj/cooking_machines.dmi b/icons/obj/cooking_machines.dmi index 666a31b9d0990cd43c2d0bc041d5f63815bf5e02..119d42de116afa719319ce595312737cb9c3b2cd 100644 GIT binary patch literal 12112 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 Bo#6lg diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index 64f4753b7b992b471ff5ee635a94ce755a70532e..156185fc90396b0a8b51d35dabd1e98f0e6fb055 100644 GIT binary patch delta 1596 zcmV-C2E+N{jR@h52#_QJw6P_l0)K%T)4PCaJuW>Ao^oNGAeKU>k{vx(Kajd?wB`|r zXHdtA4G0WKk*j&^E)RN{^&Q#Q$A-i&~ErGMUxuXm;1bm_ZNZ-(BxQg2SnyHd?b+Ho;sO~`S*C;{7E z?R(eGryZ+KAj=_@$w;&=aBOG4;GWo?a9}$ZZ!=Zk)W-2J0cm}dg6VtqJ<_Me6n3N? z8(`ZN?;cqkaBagBYw2n!K)WK))IRP_Oc^-Ik}r9r9cvCq<(4=l)_>r<$M{?a0##?p z53IX(=-)-zD!J?;Sn4|7juLl_9J&%2-j=rn?T|~3owD~ilG(N48mWw~xQJAl@Uk!z?X)$bZ6}!8Q8c9OW$uM6 z+m3c@lN6+NB7r@Z0)J#0>ZAkO3w^r|>|Gvv=RHt|LVX&QQaD2B@$RLa4J1Kx!^4m~ z#ga%vd*Gs_M&23`WDRz#IvG#B)Z&2aGP26XC9MCM3vxf76Pd}ojs z0sr{(y6ZyG6?$Or-$;g^UNqfrUQ}!@FO>H#+JDSanv!xk0DtcXIx^Cp(Bx}KTj=6< z9t^~GObW#vM>9H4mNHULz0lBk-*L9=-7pqJ`P?BmN&xO1DwIijmq&^g>y(`CG<)a0 zi|s@1Q2`Yf&{zjPwT!_F=RgJ95+2z52@aR}UL<=L*oXp#>;!nM{gorxZf2cqE!3XYBi!!IJ@*9`bbk^?i98tz?c!0P*Iwd0TL{%u ztwr{XB7M~zw*w%T+V_Y?>m-sw`#>SnF4IRTR@$ExZ?_;C3L__qJW{l6Y}3ip6?o(G z!nWi6W`W+D1$u86=)GN__u~S+9~bDoTcG!Df!_NCdhZwLeeMQ8J3A|r-y)qxXV@rH z*cyqvoqwMZE)+Ty9k|>hMdy9H_&5pVqO|W=wVhB-GSF4m%TVA^bTxJrXfdd`oC)cT zQXb*%LSK21uBti&*6Ip&RUOHU0-T6FnH{3A)UPg7h1k> zxPKs?Yn&f&Wd?fr2hOE;K$h86d#F}oSGApLOjVt*^NUa}u>u#6mLHw>*bzQ;6zxMh z(*Zq;pxiDSA9+A@%~)GqU@DMpGlwaJoGl}*Kuycv_Td;G9_N%aSiT3-j7m4hh;YBkzODvheStVl0 u49*fuW^k5RGJ~_kn=|<9>ieJHR^R^karuAK!?DK-Q-7g@;s~eW2m$^!i3?5u delta 1597 zcmV-D2EzH_jR@k62#_QJwXr3m0)N|uor+>699JF&Pr0y85KEy`$&MbYA4pv`TJs2m zaqnf%YDVX6CJ&TvDw#2IWbH7LI6KAANAeD|)Jm-72E%UK6%45E0o2#415ONPWX==F zlByJpJuX|o0GE(YM?1AYDsjh?sU3Inw1D0#0gL5?BQamwg$54;!d#`Q$$z&$%ENHg z`HF!GtXv+3tGSl~q2Pg*hv5o4Df2K~DY@8zT7wGBxMBU!S zp{F>Qu_B}D;ceNwxC3qry!*R4+l#ap^^7K!!oX6T=|@*6 z0Cb^TCah1Mr)b^Q&vn(N0?<+IE7e9YsUhUgloN zvh8TcHc3G`Clc6mDStqwp-wuWyU@4mz~1GtcisbaDAcA=DTO119sZTVYu~>iu(^D7 z74VNgue&Z3U7-i|{*7e#=|$81=0(Nk@uYhiWFE zi8b%CaX@OrUL9Mcg%licd@>{LDTbQI_I*glT%c7jP)eQ)DX@3D!-1d<(vjQ-&beKl zpKwV)!|zD98%jsA-CsG9?Pk`=)`%bAeg zDCH6EF7%ZL>8h$jV6CoTSJjcsD8Px>li8u0KoZ?`vIowQ9N9X9)FFe5ou`Q0xE0X? zh1qf8bnt2V|LDwTEgYc2(P{##Ge_JHH6!5-V^4Y5CE4j~(GtN6|jC zGab;g2+HlU@sS5a*NnB*1*QVoHglLl=owU!YQ}92K7T_c6vtx`{W6EmOumhQ=Y-_dH=`Q z`Fa?%SW;>y=#B>V{Kz_$@$EwS{_@oo&;9eg%>46qef#q7Pi;WShIYL5G_hU*v3(}d zK4+dwwEJS`67BBXxdhN8JCkU?06UjxzXdy&Xuk?OmuSBady&ZA8D2Dlv&51aoF*lf v%-}4sWCmx6B{Minyg7rvuD<{IZT0PsAD90J;gqp&c2)EvgW(9L;Rpf#%oQKw diff --git a/icons/obj/food_syn.dmi b/icons/obj/food_syn.dmi new file mode 100644 index 0000000000000000000000000000000000000000..f794f3f7de930bb8e00e5d22b4fd77be7c8dd053 GIT binary patch literal 52682 zcmcF~Wl$tRwSFEWX6@(z2IiHMmOdR%z>PTi`#}vc*;d(Yp|G_ZlK|6K#!&Pp%}gY&tU9eV z((8$DUCK1}W^~V5Ujk(G+wJN8&2f5fUN55(AU}b*IIe^tVe+!~%|{@I=dMkFsn=hK znCu$+^sTs#wUJQ4z|hxRL$j{*9AB6?|q*Z{U@N4P~y$DNPvqz{dp+ zifnNYrwvx3t~mvBcUe2T9C*ZEZ+Hheb-O>As>vyF_fUT$9KwUVAcn`H6wFTDvO>;y zeaqEYWT}{Lb7<9+N4z&!*)G&I6{9-B6l0Uh=YD;gK9V73{3VkYA$q9JkS}SSITx$t zpxmO6I>8mjF8XLnyq`N0#jcSD^NeLbo}9{{bA&ah;KS`otePeL_p%@N7}<~&Xj+KL z=lPv0T??yE=6j3xk5qq!+3ibN6`#ua^wGoH!LkTpq4$U>yN}+btZAtNf^0acni+AR z{Sx;jDsFqnmx}L5-I|SYn_qs$#U?KE>vxCrzW7G;bAj1=u}CwmLgG|8(+8;_Rx`V} zL$l1#e`0k@qiTitnmISK2+pHuaB)-<92;7Nc+-CPbWfF=h|>d@g81M^e6{s_?~6Pq3%}5~UeC6) z!ykTPZ{+__Qj7`~pZ#ms^I>PAm(H-y{5{;eLj=h(2qtw;*Kz~tP;qgr0ODd9iif6u zu4S5Y;YC{uo(aPZC0tCqKw9-U%?QAVAjOa74nx^SHOP`9DWB-gRdZS8*FI%?6VZ54 z93Cc&;id)6_}V|g*n!OBSeu3*S{;?sU`!b>Z14Dn<5-niV`_j@RtS@7qF*cL>0MR1 zYj$HzY(&c-*^b+ECMvkg(iN`$TZ*KlE|toZDVwgtmv>s8Mmz@dmmAABbM@WjpHt)| zP7Uq=%r)9oZ7DIzF(f&jdgHo{c)eOPYh*_&Pj|a56?99sk|6|Yct&R`OwKKZAL4gh zT}N55v#eB1*|tS=1k1Q3JL@zx8e-w?S*gsq%&%bvMV`Q+(Zk8svcr?p+iMbJqw)$l zhb~euFj6pC2~l;goU>eOFE#V^pvyDa6fT8FB&!1DhiXz9*k;UT2MrZxtwm8wWlO@G zems~6=WOFt=TCKgkx>H`XFTHBvaGL*&$ zbYT*>7-k*l^cdJzl0V3xM5J37rThb092mytt1pNVsN3nqaYdti%wUnaH5zY;C+ zQ1tU%HngrSg~kMmhUV3NFzAp?RA$R7QWPCoKpi zmrVN>pSJ5H<5l8=j({!)Rz6j0)v6Tu)e+co9-CaJ9sCD8ssq2^Y~eN2>5{;V2#)8R z*+NQc#Q8JGcBMwpbW5G=Jw&VPxBgm>|BDRIO6M5^4(Jt1TUvfN^X9V+75}7U&H7cy zQ;06;_TEdLl`>&=0bsiE``<_3b7kjxj?z z>V2ou%XvO2Ik~vkS^enK-N$SD%k#1SLWz8OH2MehZQnhunC0H|#7W)Ov1M;)H)W*l zbLLQg9^tjx@u5EBXL2y#cjE$dA$P->FmRneXPjNiT$#XNPmE%FptNXipU^v&K5n9< zc>pvCJN{EzD(T-qUB7z$Qtk9sVQvEwtkxM5Pqy9Y^xx%>m&oiGF3@ErsJ_UH;L2K> zaD4~Px(|-e-*@mHRp0U_GoFvr*KT*=F;$|o{&6EJ^ z&%dQQ`N>5q=d3jgnVXrxE|e+^nz1$82D0#>go$05cY|;oIk1kb%V>N^q<7c{NB2mWWgX%`E8!~q+^1yJ&9h0I(0IfmiR3f z`#r(Ue zDeLQRIF9lMym@{4dwP4tkFCY^T6OQ;I|8%aUtSlnqS@IgTT(GaH=*GYa9JUW<|6xz zM2hB&nsw)_I0VkM*5A2Eentfn6YN^oHRUHnN8eQ2HtVwD$64n16`(+G+}vUW%bAz` zY6!=c#}Gv$cjhA+YhpXoc%`AYGZq6t^D9g(cT=keJ_M$&;E24DuuK+KY+j+`2%Yd^ zyuRn+Q2+!�ucwS7TU+-hO2H1Mva|ducv)$@ioI)L?fdk?d@2P@mk%Ox%*IPmUQ2 z1>LpJ0ZKaQ6vDo$cD;AIEBM0f?2=<`Fk3#*S1G4MC-!^y=@)uwiOx!Zhd%MmqKXw?yaaskt4exBn15qge@PA`CUPB58A>(!XSKxgjk6tvO>wdMbb`%xnJ~q*E6`YW>)_ zzNDUYTVFo-}d%U`4KML&N0@OWJfJiqQPE;f^6V^<3$8g_E% z+73pZzi)V!6ui#Im61KMmOvp2%XS_WX36~a=l*5Clr3|rb*rrQy?WEb@at$M~PYL_C_Q>XS+8i)}S`h&FGVbBp-At`sBb%W*to#ohxxNpO&mY1>OJrO3S?Ai{}F>x}H@)KZNh>xKEev9aT_9q6^t}NVn)1X~P zDMMrvGn0Mo&fClnMRNoHvyV~0L=XTQaclEJ@ezfaxzuM++78w=kFjc{jEaRuj1p*7J`n4JyLQ`n!CvhtEo4F6$^9#bGnTwElm*%yhAMpL0!nR(U z=eUKmY1gRYyN+xfB~H_B-RY9jb(c!x_sX`X7STS99)F*(jm*eShMf^cgw2t^Y~ytm zuB@CI3)(v2RD6i;Ruo5Bc8eWWgv)XpiqJm(6yCn{RyJ;|ZholSertV@j`l+I4S+uO zmdBBAVEq-E?7Ibe6>n$Uc6wYfd)4mRIAZq0P83M@8y=rwO{r&MoL2CP)*Sr`(`WD7 zWvD!HqD3Pq+nC6*^e=a-`QAr(+xsQ?wUPmhK|L$4f|~kZeK!bYE+@tH2NdF>56U&b z+c3*8J1_261ni684gC&d@T$-Q ztzEQzh=#_L@h{lP(-TMtPfm&f`J>xz$4=<;r?k2_Vq!jAV81BAgn= zORWrGQ}VXvEU%R$VyeO8q{O|=+m#x?ZhP311>1r+7BDY>wYyP!DBfc~e-2xmcpwJ7 z4VVf&f0@aI3(}{foYIerLH*09IWV=fcp)5Ze1V!Dd8kTj_X;<-p@Unkx%!~S|GdQj z`}WG*iq2Q~>i?I<;PW|Uyt(YA`>Ex%qN=L6zCHaI|17RUkIpXT?IeCH(9Oqt4sQN4ZcXZPGYdl z*$V%F4Lm%&0T>d$ootj(J-)MG-u@RM-pSK<_yFrZ1v5)=7cRdcq`#4wN71`Khvf2{cGi^%is2E_1hB9Xz9ldGo}W@#_L=t6H2SeY@Q*KaR#DG zzm1=*H3I!NPbZ(E3Vd!(zg>y*M5P0DKI3CU?|i_LQ&L#5j*IeFX3Ivm@y^2w%)d0Q zY)lPaA46Wb`*Wp-Q`~|!IIHuzI=$&dcmtt51zOj__3$0UJaY}!u?YfxVr2{ zS_i0oDJRQH`0|mO`)KY5s8TiCdq6J|QN=SaO+iCRON6K=OfChhTZ_;&s{xY4V>W|T(Lza=lHV23E-XZfNc(nv zwiv!Y0`uRG=G2IubV7e>R;pAkrQ zCv$M_{(&$M1oVx@yOjvfuKoG`*WL9m^dBYQ+-ROG@zs>m6o1Sq3?0fmOg!>QKBKPE zucH1``+1yUp)W2XnHTq^XgT4MfY-8}r%N7jJDBHup>76Aab|&w3=I;*7 zRWDd}m%!G#37SVaZr!{|bTpz5!9n|7HOq(gr$m@?auz68s#t|2!8%k;Qx$8gSc$P_ z+f>w6QHT^Bij*cr_QT`rF z=5BX=-EbO(*nU&WB+jL=M8efRM5LXQ}qjp84TL9UCder_vSX zkKvQ_*sj}XR~)3d$q}vPYy>%5#%Z|{ReTI%SlWuJ$?f{ytH4TO-B)qP{haBXcw137 zssaoJesm%OPuA+(k&ebK~fUNddmgbH-@Z^i`$=|3J>Eg=5x?0U|2vWu8uKpUjC< zro6U7qI8b^dgiy!JC*hg5LoMb_Ns1oPB z#gsoKpq8i8Mf4#)`TWHFJAcYmR4EZ0iZXHgao}1Xj$`%f`uXS z=V}xz6P!X?M3Qyt7^?|8*MhdGXa(%g;llwtSN7LOf9{r6t9Jy-bSjkiSC_#A8Vyxl zT|3-3?3^*>F*EIRrr?lfL^$;VmrfcxH{$op_=Xatp1bYO2MrPl#cx^xNXz*H&&{JG zG#xMWJj~tCocdZ}Yee-A>H|ch5Y&`V9(4MFd=?XBFDl`Lq^CNV% zsjB$Z5NLc@N8#ATs=T_;i)l+vGB}ayPD!|>gf|KF(p~RofD683luy6+o}Rx6GRKHb z`T^(HFws3P-p-yUmGtS1fFAw%Tp*tJ3C-_~LVpNJYGz5dV=X7Jo6Ee;Z?JGtU%qju zr<$_0&nn9=^uyb6@r#BVA@bpb3FEP@Z7}FBweEY@c0bIUM->e?z#%Olb)Ub{P+*lT zHuE@Dy3ug5{bfK_hli6Z!DtmHm8tAMu@XhyAf$Cgw`y|veU{;yzUgT?-GH<8N*ULN ziuSxTzmgtzRuTGsQlsA)tY3jp#`1{UpCn$fr6v_L6z7phz>BO;GsdqjnIYEO~9ygPls&XQ6rT%xrqC!b4F)ZAmktMM(xC0v;a0j>+ zY-&CzLPfZeL#i4Qf`A`3O#v7dIP_s}&&s<5) zBPVOrgpfHP)veN}V*1r9(J=dZXFY&_&fL0*+3<6-^t`$;McB*3_=9rXdGPNvgiF6@ zxu~dpN(gpIavdqHO*=-lYBXt*kxkvKSp;25Tt6Q)PCW8Efs=ILy#|OLDrQbHv#_|i zIZubjju7!nCI~SM88?%xc5xn0zArn(AO}$w4WM?U;NDr;B*QQ78x>0OR~|Dq>#KU3 zTSZYiW2fSew=q(URK*K;0(1g_05A2vE3amPGEz}xdY#V3b-(*$E#J><{eRrkLXaco zkZ)kO#H=K}P;I4+k5~UbK_Ky}gL_;h`+UT=XoN9bG$N-S1{#{1)7&&bm5=B20^}z1 zzq~c1TNsL<2Q~}(v*vyZN=Qif#QmR?)<5P7bOkCj1Bmfr6N!Yt24%$~{T~>yAsxn@ zKV#y-%_nn)1}6V*UflUDpS47(i~KSsH^-rn90e{6+LqLXSUh5S&}Nec6H|eLgX6AA zUtsJrK;Q6Xzek^p%rLq~9tWLC|JXO-{OyX&c>T?hGG<#IO>-lIme$L&K$%{6qUqV+ zGa`#UDk+O7_`r$_{yEAK?$Bu+HJl>FRPeD$0OtFbidieSN4jMl%AF4K)3C}gY991w zbWpkbW%*mj7AssXWxYcJw*oHGy%dBSf7@k^0`-Tt>9;Iv?6!scDRNE?mJ`VG1doh& zU&WPV-i|Ag?Wm=*Xfvyo(0aJd0UI936d_7(OP|ECmr&5DRqqR=4WQw9EctBJlB82p_rDKWlvJb+MNA_JM*> zuS-8?CGdEpIH4-9G6!)0|2W;T12wqo@~ zP7}umKQP?Wi9`k8&P|U|ZH2MN?Oe7CJX)h#FGv#)R3i4GO}03y=wim0vD_sp{Xje% z?5eMP7GJOqf&OZJ)cbjnPr1;vVl7K4&mL3;pDi##5oSmmUB50V1oSS)YjA!CW9bF8 z;dveUYUN3{cx(AAx7#*a5;$@R_)ZN%lmM@P$NS3b+WaMOHvZo4seshE4s5YAn9Bz3 zI#zvHoul|;jZW@mA3qC4BH3U`>BTtyRkE}<)a+_39UT=`zV61m_ zXo^NWUy*As8D!9y_>@NMiF;d9F7J{?TQ{+xQ%2;yE&H$C_b%A<^2w%%Z|nL(FQ2wj zY4Iorskg_R+1u!U-|ljN3_W1r&EEE==JgI?G~j6udv1cUBETRF?m=xP&lOIhWzqn&D1TgVIFpH6e)CiI`EBM z5_-4SW1ddn67-4?;um`Ao_ck+s9*Gd-#Hfyv)WAJ? zZkx~3t> zqFL4xthl7K!FZvR-r!kRU~uj9ZbNzEUNFC+`ME{60*cd*+CHY8z#4;g+ASUShla)xwV$x7sj9 zty7!G-*A-jn8_hKo+s$R)P5Iim`=K-lSuXrpV|Cdai}umm{hwH(T{rP#>v*190W7a z?&@2!Ww*EngzrPAuYUN|vM2fI^p4DXb~#;&*9RM}c~HWVJwSIWU|8Xx?SV2Y#^UTs zkXUcmLehA9C1gQWZCl%Y{|`TedK_*x1k0Z+Jc6R42|H8yo-)EYJ@8k{SYutzW^BE( zQ}+^zo!kji4F5?*_mGkA@t0Wjt*MC?Dr~|U;C)w5B0~IRPFC6VxlY0x2Rn|Qp-;rV zr-R>FX8|_`EX@AXzc^3hKc&yUHo_2L>YCN7)6I}`(EMCz7#u$UCV@;2_UG63-fMEb zK>%`caxzrR@WAnB)^|-x@d_(FY;2m_G>R@f=AB6&@$IOuCNq^3l$2l764nyK(k?r3*0VsnoZ%; z6^uZjb!>I7bPwo%_MY2i{up}EGm_jzJo;E^6krq?UWMmw-CB6KG2k$bQ0mz_R2k$@ z?#TV~=a0}kJU$LKZr4tC{yngdT&f z<7;qYh0THRL#eIa&fq>=C92n5DwtW#crYaep4zrKt>i1fmpbG2Bx$wQ96J409Tw(y z(1_anB_RL)WeMS^r1n2YdR8y9nFXRIG`=|LuN9b%7tkO4#a6R)IGV=EJ5vdqX}>p3 zg|Fimp-nGHoh-L^yS`7~R(TlXyJ-X-5WFZN&TElHW!%!u&CSV_l+|42u|N`YnZz1x z^Cx-s5=>D}^SANi^~m;oKf1rXRX{5?z>86Z`_#u8Q9KtC>h^1J1XlKLOs{VT_U*3J zmg&MbVy`GW9VoX}HQi=&hZ0;^`GN;bY^>%^gM+@GBYxK5PBkBPeIC)38u(czOg+t> zYr)4@a;R=nJhAOEhUJa!B(e8p$Rq@5*`XW&Dupl8!n)_xHK^)^Ady=sH|*-`IPi+Tsu*a;sixUM+=PyIrK7_N?O~SUNzi> z@>@`fDWoio9#@6ZJp5Q;rO+Oo3orFJ&Cnw}@0s_NNBJ;^5470o zO0244h?O!;XWzycM(Mp`fd)`{;D3tif!!{RZi{sBU%w~Gl?1C+P|(uCWlxWo2PRNW z7v3>$|7=bHc_tZY9{KcePb~Lz;XwgT<=FJ}utV#<$D>1)jWqU@{O9dU)k^xx(#2N} zJM^uSjT28soo0*8Uf&MDuo424@0^P2M>~lP`}5a38nF5wFtiIo{&LSR`JuPJ{Td@K z%8u$CX>0`Y=h8n)<$s5@Iv8qbgss^fjkeYf|4cFV3{oT~mx1)g^4NG(M+4zJLWLuX zSBrs%7o|=o$@Hl1sl-WEq6Usaz$#^B*T81;w9nAtO)WoiL2h(`w1{IjaMYBTwg^SP zyEjQ~YRgnKcOX^JjP6$jcU(mYyPk&jQ|G_60Jl6X=X@Vcyrf<^M-{c1wv+zB_l}QctvArWQJZ3wfA6zm2y%X{jYZLDj^c6c98I=8^%2IbZfa7O zk(KQ?sRxa7PSro-fL{e`h%KVRp$MHFW&0XGGbKh$1A@3=w!I+$$S|=sWJNt=ubc7%-*hhaBwkRAy3=C-(!T~mM3C_4wGL3HLgv%oU_vk#o6$YQY>^82c$-T0KF zFp;++TbgeJ|60fE(D1M;o{sj_v+wHMFE+G&e>d2`{r$7P%qT1^xpUM1%Dbm#;|6H;0|a_Uv__y?E1)& z>2YuF=D+WHJYB(aIaWLa9^dL{3K`F1&Uhx2o^)XoB16MV0#8*e9jIiANHfFC8s}H? z^m+2m3SQTmn7*%*q{hZ-s4VT6tuxxLz22W%Nl%}s0{#{L>gU`0-RX1`?Ct5HIkb6# zn|9y5u&Br%kGUzTm7XLt*P@S0l>S?0V(8Mcn2sc4{RqdIhZS4a>azjHfPY=XeMY`g zdu*KWva{?hGX6{^w8-uw z>Ec7?@)*u)>ACN90RQ6Vuz}j(2M^tZY@4E@Sz;Ee65+%6vfkr)gI=mNEzmWWy4 zxZ+^#Oh~;yv;GFx>lDy>$US@QJJB$ey1+GH+~0MV4$u|6%|j!16n0ok%2{IQ@YhRV zHwxN?yAG~z3D5nUCZ&>4^zKfnyFJSRz=U5vim7WK6KF0&7;Su#;Yz9L8%*Sh5f~q@ z;c?j!h1WUVL`T1#5x@ow?ut;Q5NVyB&u}MVEC<;KYbw*G#S*0LVALPPIGD0Qp-%E44IBK<~F&G@v z#^N=%C;!$(3EfA15`PZX?|duMv9oMAzCuzPdFbNZ8M_iQZE@;xa-2Fi`zE$SR$j*QGP9Drzs2>Qy< zwQxAHj*n=(i)#y<;auX%Bl_SauZ8{!BAjk)cVauSL;tC(YN7up)z$wSMfHD)w*D(S z&n{z>grXwoOVd}x`_yhcTp>G;VC(}_bdG-{o)e0Uyn??YD1snO&SPM=eh6m&$a=XG zd6Yj`>EF9++IK+f;SoG0?9Q0!@U zN{v-fQT$Ot&45kGFu%>9sN{Pw{+n3oKHb(9_)fIWWzXj8eJkPm zQqUe#A_Y0O@yTUXJUHlZz(!+1n@-Q%PzbN(S3%NEkm zzhg<8Owny9*U{XK0t zYk1#!tW^cPdaY?{cIdqRXS=v4Jm71C*Z7f0!8rP)OhC*}D($-)8Lb z&SN>d@q_RACQ$8v75$h=4{TK;fjjm|cUK!S=%G{zxR3%j+RhUPo9g@sh-&RN1!ke- z;q<(CZHA>AWPjwgR#QK1M{fbTB%eP`&xZKNd7p^MN4H@6`nw%jJoa+6v*>7Ow-80_ zRrFd`fqILrd2R^ZRxVRvNjDZuco-6jC9z2=#Bjo`?cY(W`&J_G8^3=(JQQ#Ih zooh*;x7agk_y$CN^BZJ7f&|Ip$cN~+;t$LN`>zh@!OE-YzOq{DTLI*}oPBgVV{L~! zkdou=scjxx1fSRT-|m0)+W)nF;P;ra+AWkV@=FHsD?R2Pw^Dit^jkU$%(br-FINN7 z?gB2h-#~h)f6BF)q3pB;P0%s5bz~wlg?6<6iYU)Ayt<@wt^l*Tj%GL^~CP`JsSZub!$n;v}IBu47 zIvy9GeM(fud@*|5vY}Fn1^d~bA#J{Z-{4`qgt_hR%AECC6CmwIh4Krwm)^CuT zb9|-Ik8U4PP;N^_!{(**pw@&OZPwrwy!|+rZc?1$blCpTtOCwfe;~@^l377CVICdd z1U@qTTwFx#YqNrcp^NRg-@5}REN3%Ou6!~YH3UN@erZ=S{KUB5{ZAi%`h6<`rbY?P zAtpF#fj`}0wB)z%$bU)5Qog!zLAGAlrfvh}OiJp5JUu z37F&gdy3)=Qh$O8aO~wD98H2f?Z&{!%DFugrxR}ujMa0a7eAw!FM6e_>;ui03<~ax zfhJag^XG*s1?uX{DH?XWS#Wt(<;;o`ac?sD%r! zY-U$xvs>>Tt;~jJ^`@{u92pQ8o!z*g-&G{ex`e*@OAy@xj5dQ&{T;`8g)H5(aR1$d zV2|+Uvryau-FEn2vaU==88`GGrJfR)5U}#vF=&A`77=xI^-ljgs9HbH>bz`Q$H^xU z5M+n*9`;Etw2KJm%S%nX4SF|3KUgGiLH{}qPSuS3Nq}SKB?cfzC~v*|C(Mf+zslP68@ z6|ST=plC^w9TYTjY}<*iQgMm1yYPb&6Im%J4ELf+VyI~6!fbr$jt#CkbPYJTg#)qv zB~7Wf;QBylxXdg{Y=0<8f%J*Nx*d|Zgg}a}w*eBUZCUP+@WC{fc)W8&wsKsPSyUp- zKKtV#=fcBE2g2^B+}1qoFQZ&=pr)yS{^k*W0nlT(3m=RH*6tGO=zq!9I_WC!5GAn> zoRNRu`K^f6qSkfe#Gzr5KokNg*iRsknG4d>?m@#UZzBiQ8+Fb=e%7@*jRjOhW@JsCEXyzJXB?H?*{QVo7DH zS%XqtL&LaUyMu8zF%i|+*(b|s6pFgu0!~Ab`}dSfgW+26@L}P^$+%VZmkizlw3tcB z$f-u+ujpilsuqe?W=G`~VrH94VBPbL9GoUx*1%43-kK@Zg5%Ax;;?K|0>xTrAy-^sqztJedrYAz9p9LASJN}?Ut<4 z0IkM%t0mnD`3A4+leF^*q|2TcN}IUwe;#M+d$@gB_mm{8tgb9JP$x=(NFbpi3a6lO z$e?rM)`<)njqO_S9BGQVOiewk!kKUpqHNWiykF^w!S=h~-0;Jbjbdu*unKtE6QwF< zvY33(oo8N`2w_c_FVgcm{`hUha#a6NX{ztKWaV;e&XI0+d;V!Qnge2lSCa<8XJJsn zCj6-dPN>qG^HBN6W!uXmXFXn#iTY*XfH<%s=b@N@Y^^rKb}_y8mCh+){)ZNC+tH8v z{hB>2Wz?Uuk_8O>q2eUb0)9OG1UFz-GPgq@P!$z6ZNTK@HCan`;aljB$kXKfA^x6d zIWGVoVQ+9{x{H4{53_5~Q?gXqcf(RBgK_Z}f9Z*0w7?a{>}IaJ_q}WFnJ-!eeIA#V zQt5_**;LAb!^RLwfE;$%Hv|^x`t3E97?I4OYOU44UIWfN?H=T25&ux{ZyMiV?H^x> zNLA-G_?IeM1Gm!6A@t}F$YgS|j?J}yg{bgsZaV*IxHDgm+;Wa!mR%A?S9UD;eCC-w zcX}`8@9&?UhfvLw7=5F<{q{#jsU_RJD(fVKysn9dXMJ|)j|`-+7G9EUF|Ix1`GYZ6 zc4U0i>GHK_35q94=bxs#e)>6HS0icG9D>W%S>^@*$=bgl&E`LeY~-(s6V+Hn_8m?V z0cL?ZGc>e0UF=T}TGkK~|HCgObcz3(xsA#BczW)Q+v99+-$NLoYhAl$Oq^=V&Cl54 zvNBT^ue?5t@s-K{O+h}`ZS}V>3m?X5Y(pfb{@J_W4ut6oT^v3GHU;aj3*4_54LSiV z^mQIER`fZu1hYM7^&8?qdLFOyW{omGF#!@V#O+Q6WrM4C4xANQ&gk103)y|h|x@_UPUxs+S= z0;Nc|%VX`k0vb0J(7K62(Gkm;5*uN0v3f+CnWgH=CEu^8s3=L!mwU=@C3!MzQ664d zi6O}NXBN-MEjQBuJ5r zA8K1E2kMfDZe?|>o-5voy2zn?dH&&jNC4u9bgQYDnQMWgAF}PqbY*2ziRmPLJwYui zzv;Y?Edvd~PSY6Gc{h8iw8@j|gqeS8^yIaelek|J%aCQH8nR)3V;`y?#)73@%lLhw(jM_`D=H$Ra~u_CV)hX*;0x#_fxsPLU?J! zXpR9YzxC3dKG<{{x2Bo@dJCL#Z(w;M?e31I!|?AH<6Qyig?F}KaL~~zuhTG={nnP3 zmCqTuK@|0G!9W3doX_u-wY{->g{Eh#7vp~#8X8#e*T(Y*dU83-i>LC)Lt z02v+|Xpacl;;GB^=j{kW-i6fLe$zlr{xv;~n^UHLK>Tgzxz@ z3ni+FCb!x%u}^WvNb6Sh%6BfEIDsf*zB?KhePz*O{0d=>9A)Aq)|IHGzHw-$T)Ctw zbgp6Iu@$$h9>Fe*VBdBO{4Pln{fi34w7W0$%kPzo^XO*@DJgWuG_v$bYa5#zxT?-G zU6*#J$9!F-vu2A9#<;vWu3vqud0(QCH#8G%RA7EfIi-@SAPy{Fbz5dblslk;WFI4` z4kMnOo5_$c$gpxH$;HJK@x+31F{nE!wpOQ>_NEw6e+695Xtp*s^v^u_9a=j_se`M6 zgEacofN4z^R1y$Uvrp%oG#hH4&G=w3Wdh#;=%p*CorG!?OY$C{ZQ{xmi?Nw3aJG$M z+udF_2Zvm}qlPC$>#Y$#unFXbDhU9_+T?oZA8*+@>@Ecg_d~mOu)Ij4 zD*qs|5j;6eiqjf0taw@RC}7;LwynA|?=MD#twty^w>hxGj3)g>?zM<8uxMsc`c zIBdto-f*PEV|!yIn{$E2#sZ4*Tt* zesrn2-4bALl&czVC1t6VirxKq%P_Tm;8`~a%^;RTGKc?vR0N~79ZgO{IPoX*!OLgU1|Illt| zfk~s90;jf+G>kPvsFcT}_JAigLuSFGT4DZPZ*dtyz6_B6$OKc7XLx#gci6TjfyBg{ z$&RC|TPR>46&}Dh&>u`2*%325#}%4YI)9Lue}vl9e67F(uU^>jy=V7M6qmOJnw}rF64}$sr?EIY zf98q?ZXdlANo&{Jv$ylpW7iI8`Ju)sG7KR8+1Gr<;4mA;&)zV2phVzti3yoRD0bSy zbS&|!;6?hT3A#ERC%%23?22u9?WM|yFV$mzAnv;OHk7NgGvxLVOiD#~;2}rd_1kS` zqdPtAW8b{^F+0drF0!~Xw*@|3_%l7F_`!V-5uCg(nLeJUAcuy1*=h=d(S`gyk!~Hk zw^lTD^`n+_mDJRDkxEVdnE-(u{Crv2x3+f zsQgWy`tDHv9V~lkL;s1C62to~!+1j8V5uTr+wBNLG#IEHf!o{pjSYtAR+6jUFGKbL zX(AxGtKbXmO){nY%VD%hFXl5c=Eqtc_ndxMz9E@+CY!>&X&2Gn56jLNTu+@Y>Flv-vA2d7Rzq3UgViyl?Cs* z*Aq=G*F(LRf@=+pM71&rguG-lnDFYqW`5h83ZDK{rjdA#&cOod#CUD57@2T@QPGNZoEambvhq3;vwTj5Kpc??I4ju%ebXYA(bS}y|by(@inB( z-Q*`5jnN%eXZ%?-F`kgD46bv(QT7_wzOu8~@<}8!nM;f7@=}ncQc4^nkBiw%9jmD- z0Uf=Xc>_f*XeMWAX?VY=C;=yaTv6}-@#UIl(%H@V8yw!tdpQWX#bzmaU4^2!!%%kUG@hG}!BRok6~<1~c#i3L4@Cp-a{ zx1YBclg!f--g;c*)=aF`P5a7iR;UR_eproh#9zbmA@8j z=!O>-ep%}`(L|DU0X&8+B;O9i3|})_Jb3$+3EBU;D_IkJrWC5Be}`uh5Px`|W9CH(yb@#DTUu1zhv&J+|Bh~krwe7XdVq9DWd zAJi@Ic%in;vhqNTk}mvhnrPPLuEq7#$OeCP7UK;B;chbI zx&LAE1`vA#ur&Z3d;NdDI?0(`%&Ue;Brj}i_yvGw2i9#mq)Q;nLF8b>_@|Dr*^Lm3C&gZ3Q*J z18{I9ZH6D?rCIm}Q?muyaZ<<^Z_C)YxEWZOnCdPad#7aX9bflHfBvd0F031>scU<< zV5V{KIjv16AojnJHw_%+URwN9h#_svDWx+1(+#S^2EPRTa5pDQPK!`6YWe&JY&oGC z=cT+pGE8S~>jRG|FGhZ#nnIkz!<5YKt3B6tIYP7UX6?19T%eaSzxg}>zjvFpW^Z)! zFDu&Iz=iZyq`#P^?&qHr!1@dS$G>OZSmGDv%%C4UeK2F?^r#at{h+B3$?PmqSuX5( zXcG85MR~K;Ts6dN5eZ4eM0Xy(*aUivBm}f}Fee1Yy4Hg2u&t0Hz>k{OoVazD{_^xs zxP5Gs`CqKPV{k4_)HWL1wr$(CcXn(iJGO1xww)dC*tTt(ck<Q1=lM1BANVCxXad+(Qc5b?UEKN;K2{WX@CXK0~5D(Bcwb<7q(8mt9TZoT`+HpBzvY*8cl8=SJMNPhF22(EG}IDWJfd%Ldh_~U zb5Iucva);`+)3=~Nj$YvQY;53NjPufSg-3iG08SJR(I|KoX&AwZ8tg|eibY5pD5^p zp3q4ER+=Dtd)Hh`LrGUcb5wF+eIp2#`A28Ap5`Duh_htA}6_DC)Ln+D0sV# z>;mk(GBv_R#WIP10S2pm)LN&%fxYtl%HANg^Y`(V8uo)wR@&*)Gbbk>3AJF%RnriRtg$2Z81bG z3u;-#3Q-M(hX<=-a{98fZZ~D8%XR*BB&Yl?t!_ZwWwSBXedSL7_|L=6_Q$Hx=1R^< zp=u*Sc`SF%v}8_cr1`mwOeF*&!DogXg;S2_L{EY7XTbu69~u(!a@{?@ruX;3cf}dS z-biUy4obyf!QvSCSmw(+A1~iR?ss1hq#p;ZCe-!KUqQC=t+1FzpX-VNTUcf)!VkBH z!6M~QinQyK#-K7%0e?08#lYQHu|jB#GnC@#OhRARFzZa(V={zHU!HwXDz#^DL*h_# z5mJduCn$_0k%FnqiGwf)Ai;}&qJ=$%$?`lM=R4z z>d>5kgiV;A3aCtgd+8B(^arR-CJ4HdI0-o-AN$jUu@@ z*g__NtdKZ(*~ZL4GQ8R$14`?3?NU_YRRl0oO!O>|Pga6;9| z*w1`%z)j_&D359XZbYi=;Iiu(f+g=AUb6=ZT3S{ocp2AMZmo_$h{e*v>+ogO?~~ut zwl@#i4S=;ztlsm*SnBh^gHi!B>>en_H$^Fr4~mlzQ+0dV#%3}Md7oa{Q(1S8n9~C| zib_V%Prk26x^*G1sBuNU{SdAqO|ehXw-{K$r$AFgmY3CtQMbu3tEOQ63eLsHe%yiuQiI4-q#(-!kiE*{ljc`Kv6;6py z_Idun#mI|TL?tANn9v31Y3t=*y|WcPlmj#;rcqaPaKjkyGZ*5#^?>v}%G9{~$cVV6 z1586hGa}Ge)>C1U#)W*O>ki73NF0!=do@@@0+EC)oeUk4G$<}bktBtKk5hzEBe8o> zO2$k?9+iy7ZE1T&woqt)MTofNA6NPX40%!Jn5~iP5nZ}*Lz%09GCJ=6i*`=n372EX z8~1pM*Fn!2Ln02c(3j`3-f0i^@bg|l#Lqj!Uzn&u(IA$Ly6fDr>je;*sJ~s7Sr-{O zj=BHz?!fMr2uE8yz#OPYSdkvMR4ht4T8v6#GmF62aH1`nPM8qRMaP2?o#mAMhLSXuI!&+WyNnjuKVR8c@sD58*waV~zp?^#?B zF8ZIGtR~|t^2rW?BF@>LTmh+Vy^)gTrJ2l0;aqp+%xm|`zC>OnPv%KX6pB;9QWSYS zfx@L_2X*(v$osj+GW&g^i;VK`w(Fy#r=aGEujJIO!jlvbL5-$AlI+#{kC~BUIVLSi zxf@e^JA@a5(Yb<3vq7l@UVMLEBYRC7ToAr2DF1Y#9Ip-!GwJTfGU9Xb;(5lOpO%30^D}JK2afH)>m z1E8emF-gNSEOi4cQy(gMe>)3&%o<$endseGOEa2~7riS-V0eX;soU+Ws+IdNd-uIh z)Oz@g=ZDk8!;wEZs-?12>3I<)w5A3Rlq7+bY*wHqf#8%8MOsUgpcLI?o4tBj$zS3I zVZhJ0F}Pb)(Rzh~&z=2to|bdUII3~M&SX^VJdf?O`c`5IE~r7Bx{gw8#2zK&PK&*o zfD~0&`X-zeWPo$`J(mdCuZUMjh#^|zB#@jVgQbe)ea;-jr;>j2J*ST!%hxsH)&nWyYK23wg9P!EfezG`PoyL_&>9I zY?esUNwMVd19#sGnNz)KaSOhYIdW-g!z}%upma z6X854BPFoS7Y5Aoq5DyhcvKzug$WNI^ z%Y;9~VTTG7;mM&mj-ajhyNk?*LrNwOYS?3c`#dvESIkE!H;jfKA^zHFJOx_d#^kwv zZVw*qrT3!i?Spw}P;{Q>{vKxYFA!i@vdELTM1K<>F8OAEv5<_RvDWwp+<8#BnPi6V zn~1>yGZ3%`%-j>9iAZyS!7u5a78cJLy~do?f3`4ttjQEkL2@Or{daGOzx3iRwEkC& z$s&82>V{#lt7$g1OBsQK=1)qgQAek(tQZNrmSm|BM+R~>_+X*(eCQg{X+X0Gj{w!c zJ3{fz=eUVY3I>hYv{`>047Q(FO(JVkCj;QM{{=$Ds{^1PxO1W}=eBYcA>|y`Q(KIb zB`icr9Udq`MumDyp75ARbv_za?3O=nU;i8zS{Mul*>sWTqtH;BxFXq49j)hHex)*u}Z>9@I+IJkSp-v zp{m2&?+n+Asn5N(Dv$Hn6OX;`ZK0wTWj!4pB1(zbbM-yftqgw0MOqDd;7#3lsUPJm zFSNeDvi|!4v)t;Bzu%^#Xd^))Nr;KUp)EmeSGLwjC3*^fDwE@Y<@4s2Qo>7QAxNW0 z)*$G8^$DdG#TD540Yxnbny}`df{Szt{OdNwcTCIh6KshWBjZ`U_j)AH0w(T?b=OAi z5QBcG%j7y;|2X&S_|k8GoGQ}#F0lPpyvS?Zy?sRFf+0EbjET%Pe1xMleh8(YeM?G9U{0#p^xO(1BRgSfGu& z<}xJJGrv8Ck%ke)DnB<$qLV{>$pKmr3v_giV6zSe1_~tsS>PUjGvklwc0?RZqH{Z0 zI-n%Lbm5kh1SXJM?NcTm5gZigG#;}{vfLy;M7n?<0a*q*P;GsQr4S)N?6WQ4l!8-HZ`-v<&})`BL6f!KFRo5XvIS)``5Zrq&gr9Vm1k4n? z5N%iuaj?&#c$jY`yUU?74DEAbNo zjctz!<^kzyepF`rg;J)=n%bxeQvu5{TXV|vIBN5D3vOf!pGb}Czfh(p#Ir73v8Sf@ zej#b$Xw&SQO?GWbdTMpyW(tpxRPTGlQ~G@`sv>w%xNh{59mO!D!X06fn&M*3uOVqV zr^xP^ypC*Uml(vB3Pcf#9-Or z{ANO_wU>9>s}GbdjA&!_<8@eH|9DdS2CLa&Re$ia3g2XS1;LX*4a!PD|Vg zilH{_+=}Z&Jyr&=$$$xQT~Mr&Kg~sf#{H?4VQ<(+G@dz#!ae$Qg{MxIbO288OiHF-5#}nS5oBN) zl0k=k=QE5FLc2Gvz~=iHDZNF>XzgQ@Dxj4PcbqH_Dh8aE)~RtCMx-VWn4A6~KSxP0-ugXVeV#mqsq=cBy2x0WmJ zSZT%gQV^wZX`eCHjqd04$J<1$eOP9C=Uxgh+$ivyV9Tm%f4L{3Sya56cL5- zAd2OoSaAOE(1^UWk&p}qHFFje4M@g2=|@>t9rA^<=OhMc3^r}P>q+hln^`r{CIR_e zv+Zn*n?6Uge)GwG-i=N@7?y)ta2zn;*LD;-5zpGQ7V<2hSLs{M99z>fe5_l!p10?P zgb(Ks4PgM8i?Hqr{HKe+&wT4Sgvb`Sn}k3a(=6Uq1cz=jeWW`(+J5KP`FelReYJT` z-+iunjrR2b6An%@>Z{D<=iTr4xSj3=wrKg}?JlhAdq+qJMb1yXWf%VD6BkbhR@Y?M z>QZ6GVBG>L%-~hhVG8lmlq#!o5|>)gO>@B{l+ci*i*3Q!+Q}hXMDeC`3D$Fomddxm z5EP&W_UT}AbkNG=4*vvy%Af?>Q%GG|-ZYJ`mB$rG1{+<%zq9OW?;lL3?>7SX`5wzh zX}hxn)f0@zmsN}qo}|09H-A&u{q!vecZJNDm9s_0@d`tbg}4?EI@fDnF~!^@7&cui1-{ z41IXszzo`e{};&)SP?v}8U6nfZy&7p_V6c{x-X{xd@q#M_GYKCqsp&{s@~3`A?VXC zhv&yzo=3IZ&kJ(+pbCIxWOUuto5vbX_iee3`N#5iDrLplSwJM?%-(mYud~{@;Nn$p z-Pg>wLJX0RDk`7X@9(ExdxjqX{QpJ#{T+OFJ>h*4D4F_`1^nyBg@1Z!NBTJBds~r( z0GP!ahZNL)N92EpY#EpFy?uRWM-ULBSAKnmeqBdhl}mJupor>zqYCTmCR*%rXL~99 z1Ur)Y;z#ky@b0@F+DqSg%fFSmO=6?o{D1whWfjC0p)|zB#ZAMN;Q#Ms31Rf}XH~=Q zfp*IL(T*C;mY>p>^AdTGz(@LcL=+FqK3M=A+t~f=Opl;> z9YQY!zKgS}&<+6_P}!+1SOLx_wsTBb1WOpmCI2{5XY_-a7U$-erS^^n9Gi3*o8V35 zVV*x4O|0c>Ytq6xiabc7){ApXCK z#jBZbc!vvW)5iDiEC+HD+g5m{q)y>^_!_pwxmR4q@;tu#;56BH5B#sbJ*rnX7oIqC z_(?m(ClykX$5l+*k$b5MTd<@l^B3um!?mHs3Rmg1KKY4__Sk;>O7M1+#Q14y)ZaOq z$+->gG^)w!=o_eVlUaI|m5@q+2WYKh3MYNX$^ljUqoTtFFcpMv`LV zK$R&=Pb@pz>iuB#3H2sI6`%uEV5d`q@Y+9_IoO%mEX#I#QVf$5-0qQzXk|1!q~_dD zE)#IgIB{N2i*MW`p9P5@6nlGTwPmDuMlg6Tgb;o~qO4$czV@smY3x#up?> z)1C6YaJO=BnKU0PE;I&`CJg6;zl~ZmnGVOW*v!^_{uC$jfHei#%Oce@1#QajsCH0( z-UVlA+ArTqh#P;}RC=vZ3^?eoWOiawsot|0jBj=_@9#B}pjysjwNS%Ej>n@VJZsqf zvrb_=xf8iB^WM7q0VJ_Ma({GUj;1WeWGNL=7>$<`lgc%0AH8YA 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 literal 0 HcmV?d00001 diff --git a/maps/northern_star/polaris-1.dmm b/maps/northern_star/polaris-1.dmm index e6740cebd4..def42f2def 100644 --- a/maps/northern_star/polaris-1.dmm +++ b/maps/northern_star/polaris-1.dmm @@ -4612,12 +4612,12 @@ "bKJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hydroponics) "bKK" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/table/marble,/obj/item/weapon/book/manual/chef_recipes,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{pixel_x = -3; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/small/peppermill{pixel_x = 3},/obj/machinery/camera/network/civilian{c_tag = "CIV - Kitchen Port"; dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bKL" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) -"bKM" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/fryer,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) -"bKN" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/grill,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"bKM" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/fryer,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"bKN" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/grill,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bKO" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bKP" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bKQ" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/sink/kitchen{pixel_y = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) -"bKR" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/oven,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"bKR" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/oven,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bKS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/kitchen) "bKT" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) "bKU" = (/turf/simulated/wall/r_wall,/area/medical/chemistry) @@ -4716,7 +4716,7 @@ "bMJ" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/start{name = "Chef"},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bMK" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bML" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) -"bMM" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/candy,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"bMM" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/candy,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bMN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/kitchen) "bMO" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) "bMP" = (/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) @@ -4817,7 +4817,7 @@ "bOG" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/table/marble,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bOH" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bOI" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/item/weapon/material/knife/butch,/obj/item/weapon/material/kitchen/rollingpin,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) -"bOJ" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/cereal,/obj/machinery/camera/network/civilian{c_tag = "CIV - Kitchen Starboard"; dir = 8},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"bOJ" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/cereal,/obj/machinery/camera/network/civilian{c_tag = "CIV - Kitchen Starboard"; dir = 8},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bOK" = (/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/structure/table/reinforced,/obj/machinery/button/remote/blast_door{id = "chemcounter"; name = "Pharmacy Counter Lockdown Control"; pixel_y = 14},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/effect/floor_decal/corner/beige{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/chemistry) "bOL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/chemistry) "bOM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/tiled/white,/area/medical/chemistry) diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm index b276f58b45..f0895b3e56 100644 --- a/maps/southern_cross/southern_cross-1.dmm +++ b/maps/southern_cross/southern_cross-1.dmm @@ -8095,7 +8095,7 @@ "cZI" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/steel_grid,/area/crew_quarters/locker) "cZJ" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/locker) "cZK" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) -"cZL" = (/obj/machinery/cooker/fryer,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"cZL" = (/obj/machinery/appliance/cooker/fryer,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "cZM" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/tiled,/area/crew_quarters/locker) "cZN" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/turf/simulated/floor/tiled,/area/crew_quarters/locker) "cZO" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled,/area/crew_quarters/locker) @@ -8130,7 +8130,7 @@ "dar" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{req_access = null; req_one_access = list(5,12,25,27,28,35)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/locker) "das" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/locker) "dat" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/locker) -"dau" = (/obj/machinery/cooker/candy,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"dau" = (/obj/machinery/appliance/cooker/candy,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "dav" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "daw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/closet,/obj/random/maintenance,/obj/random/maintenance,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/bar) "dax" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/crew_quarters/kitchen) @@ -8186,7 +8186,7 @@ "dbv" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/green/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/crew_quarters/locker) "dbw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/bar) "dbx" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/bar) -"dby" = (/obj/machinery/cooker/cereal,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"dby" = (/obj/machinery/appliance/cooker/cereal,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "dbz" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 10; icon_state = "intact"},/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/maintenance/bar) "dbA" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/effect/landmark/start{name = "Chef"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "dbB" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/obj/item/weapon/reagent_containers/food/condiment/enzyme,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) @@ -8346,10 +8346,10 @@ "dez" = (/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/green/border{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled,/area/crew_quarters/locker) "deA" = (/obj/effect/floor_decal/borderfloor/corner{dir = 1},/obj/effect/floor_decal/corner/green/bordercorner{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled,/area/crew_quarters/locker) "deB" = (/obj/structure/closet/crate/plastic,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/bar) -"deC" = (/obj/machinery/cooker/grill,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"deC" = (/obj/machinery/appliance/cooker/grill,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "deD" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "deE" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) -"deF" = (/obj/machinery/cooker/oven,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"deF" = (/obj/machinery/appliance/cooker/oven,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "deG" = (/obj/structure/closet/lasertag/red,/obj/item/stack/flag/red,/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/crew_quarters/locker) "deH" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/wood,/area/crew_quarters/cafeteria) "deI" = (/obj/structure/flora/pottedplant,/obj/machinery/computer/guestpass{pixel_x = 0; pixel_y = -30},/turf/simulated/floor/wood,/area/crew_quarters/cafeteria) @@ -11021,7 +11021,7 @@ "edW" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/folder/yellow,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/engineering/foyer) "edX" = (/obj/machinery/atmospherics/pipe/manifold/hidden/red{dir = 8},/turf/simulated/floor/tiled,/area/engineering/foyer) "edY" = (/obj/machinery/atmospherics/pipe/simple/hidden/red{dir = 5; icon_state = "intact"},/turf/simulated/floor/tiled,/area/engineering/foyer) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/southern_cross/southern_cross-6.dmm b/maps/southern_cross/southern_cross-6.dmm index 8d40ebf032..205bef24b5 100644 --- a/maps/southern_cross/southern_cross-6.dmm +++ b/maps/southern_cross/southern_cross-6.dmm @@ -644,7 +644,7 @@ "mt" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "mu" = (/obj/machinery/biogenerator,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "mv" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) -"mw" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/cooker/fryer,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) +"mw" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/appliance/cooker/fryer,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "mx" = (/obj/machinery/computer/card/centcom{dir = 4},/obj/item/weapon/card/id/centcom,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/creed) "my" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/command) "mz" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/response_ship/start) @@ -660,7 +660,7 @@ "mJ" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) "mK" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall) "mL" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) -"mM" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/cooker/grill,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) +"mM" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/appliance/cooker/grill,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "mN" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "mO" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/command) "mP" = (/obj/machinery/button/remote/blast_door{id = "crescent_thunderdome"; name = "Thunderdome Access"; pixel_x = 6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_vip_shuttle"; name = "VIP Shuttle Access"; pixel_x = 6; pixel_y = -34; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint Access"; pixel_x = -6; pixel_y = -24; req_access = list(101)},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/command) @@ -668,7 +668,7 @@ "mR" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/response_ship/start) "mS" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/response_ship/start) "mT" = (/obj/machinery/computer/pod{id = "thunderdomegen"; name = "Thunderdome General Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin) -"mU" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/cooker/oven,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) +"mU" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/appliance/cooker/oven,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "mV" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/weapon/material/knife/machete/hatchet,/obj/item/weapon/material/knife/machete/hatchet,/obj/item/weapon/material/minihoe,/obj/item/weapon/material/minihoe,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "mW" = (/obj/machinery/smartfridge/drying_rack,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "mX" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/reagent_containers/glass/bucket,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) @@ -704,7 +704,7 @@ "nB" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "nC" = (/obj/machinery/seed_extractor,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "nD" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/marble,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) -"nE" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/cooker/candy,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) +"nE" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/appliance/cooker/candy,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "nF" = (/obj/machinery/door/blast/regular{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) "nG" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) "nH" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/command) @@ -730,7 +730,7 @@ "ob" = (/obj/structure/table/marble,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/material/kitchen/rollingpin,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "oc" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/marble,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "od" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/marble,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) -"oe" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/cooker/cereal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) +"oe" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/appliance/cooker/cereal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "of" = (/obj/structure/table/reinforced,/obj/item/weapon/card/id/gold/captain/spare,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/command) "og" = (/obj/structure/table/reinforced,/obj/item/device/pda/captain,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/command) "oh" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_bay_door"; locked = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command) @@ -2319,7 +2319,7 @@ "SE" = (/obj/effect/floor_decal/sign/small_g,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_chess) "SF" = (/obj/effect/floor_decal/sign/small_f,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_chess) "SG" = (/obj/effect/floor_decal/sign/small_h,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_chess) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/submaps/surface_submaps/plains/Diner.dmm b/maps/submaps/surface_submaps/plains/Diner.dmm index d8c6d2d7e4..6fec261e57 100644 --- a/maps/submaps/surface_submaps/plains/Diner.dmm +++ b/maps/submaps/surface_submaps/plains/Diner.dmm @@ -1,1132 +1,1132 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/template_noop, -/area/template_noop) -"ab" = ( -/turf/template_noop, -/area/submap/Diner) -"ac" = ( -/turf/simulated/floor/outdoors/dirt, -/area/submap/Diner) -"ad" = ( -/turf/simulated/wall, -/area/submap/Diner) -"ae" = ( -/obj/structure/window/reinforced/full, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"af" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ag" = ( -/obj/structure/table/standard, -/obj/machinery/microwave, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ah" = ( -/obj/structure/table/standard, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ai" = ( -/obj/structure/table/standard, -/obj/item/weapon/reagent_containers/food/condiment/enzyme, -/obj/item/weapon/reagent_containers/glass/beaker, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aj" = ( -/obj/structure/table/standard, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/weapon/material/knife/butch, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ak" = ( -/obj/machinery/vending/cola, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"al" = ( -/obj/machinery/vending/dinnerware, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"am" = ( -/obj/structure/sink/kitchen, -/turf/simulated/wall, -/area/submap/Diner) -"an" = ( -/obj/structure/flora/tree/sif, -/turf/template_noop, -/area/submap/Diner) -"ao" = ( -/obj/structure/bed/chair/wood{ - dir = 1 - }, -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ap" = ( -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aq" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ar" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/structure/table/standard, -/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, -/obj/item/weapon/material/kitchen/utensil/fork, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"as" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/structure/table/standard, -/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"at" = ( -/obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"au" = ( -/obj/structure/table/standard, -/obj/item/weapon/book/manual/chef_recipes, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"av" = ( -/obj/structure/table/standard, -/obj/item/weapon/material/kitchen/rollingpin, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aw" = ( -/obj/machinery/cooker/cereal, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ax" = ( -/obj/structure/bed/chair/wood, -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ay" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/item/weapon/storage/fancy/egg_box, -/obj/item/weapon/storage/fancy/egg_box, -/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, -/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, -/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, -/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, -/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, -/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, -/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, -/obj/item/weapon/reagent_containers/food/condiment/sugar, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"az" = ( -/obj/structure/simple_door/wood, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aA" = ( -/obj/structure/simple_door/wood, -/turf/simulated/floor/tiled, -/area/submap/Diner) -"aB" = ( -/obj/structure/simple_door/wood, -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aC" = ( -/obj/structure/table/standard, -/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, -/obj/effect/floor_decal/corner/red/diagonal, -/obj/item/weapon/material/kitchen/utensil/fork, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aD" = ( -/obj/structure/table/standard, -/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aE" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/item/weapon/stool/padded, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aF" = ( -/obj/structure/table/standard, -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aG" = ( -/turf/simulated/floor/tiled, -/area/submap/Diner) -"aH" = ( -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aI" = ( -/obj/structure/closet/crate/freezer, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aJ" = ( -/obj/structure/table/standard, -/obj/effect/floor_decal/corner/red/diagonal, -/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aK" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aL" = ( -/obj/machinery/light/small{ - brightness_color = "#DA0205"; - brightness_power = 1; - brightness_range = 5; - dir = 8 - }, -/turf/simulated/floor/tiled, -/area/submap/Diner) -"aM" = ( -/obj/machinery/light/small{ - brightness_color = "#DA0205"; - brightness_power = 1; - brightness_range = 5; - dir = 8 - }, -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aN" = ( -/obj/structure/closet/crate/freezer, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aO" = ( -/obj/structure/table/standard, -/obj/effect/floor_decal/corner/red/diagonal, -/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aP" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/structure/table/standard, -/obj/machinery/microwave, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aQ" = ( -/obj/structure/closet/crate/freezer, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aR" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/structure/coatrack, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aS" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/structure/table/standard, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aT" = ( -/obj/structure/closet/crate/freezer, -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aU" = ( -/obj/machinery/gibber, -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aV" = ( -/obj/machinery/light/small, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aW" = ( -/obj/machinery/cooker/fryer, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aX" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/outdoors/dirt, -/area/submap/Diner) -"aY" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aZ" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/machinery/cooker/grill, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ba" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/tiled, -/area/submap/Diner) -"bb" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/simulated/floor/tiled, -/area/submap/Diner) -"bc" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"bd" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/item/weapon/storage/fancy/egg_box, -/obj/item/weapon/storage/fancy/egg_box, -/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, -/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, -/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, -/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, -/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, -/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, -/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, -/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, -/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, -/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, -/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"be" = ( -/obj/structure/table/standard, -/obj/machinery/chemical_dispenser/bar_coffee, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"bf" = ( -/obj/item/frame/apc, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bg" = ( -/obj/structure/table/woodentable, -/obj/item/device/flashlight/lamp, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bh" = ( -/obj/structure/bed/chair/office/light, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bi" = ( -/turf/simulated/floor/lino, -/area/submap/Diner) -"bk" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bl" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/cell/high, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bm" = ( -/obj/structure/table/woodentable, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bn" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bo" = ( -/obj/structure/simple_door/wood, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bp" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/structure/windoor_assembly{ - icon_state = "l_windoor_assembly01"; - dir = 2 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"bq" = ( -/obj/structure/bookcase, -/turf/simulated/floor/lino, -/area/submap/Diner) -"br" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/machinery/space_heater, -/obj/machinery/light, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"bs" = ( -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/turf/simulated/floor/tiled/hydro, -/area/submap/Diner) -"bt" = ( -/turf/simulated/floor/tiled/hydro, -/area/submap/Diner) -"bu" = ( -/obj/structure/toilet, -/turf/simulated/floor/tiled/hydro, -/area/submap/Diner) -"bv" = ( -/obj/structure/bed/chair/wood{ - dir = 4 - }, -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"bw" = ( -/obj/structure/bed/chair/wood{ - dir = 8 - }, -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"bx" = ( -/obj/structure/simple_door/wood, -/turf/simulated/floor/tiled/hydro, -/area/submap/Diner) -"by" = ( -/obj/structure/mirror{ - dir = 4; - pixel_x = -32; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/hydro, -/area/submap/Diner) -"bz" = ( -/obj/machinery/light/small, -/turf/simulated/floor/tiled/hydro, -/area/submap/Diner) -"bA" = ( -/obj/structure/table/standard, -/turf/simulated/floor/tiled/hydro, -/area/submap/Diner) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -an -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(3,1,1) = {" -aa -ab -ab -an -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -an -ab -aa -"} -(4,1,1) = {" -aa -ab -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -ab -ab -aa -"} -(5,1,1) = {" -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -ab -aa -"} -(6,1,1) = {" -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -ab -ab -aa -"} -(7,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ac -ac -aX -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(8,1,1) = {" -aa -ab -ab -ab -ad -ad -ae -ae -ae -ad -ad -az -ad -ae -ae -ae -ad -ae -ae -ae -ad -ab -ab -ab -aa -"} -(9,1,1) = {" -aa -ab -ab -ad -ad -af -ax -aC -ao -af -ad -aV -ad -ax -aC -ao -ax -aC -ao -af -ad -ad -ab -ab -aa -"} -(10,1,1) = {" -aa -ab -ad -ad -aq -af -ax -aD -ao -af -ad -az -ad -ax -aD -ao -ax -aD -ao -af -br -ad -ad -ab -aa -"} -(11,1,1) = {" -aa -ad -ad -af -af -af -af -af -af -af -aR -af -aY -af -af -af -af -af -af -af -af -af -ad -ad -aa -"} -(12,1,1) = {" -aa -ae -af -ax -ar -ao -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ad -aa -"} -(13,1,1) = {" -aa -ae -af -ax -as -ao -af -aE -aE -aE -aE -aE -aE -aE -aE -aE -aE -aE -aE -af -af -bv -bv -ae -aa -"} -(14,1,1) = {" -aa -ad -ad -ad -ad -ad -ad -aF -aJ -aO -aF -aF -aF -aF -aF -aF -aO -aJ -aF -af -af -aD -aC -ae -aa -"} -(15,1,1) = {" -aa -ad -ag -ap -at -ap -az -af -af -af -af -af -af -af -af -af -af -af -ah -af -af -bw -bw -ae -aa -"} -(16,1,1) = {" -aa -ad -ah -ap -ap -ap -az -af -aK -aP -aS -aW -aZ -bc -bd -be -ah -aK -bp -af -af -af -af -ad -aa -"} -(17,1,1) = {" -aa -ad -ai -ap -au -ap -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -bx -ad -ad -aa -"} -(18,1,1) = {" -aa -ad -aj -ap -ah -ap -aA -aG -aL -aG -aG -aG -aG -ba -ba -aG -aG -aL -aG -ad -bs -bt -by -ad -aa -"} -(19,1,1) = {" -aa -ad -ak -ap -av -ap -ad -ad -ad -ad -ad -ad -ba -ba -ad -ad -ad -bo -ad -ad -bt -bt -bz -ad -aa -"} -(20,1,1) = {" -aa -ad -al -ap -ap -ap -ad -aH -aM -aQ -aT -ad -bb -ba -ad -bf -bk -bi -bi -ad -bu -bt -bA -ad -aa -"} -(21,1,1) = {" -aa -ad -am -ap -ap -ap -aB -aH -aH -aH -aH -ad -aG -ba -ad -bg -bl -bi -bi -ad -ad -ad -ad -ad -aa -"} -(22,1,1) = {" -aa -ab -ad -ad -aw -ap -ad -aH -aH -aH -aH -ad -aA -aA -ad -bh -bm -bi -bq -ad -ad -ad -ad -ab -aa -"} -(23,1,1) = {" -aa -ab -ab -ad -ad -ay -ad -aI -aN -aH -aU -ad -bb -aG -ad -bi -bn -bi -bq -ad -ad -ad -ab -ab -aa -"} -(24,1,1) = {" -aa -ab -ab -ab -ad -ad -ad -ad -ad -ad -ad -ad -aA -aA -ad -ad -ad -ad -ad -ad -ad -ab -ab -ab -aa -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/template_noop, +/area/submap/Diner) +"ac" = ( +/turf/simulated/floor/outdoors/dirt, +/area/submap/Diner) +"ad" = ( +/turf/simulated/wall, +/area/submap/Diner) +"ae" = ( +/obj/structure/window/reinforced/full, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"af" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ag" = ( +/obj/structure/table/standard, +/obj/machinery/microwave, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ah" = ( +/obj/structure/table/standard, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ai" = ( +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/obj/item/weapon/reagent_containers/glass/beaker, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aj" = ( +/obj/structure/table/standard, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/material/knife/butch, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ak" = ( +/obj/machinery/vending/cola, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"al" = ( +/obj/machinery/vending/dinnerware, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"am" = ( +/obj/structure/sink/kitchen, +/turf/simulated/wall, +/area/submap/Diner) +"an" = ( +/obj/structure/flora/tree/sif, +/turf/template_noop, +/area/submap/Diner) +"ao" = ( +/obj/structure/bed/chair/wood{ + dir = 1 + }, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ap" = ( +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aq" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ar" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, +/obj/item/weapon/material/kitchen/utensil/fork, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"as" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"at" = ( +/obj/machinery/light{ + dir = 8; + icon_state = "tube1"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"au" = ( +/obj/structure/table/standard, +/obj/item/weapon/book/manual/chef_recipes, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"av" = ( +/obj/structure/table/standard, +/obj/item/weapon/material/kitchen/rollingpin, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aw" = ( +/obj/machinery/appliance/cooker/cereal, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ax" = ( +/obj/structure/bed/chair/wood, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ay" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"az" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aA" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"aB" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aC" = ( +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, +/obj/effect/floor_decal/corner/red/diagonal, +/obj/item/weapon/material/kitchen/utensil/fork, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aD" = ( +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aE" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/item/weapon/stool/padded, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aF" = ( +/obj/structure/table/standard, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aG" = ( +/turf/simulated/floor/tiled, +/area/submap/Diner) +"aH" = ( +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aI" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aJ" = ( +/obj/structure/table/standard, +/obj/effect/floor_decal/corner/red/diagonal, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aK" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aL" = ( +/obj/machinery/light/small{ + brightness_color = "#DA0205"; + brightness_power = 1; + brightness_range = 5; + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"aM" = ( +/obj/machinery/light/small{ + brightness_color = "#DA0205"; + brightness_power = 1; + brightness_range = 5; + dir = 8 + }, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aN" = ( +/obj/structure/closet/crate/freezer, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aO" = ( +/obj/structure/table/standard, +/obj/effect/floor_decal/corner/red/diagonal, +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aP" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/table/standard, +/obj/machinery/microwave, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aQ" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aR" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/coatrack, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aS" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/table/standard, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aT" = ( +/obj/structure/closet/crate/freezer, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aU" = ( +/obj/machinery/gibber, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aV" = ( +/obj/machinery/light/small, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aW" = ( +/obj/machinery/appliance/cooker/fryer, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aX" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/outdoors/dirt, +/area/submap/Diner) +"aY" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/light{ + dir = 8; + icon_state = "tube1"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aZ" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/appliance/cooker/grill, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ba" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"bb" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"bc" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bd" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"be" = ( +/obj/structure/table/standard, +/obj/machinery/chemical_dispenser/bar_coffee, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bf" = ( +/obj/item/frame/apc, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bg" = ( +/obj/structure/table/woodentable, +/obj/item/device/flashlight/lamp, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bh" = ( +/obj/structure/bed/chair/office/light, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bi" = ( +/turf/simulated/floor/lino, +/area/submap/Diner) +"bk" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bl" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/cell/high, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bm" = ( +/obj/structure/table/woodentable, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bn" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bo" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bp" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/windoor_assembly{ + icon_state = "l_windoor_assembly01"; + dir = 2 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bq" = ( +/obj/structure/bookcase, +/turf/simulated/floor/lino, +/area/submap/Diner) +"br" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/space_heater, +/obj/machinery/light, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bs" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bt" = ( +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bu" = ( +/obj/structure/toilet, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bv" = ( +/obj/structure/bed/chair/wood{ + dir = 4 + }, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bw" = ( +/obj/structure/bed/chair/wood{ + dir = 8 + }, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bx" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"by" = ( +/obj/structure/mirror{ + dir = 4; + pixel_x = -32; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bz" = ( +/obj/machinery/light/small, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bA" = ( +/obj/structure/table/standard, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +an +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +"} +(3,1,1) = {" +aa +ab +ab +an +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +an +ab +aa +"} +(4,1,1) = {" +aa +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +aa +"} +(5,1,1) = {" +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +"} +(6,1,1) = {" +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +aa +"} +(7,1,1) = {" +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ac +ac +aX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +"} +(8,1,1) = {" +aa +ab +ab +ab +ad +ad +ae +ae +ae +ad +ad +az +ad +ae +ae +ae +ad +ae +ae +ae +ad +ab +ab +ab +aa +"} +(9,1,1) = {" +aa +ab +ab +ad +ad +af +ax +aC +ao +af +ad +aV +ad +ax +aC +ao +ax +aC +ao +af +ad +ad +ab +ab +aa +"} +(10,1,1) = {" +aa +ab +ad +ad +aq +af +ax +aD +ao +af +ad +az +ad +ax +aD +ao +ax +aD +ao +af +br +ad +ad +ab +aa +"} +(11,1,1) = {" +aa +ad +ad +af +af +af +af +af +af +af +aR +af +aY +af +af +af +af +af +af +af +af +af +ad +ad +aa +"} +(12,1,1) = {" +aa +ae +af +ax +ar +ao +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ad +aa +"} +(13,1,1) = {" +aa +ae +af +ax +as +ao +af +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +af +af +bv +bv +ae +aa +"} +(14,1,1) = {" +aa +ad +ad +ad +ad +ad +ad +aF +aJ +aO +aF +aF +aF +aF +aF +aF +aO +aJ +aF +af +af +aD +aC +ae +aa +"} +(15,1,1) = {" +aa +ad +ag +ap +at +ap +az +af +af +af +af +af +af +af +af +af +af +af +ah +af +af +bw +bw +ae +aa +"} +(16,1,1) = {" +aa +ad +ah +ap +ap +ap +az +af +aK +aP +aS +aW +aZ +bc +bd +be +ah +aK +bp +af +af +af +af +ad +aa +"} +(17,1,1) = {" +aa +ad +ai +ap +au +ap +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bx +ad +ad +aa +"} +(18,1,1) = {" +aa +ad +aj +ap +ah +ap +aA +aG +aL +aG +aG +aG +aG +ba +ba +aG +aG +aL +aG +ad +bs +bt +by +ad +aa +"} +(19,1,1) = {" +aa +ad +ak +ap +av +ap +ad +ad +ad +ad +ad +ad +ba +ba +ad +ad +ad +bo +ad +ad +bt +bt +bz +ad +aa +"} +(20,1,1) = {" +aa +ad +al +ap +ap +ap +ad +aH +aM +aQ +aT +ad +bb +ba +ad +bf +bk +bi +bi +ad +bu +bt +bA +ad +aa +"} +(21,1,1) = {" +aa +ad +am +ap +ap +ap +aB +aH +aH +aH +aH +ad +aG +ba +ad +bg +bl +bi +bi +ad +ad +ad +ad +ad +aa +"} +(22,1,1) = {" +aa +ab +ad +ad +aw +ap +ad +aH +aH +aH +aH +ad +aA +aA +ad +bh +bm +bi +bq +ad +ad +ad +ad +ab +aa +"} +(23,1,1) = {" +aa +ab +ab +ad +ad +ay +ad +aI +aN +aH +aU +ad +bb +aG +ad +bi +bn +bi +bq +ad +ad +ad +ab +ab +aa +"} +(24,1,1) = {" +aa +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +aA +aA +ad +ad +ad +ad +ad +ad +ad +ab +ab +ab +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/maps/submaps/surface_submaps/plains/Diner_vr.dmm b/maps/submaps/surface_submaps/plains/Diner_vr.dmm index 8967f9bff7..3f0d6b0314 100644 --- a/maps/submaps/surface_submaps/plains/Diner_vr.dmm +++ b/maps/submaps/surface_submaps/plains/Diner_vr.dmm @@ -1,1154 +1,1154 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/template_noop, -/area/template_noop) -"ab" = ( -/turf/template_noop, -/area/submap/Diner) -"ac" = ( -/turf/simulated/floor/outdoors/dirt, -/area/submap/Diner) -"ad" = ( -/turf/simulated/wall, -/area/submap/Diner) -"ae" = ( -/obj/structure/window/reinforced/full, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"af" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ag" = ( -/obj/structure/table/standard, -/obj/machinery/microwave, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ah" = ( -/obj/structure/table/standard, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ai" = ( -/obj/structure/table/standard, -/obj/item/weapon/reagent_containers/food/condiment/enzyme, -/obj/item/weapon/reagent_containers/glass/beaker, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aj" = ( -/obj/structure/table/standard, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/weapon/material/knife/butch, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ak" = ( -/obj/machinery/vending/cola, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"al" = ( -/obj/machinery/vending/dinnerware, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"am" = ( -/obj/structure/sink/kitchen, -/turf/simulated/wall, -/area/submap/Diner) -"an" = ( -/obj/structure/flora/tree/sif, -/turf/template_noop, -/area/submap/Diner) -"ao" = ( -/obj/structure/bed/chair/wood, -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ap" = ( -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aq" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ar" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/structure/table/standard, -/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, -/obj/item/weapon/material/kitchen/utensil/fork, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"as" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/structure/table/standard, -/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"at" = ( -/obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"au" = ( -/obj/structure/table/standard, -/obj/item/weapon/book/manual/chef_recipes, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"av" = ( -/obj/structure/table/standard, -/obj/item/weapon/material/kitchen/rollingpin, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aw" = ( -/obj/machinery/cooker/cereal, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ax" = ( -/obj/structure/bed/chair/wood{ - dir = 1 - }, -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"ay" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/item/weapon/storage/fancy/egg_box, -/obj/item/weapon/storage/fancy/egg_box, -/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, -/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, -/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, -/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, -/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, -/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, -/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, -/obj/item/weapon/reagent_containers/food/condiment/sugar, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"az" = ( -/obj/structure/simple_door/wood, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aA" = ( -/obj/structure/simple_door/wood, -/turf/simulated/floor/tiled, -/area/submap/Diner) -"aB" = ( -/obj/structure/simple_door/wood, -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aC" = ( -/obj/structure/table/standard, -/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, -/obj/effect/floor_decal/corner/red/diagonal, -/obj/item/weapon/material/kitchen/utensil/fork, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aD" = ( -/obj/structure/table/standard, -/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aE" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/item/weapon/stool/padded, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aF" = ( -/obj/structure/table/standard, -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aG" = ( -/turf/simulated/floor/tiled, -/area/submap/Diner) -"aH" = ( -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aI" = ( -/obj/structure/closet/crate/freezer, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aJ" = ( -/obj/structure/table/standard, -/obj/effect/floor_decal/corner/red/diagonal, -/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aK" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aL" = ( -/obj/machinery/light/small{ - brightness_color = "#DA0205"; - brightness_power = 1; - brightness_range = 5; - dir = 8 - }, -/turf/simulated/floor/tiled, -/area/submap/Diner) -"aM" = ( -/obj/machinery/light/small{ - brightness_color = "#DA0205"; - brightness_power = 1; - brightness_range = 5; - dir = 8 - }, -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aN" = ( -/obj/structure/closet/crate/freezer, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/obj/item/weapon/reagent_containers/food/snacks/meat, -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aO" = ( -/obj/structure/table/standard, -/obj/effect/floor_decal/corner/red/diagonal, -/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aP" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/structure/table/standard, -/obj/machinery/microwave, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aQ" = ( -/obj/structure/closet/crate/freezer, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/obj/item/weapon/reagent_containers/food/condiment/flour, -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aR" = ( -/obj/machinery/gibber, -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aS" = ( -/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/tram, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aT" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/structure/coatrack, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aU" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/structure/table/standard, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aV" = ( -/obj/structure/closet/crate/freezer, -/turf/simulated/floor/tiled/freezer, -/area/submap/Diner) -"aW" = ( -/obj/machinery/light/small, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aX" = ( -/obj/machinery/cooker/fryer, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"aY" = ( -/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/tram, -/turf/simulated/floor/tiled, -/area/submap/Diner) -"aZ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/outdoors/dirt, -/area/submap/Diner) -"ba" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"bb" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/machinery/cooker/grill, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"bc" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/tiled, -/area/submap/Diner) -"bd" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/simulated/floor/tiled, -/area/submap/Diner) -"be" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"bf" = ( -/obj/machinery/light/small, -/turf/simulated/floor/tiled, -/area/submap/Diner) -"bg" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/item/weapon/storage/fancy/egg_box, -/obj/item/weapon/storage/fancy/egg_box, -/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, -/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, -/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, -/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, -/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, -/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, -/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, -/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, -/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, -/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, -/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"bh" = ( -/obj/structure/table/standard, -/obj/machinery/chemical_dispenser/bar_coffee, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"bi" = ( -/obj/item/frame/apc, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bj" = ( -/obj/structure/table/woodentable, -/obj/item/device/flashlight/lamp, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bk" = ( -/obj/structure/bed/chair/office/light, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bl" = ( -/turf/simulated/floor/lino, -/area/submap/Diner) -"bm" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bn" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/cell/high, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bo" = ( -/obj/structure/table/woodentable, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bp" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bq" = ( -/obj/structure/simple_door/wood, -/turf/simulated/floor/lino, -/area/submap/Diner) -"br" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/structure/windoor_assembly{ - icon_state = "l_windoor_assembly01"; - dir = 2 - }, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"bs" = ( -/obj/structure/bookcase, -/turf/simulated/floor/lino, -/area/submap/Diner) -"bt" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/machinery/space_heater, -/obj/machinery/light, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"bu" = ( -/obj/structure/sink{ - icon_state = "sink"; - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/turf/simulated/floor/tiled/hydro, -/area/submap/Diner) -"bv" = ( -/turf/simulated/floor/tiled/hydro, -/area/submap/Diner) -"bw" = ( -/obj/structure/toilet, -/turf/simulated/floor/tiled/hydro, -/area/submap/Diner) -"bx" = ( -/obj/structure/bed/chair/wood{ - dir = 4 - }, -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"by" = ( -/obj/structure/bed/chair/wood{ - dir = 8 - }, -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) -"bz" = ( -/obj/structure/simple_door/wood, -/turf/simulated/floor/tiled/hydro, -/area/submap/Diner) -"bA" = ( -/obj/structure/mirror{ - dir = 4; - pixel_x = -32; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/hydro, -/area/submap/Diner) -"bB" = ( -/obj/machinery/light/small, -/turf/simulated/floor/tiled/hydro, -/area/submap/Diner) -"bC" = ( -/obj/structure/table/standard, -/turf/simulated/floor/tiled/hydro, -/area/submap/Diner) -"gw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/canister/air, -/turf/simulated/floor/tiled, -/area/submap/Diner) -"lT" = ( -/obj/effect/floor_decal/corner/red/diagonal, -/obj/machinery/portable_atmospherics/canister/air, -/turf/simulated/floor/tiled/white, -/area/submap/Diner) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -an -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(3,1,1) = {" -aa -ab -ab -an -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -an -ab -aa -"} -(4,1,1) = {" -aa -ab -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -ab -ab -aa -"} -(5,1,1) = {" -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -ab -aa -"} -(6,1,1) = {" -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aZ -ac -ac -ac -ac -ac -ac -ac -ac -ab -ab -ab -aa -"} -(7,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ad -ad -az -ad -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(8,1,1) = {" -aa -ab -ab -ab -ad -ad -ae -ae -ae -ad -aS -ap -ad -ae -ae -ae -ad -ae -ae -ae -ad -ab -ab -ab -aa -"} -(9,1,1) = {" -aa -ab -ab -ad -ad -af -ao -aC -ax -ad -aS -aW -ad -ao -aC -ax -ao -aC -ax -af -ad -ad -ab -ab -aa -"} -(10,1,1) = {" -aa -ab -ad -ad -aq -af -ao -aD -ax -ad -ad -az -ad -ao -aD -ax -ao -aD -ax -af -bt -ad -ad -ab -aa -"} -(11,1,1) = {" -aa -ad -ad -af -af -af -af -af -af -af -aT -af -ba -af -af -af -af -af -af -af -af -af -ad -ad -aa -"} -(12,1,1) = {" -aa -ae -af -ao -ar -ax -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -af -ad -aa -"} -(13,1,1) = {" -aa -ae -af -ao -as -ax -lT -aE -aE -aE -aE -aE -aE -aE -aE -aE -aE -aE -aE -af -af -bx -bx -ae -aa -"} -(14,1,1) = {" -aa -ad -ad -ad -ad -ad -ad -aF -aJ -aO -aF -aF -aF -aF -aF -aF -aO -aJ -aF -af -af -aD -aC -ae -aa -"} -(15,1,1) = {" -aa -ad -ag -ap -at -ap -az -af -af -af -af -af -af -af -af -af -af -af -ah -af -af -by -by -ae -aa -"} -(16,1,1) = {" -aa -ad -ah -ap -ap -ap -az -af -aK -aP -aU -aX -bb -be -bg -bh -ah -aK -br -af -af -af -af -ad -aa -"} -(17,1,1) = {" -aa -ad -ai -ap -au -ap -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -bz -ad -ad -aa -"} -(18,1,1) = {" -aa -ad -aj -ap -ah -ap -aA -aG -aL -aG -aG -aG -aG -bc -bc -aG -aG -aL -aG -ad -bu -bv -bA -ad -aa -"} -(19,1,1) = {" -aa -ad -ak -ap -av -ap -ad -ad -ad -ad -ad -ad -bc -gw -ad -ad -ad -bq -ad -ad -bv -bv -bB -ad -aa -"} -(20,1,1) = {" -aa -ad -al -ap -ap -ap -ad -aH -aM -aQ -aV -ad -bd -bc -ad -bi -bm -bl -bl -ad -bw -bv -bC -ad -aa -"} -(21,1,1) = {" -aa -ad -am -ap -ap -ap -aB -aH -aH -aH -ad -ad -aA -aA -ad -bj -bn -bl -bl -ad -ad -ad -ad -ad -aa -"} -(22,1,1) = {" -aa -ab -ad -ad -aw -ap -ad -aH -aH -aH -ad -aY -aG -aG -ad -bk -bo -bl -bs -ad -ad -ad -ad -ab -aa -"} -(23,1,1) = {" -aa -ab -ab -ad -ad -ay -ad -aI -aN -aR -ad -aY -aG -bf -ad -bl -bp -bl -bs -ad -ad -ad -ab -ab -aa -"} -(24,1,1) = {" -aa -ab -ab -ab -ad -ad -ad -ad -ad -ad -ad -ad -aA -aA -ad -ad -ad -ad -ad -ad -ad -ab -ab -ab -aa -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/template_noop, +/area/submap/Diner) +"ac" = ( +/turf/simulated/floor/outdoors/dirt, +/area/submap/Diner) +"ad" = ( +/turf/simulated/wall, +/area/submap/Diner) +"ae" = ( +/obj/structure/window/reinforced/full, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"af" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ag" = ( +/obj/structure/table/standard, +/obj/machinery/microwave, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ah" = ( +/obj/structure/table/standard, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ai" = ( +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/obj/item/weapon/reagent_containers/glass/beaker, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aj" = ( +/obj/structure/table/standard, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/weapon/material/knife/butch, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ak" = ( +/obj/machinery/vending/cola, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"al" = ( +/obj/machinery/vending/dinnerware, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"am" = ( +/obj/structure/sink/kitchen, +/turf/simulated/wall, +/area/submap/Diner) +"an" = ( +/obj/structure/flora/tree/sif, +/turf/template_noop, +/area/submap/Diner) +"ao" = ( +/obj/structure/bed/chair/wood, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ap" = ( +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aq" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ar" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, +/obj/item/weapon/material/kitchen/utensil/fork, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"as" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"at" = ( +/obj/machinery/light{ + dir = 8; + icon_state = "tube1"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"au" = ( +/obj/structure/table/standard, +/obj/item/weapon/book/manual/chef_recipes, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"av" = ( +/obj/structure/table/standard, +/obj/item/weapon/material/kitchen/rollingpin, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aw" = ( +/obj/machinery/appliance/cooker/cereal, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ax" = ( +/obj/structure/bed/chair/wood{ + dir = 1 + }, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"ay" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/condiment/sugar, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"az" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aA" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"aB" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aC" = ( +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, +/obj/effect/floor_decal/corner/red/diagonal, +/obj/item/weapon/material/kitchen/utensil/fork, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aD" = ( +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aE" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/item/weapon/stool/padded, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aF" = ( +/obj/structure/table/standard, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aG" = ( +/turf/simulated/floor/tiled, +/area/submap/Diner) +"aH" = ( +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aI" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aJ" = ( +/obj/structure/table/standard, +/obj/effect/floor_decal/corner/red/diagonal, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aK" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aL" = ( +/obj/machinery/light/small{ + brightness_color = "#DA0205"; + brightness_power = 1; + brightness_range = 5; + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"aM" = ( +/obj/machinery/light/small{ + brightness_color = "#DA0205"; + brightness_power = 1; + brightness_range = 5; + dir = 8 + }, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aN" = ( +/obj/structure/closet/crate/freezer, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/obj/item/weapon/reagent_containers/food/snacks/meat, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aO" = ( +/obj/structure/table/standard, +/obj/effect/floor_decal/corner/red/diagonal, +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aP" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/table/standard, +/obj/machinery/microwave, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aQ" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/obj/item/weapon/reagent_containers/food/condiment/flour, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aR" = ( +/obj/machinery/gibber, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aS" = ( +/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/tram, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aT" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/coatrack, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aU" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/table/standard, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aV" = ( +/obj/structure/closet/crate/freezer, +/turf/simulated/floor/tiled/freezer, +/area/submap/Diner) +"aW" = ( +/obj/machinery/light/small, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aX" = ( +/obj/machinery/appliance/cooker/fryer, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"aY" = ( +/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary/tram, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"aZ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/outdoors/dirt, +/area/submap/Diner) +"ba" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/light{ + dir = 8; + icon_state = "tube1"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bb" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/appliance/cooker/grill, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bc" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"bd" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"be" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bf" = ( +/obj/machinery/light/small, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"bg" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bh" = ( +/obj/structure/table/standard, +/obj/machinery/chemical_dispenser/bar_coffee, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bi" = ( +/obj/item/frame/apc, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bj" = ( +/obj/structure/table/woodentable, +/obj/item/device/flashlight/lamp, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bk" = ( +/obj/structure/bed/chair/office/light, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bl" = ( +/turf/simulated/floor/lino, +/area/submap/Diner) +"bm" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bn" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/cell/high, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bo" = ( +/obj/structure/table/woodentable, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bp" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bq" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/lino, +/area/submap/Diner) +"br" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/structure/windoor_assembly{ + icon_state = "l_windoor_assembly01"; + dir = 2 + }, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bs" = ( +/obj/structure/bookcase, +/turf/simulated/floor/lino, +/area/submap/Diner) +"bt" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/space_heater, +/obj/machinery/light, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bu" = ( +/obj/structure/sink{ + icon_state = "sink"; + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bv" = ( +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bw" = ( +/obj/structure/toilet, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bx" = ( +/obj/structure/bed/chair/wood{ + dir = 4 + }, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"by" = ( +/obj/structure/bed/chair/wood{ + dir = 8 + }, +/obj/effect/floor_decal/corner/red/diagonal, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) +"bz" = ( +/obj/structure/simple_door/wood, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bA" = ( +/obj/structure/mirror{ + dir = 4; + pixel_x = -32; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bB" = ( +/obj/machinery/light/small, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"bC" = ( +/obj/structure/table/standard, +/turf/simulated/floor/tiled/hydro, +/area/submap/Diner) +"gw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/air, +/turf/simulated/floor/tiled, +/area/submap/Diner) +"lT" = ( +/obj/effect/floor_decal/corner/red/diagonal, +/obj/machinery/portable_atmospherics/canister/air, +/turf/simulated/floor/tiled/white, +/area/submap/Diner) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +an +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +"} +(3,1,1) = {" +aa +ab +ab +an +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +an +ab +aa +"} +(4,1,1) = {" +aa +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +aa +"} +(5,1,1) = {" +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +"} +(6,1,1) = {" +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +aZ +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +aa +"} +(7,1,1) = {" +aa +ab +ab +ab +ab +ab +ab +ab +ab +ad +ad +az +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +"} +(8,1,1) = {" +aa +ab +ab +ab +ad +ad +ae +ae +ae +ad +aS +ap +ad +ae +ae +ae +ad +ae +ae +ae +ad +ab +ab +ab +aa +"} +(9,1,1) = {" +aa +ab +ab +ad +ad +af +ao +aC +ax +ad +aS +aW +ad +ao +aC +ax +ao +aC +ax +af +ad +ad +ab +ab +aa +"} +(10,1,1) = {" +aa +ab +ad +ad +aq +af +ao +aD +ax +ad +ad +az +ad +ao +aD +ax +ao +aD +ax +af +bt +ad +ad +ab +aa +"} +(11,1,1) = {" +aa +ad +ad +af +af +af +af +af +af +af +aT +af +ba +af +af +af +af +af +af +af +af +af +ad +ad +aa +"} +(12,1,1) = {" +aa +ae +af +ao +ar +ax +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ad +aa +"} +(13,1,1) = {" +aa +ae +af +ao +as +ax +lT +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +aE +af +af +bx +bx +ae +aa +"} +(14,1,1) = {" +aa +ad +ad +ad +ad +ad +ad +aF +aJ +aO +aF +aF +aF +aF +aF +aF +aO +aJ +aF +af +af +aD +aC +ae +aa +"} +(15,1,1) = {" +aa +ad +ag +ap +at +ap +az +af +af +af +af +af +af +af +af +af +af +af +ah +af +af +by +by +ae +aa +"} +(16,1,1) = {" +aa +ad +ah +ap +ap +ap +az +af +aK +aP +aU +aX +bb +be +bg +bh +ah +aK +br +af +af +af +af +ad +aa +"} +(17,1,1) = {" +aa +ad +ai +ap +au +ap +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bz +ad +ad +aa +"} +(18,1,1) = {" +aa +ad +aj +ap +ah +ap +aA +aG +aL +aG +aG +aG +aG +bc +bc +aG +aG +aL +aG +ad +bu +bv +bA +ad +aa +"} +(19,1,1) = {" +aa +ad +ak +ap +av +ap +ad +ad +ad +ad +ad +ad +bc +gw +ad +ad +ad +bq +ad +ad +bv +bv +bB +ad +aa +"} +(20,1,1) = {" +aa +ad +al +ap +ap +ap +ad +aH +aM +aQ +aV +ad +bd +bc +ad +bi +bm +bl +bl +ad +bw +bv +bC +ad +aa +"} +(21,1,1) = {" +aa +ad +am +ap +ap +ap +aB +aH +aH +aH +ad +ad +aA +aA +ad +bj +bn +bl +bl +ad +ad +ad +ad +ad +aa +"} +(22,1,1) = {" +aa +ab +ad +ad +aw +ap +ad +aH +aH +aH +ad +aY +aG +aG +ad +bk +bo +bl +bs +ad +ad +ad +ad +ab +aa +"} +(23,1,1) = {" +aa +ab +ab +ad +ad +ay +ad +aI +aN +aR +ad +aY +aG +bf +ad +bl +bp +bl +bs +ad +ad +ad +ab +ab +aa +"} +(24,1,1) = {" +aa +ab +ab +ab +ad +ad +ad +ad +ad +ad +ad +ad +aA +aA +ad +ad +ad +ad +ad +ad +ad +ab +ab +ab +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/maps/submaps/surface_submaps/wilderness/Manor1.dmm b/maps/submaps/surface_submaps/wilderness/Manor1.dmm index 691311bc68..311e2b7bb1 100644 --- a/maps/submaps/surface_submaps/wilderness/Manor1.dmm +++ b/maps/submaps/surface_submaps/wilderness/Manor1.dmm @@ -1,188 +1,188 @@ -"aa" = (/turf/template_noop,/area/submap/Manor1) -"ab" = (/turf/simulated/wall/wood,/area/submap/Manor1) -"ac" = (/obj/structure/window/reinforced/full,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ad" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ae" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"af" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 8},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ag" = (/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ah" = (/obj/structure/flora/pottedplant/dead,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ai" = (/obj/structure/flora/pottedplant/drooping,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aj" = (/obj/structure/table/woodentable,/obj/item/clothing/mask/smokable/cigarette/cigar,/obj/item/weapon/material/ashtray/glass,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ak" = (/obj/structure/flora/pottedplant/dead,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"al" = (/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"am" = (/obj/structure/table/woodentable,/obj/item/device/flashlight,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"an" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ao" = (/obj/structure/mopbucket,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ap" = (/obj/structure/sink,/turf/simulated/wall/wood,/area/submap/Manor1) -"aq" = (/turf/simulated/floor/carpet/bcarpet,/area/submap/Manor1) -"ar" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/bcarpet,/area/submap/Manor1) -"as" = (/obj/structure/simple_door/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"at" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/obj/effect/decal/cleanable/blood/gibs/robot,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"au" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"av" = (/obj/structure/janitorialcart,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aw" = (/obj/structure/table/woodentable,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ax" = (/obj/structure/closet/cabinet,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ay" = (/obj/effect/decal/cleanable/blood/gibs/robot/limb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"az" = (/obj/structure/table/woodentable,/obj/item/trash/candle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aA" = (/obj/effect/decal/cleanable/dirt,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aB" = (/obj/effect/decal/cleanable/dirt,/obj/effect/spider/stickyweb,/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aC" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/maglight,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aD" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aE" = (/obj/structure/closet/cabinet,/obj/effect/decal/cleanable/cobweb2,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aF" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aG" = (/obj/structure/table/woodentable,/obj/item/weapon/paper,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aH" = (/obj/structure/table/woodentable,/obj/item/weapon/pen,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aI" = (/obj/structure/flora/pottedplant/dead,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aJ" = (/obj/effect/spider/stickyweb,/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aK" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aL" = (/obj/structure/fireplace,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aM" = (/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aN" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aO" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aP" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aQ" = (/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1) -"aR" = (/obj/structure/table/standard,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aS" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aT" = (/obj/structure/closet/cabinet,/obj/random/projectile/shotgun,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aU" = (/obj/structure/bookcase,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aV" = (/obj/structure/table/woodentable,/obj/item/weapon/material/kitchen/utensil/fork,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aW" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aX" = (/obj/structure/table/standard,/obj/item/weapon/material/knife,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aY" = (/obj/machinery/cooker/oven,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"aZ" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ba" = (/obj/machinery/cooker/grill,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bb" = (/obj/structure/table/standard,/obj/item/weapon/tray,/obj/item/weapon/tray,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bc" = (/obj/structure/table/standard,/obj/item/weapon/material/knife/butch,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bd" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"be" = (/obj/random/trash,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bf" = (/obj/structure/closet/cabinet,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/random/contraband,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bg" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bh" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 1},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bi" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken0"},/area/submap/Manor1) -"bj" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bk" = (/obj/random/plushielarge,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bl" = (/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) -"bm" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/accessory/sweater/blue,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) -"bn" = (/obj/structure/window/reinforced/full,/turf/template_noop,/area/submap/Manor1) -"bo" = (/obj/item/weapon/material/twohanded/baseballbat/metal,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) -"bp" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) -"bq" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"br" = (/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken5"},/area/submap/Manor1) -"bs" = (/obj/structure/table,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bt" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bu" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bv" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/sugar,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bw" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) -"bx" = (/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"by" = (/obj/structure/closet/cabinet,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bz" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bA" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/utensil/fork,/obj/item/weapon/material/kitchen/utensil/fork,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bB" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/reagent_containers/food/snacks/stew,/obj/item/weapon/reagent_containers/food/snacks/stew,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bC" = (/obj/item/weapon/shovel,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bD" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bE" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bF" = (/obj/structure/table/standard,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bG" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/reagent_containers/food/snacks/sausage,/obj/item/weapon/reagent_containers/food/snacks/sausage,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bH" = (/obj/effect/decal/cleanable/dirt,/obj/structure/flora/pottedplant/drooping,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/flora/pottedplant/dead,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bJ" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/rollingpin,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bK" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bL" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/candle_box,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bM" = (/obj/machinery/papershredder,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bN" = (/obj/structure/simple_door/wood,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1) -"bO" = (/obj/machinery/icecream_vat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bP" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) -"bQ" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bR" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bS" = (/obj/structure/flora/pottedplant/subterranean,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bT" = (/obj/item/weapon/material/minihoe,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) -"bU" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1) -"bV" = (/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken6"},/area/submap/Manor1) -"bW" = (/obj/machinery/washing_machine,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bX" = (/obj/structure/table/woodentable,/obj/structure/bedsheetbin,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bY" = (/obj/structure/table/rack,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"bZ" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil/random_belt,/obj/random/cash,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ca" = (/obj/structure/table/woodentable,/obj/item/weapon/melee/umbrella/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cb" = (/obj/structure/closet/cabinet,/obj/random/gun/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cc" = (/obj/structure/closet/cabinet,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/random/medical,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cd" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ce" = (/obj/structure/bed/double,/obj/item/weapon/bedsheet/rddouble,/obj/structure/curtain/open/bed,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cf" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/wallet/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cg" = (/obj/structure/flora/pottedplant/dead,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ch" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/accessory/sweater,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) -"ci" = (/obj/structure/closet/crate,/obj/item/weapon/flame/lighter/random,/obj/random/powercell,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cj" = (/obj/structure/closet/cabinet,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/head/hood/winter,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ck" = (/obj/effect/decal/cleanable/spiderling_remains,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cl" = (/turf/simulated/floor/carpet/turcarpet,/area/submap/Manor1) -"cm" = (/obj/effect/decal/cleanable/blood,/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cn" = (/obj/structure/closet/crate,/obj/item/weapon/storage/wallet/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"co" = (/obj/structure/coatrack,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cp" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cq" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/shoes/black,/obj/random/projectile/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cr" = (/obj/structure/simple_door/wood,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1) -"cs" = (/obj/item/weapon/material/twohanded/spear,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"ct" = (/obj/structure/closet/cabinet{opened = 1},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cu" = (/obj/effect/decal/remains,/obj/item/weapon/material/knife/tacknife/combatknife,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cv" = (/obj/structure/sink{pixel_y = 30},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) -"cw" = (/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) -"cx" = (/obj/structure/table/standard,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) -"cy" = (/obj/structure/table/standard,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) -"cz" = (/obj/effect/decal/cleanable/cobweb2,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cA" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cB" = (/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken3"},/area/submap/Manor1) -"cC" = (/obj/effect/decal/cleanable/spiderling_remains,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cD" = (/obj/structure/closet/crate,/obj/item/clothing/suit/armor/vest,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cE" = (/obj/structure/closet/crate,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cF" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) -"cG" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) -"cH" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) -"cI" = (/obj/item/stack/material/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cJ" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/curtain/open/shower,/obj/random/soap,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) -"cK" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) -"cL" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 1},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) -"cM" = (/obj/structure/table/woodentable,/obj/item/modular_computer/laptop/preset/custom_loadout/cheap,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) -"cN" = (/turf/template_noop,/area/template_noop) -"cO" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Manor1) - -(1,1,1) = {" -cNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcN -cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacababacacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN -cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadaeafagahaiagadajafababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN -cNaaaaaaaaaaaaaaaaababababababababababababagagagagagagagagagagagagababababababababababababababaaaaaaaaaaaacN -cNaaaacOaaaaaaaaabababakagagagalamalagananagagagagananananagagagagagagagagalalalagagagaiabaoapabaaaacOaaaacN -cNaaaaaaaaaaaaababalabagaqaqaqaqarararararararaqarararararararaqaqaqaqaqaqaqaqaqaqaqaqagasagagababaaaaaaaacN -cNaaaaaaaaaaababatauabagaqaqaqaqaqaqaqarararararararararararararaqaqaqaqaqaqaqaqaqaqaqagabavagawababaaaaaacN -cNaaaaaaaaaaabaxagayabagaqagagazalalaganananaAaBaAagananagagagagagagagagagalalaCagagaqagababababababaaaaaacN -cNaaaaaaaaaaababasababagaqagabababababababababababababababababababababababababababagaqagabaDagagaEabaaaaaacN -cNaaaaaacOaaabagagagasagaqagabaFaGagalaHabaIaJaKagagaLaLagagagagahabagaMagagagaNabagaqagabaOagagalabaaaaaacN -cNaaaaaaaaaaabasabababagaqagabagagagagagabaKaKaPaPagaQaQagaPaPagagabaRagaRaRagaSabagaqagabababasababaaaaaacN -cNaaaaaaaaaaabagagaTabagaqagabagaUagaUagabagadalaVafaQaQadaValafagabaRagaWaXagaYabalaqagasagagagagabaaaaaacN -cNaaaaaaaaaaabagagaMabagaqagabagaUagaUagabagadalalafaQaQadalalafagabaRagaZaRagbaabagaqagabababasababaaaaaacN -cNaaaaaaaaaaabaDalaOabagaqagabagaUagaUagabagadalalafaQaQadalalafagabbbagaRbcagbdabagaqagabaOagagalabaaaaaacN -cNaaaaaaaaaaabababababagaqagabagagagaganabagadalalafaQaQadalalafagabagagagagagagabagaqagabaDbeagbfabaaaaaacN -cNaaaaaaaaaaabaDalbgabalaqagabagaUagaUanabagadalalafaQaQadalalafagabagagagagagagabagaqagababababababaaaaaacN -cNaaaaaaaaababagbhagabazaqagasagaUagaUanabagadaGalafaQaQadalalafagabagagagagagagabagaqagabbiagagagababaaaacN -cNaaaaaaababbjagagbkabalaqagabagaUanaUanabagadalalafaQaQadalalafagabagagagagagagabagaqagabagblbmagagababaacN -cNaaaaaabnagagagagaOabagaqanabanananananabanadalalafaQaQadalalafagasagagagagagagasagaqagasagbobpbqbrbsacaacN -cNaaaaaabnagagagagalabagaranabagaUanaUagabanbtalalafaQaQadalalbuanabagagaRbvagagabagaqagabagblbwagbxbsacaacN -cNaaaaaaababagagagbyabanaranabagaUanaUagabanbtalalafaQaQadalbzbuanabagagbAaRagbBabagaqagabagblblagbCababaacN -cNaaaaaaaaababagagagabanaragabagaUanaUagabananbhbhagaQaQagbhbDananabagagbEbFagbGabagaqagabalblblagababaaaacN -cNaaaaaaaaaaabagagagabagaragabagaganagagabbHananagagaQaQaganananbIabagagbFbJagbKabagaqagabaDblblalabaaaaaacN -cNaaaaaaaaaaabagagagasagaqagabaGbLbMagaiababababababbNbNababababababbOaKaKaKagagabagaqagabalblblalabaaaaaacN -cNaaaaaaaaaaabazalagabagaqagababababasabababababalalaQaQalalabababababababababababagaqagabalbwbPalabaaaaaacN -cNaaaaaaaaaaabababababbQaqagagananananananananasagagaQaQagagasagagagagagagagagagagagaqagabazblbPalabaaaaaacN -cNaaaaaaaaababbRazbSabbqaqagagagagananananananasagagaQaQagagasagagagagagagagagagagagaqagabalblbTagababaaaacN -cNaaaaaaababagagagagabagaqagababababasabababababalagbUaQagalabababababababababababagaqagabagblblbVagababaacN -cNaaaaaaacagagagagbqasbqaqagabbWbXabagabbYagbZabalagbUbUagcaabcbccagcdcecfagagcgabagaqagasagbpchagbxbsacaacN -cNaacOaaacagagagbqagabagaqagabagagasagabagagciabcjckbUbUagcjabagclclclclclclclaDabagaqagabbqbwblagcmagacaacN -cNaaaaaaababagbQbQagabahaqagabbWazabagasagagcnababcobUbUcoababagclclclclclclclalabahaqahabagbwblagcpababaacN -cNaaaaaaaaababcqagagababasabababababagabagagagaKababcrcrababagagclclclclclclclalababasababcsblbwagababaaaacN -cNaaaaaaaaaaabctagcuabcvcwcxabcycwasagabbYagaKaKczabbUbUabazafagclclclclclclclagagagagahabagcAcBagabaaaaaacN -cNaaaaaaaaaaababalagabcwabababcwcwabagabbYcCaJcDcEabbUbUabalagagagagagclclclclclclclclagabcAbqagababaaaaaacN -cNaaaaaaaaaaaaababalabcwcFcGabcwcHabasabababababababbNbNabababababahagclclclclclclclclagabagcIababaaaaaaaacN -cNaaaaaaaaaaaaaaabababcwabababcwcHabcwcvababaaaaaaaaaaaaaaaaaaaaababalclclclclclclclclagabcIababaaaaaaaaaacN -cNaaaaaaaaaaaaaaaaababcwcFcGabcwcJabcKcLabaaaaaaaaaaaaaaaaaaaaaaaaabcMalalagagagagagagahabababaaaaaacOaaaacN -cNaaaaaacOaaaaaaaaaaabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababaaaaaaaaaaaaaacN -cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN -cNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcN +"aa" = (/turf/template_noop,/area/submap/Manor1) +"ab" = (/turf/simulated/wall/wood,/area/submap/Manor1) +"ac" = (/obj/structure/window/reinforced/full,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ad" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ae" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"af" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 8},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ag" = (/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ah" = (/obj/structure/flora/pottedplant/dead,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ai" = (/obj/structure/flora/pottedplant/drooping,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aj" = (/obj/structure/table/woodentable,/obj/item/clothing/mask/smokable/cigarette/cigar,/obj/item/weapon/material/ashtray/glass,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ak" = (/obj/structure/flora/pottedplant/dead,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"al" = (/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"am" = (/obj/structure/table/woodentable,/obj/item/device/flashlight,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"an" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ao" = (/obj/structure/mopbucket,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ap" = (/obj/structure/sink,/turf/simulated/wall/wood,/area/submap/Manor1) +"aq" = (/turf/simulated/floor/carpet/bcarpet,/area/submap/Manor1) +"ar" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/bcarpet,/area/submap/Manor1) +"as" = (/obj/structure/simple_door/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"at" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/obj/effect/decal/cleanable/blood/gibs/robot,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"au" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"av" = (/obj/structure/janitorialcart,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aw" = (/obj/structure/table/woodentable,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ax" = (/obj/structure/closet/cabinet,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ay" = (/obj/effect/decal/cleanable/blood/gibs/robot/limb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"az" = (/obj/structure/table/woodentable,/obj/item/trash/candle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aA" = (/obj/effect/decal/cleanable/dirt,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aB" = (/obj/effect/decal/cleanable/dirt,/obj/effect/spider/stickyweb,/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aC" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/maglight,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aD" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aE" = (/obj/structure/closet/cabinet,/obj/effect/decal/cleanable/cobweb2,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aF" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aG" = (/obj/structure/table/woodentable,/obj/item/weapon/paper,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aH" = (/obj/structure/table/woodentable,/obj/item/weapon/pen,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aI" = (/obj/structure/flora/pottedplant/dead,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aJ" = (/obj/effect/spider/stickyweb,/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aK" = (/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aL" = (/obj/structure/fireplace,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aM" = (/mob/living/simple_mob/animal/giant_spider/lurker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aN" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aO" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aP" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aQ" = (/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1) +"aR" = (/obj/structure/table/standard,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aS" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aT" = (/obj/structure/closet/cabinet,/obj/random/projectile/shotgun,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aU" = (/obj/structure/bookcase,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aV" = (/obj/structure/table/woodentable,/obj/item/weapon/material/kitchen/utensil/fork,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aW" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aX" = (/obj/structure/table/standard,/obj/item/weapon/material/knife,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aY" = (/obj/machinery/appliance/cooker/oven,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"aZ" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ba" = (/obj/machinery/appliance/cooker/grill,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bb" = (/obj/structure/table/standard,/obj/item/weapon/tray,/obj/item/weapon/tray,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bc" = (/obj/structure/table/standard,/obj/item/weapon/material/knife/butch,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bd" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"be" = (/obj/random/trash,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bf" = (/obj/structure/closet/cabinet,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/random/contraband,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bg" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bh" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 1},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bi" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken0"},/area/submap/Manor1) +"bj" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bk" = (/obj/random/plushielarge,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bl" = (/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"bm" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/accessory/sweater/blue,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"bn" = (/obj/structure/window/reinforced/full,/turf/template_noop,/area/submap/Manor1) +"bo" = (/obj/item/weapon/material/twohanded/baseballbat/metal,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"bp" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"bq" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"br" = (/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken5"},/area/submap/Manor1) +"bs" = (/obj/structure/table,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bt" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bu" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bv" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/condiment/small/sugar,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bw" = (/obj/effect/decal/cleanable/blood/drip,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"bx" = (/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"by" = (/obj/structure/closet/cabinet,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bz" = (/obj/structure/table/woodentable,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bA" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/utensil/fork,/obj/item/weapon/material/kitchen/utensil/fork,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bB" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/reagent_containers/food/snacks/stew,/obj/item/weapon/reagent_containers/food/snacks/stew,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bC" = (/obj/item/weapon/shovel,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bD" = (/obj/structure/bed/chair/wood{icon_state = "wooden_chair"; dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bE" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/item/weapon/material/kitchen/utensil/spoon,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bF" = (/obj/structure/table/standard,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bG" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/weapon/reagent_containers/food/snacks/sausage,/obj/item/weapon/reagent_containers/food/snacks/sausage,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bH" = (/obj/effect/decal/cleanable/dirt,/obj/structure/flora/pottedplant/drooping,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bI" = (/obj/effect/decal/cleanable/dirt,/obj/structure/flora/pottedplant/dead,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bJ" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/rollingpin,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bK" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bL" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/candle_box,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bM" = (/obj/machinery/papershredder,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bN" = (/obj/structure/simple_door/wood,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1) +"bO" = (/obj/machinery/icecream_vat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bP" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"bQ" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bR" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bS" = (/obj/structure/flora/pottedplant/subterranean,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bT" = (/obj/item/weapon/material/minihoe,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"bU" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1) +"bV" = (/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken6"},/area/submap/Manor1) +"bW" = (/obj/machinery/washing_machine,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bX" = (/obj/structure/table/woodentable,/obj/structure/bedsheetbin,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bY" = (/obj/structure/table/rack,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"bZ" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil/random_belt,/obj/random/cash,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ca" = (/obj/structure/table/woodentable,/obj/item/weapon/melee/umbrella/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cb" = (/obj/structure/closet/cabinet,/obj/random/gun/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cc" = (/obj/structure/closet/cabinet,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/random/medical,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cd" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ce" = (/obj/structure/bed/double,/obj/item/weapon/bedsheet/rddouble,/obj/structure/curtain/open/bed,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cf" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/wallet/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cg" = (/obj/structure/flora/pottedplant/dead,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ch" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/accessory/sweater,/turf/simulated/floor/carpet/blucarpet,/area/submap/Manor1) +"ci" = (/obj/structure/closet/crate,/obj/item/weapon/flame/lighter/random,/obj/random/powercell,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cj" = (/obj/structure/closet/cabinet,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/head/hood/winter,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ck" = (/obj/effect/decal/cleanable/spiderling_remains,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cl" = (/turf/simulated/floor/carpet/turcarpet,/area/submap/Manor1) +"cm" = (/obj/effect/decal/cleanable/blood,/obj/structure/bed/chair/comfy/purp{icon_state = "comfychair_preview"; dir = 4},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cn" = (/obj/structure/closet/crate,/obj/item/weapon/storage/wallet/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"co" = (/obj/structure/coatrack,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cp" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/suit/storage/hooded/wintercoat,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cq" = (/obj/structure/loot_pile/surface/bones,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/shoes/black,/obj/random/projectile/random,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cr" = (/obj/structure/simple_door/wood,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/purcarpet,/area/submap/Manor1) +"cs" = (/obj/item/weapon/material/twohanded/spear,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"ct" = (/obj/structure/closet/cabinet{opened = 1},/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cu" = (/obj/effect/decal/remains,/obj/item/weapon/material/knife/tacknife/combatknife,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cv" = (/obj/structure/sink{pixel_y = 30},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cw" = (/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cx" = (/obj/structure/table/standard,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cy" = (/obj/structure/table/standard,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cz" = (/obj/effect/decal/cleanable/cobweb2,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cA" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cB" = (/turf/simulated/floor/holofloor/wood{icon_state = "wood_broken3"},/area/submap/Manor1) +"cC" = (/obj/effect/decal/cleanable/spiderling_remains,/obj/effect/spider/stickyweb,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cD" = (/obj/structure/closet/crate,/obj/item/clothing/suit/armor/vest,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cE" = (/obj/structure/closet/crate,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cF" = (/obj/structure/simple_door/wood,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cG" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cH" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cI" = (/obj/item/stack/material/wood,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cJ" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/curtain/open/shower,/obj/random/soap,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cK" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cL" = (/obj/structure/toilet{icon_state = "toilet00"; dir = 1},/turf/simulated/floor/tiled/hydro,/area/submap/Manor1) +"cM" = (/obj/structure/table/woodentable,/obj/item/modular_computer/laptop/preset/custom_loadout/cheap,/turf/simulated/floor/holofloor/wood,/area/submap/Manor1) +"cN" = (/turf/template_noop,/area/template_noop) +"cO" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Manor1) + +(1,1,1) = {" +cNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcN +cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacababacacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN +cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababadaeafagahaiagadajafababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN +cNaaaaaaaaaaaaaaaaababababababababababababagagagagagagagagagagagagababababababababababababababaaaaaaaaaaaacN +cNaaaacOaaaaaaaaabababakagagagalamalagananagagagagananananagagagagagagagagalalalagagagaiabaoapabaaaacOaaaacN +cNaaaaaaaaaaaaababalabagaqaqaqaqarararararararaqarararararararaqaqaqaqaqaqaqaqaqaqaqaqagasagagababaaaaaaaacN +cNaaaaaaaaaaababatauabagaqaqaqaqaqaqaqarararararararararararararaqaqaqaqaqaqaqaqaqaqaqagabavagawababaaaaaacN +cNaaaaaaaaaaabaxagayabagaqagagazalalaganananaAaBaAagananagagagagagagagagagalalaCagagaqagababababababaaaaaacN +cNaaaaaaaaaaababasababagaqagabababababababababababababababababababababababababababagaqagabaDagagaEabaaaaaacN +cNaaaaaacOaaabagagagasagaqagabaFaGagalaHabaIaJaKagagaLaLagagagagahabagaMagagagaNabagaqagabaOagagalabaaaaaacN +cNaaaaaaaaaaabasabababagaqagabagagagagagabaKaKaPaPagaQaQagaPaPagagabaRagaRaRagaSabagaqagabababasababaaaaaacN +cNaaaaaaaaaaabagagaTabagaqagabagaUagaUagabagadalaVafaQaQadaValafagabaRagaWaXagaYabalaqagasagagagagabaaaaaacN +cNaaaaaaaaaaabagagaMabagaqagabagaUagaUagabagadalalafaQaQadalalafagabaRagaZaRagbaabagaqagabababasababaaaaaacN +cNaaaaaaaaaaabaDalaOabagaqagabagaUagaUagabagadalalafaQaQadalalafagabbbagaRbcagbdabagaqagabaOagagalabaaaaaacN +cNaaaaaaaaaaabababababagaqagabagagagaganabagadalalafaQaQadalalafagabagagagagagagabagaqagabaDbeagbfabaaaaaacN +cNaaaaaaaaaaabaDalbgabalaqagabagaUagaUanabagadalalafaQaQadalalafagabagagagagagagabagaqagababababababaaaaaacN +cNaaaaaaaaababagbhagabazaqagasagaUagaUanabagadaGalafaQaQadalalafagabagagagagagagabagaqagabbiagagagababaaaacN +cNaaaaaaababbjagagbkabalaqagabagaUanaUanabagadalalafaQaQadalalafagabagagagagagagabagaqagabagblbmagagababaacN +cNaaaaaabnagagagagaOabagaqanabanananananabanadalalafaQaQadalalafagasagagagagagagasagaqagasagbobpbqbrbsacaacN +cNaaaaaabnagagagagalabagaranabagaUanaUagabanbtalalafaQaQadalalbuanabagagaRbvagagabagaqagabagblbwagbxbsacaacN +cNaaaaaaababagagagbyabanaranabagaUanaUagabanbtalalafaQaQadalbzbuanabagagbAaRagbBabagaqagabagblblagbCababaacN +cNaaaaaaaaababagagagabanaragabagaUanaUagabananbhbhagaQaQagbhbDananabagagbEbFagbGabagaqagabalblblagababaaaacN +cNaaaaaaaaaaabagagagabagaragabagaganagagabbHananagagaQaQaganananbIabagagbFbJagbKabagaqagabaDblblalabaaaaaacN +cNaaaaaaaaaaabagagagasagaqagabaGbLbMagaiababababababbNbNababababababbOaKaKaKagagabagaqagabalblblalabaaaaaacN +cNaaaaaaaaaaabazalagabagaqagababababasabababababalalaQaQalalabababababababababababagaqagabalbwbPalabaaaaaacN +cNaaaaaaaaaaabababababbQaqagagananananananananasagagaQaQagagasagagagagagagagagagagagaqagabazblbPalabaaaaaacN +cNaaaaaaaaababbRazbSabbqaqagagagagananananananasagagaQaQagagasagagagagagagagagagagagaqagabalblbTagababaaaacN +cNaaaaaaababagagagagabagaqagababababasabababababalagbUaQagalabababababababababababagaqagabagblblbVagababaacN +cNaaaaaaacagagagagbqasbqaqagabbWbXabagabbYagbZabalagbUbUagcaabcbccagcdcecfagagcgabagaqagasagbpchagbxbsacaacN +cNaacOaaacagagagbqagabagaqagabagagasagabagagciabcjckbUbUagcjabagclclclclclclclaDabagaqagabbqbwblagcmagacaacN +cNaaaaaaababagbQbQagabahaqagabbWazabagasagagcnababcobUbUcoababagclclclclclclclalabahaqahabagbwblagcpababaacN +cNaaaaaaaaababcqagagababasabababababagabagagagaKababcrcrababagagclclclclclclclalababasababcsblbwagababaaaacN +cNaaaaaaaaaaabctagcuabcvcwcxabcycwasagabbYagaKaKczabbUbUabazafagclclclclclclclagagagagahabagcAcBagabaaaaaacN +cNaaaaaaaaaaababalagabcwabababcwcwabagabbYcCaJcDcEabbUbUabalagagagagagclclclclclclclclagabcAbqagababaaaaaacN +cNaaaaaaaaaaaaababalabcwcFcGabcwcHabasabababababababbNbNabababababahagclclclclclclclclagabagcIababaaaaaaaacN +cNaaaaaaaaaaaaaaabababcwabababcwcHabcwcvababaaaaaaaaaaaaaaaaaaaaababalclclclclclclclclagabcIababaaaaaaaaaacN +cNaaaaaaaaaaaaaaaaababcwcFcGabcwcJabcKcLabaaaaaaaaaaaaaaaaaaaaaaaaabcMalalagagagagagagahabababaaaaaacOaaaacN +cNaaaaaacOaaaaaaaaaaabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababaaaaaaaaaaaaaacN +cNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacN +cNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcNcN "} \ No newline at end of file diff --git a/maps/tether/submaps/admin_use/dhael_centcom.dmm b/maps/tether/submaps/admin_use/dhael_centcom.dmm index 195605f7c4..23c2c03e81 100644 --- a/maps/tether/submaps/admin_use/dhael_centcom.dmm +++ b/maps/tether/submaps/admin_use/dhael_centcom.dmm @@ -3607,7 +3607,7 @@ /obj/effect/floor_decal/corner/grey/diagonal{ dir = 4 }, -/obj/machinery/cooker/cereal, +/obj/machinery/appliance/cooker/cereal, /turf/unsimulated/floor/steel{ icon_state = "white" }, @@ -3635,7 +3635,7 @@ /obj/effect/floor_decal/corner/grey/diagonal{ dir = 4 }, -/obj/machinery/cooker/oven, +/obj/machinery/appliance/cooker/oven, /obj/machinery/camera/network/crescent{ dir = 10 }, @@ -3647,7 +3647,7 @@ /obj/effect/floor_decal/corner/grey/diagonal{ dir = 4 }, -/obj/machinery/cooker/grill, +/obj/machinery/appliance/cooker/grill, /turf/unsimulated/floor/steel{ icon_state = "white" }, @@ -3656,7 +3656,7 @@ /obj/effect/floor_decal/corner/grey/diagonal{ dir = 4 }, -/obj/machinery/cooker/fryer, +/obj/machinery/appliance/cooker/fryer, /turf/unsimulated/floor/steel{ icon_state = "white" }, @@ -14562,7 +14562,7 @@ /obj/effect/floor_decal/corner/grey/diagonal{ dir = 4 }, -/obj/machinery/cooker/cereal, +/obj/machinery/appliance/cooker/cereal, /turf/unsimulated/floor/steel{ icon_state = "white" }, @@ -14571,7 +14571,7 @@ /obj/effect/floor_decal/corner/grey/diagonal{ dir = 4 }, -/obj/machinery/cooker/oven, +/obj/machinery/appliance/cooker/oven, /turf/unsimulated/floor/steel{ icon_state = "white" }, @@ -14580,7 +14580,7 @@ /obj/effect/floor_decal/corner/grey/diagonal{ dir = 4 }, -/obj/machinery/cooker/grill, +/obj/machinery/appliance/cooker/grill, /turf/unsimulated/floor/steel{ icon_state = "white" }, @@ -14589,7 +14589,7 @@ /obj/effect/floor_decal/corner/grey/diagonal{ dir = 4 }, -/obj/machinery/cooker/fryer, +/obj/machinery/appliance/cooker/fryer, /turf/unsimulated/floor/steel{ icon_state = "white" }, diff --git a/maps/tether/submaps/aerostat/submaps/Manor1.dmm b/maps/tether/submaps/aerostat/submaps/Manor1.dmm index b981549289..2401898eb8 100644 --- a/maps/tether/submaps/aerostat/submaps/Manor1.dmm +++ b/maps/tether/submaps/aerostat/submaps/Manor1.dmm @@ -219,7 +219,7 @@ /turf/simulated/floor/holofloor/wood, /area/submap/virgo2/Manor1) "aY" = ( -/obj/machinery/cooker/oven, +/obj/machinery/appliance/cooker/oven, /turf/simulated/floor/holofloor/wood, /area/submap/virgo2/Manor1) "aZ" = ( @@ -228,7 +228,7 @@ /turf/simulated/floor/holofloor/wood, /area/submap/virgo2/Manor1) "ba" = ( -/obj/machinery/cooker/grill, +/obj/machinery/appliance/cooker/grill, /turf/simulated/floor/holofloor/wood, /area/submap/virgo2/Manor1) "bb" = ( diff --git a/maps/tether/submaps/om_ships/aro.dmm b/maps/tether/submaps/om_ships/aro.dmm index 5322661bb8..4dce075b15 100644 --- a/maps/tether/submaps/om_ships/aro.dmm +++ b/maps/tether/submaps/om_ships/aro.dmm @@ -616,12 +616,12 @@ /turf/simulated/floor/tiled/white, /area/ship/aro/recreation) "bp" = ( -/obj/machinery/cooker/oven, +/obj/machinery/appliance/cooker/oven, /obj/effect/floor_decal/borderfloorwhite/corner2, /turf/simulated/floor/tiled/white, /area/ship/aro/recreation) "bq" = ( -/obj/machinery/cooker/grill, +/obj/machinery/appliance/cooker/grill, /obj/effect/floor_decal/borderfloorwhite, /turf/simulated/floor/tiled/white, /area/ship/aro/recreation) diff --git a/maps/tether/submaps/om_ships/cruiser.dmm b/maps/tether/submaps/om_ships/cruiser.dmm index 719b3501b1..443a78927f 100644 --- a/maps/tether/submaps/om_ships/cruiser.dmm +++ b/maps/tether/submaps/om_ships/cruiser.dmm @@ -1017,14 +1017,14 @@ /turf/simulated/floor/tiled/white, /area/mothership/kitchen) "cl" = ( -/obj/machinery/cooker/cereal, +/obj/machinery/appliance/cooker/cereal, /obj/effect/floor_decal/industrial/warning/dust{ dir = 9 }, /turf/simulated/floor/tiled/white, /area/mothership/kitchen) "cm" = ( -/obj/machinery/cooker/fryer, +/obj/machinery/appliance/cooker/fryer, /obj/structure/table/steel_reinforced, /obj/effect/floor_decal/industrial/warning/dust{ dir = 1 @@ -1032,7 +1032,7 @@ /turf/simulated/floor/tiled/white, /area/mothership/kitchen) "cn" = ( -/obj/machinery/cooker/oven, +/obj/machinery/appliance/cooker/oven, /obj/structure/table/steel_reinforced, /obj/effect/floor_decal/industrial/warning/dust{ dir = 1 @@ -1040,7 +1040,7 @@ /turf/simulated/floor/tiled/white, /area/mothership/kitchen) "co" = ( -/obj/machinery/cooker/grill, +/obj/machinery/appliance/cooker/grill, /obj/structure/table/steel_reinforced, /obj/effect/floor_decal/industrial/warning/dust{ dir = 1 @@ -1049,7 +1049,7 @@ /turf/simulated/floor/tiled/white, /area/mothership/kitchen) "cp" = ( -/obj/machinery/cooker/candy, +/obj/machinery/appliance/cooker/candy, /obj/effect/floor_decal/industrial/warning/dust{ dir = 1 }, diff --git a/maps/tether/submaps/om_ships/mercenarybase.dmm b/maps/tether/submaps/om_ships/mercenarybase.dmm index 95238c7b19..42b6a45289 100644 --- a/maps/tether/submaps/om_ships/mercenarybase.dmm +++ b/maps/tether/submaps/om_ships/mercenarybase.dmm @@ -3272,15 +3272,15 @@ /turf/simulated/floor/tiled/dark, /area/mercbase/roid) "nm" = ( -/obj/machinery/cooker/oven, +/obj/machinery/appliance/cooker/oven, /turf/simulated/floor/tiled/dark, /area/mercbase/roid) "nn" = ( -/obj/machinery/cooker/grill, +/obj/machinery/appliance/cooker/grill, /turf/simulated/floor/tiled/dark, /area/mercbase/roid) "no" = ( -/obj/machinery/cooker/fryer, +/obj/machinery/appliance/cooker/fryer, /turf/simulated/floor/tiled/dark, /area/mercbase/roid) "np" = ( diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm index 4ccd5fb59b..8cb61dad37 100644 --- a/maps/tether/tether-03-surface3.dmm +++ b/maps/tether/tether-03-surface3.dmm @@ -10132,7 +10132,7 @@ /turf/simulated/floor/tiled/white, /area/crew_quarters/kitchen) "asP" = ( -/obj/machinery/cooker/grill, +/obj/machinery/appliance/cooker/grill, /obj/effect/floor_decal/industrial/warning/dust{ dir = 9 }, @@ -10236,7 +10236,7 @@ /turf/simulated/floor/tiled/white, /area/crew_quarters/kitchen) "atc" = ( -/obj/machinery/cooker/candy, +/obj/machinery/appliance/cooker/candy, /obj/effect/floor_decal/industrial/warning/dust{ dir = 8 }, @@ -10328,7 +10328,7 @@ /turf/simulated/floor/tiled/white, /area/crew_quarters/kitchen) "ato" = ( -/obj/machinery/cooker/cereal, +/obj/machinery/appliance/cooker/cereal, /obj/effect/floor_decal/industrial/warning/dust{ dir = 8 }, @@ -10395,7 +10395,7 @@ /turf/simulated/wall, /area/crew_quarters/kitchen) "atA" = ( -/obj/machinery/cooker/fryer, +/obj/machinery/appliance/cooker/fryer, /obj/effect/floor_decal/industrial/warning/dust{ dir = 8 }, @@ -10555,7 +10555,7 @@ /turf/simulated/floor/tiled/white, /area/crew_quarters/kitchen) "atS" = ( -/obj/machinery/cooker/oven, +/obj/machinery/appliance/cooker/oven, /obj/effect/floor_decal/industrial/warning/dust{ dir = 10 }, diff --git a/maps/virgo/virgo-1.dmm b/maps/virgo/virgo-1.dmm index 4450499fde..0d43dd2549 100644 --- a/maps/virgo/virgo-1.dmm +++ b/maps/virgo/virgo-1.dmm @@ -4249,7 +4249,7 @@ "bDK" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/maintenance/central) "bDL" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/reagentgrinder,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bDM" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) -"bDN" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/oven,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"bDN" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/oven,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bDO" = (/obj/effect/floor_decal/corner/lime{dir = 5},/obj/structure/closet/secure_closet/hydroponics,/turf/simulated/floor/tiled,/area/hydroponics) "bDP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/kitchen) "bDQ" = (/obj/structure/closet/secure_closet/hydroponics,/obj/effect/floor_decal/corner/lime/full{dir = 8},/turf/simulated/floor/tiled,/area/hydroponics) @@ -4668,8 +4668,8 @@ "bLN" = (/obj/effect/floor_decal/corner/blue,/obj/structure/reagent_dispensers/water_cooler/full,/turf/simulated/floor/tiled,/area/bridge_hallway) "bLO" = (/turf/simulated/wall/r_wall,/area/crew_quarters/captain) "bLP" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) -"bLQ" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/grill,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) -"bLR" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/fryer,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"bLQ" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/grill,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"bLR" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/fryer,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bLS" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bLT" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bLU" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/sink/kitchen{pixel_y = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) @@ -4886,9 +4886,9 @@ "bPX" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bPY" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/table/marble,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bPZ" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/item/weapon/reagent_containers/food/snacks/mint,/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/item/weapon/packageWrap,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) -"bQa" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/cooker/candy,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"bQa" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/appliance/cooker/candy,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bQb" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) -"bQc" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/cereal,/obj/machinery/camera/network/civilian{c_tag = "CIV - Kitchen Starboard"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) +"bQc" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/appliance/cooker/cereal,/obj/machinery/camera/network/civilian{c_tag = "CIV - Kitchen Starboard"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen) "bQd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/crew_quarters/kitchen) "bQe" = (/obj/structure/flora/ausbushes/brflowers,/obj/structure/flora/ausbushes/ppflowers,/turf/simulated/floor/grass,/area/crew_quarters/kitchen) "bQf" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/central_two) diff --git a/vorestation.dme b/vorestation.dme index 59b2c3525d..be1efea2c3 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2098,6 +2098,7 @@ #include "code\modules\food\kitchen\microwave.dm" #include "code\modules\food\kitchen\smartfridge.dm" #include "code\modules\food\kitchen\smartfridge_vr.dm" +#include "code\modules\food\kitchen\cooking_machines\_appliance.dm" #include "code\modules\food\kitchen\cooking_machines\_cooker.dm" #include "code\modules\food\kitchen\cooking_machines\_cooker_output.dm" #include "code\modules\food\kitchen\cooking_machines\candy.dm"